{"version":3,"sources":["./$_lazy_route_resource lazy namespace object","./node_modules/moment/locale sync ^\\.\\/.*$","./src/app/app.component.html","./src/app/component/admin/admin.component.html","./src/app/component/calling-list/calling-list.component.html","./src/app/component/cdm-calling-list/cdm-calling-list.component.html","./src/app/component/cdm-customer360/cdm-customer360.component.html","./src/app/component/customer360/customer360.component.html","./src/app/component/dashboard/chart-dashboard/chart-dashboard.component.html","./src/app/component/dashboard/custom-header-cal/custom-header.component.html","./src/app/component/dashboard/dashboard.component.html","./src/app/component/doorstep-calling-list/doorstep-calling-list.component.html","./src/app/component/doorstep-customer360/doorstep-customer360.component.html","./src/app/component/doorstep-dashboard/doorstep-chart-dashboard/doorstep-chart-dashboard.component.html","./src/app/component/doorstep-dashboard/doorstep-custom-header-cal/doorstep-custom-header-cal.component.html","./src/app/component/doorstep-dashboard/doorstep-dashboard.component.html","./src/app/component/inbound-call/inbound-call.component.html","./src/app/component/lost-customer/lost-customer.component.html","./src/app/component/lost-customer360/lost-customer360.component.html","./src/app/component/market-share-reporting/market-share-reporting.component.html","./src/app/component/pipeline-management/pipeline-management.component.html","./src/app/component/pipeline-search/pipeline-search.component.html","./src/app/component/profile/profile.component.html","./src/app/component/prs-calling-list/prs-calling-list.component.html","./src/app/component/prs-customer360/prs-customer360.component.html","./src/app/component/prs-dashboard/chart-prs-dashboard/chart-prs-dashboard.component.html","./src/app/component/prs-dashboard/prs-dashboard.component.html","./src/app/component/prs-reporting/prs-reporting.component.html","./src/app/component/reporting/reporting.component.html","./src/app/component/soft-customer360/soft-customer360.component.html","./src/app/component/soft-offering-reporting/soft-offering-reporting.component.html","./src/app/component/soft-offerings/soft-offerings.component.html","./src/app/component/uam/uam.component.html","./src/app/component/workshop-manager-calling-list/workshop-manager-calling-list.component.html","./src/app/component/workshop-reassignment/workshop-reassignment.component.html","./src/app/directive/custom-tool-tip/custom-tool-tip.component.html","./src/app/layout/component/header/header.component.html","./src/app/layout/component/main-layout/main-layout.component.html","./src/app/modal/blanket-feedback-dailog/blanket-feedback-dailog.component.html","./src/app/modal/calling-dialog/calling-dialog.component.html","./src/app/modal/chart-dialog/chart-dialog.component.html","./src/app/modal/confirm-dialog/confirm-dialog.component.html","./src/app/modal/customer360-dialog/customer360-dialog.component.html","./src/app/modal/doorstep-calling-dialog/doorstep-calling-dialog.component.html","./src/app/modal/lead-status-dialog/lead-status-dialog.component.html","./src/app/modal/lost-calling-dialog/lost-calling-dialog.component.html","./src/app/modal/lost-customer-lead-update-dialog/lost-customer-lead-update-dialog.component.html","./src/app/modal/new-ticket-dialog/new-ticket-dialog.component.html","./src/app/modal/pipeline-enquiry-table/pipeline-enquiry-table.component.html","./src/app/modal/pipeline-enquiry/pipeline-enquiry.component.html","./src/app/modal/prs-complaint-dialog/prs-complaint-dialog.component.html","./src/app/modal/recording-dialog/recording-dialog.component.html","./src/app/modal/reminder-dialog/reminder-dialog.component.html","./src/app/modal/service-break-dialog/service-break-dialog.component.html","./src/app/modal/servicenotrequire-dailog/servicenotrequire-dailog.component.html","./src/app/modal/soft-calling-dialog/soft-calling-dialog.component.html","./src/app/modal/visit-report/visit-report.component.html","./src/app/modal/workshop-reassignment-dialog/workshop-reassignment-dialog.component.html","./src/app/security/forgot-password-dialog/forgot-password-dialog.component.html","./src/app/security/login/login.component.html","./node_modules/tslib/tslib.es6.js","./src/app/app-routing.module.ts","./src/app/app.component.scss","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/component/admin/admin.component.css","./src/app/component/admin/admin.component.ts","./src/app/component/calling-list/calling-list.component.scss","./src/app/component/calling-list/calling-list.component.ts","./src/app/component/cdm-calling-list/cdm-calling-list.component.scss","./src/app/component/cdm-calling-list/cdm-calling-list.component.ts","./src/app/component/cdm-customer360/cdm-customer360.component.scss","./src/app/component/cdm-customer360/cdm-customer360.component.ts","./src/app/component/customer360/customer360.component.scss","./src/app/component/customer360/customer360.component.ts","./src/app/component/dashboard/chart-dashboard/chart-dashboard.component.scss","./src/app/component/dashboard/chart-dashboard/chart-dashboard.component.ts","./src/app/component/dashboard/custom-header-cal/custom-header.component.scss","./src/app/component/dashboard/custom-header-cal/custom-header.component.ts","./src/app/component/dashboard/dashboard.component.scss","./src/app/component/dashboard/dashboard.component.ts","./src/app/component/doorstep-calling-list/doorstep-calling-list.component.scss","./src/app/component/doorstep-calling-list/doorstep-calling-list.component.ts","./src/app/component/doorstep-customer360/doorstep-customer360.component.scss","./src/app/component/doorstep-customer360/doorstep-customer360.component.ts","./src/app/component/doorstep-dashboard/doorstep-chart-dashboard/doorstep-chart-dashboard.component.scss","./src/app/component/doorstep-dashboard/doorstep-chart-dashboard/doorstep-chart-dashboard.component.ts","./src/app/component/doorstep-dashboard/doorstep-custom-header-cal/doorstep-custom-header-cal.component.scss","./src/app/component/doorstep-dashboard/doorstep-custom-header-cal/doorstep-custom-header-cal.component.ts","./src/app/component/doorstep-dashboard/doorstep-dashboard.component.scss","./src/app/component/doorstep-dashboard/doorstep-dashboard.component.ts","./src/app/component/inbound-call/inbound-call.component.scss","./src/app/component/inbound-call/inbound-call.component.ts","./src/app/component/lost-customer/lost-customer.component.scss","./src/app/component/lost-customer/lost-customer.component.ts","./src/app/component/lost-customer360/lost-customer360.component.scss","./src/app/component/lost-customer360/lost-customer360.component.ts","./src/app/component/market-share-reporting/market-share-reporting.component.scss","./src/app/component/market-share-reporting/market-share-reporting.component.ts","./src/app/component/pipeline-management/listCustData.ts","./src/app/component/pipeline-management/pipeline-management.component.scss","./src/app/component/pipeline-management/pipeline-management.component.ts","./src/app/component/pipeline-search/pipeline-search.component.css","./src/app/component/pipeline-search/pipeline-search.component.ts","./src/app/component/profile/profile.component.scss","./src/app/component/profile/profile.component.ts","./src/app/component/prs-calling-list/prs-calling-list.component.scss","./src/app/component/prs-calling-list/prs-calling-list.component.ts","./src/app/component/prs-customer360/prs-customer360.component.scss","./src/app/component/prs-customer360/prs-customer360.component.ts","./src/app/component/prs-dashboard/chart-prs-dashboard/chart-prs-dashboard.component.scss","./src/app/component/prs-dashboard/chart-prs-dashboard/chart-prs-dashboard.component.ts","./src/app/component/prs-dashboard/prs-dashboard.component.scss","./src/app/component/prs-dashboard/prs-dashboard.component.ts","./src/app/component/prs-reporting/prs-reporting.component.scss","./src/app/component/prs-reporting/prs-reporting.component.ts","./src/app/component/reporting/reporting.component.scss","./src/app/component/reporting/reporting.component.ts","./src/app/component/soft-customer360/soft-customer360.component.scss","./src/app/component/soft-customer360/soft-customer360.component.ts","./src/app/component/soft-offering-reporting/soft-offering-reporting.component.scss","./src/app/component/soft-offering-reporting/soft-offering-reporting.component.ts","./src/app/component/soft-offerings/soft-offerings.component.scss","./src/app/component/soft-offerings/soft-offerings.component.ts","./src/app/component/uam/uam.component.scss","./src/app/component/uam/uam.component.ts","./src/app/component/workshop-manager-calling-list/workshop-manager-calling-list.component.css","./src/app/component/workshop-manager-calling-list/workshop-manager-calling-list.component.ts","./src/app/component/workshop-reassignment/workshop-reassignment.component.scss","./src/app/component/workshop-reassignment/workshop-reassignment.component.ts","./src/app/core/authentication/authentication.guard.ts","./src/app/core/authentication/authentication.service.ts","./src/app/core/service/common-service/common.service.ts","./src/app/core/service/http-interceptor/auth-interceptor.ts","./src/app/core/service/http-interceptor/error-interceptor.ts","./src/app/core/service/user-service/user.service.ts","./src/app/dialog.service.ts","./src/app/directive/char-only.directive.ts","./src/app/directive/custom-tool-tip/custom-tool-tip.component.scss","./src/app/directive/custom-tool-tip/custom-tool-tip.directive.ts","./src/app/directive/custom-tool-tip/tool-tip-renderer.directive.ts","./src/app/directive/digits-only.directive.ts","./src/app/layout/component/header/header.component.scss","./src/app/layout/component/header/header.component.ts","./src/app/layout/component/main-layout/main-layout.component.scss","./src/app/layout/component/main-layout/main-layout.component.ts","./src/app/modal/blanket-feedback-dailog/blanket-feedback-dailog.component.scss","./src/app/modal/blanket-feedback-dailog/blanket-feedback-dailog.component.ts","./src/app/modal/calling-dialog/calling-dialog.component.scss","./src/app/modal/calling-dialog/calling-dialog.component.ts","./src/app/modal/chart-dialog/chart-dialog.component.scss","./src/app/modal/chart-dialog/chart-dialog.component.ts","./src/app/modal/confirm-dialog/confirm-dialog.component.css","./src/app/modal/confirm-dialog/confirm-dialog.component.ts","./src/app/modal/customer360-dialog/customer360-dialog.component.scss","./src/app/modal/customer360-dialog/customer360-dialog.component.ts","./src/app/modal/doorstep-calling-dialog/doorstep-calling-dialog.component.scss","./src/app/modal/doorstep-calling-dialog/doorstep-calling-dialog.component.ts","./src/app/modal/lead-status-dialog/lead-status-dialog.component.scss","./src/app/modal/lead-status-dialog/lead-status-dialog.component.ts","./src/app/modal/lost-calling-dialog/lost-calling-dialog.component.scss","./src/app/modal/lost-calling-dialog/lost-calling-dialog.component.ts","./src/app/modal/lost-customer-lead-update-dialog/lost-customer-lead-update-dialog.component.css","./src/app/modal/lost-customer-lead-update-dialog/lost-customer-lead-update-dialog.component.ts","./src/app/modal/new-ticket-dialog/new-ticket-dialog.component.scss","./src/app/modal/new-ticket-dialog/new-ticket-dialog.component.ts","./src/app/modal/pipeline-enquiry-table/pipeline-enquiry-table.component.scss","./src/app/modal/pipeline-enquiry-table/pipeline-enquiry-table.component.ts","./src/app/modal/pipeline-enquiry/pipeline-enquiry.component.scss","./src/app/modal/pipeline-enquiry/pipeline-enquiry.component.ts","./src/app/modal/prs-complaint-dialog/prs-complaint-dialog.component.css","./src/app/modal/prs-complaint-dialog/prs-complaint-dialog.component.ts","./src/app/modal/recording-dialog/recording-dialog.component.scss","./src/app/modal/recording-dialog/recording-dialog.component.ts","./src/app/modal/reminder-dialog/reminder-dialog.component.scss","./src/app/modal/reminder-dialog/reminder-dialog.component.ts","./src/app/modal/service-break-dialog/service-break-dialog.component.scss","./src/app/modal/service-break-dialog/service-break-dialog.component.ts","./src/app/modal/servicenotrequire-dailog/servicenotrequire-dailog.component.css","./src/app/modal/servicenotrequire-dailog/servicenotrequire-dailog.component.ts","./src/app/modal/soft-calling-dialog/soft-calling-dialog.component.scss","./src/app/modal/soft-calling-dialog/soft-calling-dialog.component.ts","./src/app/modal/visit-report/visit-report.component.css","./src/app/modal/visit-report/visit-report.component.ts","./src/app/modal/workshop-reassignment-dialog/workshop-reassignment-dialog.component.scss","./src/app/modal/workshop-reassignment-dialog/workshop-reassignment-dialog.component.ts","./src/app/model/call-params.model.ts","./src/app/model/save-call-recording-params.model.ts","./src/app/pipes/filter-pipe.pipe.ts","./src/app/pipes/moment-utc-date-adapter.ts","./src/app/pipes/safe.pipe.ts","./src/app/pipes/truncate.pipe.ts","./src/app/security/forgot-password-dialog/forgot-password-dialog.component.scss","./src/app/security/forgot-password-dialog/forgot-password-dialog.component.ts","./src/app/security/login/login.component.scss","./src/app/security/login/login.component.ts","./src/app/shared/material.module.ts","./src/environments/environment.ts","./src/main.ts"],"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.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.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-SG\": \"./node_modules/moment/locale/en-SG.js\",\n\t\"./en-SG.js\": \"./node_modules/moment/locale/en-SG.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-nz\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-nz.js\": \"./node_modules/moment/locale/en-nz.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-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\"./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-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\"./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\"./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-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 ^\\\\.\\\\/.*$\";","export default \"\"","export default \"\\n
\\n
\\n \\n \\n \\n
\\n
\\n \\n \\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n \\n
\\n\\n \\n \\n\\n \\n \\n Model \\n {{element.model}} \\n \\n\\n \\n \\n Fert Code \\n {{element.fertcode}} \\n \\n\\n \\n \\n Vertical \\n {{element.vertical}} \\n \\n\\n \\n \\n Body Building Days \\n {{element.body_building_days}} \\n \\n\\n \\n \\n Actions \\n \\n \\n \\n \\n\\n \\n \\n \\n
\\n \\n
\\n\\n \\n \\n
\\n \\n \\n

{{isEditMode ? 'Edit' : 'Add'}} Master

\\n \\n \\n Model\\n \\n \\n\\n \\n Fert Code\\n \\n \\n\\n \\n Vertical\\n \\n \\n\\n \\n Body Building Days\\n \\n \\n \\n \\n \\n \\n \\n
\\n
\\n\\n \\n \\n
\\n \\n

Import Master

\\n\\n \\n \\n {{ selectedFileName }}\\n \\n\\n \\n \\n \\n \\n
\\n
\\n\\n
\\n
\\n
\\n
\"","export default \"
\\n \\n
\\n\\n
\\n \\n \\n \\n
\\n
\\n
\\n \\n
Total Attempts (N.U)\\n
\\n {{callStats.totalAttempts || 0}} \\n
\\n
\\n
\\n \\n
Contacted (U)
\\n {{callStats.customerContacted || 0}}\\n
\\n
\\n
\\n \\n
Follow-up (U)
\\n {{callStats.followUp || 0}}\\n
\\n
\\n
\\n \\n
Booking (U)
\\n {{callStats.noOfBooking || 0}}\\n
\\n
\\n
\\n \\n
No Service (U)
\\n {{callStats.noService || 0}}\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n Service Call\\n Reminder\\n Visit\\n No-show\\n Inbound Call\\n
\\n \\n Unique Attempts\\n \\n
\\n
\\n {{callStats.serviceCall || 0}}\\n {{callStats.reminderCall || 0}}\\n {{callStats.visitCall || 0}}\\n {{callStats.noShow || 0}}\\n {{callStats.inbound || 0}}\\n
\\n \\n {{callStats.uniqueAttempts || 0}}\\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n
\\n
\\n
\\n \\n Service Type\\n \\n \\n {{value | truncate}}\\n \\n \\n \\n
\\n
\\n \\n Customer Type\\n \\n \\n {{value}}\\n \\n \\n \\n
\\n
\\n \\n Call Type\\n \\n \\n {{value}}\\n \\n \\n \\n
\\n
\\n \\n Call Status Desc\\n \\n \\n {{value}}\\n \\n \\n \\n
\\n
\\n \\n Prediction Type\\n \\n \\n {{value.viewValue}}\\n \\n \\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n \\n Calls To Be Made: {{customersToBeCalled}}\\n \\n Worked Calls: {{callsMade1}}\\n \\n
\\n
\\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n
Customer Name \\n \\n \\n \\n \\n {{element.customerName | truncate}}   \\n Service Type \\n {{element.serviceType | truncate}}\\n Call Type {{element.callType}} Call State {{element.callStatusDesc}} \\n Service Due Date\\n \\n {{element.serviceDueDate | date:'dd-MM-yy'}}\\n \\n Last Call {{element?.lastCallTime | date:'dd-MM-yy hh:mm a'}} CRE Input \\n {{element.creinputs | truncate}}\\n Follow-up {{element?.followUpTime | date:'dd-MM-yy hh:mm a'}} Remarks \\n {{element.remarks | truncate}}\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\"","export default \"
\\n \\n
\\n\\n
\\n \\n \\n
\\n
\\n
\\n \\n
Open Request
\\n {{callStats.openRequest || 0}} \\n
\\n
\\n
\\n \\n
Submitted
\\n {{callStats.submitted || 0}}\\n
\\n
\\n
\\n \\n
Resubmit
\\n {{callStats.resubmitted || 0}}\\n
\\n
\\n
\\n \\n
Accepted
\\n {{callStats.closed || 0}}\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n \\n \\n Request Status\\n \\n \\n {{value}}\\n \\n \\n \\n
\\n
\\n \\n \\n Source ID\\n \\n \\n {{value}}\\n \\n \\n \\n
\\n
\\n \\n
\\n \\n \\n \\n \\n \\n
\\n
\\n
\\n \\n
\\n \\n \\n \\n \\n \\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n \\n \\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
Customer Id {{element.customerId}}Customer Name {{element.customerName}} VIN {{element.vin}} Raise Date {{element?.raiseDate | date:'dd-MM-yy'}} Request Status {{element.requestStatus}} Source ID {{element.sourceId}}
\\n
\\n \\n
\\n
\\n
\\n
\"","export default \"
\\n \\n
\\n\\n
\\n
\\n Service Request/\\n
\\n \\n \\n
\\n \\n \\n \\n Details\\n \\n
\\n
\\n \\n

{{customerDetail?.customerCode}}

\\n
\\n
\\n \\n

{{customerDetail?.customerType}}

\\n
\\n
\\n \\n

{{customerDetail?.customerName}}

\\n
\\n
\\n \\n

{{customerDetail?.customerPhoneNo}}

\\n
\\n
\\n
\\n
\\n \\n

{{customerDetail?.customerAddress}}

\\n
\\n
\\n \\n

{{customerDetail?.vin | truncate}}

\\n
\\n
\\n \\n

{{customerDetail?.model}}

\\n
\\n
\\n \\n

{{customerDetail?.sellingDealer}}

\\n
\\n
\\n
\\n
\\n \\n

{{customerDetail?.saleDate | date:'dd-MM-y'}}

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n {{vin}}\\n
\\n
\\n
\\n
\\n \\n
\\n \\n \\n Customer Remarks\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
Remark By {{element.createdBy}} Remark Date {{element.createdDate | date : \\\"dd/MM/yy\\\"}} Remark{{element.remark}}
\\n
\\n \\n \\n
\\n
\\n
\\n \\n
\\n \\n \\n Accurate Data\\n \\n
\\n
\\n \\n \\n \\n This field is required.\\n \\n
\\n
\\n \\n \\n \\n Invalid phone number, Number length should be 10.\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n \\n Invalid phone number, Number length should be 10.\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n \\n
\\n \\n \\n
\\n
\\n \\n \\n \\n Remarks are required.\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n
\"","export default \"
\\n \\n
\\n\\n
\\n
\\n Call List/\\n
\\n\\n
\\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n
\\n \\n

\\n {{cus360?.CUSTOMER_INFO.custCity}} {{cus360?.CUSTOMER_INFO.custPostlCode}}\\n

\\n
\\n
\\n \\n

\\n {{cus360?.CUSTOMER_INFO.lifetimeValue | currency: '₹'}}\\n

\\n
\\n
\\n
\\n \\n \\n \\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
Contact Number
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n Invalid phone number, Number length should be 10.\\n \\n
\\n \\n \\n \\n \\n \\n Invalid phone number, Number length should be 10.\\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n
\\n {{regNumber}}\\n
\\n
\\n
\\n \\n
\\n
\\n {{vin}}\\n
\\n
\\n
\\n \\n \\n
NameContact NumberRegistration NoVin No
\\n \\n {{contact.name}}\\n \\n \\n \\n \\n {{contact.regNumber.split(',')[0]}}...{{contact.vin.split(',')[0]}}...
\\n
\\n
\\n
\\n \\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n
\\n {{regNumber}}\\n
\\n
\\n
\\n \\n
\\n
\\n {{vin}}\\n
\\n
\\n
\\n \\n \\n
NameContact NumberRegistration NoVin No
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n Invalid phone number, Number length should be 10.\\n \\n {{contact.regNumber.split(',')[0]}}...{{contact.vin.split(',')[0]}}...
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n \\n Select Workshop\\n \\n \\n {{workShop.workshopCode}} - {{workShop.workshopName}}\\n \\n \\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n Call Logs \\n \\n \\n
\\n \\n \\n
\\n \\n\\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n\\n \\n\\n \\n \\n \\n \\n \\n \\n \\n
Number\\n {{element.custNo}} Date {{element.callDate | date : \\\"dd/MM/yy\\\" }} Start Time\\n {{(element.callDate +' '+ element.startTime)| date : \\\"h:mm a\\\"}} Duration {{element.duration }}\\n \\n Recordings\\n \\n \\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n \\n
\\n \\n
\\n \\n \\n \\n
\\n \\n \\n Select Vehicle\\n \\n \\n {{item.vin6Bits}}\\n \\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n
\\n \\n Service Details\\n
\\n
\\n {{vehicleTypeCallInfo}} Call\\n {{vehicleServiceAndStausInfo}}\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n

{{serviceDetails?.committedDate | date : \\\"dd/MM/yy\\\"}}

\\n
\\n
\\n \\n

{{serviceDetails?.predictionType}}

\\n
\\n
\\n \\n

{{serviceDetails?.workShop}}

\\n
\\n
\\n \\n

{{serviceDetails?.serviceDueMilage}}

\\n
\\n
\\n
\\n
\\n \\n

{{serviceDetails?.serviceIntervel}}

\\n
\\n
\\n \\n

{{serviceDetails?.serviceDueDate | date : \\\"dd/MM/yy\\\"}}

\\n
\\n
\\n \\n

{{serviceDetails?.currentMileage}}

\\n
\\n
\\n \\n

{{serviceDetails?.mileageSinceLastVisit}}

\\n
\\n
\\n
\\n
\\n \\n

{{serviceDetails?.averageMilage}}

\\n
\\n
\\n \\n

{{serviceDetails?.remarks}}

\\n
\\n
\\n \\n

{{bookingDuration}}

\\n
\\n
\\n \\n

{{serviceCount}}

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n \\n
\\n \\n 0\\\">\\n \\n
\\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
Campaign ID {{element.campaignId}} Description {{element.campaignIdDesc}} Start Date {{element.campaignStartDate | date : \\\"dd/MM/yy\\\" }} End Date {{element.campaignEndDate | date : \\\"dd/MM/yy\\\" }} Campaign Status {{element.techCampaignCallStatus }} Committed Date {{element.techBookingDate | date : \\\"dd/MM/yy\\\" }}
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n\\n \\n \\n
\\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
Case ID\\n {{element.faultCaseId}} Rule Description {{element.rulesDesc}}\\n List Date\\n {{element.faultListDate | date : \\\"dd/MM/yy\\\" }} Fert Code\\n {{element.faultFertCode}} Service Due Date\\n {{element.faultServiceDueDate | date : \\\"dd/MM/yy\\\" }}\\n Committed Date\\n {{element.faultBookingDate | date : \\\"dd/MM/yy\\\" }}
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n \\n \\n \\n \\n \\n \\n Customer Remarks \\n \\n \\n
\\n \\n \\n
\\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n
Remark\\n {{element.remark}} Remark Date {{element.remarkDate | date : \\\"dd/MM/yy\\\"}}\\n Remark Time\\n {{element.remarkTime | date: \\\"hh:mm a\\\"}}
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n Vehicle Details \\n \\n \\n
\\n \\n \\n
\\n
\\n \\n

{{vehicleDetails?.model}}

\\n
\\n
\\n \\n

{{vehicleDetails?.chassisNo}}

\\n
\\n
\\n \\n

{{vehicleDetails?.registrationNo}}

\\n
\\n
\\n \\n

{{vehicleDetails?.soldBy}}

\\n
\\n
\\n
\\n
\\n \\n

{{vehicleDetails?.tipperHaulageInd}}

\\n
\\n
\\n \\n

{{vehicleDetails?.division}}

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n Last Service Details \\n \\n \\n
\\n \\n \\n
\\n
\\n \\n

{{lastServiceDetails?.lastVisitedOn | date : \\\"dd/MM/yy\\\"}}

\\n
\\n
\\n \\n

{{lastServiceDetails?.workType}}

\\n
\\n
\\n \\n

{{lastServiceDetails?.jobCardNo}}

\\n
\\n
\\n \\n

{{lastServiceDetails?.billAmount}}

\\n
\\n
\\n
\\n
\\n \\n

{{lastServiceDetails?.workshopName}}

\\n
\\n
\\n \\n

{{lastServiceDetails?.milage}}

\\n
\\n
\\n \\n

{{lastServiceDetails?.invoiceDate | date : \\\"dd/MM/yy\\\"}}

\\n
\\n
\\n \\n

{{lastServiceDetails?.conversionType}}\\n

\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n \\n \\n Show Complete Vehicle History\\n \\n \\n Hide History\\n \\n \\n
\\n \\n \\n
\\n \\n \\n
\\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n\\n \\n \\n \\n \\n \\n\\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n
JobCard {{element.jcNo}} Vin {{element.vin}} \\n Jobcard Date & Time\\n {{element.jbcardDate | date : \\\"dd/MM/yy\\\"}} Audit Date {{element.audate | date : \\\"dd/MM/yy\\\"}} \\n Dealer Code/Name/Location\\n \\n {{element.werks}}/{{element.plantDes}}/{{element.dealerLoc}}\\n \\n Odometer/Units\\n {{element.mileage}} {{element.mileageType}} PlantDes {{element.plantDes}} Order Type {{element.servNo}} Tipper {{element.tipper}} Werks {{element.werks}} Failure Date\\n {{element.failureDate | date : \\\"dd/MM/yy\\\"}} Billing Date\\n {{element.billDate | date : \\\"dd/MM/yy\\\"}} INS date {{element.insdate | date : \\\"dd/MM/yy\\\"}} Mechanic {{element.mechanic}} \\n ServiceAdvisor\\n {{element.serviceAdv}} ServiceAdv No\\n {{element.serviceAdvNo}}
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n \\n \\n
\\n \\n
\\n
\"","export default \"
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n\\n
\\n \\n \\n
\"","export default \"
\\n \\n
\\n \\n \\n
\"","export default \"
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n Dashboard\\n \\n {{dashboard}}\\n \\n \\n
\\n \\n
\\n
\\n
\\n \\n
\\n \\n \\n \\n \\n \\n
\\n
\\n
\\n \\n
\\n \\n \\n \\n \\n \\n
\\n
\\n
\\n \\n \\n Service Type\\n \\n All\\n {{service.value}}\\n \\n \\n
\\n
\\n \\n \\n Select Workshop\\n \\n \\n {{workshop}}\\n \\n \\n
\\n
\\n \\n \\n Select CRE\\n \\n \\n {{cre}}\\n \\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n \\n
\\n
\\n

\\n Allotted\\n

\\n
\\n
\\n

{{allocated.actualVal || 0}}

\\n
\\n
\\n

\\n {{allocated.growthRate || 0}}{{allocated.unit || '%'}}\\n

\\n

0\\\">\\n {{allocated.growthRate || 0}}{{allocated.unit || '%'}}\\n

\\n

\\n {{allocated.growthRate || 0}}{{allocated.unit || '%'}}\\n

\\n

N.A

\\n

MoM

\\n
\\n
\\n

{{attempted.actualVal || 0}}

\\n

Attempted

\\n
\\n
\\n

{{notAttempted.actualVal || 0}}

\\n

Not Attempted

\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n Attempted\\n
\\n
\\n
\\n
\\n

{{attempted.actualVal || 0}}

\\n
\\n
\\n

\\n {{attempted.growthRate || 0}}{{attempted.unit ||\\n '%'}}\\n

\\n

0\\\">\\n {{attempted.growthRate || 0}}{{attempted.unit ||\\n '%'}}\\n

\\n

\\n {{attempted.growthRate || 0}}{{attempted.unit || '%'}}\\n

\\n

N.A

\\n

MoM

\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n

{{contacted.actualVal || 0}}

\\n

Contacted

\\n
\\n
\\n

{{notContacted.actualVal || 0}}

\\n

Not Contacted

\\n
\\n
\\n
\\n

N.A

\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n

N.A

\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n Contacted\\n
\\n
\\n
\\n
\\n

{{contacted.actualVal || 0}}

\\n
\\n
\\n

\\n {{contacted.growthRate || 0}}{{contacted.unit ||\\n '%'}}\\n

\\n

0\\\">\\n {{contacted.growthRate || 0}}{{contacted.unit ||\\n '%'}}\\n

\\n

\\n {{contacted.growthRate || 0}}{{contacted.unit || '%'}}\\n

\\n

N.A

\\n

MoM

\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n

{{this.booking.actualVal || 0}}

\\n

Booking

\\n
\\n
\\n

{{this.contactedFollowup.actualVal || 0}}

\\n

Follow-up

\\n
\\n
\\n

{{this.connectedSystemClose.actualVal || 0}}

\\n

System Closed

\\n
\\n
\\n

{{this.contactedNoService.actualVal || 0}}

\\n

No Service

\\n
\\n
\\n
\\n

N.A

\\n
\\n
\\n
\\n \\n \\n
\\n \\n
\\n
\\n

N.A

\\n
\\n
\\n \\n
\\n \\n
\\n
\\n

N.A

\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n Bookings\\n
\\n
\\n
\\n
\\n

{{booking.actualVal || 0}}

\\n
\\n
\\n

\\n {{booking.growthRate || 0}}{{booking.unit || '%'}}\\n

\\n

0\\\">\\n {{booking.growthRate || 0}}{{booking.unit || '%'}}\\n

\\n

\\n {{booking.growthRate || 0}}{{booking.unit||'%'}}\\n

\\n

N.A

\\n

MoM

\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n

{{activeBooking.actualVal}}

\\n

Active

\\n
\\n
\\n

{{bookingNoService.actualVal}}

\\n

No Service

\\n
\\n
\\n

{{bookingFollowup.actualVal}}

\\n

Follow Up

\\n
\\n
\\n

{{bookingSystemClose.actualVal}}

\\n

System Closed

\\n
\\n
\\n

{{converted.actualVal}}

\\n

Converted

\\n
\\n
\\n
\\n

N.A

\\n
\\n
\\n
\\n \\n \\n
\\n \\n
\\n
\\n

N.A

\\n
\\n
\\n \\n
\\n \\n
\\n
\\n

N.A

\\n
\\n
\\n \\n
\\n \\n
\\n
\\n

N.A

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
KPI Card
\\n
\\n \\n
\\n \\n Select Workshop\\n \\n \\n \\n {{workshop}}\\n \\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
{{selectedCallCoverage.kpiName || 'Call Coverage'}}
\\n
\\n {{selectedCallCoverage.actualVal||0}}{{selectedCallCoverage.unit||'%'}}\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n

MoM

\\n
\\n
\\n

\\n \\n {{selectedCallCoverage.growthRate}}{{selectedCallCoverage.unit||'%'}}\\n

\\n

0\\\">\\n \\n {{selectedCallCoverage.growthRate}}{{selectedCallCoverage.unit||'%'}}\\n

\\n

\\n {{selectedCallCoverage.growthRate || 0}}{{selectedCallCoverage.unit||'%'}}\\n

\\n

\\n N.A\\n

\\n
\\n
\\n
\\n

N.A

\\n
\\n
\\n
\\n
\\n
{{selectedAvgCall.kpiName || 'Avg. Call Duration'}}
\\n
\\n {{selectedAvgCall.actualVal||0}}{{selectedAvgCall.unit}}
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n

MoM

\\n
\\n
\\n

\\n {{selectedAvgCall.growthRate}}%\\n

\\n

0\\\">\\n {{selectedAvgCall.growthRate}}%\\n

\\n

\\n {{selectedAvgCall.growthRate || 0}}{{selectedAvgCall.unit||'%'}}\\n

\\n

\\n N.A\\n

\\n
\\n
\\n
\\n

N.A

\\n
\\n
\\n
\\n
\\n
\\n
\\n
{{selectedOverAllConversion.kpiName || 'Overall Conversion Rate'}}\\n
\\n
\\n {{selectedOverAllConversion.actualVal||0}}{{selectedOverAllConversion.unit||'%'}}
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n

MoM

\\n
\\n
\\n

\\n \\n {{selectedOverAllConversion.growthRate}}{{selectedOverAllConversion.unit||'%'}}\\n

\\n

0\\\">\\n \\n {{selectedOverAllConversion.growthRate}}{{selectedOverAllConversion.unit||'%'}}\\n

\\n

\\n {{selectedOverAllConversion.growthRate || 0}}{{selectedOverAllConversion.unit||'%'}}\\n

\\n

\\n N.A\\n

\\n
\\n
\\n
\\n

N.A

\\n
\\n
\\n
\\n
\\n
{{selectedBookingRate.kpiName || 'Booking Rate'}}
\\n
\\n {{selectedBookingRate.actualVal||0}}{{selectedBookingRate.unit||'%'}}\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n

MoM

\\n
\\n
\\n

\\n \\n {{selectedBookingRate.growthRate}}{{selectedBookingRate.unit||'%'}}\\n

\\n

0\\\">\\n \\n {{selectedBookingRate.growthRate}}{{selectedBookingRate.unit||'%'}}\\n

\\n

\\n {{selectedBookingRate.growthRate || 0}}{{selectedBookingRate.unit||'%'}}\\n

\\n

\\n N.A\\n

\\n
\\n
\\n
\\n

N.A

\\n
\\n
\\n
\\n
\\n
\\n
\\n
{{selectedPerCallConversion.kpiName || 'Conversion Per Call'}}\\n
\\n
\\n {{selectedPerCallConversion.actualVal||0}}{{selectedPerCallConversion.unit}}\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n

MoM

\\n
\\n
\\n

\\n \\n {{selectedPerCallConversion.growthRate}}{{selectedPerCallConversion.unit||'%'}}\\n

\\n

0\\\">\\n \\n {{selectedPerCallConversion.growthRate}}{{selectedPerCallConversion.unit||'%'}}\\n

\\n

\\n {{selectedPerCallConversion.growthRate || 0}}{{selectedPerCallConversion.unit||'%'}}\\n

\\n

\\n N.A\\n

\\n
\\n
\\n
\\n

N.A

\\n
\\n
\\n
\\n
\\n
{{selectedLostConversion.kpiName || 'Lost Conversion Rate'}}
\\n
\\n {{selectedLostConversion.actualVal||0}}{{selectedLostConversion.unit||'%'}}
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n

MoM

\\n
\\n
\\n

\\n \\n {{selectedLostConversion.growthRate}}{{selectedLostConversion.unit||'%'}}\\n

\\n

0\\\">\\n \\n {{selectedLostConversion.growthRate}}{{selectedLostConversion.unit||'%'}}\\n

\\n

\\n {{selectedLostConversion.growthRate || 0}}{{selectedLostConversion.unit||'%'}}\\n

\\n

\\n N.A\\n

\\n
\\n
\\n
\\n

N.A

\\n
\\n
\\n
\\n
\\n
\\n
\\n
{{selectedSuccessReminder.kpiName || 'Success Rate Of Reminder\\n Calls'}}\\n
\\n
\\n {{selectedSuccessReminder.actualVal||0}}{{selectedSuccessReminder.unit||'%'}}\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n

MoM

\\n
\\n
\\n

\\n \\n {{selectedSuccessReminder.growthRate}}{{selectedSuccessReminder.unit||'%'}}\\n

\\n

0\\\">\\n \\n {{selectedSuccessReminder.growthRate}}{{selectedSuccessReminder.unit||'%'}}\\n

\\n

\\n {{selectedSuccessReminder.growthRate || 0}}{{selectedSuccessReminder.unit||'%'}}\\n

\\n

\\n N.A\\n

\\n
\\n
\\n
\\n

N.A

\\n
\\n
\\n
\\n
\\n
{{selectedSuccessNoShow.kpiName || 'Success Rate Of No Show\\n Calls'}}\\n
\\n
\\n {{selectedSuccessNoShow.actualVal||0}}{{selectedSuccessNoShow.unit||'%'}}\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n

MoM

\\n
\\n
\\n

\\n \\n {{selectedSuccessNoShow.growthRate}}{{selectedSuccessNoShow.unit||'%'}}\\n

\\n

0\\\">\\n \\n {{selectedSuccessNoShow.growthRate}}{{selectedSuccessNoShow.unit||'%'}}\\n

\\n

\\n {{selectedSuccessNoShow.growthRate || 0}}{{selectedSuccessNoShow.unit||'%'}}\\n

\\n

\\n N.A\\n

\\n
\\n
\\n
\\n

N.A

\\n
\\n
\\n
\\n
\\n
\\n
\\n
{{selectedSuccessVisit.kpiName || 'Success Rate Of Visit Calls'}}\\n
\\n
\\n {{selectedSuccessVisit.actualVal||0}}{{selectedSuccessVisit.unit||'%'}}\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n

MoM

\\n
\\n
\\n

\\n \\n {{selectedSuccessVisit.growthRate}}{{selectedSuccessVisit.unit||'%'}}\\n

\\n

0\\\">\\n \\n {{selectedSuccessVisit.growthRate}}{{selectedSuccessVisit.unit||'%'}}\\n

\\n

\\n {{selectedSuccessVisit.growthRate || 0}}{{selectedSuccessVisit.unit||'%'}}\\n

\\n

\\n N.A\\n

\\n
\\n
\\n
\\n

N.A

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\"","export default \"
\\n \\n
\\n\\n
\\n \\n \\n \\n
\\n
\\n
\\n \\n
Total Attempts (N.U)\\n
\\n {{callStats.totalAttempts || 0}} \\n
\\n
\\n
\\n \\n
Contacted (U)
\\n {{callStats.customerContacted ||\\n 0}}\\n
\\n
\\n
\\n \\n
Follow-up (U)
\\n {{callStats.followUp || 0}}\\n
\\n
\\n
\\n \\n
Booking (U)
\\n {{callStats.noOfBooking || 0}}\\n
\\n
\\n
\\n \\n
No Service (U)
\\n {{callStats.noService || 0}}\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n Service Call\\n Reminder\\n Visit\\n No-show\\n Inbound Call\\n
\\n \\n Unique Attempts\\n \\n
\\n
\\n {{callStats.serviceCall || 0}}\\n {{callStats.reminderCall || 0}}\\n {{callStats.visitCall || 0}}\\n {{callStats.noShow || 0}}\\n {{callStats.inbound || 0}}\\n
\\n \\n {{callStats.uniqueAttempts || 0}}\\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n
\\n
\\n
\\n
\\n
\\n \\n Service Type\\n \\n \\n {{value | truncate}}\\n \\n \\n \\n
\\n
\\n \\n Customer Type\\n \\n \\n {{value}}\\n \\n \\n \\n
\\n
\\n \\n Location\\n \\n \\n {{value}}\\n \\n \\n \\n
\\n
\\n \\n Call Type\\n \\n \\n {{value}}\\n \\n \\n \\n
\\n
\\n \\n Call Status Desc\\n \\n \\n {{value}}\\n \\n \\n \\n
\\n
\\n \\n Prediction Type\\n \\n \\n {{value.viewValue}}\\n \\n \\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n \\n Calls To Be Made: {{customersToBeCalled}}\\n \\n Worked Calls: {{callsMade1}}\\n \\n
\\n
\\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n
Customer Name \\n \\n \\n {{element.customerName | truncate}}\\n   \\n Location \\n {{element.location | truncate}}\\n Service Type \\n {{element.serviceType | truncate}}\\n Call Type {{element.callType | truncate}} Call State {{element.callStatus | truncate}} Service\\n Due Date\\n {{element.serviceDueDate | date:'dd-MM-yy'}}\\n \\n Last Call {{element?.lastCallTime | date:'dd-MM-yy\\n hh:mm a'}} CRE Input \\n {{element.creInput | truncate}}\\n Follow-up {{element?.followUpTime | date:'dd-MM-yy hh:mm a'}} Remarks \\n {{element.remarks | truncate}}\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\"","export default \"
\\n \\n
\\n\\n
\\n
\\n Call List/\\n
\\n\\n
\\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n
\\n \\n

\\n {{cus360?.DOORSTEP_CUSTOMER_INFO.customerCity}} {{cus360?.DOORSTEP_CUSTOMER_INFO.customerPinCode}}\\n

\\n
\\n
\\n
\\n \\n \\n \\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
Contact Number
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n Invalid phone number, Number length should be 10.\\n \\n
\\n \\n \\n \\n \\n \\n Invalid phone number, Number length should be 10.\\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n
\\n {{regNumber}}\\n
\\n
\\n
\\n \\n
\\n
\\n {{vin}}\\n
\\n
\\n
\\n \\n \\n
NameContact NumberRegistration NoVin No
\\n \\n {{contact.customerName}}\\n \\n \\n \\n \\n {{contact.registrationNumber.split(',')[0]}}...{{contact.vin.split(',')[0]}}...
\\n
\\n
\\n
\\n \\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n
\\n {{regNumber}}\\n
\\n
\\n
\\n \\n
\\n
\\n {{vin}}\\n
\\n
\\n
\\n \\n \\n
NameContact NumberRegistration NoVin No
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n Invalid phone number, Number length should be 10.\\n \\n {{contact.registrationNumber.split(',')[0]}}...{{contact.vin.split(',')[0]}}...
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n \\n Select Workshop\\n \\n \\n {{workShop.workshopCode}} - {{workShop.workshopName}}\\n \\n \\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n Call Logs \\n \\n \\n
\\n \\n \\n
\\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n
Start Time\\n {{(element.callDate +' '+ element.startTime)| date : \\\"h:mm a\\\"}} Duration {{element.duration}}\\n Number\\n {{element.custNo}} Date {{element.callDate | date : \\\"dd/MM/yy\\\" }} \\n Recordings\\n \\n \\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n \\n
\\n \\n
\\n \\n \\n \\n
\\n \\n \\n Select Vehicle\\n \\n \\n {{item.vin6Bits}}\\n \\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n
\\n \\n Service Details\\n
\\n
\\n {{vehicleTypeCallInfo}}\\n {{vehicleServiceAndStausInfo}}\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n

{{serviceDetails?.bookingDate | date : \\\"dd/MM/yy\\\"}}

\\n
\\n
\\n \\n

{{serviceDetails?.predictionType}}

\\n
\\n
\\n \\n

{{serviceDetails?.workShop}}

\\n
\\n
\\n \\n

{{serviceDetails?.serviceDueMileage}}

\\n
\\n
\\n
\\n
\\n \\n

{{serviceDetails?.serviceIntervel}}

\\n
\\n
\\n \\n

{{serviceDetails?.serviceDueDate | date : \\\"dd/MM/yy\\\"}}

\\n
\\n
\\n \\n

{{serviceDetails?.currentMileage}}

\\n
\\n
\\n \\n

{{serviceDetails?.mileageSinceLastVisit}}

\\n
\\n
\\n
\\n
\\n \\n

{{serviceDetails?.averageMileage}}

\\n
\\n
\\n \\n

{{serviceDetails?.remarks}}

\\n
\\n
\\n \\n

{{bookingDuration}}

\\n
\\n
\\n \\n

{{serviceCount}}

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n \\n \\n \\n \\n \\n \\n Customer Remarks \\n \\n \\n
\\n \\n \\n
\\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n
Remark\\n {{element.remarks}} Remark Date {{element.remarkDate | date : \\\"dd/MM/yy\\\"}}\\n Remark Time\\n {{element.remarkTime | date: \\\"hh:mm a\\\"}}
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n Vehicle Details \\n \\n \\n
\\n \\n \\n
\\n
\\n \\n

{{vehicleDetails?.model}}

\\n
\\n
\\n \\n

{{vehicleDetails?.chassisNumber}}

\\n
\\n
\\n \\n

{{vehicleDetails?.registrationNumber}}

\\n
\\n
\\n \\n

{{vehicleDetails?.dealerName}}

\\n
\\n
\\n
\\n
\\n \\n

{{vehicleDetails?.tipperHaulageIndicator}}

\\n
\\n
\\n \\n

{{vehicleDetails?.division}}

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n Last Service Details \\n \\n \\n
\\n \\n \\n
\\n
\\n \\n

{{lastServiceDetails?.lastVisitDate | date : \\\"dd/MM/yy\\\"}}

\\n
\\n
\\n \\n

{{lastServiceDetails?.workType}}

\\n
\\n
\\n \\n

{{lastServiceDetails?.jobCardNumber}}

\\n
\\n
\\n \\n

{{lastServiceDetails?.billAmount}}

\\n
\\n
\\n
\\n
\\n \\n

{{lastServiceDetails?.workshopName}}

\\n
\\n
\\n \\n

{{lastServiceDetails?.mileage}}

\\n
\\n
\\n \\n

{{lastServiceDetails?.invoiceDate | date : \\\"dd/MM/yy\\\"}}

\\n
\\n
\\n \\n

{{lastServiceDetails?.conversionType}}\\n

\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n \\n \\n Show Complete Vehicle History\\n \\n \\n Hide History\\n \\n \\n
\\n \\n \\n
\\n \\n \\n
\\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n\\n \\n \\n \\n \\n \\n\\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n
JobCard {{element.jcNo}} Vin {{element.vin}} \\n Jobcard Date & Time\\n {{element.jbcardDate | date : \\\"dd/MM/yy\\\"}} Audit Date {{element.audate | date : \\\"dd/MM/yy\\\"}} \\n Dealer Code/Name/Location\\n \\n {{element.werks}}/{{element.plantDes}}/{{element.dealerLoc}}\\n \\n Odometer/Units\\n {{element.mileage}} {{element.mileageType}} PlantDes {{element.plantDes}} Order Type {{element.servNo}} Tipper {{element.tipper}} Werks {{element.werks}} Failure Date\\n {{element.failureDate | date : \\\"dd/MM/yy\\\"}} Billing Date\\n {{element.billDate | date : \\\"dd/MM/yy\\\"}} INS date {{element.insdate | date : \\\"dd/MM/yy\\\"}} Mechanic {{element.mechanic}} \\n ServiceAdvisor\\n {{element.serviceAdv}} ServiceAdv No\\n {{element.serviceAdvNo}}
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n \\n \\n
\\n \\n
\\n
\\n\"","export default \"
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n\\n
\\n \\n \\n
\"","export default \"
\\n \\n
\\n \\n \\n
\"","export default \"
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n Dashboard\\n \\n
\\n
\\n \\n Dashboard\\n \\n \\n {{dashboard}}\\n \\n \\n
\\n \\n
\\n
\\n
\\n \\n
\\n \\n \\n \\n \\n \\n
\\n
\\n
\\n \\n
\\n \\n \\n \\n \\n \\n
\\n
\\n
\\n \\n \\n Service Type\\n \\n \\n All\\n \\n \\n {{service.value}}\\n \\n \\n \\n
\\n
\\n \\n \\n Select Workshop\\n \\n \\n \\n {{workshop}}\\n \\n \\n
\\n
\\n \\n \\n Select SME\\n \\n \\n \\n {{cre}}\\n \\n \\n
\\n
\\n \\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n \\n
\\n
\\n

\\n Allotted\\n

\\n
\\n
\\n

{{allocated.actualVal || 0}}

\\n
\\n
\\n

\\n {{allocated.growthRate || 0}}{{allocated.unit||'%'}}\\n

\\n

0\\\">\\n {{allocated.growthRate || 0}}{{allocated.unit||'%'}}\\n

\\n

\\n {{allocated.growthRate || 0}}{{allocated.unit||'%'}}\\n

\\n

\\n N.A\\n

\\n

MoM

\\n
\\n
\\n

{{attempted.actualVal || 0}}

\\n

Attempted

\\n
\\n
\\n

{{notAttempted.actualVal || 0}}

\\n

Not Attempted

\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n Attempted\\n
\\n \\n
\\n
\\n
\\n

{{attempted.actualVal || 0}}

\\n\\n
\\n
\\n

\\n {{attempted.growthRate || 0}}{{attempted.unit||'%'}}\\n

\\n

0\\\">\\n {{attempted.growthRate || 0}}{{attempted.unit||'%'}}\\n

\\n

\\n {{attempted.growthRate || 0}}{{attempted.unit||'%'}}\\n

\\n

\\n N.A\\n

\\n

MoM

\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n

{{contacted.actualVal || 0}}

\\n

Contacted

\\n
\\n
\\n

\\n {{notContacted.actualVal || 0}}\\n

\\n

Not Contacted

\\n
\\n
\\n
\\n

N.A

\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n

N.A

\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n Contacted\\n
\\n \\n
\\n
\\n
\\n

{{contacted.actualVal || 0}}

\\n\\n
\\n
\\n

\\n {{contacted.growthRate || 0}}{{contacted.unit||'%'}}\\n

\\n

0\\\">\\n {{contacted.growthRate || 0}}{{contacted.unit||'%'}}\\n

\\n

\\n {{contacted.growthRate || 0}}{{contacted.unit||'%'}}\\n

\\n

\\n N.A\\n

\\n

MoM

\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n

{{this.booking.actualVal || 0}}

\\n

Booking

\\n
\\n
\\n

{{this.contactedFollowup.actualVal || 0}}

\\n

Follow-up

\\n
\\n
\\n

\\n {{this.connectedSystemClose.actualVal || 0}}\\n

\\n

System Closed

\\n
\\n
\\n

\\n {{this.contactedNoService.actualVal || 0}}\\n

\\n

No Service

\\n
\\n
\\n
\\n

N.A

\\n
\\n
\\n
\\n \\n \\n
\\n \\n
\\n
\\n

N.A

\\n
\\n
\\n \\n
\\n \\n
\\n
\\n

N.A

\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n Bookings\\n
\\n \\n
\\n
\\n
\\n

{{booking.actualVal || 0}}

\\n\\n
\\n
\\n

\\n {{booking.growthRate || 0}}{{booking.unit||'%'}}\\n

\\n

0\\\">\\n {{booking.growthRate || 0}}{{booking.unit||'%'}}\\n

\\n

\\n {{booking.growthRate || 0}}{{booking.unit||'%'}}\\n

\\n

\\n N.A\\n

\\n

MoM

\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n

{{activeBooking.actualVal}}

\\n

Active

\\n
\\n
\\n

{{bookingNoService.actualVal}}

\\n

No Service

\\n
\\n
\\n

{{bookingFollowup.actualVal}}

\\n

Follow Up

\\n
\\n
\\n

{{bookingSystemClose.actualVal}}

\\n

System Closed

\\n
\\n
\\n

\\n {{converted.actualVal}}\\n

\\n

Converted

\\n
\\n
\\n
\\n

N.A

\\n
\\n
\\n
\\n \\n \\n
\\n \\n
\\n
\\n

N.A

\\n
\\n
\\n \\n
\\n \\n
\\n
\\n

N.A

\\n
\\n
\\n \\n
\\n \\n
\\n
\\n

N.A

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
KPI Card
\\n
\\n \\n
\\n \\n Select Workshop\\n \\n \\n \\n {{workshop}}\\n \\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
{{selectedCallCoverage.kpiName || 'Call Coverage'}}
\\n
\\n {{selectedCallCoverage.actualVal||0}}{{selectedCallCoverage.unit||'%'}}\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n

MoM

\\n
\\n
\\n

\\n {{selectedCallCoverage.growthRate}}{{selectedCallCoverage.unit||'%'}}\\n

\\n

0\\\">\\n {{selectedCallCoverage.growthRate}}{{selectedCallCoverage.unit||'%'}}\\n

\\n

\\n {{selectedCallCoverage.growthRate || 0}}{{selectedCallCoverage.unit||'%'}}\\n

\\n

\\n N.A\\n

\\n
\\n
\\n
\\n

N.A

\\n
\\n
\\n
\\n
\\n
{{selectedAvgCall.kpiName || 'Avg. Call Duration'}}
\\n
\\n {{selectedAvgCall.actualVal||0}}{{selectedAvgCall.unit}}
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n

MoM

\\n
\\n
\\n

\\n {{selectedAvgCall.growthRate}}%\\n

\\n

0\\\">\\n {{selectedAvgCall.growthRate}}%\\n

\\n

\\n {{selectedAvgCall.growthRate || 0}}{{selectedAvgCall.unit||'%'}}\\n

\\n

\\n N.A\\n

\\n
\\n
\\n
\\n

N.A

\\n
\\n
\\n
\\n
\\n
\\n
\\n
{{selectedOverAllConversion.kpiName || 'Overall Conversion Rate'}}
\\n
\\n {{selectedOverAllConversion.actualVal||0}}{{selectedOverAllConversion.unit||'%'}}
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n

MoM

\\n
\\n
\\n

\\n {{selectedOverAllConversion.growthRate}}{{selectedOverAllConversion.unit||'%'}}\\n

\\n

0\\\">\\n {{selectedOverAllConversion.growthRate}}{{selectedOverAllConversion.unit||'%'}}\\n

\\n

\\n {{selectedOverAllConversion.growthRate || 0}}{{selectedOverAllConversion.unit||'%'}}\\n

\\n

\\n N.A\\n

\\n
\\n
\\n
\\n

N.A

\\n
\\n
\\n
\\n
\\n
{{selectedBookingRate.kpiName || 'Booking Rate'}}
\\n
\\n {{selectedBookingRate.actualVal||0}}{{selectedBookingRate.unit||'%'}}\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n

MoM

\\n
\\n
\\n

\\n {{selectedBookingRate.growthRate}}{{selectedBookingRate.unit||'%'}}\\n

\\n

0\\\">\\n {{selectedBookingRate.growthRate}}{{selectedBookingRate.unit||'%'}}\\n

\\n

\\n {{selectedBookingRate.growthRate || 0}}{{selectedBookingRate.unit||'%'}}\\n

\\n

\\n N.A\\n

\\n
\\n
\\n
\\n

N.A

\\n
\\n
\\n
\\n
\\n
\\n
\\n
{{selectedPerCallConversion.kpiName || 'Conversion Per Call'}}
\\n
\\n {{selectedPerCallConversion.actualVal||0}}{{selectedPerCallConversion.unit}}\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n

MoM

\\n
\\n
\\n

\\n {{selectedPerCallConversion.growthRate}}{{selectedPerCallConversion.unit||'%'}}\\n

\\n

0\\\">\\n {{selectedPerCallConversion.growthRate}}{{selectedPerCallConversion.unit||'%'}}\\n

\\n

\\n {{selectedPerCallConversion.growthRate || 0}}{{selectedPerCallConversion.unit||'%'}}\\n

\\n

\\n N.A\\n

\\n
\\n
\\n
\\n

N.A

\\n
\\n
\\n
\\n
\\n
{{selectedLostConversion.kpiName || 'Lost Conversion Rate'}}
\\n
\\n {{selectedLostConversion.actualVal||0}}{{selectedLostConversion.unit||'%'}}
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n

MoM

\\n
\\n
\\n

\\n {{selectedLostConversion.growthRate}}{{selectedLostConversion.unit||'%'}}\\n

\\n

0\\\">\\n {{selectedLostConversion.growthRate}}{{selectedLostConversion.unit||'%'}}\\n

\\n

\\n {{selectedLostConversion.growthRate || 0}}{{selectedLostConversion.unit||'%'}}\\n

\\n

\\n N.A\\n

\\n
\\n
\\n
\\n

N.A

\\n
\\n
\\n
\\n
\\n
\\n
\\n
{{selectedSuccessReminder.kpiName || 'Success Rate Of Reminder Calls'}}
\\n
\\n {{selectedSuccessReminder.actualVal||0}}{{selectedSuccessReminder.unit||'%'}}\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n

MoM

\\n
\\n
\\n

\\n {{selectedSuccessReminder.growthRate}}{{selectedSuccessReminder.unit||'%'}}\\n

\\n

0\\\">\\n {{selectedSuccessReminder.growthRate}}{{selectedSuccessReminder.unit||'%'}}\\n

\\n

\\n {{selectedSuccessReminder.growthRate || 0}}{{selectedSuccessReminder.unit||'%'}}\\n

\\n

\\n N.A\\n

\\n
\\n
\\n
\\n

N.A

\\n
\\n
\\n
\\n
\\n
{{selectedSuccessNoShow.kpiName || 'Success Rate Of No Show Calls'}}
\\n
\\n {{selectedSuccessNoShow.actualVal||0}}{{selectedSuccessNoShow.unit||'%'}}\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n

MoM

\\n
\\n
\\n

\\n {{selectedSuccessNoShow.growthRate}}{{selectedSuccessNoShow.unit||'%'}}\\n

\\n

0\\\">\\n {{selectedSuccessNoShow.growthRate}}{{selectedSuccessNoShow.unit||'%'}}\\n

\\n

\\n {{selectedSuccessNoShow.growthRate || 0}}{{selectedSuccessNoShow.unit||'%'}}\\n

\\n

\\n N.A\\n

\\n
\\n
\\n
\\n

N.A

\\n
\\n
\\n
\\n
\\n
\\n
\\n
{{selectedSuccessVisit.kpiName || 'Success Rate Of Visit Calls'}}
\\n
\\n {{selectedSuccessVisit.actualVal||0}}{{selectedSuccessVisit.unit||'%'}}\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n

MoM

\\n
\\n
\\n

\\n {{selectedSuccessVisit.growthRate}}{{selectedSuccessVisit.unit||'%'}}\\n

\\n

0\\\">\\n {{selectedSuccessVisit.growthRate}}{{selectedSuccessVisit.unit||'%'}}\\n

\\n

\\n {{selectedSuccessVisit.growthRate || 0}}{{selectedSuccessVisit.unit||'%'}}\\n

\\n

\\n N.A\\n

\\n
\\n
\\n
\\n

N.A

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\"","export default \"
\\n \\n
\\n
\\n
\\n \\n \\n \\n
\\n \\n \\n \\n \\n \\n \\n {{option.vin}}\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n {{customer.customerName}}\\n \\n \\n \\n
\\n
\\n
\\n\\n \\n \\n
\\n \\n
\\n
\\n \\n \\n Owner Details\\n \\n
\\n
\\n \\n

{{customerDetails[0].customerName}}

\\n
\\n
\\n \\n \\n \\n Invalid phone number, Number length should be 10.\\n \\n
\\n
\\n
\\n
\\n \\n \\n Fleet Manager Details\\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n \\n Invalid phone number, Number length should be 10.\\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n Fleet Manager Details\\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
NameNumber
{{fleet.fleetName}}{{fleet.fleetContactNo}}
\\n
\\n
\\n
\\n \\n \\n \\n \\n
\\n
\\n\\n \\n \\n \\n
\\n \\n \\n Select Vehicle\\n \\n \\n {{item.type}}\\n \\n \\n \\n
\\n
\\n
\\n\\n \\n \\n \\n
\\n \\n \\n Select Vehicle\\n \\n
\\n \\n \\n {{vehicle.type}}\\n \\n \\n
\\n
\\n
\\n \\n \\n Select Vehicle Chasis\\n \\n \\n {{vehicle.vin}}\\n \\n \\n \\n
\\n
\\n \\n

{{selectedVehicle.model}}

\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n \\n Invalid phone number, Number length should be 10.\\n \\n
\\n
\\n
\\n
\\n \\n \\n Select Registration Number\\n \\n \\n {{vehicle.registrationNumber}}\\n \\n \\n \\n
\\n
\\n \\n

{{selectedVehicle.model}}

\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n \\n Invalid phone number, Number length should be 10.\\n \\n
\\n
\\n
\\n
\\n
\\n\\n \\n \\n
\\n \\n
\\n \\n \\n Service Details\\n \\n
\\n
\\n \\n \\n Schedule Service\\n \\n \\n {{serviceType.type}}\\n \\n \\n \\n
\\n
\\n \\n \\n Miscellaneous Service\\n \\n \\n {{miscellaneousService.type}}\\n \\n \\n \\n
\\n
\\n \\n

{{selectedVehicle.callStatusDescription}}

\\n
\\n
\\n \\n

{{selectedDoorstepVehicle.callStatusDescription || selectedVehicle.callStatusDescription}}

\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n Dealer Name/Code\\n \\n \\n {{workShop.workshopCode}} - {{workShop.workshopName}}\\n \\n \\n \\n
\\n
\\n \\n \\n Dealer Name/Code\\n \\n \\n {{workShop.workshopCode}} - {{workShop.workshopName}}\\n \\n \\n \\n
\\n
\\n \\n
\\n \\n \\n \\n \\n \\n
\\n \\n
\\n \\n \\n \\n \\n \\n
\\n \\n Tip : You can not book on current date.\\n \\n \\n Date and time should be greater than current time.\\n \\n
\\n
\\n \\n
\\n \\n \\n
\\n \\n Bay is occupied please select another time slot.\\n \\n
\\n
\\n \\n \\n \\n \\n {{package.packageDescription}} - {{package.price| currency: 'INR'}}\\n \\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n \\n \\n
\\n
\\n \\n \\n \\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n Bay {{i+1}}\\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n\\n
\\n
\\n \\n \\n Payment Mode\\n \\n \\n {{payment.type}}\\n \\n \\n \\n
\\n
\\n \\n \\n Additional Service Required\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n Address\\n \\n \\n\\n
\\n
\\n\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n
\\n
\\n
\\n
\\n\"","export default \"
\\n \\n
\\n\\n
\\n \\n \\n \\n
\\n
\\n
\\n \\n
Total Attempts (N.U)\\n
\\n {{callStats.totalAttempts || 0}} \\n
\\n
\\n
\\n \\n
Contacted (U)
\\n {{callStats.customerContacted || 0}}\\n
\\n
\\n
\\n \\n
Follow-up (U)
\\n {{callStats.followUp || 0}}\\n
\\n
\\n
\\n \\n
Booking (U)
\\n {{callStats.noOfBooking || 0}}\\n
\\n
\\n
\\n \\n
To Visit (U)
\\n {{callStats.toVisit || 0}}\\n
\\n
\\n
\\n \\n
Not To Visit (U)
\\n {{callStats.notToVisit || 0}}\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n Service Call\\n Reminder\\n Visit\\n No-show\\n
\\n \\n Unique Attempts\\n \\n
\\n
\\n {{callStats.serviceCall || 0}}\\n {{callStats.reminderCall || 0}}\\n {{callStats.visitCall || 0}}\\n {{callStats.noShow || 0}}\\n
\\n \\n {{callStats.uniqueAttempts || 0}}\\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n
\\n
\\n
\\n \\n Call List Type\\n \\n \\n {{value.viewValue}}\\n \\n \\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n \\n Call Type\\n \\n \\n {{value}}\\n \\n \\n \\n
\\n
\\n \\n Call Status Desc\\n \\n \\n {{value}}\\n \\n \\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n Calls To Be Made: {{customersToBeCalled}}\\n \\n Worked Calls: {{callsMade1}}\\n \\n
\\n
\\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n
Customer Name \\n {{element.customerName | truncate}}   \\n Call Type {{element.callType}} Call State {{element.callStatus}} Lead Generation Date {{element.leadGenerationDate | date:'dd-MM-yy'}} Last Call {{element?.callTime | date:'dd-MM-yy hh:mm a'}} CRE Input \\n {{element.creInput | truncate}}\\n Follow-up {{element?.followUpTime | date:'dd-MM-yy hh:mm a'}} Remarks \\n {{element.remarks | truncate}}\\n
\\n
\\n \\n
\\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n Calls To Be Made: {{visitCustomersToBeCalled}}\\n \\n Worked Calls: {{visitCallsMade1}}\\n \\n
\\n
\\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n
Customer Name \\n {{element.customerName | truncate}}   \\n Call Type {{element.callType}} Call State {{element.callStatus}} Lead Generation Date {{element.leadGenerationDate | date:'dd-MM-yy'}} Visiting Date {{element.visitingDate | date:'dd-MM-yy'}} Last Call {{element?.callTime | date:'dd-MM-yy hh:mm a'}} CRE Input \\n {{element.creInput | truncate}}\\n Disengage Reason \\n {{element.disengageReason}}\\n proposal \\n {{element.proposal}}\\n Remarks \\n {{element.remarks | truncate}}\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n\"","export default \"
\\n \\n
\\n\\n
\\n
\\n Call List/\\n
\\n
\\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n
\\n \\n

\\n {{cus360?.LOST_CUSTOMER_INFO.custCity}} {{cus360?.LOST_CUSTOMER_INFO.custPostlCode}}\\n

\\n
\\n
\\n \\n

\\n {{cus360?.LOST_CUSTOMER_INFO.lifetimeValue | currency: '₹'}}\\n

\\n
\\n
\\n
\\n \\n \\n \\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
Contact Number
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n Invalid phone number, Number length should be 10.\\n \\n
\\n \\n \\n \\n \\n \\n Invalid phone number, Number length should be 10.\\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n
\\n {{regNumber}}\\n
\\n
\\n
\\n \\n
\\n
\\n {{vin}}\\n
\\n
\\n
\\n \\n \\n
NameContact NumberRegistration NoVin No
\\n \\n {{contact.name}}\\n \\n \\n \\n \\n {{contact.regNumber.split(',')[0]}}...{{contact.vin.split(',')[0]}}...
\\n
\\n
\\n
\\n \\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n
\\n {{regNumber}}\\n
\\n
\\n
\\n \\n
\\n
\\n {{vin}}\\n
\\n
\\n
\\n \\n \\n
NameContact NumberRegistration NoVin No
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n Invalid phone number, Number length should be 10.\\n \\n {{contact.regNumber.split(',')[0]}}...{{contact.vin.split(',')[0]}}...
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n \\n Select Workshop\\n \\n \\n {{workShop.workshopCode}} - {{workShop.workshopName}}\\n \\n \\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n Call Logs \\n \\n \\n
\\n \\n \\n
\\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n
Start Time\\n {{(element.callDate +' '+ element.startTime)| date : \\\"h:mm a\\\"}} Duration {{element.duration}}\\n Number\\n {{element.custNo}} Date {{element.callDate | date : \\\"dd/MM/yy\\\" }} \\n Recordings\\n \\n \\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n \\n \\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n Customer Profile\\n \\n \\n
\\n \\n \\n
\\n
\\n \\n

{{customerInfo?.customerCode}}

\\n
\\n
\\n \\n

{{customerInfo?.customerType}}

\\n
\\n
\\n \\n

{{customerInfo?.vehicleCount}}

\\n
\\n
\\n \\n

{{customerInfo?.lostCount}}

\\n
\\n
\\n
\\n
\\n \\n

{{customerInfo?.bs1Count}}

\\n
\\n
\\n \\n

{{customerInfo?.bs2Count}}

\\n
\\n
\\n \\n

{{customerInfo?.bs3Count}}

\\n
\\n
\\n \\n

{{customerInfo?.bs4Count}}\\n

\\n
\\n \\n
\\n
\\n
\\n \\n

{{customerInfo?.bs6Count}}

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n \\n \\n Select Vehicle\\n \\n \\n {{item.vin6Bits}}\\n \\n \\n \\n
\\n
\\n
\\n
\\n\\n \\n \\n \\n \\n \\n \\n Customer Remarks \\n \\n \\n
\\n \\n \\n
\\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n
Remark\\n {{element.remark}} Remark Date {{element.remarkDate | date : \\\"dd/MM/yy\\\"}}\\n Remark Time\\n {{element.remarkTime | date: \\\"hh:mm a\\\"}}
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n Vehicle Details \\n \\n \\n
\\n \\n \\n
\\n
\\n \\n

{{vehicleDetails?.model}}

\\n
\\n
\\n \\n

{{vehicleDetails?.chassisNo}}

\\n
\\n
\\n \\n

{{vehicleDetails?.registrationNo}}

\\n
\\n
\\n \\n

{{vehicleDetails?.soldBy}}

\\n
\\n
\\n
\\n
\\n \\n

{{vehicleDetails?.tipperHaulageInd}}

\\n
\\n
\\n \\n

{{vehicleDetails?.division}}

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n Last Service Details \\n \\n \\n
\\n \\n \\n
\\n
\\n \\n

{{lastServiceDetails?.lastVisitedOn | date : \\\"dd/MM/yy\\\"}}

\\n
\\n
\\n \\n

{{lastServiceDetails?.workType}}

\\n
\\n
\\n \\n

{{lastServiceDetails?.jobCardNo}}

\\n
\\n
\\n \\n

{{lastServiceDetails?.billAmount}}

\\n
\\n
\\n
\\n
\\n \\n

{{lastServiceDetails?.workshopName}}

\\n
\\n
\\n \\n

{{lastServiceDetails?.milage}}

\\n
\\n
\\n \\n

{{lastServiceDetails?.invoiceDate | date : \\\"dd/MM/yy\\\"}}

\\n
\\n
\\n \\n

{{lastServiceDetails?.conversionType}}\\n

\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n \\n \\n Show Complete Vehicle History\\n \\n \\n Hide History\\n \\n \\n
\\n \\n \\n
\\n \\n \\n
\\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n\\n \\n \\n \\n \\n \\n\\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n
JobCard {{element.jcNo}} Vin {{element.vin}} \\n Jobcard Date & Time\\n {{element.jbcardDate | date : \\\"dd/MM/yy\\\"}} Audit Date {{element.audate | date : \\\"dd/MM/yy\\\"}} \\n Dealer Code/Name/Location\\n \\n {{element.werks}}/{{element.plantDes}}/{{element.dealerLoc}}\\n \\n Odometer/Units\\n {{element.mileage}} {{element.mileageType}} PlantDes {{element.plantDes}} Order Type {{element.servNo}} Tipper {{element.tipper}} Werks {{element.werks}} Failure Date\\n {{element.failureDate | date : \\\"dd/MM/yy\\\"}} Billing Date\\n {{element.billDate | date : \\\"dd/MM/yy\\\"}} INS date {{element.insdate | date : \\\"dd/MM/yy\\\"}} Mechanic {{element.mechanic}} \\n ServiceAdvisor\\n {{element.serviceAdv}} ServiceAdv No\\n {{element.serviceAdvNo}}
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n \\n \\n
\\n \\n
\\n
\\n\"","export default \"\\n\\n
\\n \\n \\n
\\n
\\n
\\n \\n \\n Region\\n \\n All\\n \\n {{value}}\\n \\n \\n \\n
\\n
\\n \\n \\n Workshop Code\\n \\n \\n All\\n \\n {{value}}\\n \\n \\n \\n
\\n
\\n \\n \\n Service Type\\n \\n All\\n \\n {{service.value}}\\n \\n \\n \\n
\\n
\\n \\n \\n Lost Age\\n \\n All\\n \\n {{lost.value}}\\n \\n \\n \\n
\\n
\\n \\n \\n Vehicle Age\\n \\n All\\n \\n {{Vehicle.value}}\\n \\n \\n \\n
\\n
\\n \\n
\\n \\n \\n \\n \\n \\n
\\n
\\n
\\n \\n
\\n \\n \\n \\n \\n \\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\"","export default \"
\\n \\n
\\n\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n Enquiry ID\\n \\n \\n {{value}}\\n \\n \\n \\n
\\n
\\n \\n \\n Product Name\\n \\n \\n {{value}}\\n \\n \\n \\n
\\n
\\n \\n \\n Chassis No.\\n \\n \\n {{value}}\\n \\n \\n \\n
\\n
\\n \\n \\n Lead Status\\n \\n \\n {{value}}\\n \\n \\n \\n
\\n
\\n \\n \\n Customer Mobile\\n \\n \\n {{value}}\\n \\n \\n \\n
\\n
\\n \\n \\n Customer Name\\n \\n \\n {{value}}\\n \\n \\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n Start Date\\n \\n \\n \\n \\n \\n \\n
\\n
\\n \\n \\n End Date\\n \\n \\n \\n \\n \\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n
Customer Name \\n {{element.customerName | truncate}}\\n   \\n Enquiry ID \\n {{element.enquiryId | truncate}}   \\n Product Name \\n {{element.productType | truncate}}\\n   \\n Chassis No.\\n {{element.vin | truncate}}\\n   \\n Customer Mobile\\n {{element.custTelNo | truncate}}\\n   \\n Lead Type {{element.leadType}} Call Status {{element.leadStatus}} Likely Buy Date\\n {{element.likelyBuyDate |\\n date:'dd-MM-yy'}} Follow-up {{element?.followUpDate | date:'dd-MM-yyyy hh:mm a'}}
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n\"","export default \"
\\n \\n
\\n\\n\\n
\\n
\\n
\\n

PIPELINE MANAGEMENT

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n

SEARCH CUSTOMER

\\n
\\n
\\n
\\n\\n \\n
\\n
\\n
\\n \\n \\n Customer Code\\n \\n \\n
\\n
\\n \\n \\n Customer Mobile\\n \\n \\n
\\n
\\n
\\n \\n \\n Customer Name\\n \\n \\n \\n {{option}}\\n \\n \\n \\n
\\n
\\n
\\n \\n \\n Veh Reg No\\n \\n \\n
\\n
\\n \\n \\n Chassis No\\n \\n \\n
\\n
\\n \\n \\n Start Date\\n \\n \\n \\n \\n \\n \\n
\\n
\\n \\n \\n End Date\\n \\n \\n \\n \\n \\n \\n
\\n
\\n
\\n \\n \\n Model\\n \\n \\n \\n {{option}}\\n \\n \\n \\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
Customer Name \\n {{element.customerName}}\\n Customer Code\\n {{element.customerCode}}\\n Customer Mobile No\\n {{element.customerTelephone}}\\n Vehicle Reg. No.\\n {{element.registrationNo}}\\n Chassis No\\n {{element.vin}}\\n Retail Date Range\\n {{element.saleDate}}\\n Model\\n {{element.vehicleModel}}\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n\"","export default \"
\\n \\n
\\n
\\n
\\n \\n \\n \\n \\n User Detail\\n \\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n

{{userInfo?.userId}}

\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n

{{userInfo?.username}}

\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n

{{userInfo?.role}}

\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n

{{userInfo?.email}}

\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n \\n \\n \\n Update Password\\n \\n \\n
\\n
\\n \\n \\n \\n This field is required\\n \\n
\\n
\\n \\n \\n
Password should be minimum 8 characters & maximum 255 characters long\\n and should contain one number,one Upper case latter, one Lower case latter and one special\\n character(!@#$%^&*()_+-=).\\n
\\n \\n This field is required\\n \\n
\\n
\\n \\n \\n \\n This field is required\\n \\n
\\n \\n Invalid password, Please try again.\\n \\n \\n Password you entered is not match.\\n \\n \\n New Password is same as the old Password.\\n \\n
\\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n\"","export default \"
\\n \\n
\\n\\n
\\n \\n \\n \\n
\\n
\\n
\\n \\n
Total Attempts (N.U)\\n
\\n {{callStats.totalAttempts || 0}} \\n
\\n
\\n
\\n \\n
Contacted (U)
\\n {{callStats.customerContacted || 0}}\\n
\\n
\\n
\\n \\n
Follow-up (U)
\\n {{callStats.followUp || 0}}\\n
\\n
\\n
\\n \\n
Feedback Received (U)
\\n {{callStats.feedbackReceived || 0}}\\n
\\n
\\n
\\n \\n
Partial Received (U)
\\n {{callStats.partialFeedback || 0}}\\n
\\n
\\n
\\n \\n
No Feedback (U)
\\n {{callStats.noFeedback || 0}}\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n PRS\\n 1st Month\\n 4th Month\\n 9th Month\\n
\\n \\n Unique Attempts\\n \\n
\\n
\\n {{callStats.prs || 0}}\\n {{callStats.oneMonth149 || 0}}\\n {{callStats.fourMonth149 || 0}}\\n {{callStats.nineMonth149 || 0}}\\n
\\n \\n {{callStats.uniqueAttempts || 0}}\\n \\n
\\n
\\n
\\n
\\n PRS\\n
\\n \\n Unique Attempts\\n \\n
\\n
\\n {{callStats.prs || 0}}\\n
\\n \\n {{callStats.uniqueAttempts || 0}}\\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n
\\n
\\n
\\n \\n Region\\n \\n \\n {{value}}\\n \\n \\n \\n
\\n
\\n \\n State\\n \\n \\n {{value}}\\n \\n \\n \\n
\\n
\\n \\n Dealer Code\\n \\n \\n \\n \\n {{value}}\\n \\n \\n \\n
\\n
\\n \\n Call Type\\n \\n \\n {{values}}\\n \\n \\n \\n
\\n
\\n \\n Vertical\\n \\n \\n {{value}}\\n \\n \\n \\n
\\n
\\n \\n Language\\n \\n \\n {{value}}\\n \\n \\n \\n
\\n
\\n \\n Account Type\\n \\n \\n {{value}}\\n \\n \\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n Calls To Be Made: {{customersToBeCalled}}\\n \\n Worked Calls: {{callsMade1}}\\n \\n
\\n
\\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n
Customer Name \\n {{element.customerName | truncate}}   \\n Contact Number \\n {{element.customerTel}}\\n Account Type {{element.accountType}} Call Type {{element.callType}} Call State {{element.callStatus}} Complaint ID {{element.complaintId}} Dealer Code {{element.dealerCode}} Dealer Location Name {{element.dealerLocation}} Dealer Category {{element.dealerCategory}} Language {{element.custLanguage}} Call Center Agent Input \\n {{element.creInput | truncate}}\\n CRE Input \\n {{element.creInput | truncate}}\\n Follow-up {{element?.followUpTime | date:'dd-MM-yyyy hh:mm a'}} Remarks \\n {{element.remarks | truncate}}\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n\"","export default \"
\\n \\n
\\n\\n
\\n
\\n Call List > \\n
\\n
\\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n
\\n \\n

{{cus360?.CUSTOMER_INFO.custCity}} {{cus360?.CUSTOMER_INFO.custPostlCode}}\\n

\\n
\\n
\\n
\\n \\n \\n \\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
Contact Number
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n Invalid phone number, Number length should be 10.\\n \\n
\\n \\n \\n \\n \\n \\n Invalid phone number, Number length should be 10.\\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
NameContact NumberRegistration NoVin No
\\n \\n \\n {{contact.name}}\\n \\n \\n \\n \\n \\n \\n \\n Invalid phone number, Number length should be 10.\\n \\n {{contact.regNumber}}{{contact.vin}}
\\n
\\n
\\n \\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
NameContact NumberRegistration NoVin No
\\n \\n \\n {{contact.name}}\\n \\n \\n \\n \\n \\n \\n \\n Invalid phone number, Number length should be 10.\\n \\n {{contact.regNumber}}{{contact.vin}}
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n Call Logs \\n \\n \\n
\\n \\n \\n
\\n \\n\\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n
Number\\n {{element.custNo}} Date \\n {{element.callDate | date : \\\"dd/MM/yy\\\" }} Start Time\\n {{(element.callDate +' '+ element.startTime)| date : \\\"h:mm a\\\"}} Duration {{element.duration}}\\n \\n Recordings\\n \\n \\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n \\n
\\n \\n \\n \\n
\\n \\n \\n Select Vehicle\\n \\n \\n \\n {{item}}\\n \\n \\n \\n
\\n
\\n Number Of Vehicle For Survey: {{cus360?.VECHILE_INFO.length}}\\n
\\n
\\n
\\n \\n \\n \\n
\\n \\n \\n Select Workshop\\n \\n \\n {{item.dealerCode || customerData.dealerCode}}\\n \\n \\n \\n
\\n
\\n
\\n
\\n \\n
\\n \\n \\n \\n Last Service Details\\n \\n \\n
\\n \\n
\\n
\\n \\n

{{lastServiceDetails?.lastVisitedOn | date: \\\"dd-MM-yyyy\\\"}}

\\n
\\n
\\n \\n

{{lastServiceDetails?.workType}}

\\n
\\n
\\n \\n

\\n {{lastServiceDetails?.jobCardNo}}

\\n
\\n
\\n \\n

\\n {{lastServiceDetails?.billAmount}}

\\n

\\n {{lastServiceDetails?.billAmount | currency : \\\"INR\\\"}}

\\n
\\n
\\n
\\n
\\n \\n

\\n {{lastServiceDetails?.estimateCost | currency : \\\"INR\\\"}}

\\n
\\n
\\n \\n

{{lastServiceDetails?.workshopName}}

\\n
\\n
\\n \\n

\\n {{lastServiceDetails?.mileage}}

\\n
\\n
\\n \\n

\\n {{lastServiceDetails?.invoiceDate | date: \\\"dd-MM-yyyy\\\"}}

\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n Vehicle Details\\n \\n \\n
\\n \\n
\\n
\\n
\\n \\n

{{vehicleDetails?.model}}

\\n
\\n
\\n \\n

{{vehicleDetails?.chassisNo}}

\\n
\\n
\\n \\n

{{vehicleDetails?.registrationNo}}

\\n
\\n
\\n \\n

{{vehicleDetails?.emissionNorm}}

\\n
\\n
\\n \\n

{{vehicleDetails?.soldBy}}

\\n
\\n
\\n
\\n
\\n
\\n Count of vehicles sold from the dealer to the customer: {{cus360?.VECHILE_INFO.length}}\\n
\\n
\\n
\\n \\n

{{vehicleDetails?.model}}

\\n
\\n
\\n \\n

{{vehicleDetails?.chassisNo}}

\\n
\\n
\\n \\n

{{vehicleDetails?.registrationNo}}

\\n
\\n
\\n \\n

{{vehicleDetails?.emissionNorm}}

\\n
\\n
\\n \\n

{{vehicleDetails?.retailDate| date : \\\"dd-MM-yyyy\\\"}}

\\n
\\n
\\n \\n

{{vehicleDetails?.soldBy}}

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n Customer Feedback\\n \\n \\n
\\n \\n
\\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n
Remark {{element.remark}} Remark Date \\n {{element.remarkDate}}\\n Remark Time\\n {{element.remarkTime | date: \\\"hh:mm a\\\"}}
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n
\\n \\n Customer Feedback\\n
\\n
\\n
\\n
\\n \\n \\n
Remarks should not contain \\\"#\\\" (Hash/Pound) & \\\";\\\" (Semicolon)
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n {{question.id}}\\n \\n \\n {{question.desc}}\\n \\n
\\n
\\n
\\n \\n \\n \\n \\n
\\n
\\n
\\n \\n This field is required.\\n \\n \\n 5.a What kind of Parts were not available ?\\n \\n
\\n \\n
\\n
\\n \\n \\n This field is required.\\n \\n \\n This field is required.\\n \\n
\\n
\\n 3\\\" class=\\\"remark\\\" [formControlName]=\\\"question.label\\\" placeholder=\\\"Enter Your Remarks here.\\\">\\n \\n \\n \\n This field is required.\\n \\n
\\n
\\n\\n
\\n
\\n
\\n
\\n \\n {{subQuestion.id}}\\n \\n \\n {{subQuestion.desc}}\\n \\n
\\n
\\n
\\n \\n \\n \\n \\n
\\n
\\n \\n This field is required.\\n \\n
\\n
\\n \\n
\\n
\\n \\n \\n This field is required.\\n \\n \\n This field is required.\\n \\n \\n
\\n
\\n \\n 3 && subQuestion.questionId != '63' && subQuestion.questionId != '72' && subQuestion.questionId != '79' && subQuestion.questionId != '88' && subQuestion.questionId != '60' && subQuestion.questionId != '71' && subQuestion.questionId != '86'\\\" [formControlName]=\\\"subQuestion.label\\\" placeholder=\\\"Enter Your Remarks here.\\\" >\\n \\n \\n This field is required.\\n \\n
\\n
\\n
\\n \\n Select Reason\\n \\n \\n {{data}}\\n \\n \\n \\n \\n This field is required.\\n \\n
\\n
3\\\">\\n \\n Select Reason\\n \\n \\n {{data}}\\n \\n \\n \\n
\\n
\\n \\n Select Reason\\n \\n \\n {{data}}\\n \\n \\n \\n \\n This field is required.\\n \\n \\n Select Reason\\n \\n \\n {{data}}\\n \\n \\n \\n \\n Select Reason\\n \\n \\n {{data}}\\n \\n \\n \\n \\n This field is required.\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n This question is mandatory.\\n \\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n \\n
\\n
\\n
\\n \\n
\\n\\n
\\n \\n
\\n \\n \\n Yes\\n \\n \\n No\\n \\n \\n
\\n
\\n\\n
\\n \\n Select Vehicle Number\\n \\n \\n {{item}}\\n \\n \\n \\n
\\n\\n
\\n
\\n 9\\\">*Note: Follow-up limit exceeded for this vehicle.\\n
\\n
\\n
\\n \\n \\n {{info.label}}\\n \\n \\n {{data.viewValue}}\\n \\n \\n \\n \\n This field is required.\\n \\n \\n
\\n
\\n
\\n
\\n \\n
\\n \\n {{info.label}}\\n \\n \\n {{data.viewValue}}\\n \\n \\n \\n \\n This field is required.\\n \\n
\\n
\\n \\n {{info.label || 'Select Date'}}\\n \\n \\n \\n \\n \\n \\n \\n Please choose an Date\\n \\n
\\n
\\n \\n {{info.data[0].value}}\\n \\n \\n \\n \\n Please choose an Date\\n \\n
\\n
\\n \\n {{info.data[0].value}}\\n \\n \\n \\n \\n Invalid phone number, Number length should be 10.\\n \\n
\\n
\\n \\n {{info.data[0].value}}\\n \\n \\n
\\n
\\n
\\n
\\n
\\n\\n
\\n \\n Select Response\\n \\n No Response \\n Busy \\n Switched Off/Unreachable \\n Invalid Number \\n Other \\n \\n \\n \\n This field is required.\\n \\n
\\n\\n
\\n \\n \\n \\n \\n
\\n
\\n
\\n
\\n
\\n\"","export default \"
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n\\n
\\n \\n \\n
\\n\"","export default \"
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n {{ showPrsLabel ? 'Prs Dashboard' : 'Dashboard' }}\\n \\n \\n {{ defaultLabel }}\\n \\n \\n \\n {{ dashboard }}\\n \\n \\n \\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n \\n
\\n \\n \\n \\n \\n \\n
\\n
\\n
\\n \\n
\\n \\n \\n \\n \\n \\n
\\n
\\n
\\n \\n \\n Select Workshop\\n \\n \\n {{workshop}}\\n \\n \\n
\\n
\\n \\n \\n Select CRE\\n \\n \\n {{cre}}\\n \\n \\n
\\n
\\n \\n
\\n
\\n
\\n \\n
\\n
\\n

Allotted

\\n
\\n
\\n

{{allocated.actualVal || 0}}

\\n
\\n
\\n

{{attempted.actualVal||0}}

\\n

Attempted

\\n
\\n
\\n

{{notAttempted.actualVal ||0}}

\\n

Not Attempted

\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n Attempted\\n
\\n
\\n
\\n
\\n

{{attempted.actualVal || 0}}

\\n
\\n
\\n

\\n {{percCallAttempted.actualVal || 0}}{{percCallAttempted.unit||'%'}}\\n

\\n

\\n N.A\\n

\\n

% Call Attempted

\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n

{{contacted.actualVal || 0}}

\\n

Contacted

\\n
\\n
\\n

\\n {{notContacted.actualVal || 0}}\\n

\\n

Not Contacted

\\n
\\n
\\n
\\n

N.A

\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n

N.A

\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n Contacted\\n
\\n
\\n
\\n
\\n

{{contacted.actualVal || 0}}

\\n
\\n
\\n

\\n {{percContacted.actualVal || 0}}{{percContacted.unit||'%'}}\\n

\\n

\\n N.A\\n

\\n

% Contacted

\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n

{{this.contactedLanguageBarrier.actualVal || 0}}

\\n

Language Barrier

\\n
\\n
\\n

{{this.contactedFollowUp.actualVal || 0}}

\\n

Follow-up

\\n
\\n
\\n

\\n {{this.contactedSystemRemoved.actualVal || 0}}\\n

\\n

System Closed

\\n
\\n
\\n

\\n {{this.contactedPartialFeedback.actualVal || 0}}\\n

\\n

Partial Feedback

\\n
\\n
\\n

\\n {{this.contactedNoFeedback.actualVal || 0}}\\n

\\n

No Feedback

\\n
\\n
\\n

\\n {{this.contactedFullFeedback.actualVal || 0}}\\n

\\n

Full Feedback

\\n
\\n
\\n
\\n

N.A

\\n
\\n
\\n
\\n \\n \\n
\\n \\n
\\n
\\n

N.A

\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n Feedback\\n
\\n
\\n
\\n
\\n

{{this.contactedFullFeedback.actualVal || 0}}

\\n
\\n
\\n

{{percFeedback.actualVal || 0}}{{percFeedback.unit||'%'}}

\\n

N.A

\\n

% Feedback Captured

\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n

{{dlrPrsTopScore.actualVal}}{{dlrPrsTopScore.unit||'%'}}

\\n

Dealer PRS % Top2 Score

\\n
\\n
\\n

{{prsTopScore.actualVal}}{{prsTopScore.unit||'%'}}

\\n

PRS % Top2 Score

\\n
\\n
\\n
\\n

N.A

\\n
\\n
\\n
\\n \\n \\n
\\n \\n
\\n
\\n

N.A

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\"","export default \"\\n\\n
\\n \\n \\n
\\n \\n
\\n
\\n \\n \\n Region\\n \\n All\\n \\n {{value}}\\n \\n \\n \\n
\\n
\\n \\n \\n Vertical\\n \\n All\\n \\n {{value}}\\n \\n \\n \\n
\\n
\\n \\n \\n Dealer Code\\n \\n \\n \\n {{value}}\\n \\n \\n \\n
\\n
\\n \\n
\\n \\n \\n \\n \\n \\n
\\n
\\n
\\n \\n
\\n \\n \\n \\n \\n \\n
\\n
\\n
\\n \\n \\n PRS Report Type\\n \\n \\n {{value}}\\n \\n \\n \\n
\\n
\\n \\n \\n Report Type\\n \\n \\n {{value}}\\n \\n \\n \\n
\\n \\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n
\"","export default \"
\\n \\n
\\n\\n
\\n \\n \\n
\\n
\\n
\\n \\n \\n Select Workshop\\n \\n \\n \\n All\\n \\n {{value}}\\n \\n \\n \\n
\\n
\\n \\n
\\n \\n \\n \\n \\n \\n
\\n
\\n
\\n \\n
\\n \\n \\n \\n \\n \\n
\\n
\\n
\\n \\n \\n Select Type\\n \\n \\n {{value}}\\n \\n \\n \\n
\\n \\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n \\n
\\n \\n \\n \\n \\n \\n
\\n
\\n
\\n \\n
\\n \\n \\n \\n \\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n
\"","export default \"
\\n \\n
\\n\\n
\\n
\\n Soft Offering/\\n
\\n\\n
\\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n
\\n \\n

\\n {{cus360?.CUSTOMER_INFO.custCity}} {{cus360?.CUSTOMER_INFO.custPostlCode}}\\n

\\n
\\n
\\n \\n

\\n {{cus360?.CUSTOMER_INFO.lifetimeValue | currency: '₹'}}\\n

\\n
\\n
\\n
\\n \\n \\n \\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
Contact Number
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n Invalid phone number, Number length should be 10.\\n \\n
\\n \\n \\n \\n \\n \\n Invalid phone number, Number length should be 10.\\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
NameContact NumberRegistration NoVin No
\\n \\n \\n {{contact.name}}\\n \\n \\n {{contact.regNumber}}{{contact.vin}}
\\n
\\n
\\n \\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
NameContact NumberRegistration NoVin No
\\n \\n \\n {{contact.name}}\\n \\n \\n \\n \\n \\n \\n \\n Invalid phone number, Number length should be 10.\\n \\n {{contact.regNumber}}{{contact.vin}}
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n \\n Select Workshop\\n \\n \\n {{workShop.workshopCode}} - {{workShop.workshopName}}\\n \\n \\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n Call Logs \\n \\n \\n
\\n \\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
Start Time {{(element.callDate +' '+ element.startTime)| date : \\\"h:mm a\\\"}} Duration {{element.duration}}\\n Number\\n {{element.custNo}} Date {{element.callDate | date : \\\"dd/MM/yy\\\" }} Recordings \\n \\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n \\n
\\n
\\n\\n \\n \\n \\n
\\n \\n \\n Select Vehicle\\n \\n \\n {{item.vin6Bits}}\\n \\n \\n \\n\\n
\\n
\\n Available Offerings: {{availableOfferings}}\\n
\\n
\\n
\\n
\\n\\n \\n \\n \\n \\n \\n \\n Contract Details \\n \\n \\n
\\n \\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
Start Date\\n {{element.startDate | date : \\\"dd/MM/yy\\\" }} End Date {{element.endDate | date : \\\"dd/MM/yy\\\" }} Contract Name {{element.contractName}} Contract Number {{element.contractNumber}} Product Name {{element.productName}}
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n \\n \\n \\n \\n \\n \\n Customer Feedback \\n \\n \\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n {{question.id}}\\n \\n \\n {{question.desc}}\\n \\n
\\n
\\n \\n\\n \\n \\n {{question.desc}}\\n \\n
\\n
\\n
\\n \\n \\n \\n \\n
\\n \\n This field is required.\\n \\n
\\n
\\n
\\n \\n \\n This field is required.\\n \\n
\\n
\\n \\n Select Reason\\n \\n \\n {{data}}\\n \\n \\n \\n \\n This field is required.\\n \\n
\\n \\n
\\n \\n Select Lead Status\\n \\n \\n {{data}}\\n \\n \\n \\n \\n This field is required.\\n \\n
\\n
\\n \\n Select Current Lead Status\\n \\n \\n {{data}}\\n \\n \\n \\n \\n This field is required.\\n \\n
\\n
\\n \\n Select In Process Reason\\n \\n \\n {{data}}\\n \\n \\n \\n \\n This field is required.\\n \\n
\\n
\\n \\n \\n This field is required.\\n \\n
\\n
\\n \\n \\n This field is required.\\n \\n
\\n
\\n \\n Select Date\\n \\n \\n \\n \\n \\n \\n \\n This field is required.\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n {{question.id}}\\n \\n \\n {{question.desc}}\\n \\n
\\n
\\n \\n\\n \\n \\n {{question.desc}}\\n \\n
\\n
\\n
\\n \\n \\n \\n \\n
\\n \\n This field is required.\\n \\n
\\n
\\n
\\n \\n \\n This field is required.\\n \\n
\\n
\\n \\n Select Reason\\n \\n \\n {{data}}\\n \\n \\n \\n \\n This field is required.\\n \\n
\\n \\n
\\n \\n Select Lead Status\\n \\n \\n {{data}}\\n \\n \\n \\n \\n This field is required.\\n \\n
\\n
\\n \\n Select Current Lead Status\\n \\n \\n {{data}}\\n \\n \\n \\n \\n This field is required.\\n \\n
\\n
\\n \\n Select In Process Reason\\n \\n \\n {{data}}\\n \\n \\n \\n \\n This field is required.\\n \\n
\\n
\\n \\n \\n This field is required.\\n \\n
\\n
\\n \\n \\n This field is required.\\n \\n
\\n
\\n \\n Select Date\\n \\n \\n \\n \\n \\n \\n \\n This field is required.\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n {{question.id}}\\n \\n \\n {{question.desc}}\\n \\n
\\n
\\n \\n\\n \\n \\n {{question.desc}}\\n \\n
\\n
\\n
\\n \\n \\n \\n \\n
\\n \\n This field is required.\\n \\n
\\n
\\n
\\n \\n \\n This field is required.\\n \\n
\\n
\\n \\n Select Reason\\n \\n \\n {{data}}\\n \\n \\n \\n \\n This field is required.\\n \\n
\\n \\n
\\n \\n Select Lead Status\\n \\n \\n {{data}}\\n \\n \\n \\n \\n This field is required.\\n \\n
\\n
\\n \\n Select Current Lead Status\\n \\n \\n {{data}}\\n \\n \\n \\n \\n This field is required.\\n \\n
\\n
\\n \\n Select In Process Reason\\n \\n \\n {{data}}\\n \\n \\n \\n \\n This field is required.\\n \\n
\\n
\\n \\n \\n This field is required.\\n \\n
\\n
\\n \\n \\n This field is required.\\n \\n
\\n
\\n \\n Select Date\\n \\n \\n \\n \\n \\n \\n \\n This field is required.\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n {{question.id}}\\n \\n \\n {{question.desc}}\\n \\n
\\n
\\n \\n\\n \\n \\n {{question.desc}}\\n \\n
\\n
\\n
\\n \\n \\n \\n \\n
\\n \\n This field is required.\\n \\n
\\n
\\n
\\n \\n \\n This field is required.\\n \\n
\\n
\\n \\n Select Reason\\n \\n \\n {{data}}\\n \\n \\n \\n \\n This field is required.\\n \\n
\\n \\n
\\n \\n Select Lead Status\\n \\n \\n {{data}}\\n \\n \\n \\n \\n This field is required.\\n \\n
\\n
\\n \\n Select Current Lead Status\\n \\n \\n {{data}}\\n \\n \\n \\n \\n This field is required.\\n \\n
\\n
\\n \\n Select In Process Reason\\n \\n \\n {{data}}\\n \\n \\n \\n \\n This field is required.\\n \\n
\\n
\\n \\n \\n This field is required.\\n \\n
\\n
\\n \\n \\n This field is required.\\n \\n
\\n
\\n \\n Select Date\\n \\n \\n \\n \\n \\n \\n \\n This field is required.\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n \\n \\n \\n \\n \\n
\\n \\n Service Details\\n
\\n \\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n

{{serviceDetails?.committedDate | date : \\\"dd/MM/yy\\\"}}

\\n
\\n
\\n \\n

{{serviceDetails?.predictionType}}

\\n
\\n
\\n \\n

{{serviceDetails?.workShop}}

\\n
\\n
\\n \\n

{{serviceDetails?.serviceDueMilage}}

\\n
\\n
\\n
\\n
\\n \\n

{{serviceDetails?.serviceIntervel}}

\\n
\\n
\\n \\n

{{serviceDetails?.serviceDueDate | date : \\\"dd/MM/yy\\\"}}\\n

\\n
\\n
\\n \\n

{{serviceDetails?.currentMileage}}

\\n
\\n
\\n \\n

{{serviceDetails?.mileageSinceLastVisit}}

\\n
\\n
\\n
\\n
\\n \\n

{{serviceDetails?.averageMilage}}

\\n
\\n
\\n \\n

{{serviceDetails?.remarks}}

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n \\n \\n \\n \\n \\n \\n Customer Remarks \\n \\n \\n
\\n \\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
Remark {{element.remark}} Remark Date {{element.remarkDate | date : \\\"dd/MM/yy\\\"}} Remark Time {{element.remarkTime | date : 'hh:mm a'}}
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n \\n \\n \\n \\n \\n Vehicle Details \\n \\n \\n
\\n \\n \\n
\\n
\\n \\n

{{vehicleDetails?.model}}

\\n
\\n
\\n \\n

{{vehicleDetails?.chassisNo}}

\\n
\\n
\\n \\n

{{vehicleDetails?.registrationNo}}

\\n
\\n
\\n \\n

{{vehicleDetails?.soldBy}}

\\n
\\n
\\n \\n

{{vehicleDetails?.vehicleType}}

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n \\n \\n \\n \\n \\n Last Service Details \\n \\n \\n
\\n \\n \\n
\\n
\\n \\n

{{lastServiceDetails?.lastVisitedOn | date : \\\"dd/MM/yy\\\"}}\\n

\\n
\\n
\\n \\n

{{lastServiceDetails?.workType}}

\\n
\\n
\\n \\n

{{lastServiceDetails?.jobCardNo}}

\\n
\\n
\\n \\n

{{lastServiceDetails?.billAmount}}

\\n
\\n
\\n
\\n
\\n \\n

{{lastServiceDetails?.workshopCode}}

\\n
\\n
\\n \\n

{{lastServiceDetails?.mileage}}

\\n
\\n
\\n \\n

{{lastServiceDetails?.invoiceDate | date : \\\"dd/MM/yy\\\"}}\\n

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n \\n \\n Show Complete Vehicle History\\n \\n \\n Hide History\\n \\n \\n
\\n \\n \\n
\\n \\n \\n
\\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n\\n \\n \\n \\n \\n \\n\\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n
JobCard\\n {{element.jcNo}} Vin\\n {{element.vin}} \\n Jobcard Date & Time\\n \\n {{element.jbcardDate | date : \\\"dd/MM/yy\\\"}} Audit Date \\n {{element.audate | date : \\\"dd/MM/yy\\\"}} \\n Dealer Code/Name/Location\\n \\n {{element.werks}}/{{element.plantDes}}/{{element.dealerLoc}}\\n \\n Odometer/Units\\n {{element.mileage}} {{element.mileageType}} PlantDes\\n {{element.plantDes}} Order Type {{element.servNo}} Tipper\\n {{element.tipper}} Werks\\n {{element.werks}} Failure Date\\n \\n {{element.failureDate | date : \\\"dd/MM/yy\\\"}} Billing Date\\n \\n {{element.billDate | date : \\\"dd/MM/yy\\\"}} INS date\\n \\n {{element.insdate | date : \\\"dd/MM/yy\\\"}} Mechanic\\n {{element.mechanic}} \\n ServiceAdvisor\\n {{element.serviceAdv}} \\n ServiceAdv No\\n {{element.serviceAdvNo}}
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n \\n \\n
\\n \\n
\\n
\\n\"","export default \"\\n\\n
\\n \\n \\n
\\n
\\n \\n
\\n \\n
\\n \\n \\n \\n \\n \\n
\\n
\\n
\\n \\n
\\n \\n \\n \\n \\n \\n
\\n
\\n
\\n \\n \\n Select Type\\n \\n \\n {{value.viewValue}}\\n \\n \\n \\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n\"","export default \"
\\n \\n
\\n\\n
\\n \\n \\n \\n
\\n
\\n
\\n \\n Call Type\\n \\n \\n {{value}}\\n \\n \\n \\n
\\n
\\n \\n Call State\\n \\n \\n {{value}}\\n \\n \\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n Calls To Be Made: {{customersToBeCalled}}\\n \\n Worked Calls: {{callsMade1}}\\n \\n
\\n
\\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n
Customer Name \\n {{element.customerName | truncate}}   \\n Call Type {{element.callType}} Call State {{element.callStatus}} Last Call {{element.lastCallTime | date:'dd-MM-yy hh:mm a'}} CRE Input {{element.creInput}} Follow-up {{element?.followUpTime | date:'dd-MM-yyyy hh:mm a'}} Remarks \\n {{element.remarks | truncate}}\\n
\\n
\\n \\n
\\n \\n
\\n
\"","export default \"
\\n \\n
\\n
\\n \\n \\n
\\n \\n
\\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n\\n
\\n \\n
\\n \\n
\\n
\\n \\n \\n \\n This field is required.\\n \\n
\\n
\\n \\n \\n \\n This field is required.\\n \\n \\n Email not valid.\\n \\n
\\n
\\n \\n \\n \\n Invalid phone number, Number length should be 10.\\n \\n
\\n
\\n
\\n
\\n \\n \\n Status\\n \\n Active\\n InActive\\n \\n \\n
\\n
\\n \\n \\n Role\\n \\n {{ option.filterData }}\\n \\n \\n \\n
\\n
\\n \\n \\n Vertical\\n \\n {{ option.filterData }}\\n \\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n \\n ALL\\n \\n {{cols.filterData}}\\n \\n \\n \\n
\\n
\\n \\n \\n \\n \\n All\\n \\n {{cols}}\\n \\n \\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n Workshop Details\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n \\n \\n Select\\n \\n \\n \\n \\n WorkshopCode \\n {{element.workshopCode | truncate}}\\n WorkshopName \\n {{element.workshopName | truncate}}\\n WorkshopAddress \\n {{element.workshopAddress}}\\n
\\n
\\n \\n \\n
\\n \\n \\n \\n \\n
\\n
\\n
\"","export default \"
\\n \\n
\\n\\n
\\n \\n \\n \\n
\\n
\\n \\n \\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
Customer Name {{element.customerName}} VIN {{element.vin}}Call Type {{element.callType}} Call Status {{element.callStatus}}Lead Closure Response {{element.leadClosureResponse}}Lead Removal Date {{element.leadRemovalDate}}Contact Number {{element.custTel}}Disengagement Reason {{element.disengageReason}}Proposal {{element.proposal}}Visit Proposal {{element.visitProposal}}
\\n
\\n \\n
\\n
\\n
\\n
\\n\"","export default \"
\\n \\n
\\n\\n
\\n \\n \\n \\n
\\n
\\n \\n \\n \\n
\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n
Customer Name \\n {{element.customerName | truncate}}   \\n Contact Number \\n {{element.customerTelephone}}\\n Chassis Number \\n {{element.chassisNumber}}\\n Lead Generation Date \\n {{element.leadGenerationDate}}\\n Previous Workshop \\n {{element.previousWorkshop}}\\n SME Remarks \\n {{element.smeRemarks}}\\n Reassignment Status \\n {{element.leadStatus}}\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n\"","export default \"
\\n
\\n \\n {{text}}\\n \\n \\n \\n
\\n
\"","export default \"
\\n
\\n
\\n \\\"logo\\\"\\n
\\n
\\n \\n
\\n
\\n \\n
\\n\\n
\\n
\\n \\n
\\n
\\n \\n {{userName}}\\n
\\n
\\n \\n
\\n
\\n\\n
\\n\\n
\\n \\n {{count}}\\n \\n\\n\\n
\\n\\n
\\n \\n \\n
\\n\\n\\n
\\n \\n\\n
\\n
\\n
\\n
{{value}}
\\n \\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n\\n \\n
\\n\"","export default \"
\\n \\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\"","export default \"
\\n \\n
\\n

Are you sure, you want to save blanket feedback?

\\n
\\n\\n
\\n \\n \\n
\\n
\"","export default \"
\\n \\n
\\n
\\n
\\n \\n \\n
\\n\\n
\\n \\n
\\n \\n \\n Yes\\n \\n No\\n \\n
\\n
\\n\\n
\\n \\n Select Vehicle Number\\n \\n \\n {{vinNo}}\\n \\n \\n \\n
\\n\\n
\\n \\n
\\n
\\n \\n
\\n \\n {{info.label}}\\n \\n {{data.viewValue}}\\n \\n \\n \\n \\n This field is required.\\n \\n
\\n
\\n
\\n
\\n\\n
\\n
\\n \\n
\\n
\\n \\n {{info.label}}\\n \\n \\n {{data.viewValue}}\\n \\n \\n \\n \\n This field is required.\\n \\n
\\n
\\n
\\n
\\n \\n {{info.label}}\\n \\n \\n {{data.value}} - {{data.viewValue}}\\n \\n \\n \\n \\n Please choose an Workshop\\n \\n
\\n
\\n
\\n
\\n \\n {{info.label || 'Select Date'}}\\n \\n \\n \\n \\n \\n \\n \\n Please choose an Date\\n \\n
\\n
\\n
\\n
\\n \\n {{info.label || 'Select Date'}}\\n \\n \\n \\n \\n \\n \\n \\n Please choose an date\\n \\n
\\n
\\n
\\n
\\n \\n {{info.label || 'Select Date'}}\\n \\n \\n \\n \\n \\n \\n \\n Please choose an date\\n \\n
\\n
\\n \\n
\\n \\n {{info.label}}\\n \\n \\n \\n {{package.packageDescription}} - {{package.price| currency: 'INR'}}\\n \\n \\n \\n
\\n\\n
\\n
\\n \\n {{info.label || 'Select Date'}}\\n \\n \\n \\n \\n \\n \\n Tip : You can not book on current date.\\n \\n
Please choose an Date\\n
\\n
\\n
\\n\\n
\\n
\\n Select Bay\\n
\\n
\\n \\n Bay {{i+1}}\\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n \\n Start Time\\n \\n \\n \\n \\n Bay is occupied please select another time slot.\\n \\n
\\n
\\n
\\n
\\n \\n
\\n \\n {{info.data[0].value}}\\n \\n \\n \\n This field is required.\\n \\n
\\n
\\n \\n {{info.data[0].value}}\\n \\n \\n
\\n
\\n \\n {{info.data[0].value}}\\n \\n \\n \\n \\n Invalid phone number, Number length should be 10.\\n \\n
\\n \\n {{info.data[0].value}}\\n \\n \\n
\\n
\\n
\\n\\n
\\n
\\n \\n
\\n \\n {{info.label}}\\n \\n \\n {{data.viewValue}}\\n \\n \\n \\n \\n This field is required.\\n \\n
\\n\\n
\\n \\n {{info.label || 'Select Date'}}\\n \\n \\n \\n \\n \\n \\n \\n This field is required.\\n \\n
\\n\\n
\\n \\n {{info.data[0].value}}\\n \\n \\n
\\n\\n
\\n \\n {{info.data[0].value}}\\n \\n \\n
\\n\\n
\\n
\\n \\n {{info.data[0].value}}\\n \\n \\n \\n Odometer reading should be greater than {{odometerEntry}}.\\n \\n
\\n
\\n\\n
\\n
\\n \\n {{info.data[0].value}}\\n \\n \\n \\n Invalid phone number, Number length should be 10.\\n \\n
\\n
\\n\\n
\\n
\\n \\n {{info.data[0].value}}\\n \\n \\n \\n Invalid phone number, Number length should be 10.\\n \\n
\\n
\\n\\n \\n {{info.data[0].value}}\\n \\n \\n\\n \\n Select Reason\\n \\n \\n {{data.value}}\\n \\n \\n\\n \\n {{data.value}}\\n \\n \\n\\n \\n
\\n
\\n
\\n\\n
\\n
\\n \\n
\\n
\\n \\n {{info.label}}\\n \\n {{data.viewValue}}\\n \\n \\n \\n \\n This field is required.\\n \\n
\\n
\\n\\n \\n\\n
\\n \\n {{info.label || 'Select Date'}}\\n \\n \\n \\n \\n \\n \\n \\n This field is required.\\n \\n
\\n\\n
\\n
\\n \\n {{info.data[0].value}}\\n \\n \\n \\n This field is required.\\n \\n
\\n
\\n\\n
\\n
\\n \\n {{info.data[0].value}}\\n \\n \\n
\\n
\\n\\n
\\n
\\n \\n {{info.data[0].value}}\\n \\n \\n
\\n
\\n\\n
\\n
\\n \\n {{info.data[0].value}}\\n \\n \\n \\n Zipcode length should be 6 and can't start with 0.\\n \\n
\\n
\\n\\n
\\n
\\n \\n {{info.data[0].value}}\\n \\n \\n \\n Invalid phone number, Number length should be 10.\\n \\n
\\n
\\n\\n \\n {{info.data[0].value}}\\n \\n \\n \\n {{data.value}}\\n \\n \\n
\\n
\\n
\\n\\n
\\n
\\n \\n
\\n \\n {{info.label}}\\n \\n {{data.viewValue}}\\n \\n \\n \\n \\n This field is required.\\n \\n
\\n\\n
\\n \\n {{info.label || 'Select Date'}}\\n \\n \\n \\n \\n \\n \\n \\n This field is required.\\n \\n
\\n\\n \\n {{info.data[0].value}}\\n \\n \\n \\n {{info.data[0].value}}\\n \\n \\n \\n {{data.value}}\\n \\n
\\n
\\n
\\n
\\n\\n
\\n \\n Select Response\\n \\n No Response \\n Busy \\n Switched Off/Unreachable \\n Invalid Number \\n Other \\n \\n \\n \\n This field is required.\\n \\n
\\n\\n
\\n \\n \\n \\n \\n This field is required.\\n \\n\\n \\n
\\n
\"","export default \"
\\n \\n
{{chartName}}
\\n
\\n \\n \\n
\\n
\"","export default \"

Confirmation

\\nAre you sure you want to proceed?\\n\\n \\n \\n\\n\\n\"","export default \"
\\n \\n
\\n
\\n

Customer360 \\n

\\n
\\n \\n \\n \\n \\n \\n
\\n
\\n \\n

{{cus360?.CUSTOMER_INFO.custCity}} {{cus360?.CUSTOMER_INFO.custPostlCode}}

\\n
\\n
\\n \\n

{{cus360?.CUSTOMER_INFO.lifetimeValue | currency: '₹'}}

\\n
\\n
\\n
\\n \\n \\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
NameContact Number
{{contact.name}}{{contact.contactNo}}
\\n
\\n
\\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
NameContact Number
{{contact.name}}{{contact.contactNo}}
\\n
\\n
\\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
NameContact NumberRegistration No
{{contact.name}}{{contact.contactNo}}{{contact.regNumber}}
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n SRM Call Logs \\n \\n \\n
\\n \\n \\n
\\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n
Start Time\\n {{(element.callDate +' '+ element.startTime)| date : \\\"h:mm a\\\"}} Duration {{element.duration}}\\n Number\\n {{element.custNo}} Date {{element.callDate | date : \\\"dd/MM/yy\\\" }} \\n Recordings\\n \\n \\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n PRS Call Logs \\n \\n \\n
\\n \\n \\n
\\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n
Start Time\\n {{(element.callDate +' '+ element.startTime)| date : \\\"h:mm a\\\"}} Duration {{element.duration}}\\n Number\\n {{element.custNo}} Date {{element.callDate | date : \\\"dd/MM/yy\\\" }} \\n Recordings\\n \\n \\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n \\n
\\n \\n
\\n \\n \\n
\\n \\n \\n Select Vehicle\\n \\n \\n {{item.vin6Bits}}\\n \\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n
\\n \\n Service Details\\n
\\n
\\n {{vehicleTypeCallInfo}} Call\\n {{vehicleServiceAndStausInfo}}\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n

{{serviceDetails?.committedDate | date : \\\"dd/MM/yy\\\"}}

\\n
\\n
\\n \\n

{{serviceDetails?.predictionType}}

\\n
\\n
\\n \\n

{{serviceDetails?.workShop}}

\\n
\\n
\\n \\n

{{serviceDetails?.serviceDueMilage}}

\\n
\\n
\\n
\\n
\\n \\n

{{serviceDetails?.serviceIntervel}}

\\n
\\n
\\n \\n

{{serviceDetails?.serviceDueDate | date : \\\"dd/MM/yy\\\"}}

\\n
\\n
\\n \\n

{{serviceDetails?.currentMileage}}

\\n
\\n
\\n \\n

{{serviceDetails?.mileageSinceLastVisit}}

\\n
\\n
\\n
\\n
\\n \\n

{{serviceDetails?.averageMilage}}

\\n
\\n
\\n \\n

{{serviceDetails?.remarks}}

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n \\n \\n
\\n \\n
\\n
\\n \\n

{{serviceDetails?.campaignId}}

\\n
\\n
\\n \\n

{{serviceDetails?.campaignIdDesc}}

\\n
\\n
\\n \\n

{{serviceDetails?.campaignStartDate | date : \\\"dd/MM/yy\\\"}}

\\n
\\n
\\n \\n

{{serviceDetails?.campaignEndDate | date : \\\"dd/MM/yy\\\"}}

\\n
\\n
\\n \\n

{{serviceDetails?.committedDate | date : \\\"dd/MM/yy\\\"}}

\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n \\n \\n
\\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
Case ID\\n {{element.faultCaseId}} Rule Description {{element.rulesDesc}}\\n List Date\\n {{element.faultListDate | date : \\\"dd/MM/yy\\\" }} Fert Code\\n {{element.faultFertCode}} Service Due Date\\n {{element.faultServiceDueDate | date : \\\"dd/MM/yy\\\" }}\\n Committed Date\\n {{element.faultBookingDate | date : \\\"dd/MM/yy\\\" }}
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n \\n \\n \\n \\n \\n \\n Customer Remarks \\n \\n \\n
\\n \\n \\n
\\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n
Remark\\n {{element.remark}} Remark Date {{element.remarkDate | date : \\\"dd/MM/yy\\\"}}\\n Remark Time\\n {{element.remarkTime | date: \\\"hh:mm a\\\"}}
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n Vehicle Details \\n \\n \\n
\\n \\n \\n
\\n
\\n \\n

{{vehicleDetails?.model}}

\\n
\\n
\\n \\n

{{vehicleDetails?.chassisNo}}

\\n
\\n
\\n \\n

{{vehicleDetails?.registrationNo}}

\\n
\\n
\\n \\n

{{vehicleDetails?.soldBy}}

\\n
\\n
\\n \\n

{{vehicleDetails?.tipperHaulageInd}}

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n Last Service Details \\n \\n \\n
\\n \\n \\n
\\n
\\n \\n

{{lastServiceDetails?.lastVisitedOn | date : \\\"dd/MM/yy\\\"}}

\\n
\\n
\\n \\n

{{lastServiceDetails?.workType}}

\\n
\\n
\\n \\n

{{lastServiceDetails?.jobCardNo}}

\\n
\\n
\\n \\n

{{lastServiceDetails?.billAmount}}

\\n
\\n
\\n
\\n
\\n \\n

{{lastServiceDetails?.workshopName}}

\\n
\\n
\\n \\n

{{lastServiceDetails?.milage}}

\\n
\\n
\\n \\n

{{lastServiceDetails?.invoiceDate | date : \\\"dd/MM/yy\\\"}}

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n \\n Show Complete Vehicle History\\n \\n \\n Hide History\\n \\n \\n
\\n \\n \\n \\n
\\n \\n \\n
\\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n\\n \\n \\n \\n \\n \\n\\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n
JobCard {{element.jcNo}} Vin {{element.vin}} Jobcard Date & Time\\n {{element.jbcardDate| date : \\\"dd/MM/yy\\\"}} Audit Date {{element.audate| date : \\\"dd/MM/yy\\\"}} Dealer Code/Name/Location\\n \\n {{element.werks}}/{{element.plantDes}}/{{element.dealerLoc}}\\n Odometer/Units\\n {{element.mileage}} {{element.mileageType}} PlantDes {{element.plantDes}} Order Type {{element.servNo}} Tipper {{element.tipper}} Werks {{element.werks}} Failure Date {{element.failureDate| date : \\\"dd/MM/yy\\\"}} Billing Date {{element.billDate| date : \\\"dd/MM/yy\\\"}} INS date {{element.insdate| date : \\\"dd/MM/yy\\\"}} Mechanic {{element.mechanic}} ServiceAdvisor\\n {{element.serviceAdv}} ServiceAdv No {{element.serviceAdvNo}}
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\"","export default \"
\\n \\n
\\n
\\n
\\n \\n \\n
\\n\\n
\\n \\n
\\n \\n \\n Yes\\n \\n No\\n \\n
\\n
\\n\\n
\\n \\n Select Vehicle Number\\n \\n \\n {{vinNo}}\\n \\n \\n \\n
\\n\\n
\\n
\\n = 3\\\">*Note: Booking limit exceeded for this\\n vehicle.\\n = 3\\\">*Note: Follow-up limit exceeded for this\\n vehicle.\\n
\\n
\\n
\\n \\n
\\n \\n {{info.label}}\\n \\n {{data.viewValue}}\\n \\n \\n \\n \\n This field is required.\\n \\n
\\n
\\n
\\n
\\n\\n
\\n \\n Select Service\\n \\n FS1 - FREE SERVICE 1\\n FS2 - FREE SERVICE 2\\n FS3 - FREE SERVICE 3\\n PMS - PREVENTIVE MAINTENANCE SERVICE\\n \\n \\n
\\n\\n
\\n
\\n \\n
\\n
\\n \\n {{info.label}}\\n \\n \\n {{data.viewValue}}\\n \\n \\n \\n \\n This field is required.\\n \\n
\\n
\\n
\\n
\\n \\n {{info.label}}\\n \\n \\n {{data.value}} - {{data.viewValue}}\\n \\n \\n \\n \\n Please choose an Workshop\\n \\n
\\n
\\n
\\n
\\n \\n {{info.label || 'Select Date'}}\\n \\n \\n \\n \\n \\n \\n \\n Please choose an Date\\n \\n
\\n
\\n
\\n
\\n \\n {{info.label || 'Select Date'}}\\n \\n \\n \\n \\n \\n \\n \\n Please choose an date\\n \\n
\\n
\\n
\\n
\\n \\n {{info.label || 'Select Date'}}\\n \\n \\n \\n \\n \\n \\n \\n Please choose an date\\n \\n
\\n
\\n
\\n \\n {{info.data[0].value}}\\n \\n \\n \\n This field is required (Tip: Enter only numbers).\\n \\n
\\n
\\n \\n {{info.data[0].value}}\\n \\n \\n
\\n
\\n \\n {{info.data[0].value}}\\n \\n \\n \\n \\n Invalid phone number, Number length should be 10.\\n \\n
\\n \\n {{info.data[0].value}}\\n \\n \\n
\\n
\\n
\\n
\\n \\n Payment Method\\n \\n Cash\\n Digital Payment\\n \\n \\n
\\n\\n
\\n
\\n \\n
\\n \\n {{info.label}}\\n \\n \\n {{data.viewValue}}\\n \\n \\n \\n \\n This field is required.\\n \\n
\\n\\n
\\n \\n {{info.label || 'Select Date'}}\\n \\n \\n \\n \\n \\n \\n \\n This field is required.\\n \\n
\\n\\n
\\n \\n {{info.data[0].value}}\\n \\n \\n
\\n\\n
\\n \\n {{info.data[0].value}}\\n \\n \\n
\\n\\n
\\n
\\n \\n {{info.data[0].value}}\\n \\n \\n \\n Odometer reading should be greater than {{odometerEntry}}.\\n \\n
\\n
\\n\\n
\\n
\\n \\n {{info.data[0].value}}\\n \\n \\n \\n Invalid phone number, Number length should be 10.\\n \\n
\\n
\\n\\n
\\n
\\n \\n {{info.data[0].value}}\\n \\n \\n \\n Invalid phone number, Number length should be 10.\\n \\n
\\n
\\n\\n \\n {{info.data[0].value}}\\n \\n \\n\\n \\n Select Reason\\n \\n \\n {{data.value}}\\n \\n \\n\\n \\n {{data.value}}\\n \\n \\n\\n \\n
\\n
\\n
\\n\\n
\\n
\\n \\n
\\n
\\n \\n {{info.label}}\\n \\n {{data.viewValue}}\\n \\n \\n \\n \\n This field is required.\\n \\n
\\n
\\n\\n \\n\\n
\\n \\n {{info.label || 'Select Date'}}\\n \\n \\n \\n \\n \\n \\n \\n This field is required.\\n \\n
\\n\\n
\\n
\\n \\n {{info.data[0].value}}\\n \\n \\n \\n This field is required.\\n \\n
\\n
\\n\\n
\\n
\\n \\n {{info.data[0].value}}\\n \\n \\n
\\n
\\n\\n
\\n
\\n \\n {{info.data[0].value}}\\n \\n \\n
\\n
\\n\\n
\\n
\\n \\n {{info.data[0].value}}\\n \\n \\n \\n Zipcode length should be 6 and can't start with 0.\\n \\n
\\n
\\n\\n
\\n
\\n \\n {{info.data[0].value}}\\n \\n \\n \\n Invalid phone number, Number length should be 10.\\n \\n
\\n
\\n\\n \\n {{info.data[0].value}}\\n \\n \\n \\n {{data.value}}\\n \\n \\n
\\n
\\n
\\n\\n
\\n
\\n \\n
\\n \\n {{info.label}}\\n \\n {{data.viewValue}}\\n \\n \\n \\n \\n This field is required.\\n \\n
\\n\\n
\\n \\n {{info.label || 'Select Date'}}\\n \\n \\n \\n \\n \\n \\n \\n This field is required.\\n \\n
\\n\\n \\n {{info.data[0].value}}\\n \\n \\n \\n {{info.data[0].value}}\\n \\n \\n \\n {{data.value}}\\n \\n
\\n
\\n
\\n
\\n\\n
\\n \\n Select Response\\n \\n No Response \\n Busy \\n Switched Off/Unreachable \\n Invalid Number \\n Other \\n \\n \\n \\n This field is required.\\n \\n
\\n\\n
\\n \\n \\n \\n \\n This field is required.\\n \\n\\n \\n
\\n
\\n\"","export default \"
\\n
\\n highlight_off\\n
\\n
\\n
\\n
\\n
\\n
\\n

UPDATE LEAD STATUS

\\n
\\n
\\n
\\n
\\n
\\n \\n \\n Lead Status\\n \\n In Progress\\n Follow Up \\n \\n Closed\\n Lost\\n \\n \\n
\\n
\\n \\n \\n FollowUp Selection\\n \\n Negotiation\\n Quotation Given\\n Secured/Payment Received\\n CIF Collected\\n T Created\\n \\n \\n \\n \\n Lost Selection\\n \\n Price High\\n Vehicle SRN\\n Feature Not Adequate\\n Lost to Competition\\n Share Comments\\n \\n \\n\\n \\n \\n Contract Number\\n \\n \\n
\\n
\\n \\n \\n Select Date\\n \\n \\n \\n \\n \\n \\n
\\n
\\n
\\n \\n
\\n \\n Enter Your Remarks\\n \\n \\n
\\n
\\n \\n
\\n\"","export default \"
\\n \\n
\\n
\\n
\\n \\n \\n
\\n\\n
\\n \\n \\n
\\n \\n \\n Yes\\n \\n No\\n \\n
\\n
\\n\\n
\\n \\n Select Vehicle Number\\n \\n \\n {{vinNo}}\\n \\n \\n \\n
\\n\\n
\\n
\\n = 3\\\">*Note: Booking limit exceeded for this\\n vehicle.\\n = 3\\\">*Note: Follow-up limit exceeded for this\\n vehicle.\\n
\\n
\\n
\\n \\n
\\n \\n {{info.label}}\\n \\n {{data.viewValue}}\\n \\n \\n \\n \\n This field is required.\\n \\n
\\n
\\n
\\n
\\n\\n
\\n
\\n \\n
\\n
\\n \\n Select Reason for Disengagement\\n \\n =2 && !disengagementReason.includes(data.value)\\\" *ngFor=\\\"let data of info.data\\\" [value]=\\\"data.value\\\">\\n {{data.viewValue}}\\n \\n \\n \\n \\n This field is required.\\n \\n
\\n
\\n
\\n
\\n \\n Select Proposal Offer\\n \\n \\n {{data.viewValue}}\\n \\n \\n \\n \\n This field is required.\\n \\n
\\n
\\n \\n
\\n \\n {{info.label}}\\n \\n \\n {{data.viewValue}}\\n \\n \\n \\n \\n This field is required.\\n \\n
\\n
\\n
\\n
\\n \\n {{info.label}}\\n \\n \\n {{data.value}} - {{data.viewValue}}\\n \\n \\n \\n \\n Please choose an Workshop\\n \\n
\\n
\\n
\\n
\\n \\n {{info.label || 'Select Date'}}\\n \\n \\n \\n \\n \\n \\n \\n Please choose an Date\\n \\n
\\n
\\n \\n
\\n \\n {{info.label || 'Select Date'}}\\n \\n \\n \\n \\n \\n \\n \\n Please choose an date\\n \\n
\\n
\\n \\n
\\n \\n {{info.label || 'Select Date'}}\\n \\n \\n \\n \\n \\n \\n \\n Please choose an date\\n \\n
\\n
\\n \\n
\\n \\n {{info.label || 'Select Date'}}\\n \\n \\n \\n \\n \\n \\n \\n Please choose an date\\n \\n
\\n
\\n
\\n
\\n \\n {{info.label || 'Select Date'}}\\n \\n \\n \\n \\n \\n \\n \\n Please choose an date\\n \\n
\\n
\\n \\n \\n\\n
\\n
\\n \\n {{info.label || 'Select Date'}}\\n \\n \\n \\n \\n \\n \\n \\n Please choose an Date\\n \\n
\\n
\\n
\\n
\\n Select Bay\\n
\\n
\\n \\n Bay {{i+1}}\\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n \\n Start Time\\n \\n \\n \\n \\n Bay is occupied please select another time slot.\\n \\n
\\n
\\n
\\n
\\n\\n \\n
\\n \\n {{info.data[0].value}}\\n \\n \\n \\n This field is required.\\n \\n
\\n \\n \\n {{info.data[0].value}}\\n \\n \\n \\n
\\n \\n {{info.data[0].value}}\\n \\n \\n \\n \\n Invalid phone number, Number length should be 10.\\n \\n
\\n \\n {{info.data[0].value}}\\n \\n \\n \\n \\n
\\n \\n \\n \\n
\\n
\\n \\n \\n \\n
\\n \\n\\n
\\n
\\n \\n
\\n
\\n \\n {{info.label}}\\n \\n \\n {{data.viewValue}}\\n \\n \\n \\n \\n This field is required.\\n \\n
\\n
\\n
\\n
\\n \\n {{info.label}}\\n \\n \\n {{data.value}} - {{data.viewValue}}\\n \\n \\n \\n \\n Please choose an Workshop\\n \\n
\\n
\\n
\\n
\\n \\n {{info.label || 'Select Date'}}\\n \\n \\n \\n \\n \\n \\n \\n This field is required.\\n \\n
\\n
\\n \\n
\\n
\\n \\n {{info.label || 'Select Date'}}\\n \\n \\n \\n \\n \\n \\n \\n This field is required.\\n \\n
\\n
\\n\\n
\\n
\\n \\n {{info.label || 'Select Date'}}\\n \\n \\n \\n \\n \\n \\n \\n Please choose an Date\\n \\n
\\n
\\n
\\n
\\n Select Bay\\n
\\n
\\n \\n Bay {{i+1}}\\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n\\n\\n
\\n
\\n
\\n
\\n \\n Start Time\\n \\n \\n \\n \\n Bay is occupied please select another time slot.\\n \\n
\\n
\\n
\\n
\\n\\n \\n \\n {{info.data[0].value}}\\n \\n \\n
\\n\\n \\n \\n {{info.data[0].value}}\\n \\n \\n \\n\\n
\\n
\\n \\n {{info.data[0].value}}\\n \\n \\n \\n Odometer reading should be greater than {{odometerEntry}}.\\n \\n
\\n
\\n\\n
\\n
\\n \\n {{info.data[0].value}}\\n \\n \\n \\n Invalid phone number, Number length should be 10.\\n \\n
\\n
\\n\\n \\n
\\n \\n {{info.data[0].value}}\\n \\n \\n \\n Invalid phone number, Number length should be 10.\\n \\n
\\n \\n\\n \\n
\\n \\n {{info.data[0].value}}\\n \\n \\n \\n Invalid Pin Code, Number length should be 6.\\n \\n
\\n \\n\\n \\n {{info.data[0].value}}\\n \\n \\n\\n \\n Select Reason\\n \\n \\n {{data.value}}\\n \\n \\n\\n \\n {{data.value}}\\n \\n \\n\\n \\n \\n \\n \\n\\n
\\n
\\n \\n
\\n
\\n \\n {{info.label}}\\n \\n {{data.viewValue}}\\n \\n \\n \\n \\n This field is required.\\n \\n
\\n
\\n
\\n \\n {{info.label || 'Select Date'}}\\n \\n \\n \\n \\n \\n \\n \\n This field is required.\\n \\n
\\n\\n
\\n
\\n \\n {{info.data[0].value}}\\n \\n \\n \\n This field is required.\\n \\n
\\n
\\n\\n
\\n
\\n \\n {{info.data[0].value}}\\n \\n \\n
\\n
\\n\\n
\\n
\\n \\n {{info.data[0].value}}\\n \\n \\n \\n Zipcode length should be 6 and can't start with 0.\\n \\n
\\n
\\n\\n
\\n
\\n \\n {{info.data[0].value}}\\n \\n \\n \\n Invalid phone number, Number length should be 10.\\n \\n
\\n
\\n\\n \\n {{info.data[0].value}}\\n \\n \\n \\n {{data.value}}\\n \\n \\n
\\n
\\n
\\n\\n
\\n
\\n \\n
\\n \\n {{info.label}}\\n \\n {{data.viewValue}}\\n \\n \\n \\n \\n This field is required.\\n \\n
\\n\\n
\\n \\n {{info.label || 'Select Date'}}\\n \\n \\n \\n \\n \\n \\n \\n This field is required.\\n \\n
\\n\\n \\n {{info.data[0].value}}\\n \\n \\n \\n {{info.data[0].value}}\\n \\n \\n \\n {{data.value}}\\n \\n \\n
\\n
\\n
\\n \\n\\n
\\n \\n Select Response\\n \\n Customer Asked Not To Visit \\n Reschedule Visit \\n \\n \\n \\n This field is required.\\n \\n\\n \\n Select Visit Date\\n \\n \\n \\n \\n \\n \\n \\n This field is required.\\n \\n
\\n\\n
\\n \\n Select Response\\n \\n No Response \\n Busy \\n Switched Off/Unreachable \\n Invalid Number \\n Other \\n \\n \\n \\n This field is required.\\n \\n
\\n\\n
\\n \\n \\n \\n \\n This field is required.\\n \\n\\n \\n
\\n\\n\"","export default \"
\\n
\\n highlight_off\\n
\\n
\\n
\\n
\\n
\\n

UPDATE LEAD STATUS

\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n Chassis Number\\n \\n \\n {{value}}\\n \\n \\n \\n
\\n
\\n \\n \\n \\n Reopen\\n \\n \\n Close\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n Remarks\\n \\n \\n
\\n
\\n
\\n
\\n \\n
\\n\"","export default \"
\\n
\\n \\n
\\n
\\n
\\n \\n
\\n \\n
\\n \\n This field is required.\\n \\n
\\n
\\n \\n
\\n \\n
\\n \\n This field is required.\\n \\n
\\n
\\n \\n
\\n \\n
\\n \\n This field is required.\\n \\n
\\n
\\n \\n
\\n \\n
\\n \\n Invalid phone number, Number length should be 10.\\n \\n
\\n
\\n \\n
\\n \\n
\\n \\n This field is required.\\n \\n
\\n
\\n \\n
\\n \\n
\\n \\n Invalid phone number, Number length should be 10.\\n \\n
\\n
\\n \\n
\\n \\n
\\n \\n \\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\"","export default \"
\\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n
Vin \\n {{element.vin}}\\n Product \\n {{element.productType}}\\n Enquiry Id \\n
\\n {{element.enquiryId}}\\n
\\n
Message \\n {{element.message}}\\n
\\n
\\n \\n
\\n
\\n \\n \\n \\n
\\n\"","export default \"
\\n
\\n highlight_off\\n
\\n
\\n
\\n
\\n
\\n
\\n

PIPELINE MANAGEMENT APP

\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n

CREATE ENQUIRY

\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n Chassis Number\\n \\n \\n {{value}}\\n \\n \\n \\n
\\n
\\n \\n \\n Product Selection\\n \\n \\n {{value}}\\n \\n \\n \\n
\\n
\\n \\n \\n\\n Source Of Enquiry\\n \\n \\n {{value}}\\n \\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n Likely Buy Date\\n \\n \\n \\n \\n \\n \\n
\\n
\\n \\n \\n\\n Lead Type\\n \\n \\n {{value}}\\n \\n \\n \\n
\\n
\\n \\n \\n Lead Status\\n \\n \\n In Progress\\n Follow Up\\n \\n Closed\\n Lost\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n FollowUp Selection\\n \\n \\n Negotiation\\n Quotation Given\\n Secured/Payment Received\\n CIF Collected\\n T Created\\n \\n \\n
\\n
\\n \\n \\n Lost Selection\\n \\n \\n Price High\\n Vehicle SRN\\n Feature Not Adequate\\n Lost to Competition\\n Share Comments\\n \\n \\n
\\n
\\n \\n \\n Enter Contract Number\\n \\n \\n
\\n
\\n \\n \\n Select Date\\n \\n \\n \\n \\n \\n \\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n Remark\\n \\n \\n
\\n
\\n
\\n \\n
\\n\"","export default \"
\\n
\\n
\\n \\\"logo\\\"\\n
\\n
\\n \\n
\\n
\\n highlight_off\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n \\n
\\n

{{customerId}}

\\n
\\n
\\n
\\n \\n
\\n

{{vehRegNo}}

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n

{{chassisNo}}

\\n
\\n
\\n
\\n \\n
\\n

{{dealerCode}}

\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n \\n \\n Category 1\\n \\n {{value.value}}\\n \\n \\n
\\n
\\n \\n \\n Category 2\\n \\n {{value.value}}\\n \\n\\n \\n
\\n
\\n \\n \\n Vehicle Reg No.\\n \\n \\n
\\n\\n\\n
\\n
\\n
\\n \\n \\n Preferred Language\\n \\n Hindi\\n English\\n Gujrati\\n Marathi\\n Telugu\\n Tamil\\n Malayalam\\n Kannada\\n Bengali\\n \\n \\n
\\n
\\n \\n \\n Vehicle Type\\n \\n \\n LMD\\n \\n \\n BUS\\n \\n \\n HD\\n \\n \\n \\n
\\n
\\n \\n \\n Source\\n \\n \\n {{value.value}}\\n \\n \\n \\n
\\n
\\n\\n
\\n \\n
\\n \\n Complaint Description\\n \\n \\n \\n Max length 40 characters.\\n \\n \\n Do not enter special characters.\\n \\n
\\n
\\n
\\n \\n
\\n \\n Complaint Remarks\\n \\n \\n \\n Max lenth 132 characters.\\n \\n \\n Do not enter special characters.\\n \\n
\\n
\\n \\n
\"","export default \"
\\n \\n
Call Recording
\\n
\\n \\n
\\n
\"","export default \"
\\n \\n\\n
Call Reminder
\\n\\n
Follow up call due for {{customerCount}} customers.
\\n\\n
\\n \\n
\\n
\"","export default \"
\\n \\n\\n
Service Breakup
\\n\\n
\\n
\\n
\\n {{cols.serviceType}}\\n
\\n
\\n {{cols.actualVal || 0}}\\n
\\n
\\n
\\n
\"","export default \"
\\n \\n
\\n

CRE previously took booking on this Chassis. Are you sure you want to mark this lead as \\\"Service Not Required\\\"?

\\n
\\n\\n
\\n \\n \\n
\\n
\"","export default \"
\\n \\n
\\n
\\n
\\n \\n \\n
\\n\\n
\\n \\n
\\n \\n \\n Yes\\n \\n No\\n \\n
\\n
\\n\\n
\\n \\n Select Vehicle Number\\n \\n \\n {{vinNo}}\\n \\n \\n \\n
\\n\\n
\\n
\\n
\\n \\n
\\n \\n {{info.label}}\\n \\n {{data.viewValue}}\\n \\n \\n \\n \\n This field is required.\\n \\n
\\n
\\n
\\n
\\n\\n
\\n
\\n \\n
\\n \\n {{info.label || 'Select Date'}}\\n \\n \\n \\n \\n \\n \\n \\n Please choose an date\\n \\n
\\n
\\n \\n {{info.data[0].value}}\\n \\n \\n
\\n
\\n \\n {{info.data[0].value}}\\n \\n \\n \\n Invalid phone number, Number length should be 10.\\n \\n
\\n
\\n
\\n
\\n
\\n\\n
\\n \\n Select Response\\n \\n No Response \\n Busy \\n Switched Off/Unreachable \\n Invalid Number \\n Other \\n \\n \\n \\n This field is required.\\n \\n
\\n\\n
\\n \\n \\n \\n \\n This field is required.\\n \\n\\n \\n
\\n
\"","export default \"
\\n \\n
\\n\\n
\\n
\\n

Visit Report Form

\\n\\n\\n highlight_off\\n\\n
\\n \\n\\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n\\n \\n \\n \\n \\n \\n \\n\\n \\n\\n\\n\\n \\n \\n \\n \\n \\n\\n \\n \\n\\n \\n \\n \\n \\n \\n\\n\\n \\n\\n\\n \\n \\n\\n \\n\\n \\n \\n\\n\\n\\n\\n \\n\\n \\n \\n \\n\\n\\n \\n\\n \\n\\n \\n\\n \\n \\n\\n\\n\\n \\n \\n\\n \\n \\n\\n\\n \\n\\n \\n \\n \\n\\n \\n\\n \\n \\n\\n \\n\\n\\n \\n\\n\\n \\n \\n\\n \\n \\n\\n \\n\\n \\n\\n \\n\\n\\n \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n
\\n\\n \\n\\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n\\n \\n \\n
\\n\\n \\n\\n \\n \\n \\n\\n \\n\\n \\n\\n
\\n \\n \\n \\n \\n \\n \\n\\n \\n\\n \\n\\n
\\n \\n\\n \\n \\n Invalid Input\\n \\n \\n \\n\\n \\n\\n
\\n \\n \\n \\n \\n\\n \\n\\n \\n\\n
\\n\\n \\n\\n \\n \\n \\n\\n \\n \\n \\n\\n
\\n Disengagement reason\\n\\n \\n \\n\\n
\\n Any Proposal Made\\n *\\n \\n \\n This field is required.\\n \\n \\n
\\n Any requirement for new vehicle\\n *\\n \\n \\n This field is required.\\n \\n\\n \\n\\n
\\n\\n interested in soft offering products\\n *\\n \\n \\n\\n\\n\\n \\n Yes\\n \\n \\n No\\n \\n\\n\\n \\n\\n\\n\\n
\\n Remark\\n *\\n \\n \\n This field is required.\\n \\n\\n \\n
\\n Is Customer Agrees to visit WS\\n *\\n\\n\\n \\n \\n\\n \\n Yes\\n \\n \\n No\\n \\n\\n\\n \\n\\n\\n
\\n Visit photo with Customer\\n *\\n\\n \\n \\n\\n delete\\n
\\n\\n
\\n\\n\\n \\n \\n\\n \\n \\n\\n
\\n\"","export default \"
\\n \\n
\\n\\n
\\n
\\n
\\n \\\"logo\\\"\\n
\\n
\\n \\n
\\n
\\n highlight_off\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n \\n
\\n

{{customerName}}

\\n
\\n
\\n
\\n \\n
\\n

{{chassis}}

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n

{{nearestWorkshop}}

\\n
\\n
\\n
\\n \\n
\\n

{{customerTelephone}}

\\n
\\n
\\n
\\n
\\n\\n\\n
\\n
\\n
\\n \\n \\n Chassis Number\\n \\n {{value}}\\n \\n \\n
\\n
\\n \\n \\n Lead Status\\n \\n Workshop Reassign\\n Close Lead\\n \\n \\n
\\n
\\n \\n \\n Search Workshop\\n \\n \\n \\n {{option}}\\n \\n \\n \\n
\\n
\\n \\n
\\n \\n Remarks\\n \\n \\n
\\n
\\n \\n
\\n
\\n\"","export default \"
\\n
\\n Forgot Password\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n This field is required\\n \\n
\\n
\\n
\\n
\\n \\n \\n \\n This field is required\\n \\n
\\n
\\n
\\n
Type in the box below: {{randomNumber}}
\\n
\\n
\\n
\\n
\\n \\n \\n This field is required\\n \\n
\\n
\\n \\n Captcha did not match, Please try again.\\n \\n
\\n \\n
\\n
\\n
\\n
\\n\"","export default \"
\\n \\n
\\n\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n Service Reminder Module\\n
\\n
\\n Sign In\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n This field is required\\n \\n
\\n
\\n
\\n
\\n \\n \\n \\n This field is required\\n \\n
\\n
\\n \\n
\\n
\\n Type in the box below: {{randomNumber}}\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n \\n This field is required\\n \\n \\n Captcha did not match, Please try again.\\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n\"","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { LoginComponent } from './security/login/login.component';\nimport { CallingListComponent } from './component/calling-list/calling-list.component';\nimport { Customer360Component } from './component/customer360/customer360.component';\nimport { AuthGuardService as AuthGuard } from './core/authentication/authentication.guard';\nimport { InboundCallComponent } from './component/inbound-call/inbound-call.component';\nimport { ProfileComponent } from './component/profile/profile.component';\nimport { DashboardComponent } from './component/dashboard/dashboard.component';\nimport { ReportingComponent } from './component/reporting/reporting.component';\nimport { UamComponent } from './component/uam/uam.component';\nimport { PrsCallingListComponent } from './component/prs-calling-list/prs-calling-list.component';\nimport { PrsCustomer360Component } from './component/prs-customer360/prs-customer360.component';\nimport { PrsReportingComponent } from './component/prs-reporting/prs-reporting.component';\nimport { SoftOfferingsComponent } from './component/soft-offerings/soft-offerings.component';\nimport { SoftOfferingReportingComponent } from './component/soft-offering-reporting/soft-offering-reporting.component';\nimport { SoftCustomer360Component } from './component/soft-customer360/soft-customer360.component';\nimport { MarketShareReportingComponent } from './component/market-share-reporting/market-share-reporting.component';\nimport { CdmCallingListComponent } from './component/cdm-calling-list/cdm-calling-list.component';\nimport { CdmCustomer360Component } from './component/cdm-customer360/cdm-customer360.component';\nimport { LostCustomerComponent } from './component/lost-customer/lost-customer.component';\nimport { LostCustomer360Component } from './component/lost-customer360/lost-customer360.component';\nimport { LostCallingDialogComponent } from './modal/lost-calling-dialog/lost-calling-dialog.component';\nimport {WorkshopReassignmentComponent } from './component/workshop-reassignment/workshop-reassignment.component';\nimport { PrsDashboardComponent } from './component/prs-dashboard/prs-dashboard.component';\nimport { WorkshopManagerCallingListComponent } from './component/workshop-manager-calling-list/workshop-manager-calling-list.component';\nimport {PipelineManagementComponent} from './component/pipeline-management/pipeline-management.component';\nimport {PipelineSearchComponent} from './component/pipeline-search/pipeline-search.component';\nimport { DoorstepCallingListComponent } from './component/doorstep-calling-list/doorstep-calling-list.component';\nimport { DoorstepCustomer360Component } from './component/doorstep-customer360/doorstep-customer360.component';\nimport { DoorstepDashboardComponent } from './component/doorstep-dashboard/doorstep-dashboard.component';\nimport { AdminComponent } from './component/admin/admin.component';\n\nconst routes: Routes = [\n { path: '', redirectTo: 'login', pathMatch: 'full' },\n { path: 'login', component: LoginComponent },\n { path: 'dashboard', component: DashboardComponent, canActivate: [AuthGuard] },\n { path: 'calling', component: CallingListComponent, canActivate: [AuthGuard] },\n { path: 'reporting', component: ReportingComponent, canActivate: [AuthGuard] },\n { path: 'profile', component: ProfileComponent, canActivate: [AuthGuard] },\n { path: 'inboundCall', component: InboundCallComponent, canActivate: [AuthGuard] },\n { path: 'customer360', component: Customer360Component, canActivate: [AuthGuard] },\n { path: 'uam', component: UamComponent, canActivate: [AuthGuard] },\n { path: 'prs-calling', component: PrsCallingListComponent, canActivate: [AuthGuard] },\n { path: 'prs-customer360', component: PrsCustomer360Component, canActivate: [AuthGuard] },\n { path: 'prs-reporting', component: PrsReportingComponent, canActivate: [AuthGuard] },\n { path: 'soft-calling', component: SoftOfferingsComponent, canActivate: [AuthGuard] },\n { path: 'soft-reporting', component: SoftOfferingReportingComponent, canActivate: [AuthGuard] },\n { path: 'soft-customer360', component: SoftCustomer360Component, canActivate: [AuthGuard] },\n { path: 'market-reporting', component: MarketShareReportingComponent, canActivate: [AuthGuard] },\n { path: 'cdm-calling', component: CdmCallingListComponent, canActivate: [AuthGuard] },\n { path: 'cdm-customer360', component: CdmCustomer360Component, canActivate: [AuthGuard] },\n { path: 'lost-customer', component: LostCustomerComponent, canActivate: [AuthGuard] },\n { path: 'lost-calling-dialog', component: LostCallingDialogComponent, canActivate: [AuthGuard] },\n { path: 'lost-customer360', component: LostCustomer360Component, canActivate: [AuthGuard] },\n { path: 'workshop-reassignment',component: WorkshopReassignmentComponent, canActivate: [AuthGuard]},\n { path: 'prs-dashboard',component: PrsDashboardComponent, canActivate: [AuthGuard]},\n { path: 'workshop-manager-calling',component: WorkshopManagerCallingListComponent, canActivate: [AuthGuard]},\n {path: 'pipeline-search',component: PipelineSearchComponent, canActivate: [AuthGuard]},\n { path: 'pipeline-management',component: PipelineManagementComponent, canActivate: [AuthGuard] },\n {path: 'doorstep-calling-list',component: DoorstepCallingListComponent, canActivate: [AuthGuard]},\n {path: 'doorstep-customer360',component: DoorstepCustomer360Component, canActivate: [AuthGuard]},\n {path: 'doorstep-dashboard',component: DoorstepDashboardComponent, canActivate: [AuthGuard]},\n { path: 'admin', component:AdminComponent, canActivate: [AuthGuard]},\n\n { path: '**', redirectTo: '' }\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2FwcC5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component } from '@angular/core';\n\nexport let spinner = false;\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss']\n})\nexport class AppComponent {\n title = 'eicher';\n}\n","import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { PerfectScrollbarModule } from \"ngx-perfect-scrollbar\";\nimport { PERFECT_SCROLLBAR_CONFIG } from \"ngx-perfect-scrollbar\";\nimport { PerfectScrollbarConfigInterface } from \"ngx-perfect-scrollbar\";\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { LoginComponent } from './security/login/login.component';\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { DashboardComponent } from './component/dashboard/dashboard.component';\nimport { CallingListComponent } from './component/calling-list/calling-list.component';\nimport { HeaderComponent } from './layout/component/header/header.component';\nimport { CallingDialogComponent } from './modal/calling-dialog/calling-dialog.component';\nimport { Customer360Component } from './component/customer360/customer360.component';\nimport { CommonService } from './core/service/common-service/common.service';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { AngularFontAwesomeModule } from 'angular-font-awesome';\nimport { ToastrModule } from 'ngx-toastr';\nimport { NgxMaterialTimepickerModule } from 'ngx-material-timepicker';\nimport { ReminderDialogComponent } from './modal/reminder-dialog/reminder-dialog.component';\nimport { DatePipe } from '@angular/common';\nimport { DigitsOnlyDirective } from './directive/digits-only.directive';\nimport { AlphabetOnlyDirective } from './directive/char-only.directive';\nimport { MAT_DATE_LOCALE, MAT_DATE_FORMATS, DateAdapter } from '@angular/material';\nimport { MomentUtcDateAdapter } from './pipes/moment-utc-date-adapter';\nimport { MAT_MOMENT_DATE_FORMATS } from '@angular/material-moment-adapter';\nimport { FilterPipePipe } from './pipes/filter-pipe.pipe';\nimport { MaterialModule } from './shared/material.module';\nimport { MainLayoutComponent } from './layout/component/main-layout/main-layout.component';\nimport { AuthService } from './core/authentication/authentication.service';\nimport { AuthGuardService } from './core/authentication/authentication.guard';\nimport { FlexLayoutModule } from \"@angular/flex-layout\";\nimport { TruncatePipe } from './pipes/truncate.pipe';\nimport { SafePipe } from './pipes/safe.pipe';\nimport { InboundCallComponent } from './component/inbound-call/inbound-call.component';\nimport { UserService } from './core/service/user-service/user.service';\nimport { OwlDateTimeModule, OwlNativeDateTimeModule } from 'ng-pick-datetime';\nimport { Customer360DialogComponent } from './modal/customer360-dialog/customer360-dialog.component';\nimport { ProfileComponent } from './component/profile/profile.component';\nimport { BasicAuthInterceptor } from './core/service/http-interceptor/auth-interceptor';\nimport { ErrorInterceptor } from './core/service/http-interceptor/error-interceptor';\nimport { ReportingComponent } from './component/reporting/reporting.component';\nimport { RecordingDialogComponent } from './modal/recording-dialog/recording-dialog.component';\nimport { CustomToolTipComponent } from './directive/custom-tool-tip/custom-tool-tip.directive';\nimport { ToolTipRendererDirective } from './directive/custom-tool-tip/tool-tip-renderer.directive';\nimport { UamComponent } from './component/uam/uam.component';\nimport { ServicenotrequireDailogComponent } from './modal/servicenotrequire-dailog/servicenotrequire-dailog.component';\nimport { ChartsModule } from 'ng2-charts';\nimport { ChartDashboardComponent } from './component/dashboard/chart-dashboard/chart-dashboard.component';\nimport { ChartDialogComponent } from './modal/chart-dialog/chart-dialog.component';\nimport { ServiceBreakDialogComponent } from './modal/service-break-dialog/service-break-dialog.component';\nimport { ExampleHeader } from './component/dashboard/custom-header-cal/custom-header.component';\nimport { PrsCallingListComponent } from './component/prs-calling-list/prs-calling-list.component';\nimport { PrsCustomer360Component } from './component/prs-customer360/prs-customer360.component';\nimport { PrsReportingComponent } from './component/prs-reporting/prs-reporting.component';\nimport { BarRatingModule } from \"ngx-bar-rating\";\nimport { SoftOfferingsComponent } from './component/soft-offerings/soft-offerings.component';\nimport { SoftOfferingReportingComponent } from './component/soft-offering-reporting/soft-offering-reporting.component';\nimport { SoftCustomer360Component } from './component/soft-customer360/soft-customer360.component';\nimport { SoftCallingDialogComponent } from './modal/soft-calling-dialog/soft-calling-dialog.component';\nimport { MarketShareReportingComponent } from './component/market-share-reporting/market-share-reporting.component';\nimport { BlanketFeedbackDailogComponent } from './modal/blanket-feedback-dailog/blanket-feedback-dailog.component';\nimport { CdmCallingListComponent } from './component/cdm-calling-list/cdm-calling-list.component';\nimport { CdmCustomer360Component } from './component/cdm-customer360/cdm-customer360.component';\nimport { NewTicketDialogComponent } from './modal/new-ticket-dialog/new-ticket-dialog.component';\nimport { ForgotPasswordDialogComponent } from './security/forgot-password-dialog/forgot-password-dialog.component';\nimport { LostCustomerComponent } from './component/lost-customer/lost-customer.component';\nimport { LostCustomer360Component } from './component/lost-customer360/lost-customer360.component';\nimport { LostCallingDialogComponent } from './modal/lost-calling-dialog/lost-calling-dialog.component';\nimport { VisitReportComponent } from './modal/visit-report/visit-report.component';\nimport { WorkshopManagerCallingListComponent } from './component/workshop-manager-calling-list/workshop-manager-calling-list.component';\nimport { LostCustomerLeadUpdateDialogComponent } from './modal/lost-customer-lead-update-dialog/lost-customer-lead-update-dialog.component';\nimport { PrsComplaintDialogComponent } from './modal/prs-complaint-dialog/prs-complaint-dialog.component';\nimport { PrsDashboardComponent } from './component/prs-dashboard/prs-dashboard.component';\nimport { ChartPrsDashboardComponent } from './component/prs-dashboard/chart-prs-dashboard/chart-prs-dashboard.component';\nimport {WorkshopReassignmentComponent} from './component/workshop-reassignment/workshop-reassignment.component';\nimport {WorkshopReassignmentDialogComponent} from './modal/workshop-reassignment-dialog/workshop-reassignment-dialog.component';\nimport {PipelineManagementComponent} from './component/pipeline-management/pipeline-management.component';\nimport {PipelineSearchComponent} from './component/pipeline-search/pipeline-search.component';\nimport {PipelineEnquiryComponent} from './modal/pipeline-enquiry/pipeline-enquiry.component';\nimport {PipelineEnquiryTableComponent} from './modal/pipeline-enquiry-table/pipeline-enquiry-table.component';\nimport {LeadStatusDialogComponent} from './modal/lead-status-dialog/lead-status-dialog.component';\nimport { DoorstepCallingListComponent } from './component/doorstep-calling-list/doorstep-calling-list.component';\nimport { DoorstepCustomer360Component } from './component/doorstep-customer360/doorstep-customer360.component';\nimport { DoorstepCallingDialogComponent } from './modal/doorstep-calling-dialog/doorstep-calling-dialog.component';\nimport { DoorstepDashboardComponent } from './component/doorstep-dashboard/doorstep-dashboard.component';\nimport { DoorstepChartDashboardComponent } from './component/doorstep-dashboard/doorstep-chart-dashboard/doorstep-chart-dashboard.component';\nimport { AdminComponent} from './component/admin/admin.component';\nimport { MatDialogModule, MAT_DIALOG_DEFAULT_OPTIONS } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { ConfirmDialogComponent } from './modal/confirm-dialog/confirm-dialog.component';\nimport { DialogService } from './dialog.service';\nconst DEFAULT_PERFECT_SCROLLBAR_CONFIG: PerfectScrollbarConfigInterface = {\n suppressScrollX: true\n};\n\n@NgModule({\n declarations: [\n AppComponent,\n LoginComponent,\n DashboardComponent,\n ReportingComponent,\n CallingListComponent,\n HeaderComponent,\n CallingDialogComponent,\n RecordingDialogComponent,\n Customer360Component,\n InboundCallComponent,\n ReminderDialogComponent,\n Customer360DialogComponent,\n ProfileComponent,\n DigitsOnlyDirective,\n AlphabetOnlyDirective,\n FilterPipePipe,\n MainLayoutComponent,\n TruncatePipe,\n SafePipe,\n CustomToolTipComponent,\n ToolTipRendererDirective,\n UamComponent,\n ServicenotrequireDailogComponent,\n ChartDashboardComponent,\n ChartDialogComponent,\n ServiceBreakDialogComponent,\n ExampleHeader,\n PrsCallingListComponent,\n PrsCustomer360Component,\n PrsReportingComponent,\n SoftOfferingsComponent,\n SoftOfferingReportingComponent,\n SoftCustomer360Component,\n SoftCallingDialogComponent,\n MarketShareReportingComponent,\n BlanketFeedbackDailogComponent,\n CdmCallingListComponent,\n CdmCustomer360Component,\n NewTicketDialogComponent,\n ForgotPasswordDialogComponent,\n LostCustomerComponent,\n LostCustomer360Component,\n LostCallingDialogComponent,\n VisitReportComponent,\n WorkshopReassignmentComponent,\n WorkshopReassignmentDialogComponent,\n PrsComplaintDialogComponent,\n PrsDashboardComponent,\n ChartPrsDashboardComponent,\n WorkshopManagerCallingListComponent,\n LostCustomerLeadUpdateDialogComponent,\n PipelineSearchComponent,\n PipelineManagementComponent,\n PipelineEnquiryComponent,\n LeadStatusDialogComponent,\n PipelineEnquiryTableComponent,\n DoorstepCallingListComponent,\n DoorstepCustomer360Component,\n DoorstepCallingDialogComponent,\n DoorstepDashboardComponent,\n DoorstepChartDashboardComponent,\n AdminComponent,\n ConfirmDialogComponent,\n \n ],\n imports: [\n BrowserModule,\n AppRoutingModule,\n BrowserAnimationsModule,\n MaterialModule,\n HttpClientModule,\n NgxMaterialTimepickerModule,\n PerfectScrollbarModule,\n ToastrModule.forRoot({\n timeOut: 5000,\n positionClass: 'toast-bottom-right',\n preventDuplicates: false,\n progressBar: false,\n progressAnimation: \"increasing\"\n }),\n ReactiveFormsModule,\n FormsModule,\n AngularFontAwesomeModule,\n FlexLayoutModule,\n OwlDateTimeModule,\n OwlNativeDateTimeModule,\n ChartsModule,\n BarRatingModule,\n MatDialogModule,\n MatIconModule\n ],\n exports: [HeaderComponent],\n providers: [CommonService, AuthService, AuthGuardService, UserService, DatePipe,DialogService,\n { provide: MAT_DATE_LOCALE, useValue: 'en-GB' },\n { provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS },\n { provide: DateAdapter, useClass: MomentUtcDateAdapter },\n { provide: PERFECT_SCROLLBAR_CONFIG, useValue: DEFAULT_PERFECT_SCROLLBAR_CONFIG },\n { provide: HTTP_INTERCEPTORS, useClass: BasicAuthInterceptor, multi: true },\n { provide: HTTP_INTERCEPTORS, useClass: ErrorInterceptor, multi: true },\n {provide: MAT_DIALOG_DEFAULT_OPTIONS, useValue: {hasBackdrop: true}}\n ],\n bootstrap: [AppComponent],\n entryComponents: [\n CustomToolTipComponent,\n CallingDialogComponent,\n ReminderDialogComponent,\n Customer360DialogComponent,\n ChartDialogComponent,\n ServiceBreakDialogComponent,\n ServicenotrequireDailogComponent,\n ExampleHeader,\n SoftCallingDialogComponent,\n BlanketFeedbackDailogComponent,\n NewTicketDialogComponent,\n ForgotPasswordDialogComponent,\n LostCallingDialogComponent,\n VisitReportComponent,\n LostCustomerLeadUpdateDialogComponent,\n PrsComplaintDialogComponent,\n WorkshopReassignmentDialogComponent,\n PipelineEnquiryComponent,\n LeadStatusDialogComponent,\n PipelineEnquiryTableComponent,\n DoorstepCallingDialogComponent,\n ConfirmDialogComponent\n\n ]\n})\nexport class AppModule { }","export default \".admin-container {\\n margin-top: 115px;\\n}\\n\\n.admin-form-container {\\n display: flex;\\n flex-direction: column;\\n padding-bottom: 25px;\\n}\\n\\n.admin-form-container>* {\\n width: 100%;\\n}\\n\\n.admin-form-container .mat-grid-list {\\n padding-bottom: calc(1 * ((10% - 0.75px) * 1) + 0px + 0px) !important;\\n}\\n\\n.admin-form-container .mat-grid-tile {\\n padding-top: calc(1 * ((7% - 0.75px) * 1) + 0px + 0px) !important;\\n}\\n\\n.main-card-border {\\n border: 1px solid lightgray;\\n border-radius: 0%;\\n box-shadow: none;\\n background-color: transparent;\\n padding-bottom: 0px !important;\\n}\\n\\n.toolbar {\\n display: flex;\\n justify-content: flex-end;\\n margin-bottom: 20px;\\n gap: 10px;\\n}\\n\\n::ng-deep .mat-dialog-container {\\n max-width: 800px !important;\\n}\\n\\n::ng-deep .dialog-container {\\n position: relative;\\n padding: 15px;\\n font-size: 14px;\\n}\\n\\n::ng-deep .close-button {\\n position: absolute;\\n top: 8px;\\n right: 8px;\\n z-index: 1;\\n /* Ensures it's above other elements */\\n}\\n\\n::ng-deep .mat-dialog-container .mat-dialog-title {\\n font-size: 16px;\\n}\\n\\n.full-width-input {\\n width: 32%;\\n margin-bottom: 5px;\\n padding-right: 10px;\\n}\\n\\n::ng-deep .mat-dialog-container .mat-form-field-infix {\\n max-width: 250px;\\n width: 100%;\\n height: 25px;\\n}\\n\\n::ng-deep .mat-form-field-appearance-legacy .mat-form-field-wrapper,\\n::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 0.50em;\\n}\\n\\n.filter1 ::ng-deep .mat-button,\\n::ng-deep .mat-button {\\n font-size: 12px;\\n font: #fff;\\n}\\n\\n.filterButton,\\n::ng-deep .mat-button {\\n color: white !important;\\n background-color: #00457D;\\n height: 25px;\\n line-height: 10px;\\n margin-bottom: 1px;\\n padding-bottom: 2px;\\n font-size: 12px;\\n}\\n\\n.selected-file-name {\\n margin-left: 20px;\\n display: inline-block;\\n vertical-align: middle;\\n}\\n\\n.import-modal .mat-dialog-content span.selected-file-name {\\n margin-left: 0;\\n border: none;\\n}\\n\\n::ng-deep .import-modal .mat-dialog-content span {\\n border: 1px solid #ccc;\\n display: inline-block;\\n padding: 6px 20px 6px 10px;\\n width: 80%;\\n border-radius: 4px;\\n}\\n\\n.searchfilter-div {\\n margin-top: -14px;\\n}\\n\\n::ng-deep .searchfilter-div .mat-form-field-flex {\\n padding-left: 5px;\\n}\\n\\n::ng-deep .searchfilter-div .mat-form-field-infix input {\\n margin-left: 0 !important;\\n}\\n\\n.filter1 a {\\n display: inline-block;\\n line-height: 24px;\\n padding: 0 10px;\\n text-decoration: none;\\n height: 24px;\\n border-radius: 4px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50L2FkbWluL2FkbWluLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxpQkFBaUI7QUFDbkI7O0FBRUE7RUFDRSxhQUFhO0VBQ2Isc0JBQXNCO0VBQ3RCLG9CQUFvQjtBQUN0Qjs7QUFFQTtFQUNFLFdBQVc7QUFDYjs7QUFFQTtFQUNFLHFFQUFxRTtBQUN2RTs7QUFFQTtFQUNFLGlFQUFpRTtBQUNuRTs7QUFFQTtFQUNFLDJCQUEyQjtFQUMzQixpQkFBaUI7RUFDakIsZ0JBQWdCO0VBQ2hCLDZCQUE2QjtFQUM3Qiw4QkFBOEI7QUFDaEM7O0FBRUE7RUFDRSxhQUFhO0VBQ2IseUJBQXlCO0VBQ3pCLG1CQUFtQjtFQUNuQixTQUFTO0FBQ1g7O0FBRUE7RUFDRSwyQkFBMkI7QUFDN0I7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsYUFBYTtFQUNiLGVBQWU7QUFDakI7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsUUFBUTtFQUNSLFVBQVU7RUFDVixVQUFVO0VBQ1Ysc0NBQXNDO0FBQ3hDOztBQUVBO0VBQ0UsZUFBZTtBQUNqQjs7QUFFQTtFQUNFLFVBQVU7RUFDVixrQkFBa0I7RUFDbEIsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsZ0JBQWdCO0VBQ2hCLFdBQVc7RUFDWCxZQUFZO0FBQ2Q7O0FBRUE7O0VBRUUsc0JBQXNCO0FBQ3hCOztBQUVBOztFQUVFLGVBQWU7RUFDZixVQUFVO0FBQ1o7O0FBRUE7O0VBRUUsdUJBQXVCO0VBQ3ZCLHlCQUF5QjtFQUN6QixZQUFZO0VBQ1osaUJBQWlCO0VBQ2pCLGtCQUFrQjtFQUNsQixtQkFBbUI7RUFDbkIsZUFBZTtBQUNqQjs7QUFFQTtFQUNFLGlCQUFpQjtFQUNqQixxQkFBcUI7RUFDckIsc0JBQXNCO0FBQ3hCOztBQUVBO0VBQ0UsY0FBYztFQUNkLFlBQVk7QUFDZDs7QUFFQTtFQUNFLHNCQUFzQjtFQUN0QixxQkFBcUI7RUFDckIsMEJBQTBCO0VBQzFCLFVBQVU7RUFDVixrQkFBa0I7QUFDcEI7O0FBRUE7RUFDRSxpQkFBaUI7QUFDbkI7O0FBRUE7RUFDRSxpQkFBaUI7QUFDbkI7O0FBRUE7RUFDRSx5QkFBeUI7QUFDM0I7O0FBRUE7RUFDRSxxQkFBcUI7RUFDckIsaUJBQWlCO0VBQ2pCLGVBQWU7RUFDZixxQkFBcUI7RUFDckIsWUFBWTtFQUNaLGtCQUFrQjtBQUNwQiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudC9hZG1pbi9hZG1pbi5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmFkbWluLWNvbnRhaW5lciB7XG4gIG1hcmdpbi10b3A6IDExNXB4O1xufVxuXG4uYWRtaW4tZm9ybS1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBwYWRkaW5nLWJvdHRvbTogMjVweDtcbn1cblxuLmFkbWluLWZvcm0tY29udGFpbmVyPioge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmFkbWluLWZvcm0tY29udGFpbmVyIC5tYXQtZ3JpZC1saXN0IHtcbiAgcGFkZGluZy1ib3R0b206IGNhbGMoMSAqICgoMTAlIC0gMC43NXB4KSAqIDEpICsgMHB4ICsgMHB4KSAhaW1wb3J0YW50O1xufVxuXG4uYWRtaW4tZm9ybS1jb250YWluZXIgLm1hdC1ncmlkLXRpbGUge1xuICBwYWRkaW5nLXRvcDogY2FsYygxICogKCg3JSAtIDAuNzVweCkgKiAxKSArIDBweCArIDBweCkgIWltcG9ydGFudDtcbn1cblxuLm1haW4tY2FyZC1ib3JkZXIge1xuICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gIGJvcmRlci1yYWRpdXM6IDAlO1xuICBib3gtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgcGFkZGluZy1ib3R0b206IDBweCAhaW1wb3J0YW50O1xufVxuXG4udG9vbGJhciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGdhcDogMTBweDtcbn1cblxuOjpuZy1kZWVwIC5tYXQtZGlhbG9nLWNvbnRhaW5lciB7XG4gIG1heC13aWR0aDogODAwcHggIWltcG9ydGFudDtcbn1cblxuOjpuZy1kZWVwIC5kaWFsb2ctY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAxNXB4O1xuICBmb250LXNpemU6IDE0cHg7XG59XG5cbjo6bmctZGVlcCAuY2xvc2UtYnV0dG9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDhweDtcbiAgcmlnaHQ6IDhweDtcbiAgei1pbmRleDogMTtcbiAgLyogRW5zdXJlcyBpdCdzIGFib3ZlIG90aGVyIGVsZW1lbnRzICovXG59XG5cbjo6bmctZGVlcCAubWF0LWRpYWxvZy1jb250YWluZXIgLm1hdC1kaWFsb2ctdGl0bGUge1xuICBmb250LXNpemU6IDE2cHg7XG59XG5cbi5mdWxsLXdpZHRoLWlucHV0IHtcbiAgd2lkdGg6IDMyJTtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xufVxuXG46Om5nLWRlZXAgLm1hdC1kaWFsb2ctY29udGFpbmVyIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIG1heC13aWR0aDogMjUwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDI1cHg7XG59XG5cbjo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIsXG46Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMC41MGVtO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1idXR0b24sXG46Om5nLWRlZXAgLm1hdC1idXR0b24ge1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQ6ICNmZmY7XG59XG5cbi5maWx0ZXJCdXR0b24sXG46Om5nLWRlZXAgLm1hdC1idXR0b24ge1xuICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RDtcbiAgaGVpZ2h0OiAyNXB4O1xuICBsaW5lLWhlaWdodDogMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMXB4O1xuICBwYWRkaW5nLWJvdHRvbTogMnB4O1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5zZWxlY3RlZC1maWxlLW5hbWUge1xuICBtYXJnaW4tbGVmdDogMjBweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uaW1wb3J0LW1vZGFsIC5tYXQtZGlhbG9nLWNvbnRlbnQgc3Bhbi5zZWxlY3RlZC1maWxlLW5hbWUge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgYm9yZGVyOiBub25lO1xufVxuXG46Om5nLWRlZXAgLmltcG9ydC1tb2RhbCAubWF0LWRpYWxvZy1jb250ZW50IHNwYW4ge1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDZweCAyMHB4IDZweCAxMHB4O1xuICB3aWR0aDogODAlO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG5cbi5zZWFyY2hmaWx0ZXItZGl2IHtcbiAgbWFyZ2luLXRvcDogLTE0cHg7XG59XG5cbjo6bmctZGVlcCAuc2VhcmNoZmlsdGVyLWRpdiAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xufVxuXG46Om5nLWRlZXAgLnNlYXJjaGZpbHRlci1kaXYgLm1hdC1mb3JtLWZpZWxkLWluZml4IGlucHV0IHtcbiAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbn1cblxuLmZpbHRlcjEgYSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIHBhZGRpbmc6IDAgMTBweDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBoZWlnaHQ6IDI0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn0iXX0= */\"","import { Component, OnInit, ViewChild, TemplateRef, ChangeDetectorRef } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { CommonService } from 'src/app/core/service/common-service/common.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { MatPaginator } from '@angular/material';\n\n@Component({\n selector: 'app-admin',\n templateUrl: './admin.component.html',\n styleUrls: ['./admin.component.css']\n})\nexport class AdminComponent implements OnInit {\n\n displayedColumns: string[] = ['model', 'fertcode', 'vertical', 'body_building_days', 'actions'];\n dataSource: any;\n selectedItem: any = {};\n isEditMode: boolean = false;\n pageSize: number;\n pageIndex: number;\n total_pages: number = 0;\n selectedFile: File;\n selectedFileName: string;\n filterValue: any;\n\n @ViewChild('formDialog', { static: false }) formDialog: TemplateRef;\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\n @ViewChild('importDialog', { static: false }) importDialog: TemplateRef;\n\n constructor(private dialog: MatDialog, private cdr: ChangeDetectorRef, private toastr: ToastrService, private commonService: CommonService) { }\n\n ngOnInit(): void {\n this.loadData();\n }\n\n loadData() {\n if (localStorage.getItem('adminListPageSize') != null || localStorage.getItem('adminListPageSize') != undefined) {\n let pagesize = Number(localStorage.getItem('adminListPageSize'));\n this.pageSize = (pagesize && !Number.isNaN(pagesize)) ? pagesize : 10;\n } else {\n this.pageSize = 10;\n }\n if (localStorage.getItem('adminListPage') != null || localStorage.getItem('adminListPage') != undefined) {\n let pagenumber = Number(localStorage.getItem('adminListPage'));\n this.pageIndex = (pagenumber && !Number.isNaN(pagenumber)) ? pagenumber + 1 : 1;\n } else {\n this.pageIndex = 1;\n }\n this.commonService.findMasters(this.selectedItem.id, this.pageIndex, this.pageSize, '').subscribe(data => {\n if (data['responseCode'] == 0) {\n this.dataSource = data.responseData.resultList;\n this.dataSource.paginator = this.paginator;\n this.total_pages = data.responseData.total_elements;\n localStorage.removeItem('adminListPage');\n } else {\n this.toastr.error(data['message'], \"Error\");\n }\n });\n }\n\n openAddForm() {\n this.isEditMode = false;\n this.selectedItem = {};\n this.dialog.open(this.formDialog);\n }\n\n edit(item) {\n this.isEditMode = true;\n this.selectedItem = { ...item };\n this.dialog.open(this.formDialog);\n }\n\n saveData() {\n if (this.isEditMode) {\n this.commonService.updateMaster(this.selectedItem, this.selectedItem.id).subscribe(data => {\n this.loadData(); // Reload data after successful edit\n this.toastr.success(data['message'], \"Success\");\n }, error => { // Handle error\n this.toastr.error(\"Error Edit\");\n });\n } else {\n this.commonService.createMaster(this.selectedItem).subscribe(data => {\n this.loadData(); // Reload data after successful creation\n this.toastr.success(data['message'], \"Success\");\n }, error => { // Handle error\n this.toastr.error(\"Save Error\");\n });\n }\n this.dialog.closeAll();\n }\n\n closeDialog() {\n this.dialog.closeAll();\n }\n\n exportData(): void {\n this.commonService.downloadMasters().subscribe((data: Blob) => {\n const blob = new Blob([data], { type: 'text/csv' });\n const link = document.createElement('a');\n link.href = window.URL.createObjectURL(blob);\n link.download = 'masters.csv'; // Adjust the filename as needed\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n this.toastr.success(data['message'], \"Success\");\n }, error => { // Handle error\n this.toastr.error('Error downloading masters', error);\n });\n }\n\n openImportForm() {\n this.dialog.open(this.importDialog, {\n width: '500px',\n height: '200px',\n panelClass: 'custom-modal-style'\n });\n }\n\n handleFileInput(files: FileList): void {\n const file = files.item(0);\n if (file) {\n // Client-side validation for file type\n const allowedTypes = ['application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/vnd.ms-excel', 'text/csv'];\n if (allowedTypes.includes(file.type)) {\n this.selectedFile = file;\n this.selectedFileName = file.name;\n } else {\n // Reset the selected file and display an error message\n this.selectedFile = null;\n this.selectedFileName = null;\n this.toastr.error('Invalid file type. Please select an Excel or CSV file.');\n }\n } else {\n this.selectedFile = null;\n this.selectedFileName = null;\n }\n }\n\n uploadFile(): void {\n if (this.selectedFile) {\n this.commonService.createMasterByCsv(this.selectedFile).subscribe(data => {\n if (data['responseCode'] == 0) {\n this.loadData(); // Reload data after successful import\n this.closeDialog();\n this.toastr.success(data['message'], \"Success\");\n } else {\n this.toastr.error(data['message'], \"Error\");\n }\n }, error => { // Handle error\n this.toastr.error('Error uploading file', error);\n });\n }\n }\n /**\n * Name: setPageData\n * purpose: To set pagesize for table\n */\n setPageData(event) {\n let size = event.pageSize.toString();\n localStorage.setItem('adminListPageSize', size);\n let index = event.pageIndex.toString();\n localStorage.setItem('adminListPage', index);\n if (this.filterValue) {\n this.searchfilter(this.filterValue);\n } else {\n this.loadData();\n }\n }\n /**\n * Name: searchfilter with API based pagination\n * purpose: To apply filter on call list data\n * @author: Vaibhav\n */\n searchfilter(filterValue: string): void {\n filterValue = filterValue.toLowerCase(); // Datasource defaults to lowercase matches\n this.filterValue = filterValue;\n if (localStorage.getItem('adminListPageSize') != null || localStorage.getItem('adminListPageSize') != undefined) {\n let pagesize = Number(localStorage.getItem('adminListPageSize'));\n this.pageSize = (pagesize && !Number.isNaN(pagesize)) ? pagesize : 10;\n } else {\n this.pageSize = 10;\n }\n if (localStorage.getItem('adminListPage') != null || localStorage.getItem('adminListPage') != undefined) {\n let pagenumber = Number(localStorage.getItem('adminListPage'));\n this.pageIndex = (pagenumber && !Number.isNaN(pagenumber)) ? pagenumber + 1 : 1;\n } else {\n this.pageIndex = 1;\n }\n this.commonService.findMasters(this.selectedItem.id, this.pageIndex, this.pageSize, filterValue).subscribe(data => {\n if (data['responseCode'] == 0) {\n this.dataSource = data.responseData.resultList;\n this.dataSource.paginator = this.paginator;\n this.total_pages = data.responseData.total_elements;\n localStorage.removeItem('adminListPage');\n } else {\n this.toastr.error(data['message'], \"Error\");\n }\n });\n }\n}\n","export default \".working-area {\\n margin-top: 115px;\\n}\\n\\ntable {\\n width: 100%;\\n}\\n\\n.calling-table tr {\\n cursor: pointer;\\n}\\n\\n.table-head-call {\\n background: none;\\n padding-top: 12px;\\n}\\n\\n.button-margin {\\n margin-left: 10px;\\n}\\n\\n.callList {\\n font: Bold 20px Roboto;\\n letter-spacing: 0px;\\n color: #484848;\\n opacity: 1;\\n}\\n\\n.close-con {\\n font-size: 18px;\\n cursor: pointer;\\n top: 3px;\\n right: 1px;\\n position: absolute !important;\\n z-index: 10;\\n opacity: 1;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-infix {\\n border: 1px solid lightgray;\\n border-radius: 5px;\\n background: white;\\n padding: 0;\\n height: 20px;\\n}\\n\\n.filter1 ::ng-deep .mat-select {\\n padding: 3px 0px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-trigger {\\n padding-left: 8px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-value {\\n width: 89%;\\n}\\n\\n.filter1 ::ng-deep .mat-button {\\n font-size: 12px;\\n font: white;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label-wrapper {\\n top: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-underline {\\n display: none;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label {\\n top: 0;\\n margin-top: 4px !important;\\n padding-left: 5px;\\n}\\n\\n.filter-label {\\n font: Bold 14px Roboto;\\n letter-spacing: 0px;\\n color: #3c3c3c;\\n opacity: 1;\\n margin-bottom: 5px;\\n}\\n\\n.refesh-icon {\\n float: right;\\n margin-bottom: -30px;\\n margin-right: 20px;\\n margin-top: 30px;\\n cursor: pointer;\\n}\\n\\n.coloredRow {\\n background: #ffff99;\\n}\\n\\n.coloredGreenRow {\\n background: #90ee90;\\n}\\n\\n.mat-dialog-title {\\n background-color: darkgray;\\n}\\n\\n.callList-right {\\n font-size: 11px;\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.columnHeader {\\n font: Bold 12px Roboto;\\n letter-spacing: 0px;\\n color: #333333;\\n text-transform: capitalize;\\n}\\n\\n.lost {\\n color: #e64243;\\n position: absolute;\\n left: 10px;\\n font-size: 10px;\\n top: 38%;\\n}\\n\\n.inbound, .pbbi-color {\\n color: #2e3668;\\n position: absolute;\\n left: 10px;\\n font-size: 10px;\\n top: 38%;\\n}\\n\\n.pbbi-color {\\n color: #f9b006;\\n}\\n\\n.app {\\n color: green;\\n position: absolute;\\n left: 10px;\\n font-size: 10px;\\n top: 38%;\\n}\\n\\n.columnvalue {\\n font-size: 14px;\\n position: relative;\\n}\\n\\n.filter1 {\\n font-size: 12px;\\n}\\n\\n.filterButton {\\n color: white !important;\\n background-color: #00457D;\\n height: 20px;\\n line-height: 10px;\\n margin-bottom: 1px;\\n}\\n\\n.filterdiv {\\n align-items: center;\\n}\\n\\n.serviceDueDate {\\n width: 10% !important;\\n}\\n\\n.followUp {\\n width: 9% !important;\\n}\\n\\ntd.mat-cell,\\ntd.mat-footer-cell,\\nth.mat-header-cell {\\n padding: 3px;\\n border-style: solid none none solid;\\n border-width: 0.1px;\\n border-color: lightgray;\\n}\\n\\n.table-border.mat-table {\\n border-style: none solid solid none;\\n border-color: lightgray;\\n}\\n\\nth.mat-header-cell {\\n background-color: #d9d9d9;\\n}\\n\\n.filter2 {\\n width: auto;\\n}\\n\\n.call-stats-card .mat-card-title {\\n margin-bottom: 0px;\\n}\\n\\n.call-stats-card .call-stats {\\n font-size: 11px;\\n color: #ffffff;\\n}\\n\\n.call-stats-card .call-stats i {\\n color: #2e3668;\\n font-size: 11px;\\n}\\n\\n.call-stats-card .call-stats-title {\\n font-size: 20px;\\n color: #484848;\\n}\\n\\n.call-stats-card1 {\\n padding-top: 0px;\\n}\\n\\n.call-stats-card-border1 {\\n border-style: solid solid none solid;\\n border-width: 1px;\\n border-radius: 0%;\\n border-color: lightgray;\\n}\\n\\n.call-stats-card-border2 {\\n border-style: solid solid solid solid;\\n border-width: 1px;\\n border-radius: 0%;\\n margin-bottom: 15px;\\n border-color: lightgray;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-group {\\n border-radius: 0px;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle {\\n background-color: #ffffff;\\n color: #5482BC;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-checked {\\n background-color: #5482BC;\\n color: #ffffff;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-label-content {\\n line-height: 30px;\\n font: Regular 14px Roboto;\\n letter-spacing: 0px;\\n}\\n\\n.toggle-btn-grp ::ng-deep .refresh-btn.mat-button {\\n min-width: auto;\\n}\\n\\n.refresh-btn {\\n background-color: #ffffff;\\n color: #e64243;\\n border: 1px solid #e64243;\\n border-radius: 0px;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-flex {\\n border: 1px solid lightgray;\\n border-radius: 3px;\\n background: white;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-label {\\n padding-left: 10px;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-infix {\\n border-top: none;\\n}\\n\\n.textboxService ::ng-deep label.mat-form-field-label {\\n margin-top: 8px !important;\\n}\\n\\n.textboxService ::ng-deep input.mat-input-element {\\n margin-top: 0.6em;\\n margin-left: 10px;\\n}\\n\\n.search-icon {\\n position: absolute;\\n right: 15px;\\n top: 15px;\\n}\\n\\n.backColor {\\n background-color: #00457D !important;\\n font-size: 12px;\\n}\\n\\n.box-size {\\n margin-left: 10px;\\n margin-top: 7px;\\n width: 28px;\\n height: 28px;\\n color: #ffffff !important;\\n}\\n\\n.backColor1 {\\n background-color: #5482BC !important;\\n font-size: 12px;\\n}\\n\\n.call-stats-value {\\n margin-left: 50px;\\n font-size: 18px;\\n}\\n\\n.call-stats-value1 {\\n margin-left: 30px;\\n font-size: 18px;\\n}\\n\\n.info-circle-size {\\n font-size: 12px !important;\\n color: #ffffff !important;\\n}\\n\\n.flex-set {\\n margin-top: 7px;\\n margin-left: 30px;\\n}\\n\\n.flex-set1 {\\n margin-top: 7px;\\n margin-left: 55px;\\n}\\n\\n.dueDateIcon {\\n height: 9px;\\n width: 11px;\\n}\\n\\n.filter3 {\\n width: 200px;\\n margin-right: 30px;\\n font-size: 12px;\\n}\\n\\n.paginator ::ng-deep .mat-form-field-infix {\\n height: 18px !important;\\n padding-bottom: 0px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9jb21wb25lbnQvY2FsbGluZy1saXN0L2NhbGxpbmctbGlzdC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50L2NhbGxpbmctbGlzdC9jYWxsaW5nLWxpc3QuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxpQkFBQTtBQ0NKOztBREVBO0VBQ0ksV0FBQTtBQ0NKOztBREVBO0VBQ0ksZUFBQTtBQ0NKOztBREVBO0VBQ0ksZ0JBQUE7RUFDQSxpQkFBQTtBQ0NKOztBREVBO0VBQ0ksaUJBQUE7QUNDSjs7QURFQTtFQUNJLHNCQUFBO0VBQ0EsbUJBQUE7RUFDQSxjQUFBO0VBQ0EsVUFBQTtBQ0NKOztBREVBO0VBQ0ksZUFBQTtFQUNBLGVBQUE7RUFDQSxRQUFBO0VBQ0EsVUFBQTtFQUNBLDZCQUFBO0VBQ0EsV0FBQTtFQUNBLFVBQUE7QUNDSjs7QURFQTtFQUNJLDJCQUFBO0VBQ0Esa0JBQUE7RUFDQSxpQkFBQTtFQUNBLFVBQUE7RUFDQSxZQUFBO0FDQ0o7O0FERUE7RUFDSSxnQkFBQTtBQ0NKOztBREVBO0VBQ0ksaUJBQUE7QUNDSjs7QURFQTtFQUNJLFVBQUE7QUNDSjs7QURFQTtFQUNJLGVBQUE7RUFDQSxXQUFBO0FDQ0o7O0FERUE7RUFDSSxNQUFBO0VBQ0EsY0FBQTtFQUNBLGlCQUFBO0FDQ0o7O0FERUE7RUFDSSxpQkFBQTtBQ0NKOztBREVBO0VBQ0ksYUFBQTtBQ0NKOztBREVBO0VBQ0ksTUFBQTtFQUNBLDBCQUFBO0VBQ0EsaUJBQUE7QUNDSjs7QURFQTtFQUNJLHNCQUFBO0VBQ0EsbUJBQUE7RUFDQSxjQUFBO0VBQ0EsVUFBQTtFQUNBLGtCQUFBO0FDQ0o7O0FERUE7RUFDSSxZQUFBO0VBQ0Esb0JBQUE7RUFDQSxrQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZUFBQTtBQ0NKOztBREVBO0VBQ0ksbUJBQUE7QUNDSjs7QURFQTtFQUNJLG1CQUFBO0FDQ0o7O0FERUE7RUFDSSwwQkFBQTtBQ0NKOztBREVBO0VBQ0ksZUFBQTtFQUNBLDBCQUFBO0FDQ0o7O0FERUE7RUFDSSxzQkFBQTtFQUNBLG1CQUFBO0VBQ0EsY0FBQTtFQUNBLDBCQUFBO0FDQ0o7O0FERUE7RUFDSSxjQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBO0VBQ0EsZUFBQTtFQUNBLFFBQUE7QUNDSjs7QURFQTtFQUNJLGNBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7RUFDQSxlQUFBO0VBQ0EsUUFBQTtBQ0NKOztBREVBO0VBQ0ksY0FBQTtBQ0NKOztBREVBO0VBQ0ksWUFBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLGVBQUE7RUFDQSxRQUFBO0FDQ0o7O0FERUE7RUFDSSxlQUFBO0VBQ0Esa0JBQUE7QUNDSjs7QURFQTtFQUNJLGVBQUE7QUNDSjs7QURFQTtFQUNJLHVCQUFBO0VBQ0EseUJBQUE7RUFDQSxZQUFBO0VBQ0EsaUJBQUE7RUFDQSxrQkFBQTtBQ0NKOztBREVBO0VBQ0ksbUJBQUE7QUNDSjs7QURFQTtFQUNJLHFCQUFBO0FDQ0o7O0FERUE7RUFDSSxvQkFBQTtBQ0NKOztBREVBOzs7RUFHSSxZQUFBO0VBQ0EsbUNBQUE7RUFDQSxtQkFBQTtFQUNBLHVCQUFBO0FDQ0o7O0FERUE7RUFDSSxtQ0FBQTtFQUNBLHVCQUFBO0FDQ0o7O0FERUE7RUFDSSx5QkFBQTtBQ0NKOztBREVBO0VBQ0ksV0FBQTtBQ0NKOztBREdJO0VBQ0ksa0JBQUE7QUNBUjs7QURFSTtFQUNJLGVBQUE7RUFDQSxjQUFBO0FDQVI7O0FEQ1E7RUFDSSxjQUFBO0VBQ0EsZUFBQTtBQ0NaOztBREVJO0VBQ0ksZUFBQTtFQUNBLGNBQUE7QUNBUjs7QURJQTtFQUNJLGdCQUFBO0FDREo7O0FESUE7RUFDSSxvQ0FBQTtFQUNBLGlCQUFBO0VBQ0EsaUJBQUE7RUFDQSx1QkFBQTtBQ0RKOztBRElBO0VBQ0kscUNBQUE7RUFDQSxpQkFBQTtFQUNBLGlCQUFBO0VBQ0EsbUJBQUE7RUFDQSx1QkFBQTtBQ0RKOztBRElBO0VBQ0ksa0JBQUE7QUNESjs7QURJQTtFQUNJLHlCQUFBO0VBQ0EsY0FBQTtBQ0RKOztBRElBO0VBQ0kseUJBQUE7RUFDQSxjQUFBO0FDREo7O0FESUE7RUFDSSxpQkFBQTtFQUNBLHlCQUFBO0VBQ0EsbUJBQUE7QUNESjs7QURJQTtFQUNJLGVBQUE7QUNESjs7QURJQTtFQUNJLHlCQUFBO0VBQ0EsY0FBQTtFQUNBLHlCQUFBO0VBQ0Esa0JBQUE7QUNESjs7QURJQTtFQUNJLDJCQUFBO0VBQ0Esa0JBQUE7RUFDQSxpQkFBQTtBQ0RKOztBRElBO0VBQ0ksa0JBQUE7QUNESjs7QURJQTtFQUNJLGdCQUFBO0FDREo7O0FESUE7RUFDSSwwQkFBQTtBQ0RKOztBRElBO0VBQ0ksaUJBQUE7RUFDQSxpQkFBQTtBQ0RKOztBRElBO0VBQ0ksa0JBQUE7RUFDQSxXQUFBO0VBQ0EsU0FBQTtBQ0RKOztBRElBO0VBQ0ksb0NBQUE7RUFDQSxlQUFBO0FDREo7O0FESUE7RUFDSSxpQkFBQTtFQUNBLGVBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLHlCQUFBO0FDREo7O0FESUE7RUFDSSxvQ0FBQTtFQUNBLGVBQUE7QUNESjs7QURJQTtFQUNJLGlCQUFBO0VBQ0EsZUFBQTtBQ0RKOztBRElBO0VBQ0ksaUJBQUE7RUFDQSxlQUFBO0FDREo7O0FESUE7RUFDSSwwQkFBQTtFQUNBLHlCQUFBO0FDREo7O0FESUE7RUFDSSxlQUFBO0VBQ0EsaUJBQUE7QUNESjs7QURJQTtFQUNJLGVBQUE7RUFDQSxpQkFBQTtBQ0RKOztBRElBO0VBQ0ksV0FBQTtFQUNBLFdBQUE7QUNESjs7QURJQTtFQUNJLFlBQUE7RUFDQSxrQkFBQTtFQUNBLGVBQUE7QUNESjs7QURJQTtFQUNJLHVCQUFBO0VBQ0EsbUJBQUE7QUNESiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudC9jYWxsaW5nLWxpc3QvY2FsbGluZy1saXN0LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLndvcmtpbmctYXJlYSB7XG4gICAgbWFyZ2luLXRvcDogMTE1cHg7XG59XG5cbnRhYmxlIHtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLmNhbGxpbmctdGFibGUgdHIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnRhYmxlLWhlYWQtY2FsbCB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBwYWRkaW5nLXRvcDogMTJweDtcbn1cblxuLmJ1dHRvbi1tYXJnaW4ge1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuXG4uY2FsbExpc3Qge1xuICAgIGZvbnQ6IEJvbGQgMjBweCBSb2JvdG87XG4gICAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgICBjb2xvcjogIzQ4NDg0ODtcbiAgICBvcGFjaXR5OiAxO1xufVxuXG4uY2xvc2UtY29uIHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRvcDogM3B4O1xuICAgIHJpZ2h0OiAxcHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gICAgei1pbmRleDogMTA7XG4gICAgb3BhY2l0eTogMTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGhlaWdodDogMjBweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0IHtcbiAgICBwYWRkaW5nOiAzcHggMHB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gICAgcGFkZGluZy1sZWZ0OiA4cHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gICAgd2lkdGg6IDg5JTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtYnV0dG9uIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udDogd2hpdGU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gICAgdG9wOiAwO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgdG9wOiAwO1xuICAgIG1hcmdpbi10b3A6IDRweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctbGVmdDogNXB4O1xufVxuXG4uZmlsdGVyLWxhYmVsIHtcbiAgICBmb250OiBCb2xkIDE0cHggUm9ib3RvO1xuICAgIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gICAgY29sb3I6ICMzYzNjM2M7XG4gICAgb3BhY2l0eTogMTtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG5cbi5yZWZlc2gtaWNvbiB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbi1ib3R0b206IC0zMHB4O1xuICAgIG1hcmdpbi1yaWdodDogMjBweDtcbiAgICBtYXJnaW4tdG9wOiAzMHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmNvbG9yZWRSb3cge1xuICAgIGJhY2tncm91bmQ6ICNmZmZmOTk7XG59XG5cbi5jb2xvcmVkR3JlZW5Sb3cge1xuICAgIGJhY2tncm91bmQ6ICM5MGVlOTA7XG59XG5cbi5tYXQtZGlhbG9nLXRpdGxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZ3JheTtcbn1cblxuLmNhbGxMaXN0LXJpZ2h0IHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG5cbi5jb2x1bW5IZWFkZXIge1xuICAgIGZvbnQ6IEJvbGQgMTJweCBSb2JvdG87XG4gICAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgICBjb2xvcjogIzMzMzMzMztcbiAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbn1cblxuLmxvc3Qge1xuICAgIGNvbG9yOiAjZTY0MjQzO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICB0b3A6IDM4JTtcbn1cblxuLmluYm91bmQsLnBiYmktY29sb3IgIHtcbiAgICBjb2xvcjogIzJlMzY2ODtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMTBweDtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgdG9wOiAzOCU7XG59XG5cbi5wYmJpLWNvbG9ye1xuICAgIGNvbG9yOiNmOWIwMDY7XG4gIH1cbiAgXG4uYXBwIHtcbiAgICBjb2xvcjogZ3JlZW47XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDEwcHg7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIHRvcDogMzglO1xufVxuXG4uY29sdW1udmFsdWUge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5maWx0ZXIxIHtcbiAgICBmb250LXNpemU6IDEycHg7XG59XG5cbi5maWx0ZXJCdXR0b24ge1xuICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0Q7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDFweDtcbn1cblxuLmZpbHRlcmRpdiB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLnNlcnZpY2VEdWVEYXRlIHtcbiAgICB3aWR0aDogMTAlICFpbXBvcnRhbnQ7XG59XG5cbi5mb2xsb3dVcCB7XG4gICAgd2lkdGg6IDklICFpbXBvcnRhbnQ7XG59XG5cbnRkLm1hdC1jZWxsLFxudGQubWF0LWZvb3Rlci1jZWxsLFxudGgubWF0LWhlYWRlci1jZWxsIHtcbiAgICBwYWRkaW5nOiAzcHg7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZCBub25lIG5vbmUgc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAwLjFweDtcbiAgICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxuLnRhYmxlLWJvcmRlci5tYXQtdGFibGUge1xuICAgIGJvcmRlci1zdHlsZTogbm9uZSBzb2xpZCBzb2xpZCBub25lO1xuICAgIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG50aC5tYXQtaGVhZGVyLWNlbGwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkOWQ5ZDk7XG59XG5cbi5maWx0ZXIyIHtcbiAgICB3aWR0aDogYXV0bztcbn1cblxuLmNhbGwtc3RhdHMtY2FyZCB7XG4gICAgLm1hdC1jYXJkLXRpdGxlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIH1cbiAgICAuY2FsbC1zdGF0cyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIGkge1xuICAgICAgICAgICAgY29sb3I6ICMyZTM2Njg7XG4gICAgICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmNhbGwtc3RhdHMtdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgIGNvbG9yOiAjNDg0ODQ4O1xuICAgIH1cbn1cblxuLmNhbGwtc3RhdHMtY2FyZDEge1xuICAgIHBhZGRpbmctdG9wOiAwcHg7XG59XG5cbi5jYWxsLXN0YXRzLWNhcmQtYm9yZGVyMSB7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZCBzb2xpZCBub25lIHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDAlO1xuICAgIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4uY2FsbC1zdGF0cy1jYXJkLWJvcmRlcjIge1xuICAgIGJvcmRlci1zdHlsZTogc29saWQgc29saWQgc29saWQgc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAge1xuICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgY29sb3I6ICM1NDgyQkM7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM1NDgyQkM7XG4gICAgY29sb3I6ICNmZmZmZmY7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWxhYmVsLWNvbnRlbnQge1xuICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgIGZvbnQ6IFJlZ3VsYXIgMTRweCBSb2JvdG87XG4gICAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAucmVmcmVzaC1idG4ubWF0LWJ1dHRvbiB7XG4gICAgbWluLXdpZHRoOiBhdXRvO1xufVxuXG4ucmVmcmVzaC1idG4ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgY29sb3I6ICNlNjQyNDM7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2U2NDI0MztcbiAgICBib3JkZXItcmFkaXVzOiAwcHg7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWZsZXgge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICBib3JkZXItdG9wOiBub25lO1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIGxhYmVsLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICBtYXJnaW4tdG9wOiA4cHggIWltcG9ydGFudDtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCBpbnB1dC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gICAgbWFyZ2luLXRvcDogMC42ZW07XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbi5zZWFyY2gtaWNvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAxNXB4O1xuICAgIHRvcDogMTVweDtcbn1cblxuLmJhY2tDb2xvciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RCAhaW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmJveC1zaXplIHtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICBtYXJnaW4tdG9wOiA3cHg7XG4gICAgd2lkdGg6IDI4cHg7XG4gICAgaGVpZ2h0OiAyOHB4O1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbi5iYWNrQ29sb3IxIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTQ4MkJDICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uY2FsbC1zdGF0cy12YWx1ZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwcHg7XG4gICAgZm9udC1zaXplOiAxOHB4O1xufVxuXG4uY2FsbC1zdGF0cy12YWx1ZTEge1xuICAgIG1hcmdpbi1sZWZ0OiAzMHB4O1xuICAgIGZvbnQtc2l6ZTogMThweDtcbn1cblxuLmluZm8tY2lyY2xlLXNpemUge1xuICAgIGZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbi5mbGV4LXNldCB7XG4gICAgbWFyZ2luLXRvcDogN3B4O1xuICAgIG1hcmdpbi1sZWZ0OiAzMHB4O1xufVxuXG4uZmxleC1zZXQxIHtcbiAgICBtYXJnaW4tdG9wOiA3cHg7XG4gICAgbWFyZ2luLWxlZnQ6IDU1cHg7XG59XG5cbi5kdWVEYXRlSWNvbiB7XG4gICAgaGVpZ2h0OiA5cHg7XG4gICAgd2lkdGg6IDExcHg7XG59XG5cbi5maWx0ZXIzIHtcbiAgICB3aWR0aDogMjAwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAzMHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLnBhZ2luYXRvciA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICBoZWlnaHQ6IDE4cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMHB4O1xufVxuIiwiLndvcmtpbmctYXJlYSB7XG4gIG1hcmdpbi10b3A6IDExNXB4O1xufVxuXG50YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uY2FsbGluZy10YWJsZSB0ciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnRhYmxlLWhlYWQtY2FsbCB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIHBhZGRpbmctdG9wOiAxMnB4O1xufVxuXG4uYnV0dG9uLW1hcmdpbiB7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuXG4uY2FsbExpc3Qge1xuICBmb250OiBCb2xkIDIwcHggUm9ib3RvO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICBjb2xvcjogIzQ4NDg0ODtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmNsb3NlLWNvbiB7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0b3A6IDNweDtcbiAgcmlnaHQ6IDFweDtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHotaW5kZXg6IDEwO1xuICBvcGFjaXR5OiAxO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBwYWRkaW5nOiAwO1xuICBoZWlnaHQ6IDIwcHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdCB7XG4gIHBhZGRpbmc6IDNweCAwcHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gIHdpZHRoOiA4OSU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udDogd2hpdGU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gIHRvcDogMDtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdG9wOiAwO1xuICBtYXJnaW4tdG9wOiA0cHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG59XG5cbi5maWx0ZXItbGFiZWwge1xuICBmb250OiBCb2xkIDE0cHggUm9ib3RvO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICBjb2xvcjogIzNjM2MzYztcbiAgb3BhY2l0eTogMTtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuXG4ucmVmZXNoLWljb24ge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi1ib3R0b206IC0zMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIG1hcmdpbi10b3A6IDMwcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmNvbG9yZWRSb3cge1xuICBiYWNrZ3JvdW5kOiAjZmZmZjk5O1xufVxuXG4uY29sb3JlZEdyZWVuUm93IHtcbiAgYmFja2dyb3VuZDogIzkwZWU5MDtcbn1cblxuLm1hdC1kaWFsb2ctdGl0bGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZ3JheTtcbn1cblxuLmNhbGxMaXN0LXJpZ2h0IHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cblxuLmNvbHVtbkhlYWRlciB7XG4gIGZvbnQ6IEJvbGQgMTJweCBSb2JvdG87XG4gIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbn1cblxuLmxvc3Qge1xuICBjb2xvcjogI2U2NDI0MztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAxMHB4O1xuICBmb250LXNpemU6IDEwcHg7XG4gIHRvcDogMzglO1xufVxuXG4uaW5ib3VuZCwgLnBiYmktY29sb3Ige1xuICBjb2xvcjogIzJlMzY2ODtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAxMHB4O1xuICBmb250LXNpemU6IDEwcHg7XG4gIHRvcDogMzglO1xufVxuXG4ucGJiaS1jb2xvciB7XG4gIGNvbG9yOiAjZjliMDA2O1xufVxuXG4uYXBwIHtcbiAgY29sb3I6IGdyZWVuO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgdG9wOiAzOCU7XG59XG5cbi5jb2x1bW52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZmlsdGVyMSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmZpbHRlckJ1dHRvbiB7XG4gIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEO1xuICBoZWlnaHQ6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxcHg7XG59XG5cbi5maWx0ZXJkaXYge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uc2VydmljZUR1ZURhdGUge1xuICB3aWR0aDogMTAlICFpbXBvcnRhbnQ7XG59XG5cbi5mb2xsb3dVcCB7XG4gIHdpZHRoOiA5JSAhaW1wb3J0YW50O1xufVxuXG50ZC5tYXQtY2VsbCxcbnRkLm1hdC1mb290ZXItY2VsbCxcbnRoLm1hdC1oZWFkZXItY2VsbCB7XG4gIHBhZGRpbmc6IDNweDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZCBub25lIG5vbmUgc29saWQ7XG4gIGJvcmRlci13aWR0aDogMC4xcHg7XG4gIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4udGFibGUtYm9yZGVyLm1hdC10YWJsZSB7XG4gIGJvcmRlci1zdHlsZTogbm9uZSBzb2xpZCBzb2xpZCBub25lO1xuICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxudGgubWF0LWhlYWRlci1jZWxsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q5ZDlkOTtcbn1cblxuLmZpbHRlcjIge1xuICB3aWR0aDogYXV0bztcbn1cblxuLmNhbGwtc3RhdHMtY2FyZCAubWF0LWNhcmQtdGl0bGUge1xuICBtYXJnaW4tYm90dG9tOiAwcHg7XG59XG4uY2FsbC1zdGF0cy1jYXJkIC5jYWxsLXN0YXRzIHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi5jYWxsLXN0YXRzLWNhcmQgLmNhbGwtc3RhdHMgaSB7XG4gIGNvbG9yOiAjMmUzNjY4O1xuICBmb250LXNpemU6IDExcHg7XG59XG4uY2FsbC1zdGF0cy1jYXJkIC5jYWxsLXN0YXRzLXRpdGxlIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBjb2xvcjogIzQ4NDg0ODtcbn1cblxuLmNhbGwtc3RhdHMtY2FyZDEge1xuICBwYWRkaW5nLXRvcDogMHB4O1xufVxuXG4uY2FsbC1zdGF0cy1jYXJkLWJvcmRlcjEge1xuICBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIG5vbmUgc29saWQ7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3JkZXItcmFkaXVzOiAwJTtcbiAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG59XG5cbi5jYWxsLXN0YXRzLWNhcmQtYm9yZGVyMiB7XG4gIGJvcmRlci1zdHlsZTogc29saWQgc29saWQgc29saWQgc29saWQ7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3JkZXItcmFkaXVzOiAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIHtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGNvbG9yOiAjNTQ4MkJDO1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU0ODJCQztcbiAgY29sb3I6ICNmZmZmZmY7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWxhYmVsLWNvbnRlbnQge1xuICBsaW5lLWhlaWdodDogMzBweDtcbiAgZm9udDogUmVndWxhciAxNHB4IFJvYm90bztcbiAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAucmVmcmVzaC1idG4ubWF0LWJ1dHRvbiB7XG4gIG1pbi13aWR0aDogYXV0bztcbn1cblxuLnJlZnJlc2gtYnRuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgY29sb3I6ICNlNjQyNDM7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNjQyNDM7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCBsYWJlbC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIG1hcmdpbi10b3A6IDhweCAhaW1wb3J0YW50O1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIGlucHV0Lm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgbWFyZ2luLXRvcDogMC42ZW07XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuXG4uc2VhcmNoLWljb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAxNXB4O1xuICB0b3A6IDE1cHg7XG59XG5cbi5iYWNrQ29sb3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmJveC1zaXplIHtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIG1hcmdpbi10b3A6IDdweDtcbiAgd2lkdGg6IDI4cHg7XG4gIGhlaWdodDogMjhweDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuLmJhY2tDb2xvcjEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTQ4MkJDICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmNhbGwtc3RhdHMtdmFsdWUge1xuICBtYXJnaW4tbGVmdDogNTBweDtcbiAgZm9udC1zaXplOiAxOHB4O1xufVxuXG4uY2FsbC1zdGF0cy12YWx1ZTEge1xuICBtYXJnaW4tbGVmdDogMzBweDtcbiAgZm9udC1zaXplOiAxOHB4O1xufVxuXG4uaW5mby1jaXJjbGUtc2l6ZSB7XG4gIGZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG4uZmxleC1zZXQge1xuICBtYXJnaW4tdG9wOiA3cHg7XG4gIG1hcmdpbi1sZWZ0OiAzMHB4O1xufVxuXG4uZmxleC1zZXQxIHtcbiAgbWFyZ2luLXRvcDogN3B4O1xuICBtYXJnaW4tbGVmdDogNTVweDtcbn1cblxuLmR1ZURhdGVJY29uIHtcbiAgaGVpZ2h0OiA5cHg7XG4gIHdpZHRoOiAxMXB4O1xufVxuXG4uZmlsdGVyMyB7XG4gIHdpZHRoOiAyMDBweDtcbiAgbWFyZ2luLXJpZ2h0OiAzMHB4O1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5wYWdpbmF0b3IgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIGhlaWdodDogMThweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWJvdHRvbTogMHB4O1xufSJdfQ== */\"","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { ChangeDetectorRef } from '@angular/core';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { Router } from '@angular/router';\nimport { interval } from 'rxjs';\nimport { CommonService } from '../../core/service/common-service/common.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { MatDialog, MatPaginator, MatSort, MatSelect } from '@angular/material';\nimport { ReminderDialogComponent } from '../../modal/reminder-dialog/reminder-dialog.component';\nimport { DatePipe } from '@angular/common';\nimport { FilterPipePipe } from '../../pipes/filter-pipe.pipe';\nimport { ListCustData } from './listCustData';\nimport { FormControl, FormBuilder, FormGroup } from '@angular/forms';\nimport { element } from 'protractor';\nimport { error } from 'util';\n\n@Component({\n selector: 'app-calling-list',\n templateUrl: './calling-list.component.html',\n styleUrls: ['./calling-list.component.scss'],\n providers: [FilterPipePipe]\n})\nexport class CallingListComponent implements OnInit {\n\n @ViewChild(MatSort, { static: true }) sort: MatSort;\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\n @ViewChild('filterSelect', { static: true }) filterSelect: MatSelect;\n\n reminderData: any;\n callsToBeMade: number = 0;\n pageSize: number;\n callsMade: number = 0;\n callToggleStatus: boolean = true;\n displayedColumns: string[] = [\n 'customerName',\n 'serviceType',\n 'callType',\n 'callStatusDesc',\n 'serviceDueDate',\n 'lastCallTime',\n 'creinputs',\n 'followUpTime',\n 'remarks'\n ];\n dataSource: any;\n selection: any;\n customerData: any;\n currentDate: string;\n spinner: boolean;\n customersToBeCalled: string;\n callsMade1: string;\n openPopUp: boolean;\n columnsToFilter: any[] = [\n { value: 'serviceType', viewValue: 'Service Type' },\n { value: 'callType', viewValue: 'Call Type' },\n { value: 'customerType', viewValue: 'Customer Type' },\n { value: 'callStatusDesc', viewValue: 'Call Status Desc' }];\n dialogRef: any;\n selectedValue: string;\n selectedCol: string;\n selectedFilter: string;\n filterMap = new Map();\n serviceTypeMap = new Map();\n uniqueServiceType = new Set();\n uniqueCallType = new Set();\n uniqueCustomerType = new Set();\n uniqueCallState = new Set();\n uniqueDueDate = new Set();\n uniquePredicationType = new Set();\n filterValues: string[] = [];\n selectedColValues: string[] = [];\n filteredDataSource: any;\n callFlag: any;\n callStats: any = {};\n userId: string;\n selectedServiceTypeValues: string[] = [];\n selectedCustomerTypeValues: string[] = [];\n selectedCallTypeValues: string[] = [];\n selectedCallStatusValues: string[] = [];\n selectedpredationCodeValues: string[] = [];\n filteredValue: any;\n serviceTypeArray: any = [];\n predationCodeArray: any = [];\n //followupDataSource: any = [];\n custDataSource: string[] = [];\n countryCode: string;\n constructor(private commonService: CommonService, private router: Router, public dialog: MatDialog,\n private toastr: ToastrService, private datePipe: DatePipe, private changeDetectorRefs: ChangeDetectorRef,\n private filterPipePipe: FilterPipePipe, private fb: FormBuilder) { }\n\n ngOnInit() {\n if (localStorage.getItem('userId') == null || localStorage.getItem('userId') == undefined) {\n this.router.navigate(['login']);\n }\n this.countryCode = localStorage.getItem('countryCode');\n this.customerData = JSON.parse(localStorage.getItem('customerData'));\n this.userId = localStorage.getItem('userId');\n this.currentDate = this.datePipe.transform(new Date(), \"yyyy-MM-dd\");\n\n if (localStorage.getItem('selectedServiceTypeValues') != null || localStorage.getItem('selectedServiceTypeValues') != undefined) {\n let selectedServiceTypeValues = JSON.parse(localStorage.getItem('selectedServiceTypeValues'));\n this.selectedServiceTypeValues = selectedServiceTypeValues;\n }\n\n if (localStorage.getItem('selectedCustomerTypeValues') != null || localStorage.getItem('selectedCustomerTypeValues') != undefined) {\n let selectedCustomerTypeValues = JSON.parse(localStorage.getItem('selectedCustomerTypeValues'));\n this.selectedCustomerTypeValues = selectedCustomerTypeValues;\n }\n\n if (localStorage.getItem('selectedCallTypeValues') != null || localStorage.getItem('selectedCallTypeValues') != undefined) {\n let selectedCallTypeValues = JSON.parse(localStorage.getItem('selectedCallTypeValues'));\n this.selectedCallTypeValues = selectedCallTypeValues;\n }\n\n if (localStorage.getItem('selectedCallStatusValues') != null || localStorage.getItem('selectedCallStatusValues') != undefined) {\n let selectedCallStatusValues = JSON.parse(localStorage.getItem('selectedCallStatusValues'));\n this.selectedCallStatusValues = selectedCallStatusValues;\n }\n\n if (localStorage.getItem('selectedpredationCodeValues') != null || localStorage.getItem('selectedpredationCodeValues') != undefined) {\n let selectedpredationCodeValues = JSON.parse(localStorage.getItem('selectedpredationCodeValues'));\n this.selectedpredationCodeValues = selectedpredationCodeValues;\n }\n\n if (localStorage.getItem('selectedCol') != null || localStorage.getItem('selectedCol') != undefined) {\n let selectedCol = localStorage.getItem('selectedCol');\n this.selectedCol = selectedCol;\n }\n\n if (localStorage.getItem('selectedColValues') != null || localStorage.getItem('selectedColValues') != undefined) {\n let selectedColValues = JSON.parse(localStorage.getItem('selectedColValues'));\n this.selectedColValues = selectedColValues;\n }\n\n if (localStorage.getItem('callListPageSize') != null || localStorage.getItem('callListPageSize') != undefined) {\n let pagesize = Number(localStorage.getItem('callListPageSize'));\n this.pageSize = (pagesize && pagesize != NaN) ? pagesize : 50;\n } else {\n this.pageSize = 50;\n }\n\n if (localStorage.getItem('workshops') == null || localStorage.getItem('workshops') == undefined) {\n this.getWorkshopDetails();\n }\n\n this.commonService.startInterval();\n this.commonService.followupResponse && this.commonService.followupResponse.subscribe((res) => {\n this.commonService.followupDataSource = [];\n if(res['responseCode'] == 0) {\n res['responseData'].forEach((element) => {\n this.commonService.followupDataSource.push(element);\n let callListItem = this.commonService.callListResponseData.find((ele) => {return ele.customerId == element.customerId});\n let index = this.commonService.callListResponseData.findIndex((ele) => {return ele.customerId == element.customerId});\n if(index != -1) {\n this.commonService.callListResponseData.splice(index, 1);\n }\n });\n this.commonService.followupDataSource.forEach((val) => {\n this.commonService.callListResponseData.unshift(val);\n })\n } else {\n this.commonService.followupDataSource = [];\n //this.toastr.error(res['message'], \"Error\");\n }\n }, error => {\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n\n this.getCreStats();\n this.callListinfo();\n\n if(!this.commonService.callListResponseData.length){\n this.prepairCallList('Y')\n } else {\n let custRes = this.commonService.customerResponse;\n if(custRes) {\n let customerId = custRes['customerId'];\n this.getCallListCustCode('N', customerId);\n } else {\n this.getCustomerResponse();\n this.setCallListData('Y');\n }\n }\n }\n\n getCallListCustCode(callDoneInd: string, custCode: string) {\n // this.spinner = true;\n this.commonService.getCustCallList(this.userId, callDoneInd, custCode)\n .subscribe(res => {\n if (res['responseCode'] == 0) {\n res['responseData'].forEach((element) => {\n this.custDataSource.push(element);\n });\n // this.spinner = false;\n } else {\n // this.spinner = false;\n }\n this.getCustomerResponse();\n this.setCallListData('Y');\n }, err => {\n // this.spinner = false;\n //this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n getCustomerResponse() {\n let custResp = this.commonService.customerResponse;\n\n if(custResp) {\n let custId = custResp['customerId'];\n let callListItem = this.commonService.callListResponseData.find((element) => {return element.customerId == custId});\n let index = this.commonService.callListResponseData.findIndex((element) => {return element.customerId == custId});\n\n if(this.custDataSource[0] && (this.custDataSource[0]['callStatusDesc'] == 'Try Again'\n || this.custDataSource[0]['callStatusDesc'] == 'Pending'\n || this.custDataSource[0]['callStatusDesc'] == 'Pending Try-Again')) {\n if(index != -1) {\n this.commonService.callListResponseData.splice(index, 1);\n }\n this.custDataSource.forEach((element) => {\n this.commonService.callListResponseData.push(element);\n });\n } else if(this.custDataSource[0] && (this.custDataSource[0]['callStatusDesc'] == 'Queued')) {\n if(index != -1) {\n this.commonService.callListResponseData.splice(index, 1, this.custDataSource[0]);\n }\n } else if(this.custDataSource[0] && (this.custDataSource[0]['callStatusDesc'] == 'Try Again Contacted'\n || this.custDataSource[0]['callStatusDesc'] == 'Booking Confirmed'\n || this.custDataSource[0]['callStatusDesc'] == 'No Service')) {\n if(index != -1) {\n this.commonService.callListResponseData.splice(index, 1);\n }\n } else if(this.custDataSource[0] && (this.custDataSource[0]['creinputs'] == 'Contact Fleet Manager')) {\n if(index != -1) {\n this.commonService.callListResponseData.splice(index, 1);\n }\n this.commonService.callListResponseData.unshift(this.custDataSource[0]);\n } else {\n if(index != -1) {\n this.commonService.callListResponseData.splice(index, 1);\n }\n }\n }\n this.commonService.customerResponse = '';\n }\n\n getCallToBeMadeCallList(flag: string) {\n if(!this.commonService.callListResponseData.length){\n this.prepairCallList(flag)\n } else {\n this.setCallListData(flag);\n }\n }\n\n // workedCallList(flag: string) {\n // if(!this.commonService.workedCallListData.length) {\n // this.prepairCallList(flag)\n // } else {\n // this.setCallListData(flag);\n // }\n // }\n\n /**\n * Name: setPageData\n * purpose: To set pagesize for table\n */\n setPageData(event) {\n let size = event.pageSize.toString();\n localStorage.setItem('callListPageSize', size);\n }\n\n /**\n * Name: getWorkshopDetails\n * purpose: To get CRE assigned workshop details\n */\n getWorkshopDetails() {\n //this.spinner = true;\n this.commonService.getWorkshopDetails(this.userId)\n .subscribe(res => {\n if (res['responseCode'] == 0) {\n //this.spinner = false;\n localStorage.setItem('workshops', JSON.stringify(res['responseData']));\n } else {\n //this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n //this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: setupCallScheduler\n * purpose: To show scheduled call remainder\n */\n setupCallScheduler(): void {\n interval(10 * 60 * 1000).subscribe(x => {\n this.commonService.callreminder(this.userId)\n .subscribe(res => {\n if (res['responseCode'] == 0) {\n this.reminderData = res['responseData'];\n if (res['responseData'] && res['responseData'].count > 0) {\n localStorage.setItem('customerCount', this.reminderData.count);\n this.dialog.closeAll();\n this.openReminderDialog(); //open popup\n }\n } else {\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n });\n }\n\n /**\n * Name: openReminderDialog\n * purpose: To open scheduled call remainder dialog\n */\n openReminderDialog(): void {\n const dialogRef = this.dialog.open(ReminderDialogComponent, {\n width: '400px',\n data: {}\n });\n dialogRef.afterClosed().subscribe(result => {\n if (this.router.url == \"/calling\") {\n this.prepairCallList('Y');\n }\n });\n }\n\n /**\n * Name: prepairCallList\n * purpose: To get calllist details\n * @param {string} flag - type of call\n */\n prepairCallList(flag: string): void {\n this.spinner = true;\n this.selection = new SelectionModel(true, []);\n\n this.commonService.customercallList(this.userId, flag).subscribe(\n (res) => {\n if (res['responseCode'] === 0 && res['responseData'] !== undefined) {\n if (flag === 'Y') {\n this.callFlag = flag;\n this.callToggleStatus = true;\n } else {\n this.callFlag = flag;\n this.callToggleStatus = false;\n }\n\n let response = res['responseData'];\n if (response.length) {\n if (flag === 'Y') {\n this.commonService.callListResponseData = response;\n }\n response.forEach((data) => {\n if (data.customerName) { // Check if data.customerName is not null or undefined\n if ((data.customerType).toLowerCase() === \"lost\") {\n let changeName = data.customerName.split(\" - L\")[0];\n data.customerName = changeName;\n }\n\n let inboundCustomer = data.customerName.includes(\"- I\");\n if (inboundCustomer) {\n let stringPosition = data.customerName.length;\n let lostString = data.customerName.substring(stringPosition - 3);\n if (lostString === \"- I\") {\n let changeName = data.customerName.split(\" - I\")[0];\n data.customerName = changeName;\n data.isInboundCall = true;\n }\n }\n }\n });\n }\n\n this.callsToBeMade = response.length;\n\n // Initialize data table and sorting\n this.dataSource = new MatTableDataSource(response);\n this.sort.direction = '';\n this.dataSource.sort = this.sort;\n this.dataSource.sortingDataAccessor = (data, header) => data[header];\n this.dataSource.paginator = this.paginator;\n\n this.filterData();\n\n if (\n (!this.selectedServiceTypeValues || this.selectedServiceTypeValues.length === 0) &&\n (!this.selectedCallTypeValues || this.selectedCallTypeValues.length === 0) &&\n (!this.selectedCustomerTypeValues || this.selectedCustomerTypeValues.length === 0) &&\n (!this.selectedCallStatusValues || this.selectedCallStatusValues.length === 0) &&\n (!this.selectedpredationCodeValues || this.selectedpredationCodeValues.length === 0)\n ) {\n // Initialize filtered table and sorting\n this.filteredDataSource = new MatTableDataSource(response);\n this.sort.direction = '';\n this.filteredDataSource.sort = this.sort;\n this.filteredDataSource.sortingDataAccessor = (data, header) => data[header];\n this.filteredDataSource.paginator = this.paginator;\n }\n\n this.callsMadeCalculate(response);\n this.spinner = false;\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n this.callToggleStatus = true;\n }\n },\n (err) => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n this.callToggleStatus = true;\n }\n );\n }\n\n setCallListData(flag: string) {\n let response;\n if(flag == 'Y') {\n response = this.commonService.callListResponseData\n // } else {\n // response = this.commonService.workedCallListData\n }\n\n if (flag == 'Y') {\n this.callFlag = flag;\n this.callToggleStatus = true;\n } else {\n this.callFlag = flag;\n this.callToggleStatus = false;\n }\n if (response.length) {\n //=res['responseData'];\n //console.log(\"response : \"+response.length+\" value : \",response);\n // response.forEach(data => {\n // if (data.customerType && (data.customerType).toLowerCase() == \"lost\") {\n // let changeName = data.customerName.split(\" - L\")[0];\n // data.customerName = changeName;\n // }\n // let inboundCustomer = data.customerName && data.customerName.includes(\"- I\");\n // let stringPosition = data.customerName && data.customerName.length;\n // let lostString = data && (data.customerName[stringPosition - 3] + data.customerName[stringPosition - 2] + data.customerName[stringPosition - 1])\n // if (inboundCustomer && lostString == \"- I\") {\n // let changeName = data.customerName.split(\" - I\")[0];\n // data.customerName = changeName;\n // data.isInboundCall = true;\n // }\n // });\n\n this.callsToBeMade = response.length;\n //init data table and shorting\n this.dataSource = new MatTableDataSource(response);\n this.sort.direction = '';\n this.dataSource.sort = this.sort;\n this.dataSource.sortingDataAccessor = (data, header) => data[header];\n this.dataSource.paginator = this.paginator;\n this.filterData();\n if ((!this.selectedServiceTypeValues || this.selectedServiceTypeValues.length == 0)\n && (!this.selectedCallTypeValues || this.selectedCallTypeValues.length == 0)\n && (!this.selectedCustomerTypeValues || this.selectedCustomerTypeValues.length == 0)\n && (!this.selectedCallStatusValues || this.selectedCallStatusValues.length == 0)) {\n //init filtered table and shorting\n this.filteredDataSource = new MatTableDataSource(response);\n this.sort.direction = '';\n this.filteredDataSource.sort = this.sort;\n this.filteredDataSource.sortingDataAccessor = (data, header) => data[header];\n this.filteredDataSource.paginator = this.paginator;\n }\n this.callsMadeCalculate(response);\n this.callListinfo();\n }\n }\n\n /**\n * Name: callListinfo\n * purpose: To get call count info\n */\n callListinfo(): void {\n //this.spinner = true;\n this.commonService.callListinfo(this.userId)\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n this.customersToBeCalled = res['responseData']['callToBeMade'];\n this.callsMade1 = res['responseData']['callMade'];\n //this.spinner = false;\n } else {\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n //this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n //...\n });\n }\n\n /**\n * Name: getCreStats\n * purpose: To get call count info\n */\n getCreStats(): void {\n //this.spinner = true;\n this.commonService.getCreCallStats(this.userId)\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n //this.spinner = false;\n this.callStats = res['responseData'][0];\n } else {\n //this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n //this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: callsMadeCalculate\n * purpose: To get call made count\n * @param {Array} callsToBeMade - list of calls\n */\n callsMadeCalculate(callsToBeMade: any) {\n this.callsMade = 0;\n callsToBeMade.forEach(element => {\n let currentDate = \"\" + this.datePipe.transform(new Date(), \"yyyy-MM-dd\");\n let reqDate = this.datePipe.transform((element.lastCallTime), \"yyyy-MM-dd\");\n if (currentDate == reqDate) {\n this.callsMade++;\n }\n });\n }\n\n /**\n * Name: selectCustomer\n * purpose: To select customer for details\n * @param {Object} row - selected customer details\n */\n selectCustomer(row: ListCustData): void {\n localStorage.setItem('customerId', row.customerId);\n localStorage.setItem('custNotification', row.serviceType + \", \" + row.callStatusDesc);\n localStorage.setItem(\"customerData\", JSON.stringify(row));\n this.router.navigate(['customer360']);\n }\n\n /**\n * Name: refreshCallList\n * purpose: To refresh call list\n */\n refreshCallList(): void {\n //this.spinner = true;\n this.commonService.customercallList(this.userId, 'Y')\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n this.dataSource = new MatTableDataSource(res['responseData']);\n this.callsToBeMade = res['responseData'].length;\n this.dataSource.sort = this.sort;\n this.dataSource.sortingDataAccessor = (data, header) => data[header];\n this.dataSource.paginator = this.paginator;\n this.callsMadeCalculate(res['responseData']);\n //this.spinner = false;\n this.changeDetectorRefs.detectChanges();\n } else {\n //this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: filterData\n * purpose: To filter call list data\n */\n filterData(): void {\n this.dataSource.filteredData.forEach(element => {\n this.uniqueCallState.add(element.callStatusDesc);\n this.uniqueCallType.add(element.callType);\n this.uniqueCustomerType.add(element.customerType);\n this.uniqueServiceType.add(element.serviceType);\n this.uniqueDueDate.add(element.serviceDueDate);\n this.uniquePredicationType.add(element.predationCode);\n });\n\n this.uniqueServiceType.forEach(element => {\n this.serviceTypeArray.push(element)\n })\n\n this.uniquePredicationType.forEach(element => {\n // if(element == 'D') {\n // this.predationCodeArray.push({ value: 'D', viewValue: 'PBBI' })\n // }\n // else \n if(element == 'I') {\n this.predationCodeArray.push({ value: 'I', viewValue: 'Inbound' })\n } else if(element == 'M') {\n this.predationCodeArray.push({ value: 'M', viewValue: 'Mileage' })\n } else if(element == 'D') {\n this.predationCodeArray.push({ value: 'D', viewValue: 'Date' })\n } else if(element == 'A') {\n this.predationCodeArray.push({ value: 'A', viewValue: 'App' })\n }\n })\n\n if ((this.selectedServiceTypeValues != null && this.selectedServiceTypeValues.length != 0)\n || (this.selectedCallTypeValues != null && this.selectedCallTypeValues.length != 0)\n || (this.selectedCustomerTypeValues != null && this.selectedCustomerTypeValues.length != 0)\n || (this.selectedCallStatusValues != null && this.selectedCallStatusValues.length != 0)\n || (this.selectedpredationCodeValues != null && this.selectedpredationCodeValues.length != 0)) {\n //this.filterTriggered(null);\n this.applyfilter();\n }\n }\n\n /**\n * Name: filterTriggered\n * @param {Event} event - 1st filter data\n * purpose: To set 2nd filter values\n */\n filterTriggered(event: any): void {\n if ((event && event.isUserInput && event.source._selected) || (!event && this.selectedCol)) {\n this.filterValues = [];\n let value = event ? event.source.value : this.selectedCol;\n switch (value) {\n case \"serviceType\":\n this.uniqueServiceType.forEach(element => {\n this.filterValues.push(element);\n });\n break;\n case \"callType\":\n this.uniqueCallType.forEach(element => {\n this.filterValues.push(element);\n });\n break;\n case \"customerType\":\n this.uniqueCustomerType.forEach(element => {\n this.filterValues.push(element);\n });\n break;\n case \"callStatusDesc\":\n this.uniqueCallState.forEach(element => {\n this.filterValues.push(element);\n });\n break;\n case \"serviceDueDate\":\n this.uniqueDueDate.forEach(element => {\n this.filterValues.push(element);\n });\n break;\n case \"predationCode\":\n this.uniquePredicationType.forEach(element => {\n this.filterValues.push(element);\n });\n break;\n }\n }\n }\n\n /**\n * Name: applyfilter\n * purpose: To apply filter on call list data\n */\n applyfilter(): void {\n let key = '';\n this.filterMap = new Map();\n this.filteredDataSource = this.dataSource;\n if (this.selectedServiceTypeValues != null && this.selectedServiceTypeValues.length != 0) {\n key = \"serviceType\";\n this.filterMap.set(key, this.selectedServiceTypeValues);\n this.filteredDataSource = new MatTableDataSource(this.filterPipePipe.transform(this.filteredDataSource.filteredData, this.filterMap));\n }\n\n if (this.selectedCustomerTypeValues != null && this.selectedCustomerTypeValues.length != 0) {\n key = \"customerType\";\n this.filterMap.set(key, this.selectedCustomerTypeValues);\n this.filteredDataSource = new MatTableDataSource(this.filterPipePipe.transform(this.filteredDataSource.filteredData, this.filterMap));\n }\n\n if (this.selectedCallTypeValues != null && this.selectedCallTypeValues.length != 0) {\n key = \"callType\";\n this.filterMap.set(key, this.selectedCallTypeValues);\n this.filteredDataSource = new MatTableDataSource(this.filterPipePipe.transform(this.filteredDataSource.filteredData, this.filterMap));\n }\n\n if (this.selectedCallStatusValues != null && this.selectedCallStatusValues.length != 0) {\n key = \"callStatusDesc\";\n this.filterMap.set(key, this.selectedCallStatusValues);\n this.filteredDataSource = new MatTableDataSource(this.filterPipePipe.transform(this.filteredDataSource.filteredData, this.filterMap));\n }\n\n if (this.selectedpredationCodeValues != null && this.selectedpredationCodeValues.length != 0) {\n key = \"predationCode\";\n this.filterMap.set(key, this.selectedpredationCodeValues);\n this.filteredDataSource = new MatTableDataSource(this.filterPipePipe.transform(this.filteredDataSource.filteredData, this.filterMap));\n }\n //this.filterMap.set(this.selectedCol, this.selectedColValues);\n //this.filteredDataSource = new MatTableDataSource(this.filterPipePipe.transform(this.dataSource.filteredData, this.filterMap));\n this.callsToBeMade = this.filteredDataSource.filteredData.length;\n this.sort.direction = '';\n this.filteredDataSource.sort = this.sort;\n this.filteredDataSource.sortingDataAccessor = (data, header) => data[header];\n this.filteredDataSource.paginator = this.paginator;\n localStorage.setItem('selectedServiceTypeValues',JSON.stringify(this.selectedServiceTypeValues));\n localStorage.setItem('selectedCustomerTypeValues',JSON.stringify(this.selectedCustomerTypeValues));\n localStorage.setItem('selectedCallTypeValues',JSON.stringify(this.selectedCallTypeValues));\n localStorage.setItem('selectedCallStatusValues',JSON.stringify(this.selectedCallStatusValues));\n localStorage.setItem('selectedpredationCodeValues',JSON.stringify(this.selectedpredationCodeValues));\n //localStorage.setItem('selectedCol', this.selectedCol);\n //localStorage.setItem('selectedColValues', JSON.stringify(this.selectedColValues));\n }\n\n /**\n * Name: searchfilter\n * purpose: To apply filter on call list data\n */\n searchfilter(filterValue: string): void {\n filterValue = filterValue.trim(); // Remove whitespace\n filterValue = filterValue.toLowerCase(); // Datasource defaults to lowercase matches\n this.filteredDataSource.filter = filterValue;\n }\n\n /**\n * Name: clearFilter\n * purpose: To clear filter\n */\n clearFilter(): void {\n this.filterMap.clear();\n this.selectedCol = null;\n this.selectedColValues = null;\n this.selectedServiceTypeValues = null;\n this.selectedCustomerTypeValues = null;\n this.selectedCallTypeValues = null;\n this.selectedCallStatusValues = null;\n this.selectedpredationCodeValues = null;\n this.filteredDataSource = new MatTableDataSource(this.filterPipePipe.transform(this.dataSource.filteredData, this.filterMap));\n this.callsToBeMade = this.filteredDataSource.filteredData.length;\n this.sort.direction = '';\n this.filteredDataSource.sort = this.sort;\n this.filteredDataSource.sortingDataAccessor = (data, header) => data[header];\n this.filteredDataSource.paginator = this.paginator;\n localStorage.removeItem('selectedCol');\n localStorage.removeItem('selectedColValues');\n localStorage.removeItem('selectedServiceTypeValues');\n localStorage.removeItem('selectedCustomerTypeValues');\n localStorage.removeItem('selectedCallTypeValues');\n localStorage.removeItem('selectedCallStatusValues');\n }\n\n /**\n * Name: changeColor\n * purpose: To change followup time color\n */\n changeColor(followUp: any): String {\n let currentTime = this.datePipe.transform(new Date(), \"yyyy-MM-dd HH:mm:ss \");\n\n if (followUp != null && followUp != undefined && followUp != \"\") {\n let followUpDateTime = this.datePipe.transform(followUp, \"yyyy-MM-dd HH:mm:ss\");\n if ((new Date(currentTime)).getTime() > (new Date(followUpDateTime).getTime())) {\n return \"red\";\n }\n }\n }\n\n /**\n * Name: activeButton\n * purpose: To activat apply button\n */\n activeButton(): boolean {\n let flag = false;\n if (this.selectedServiceTypeValues != null && this.selectedServiceTypeValues.length != 0) {\n flag = true;\n } else if (this.selectedCustomerTypeValues != null && this.selectedCustomerTypeValues.length != 0) {\n flag = true;\n } else if (this.selectedCallTypeValues != null && this.selectedCallTypeValues.length != 0) {\n flag = true;\n } else if (this.selectedCallStatusValues != null && this.selectedCallStatusValues.length != 0) {\n flag = true;\n } else if (this.selectedpredationCodeValues != null && this.selectedpredationCodeValues.length != 0) {\n flag = true;\n }\n return flag;\n }\n\n}","export default \".working-area {\\n margin-top: 115px;\\n}\\n\\ntable {\\n width: 100%;\\n}\\n\\n.calling-table tr {\\n cursor: pointer;\\n}\\n\\n.table-head-call {\\n background: none;\\n padding-top: 12px;\\n}\\n\\n.button-margin {\\n margin-left: 10px;\\n}\\n\\n.callList {\\n font: Bold 20px Roboto;\\n letter-spacing: 0px;\\n color: #484848;\\n opacity: 1;\\n}\\n\\n.close-con {\\n font-size: 18px;\\n cursor: pointer;\\n top: 3px;\\n right: 1px;\\n position: absolute !important;\\n z-index: 10;\\n opacity: 1;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-infix {\\n border: 1px solid lightgray;\\n border-radius: 5px;\\n background: white;\\n padding: 0;\\n height: 20px;\\n}\\n\\n.filter1 ::ng-deep .mat-select {\\n padding: 3px 0px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-trigger {\\n padding-left: 8px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-value {\\n width: 89%;\\n}\\n\\n.filter1 ::ng-deep .mat-button {\\n font-size: 12px;\\n font: white;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label-wrapper {\\n top: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-underline {\\n display: none;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label {\\n top: 0;\\n margin-top: 4px !important;\\n padding-left: 5px;\\n}\\n\\n.filter-label {\\n font: Bold 14px Roboto;\\n letter-spacing: 0px;\\n color: #3c3c3c;\\n opacity: 1;\\n margin-bottom: 5px;\\n}\\n\\n.refesh-icon {\\n float: right;\\n margin-bottom: -30px;\\n margin-right: 20px;\\n margin-top: 30px;\\n cursor: pointer;\\n}\\n\\n.coloredRow {\\n background: #ffff99;\\n}\\n\\n.coloredGreenRow {\\n background: #90ee90;\\n}\\n\\n.mat-dialog-title {\\n background-color: darkgray;\\n}\\n\\n.callList-right {\\n font-size: 11px;\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.columnHeader {\\n font: Bold 12px Roboto;\\n letter-spacing: 0px;\\n color: #333333;\\n text-transform: capitalize;\\n}\\n\\n.lost {\\n color: #e64243;\\n position: absolute;\\n left: 10px;\\n font-size: 10px;\\n top: 38%;\\n}\\n\\n.inbound {\\n color: #2e3668;\\n position: absolute;\\n left: 0px;\\n font-size: 10px;\\n top: 38%;\\n}\\n\\n.columnvalue {\\n font-size: 14px;\\n position: relative;\\n}\\n\\n.filter1 {\\n font-size: 12px;\\n}\\n\\n.filterButton {\\n color: white !important;\\n background-color: #00457D;\\n height: 20px;\\n line-height: 10px;\\n margin-bottom: 1px;\\n}\\n\\n.filterdiv {\\n align-items: center;\\n}\\n\\n.serviceDueDate {\\n width: 10% !important;\\n}\\n\\n.followUp {\\n width: 9% !important;\\n}\\n\\ntd.mat-cell,\\ntd.mat-footer-cell,\\nth.mat-header-cell {\\n padding: 3px;\\n border-style: solid none none solid;\\n border-width: 0.1px;\\n border-color: lightgray;\\n}\\n\\n.table-border.mat-table {\\n border-style: none solid solid none;\\n border-color: lightgray;\\n}\\n\\nth.mat-header-cell {\\n background-color: #d9d9d9;\\n}\\n\\n.filter2 {\\n width: auto;\\n text-transform: capitalize;\\n}\\n\\n.call-stats-card .mat-card-title {\\n margin-bottom: 0px;\\n}\\n\\n.call-stats-card .call-stats {\\n font-size: 11px;\\n color: #ffffff;\\n}\\n\\n.call-stats-card .call-stats i {\\n color: #2e3668;\\n font-size: 11px;\\n}\\n\\n.call-stats-card .call-stats-title {\\n font-size: 20px;\\n color: #484848;\\n}\\n\\n.call-stats-card1 {\\n padding-top: 0px;\\n}\\n\\n.call-stats-card-border1 {\\n border-style: solid solid none solid;\\n border-width: 1px;\\n border-radius: 0%;\\n border-color: lightgray;\\n}\\n\\n.call-stats-card-border2 {\\n border-style: solid solid solid solid;\\n border-width: 1px;\\n border-radius: 0%;\\n margin-bottom: 15px;\\n border-color: lightgray;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-group {\\n border-radius: 0px;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle {\\n background-color: #ffffff;\\n color: #5482BC;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-checked {\\n background-color: #5482BC;\\n color: #ffffff;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-label-content {\\n line-height: 30px;\\n font: Regular 14px Roboto;\\n letter-spacing: 0px;\\n}\\n\\n.toggle-btn-grp ::ng-deep .refresh-btn.mat-button {\\n min-width: auto;\\n}\\n\\n.refresh-btn {\\n background-color: #ffffff;\\n color: #e64243;\\n border: 1px solid #e64243;\\n border-radius: 0px;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-flex {\\n border: 1px solid lightgray;\\n border-radius: 3px;\\n background: white;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-label {\\n padding-left: 10px;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-infix {\\n border-top: none;\\n}\\n\\n.textboxService ::ng-deep label.mat-form-field-label {\\n margin-top: 8px !important;\\n}\\n\\n.textboxService ::ng-deep input.mat-input-element {\\n margin-top: 0.6em;\\n margin-left: 10px;\\n}\\n\\n.search-icon {\\n position: absolute;\\n right: 15px;\\n top: 15px;\\n}\\n\\n.backColor {\\n background-color: #00457D !important;\\n font-size: 12px;\\n}\\n\\n.box-size {\\n margin-left: 10px;\\n margin-top: 7px;\\n width: 28px;\\n height: 28px;\\n color: #ffffff !important;\\n}\\n\\n.backColor1 {\\n background-color: #5482BC !important;\\n font-size: 12px;\\n}\\n\\n.call-stats-value {\\n margin-left: 50px;\\n font-size: 18px;\\n}\\n\\n.call-stats-value1 {\\n margin-left: 30px;\\n font-size: 18px;\\n}\\n\\n.info-circle-size {\\n font-size: 12px !important;\\n color: #ffffff !important;\\n}\\n\\n.flex-set {\\n margin-top: 7px;\\n margin-left: 62px;\\n}\\n\\n.flex-set1 {\\n margin-top: 7px;\\n margin-left: 73px;\\n}\\n\\n.dueDateIcon {\\n height: 9px;\\n width: 11px;\\n}\\n\\n.filter3 {\\n width: 200px;\\n margin-right: 30px;\\n font-size: 12px;\\n}\\n\\n.paginator ::ng-deep .mat-form-field-infix {\\n height: 18px !important;\\n padding-bottom: 0px;\\n}\\n\\n.filter-label {\\n font: 12px Roboto;\\n letter-spacing: 0px;\\n color: #3c3c3c;\\n opacity: 1;\\n margin-bottom: 3px;\\n padding: 1px 0px 0px;\\n}\\n\\n.calender {\\n position: relative;\\n background: white;\\n}\\n\\n.calender input {\\n width: 180px;\\n border: 1px solid lightgray !important;\\n border-radius: 5px;\\n font-size: 12px;\\n height: 22px;\\n padding-left: 5px;\\n}\\n\\n.calander-btn {\\n position: absolute;\\n right: 7px;\\n top: 4px;\\n}\\n\\n.form-field label {\\n font-weight: 500;\\n margin-bottom: 5px;\\n}\\n\\n.form-field input {\\n padding: 6px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9jb21wb25lbnQvY2RtLWNhbGxpbmctbGlzdC9jZG0tY2FsbGluZy1saXN0LmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnQvY2RtLWNhbGxpbmctbGlzdC9jZG0tY2FsbGluZy1saXN0LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksaUJBQUE7QUNDSjs7QURFQTtFQUNJLFdBQUE7QUNDSjs7QURFQTtFQUNJLGVBQUE7QUNDSjs7QURFQTtFQUNJLGdCQUFBO0VBQ0EsaUJBQUE7QUNDSjs7QURFQTtFQUNJLGlCQUFBO0FDQ0o7O0FERUE7RUFDSSxzQkFBQTtFQUNBLG1CQUFBO0VBQ0EsY0FBQTtFQUNBLFVBQUE7QUNDSjs7QURFQTtFQUNJLGVBQUE7RUFDQSxlQUFBO0VBQ0EsUUFBQTtFQUNBLFVBQUE7RUFDQSw2QkFBQTtFQUNBLFdBQUE7RUFDQSxVQUFBO0FDQ0o7O0FERUE7RUFDSSwyQkFBQTtFQUNBLGtCQUFBO0VBQ0EsaUJBQUE7RUFDQSxVQUFBO0VBQ0EsWUFBQTtBQ0NKOztBREVBO0VBQ0ksZ0JBQUE7QUNDSjs7QURFQTtFQUNJLGlCQUFBO0FDQ0o7O0FERUE7RUFDSSxVQUFBO0FDQ0o7O0FERUE7RUFDSSxlQUFBO0VBQ0EsV0FBQTtBQ0NKOztBREVBO0VBQ0ksTUFBQTtFQUNBLGNBQUE7RUFDQSxpQkFBQTtBQ0NKOztBREVBO0VBQ0ksaUJBQUE7QUNDSjs7QURFQTtFQUNJLGFBQUE7QUNDSjs7QURFQTtFQUNJLE1BQUE7RUFDQSwwQkFBQTtFQUNBLGlCQUFBO0FDQ0o7O0FERUE7RUFDSSxzQkFBQTtFQUNBLG1CQUFBO0VBQ0EsY0FBQTtFQUNBLFVBQUE7RUFDQSxrQkFBQTtBQ0NKOztBREVBO0VBQ0ksWUFBQTtFQUNBLG9CQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQkFBQTtFQUNBLGVBQUE7QUNDSjs7QURFQTtFQUNJLG1CQUFBO0FDQ0o7O0FERUE7RUFDSSxt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QUNJLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLFFBQUE7QUNGSjs7QURNSTtFQUNJLGdCQUFBO0VBQ0Esa0JBQUE7QUNIUjs7QURLSTtFQUNJLFlBQUE7QUNIUiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudC9jZG0tY2FsbGluZy1saXN0L2NkbS1jYWxsaW5nLWxpc3QuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIud29ya2luZy1hcmVhIHtcbiAgICBtYXJnaW4tdG9wOiAxMTVweDtcbn1cblxudGFibGUge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4uY2FsbGluZy10YWJsZSB0ciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4udGFibGUtaGVhZC1jYWxsIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIHBhZGRpbmctdG9wOiAxMnB4O1xufVxuXG4uYnV0dG9uLW1hcmdpbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbi5jYWxsTGlzdCB7XG4gICAgZm9udDogQm9sZCAyMHB4IFJvYm90bztcbiAgICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICAgIGNvbG9yOiAjNDg0ODQ4O1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi5jbG9zZS1jb24ge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdG9wOiAzcHg7XG4gICAgcmlnaHQ6IDFweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgICB6LWluZGV4OiAxMDtcbiAgICBvcGFjaXR5OiAxO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgaGVpZ2h0OiAyMHB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3Qge1xuICAgIHBhZGRpbmc6IDNweCAwcHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgICB3aWR0aDogODklO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1idXR0b24ge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250OiB3aGl0ZTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIHtcbiAgICB0b3A6IDA7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICB0b3A6IDA7XG4gICAgbWFyZ2luLXRvcDogNHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XG59XG5cbi5maWx0ZXItbGFiZWwge1xuICAgIGZvbnQ6IEJvbGQgMTRweCBSb2JvdG87XG4gICAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgICBjb2xvcjogIzNjM2MzYztcbiAgICBvcGFjaXR5OiAxO1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbn1cblxuLnJlZmVzaC1pY29uIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLWJvdHRvbTogLTMwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uY29sb3JlZFJvdyB7XG4gICAgYmFja2dyb3VuZDogI2ZmZmY5OTtcbn1cblxuLmNvbG9yZWRHcmVlblJvdyB7XG4gICAgYmFja2dyb3VuZDogIzkwZWU5MDtcbn1cblxuLm1hdC1kaWFsb2ctdGl0bGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtncmF5O1xufVxuXG4uY2FsbExpc3QtcmlnaHQge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cblxuLmNvbHVtbkhlYWRlciB7XG4gICAgZm9udDogQm9sZCAxMnB4IFJvYm90bztcbiAgICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xufVxuXG4ubG9zdCB7XG4gICAgY29sb3I6ICNlNjQyNDM7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDEwcHg7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIHRvcDogMzglO1xufVxuXG4uaW5ib3VuZCB7XG4gICAgY29sb3I6ICMyZTM2Njg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDBweDtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgdG9wOiAzOCU7XG59XG5cbi5jb2x1bW52YWx1ZSB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmZpbHRlcjEge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmZpbHRlckJ1dHRvbiB7XG4gICAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDEwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMXB4O1xufVxuXG4uZmlsdGVyZGl2IHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uc2VydmljZUR1ZURhdGUge1xuICAgIHdpZHRoOiAxMCUgIWltcG9ydGFudDtcbn1cblxuLmZvbGxvd1VwIHtcbiAgICB3aWR0aDogOSUgIWltcG9ydGFudDtcbn1cblxudGQubWF0LWNlbGwsXG50ZC5tYXQtZm9vdGVyLWNlbGwsXG50aC5tYXQtaGVhZGVyLWNlbGwge1xuICAgIHBhZGRpbmc6IDNweDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkIG5vbmUgbm9uZSBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDAuMXB4O1xuICAgIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4udGFibGUtYm9yZGVyLm1hdC10YWJsZSB7XG4gICAgYm9yZGVyLXN0eWxlOiBub25lIHNvbGlkIHNvbGlkIG5vbmU7XG4gICAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG59XG5cbnRoLm1hdC1oZWFkZXItY2VsbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Q5ZDlkOTtcbn1cblxuLmZpbHRlcjIge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xufVxuXG4uY2FsbC1zdGF0cy1jYXJkIHtcbiAgICAubWF0LWNhcmQtdGl0bGUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgfVxuICAgIC5jYWxsLXN0YXRzIHtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgaSB7XG4gICAgICAgICAgICBjb2xvcjogIzJlMzY2ODtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuY2FsbC1zdGF0cy10aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgY29sb3I6ICM0ODQ4NDg7XG4gICAgfVxufVxuXG4uY2FsbC1zdGF0cy1jYXJkMSB7XG4gICAgcGFkZGluZy10b3A6IDBweDtcbn1cblxuLmNhbGwtc3RhdHMtY2FyZC1ib3JkZXIxIHtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIG5vbmUgc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMCU7XG4gICAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG59XG5cbi5jYWxsLXN0YXRzLWNhcmQtYm9yZGVyMiB7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZCBzb2xpZCBzb2xpZCBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDFweDtcbiAgICBib3JkZXItcmFkaXVzOiAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4O1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBjb2xvcjogIzU0ODJCQztcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzU0ODJCQztcbiAgICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtbGFiZWwtY29udGVudCB7XG4gICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgZm9udDogUmVndWxhciAxNHB4IFJvYm90bztcbiAgICBsZXR0ZXItc3BhY2luZzogMHB4O1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5yZWZyZXNoLWJ0bi5tYXQtYnV0dG9uIHtcbiAgICBtaW4td2lkdGg6IGF1dG87XG59XG5cbi5yZWZyZXNoLWJ0biB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBjb2xvcjogI2U2NDI0MztcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTY0MjQzO1xuICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgIGJvcmRlci10b3A6IG5vbmU7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgbGFiZWwubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIG1hcmdpbi10b3A6IDhweCAhaW1wb3J0YW50O1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIGlucHV0Lm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgICBtYXJnaW4tdG9wOiAwLjZlbTtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbn1cblxuLnNlYXJjaC1pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDE1cHg7XG4gICAgdG9wOiAxNXB4O1xufVxuXG4uYmFja0NvbG9yIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uYm94LXNpemUge1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIG1hcmdpbi10b3A6IDdweDtcbiAgICB3aWR0aDogMjhweDtcbiAgICBoZWlnaHQ6IDI4cHg7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuLmJhY2tDb2xvcjEge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM1NDgyQkMgIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IDEycHg7XG59XG5cbi5jYWxsLXN0YXRzLXZhbHVlIHtcbiAgICBtYXJnaW4tbGVmdDogNTBweDtcbiAgICBmb250LXNpemU6IDE4cHg7XG59XG5cbi5jYWxsLXN0YXRzLXZhbHVlMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDMwcHg7XG4gICAgZm9udC1zaXplOiAxOHB4O1xufVxuXG4uaW5mby1jaXJjbGUtc2l6ZSB7XG4gICAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuLmZsZXgtc2V0IHtcbiAgICBtYXJnaW4tdG9wOiA3cHg7XG4gICAgbWFyZ2luLWxlZnQ6IDYycHg7XG4gICAgLy90ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5mbGV4LXNldDEge1xuICAgIG1hcmdpbi10b3A6IDdweDtcbiAgICBtYXJnaW4tbGVmdDogNzNweDtcbn1cblxuLmR1ZURhdGVJY29uIHtcbiAgICBoZWlnaHQ6IDlweDtcbiAgICB3aWR0aDogMTFweDtcbn1cblxuLmZpbHRlcjMge1xuICAgIHdpZHRoOiAyMDBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDMwcHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4ucGFnaW5hdG9yIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgIGhlaWdodDogMThweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAwcHg7XG59XG5cbi5maWx0ZXItbGFiZWwge1xuICAgIGZvbnQ6IDEycHggUm9ib3RvO1xuICAgIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gICAgY29sb3I6ICMzYzNjM2M7XG4gICAgb3BhY2l0eTogMTtcbiAgICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gICAgcGFkZGluZzogMXB4IDBweCAwcHg7XG59XG5cbi5jYWxlbmRlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIGlucHV0IHtcbiAgICAgICAgd2lkdGg6IDE4MHB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXkgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGhlaWdodDogMjJweDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gICAgfVxufVxuXG4uY2FsYW5kZXItYnRuIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDdweDtcbiAgICB0b3A6IDRweDtcbn1cblxuLmZvcm0tZmllbGQge1xuICAgIGxhYmVsIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIH1cbiAgICBpbnB1dCB7XG4gICAgICAgIHBhZGRpbmc6IDZweDtcbiAgICB9XG59IiwiLndvcmtpbmctYXJlYSB7XG4gIG1hcmdpbi10b3A6IDExNXB4O1xufVxuXG50YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uY2FsbGluZy10YWJsZSB0ciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnRhYmxlLWhlYWQtY2FsbCB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIHBhZGRpbmctdG9wOiAxMnB4O1xufVxuXG4uYnV0dG9uLW1hcmdpbiB7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuXG4uY2FsbExpc3Qge1xuICBmb250OiBCb2xkIDIwcHggUm9ib3RvO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICBjb2xvcjogIzQ4NDg0ODtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmNsb3NlLWNvbiB7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0b3A6IDNweDtcbiAgcmlnaHQ6IDFweDtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHotaW5kZXg6IDEwO1xuICBvcGFjaXR5OiAxO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBwYWRkaW5nOiAwO1xuICBoZWlnaHQ6IDIwcHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdCB7XG4gIHBhZGRpbmc6IDNweCAwcHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gIHdpZHRoOiA4OSU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udDogd2hpdGU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gIHRvcDogMDtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdG9wOiAwO1xuICBtYXJnaW4tdG9wOiA0cHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG59XG5cbi5maWx0ZXItbGFiZWwge1xuICBmb250OiBCb2xkIDE0cHggUm9ib3RvO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICBjb2xvcjogIzNjM2MzYztcbiAgb3BhY2l0eTogMTtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuXG4ucmVmZXNoLWljb24ge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi1ib3R0b206IC0zMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIG1hcmdpbi10b3A6IDMwcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmNvbG9yZWRSb3cge1xuICBiYWNrZ3JvdW5kOiAjZmZmZjk5O1xufVxuXG4uY29sb3JlZEdyZWVuUm93IHtcbiAgYmFja2dyb3VuZDogIzkwZWU5MDtcbn1cblxuLm1hdC1kaWFsb2ctdGl0bGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZ3JheTtcbn1cblxuLmNhbGxMaXN0LXJpZ2h0IHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cblxuLmNvbHVtbkhlYWRlciB7XG4gIGZvbnQ6IEJvbGQgMTJweCBSb2JvdG87XG4gIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbn1cblxuLmxvc3Qge1xuICBjb2xvcjogI2U2NDI0MztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAxMHB4O1xuICBmb250LXNpemU6IDEwcHg7XG4gIHRvcDogMzglO1xufVxuXG4uaW5ib3VuZCB7XG4gIGNvbG9yOiAjMmUzNjY4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDBweDtcbiAgZm9udC1zaXplOiAxMHB4O1xuICB0b3A6IDM4JTtcbn1cblxuLmNvbHVtbnZhbHVlIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5maWx0ZXIxIHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uZmlsdGVyQnV0dG9uIHtcbiAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0Q7XG4gIGhlaWdodDogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDFweDtcbn1cblxuLmZpbHRlcmRpdiB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5zZXJ2aWNlRHVlRGF0ZSB7XG4gIHdpZHRoOiAxMCUgIWltcG9ydGFudDtcbn1cblxuLmZvbGxvd1VwIHtcbiAgd2lkdGg6IDklICFpbXBvcnRhbnQ7XG59XG5cbnRkLm1hdC1jZWxsLFxudGQubWF0LWZvb3Rlci1jZWxsLFxudGgubWF0LWhlYWRlci1jZWxsIHtcbiAgcGFkZGluZzogM3B4O1xuICBib3JkZXItc3R5bGU6IHNvbGlkIG5vbmUgbm9uZSBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAwLjFweDtcbiAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG59XG5cbi50YWJsZS1ib3JkZXIubWF0LXRhYmxlIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lIHNvbGlkIHNvbGlkIG5vbmU7XG4gIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG50aC5tYXQtaGVhZGVyLWNlbGwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDlkOWQ5O1xufVxuXG4uZmlsdGVyMiB7XG4gIHdpZHRoOiBhdXRvO1xuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbn1cblxuLmNhbGwtc3RhdHMtY2FyZCAubWF0LWNhcmQtdGl0bGUge1xuICBtYXJnaW4tYm90dG9tOiAwcHg7XG59XG4uY2FsbC1zdGF0cy1jYXJkIC5jYWxsLXN0YXRzIHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi5jYWxsLXN0YXRzLWNhcmQgLmNhbGwtc3RhdHMgaSB7XG4gIGNvbG9yOiAjMmUzNjY4O1xuICBmb250LXNpemU6IDExcHg7XG59XG4uY2FsbC1zdGF0cy1jYXJkIC5jYWxsLXN0YXRzLXRpdGxlIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBjb2xvcjogIzQ4NDg0ODtcbn1cblxuLmNhbGwtc3RhdHMtY2FyZDEge1xuICBwYWRkaW5nLXRvcDogMHB4O1xufVxuXG4uY2FsbC1zdGF0cy1jYXJkLWJvcmRlcjEge1xuICBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIG5vbmUgc29saWQ7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3JkZXItcmFkaXVzOiAwJTtcbiAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG59XG5cbi5jYWxsLXN0YXRzLWNhcmQtYm9yZGVyMiB7XG4gIGJvcmRlci1zdHlsZTogc29saWQgc29saWQgc29saWQgc29saWQ7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3JkZXItcmFkaXVzOiAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIHtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGNvbG9yOiAjNTQ4MkJDO1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU0ODJCQztcbiAgY29sb3I6ICNmZmZmZmY7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWxhYmVsLWNvbnRlbnQge1xuICBsaW5lLWhlaWdodDogMzBweDtcbiAgZm9udDogUmVndWxhciAxNHB4IFJvYm90bztcbiAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAucmVmcmVzaC1idG4ubWF0LWJ1dHRvbiB7XG4gIG1pbi13aWR0aDogYXV0bztcbn1cblxuLnJlZnJlc2gtYnRuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgY29sb3I6ICNlNjQyNDM7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNjQyNDM7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCBsYWJlbC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIG1hcmdpbi10b3A6IDhweCAhaW1wb3J0YW50O1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIGlucHV0Lm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgbWFyZ2luLXRvcDogMC42ZW07XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuXG4uc2VhcmNoLWljb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAxNXB4O1xuICB0b3A6IDE1cHg7XG59XG5cbi5iYWNrQ29sb3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmJveC1zaXplIHtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIG1hcmdpbi10b3A6IDdweDtcbiAgd2lkdGg6IDI4cHg7XG4gIGhlaWdodDogMjhweDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuLmJhY2tDb2xvcjEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTQ4MkJDICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmNhbGwtc3RhdHMtdmFsdWUge1xuICBtYXJnaW4tbGVmdDogNTBweDtcbiAgZm9udC1zaXplOiAxOHB4O1xufVxuXG4uY2FsbC1zdGF0cy12YWx1ZTEge1xuICBtYXJnaW4tbGVmdDogMzBweDtcbiAgZm9udC1zaXplOiAxOHB4O1xufVxuXG4uaW5mby1jaXJjbGUtc2l6ZSB7XG4gIGZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG4uZmxleC1zZXQge1xuICBtYXJnaW4tdG9wOiA3cHg7XG4gIG1hcmdpbi1sZWZ0OiA2MnB4O1xufVxuXG4uZmxleC1zZXQxIHtcbiAgbWFyZ2luLXRvcDogN3B4O1xuICBtYXJnaW4tbGVmdDogNzNweDtcbn1cblxuLmR1ZURhdGVJY29uIHtcbiAgaGVpZ2h0OiA5cHg7XG4gIHdpZHRoOiAxMXB4O1xufVxuXG4uZmlsdGVyMyB7XG4gIHdpZHRoOiAyMDBweDtcbiAgbWFyZ2luLXJpZ2h0OiAzMHB4O1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5wYWdpbmF0b3IgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIGhlaWdodDogMThweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWJvdHRvbTogMHB4O1xufVxuXG4uZmlsdGVyLWxhYmVsIHtcbiAgZm9udDogMTJweCBSb2JvdG87XG4gIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gIGNvbG9yOiAjM2MzYzNjO1xuICBvcGFjaXR5OiAxO1xuICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gIHBhZGRpbmc6IDFweCAwcHggMHB4O1xufVxuXG4uY2FsZW5kZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuLmNhbGVuZGVyIGlucHV0IHtcbiAgd2lkdGg6IDE4MHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXkgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGhlaWdodDogMjJweDtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG59XG5cbi5jYWxhbmRlci1idG4ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiA3cHg7XG4gIHRvcDogNHB4O1xufVxuXG4uZm9ybS1maWVsZCBsYWJlbCB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cbi5mb3JtLWZpZWxkIGlucHV0IHtcbiAgcGFkZGluZzogNnB4O1xufSJdfQ== */\"","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { CommonService } from '../../core/service/common-service/common.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { DatePipe } from '@angular/common';\nimport { ListCustData } from './listCustData';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { MatDialog, MatPaginator, MatSort, MatSelect } from '@angular/material';\nimport { NewTicketDialogComponent } from 'src/app/modal/new-ticket-dialog/new-ticket-dialog.component';\n\n@Component({\n selector: 'app-cdm-calling-list',\n templateUrl: './cdm-calling-list.component.html',\n styleUrls: ['./cdm-calling-list.component.scss']\n})\nexport class CdmCallingListComponent implements OnInit {\n\n @ViewChild(MatSort, { static: true }) sort: MatSort;\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\n\n spinner: boolean;\n callStats: any = {};\n customerData: any;\n userId: string;\n uniqueRequest = new Set();\n uniqueSourceId = new Set();\n selectedRequest: string[] = [];\n selectedSourceId: string[] = [];\n maxDate: Date = new Date();\n fromDate: Date = new Date();\n today: Date = new Date();\n toDate: Date = new Date();\n filteredDataSource: any;\n listSize: number = 0;\n pageSize: number;\n callFlag: any;\n callToggleStatus: boolean = true;\n dataSource: any;\n userRoles: string;\n\n displayedColumns: string[] = [\n 'customerId',\n 'customerName',\n 'vin',\n 'raiseDate',\n 'requestStatus',\n 'sourceId'\n ];\n invalidType: string;\n status: string;\n startDate: string;\n endDate: string;\n sourceId: string;\n type: string;\n userInfo: any;\n\n constructor(private commonService: CommonService, private router: Router, private toastr: ToastrService,\n private datePipe: DatePipe, private dialog: MatDialog) { }\n\n ngOnInit() {\n if (localStorage.getItem('userId') == null || localStorage.getItem('userId') == undefined) {\n this.router.navigate(['login']);\n }\n this.customerData = JSON.parse(localStorage.getItem('customerData'));\n this.userId = localStorage.getItem('userId');\n this.userRoles = localStorage.getItem('userRoles');\n let userInfo = JSON.parse(localStorage.getItem('userInfo'));\n this.userInfo = userInfo[0];\n\n if (localStorage.getItem('callListPageSize') != null || localStorage.getItem('callListPageSize') != undefined) {\n let pagesize = Number(localStorage.getItem('callListPageSize'));\n this.pageSize = (pagesize && pagesize != NaN) ? pagesize : 50;\n } else {\n this.pageSize = 50;\n }\n\n if (localStorage.getItem('selectedRequest') != null || localStorage.getItem('selectedRequest') != undefined) {\n let selectedRequest = JSON.parse(localStorage.getItem('selectedRequest'));\n this.selectedRequest = selectedRequest;\n }\n\n if (localStorage.getItem('selectedSourceId') != null || localStorage.getItem('selectedSourceId') != undefined) {\n let selectedSourceId = JSON.parse(localStorage.getItem('selectedSourceId'));\n this.selectedSourceId = selectedSourceId;\n }\n\n // if(this.selectedSourceId.length != 0) {\n // this.applyfilter();\n // } else {\n // this.cdmCallList();\n // }\n\n this.getCDMStats();\n this.cdmCallList();\n }\n\n /**\n * Name: getCDMStats\n * purpose: To get stats count info\n */\n getCDMStats(): void {\n // this.spinner = true;\n this.commonService.getCDMStats(this.userId, this.userInfo.roleId)\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n // this.spinner = false;\n this.callStats = res['responseData'];\n } else {\n // this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n // this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: cdmCallList\n * purpose: To get calllist details\n * @param {string} flag - type of call\n */\n cdmCallList(): void {\n this.spinner = true;\n this.dataSource = '';\n let request = {\n invalidType : '',\n status : '',\n startDate : '',\n endDate : '',\n sourceId : '',\n type : 'fetch'\n }\n this.commonService.cdmCallList(this.userId, this.userInfo.roleId, request)\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n //this.callFlag = flag;\n this.callToggleStatus = false;\n let response = res['responseData'];\n this.listSize = response.length;\n //init data table and shorting\n this.dataSource = new MatTableDataSource(response);\n this.sort.direction = '';\n this.dataSource.sort = this.sort;\n this.dataSource.sortingDataAccessor = (data, header) => data[header];\n this.dataSource.paginator = this.paginator;\n this.filterData();\n this.spinner = false;\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n this.callToggleStatus = true;\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n this.callToggleStatus = true;\n });\n }\n\n /**\n * Name: setPageData\n * purpose: To set pagesize for table\n */\n setPageData(event) {\n let size = event.pageSize.toString();\n localStorage.setItem('callListPageSize', size);\n }\n\n /**\n * Name: selectCustomer\n * purpose: To select customer for details\n * @param {Object} row - selected customer details\n */\n selectCustomer(row: ListCustData): void {\n // if(this.userRoles == 'CRE') {\n // if(row.requestStatus == 'Open' || row.requestStatus == 'Reopen') {\n localStorage.setItem('customerId', row.customerId);\n localStorage.setItem(\"customerData\", JSON.stringify(row));\n this.router.navigate(['cdm-customer360']);\n // }\n // } else {\n // if(row.requestStatus == 'Submit') {\n // localStorage.setItem('customerId', row.customerId);\n // localStorage.setItem(\"customerData\", JSON.stringify(row));\n // this.router.navigate(['cdm-customer360']);\n // }\n // }\n\n }\n\n /**\n * Name: searchfilter\n * purpose: To apply filter on datagrid\n */\n searchfilter(filterValue: string): void {\n filterValue = filterValue.trim(); // Remove whitespace\n filterValue = filterValue.toLowerCase(); // Datasource defaults to lowercase matches\n this.dataSource.filter = filterValue;\n }\n\n /**\n * Name: filterData\n * purpose: To filter call list data\n */\n filterData(): void {\n this.dataSource.filteredData.forEach(element => {\n this.uniqueRequest.add(element.requestStatus);\n this.uniqueSourceId.add(element.sourceId);\n });\n\n // if ((this.selectedServiceTypeValues != null && this.selectedServiceTypeValues.length != 0)\n // || (this.selectedCallTypeValues != null && this.selectedCallTypeValues.length != 0)\n // || (this.selectedCustomerTypeValues != null && this.selectedCustomerTypeValues.length != 0)\n // || (this.selectedCallStatusValues != null && this.selectedCallStatusValues.length != 0)) {\n // //this.filterTriggered(null);\n // this.applyfilter();\n // }\n }\n\n /**\n * Name: applyfilter\n * purpose: To apply filter on call list data\n */\n applyfilter(): void {\n this.spinner = true;\n this.dataSource = '';\n let request = {\n invalidType : '',\n status : this.selectedRequest.toString(),\n startDate : this.datePipe.transform(this.fromDate, \"yyyy-MM-dd\"),\n endDate : this.datePipe.transform(this.toDate, \"yyyy-MM-dd\"),\n sourceId : this.selectedSourceId.toString(),\n type : 'filter'\n }\n this.commonService.cdmCallList(this.userId, this.userInfo.roleId, request)\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n //this.callFlag = flag;\n this.callToggleStatus = false;\n let response = res['responseData'];\n this.listSize = response.length;\n //init data table and shorting\n this.dataSource = new MatTableDataSource(response);\n this.sort.direction = '';\n this.dataSource.sort = this.sort;\n this.dataSource.sortingDataAccessor = (data, header) => data[header];\n this.dataSource.paginator = this.paginator;\n this.filterData();\n this.spinner = false;\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n this.callToggleStatus = true;\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n this.callToggleStatus = true;\n });\n }\n\n newTicket() {\n const dialogRef = this.dialog.open(NewTicketDialogComponent, {\n width: '350px',\n data: {}\n });\n dialogRef.afterClosed().subscribe(result => {\n this.cdmCallList();\n });\n }\n}\n","export default \".cust360-container {\\n margin: 115px 30px 30px 30px;\\n}\\n\\n.call-stats-card-border1 {\\n border-style: solid solid solid solid;\\n border-width: 1px;\\n border-radius: 0%;\\n border-color: lightgray;\\n}\\n\\n.service-card select,\\n.service-card input {\\n border-radius: 3px;\\n border: 1px solid #d3d3d3;\\n}\\n\\n.sub-title {\\n font-size: 13px;\\n margin-bottom: 20px;\\n font-weight: bold;\\n}\\n\\n.form-field {\\n margin-bottom: 10px;\\n}\\n\\n.btn {\\n margin-bottom: 10px;\\n position: relative;\\n cursor: pointer;\\n transition: all 0.3s ease;\\n overflow: hidden;\\n background-color: #00457D !important;\\n line-height: 22px;\\n}\\n\\n.btn-1 {\\n color: white;\\n margin-left: 0px !important;\\n width: 150px;\\n position: relative;\\n cursor: pointer;\\n transition: all 0.3s ease;\\n overflow: hidden;\\n background-color: #00457D !important;\\n line-height: 22px;\\n}\\n\\n.m-r-8 {\\n margin-right: 8px !important;\\n}\\n\\n.info-action {\\n text-align: end;\\n margin-bottom: 10px !important;\\n}\\n\\n.info-action button {\\n color: white;\\n background-color: #00457D;\\n border-radius: 5px;\\n font-size: 12px;\\n width: 200px;\\n}\\n\\n.icon-background {\\n color: #00457D !important;\\n height: 13px !important;\\n width: 13px !important;\\n}\\n\\n.box-size {\\n margin-left: 10px;\\n margin-top: 7px;\\n width: 28px;\\n height: 28px;\\n color: #00457D !important;\\n}\\n\\n.filter2 {\\n width: auto;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-infix {\\n border: 1px solid lightgray;\\n border-radius: 2px;\\n background: white;\\n padding: 0;\\n height: 30px;\\n}\\n\\n.filter1 ::ng-deep .mat-select {\\n padding: 8px 0px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-trigger {\\n padding-left: 8px;\\n width: 100%;\\n}\\n\\n.filter1 ::ng-deep .mat-select-value {\\n width: 90%;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label-wrapper {\\n top: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-underline {\\n display: none;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label {\\n top: 0;\\n margin-top: 8px !important;\\n padding-left: 5px;\\n}\\n\\n.form-field-inp {\\n padding: 5px;\\n border: 1px solid lightgray;\\n width: auto;\\n}\\n\\n.filter-label {\\n font: Bold 14px Roboto;\\n letter-spacing: 0px;\\n color: #3c3c3c;\\n opacity: 1;\\n margin-bottom: 5px;\\n font-size: 13px;\\n}\\n\\n.serv-heading {\\n width: 30%;\\n}\\n\\n.fontClass {\\n font: Bold 14px/16px Roboto;\\n letter-spacing: 0px;\\n font-size: 12px;\\n color: #7b7a7a;\\n opacity: 1;\\n margin-bottom: 3px !important;\\n}\\n\\n.inlineClass {\\n display: inline;\\n font: Regular 14px Roboto;\\n font-size: 12px;\\n letter-spacing: 0px;\\n color: black;\\n opacity: 1;\\n}\\n\\np.inlineClass {\\n margin-top: 0px;\\n margin-bottom: 5px;\\n}\\n\\n.btnStyle button {\\n color: white;\\n background-color: #00457D;\\n border-radius: 5px;\\n font-size: 12px;\\n}\\n\\n.mat-card-actions {\\n margin-left: 0px;\\n margin-right: 0px;\\n padding: 0px 0;\\n}\\n\\n.my-custom-tooltip {\\n max-width: 200px !important;\\n}\\n\\n.navbar {\\n padding-left: 10px;\\n padding-top: 10px;\\n font-size: 12px;\\n}\\n\\n.navbar a {\\n cursor: pointer;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9jb21wb25lbnQvY2RtLWN1c3RvbWVyMzYwL2NkbS1jdXN0b21lcjM2MC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50L2NkbS1jdXN0b21lcjM2MC9jZG0tY3VzdG9tZXIzNjAuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSw0QkFBQTtBQ0NKOztBREVBO0VBQ0kscUNBQUE7RUFDQSxpQkFBQTtFQUNBLGlCQUFBO0VBQ0EsdUJBQUE7QUNDSjs7QURFQTs7RUFFSSxrQkFBQTtFQUNBLHlCQUFBO0FDQ0o7O0FERUE7RUFDSSxlQUFBO0VBQ0EsbUJBQUE7RUFDQSxpQkFBQTtBQ0NKOztBREVBO0VBQ0ksbUJBQUE7QUNDSjs7QURFQTtFQUNJLG1CQUFBO0VBQ0Esa0JBQUE7RUFDQSxlQUFBO0VBQ0EseUJBQUE7RUFDQSxnQkFBQTtFQUNBLG9DQUFBO0VBQ0EsaUJBQUE7QUNDSjs7QURFQTtFQUVJLFlBQUE7RUFDQSwyQkFBQTtFQUNBLFlBQUE7RUFDQSxrQkFBQTtFQUNBLGVBQUE7RUFDQSx5QkFBQTtFQUNBLGdCQUFBO0VBQ0Esb0NBQUE7RUFDQSxpQkFBQTtBQ0FKOztBREdBO0VBQ0ksNEJBQUE7QUNBSjs7QURHQTtFQUNJLGVBQUE7RUFDQSw4QkFBQTtBQ0FKOztBRENJO0VBQ0ksWUFBQTtFQUNBLHlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxlQUFBO0VBQ0EsWUFBQTtBQ0NSOztBREdBO0VBQ0kseUJBQUE7RUFDQSx1QkFBQTtFQUNBLHNCQUFBO0FDQUo7O0FER0E7RUFDSSxpQkFBQTtFQUNBLGVBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLHlCQUFBO0FDQUo7O0FER0E7RUFDSSxXQUFBO0FDQUo7O0FER0E7RUFDQSwyQkFBQTtFQUNBLGtCQUFBO0VBQ0EsaUJBQUE7RUFDQSxVQUFBO0VBQ0EsWUFBQTtBQ0FBOztBREdBO0VBQ0ksZ0JBQUE7QUNBSjs7QURHQTtFQUNBLGlCQUFBO0VBQ0EsV0FBQTtBQ0FBOztBREdBO0VBQ0ksVUFBQTtBQ0FKOztBREdBO0VBQ0EsTUFBQTtFQUNBLGNBQUE7RUFDQSxpQkFBQTtBQ0FBOztBREdBO0VBQ0EsaUJBQUE7QUNBQTs7QURHQTtFQUNBLGFBQUE7QUNBQTs7QURHQTtFQUNBLE1BQUE7RUFDQSwwQkFBQTtFQUNBLGlCQUFBO0FDQUE7O0FER0E7RUFDSSxZQUFBO0VBQ0EsMkJBQUE7RUFDQSxXQUFBO0FDQUo7O0FER0U7RUFDRSxzQkFBQTtFQUNBLG1CQUFBO0VBQ0EsY0FBQTtFQUNBLFVBQUE7RUFDQSxrQkFBQTtFQUNBLGVBQUE7QUNBSjs7QURHQTtFQUNJLFVBQUE7QUNBSjs7QURHQTtFQUNJLDJCQUFBO0VBQ0EsbUJBQUE7RUFDQSxlQUFBO0VBQ0EsY0FBQTtFQUNBLFVBQUE7RUFDQSw2QkFBQTtBQ0FKOztBREdBO0VBQ0ksZUFBQTtFQUNBLHlCQUFBO0VBQ0EsZUFBQTtFQUNBLG1CQUFBO0VBQ0EsWUFBQTtFQUNBLFVBQUE7QUNBSjs7QURHQTtFQUNJLGVBQUE7RUFDQSxrQkFBQTtBQ0FKOztBRElJO0VBQ0ksWUFBQTtFQUNBLHlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxlQUFBO0FDRFI7O0FETUE7RUFDSSxnQkFBQTtFQUNBLGlCQUFBO0VBQ0EsY0FBQTtBQ0hKOztBRE1BO0VBQ0ksMkJBQUE7QUNISjs7QURNRTtFQUNFLGtCQUFBO0VBQ0EsaUJBQUE7RUFFQSxlQUFBO0FDSko7O0FET0E7RUFDSSxlQUFBO0FDSkoiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnQvY2RtLWN1c3RvbWVyMzYwL2NkbS1jdXN0b21lcjM2MC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5jdXN0MzYwLWNvbnRhaW5lciB7XG4gICAgbWFyZ2luOiAxMTVweCAzMHB4IDMwcHggMzBweDtcbn1cblxuLmNhbGwtc3RhdHMtY2FyZC1ib3JkZXIxIHtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIHNvbGlkIHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDAlO1xuICAgIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4uc2VydmljZS1jYXJkIHNlbGVjdCxcbi5zZXJ2aWNlLWNhcmQgaW5wdXQge1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZDNkM2QzO1xufVxuXG4uc3ViLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLmZvcm0tZmllbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIH1cblxuLmJ0biB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEICFpbXBvcnRhbnQ7XG4gICAgbGluZS1oZWlnaHQ6IDIycHg7XG59XG5cbi5idG4tMSB7XG4gICAgLy9tYXJnaW46IDMwcHggMDtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgbWFyZ2luLWxlZnQ6IDBweCAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAxNTBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEICFpbXBvcnRhbnQ7XG4gICAgbGluZS1oZWlnaHQ6IDIycHg7XG59XG5cbi5tLXItOCB7XG4gICAgbWFyZ2luLXJpZ2h0OiA4cHggIWltcG9ydGFudDtcbn1cblxuLmluZm8tYWN0aW9uIHtcbiAgICB0ZXh0LWFsaWduOiBlbmQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweCAhaW1wb3J0YW50O1xuICAgIGJ1dHRvbiB7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIHdpZHRoOiAyMDBweDtcbiAgICB9XG59XG5cbi5pY29uLWJhY2tncm91bmQge1xuICAgIGNvbG9yOiAjMDA0NTdEICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAxM3B4ICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDEzcHggIWltcG9ydGFudDtcbn1cblxuLmJveC1zaXplIHtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICBtYXJnaW4tdG9wOiA3cHg7XG4gICAgd2lkdGg6IDI4cHg7XG4gICAgaGVpZ2h0OiAyOHB4O1xuICAgIGNvbG9yOiAjMDA0NTdEICFpbXBvcnRhbnQ7XG59XG5cbi5maWx0ZXIyIHtcbiAgICB3aWR0aDogYXV0bztcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG5ib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG5ib3JkZXItcmFkaXVzOiAycHg7XG5iYWNrZ3JvdW5kOiB3aGl0ZTtcbnBhZGRpbmc6IDA7XG5oZWlnaHQ6IDMwcHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdCB7XG4gICAgcGFkZGluZzogOHB4IDBweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xucGFkZGluZy1sZWZ0OiA4cHg7XG53aWR0aDogMTAwJTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgICB3aWR0aDogOTAlO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIge1xudG9wOiAwO1xucGFkZGluZy10b3A6IDA7XG5wYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbnBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG5kaXNwbGF5OiBub25lO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbnRvcDogMDtcbm1hcmdpbi10b3A6IDhweCAhaW1wb3J0YW50O1xucGFkZGluZy1sZWZ0OiA1cHg7XG59XG5cbi5mb3JtLWZpZWxkLWlucCB7XG4gICAgcGFkZGluZzogNXB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxuXG4gIC5maWx0ZXItbGFiZWwge1xuICAgIGZvbnQ6IEJvbGQgMTRweCBSb2JvdG87XG4gICAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgICBjb2xvcjogIzNjM2MzYztcbiAgICBvcGFjaXR5OiAxO1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG59XG5cbi5zZXJ2LWhlYWRpbmcge1xuICAgIHdpZHRoOiAzMCU7XG59XG5cbi5mb250Q2xhc3Mge1xuICAgIGZvbnQ6IEJvbGQgMTRweC8xNnB4IFJvYm90bztcbiAgICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogIzdiN2E3YTtcbiAgICBvcGFjaXR5OiAxO1xuICAgIG1hcmdpbi1ib3R0b206IDNweCAhaW1wb3J0YW50O1xufVxuXG4uaW5saW5lQ2xhc3Mge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICBmb250OiBSZWd1bGFyIDE0cHggUm9ib3RvO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICAgIGNvbG9yOiBibGFjaztcbiAgICBvcGFjaXR5OiAxO1xufVxuXG5wLmlubGluZUNsYXNzIHtcbiAgICBtYXJnaW4tdG9wOiAwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuXG4uYnRuU3R5bGUge1xuICAgIGJ1dHRvbiB7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIC8vd2lkdGg6IDIwMHB4O1xuICAgIH1cbn1cblxuLm1hdC1jYXJkLWFjdGlvbnMge1xuICAgIG1hcmdpbi1sZWZ0OiAwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAwcHg7XG4gICAgcGFkZGluZzogMHB4IDA7XG59XG5cbi5teS1jdXN0b20tdG9vbHRpcCB7XG4gICAgbWF4LXdpZHRoOiAyMDBweCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm5hdmJhciB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICAgIC8vZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4ubmF2YmFyIGEge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn0iLCIuY3VzdDM2MC1jb250YWluZXIge1xuICBtYXJnaW46IDExNXB4IDMwcHggMzBweCAzMHB4O1xufVxuXG4uY2FsbC1zdGF0cy1jYXJkLWJvcmRlcjEge1xuICBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIHNvbGlkIHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLXJhZGl1czogMCU7XG4gIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4uc2VydmljZS1jYXJkIHNlbGVjdCxcbi5zZXJ2aWNlLWNhcmQgaW5wdXQge1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkM2QzZDM7XG59XG5cbi5zdWItdGl0bGUge1xuICBmb250LXNpemU6IDEzcHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uZm9ybS1maWVsZCB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi5idG4ge1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RCAhaW1wb3J0YW50O1xuICBsaW5lLWhlaWdodDogMjJweDtcbn1cblxuLmJ0bi0xIHtcbiAgY29sb3I6IHdoaXRlO1xuICBtYXJnaW4tbGVmdDogMHB4ICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxNTBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0QgIWltcG9ydGFudDtcbiAgbGluZS1oZWlnaHQ6IDIycHg7XG59XG5cbi5tLXItOCB7XG4gIG1hcmdpbi1yaWdodDogOHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5pbmZvLWFjdGlvbiB7XG4gIHRleHQtYWxpZ246IGVuZDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweCAhaW1wb3J0YW50O1xufVxuLmluZm8tYWN0aW9uIGJ1dHRvbiB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIHdpZHRoOiAyMDBweDtcbn1cblxuLmljb24tYmFja2dyb3VuZCB7XG4gIGNvbG9yOiAjMDA0NTdEICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMTNweCAhaW1wb3J0YW50O1xuICB3aWR0aDogMTNweCAhaW1wb3J0YW50O1xufVxuXG4uYm94LXNpemUge1xuICBtYXJnaW4tbGVmdDogMTBweDtcbiAgbWFyZ2luLXRvcDogN3B4O1xuICB3aWR0aDogMjhweDtcbiAgaGVpZ2h0OiAyOHB4O1xuICBjb2xvcjogIzAwNDU3RCAhaW1wb3J0YW50O1xufVxuXG4uZmlsdGVyMiB7XG4gIHdpZHRoOiBhdXRvO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBwYWRkaW5nOiAwO1xuICBoZWlnaHQ6IDMwcHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdCB7XG4gIHBhZGRpbmc6IDhweCAwcHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdmFsdWUge1xuICB3aWR0aDogOTAlO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIge1xuICB0b3A6IDA7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRvcDogMDtcbiAgbWFyZ2luLXRvcDogOHB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xufVxuXG4uZm9ybS1maWVsZC1pbnAge1xuICBwYWRkaW5nOiA1cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgd2lkdGg6IGF1dG87XG59XG5cbi5maWx0ZXItbGFiZWwge1xuICBmb250OiBCb2xkIDE0cHggUm9ib3RvO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICBjb2xvcjogIzNjM2MzYztcbiAgb3BhY2l0eTogMTtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICBmb250LXNpemU6IDEzcHg7XG59XG5cbi5zZXJ2LWhlYWRpbmcge1xuICB3aWR0aDogMzAlO1xufVxuXG4uZm9udENsYXNzIHtcbiAgZm9udDogQm9sZCAxNHB4LzE2cHggUm9ib3RvO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjN2I3YTdhO1xuICBvcGFjaXR5OiAxO1xuICBtYXJnaW4tYm90dG9tOiAzcHggIWltcG9ydGFudDtcbn1cblxuLmlubGluZUNsYXNzIHtcbiAgZGlzcGxheTogaW5saW5lO1xuICBmb250OiBSZWd1bGFyIDE0cHggUm9ib3RvO1xuICBmb250LXNpemU6IDEycHg7XG4gIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gIGNvbG9yOiBibGFjaztcbiAgb3BhY2l0eTogMTtcbn1cblxucC5pbmxpbmVDbGFzcyB7XG4gIG1hcmdpbi10b3A6IDBweDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuXG4uYnRuU3R5bGUgYnV0dG9uIHtcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLm1hdC1jYXJkLWFjdGlvbnMge1xuICBtYXJnaW4tbGVmdDogMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDBweDtcbiAgcGFkZGluZzogMHB4IDA7XG59XG5cbi5teS1jdXN0b20tdG9vbHRpcCB7XG4gIG1heC13aWR0aDogMjAwcHggIWltcG9ydGFudDtcbn1cblxuLm5hdmJhciB7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbiAgcGFkZGluZy10b3A6IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLm5hdmJhciBhIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufSJdfQ== */\"","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { CommonService } from '../../core/service/common-service/common.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { DatePipe } from '@angular/common';\nimport { FormControl, FormGroup, FormBuilder, Validators, FormGroupDirective } from '@angular/forms';\nimport { MatDialog, MatSort, MatPaginator, MatTableDataSource } from \"@angular/material\";\nimport { element } from 'protractor';\n\n@Component({\n selector: 'app-cdm-customer360',\n templateUrl: './cdm-customer360.component.html',\n styleUrls: ['./cdm-customer360.component.scss']\n})\nexport class CdmCustomer360Component implements OnInit {\n\n @ViewChild(MatSort, { static: true }) sort: MatSort;\n @ViewChild('RemarksPaginator', { static: true }) remarksPaginator: MatPaginator;\n @ViewChild('RemarksSort', { static: true }) remarksSort: MatSort;\n\n custDataForm : FormGroup;\n formData = new FormData();\n\n spinner: boolean;\n selectedVehicle: any;\n flag: boolean;\n ticketId: string;\n custId: string;\n customerData: any;\n customerDetail: any;\n customerName: string;\n customerNumber: string;\n remark: string;\n fileTypeSelect: string;\n userRoles: string;\n autoFillData: any;\n fileValue: any;\n userId: string;\n userInfo: any;\n filePath: string;\n serviceDetail: any;\n remarksDetails: any;\n vin: string;\n remarksCount: number = 0;\n buttonFlag: boolean;\n submitted: boolean;\n customerId: string;\n\n fileType: any[] = [\n { value: 'PDF', type: 'PDF'},\n { value: 'PDF', type: 'PDF'},\n { value: 'PDF', type: 'PDF'},\n ];\n\n //call log table columns\n displayedRemarksColumns: string[] = [\n \"remarkBy\",\n \"remarkDate\",\n \"remark\"\n ];\n attachmentName: string;\n chassisNo: any[] = [];\n uiFileName: any;\n showDownloadButton: boolean;\n\n constructor(private commonService: CommonService, private router: Router, private toastr: ToastrService,\n private datePipe: DatePipe, private formBuilder: FormBuilder) { }\n\n ngOnInit() {\n this.customerData = JSON.parse(localStorage.getItem(\"customerData\")) || {};\n this.custId = this.customerData.customerId;\n this.ticketId = this.customerData.ticketId;\n this.vin = this.customerData.vin;\n this.userRoles = localStorage.getItem('userRoles');\n this.userId = localStorage.getItem('userId');\n let userInfo = JSON.parse(localStorage.getItem('userInfo'));\n this.userInfo = userInfo[0];\n this.getCustomerDetail();\n this.fetchLogs();\n //if(this.userRoles != \"CRE\") {\n this.fetchCdmDBData();\n //}\n this.buildLoginForm();\n this.checkAccess();\n }\n\n /**\n * Name: buildLoginForm\n * purpose: To create customer data form\n */\n buildLoginForm() {\n this.custDataForm = this.formBuilder.group({\n customerName: ['', Validators.required],\n customerNumber: ['', [Validators.required, Validators.minLength(10), Validators.maxLength(10)]],\n fleetName: [''],\n fleetNumber: ['', [Validators.minLength(10), Validators.maxLength(10)]],\n remark: ['',Validators.required],\n fileTypeSelect: ['']\n });\n }\n\n /**\n * Name: fetchLogs\n * purpose: To get Customer Detail\n */\n fetchLogs(): void {\n this.spinner = true;\n this.commonService.fetchLogs(this.custId, this.ticketId, this.userId, this.userInfo.roleId)\n .subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n let remarks = res['responseData'];\n remarks.forEach(element => {\n let date = element.remarkTime + \" GMT+0000\";\n let d = new Date(date);\n element.remarkTime = d;\n element.remarkDate = this.datePipe.transform(element.remarkTime, \"yyyy-MM-dd\");\n });\n this.remarksDetails = new MatTableDataSource(remarks);\n this.sort.direction = '';\n this.remarksDetails.sort = this.remarksSort;\n this.remarksDetails.paginator = this.remarksPaginator;\n this.remarksCount = remarks.length;\n } else {\n this.spinner = false;\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: getCustomerDetail\n * purpose: To get Customer Detail\n */\n getCustomerDetail(): void {\n this.spinner = true;\n let vin = []\n this.commonService.getCustomerDetail(this.custId, this.ticketId, this.userId, this.userInfo.roleId)\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n this.spinner = false;\n this.customerDetail = res['responseData'];\n this.customerId = this.customerDetail.customerCode;\n vin = this.customerDetail.vin.split(',');\n vin.forEach(element => {\n this.chassisNo.push(element);\n })\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n submit(): void {\n this.submitted = true;\n if(this.custDataForm.valid) {\n this.spinner = true;\n //this.filePath = \"\";\n let request = '{' + '\"custId\" : \"'+this.custId + '\",\"ticketNo\" : \"'+this.ticketId + '\",\"custName\" : \"' + this.custDataForm.value.customerName\n + '\",\"contactNo\" : \"' + this.custDataForm.value.customerNumber + '\",\"fleetName\" : \"' + this.custDataForm.value.fleetName + '\",\"fleetContact\" : \"'\n + this.custDataForm.value.fleetNumber + '\",\"remarks\" : \"' + this.custDataForm.value.remark\n + '\",\"userId\" : \"' + this.userId + '\",\"userRole\" : \"' + this.userInfo.roleId + '\"}';\n let data = {\n file: this.formData,\n model: request,\n };\n\n this.commonService.saveCdmActualData(this.userId, this.userInfo.roleId, data)\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n this.toastr.success(res['message'], \"Success\");\n this.spinner = false;\n this.submitted = false;\n this.router.navigate([\"cdm-calling\"]);\n } else {\n this.spinner = false;\n this.submitted = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n }\n\n clear(): void {\n this.custDataForm.reset();\n }\n\n Accept(value: any) {\n this.submitted = true;\n if(this.custDataForm.valid) {\n this.spinner = true;\n let request = '{' + '\"custId\" : \"'+this.custId + '\",\"ticketNo\" : \"'+this.ticketId + '\",\"custName\" : \"' + this.custDataForm.value.customerName\n + '\",\"contactNo\" : \"' + this.custDataForm.value.customerNumber + '\",\"fleetName\" : \"' + this.custDataForm.value.fleetName + '\",\"fleetContact\" : \"'\n + this.custDataForm.value.fleetNumber + '\",\"remarks\" : \"' + this.custDataForm.value.remark\n + '\",\"userId\" : \"' + this.userId + '\",\"status\" : \"' + value + '\",\"userRole\" : \"' + this.userInfo.roleId + '\"}';\n\n let data = {\n file: this.formData,\n model: request,\n };\n this.commonService.updateCdmStatus(this.userId, this.userInfo.roleId, data)\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n this.toastr.success(res['message'], \"Success\");\n this.spinner = false;\n this.router.navigate([\"cdm-calling\"]);\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n }\n\n /**\n * Name: fetchCdmDBData\n * purpose: To get Customer Detail\n */\n fetchCdmDBData(): void {\n let remarkCheck=true\n this.spinner = true;\n this.commonService.fetchCdmDBData(this.custId, this.ticketId, this.userId, this.userInfo.roleId)\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n this.spinner = false;\n this.autoFillData = res['responseData'];\n if(this.userRoles=='Vecv SRM User' || this.userRoles=='CRE' ){\n remarkCheck=false\n }\n this.custDataForm = this.formBuilder.group({\n customerName: this.autoFillData.customerName || '',\n customerNumber: [this.autoFillData.customerContactNo || '', [Validators.minLength(10), Validators.maxLength(10)]],\n fleetName: this.autoFillData.fleetName || '',\n fleetNumber: [this.autoFillData.fleetContactNo || '', [Validators.minLength(10), Validators.maxLength(10)]],\n remark: remarkCheck==true?(this.autoFillData.remarks || ''):'',\n //fileTypeSelect: ''\n })\n this.fileValue = this.autoFillData.attachment;\n if(this.fileValue==\"\"||this.fileValue==null){\n this.showDownloadButton=false\n }else if(this.fileValue!=\"\"||this.fileValue!=null){\n\n this.createUiFilename()\n this.showDownloadButton=true\n }\n\n\n //this.custDataForm.setValue['customerName']\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n createUiFilename(){\n let file=this.fileValue\n let fileArray=file.split('/')\n let lastElement=fileArray[fileArray.length-1]\n let lastName=lastElement.split(\"-\")\n this.uiFileName=lastName[lastName.length-1]\n }\n\n downloadFile(): void {\n this.spinner = true;\n if(this.fileValue) {\n let fileType = this.fileValue.split('.')[1];\n let fileName = this.customerId.concat('.').concat(fileType);\n this.commonService.downloadFile(this.fileValue)\n .subscribe(fileData => {\n if (fileData) {\n const blob: any = new Blob([fileData], { type: 'application/octet-stream' });\n let link = document.createElement(\"a\");\n if (link.download !== undefined) {\n let url = URL.createObjectURL(blob);\n link.setAttribute(\"href\", url);\n link.setAttribute(\"download\", fileName);\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n this.spinner = false;\n }\n } else {\n this.spinner = false;\n }\n }, err => {\n this.spinner = false;\n\n });\n } else {\n this.toastr.success('Attachment not available.');\n this.spinner = false;\n }\n }\n\n onFileUpload(event: any) {\n this.attachmentName = \"\";\n this.formData = new FormData();\n let file: File = event.target.files[0];\n this.attachmentName = file.name;\n let filePath = event.currentTarget.value.split(\"\\\\\")[2];\n this.formData.append('file', file, filePath);\n }\n\n checkAccess() {\n if(this.userRoles == \"CRE\") {\n if(this.customerData.requestStatus == \"Submitted\" || this.customerData.requestStatus == \"Accepted\") {\n this.flag = true;\n this.buttonFlag = true;\n } else {\n this.flag = false;\n this.buttonFlag = false;\n }\n } else if(this.userRoles == \"Vecv SRM User\") {\n if(this.customerData.requestStatus == \"Submitted\" || this.customerData.requestStatus == \"Open\") {\n this.flag = false;\n this.buttonFlag = false;\n } else {\n this.flag = true;\n this.buttonFlag = true;\n }\n } else {\n this.flag = true;\n this.buttonFlag = true;\n }\n }\n\n /**\n * Name: hasCustDataError\n * purpose: To check if customer form has any error\n * @param {any} control - form control\n * @return {boolean} flag to determine if form is valid.\n */\n hasError(control: any): boolean {\n return (\n control &&\n (this.submitted || control.touched || control.dirty) &&\n !control.valid\n );\n }\n}\n","export default \".working-area {\\n margin-bottom: 20px;\\n margin-left: 10px;\\n margin-top: 10px;\\n}\\n\\n.cust360-container {\\n margin: 115px 30px 30px 30px;\\n}\\n\\n.example-card1 {\\n display: block;\\n margin-left: auto;\\n margin-right: auto;\\n}\\n\\n.example-card1 .fontClass {\\n display: inline-block;\\n}\\n\\n.example-card1 .inlineClass {\\n display: inline-block;\\n}\\n\\n.example-card2 {\\n display: block;\\n margin-left: auto;\\n margin-right: auto;\\n border: none;\\n box-shadow: none;\\n padding: 0px;\\n}\\n\\n.history-card {\\n box-shadow: none;\\n padding: 0px;\\n}\\n\\n.fontClass {\\n font: Bold 12px/20px Roboto;\\n font-size: 12px;\\n color: #707070;\\n}\\n\\n.fontClassBold {\\n font-family: Bold 16px/22px Roboto;\\n color: #707070;\\n}\\n\\n.border {\\n border: 1px solid #707070;\\n font: 12px/18px Roboto;\\n color: #707070;\\n border-radius: 25px;\\n padding: 5px;\\n}\\n\\n.serv-heading {\\n width: 30%;\\n}\\n\\n.serv-desc {\\n width: 70%;\\n font-weight: 400;\\n}\\n\\n.serv-desc small {\\n margin-right: 10px;\\n float: right;\\n}\\n\\n.button {\\n text-align: center;\\n float: right;\\n font: Regular 16px/22px Roboto;\\n color: #ffffff;\\n border-radius: 0px;\\n}\\n\\n.recent {\\n color: #1acc04;\\n position: relative;\\n right: 15px;\\n font-size: 12px;\\n top: 0;\\n margin-bottom: 7px;\\n}\\n\\n.disabled {\\n opacity: 0.6;\\n}\\n\\n.buttonservice {\\n float: right;\\n font-family: Roboto;\\n color: #f1f1ff;\\n}\\n\\n.checkalign {\\n padding-left: 16px !important;\\n padding-top: 20px !important;\\n}\\n\\n.checkalignment {\\n padding-top: 20px !important;\\n}\\n\\n.inlineClass {\\n display: inline;\\n font: Regular 14px Roboto;\\n font-size: 12px;\\n letter-spacing: 0px;\\n color: black;\\n opacity: 1;\\n}\\n\\np.inlineClass {\\n margin-top: 0px;\\n margin-bottom: 5px;\\n}\\n\\n.marginClass {\\n margin-left: 20px;\\n}\\n\\n.marginClass1 {\\n margin-left: 40px;\\n}\\n\\n.navbar {\\n padding-left: 10px;\\n padding-top: 10px;\\n font-size: 12px;\\n}\\n\\n.navbar a {\\n cursor: pointer;\\n}\\n\\n.history-btn {\\n width: 100%;\\n height: 30px;\\n}\\n\\n.nobullet {\\n list-style-type: none;\\n margin-bottom: 10px;\\n}\\n\\n.play {\\n cursor: pointer;\\n margin-right: 5px;\\n}\\n\\n.colorStyle {\\n color: greenyellow;\\n}\\n\\n.callLogs {\\n display: block !important;\\n float: left;\\n}\\n\\n.custNotification {\\n display: inline;\\n}\\n\\n.example-radio-group {\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.example-radio-button {\\n margin: 5px;\\n}\\n\\n.update-btn {\\n background-color: #16377d;\\n color: #ffffff;\\n margin-left: 15px;\\n}\\n\\n.edit-btn {\\n margin-left: 5px;\\n color: #16377d;\\n background-color: #ffffff;\\n border: none;\\n cursor: pointer;\\n}\\n\\n.number-form ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 5px;\\n}\\n\\n.number-form ::ng-deep .mat-form-field-infix {\\n padding: 0.1375em 0;\\n}\\n\\n.number-form ::ng-deep .mat-form-field-underline {\\n bottom: 0.25em;\\n height: 0px;\\n}\\n\\n.number-form ::ng-deep input.mat-input-element {\\n margin-top: 0px;\\n}\\n\\n.number-form {\\n width: 100%;\\n position: relative;\\n}\\n\\n.number-row {\\n width: 100%;\\n position: relative;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-infix {\\n border: 1px solid lightgray;\\n border-radius: 5px;\\n background: white;\\n padding: 0;\\n height: 20px;\\n}\\n\\n.filter1 ::ng-deep .mat-select {\\n padding: 2px 0px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-trigger {\\n padding-left: 8px;\\n width: 100%;\\n font-size: 12px;\\n padding-bottom: 5px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-value {\\n width: 90%;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label-wrapper {\\n top: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-underline {\\n display: none;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label {\\n top: 0;\\n margin-top: 4px !important;\\n padding-left: 5px;\\n}\\n\\n.filter-label {\\n font: Bold 14px Roboto;\\n letter-spacing: 0px;\\n color: #3c3c3c;\\n opacity: 1;\\n margin-bottom: 5px;\\n font-size: 13px;\\n}\\n\\n.mat-expansion-panel-header-title {\\n font-weight: 500;\\n font-size: 13px;\\n font: Bold 14px/16px Roboto;\\n}\\n\\n.mat-expansion-panel-header-title i {\\n margin-right: 10px;\\n color: #00457D;\\n}\\n\\n.fontClass {\\n font: Bold 14px/16px Roboto;\\n letter-spacing: 0px;\\n font-size: 12px;\\n color: #7b7a7a;\\n opacity: 1;\\n margin-bottom: 3px !important;\\n}\\n\\n.fontClassBold {\\n font-family: Bold 16px/22px Roboto;\\n color: #000000;\\n font-size: 12px;\\n font-weight: 500;\\n}\\n\\n.fontClassBold i {\\n color: #00457D;\\n margin-right: 5px;\\n}\\n\\n.border {\\n border: 1px solid #707070;\\n font: 12px/18px Roboto;\\n color: #707070;\\n border-radius: 25px;\\n padding: 5px;\\n}\\n\\n.button {\\n text-align: center;\\n float: right;\\n font: Regular 16px/22px Roboto;\\n color: #ffffff;\\n}\\n\\n.buttonservice {\\n float: right;\\n font-family: Roboto;\\n color: #f1f1ff;\\n}\\n\\n.example-radio-group {\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.example-radio-button {\\n margin: 5px;\\n}\\n\\n.mat-dialog-content {\\n padding: 5px 24px;\\n}\\n\\n.contact {\\n width: 100% !important;\\n margin-top: 20px;\\n}\\n\\n.contact .mat-tab-group {\\n min-height: 150px;\\n}\\n\\n.contact ::ng-deep .mat-tab-label {\\n height: 20px;\\n min-width: 90px;\\n color: #5482BC;\\n border: 1px solid lightgray;\\n font-size: 11px;\\n}\\n\\n.contact ::ng-deep .mat-tab-label-active {\\n background-color: #5482BC;\\n color: #ffffff;\\n opacity: 1;\\n}\\n\\n.contact ::ng-deep .mat-tab-header {\\n border: none;\\n}\\n\\n.contact ::ng-deep .mat-tab-list .mat-ink-bar {\\n height: 0px;\\n}\\n\\n.tabrow {\\n width: 100% !important;\\n margin-top: 20px;\\n margin-bottom: 20px;\\n}\\n\\n.align {\\n padding-left: 16px;\\n padding-top: 20px;\\n}\\n\\n.tabrow ::ng-deep .mat-tab-label {\\n height: 35px;\\n padding: 0px 10px;\\n border-top-left-radius: 8px !important;\\n border-top-right-radius: 8px !important;\\n border-bottom-width: 1px;\\n border-color: #d3d3d3;\\n border-style: solid;\\n background-color: white;\\n margin-left: 3px;\\n color: black;\\n opacity: 1;\\n}\\n\\n.tabrow ::ng-deep .mat-tab-label-active {\\n background-color: #00457D;\\n color: #ffffff;\\n opacity: 1;\\n border-style: none;\\n}\\n\\n.tabrow ::ng-deep .mat-tab-header {\\n border: none;\\n}\\n\\n.tabrow ::ng-deep .mat-tab-list .mat-ink-bar {\\n height: 0px;\\n}\\n\\n.table {\\n font-family: \\\"Trebuchet MS\\\", Arial, Helvetica, sans-serif;\\n border-collapse: collapse;\\n width: 100%;\\n margin-top: 20px;\\n}\\n\\n.table td,\\n.table th {\\n border: 1px solid lightgray;\\n padding: 5px;\\n width: auto;\\n font-size: 12px;\\n}\\n\\n.table tr:nth-child(even) {\\n background-color: #ffffff;\\n}\\n\\n.table tr:hover {\\n background-color: #ffffff;\\n}\\n\\n.table th {\\n padding-top: 5px;\\n padding-bottom: 5px;\\n text-align: left;\\n background-color: #d3d3d3;\\n color: black;\\n}\\n\\n.fault-table td,\\n.fault-table th {\\n padding: 5px;\\n}\\n\\n.fault-table .fault-date {\\n width: 15% !important;\\n}\\n\\n.fault-table .fault-des {\\n width: 20% !important;\\n}\\n\\n.btn {\\n position: relative;\\n cursor: pointer;\\n overflow: hidden;\\n background-color: #00457D !important;\\n border-radius: 5px !important;\\n height: 25px;\\n}\\n\\n.btn p {\\n text-align: center;\\n text-transform: uppercase;\\n color: #fff;\\n position: relative;\\n z-index: 1;\\n transition: all 0.3s ease;\\n margin: auto;\\n font-size: 12px;\\n line-height: 10px;\\n}\\n\\n/* sliders */\\n\\n/* Left Slider */\\n\\n.btn-1 {\\n background-color: #ffffff !important;\\n color: #00457D !important;\\n border: 1px solid #00457D;\\n}\\n\\n.btn-1 p {\\n margin: auto;\\n}\\n\\ntable {\\n width: 100%;\\n}\\n\\n.rect2 {\\n padding: 15px;\\n height: 130px;\\n width: 93%;\\n background: #eaeaea;\\n}\\n\\n.rect3 {\\n padding-top: 15px;\\n padding-right: 15px;\\n padding-left: 15px;\\n padding-bottom: 0px;\\n height: 66px;\\n width: 93%;\\n background: #ffffff;\\n}\\n\\n.rect3 .button {\\n float: right;\\n margin-right: 8px;\\n margin-top: 5px;\\n}\\n\\n.rect4 {\\n float: left;\\n width: 93%;\\n margin-left: 10px;\\n font-size: 14px;\\n padding-bottom: 0px;\\n}\\n\\n.ngx-timepicker-field-example {\\n float: left;\\n margin-top: 15px;\\n}\\n\\n.rect5 {\\n float: left;\\n width: 50%;\\n}\\n\\n.text-pp {\\n width: 100%;\\n}\\n\\n.call-popup-save {\\n float: right;\\n margin-right: 20px;\\n margin-bottom: 10px;\\n}\\n\\n.icons .fa-phone {\\n transform: rotate(135deg);\\n}\\n\\n.icons .fa-microphone-slash,\\n.icons .fa-phone {\\n font-size: 24px;\\n}\\n\\n.icons .button {\\n margin: 5px;\\n}\\n\\n.icons {\\n margin-top: 25px;\\n padding-left: 29%;\\n}\\n\\n.hang-btn {\\n color: red !important;\\n border-color: red !important;\\n}\\n\\n.classtext1 {\\n font-weight: bold;\\n}\\n\\n.dataview {\\n margin-left: 15px;\\n}\\n\\n.timestamp {\\n font-size: 11px;\\n margin-left: 10px;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-group {\\n border-radius: 0px;\\n margin-bottom: 10px;\\n width: 55%;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle {\\n background-color: #ffffff;\\n color: #00457D;\\n font-size: 12px;\\n width: 50%;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-checked {\\n background-color: #00457D;\\n color: #ffffff;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-label-content {\\n line-height: 22px;\\n}\\n\\n.history-card .applyHorizontalScroll {\\n margin-bottom: 0px;\\n}\\n\\n.history-card ::ng-deep mat-paginator {\\n position: absolute;\\n right: 0;\\n left: 0;\\n}\\n\\n.history-card ::ng-deep .mat-form-field-infix {\\n height: 15px;\\n}\\n\\n.history-card ::ng-deep .mat-card-content {\\n padding-bottom: 40px;\\n}\\n\\n.recording-dailog {\\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n background-color: #ffffff;\\n position: absolute;\\n top: 50%;\\n right: 15%;\\n}\\n\\n.call-response {\\n position: fixed;\\n width: 35%;\\n top: 23%;\\n right: 50px;\\n}\\n\\n.call-stats-card-border1 {\\n border-style: solid solid solid solid;\\n border-width: 1px;\\n border-radius: 0%;\\n border-color: lightgray;\\n}\\n\\n.table-border.mat-table {\\n border-style: none solid solid none;\\n border-color: lightgray;\\n}\\n\\n.icon-background {\\n color: #00457D !important;\\n height: 13px !important;\\n width: 13px !important;\\n}\\n\\n.edit-icon {\\n cursor: pointer;\\n color: #00457D;\\n position: absolute;\\n right: 5px;\\n font-size: 12px;\\n top: 20%;\\n cursor: pointer;\\n}\\n\\n.check-icon {\\n cursor: pointer;\\n color: #1acc04;\\n position: absolute;\\n right: 5px;\\n font-size: 12px;\\n top: 20%;\\n margin-right: 18px;\\n margin-bottom: 5px !important;\\n}\\n\\n.cancle-icon {\\n cursor: pointer;\\n color: red;\\n position: absolute;\\n right: 5px;\\n font-size: 12px;\\n top: 20%;\\n margin-bottom: 5px;\\n margin-left: 35px;\\n}\\n\\n.number-form ::ng-deep .mat-form-field-ripple {\\n height: 0px !important;\\n}\\n\\n.strate-line {\\n position: absolute;\\n right: 5px;\\n font-size: 12px;\\n top: 50%;\\n}\\n\\n.input-border {\\n border: 1px solid lightgray;\\n border-radius: 3px;\\n width: 75% !important;\\n height: 25px;\\n padding-left: 5px;\\n margin-left: 5px;\\n}\\n\\n.input-border-d {\\n border: 1px solid lightgray;\\n border-radius: 3px;\\n width: 70% !important;\\n height: 25px;\\n padding-left: 5px;\\n margin-left: 5px;\\n}\\n\\n.calling-table.mat-table .mat-cell {\\n font-size: 11px;\\n letter-spacing: 0px;\\n color: black;\\n text-transform: capitalize;\\n opacity: 1;\\n}\\n\\ntd.mat-cell,\\ntd.mat-footer-cell,\\nth.mat-header-cell {\\n font-size: 12px;\\n padding: 5px;\\n border-style: solid none none solid;\\n border-width: 0.1px;\\n border-color: lightgray;\\n}\\n\\n.table-font.th {\\n color: black;\\n}\\n\\n.table-font.td {\\n color: #595959;\\n}\\n\\n.srvHistryHeader1 {\\n font-weight: bold;\\n font-size: 12px;\\n}\\n\\n.tech-camp ::ng-deep .mat-tab-body-wrapper {\\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n}\\n\\n.tech-camp ::ng-deep .mat-card-content {\\n margin-bottom: 0px;\\n}\\n\\n.paginator ::ng-deep .mat-form-field-infix {\\n height: 18px !important;\\n padding-bottom: 0px;\\n}\\n\\n.cus360Td {\\n font-size: 11px;\\n font-family: poppins;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9jb21wb25lbnQvY3VzdG9tZXIzNjAvY3VzdG9tZXIzNjAuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NvbXBvbmVudC9jdXN0b21lcjM2MC9jdXN0b21lcjM2MC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLG1CQUFBO0VBQ0EsaUJBQUE7RUFDQSxnQkFBQTtBQ0NKOztBREVBO0VBQ0ksNEJBQUE7QUNDSjs7QURHQTtFQUNJLGNBQUE7RUFDQSxpQkFBQTtFQUNBLGtCQUFBO0FDQUo7O0FER0E7RUFDSSxxQkFBQTtBQ0FKOztBREdBO0VBQ0kscUJBQUE7QUNBSjs7QURHQTtFQUNJLGNBQUE7RUFDQSxpQkFBQTtFQUNBLGtCQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VBQ0EsWUFBQTtBQ0FKOztBREdBO0VBQ0ksZ0JBQUE7RUFDQSxZQUFBO0FDQUo7O0FER0E7RUFDSSwyQkFBQTtFQUNBLGVBQUE7RUFDQSxjQUFBO0FDQUo7O0FER0E7RUFDSSxrQ0FBQTtFQUNBLGNBQUE7QUNBSjs7QURHQTtFQUNJLHlCQUFBO0VBQ0Esc0JBQUE7RUFDQSxjQUFBO0VBQ0EsbUJBQUE7RUFDQSxZQUFBO0FDQUo7O0FER0E7RUFDSSxVQUFBO0FDQUo7O0FER0E7RUFDSSxVQUFBO0VBQ0EsZ0JBQUE7QUNBSjs7QURDSTtFQUNJLGtCQUFBO0VBQ0EsWUFBQTtBQ0NSOztBREdBO0VBQ0ksa0JBQUE7RUFDQSxZQUFBO0VBQ0EsOEJBQUE7RUFDQSxjQUFBO0VBQ0Esa0JBQUE7QUNBSjs7QURHQTtFQUNJLGNBQUE7RUFDQSxrQkFBQTtFQUNBLFdBQUE7RUFDQSxlQUFBO0VBQ0EsTUFBQTtFQUNBLGtCQUFBO0FDQUo7O0FER0E7RUFDSSxZQUFBO0FDQUo7O0FER0E7RUFDSSxZQUFBO0VBQ0EsbUJBQUE7RUFDQSxjQUFBO0FDQUo7O0FER0E7RUFDSSw2QkFBQTtFQUNBLDRCQUFBO0FDQUo7O0FER0E7RUFD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K0dBQUE7QUM1Q0o7O0FEK0NBO0VBQ0ksa0JBQUE7QUM1Q0o7O0FEK0NBO0VBQ0ksdUJBQUE7RUFDQSxtQkFBQTtBQzVDSjs7QUQrQ0E7RUFDSSxlQUFBO0VBQ0Esb0JBQUE7QUM1Q0oiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnQvY3VzdG9tZXIzNjAvY3VzdG9tZXIzNjAuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIud29ya2luZy1hcmVhIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG59XG5cbi5jdXN0MzYwLWNvbnRhaW5lciB7XG4gICAgbWFyZ2luOiAxMTVweCAzMHB4IDMwcHggMzBweDtcbiAgICAvL21hcmdpbi1sZWZ0OiAzMHB4O1xufVxuXG4uZXhhbXBsZS1jYXJkMSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4uZXhhbXBsZS1jYXJkMSAuZm9udENsYXNzIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5leGFtcGxlLWNhcmQxIC5pbmxpbmVDbGFzcyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uZXhhbXBsZS1jYXJkMiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIHBhZGRpbmc6IDBweDtcbn1cblxuLmhpc3RvcnktY2FyZCB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBwYWRkaW5nOiAwcHg7XG59XG5cbi5mb250Q2xhc3Mge1xuICAgIGZvbnQ6IEJvbGQgMTJweC8yMHB4IFJvYm90bztcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6ICM3MDcwNzA7XG59XG5cbi5mb250Q2xhc3NCb2xkIHtcbiAgICBmb250LWZhbWlseTogQm9sZCAxNnB4LzIycHggUm9ib3RvO1xuICAgIGNvbG9yOiAjNzA3MDcwO1xufVxuXG4uYm9yZGVyIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjNzA3MDcwO1xuICAgIGZvbnQ6IDEycHgvMThweCBSb2JvdG87XG4gICAgY29sb3I6ICM3MDcwNzA7XG4gICAgYm9yZGVyLXJhZGl1czogMjVweDtcbiAgICBwYWRkaW5nOiA1cHg7XG59XG5cbi5zZXJ2LWhlYWRpbmcge1xuICAgIHdpZHRoOiAzMCU7XG59XG5cbi5zZXJ2LWRlc2Mge1xuICAgIHdpZHRoOiA3MCU7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBzbWFsbCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbn1cblxuLmJ1dHRvbiB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBmb250OiBSZWd1bGFyIDE2cHgvMjJweCBSb2JvdG87XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4O1xufVxuXG4ucmVjZW50IHtcbiAgICBjb2xvcjogIzFhY2MwNDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcmlnaHQ6IDE1cHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiA3cHg7XG59XG5cbi5kaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogMC42O1xufVxuXG4uYnV0dG9uc2VydmljZSB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGZvbnQtZmFtaWx5OiBSb2JvdG87XG4gICAgY29sb3I6ICNmMWYxZmY7XG59XG5cbi5jaGVja2FsaWduIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDE2cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXRvcDogMjBweCAhaW1wb3J0YW50O1xufVxuXG4uY2hlY2thbGlnbm1lbnQge1xuICAgIHBhZGRpbmctdG9wOiAyMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5pbmxpbmVDbGFzcyB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIGZvbnQ6IFJlZ3VsYXIgMTRweCBSb2JvdG87XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gICAgY29sb3I6IGJsYWNrO1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbnAuaW5saW5lQ2xhc3Mge1xuICAgIG1hcmdpbi10b3A6IDBweDtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG5cbi5tYXJnaW5DbGFzcyB7XG4gICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG59XG5cbi5tYXJnaW5DbGFzczEge1xuICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xufVxuXG4ubmF2YmFyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgLy9mb250LXdlaWdodDogYm9sZDtcbiAgICBmb250LXNpemU6IDEycHg7XG59XG5cbi5uYXZiYXIgYSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uaGlzdG9yeS1idG4ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMzBweDtcbn1cblxuLm5vYnVsbGV0IHtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLnBsYXkge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cblxuLmNvbG9yU3R5bGUge1xuICAgIGNvbG9yOiBncmVlbnllbGxvdztcbn1cblxuLmNhbGxMb2dzIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIGZsb2F0OiBsZWZ0O1xufVxuXG4uY3VzdE5vdGlmaWNhdGlvbiB7XG4gICAgZGlzcGxheTogaW5saW5lO1xufVxuXG4uZXhhbXBsZS1yYWRpby1ncm91cCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4uZXhhbXBsZS1yYWRpby1idXR0b24ge1xuICAgIG1hcmdpbjogNXB4O1xufVxuXG4udXBkYXRlLWJ0biB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzE2Mzc3ZDtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBtYXJnaW4tbGVmdDogMTVweDtcbn1cblxuLmVkaXQtYnRuIHtcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgIGNvbG9yOiAjMTYzNzdkO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm51bWJlci1mb3JtIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gICAgcGFkZGluZy1ib3R0b206IDVweDtcbn1cblxuLm51bWJlci1mb3JtIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgIHBhZGRpbmc6IDAuMTM3NWVtIDA7XG4gICAgLy9ib3JkZXI6IHNvbGlkO1xufVxuXG4ubnVtYmVyLWZvcm0gOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgIGJvdHRvbTogMC4yNWVtO1xuICAgIGhlaWdodDogMHB4O1xufVxuXG4ubnVtYmVyLWZvcm0gOjpuZy1kZWVwIGlucHV0Lm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgICBtYXJnaW4tdG9wOiAwcHg7XG59XG5cbi5udW1iZXItZm9ybSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ubnVtYmVyLXJvdyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vL2N1c3RvbSBtYXQtc2VsZWN0XG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIC8vZm9udC1zaXplOiAxMnB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3Qge1xuICAgIHBhZGRpbmc6IDJweCAwcHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgcGFkZGluZy1ib3R0b206IDVweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgICB3aWR0aDogOTAlO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIge1xuICAgIHRvcDogMDtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIHRvcDogMDtcbiAgICBtYXJnaW4tdG9wOiA0cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbn1cblxuLmZpbHRlci1sYWJlbCB7XG4gICAgZm9udDogQm9sZCAxNHB4IFJvYm90bztcbiAgICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICAgIGNvbG9yOiAjM2MzYzNjO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbn1cblxuLy9jdXN0bWVyMzYwIHZpZSB1cGRhdGUgY3NzXG4ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQ6IEJvbGQgMTRweC8xNnB4IFJvYm90bztcbiAgICBpIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgICAgICBjb2xvcjogIzAwNDU3RDtcbiAgICB9XG59XG5cbi5mb250Q2xhc3Mge1xuICAgIGZvbnQ6IEJvbGQgMTRweC8xNnB4IFJvYm90bztcbiAgICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogIzdiN2E3YTtcbiAgICBvcGFjaXR5OiAxO1xuICAgIG1hcmdpbi1ib3R0b206IDNweCAhaW1wb3J0YW50O1xufVxuXG4uZm9udENsYXNzQm9sZCB7XG4gICAgZm9udC1mYW1pbHk6IEJvbGQgMTZweC8yMnB4IFJvYm90bztcbiAgICBjb2xvcjogIzAwMDAwMDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBpIHtcbiAgICAgICAgY29sb3I6ICMwMDQ1N0Q7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIH1cbn1cblxuLmJvcmRlciB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzcwNzA3MDtcbiAgICBmb250OiAxMnB4LzE4cHggUm9ib3RvO1xuICAgIGNvbG9yOiAjNzA3MDcwO1xuICAgIGJvcmRlci1yYWRpdXM6IDI1cHg7XG4gICAgcGFkZGluZzogNXB4O1xufVxuXG4uYnV0dG9uIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGZvbnQ6IFJlZ3VsYXIgMTZweC8yMnB4IFJvYm90bztcbiAgICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLmJ1dHRvbnNlcnZpY2Uge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBmb250LWZhbWlseTogUm9ib3RvO1xuICAgIGNvbG9yOiAjZjFmMWZmO1xufVxuXG4uZXhhbXBsZS1yYWRpby1ncm91cCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4uZXhhbXBsZS1yYWRpby1idXR0b24ge1xuICAgIG1hcmdpbjogNXB4O1xufVxuXG4ubWF0LWRpYWxvZy1jb250ZW50IHtcbiAgICBwYWRkaW5nOiA1cHggMjRweDtcbn1cblxuLmNvbnRhY3Qge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbn1cblxuLmNvbnRhY3QgLm1hdC10YWItZ3JvdXAge1xuICAgIG1pbi1oZWlnaHQ6IDE1MHB4O1xufVxuXG4uY29udGFjdCA6Om5nLWRlZXAgLm1hdC10YWItbGFiZWwge1xuICAgIGhlaWdodDogMjBweDtcbiAgICAvL3BhZGRpbmc6IDBweCAxMHB4O1xuICAgIG1pbi13aWR0aDogOTBweDtcbiAgICBjb2xvcjogIzU0ODJCQztcbiAgICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gICAgZm9udC1zaXplOiAxMXB4O1xufVxuXG4uY29udGFjdCA6Om5nLWRlZXAgLm1hdC10YWItbGFiZWwtYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTQ4MkJDO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi5jb250YWN0IDo6bmctZGVlcCAubWF0LXRhYi1oZWFkZXIge1xuICAgIGJvcmRlcjogbm9uZTtcbn1cblxuLmNvbnRhY3QgOjpuZy1kZWVwIC5tYXQtdGFiLWxpc3QgLm1hdC1pbmstYmFyIHtcbiAgICBoZWlnaHQ6IDBweDtcbn1cblxuLnRhYnJvdyB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cbi5hbGlnbiB7XG4gICAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICAgIHBhZGRpbmctdG9wOiAyMHB4O1xufVxuXG4udGFicm93IDo6bmctZGVlcCAubWF0LXRhYi1sYWJlbCB7XG4gICAgaGVpZ2h0OiAzNXB4O1xuICAgIHBhZGRpbmc6IDBweCAxMHB4O1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDhweCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA4cHggIWltcG9ydGFudDtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7XG4gICAgYm9yZGVyLWNvbG9yOiAjZDNkM2QzO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgbWFyZ2luLWxlZnQ6IDNweDtcbiAgICBjb2xvcjogYmxhY2s7XG4gICAgb3BhY2l0eTogMTtcbiAgICAvLyBmb250LXNpemU6IDEzcHggIWltcG9ydGFudDs7XG59XG5cbi50YWJyb3cgOjpuZy1kZWVwIC5tYXQtdGFiLWxhYmVsLWFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RDtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBvcGFjaXR5OiAxO1xuICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbn1cblxuLnRhYnJvdyA6Om5nLWRlZXAgLm1hdC10YWItaGVhZGVyIHtcbiAgICBib3JkZXI6IG5vbmU7XG59XG5cbi50YWJyb3cgOjpuZy1kZWVwIC5tYXQtdGFiLWxpc3QgLm1hdC1pbmstYmFyIHtcbiAgICBoZWlnaHQ6IDBweDtcbn1cblxuLy90YWJsZVxuLnRhYmxlIHtcbiAgICBmb250LWZhbWlseTogXCJUcmVidWNoZXQgTVNcIiwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG59XG5cbi50YWJsZSB0ZCxcbi50YWJsZSB0aCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICB3aWR0aDogYXV0bztcbiAgICBmb250LXNpemU6IDEycHg7XG59XG5cbi50YWJsZSB0cjpudGgtY2hpbGQoZXZlbikge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG5cbi50YWJsZSB0cjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbn1cblxuLnRhYmxlIHRoIHtcbiAgICBwYWRkaW5nLXRvcDogNXB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDNkM2QzO1xuICAgIGNvbG9yOiBibGFjaztcbn1cblxuLy9mYXVsdCB0YWJsZVxuLmZhdWx0LXRhYmxlIHRkLFxuLmZhdWx0LXRhYmxlIHRoIHtcbiAgICBwYWRkaW5nOiA1cHg7XG59XG5cbi5mYXVsdC10YWJsZSB7XG4gICAgLmZhdWx0LWRhdGUge1xuICAgICAgICB3aWR0aDogMTUlICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIC5mYXVsdC1kZXMge1xuICAgICAgICB3aWR0aDogMjAlICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4vL3NsaWRpbmcgYnRuXG4uYnRuIHtcbiAgICAvL2JvcmRlci1sZWZ0OiA0cHggc29saWQgIzJlMzY2ODtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIC8vdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0QgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiA1cHggIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDI1cHg7XG59XG5cbi5idG4gcCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxMHB4O1xufVxuXG5cbi8qIHNsaWRlcnMgKi9cblxuLy8gLmJ0bjpiZWZvcmUge1xuLy8gICAgIGNvbnRlbnQ6IFwiXCI7XG4vLyAgICAgd2lkdGg6IDEwMCU7XG4vLyAgICAgaGVpZ2h0OiAxMDAlO1xuLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0Q7XG4vLyAgICAgY29sb3I6ICNmZmY7XG4vLyAgICAgLy9ib3JkZXI6IDJweCBzb2xpZCAjMkUzNjY4O1xuLy8gICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuLy8gfVxuXG4vKiBMZWZ0IFNsaWRlciAqL1xuXG4vLyAuYnRuLTI6YmVmb3JlIHtcbi8vICAgICB0b3A6IDA7XG4vLyAgICAgbGVmdDogLTIzMHB4O1xuLy8gfVxuLy8gLmJ0bi0yOmhvdmVyOmJlZm9yZSB7XG4vLyAgICAgbGVmdDogMDtcbi8vIH1cbi8vIC5idG4tMjpob3ZlciB7XG4vLyAgICAgY29sb3I6ICNmZmY7XG4vLyAgICAgLy9ib3JkZXI6IDJweCBzb2xpZCAjMkUzNjY4O1xuLy8gfVxuLmJ0bi0xIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICMwMDQ1N0QgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMDA0NTdEO1xufVxuXG4uYnRuLTEgcCB7XG4gICAgbWFyZ2luOiBhdXRvO1xufVxuXG4vL2NhbGwgZGlhbG9nIGNzc1xudGFibGUge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4ucmVjdDIge1xuICAgIHBhZGRpbmc6IDE1cHg7XG4gICAgaGVpZ2h0OiAxMzBweDtcbiAgICB3aWR0aDogOTMlO1xuICAgIGJhY2tncm91bmQ6ICNlYWVhZWE7XG59XG5cbi5yZWN0MyB7XG4gICAgcGFkZGluZy10b3A6IDE1cHg7XG4gICAgcGFkZGluZy1yaWdodDogMTVweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDBweDtcbiAgICBoZWlnaHQ6IDY2cHg7XG4gICAgd2lkdGg6IDkzJTtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xufVxuXG4ucmVjdDMgLmJ1dHRvbiB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIG1hcmdpbi10b3A6IDVweDtcbn1cblxuLnJlY3Q0IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogOTMlO1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMHB4O1xufVxuXG4ubmd4LXRpbWVwaWNrZXItZmllbGQtZXhhbXBsZSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXRvcDogMTVweDtcbn1cblxuLnJlY3Q1IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogNTAlO1xufVxuXG4udGV4dC1wcCB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5jYWxsLXBvcHVwLXNhdmUge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLmljb25zIC5mYS1waG9uZSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKTtcbn1cblxuLmljb25zIC5mYS1taWNyb3Bob25lLXNsYXNoLFxuLmljb25zIC5mYS1waG9uZSB7XG4gICAgZm9udC1zaXplOiAyNHB4O1xufVxuXG4uaWNvbnMgLmJ1dHRvbiB7XG4gICAgbWFyZ2luOiA1cHg7XG59XG5cbi5pY29ucyB7XG4gICAgbWFyZ2luLXRvcDogMjVweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDI5JTtcbn1cblxuLmhhbmctYnRuIHtcbiAgICBjb2xvcjogcmVkICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiByZWQgIWltcG9ydGFudDtcbn1cblxuLmNsYXNzdGV4dDEge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uZGF0YXZpZXcge1xuICAgIG1hcmdpbi1sZWZ0OiAxNXB4O1xufVxuXG4udGltZXN0YW1wIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIHtcbiAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICB3aWR0aDogNTUlO1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBjb2xvcjogIzAwNDU3RDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgd2lkdGg6IDUwJTtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RDtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtbGFiZWwtY29udGVudCB7XG4gICAgbGluZS1oZWlnaHQ6IDIycHg7XG59XG5cbi5oaXN0b3J5LWNhcmQgLmFwcGx5SG9yaXpvbnRhbFNjcm9sbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xufVxuXG4uaGlzdG9yeS1jYXJkIDo6bmctZGVlcCBtYXQtcGFnaW5hdG9yIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDA7XG4gICAgbGVmdDogMDtcbn1cblxuLmhpc3RvcnktY2FyZCA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICBoZWlnaHQ6IDE1cHg7XG59XG5cbi5oaXN0b3J5LWNhcmQgOjpuZy1kZWVwIC5tYXQtY2FyZC1jb250ZW50IHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNDBweDtcbn1cblxuLy9yZWNvcmRpbmcgZGFpbG9nXG4ucmVjb3JkaW5nLWRhaWxvZyB7XG4gICAgYm94LXNoYWRvdzogMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIHJpZ2h0OiAxNSU7XG59XG5cbi8vY2FsbGluZyBkYWlsb2dcbi5jYWxsLXJlc3BvbnNlIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgd2lkdGg6IDM1JTtcbiAgICB0b3A6IDIzJTtcbiAgICByaWdodDogNTBweDtcbn1cblxuLmNhbGwtc3RhdHMtY2FyZC1ib3JkZXIxIHtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIHNvbGlkIHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDAlO1xuICAgIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4udGFibGUtYm9yZGVyLm1hdC10YWJsZSB7XG4gICAgYm9yZGVyLXN0eWxlOiBub25lIHNvbGlkIHNvbGlkIG5vbmU7XG4gICAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG59XG5cbi5pY29uLWJhY2tncm91bmQge1xuICAgIGNvbG9yOiAjMDA0NTdEICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAxM3B4ICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDEzcHggIWltcG9ydGFudDtcbn1cblxuLmVkaXQtaWNvbiB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGNvbG9yOiAjMDA0NTdEO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogNXB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICB0b3A6IDIwJTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5jaGVjay1pY29uIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY29sb3I6ICMxYWNjMDQ7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiA1cHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHRvcDogMjAlO1xuICAgIG1hcmdpbi1yaWdodDogMThweDtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHggIWltcG9ydGFudDtcbiAgICAvL2JvcmRlcjogbm9uZSBzb2xpZCBub25lIG5vbmUgIWltcG9ydGFudDtcbiAgICAvL2JvcmRlci1jb2xvcjogYmxhY2s7XG59XG5cbi5jYW5jbGUtaWNvbiB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGNvbG9yOiByZWQ7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiA1cHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHRvcDogMjAlO1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICBtYXJnaW4tbGVmdDogMzVweDtcbn1cblxuLm51bWJlci1mb3JtIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgICBoZWlnaHQ6IDBweCAhaW1wb3J0YW50O1xufVxuXG4uc3RyYXRlLWxpbmUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogNXB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICB0b3A6IDUwJTtcbn1cblxuLmlucHV0LWJvcmRlciB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICB3aWR0aDogNzUlICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAyNXB4O1xuICAgIHBhZGRpbmctbGVmdDogNXB4O1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG59XG5cbi5pbnB1dC1ib3JkZXItZCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICB3aWR0aDogNzAlICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAyNXB4O1xuICAgIHBhZGRpbmctbGVmdDogNXB4O1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG59XG5cbi5jYWxsaW5nLXRhYmxlLm1hdC10YWJsZSAubWF0LWNlbGwge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICAgIGNvbG9yOiBibGFjaztcbiAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgICBvcGFjaXR5OiAxO1xufVxuXG50ZC5tYXQtY2VsbCxcbnRkLm1hdC1mb290ZXItY2VsbCxcbnRoLm1hdC1oZWFkZXItY2VsbCB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkIG5vbmUgbm9uZSBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDAuMXB4O1xuICAgIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4udGFibGUtZm9udC50aCB7XG4gICAgY29sb3I6IGJsYWNrO1xufVxuXG4udGFibGUtZm9udC50ZCB7XG4gICAgY29sb3I6ICM1OTU5NTk7XG59XG5cbi5zcnZIaXN0cnlIZWFkZXIxIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBmb250LXNpemU6IDEycHg7XG59XG5cbi50ZWNoLWNhbXAgOjpuZy1kZWVwIC5tYXQtdGFiLWJvZHktd3JhcHBlciB7XG4gICAgYm94LXNoYWRvdzogMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAuMiksIDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgLjE0KSwgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAuMTIpO1xufVxuXG4udGVjaC1jYW1wIDo6bmctZGVlcCAubWF0LWNhcmQtY29udGVudCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xufVxuXG4ucGFnaW5hdG9yIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgIGhlaWdodDogMThweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAwcHg7XG59XG5cbi5jdXMzNjBUZHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC1mYW1pbHk6IHBvcHBpbnM7XG59XG4iLCIud29ya2luZy1hcmVhIHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG59XG5cbi5jdXN0MzYwLWNvbnRhaW5lciB7XG4gIG1hcmdpbjogMTE1cHggMzBweCAzMHB4IDMwcHg7XG59XG5cbi5leGFtcGxlLWNhcmQxIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbi5leGFtcGxlLWNhcmQxIC5mb250Q2xhc3Mge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5leGFtcGxlLWNhcmQxIC5pbmxpbmVDbGFzcyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLmV4YW1wbGUtY2FyZDIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xuICBwYWRkaW5nOiAwcHg7XG59XG5cbi5oaXN0b3J5LWNhcmQge1xuICBib3gtc2hhZG93OiBub25lO1xuICBwYWRkaW5nOiAwcHg7XG59XG5cbi5mb250Q2xhc3Mge1xuICBmb250OiBCb2xkIDEycHgvMjBweCBSb2JvdG87XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICM3MDcwNzA7XG59XG5cbi5mb250Q2xhc3NCb2xkIHtcbiAgZm9udC1mYW1pbHk6IEJvbGQgMTZweC8yMnB4IFJvYm90bztcbiAgY29sb3I6ICM3MDcwNzA7XG59XG5cbi5ib3JkZXIge1xuICBib3JkZXI6IDFweCBzb2xpZCAjNzA3MDcwO1xuICBmb250OiAxMnB4LzE4cHggUm9ib3RvO1xuICBjb2xvcjogIzcwNzA3MDtcbiAgYm9yZGVyLXJhZGl1czogMjVweDtcbiAgcGFkZGluZzogNXB4O1xufVxuXG4uc2Vydi1oZWFkaW5nIHtcbiAgd2lkdGg6IDMwJTtcbn1cblxuLnNlcnYtZGVzYyB7XG4gIHdpZHRoOiA3MCU7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG4uc2Vydi1kZXNjIHNtYWxsIHtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbi5idXR0b24ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZsb2F0OiByaWdodDtcbiAgZm9udDogUmVndWxhciAxNnB4LzIycHggUm9ib3RvO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xufVxuXG4ucmVjZW50IHtcbiAgY29sb3I6ICMxYWNjMDQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcmlnaHQ6IDE1cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiA3cHg7XG59XG5cbi5kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNjtcbn1cblxuLmJ1dHRvbnNlcnZpY2Uge1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG87XG4gIGNvbG9yOiAjZjFmMWZmO1xufVxuXG4uY2hlY2thbGlnbiB7XG4gIHBhZGRpbmctbGVmdDogMTZweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXRvcDogMjBweCAhaW1wb3J0YW50O1xufVxuXG4uY2hlY2thbGlnbm1lbnQge1xuICBwYWRkaW5nLXRvcDogMjBweCAhaW1wb3J0YW50O1xufVxuXG4uaW5saW5lQ2xhc3Mge1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIGZvbnQ6IFJlZ3VsYXIgMTRweCBSb2JvdG87XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgY29sb3I6IGJsYWNrO1xuICBvcGFjaXR5OiAxO1xufVxuXG5wLmlubGluZUNsYXNzIHtcbiAgbWFyZ2luLXRvcDogMHB4O1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG5cbi5tYXJnaW5DbGFzcyB7XG4gIG1hcmdpbi1sZWZ0OiAyMHB4O1xufVxuXG4ubWFyZ2luQ2xhc3MxIHtcbiAgbWFyZ2luLWxlZnQ6IDQwcHg7XG59XG5cbi5uYXZiYXIge1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gIHBhZGRpbmctdG9wOiAxMHB4O1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5uYXZiYXIgYSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmhpc3RvcnktYnRuIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMzBweDtcbn1cblxuLm5vYnVsbGV0IHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4ucGxheSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG59XG5cbi5jb2xvclN0eWxlIHtcbiAgY29sb3I6IGdyZWVueWVsbG93O1xufVxuXG4uY2FsbExvZ3Mge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICBmbG9hdDogbGVmdDtcbn1cblxuLmN1c3ROb3RpZmljYXRpb24ge1xuICBkaXNwbGF5OiBpbmxpbmU7XG59XG5cbi5leGFtcGxlLXJhZGlvLWdyb3VwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLmV4YW1wbGUtcmFkaW8tYnV0dG9uIHtcbiAgbWFyZ2luOiA1cHg7XG59XG5cbi51cGRhdGUtYnRuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE2Mzc3ZDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIG1hcmdpbi1sZWZ0OiAxNXB4O1xufVxuXG4uZWRpdC1idG4ge1xuICBtYXJnaW4tbGVmdDogNXB4O1xuICBjb2xvcjogIzE2Mzc3ZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgYm9yZGVyOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5udW1iZXItZm9ybSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICBwYWRkaW5nLWJvdHRvbTogNXB4O1xufVxuXG4ubnVtYmVyLWZvcm0gOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIHBhZGRpbmc6IDAuMTM3NWVtIDA7XG59XG5cbi5udW1iZXItZm9ybSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGJvdHRvbTogMC4yNWVtO1xuICBoZWlnaHQ6IDBweDtcbn1cblxuLm51bWJlci1mb3JtIDo6bmctZGVlcCBpbnB1dC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gIG1hcmdpbi10b3A6IDBweDtcbn1cblxuLm51bWJlci1mb3JtIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLm51bWJlci1yb3cge1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBwYWRkaW5nOiAwO1xuICBoZWlnaHQ6IDIwcHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdCB7XG4gIHBhZGRpbmc6IDJweCAwcHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gIHdpZHRoOiAxMDAlO1xuICBmb250LXNpemU6IDEycHg7XG4gIHBhZGRpbmctYm90dG9tOiA1cHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gIHdpZHRoOiA5MCU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gIHRvcDogMDtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdG9wOiAwO1xuICBtYXJnaW4tdG9wOiA0cHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG59XG5cbi5maWx0ZXItbGFiZWwge1xuICBmb250OiBCb2xkIDE0cHggUm9ib3RvO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICBjb2xvcjogIzNjM2MzYztcbiAgb3BhY2l0eTogMTtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICBmb250LXNpemU6IDEzcHg7XG59XG5cbi5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZSB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udDogQm9sZCAxNHB4LzE2cHggUm9ib3RvO1xufVxuLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRpdGxlIGkge1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gIGNvbG9yOiAjMDA0NTdEO1xufVxuXG4uZm9udENsYXNzIHtcbiAgZm9udDogQm9sZCAxNHB4LzE2cHggUm9ib3RvO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjN2I3YTdhO1xuICBvcGFjaXR5OiAxO1xuICBtYXJnaW4tYm90dG9tOiAzcHggIWltcG9ydGFudDtcbn1cblxuLmZvbnRDbGFzc0JvbGQge1xuICBmb250LWZhbWlseTogQm9sZCAxNnB4LzIycHggUm9ib3RvO1xuICBjb2xvcjogIzAwMDAwMDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuLmZvbnRDbGFzc0JvbGQgaSB7XG4gIGNvbG9yOiAjMDA0NTdEO1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cblxuLmJvcmRlciB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM3MDcwNzA7XG4gIGZvbnQ6IDEycHgvMThweCBSb2JvdG87XG4gIGNvbG9yOiAjNzA3MDcwO1xuICBib3JkZXItcmFkaXVzOiAyNXB4O1xuICBwYWRkaW5nOiA1cHg7XG59XG5cbi5idXR0b24ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZsb2F0OiByaWdodDtcbiAgZm9udDogUmVndWxhciAxNnB4LzIycHggUm9ib3RvO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLmJ1dHRvbnNlcnZpY2Uge1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG87XG4gIGNvbG9yOiAjZjFmMWZmO1xufVxuXG4uZXhhbXBsZS1yYWRpby1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi5leGFtcGxlLXJhZGlvLWJ1dHRvbiB7XG4gIG1hcmdpbjogNXB4O1xufVxuXG4ubWF0LWRpYWxvZy1jb250ZW50IHtcbiAgcGFkZGluZzogNXB4IDI0cHg7XG59XG5cbi5jb250YWN0IHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgbWFyZ2luLXRvcDogMjBweDtcbn1cblxuLmNvbnRhY3QgLm1hdC10YWItZ3JvdXAge1xuICBtaW4taGVpZ2h0OiAxNTBweDtcbn1cblxuLmNvbnRhY3QgOjpuZy1kZWVwIC5tYXQtdGFiLWxhYmVsIHtcbiAgaGVpZ2h0OiAyMHB4O1xuICBtaW4td2lkdGg6IDkwcHg7XG4gIGNvbG9yOiAjNTQ4MkJDO1xuICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gIGZvbnQtc2l6ZTogMTFweDtcbn1cblxuLmNvbnRhY3QgOjpuZy1kZWVwIC5tYXQtdGFiLWxhYmVsLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1NDgyQkM7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBvcGFjaXR5OiAxO1xufVxuXG4uY29udGFjdCA6Om5nLWRlZXAgLm1hdC10YWItaGVhZGVyIHtcbiAgYm9yZGVyOiBub25lO1xufVxuXG4uY29udGFjdCA6Om5nLWRlZXAgLm1hdC10YWItbGlzdCAubWF0LWluay1iYXIge1xuICBoZWlnaHQ6IDBweDtcbn1cblxuLnRhYnJvdyB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cbi5hbGlnbiB7XG4gIHBhZGRpbmctbGVmdDogMTZweDtcbiAgcGFkZGluZy10b3A6IDIwcHg7XG59XG5cbi50YWJyb3cgOjpuZy1kZWVwIC5tYXQtdGFiLWxhYmVsIHtcbiAgaGVpZ2h0OiAzNXB4O1xuICBwYWRkaW5nOiAwcHggMTBweDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogOHB4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA4cHggIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4O1xuICBib3JkZXItY29sb3I6ICNkM2QzZDM7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBtYXJnaW4tbGVmdDogM3B4O1xuICBjb2xvcjogYmxhY2s7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi50YWJyb3cgOjpuZy1kZWVwIC5tYXQtdGFiLWxhYmVsLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0Q7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBvcGFjaXR5OiAxO1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG5cbi50YWJyb3cgOjpuZy1kZWVwIC5tYXQtdGFiLWhlYWRlciB7XG4gIGJvcmRlcjogbm9uZTtcbn1cblxuLnRhYnJvdyA6Om5nLWRlZXAgLm1hdC10YWItbGlzdCAubWF0LWluay1iYXIge1xuICBoZWlnaHQ6IDBweDtcbn1cblxuLnRhYmxlIHtcbiAgZm9udC1mYW1pbHk6IFwiVHJlYnVjaGV0IE1TXCIsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tdG9wOiAyMHB4O1xufVxuXG4udGFibGUgdGQsXG4udGFibGUgdGgge1xuICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gIHBhZGRpbmc6IDVweDtcbiAgd2lkdGg6IGF1dG87XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLnRhYmxlIHRyOm50aC1jaGlsZChldmVuKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG5cbi50YWJsZSB0cjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG5cbi50YWJsZSB0aCB7XG4gIHBhZGRpbmctdG9wOiA1cHg7XG4gIHBhZGRpbmctYm90dG9tOiA1cHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkM2QzZDM7XG4gIGNvbG9yOiBibGFjaztcbn1cblxuLmZhdWx0LXRhYmxlIHRkLFxuLmZhdWx0LXRhYmxlIHRoIHtcbiAgcGFkZGluZzogNXB4O1xufVxuXG4uZmF1bHQtdGFibGUgLmZhdWx0LWRhdGUge1xuICB3aWR0aDogMTUlICFpbXBvcnRhbnQ7XG59XG4uZmF1bHQtdGFibGUgLmZhdWx0LWRlcyB7XG4gIHdpZHRoOiAyMCUgIWltcG9ydGFudDtcbn1cblxuLmJ0biB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDVweCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDI1cHg7XG59XG5cbi5idG4gcCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6ICNmZmY7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgbWFyZ2luOiBhdXRvO1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxMHB4O1xufVxuXG4vKiBzbGlkZXJzICovXG4vKiBMZWZ0IFNsaWRlciAqL1xuLmJ0bi0xIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICBjb2xvcjogIzAwNDU3RCAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCAjMDA0NTdEO1xufVxuXG4uYnRuLTEgcCB7XG4gIG1hcmdpbjogYXV0bztcbn1cblxudGFibGUge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLnJlY3QyIHtcbiAgcGFkZGluZzogMTVweDtcbiAgaGVpZ2h0OiAxMzBweDtcbiAgd2lkdGg6IDkzJTtcbiAgYmFja2dyb3VuZDogI2VhZWFlYTtcbn1cblxuLnJlY3QzIHtcbiAgcGFkZGluZy10b3A6IDE1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gIHBhZGRpbmctbGVmdDogMTVweDtcbiAgcGFkZGluZy1ib3R0b206IDBweDtcbiAgaGVpZ2h0OiA2NnB4O1xuICB3aWR0aDogOTMlO1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xufVxuXG4ucmVjdDMgLmJ1dHRvbiB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gIG1hcmdpbi10b3A6IDVweDtcbn1cblxuLnJlY3Q0IHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiA5MyU7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIHBhZGRpbmctYm90dG9tOiAwcHg7XG59XG5cbi5uZ3gtdGltZXBpY2tlci1maWVsZC1leGFtcGxlIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi10b3A6IDE1cHg7XG59XG5cbi5yZWN0NSB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogNTAlO1xufVxuXG4udGV4dC1wcCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uY2FsbC1wb3B1cC1zYXZlIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi5pY29ucyAuZmEtcGhvbmUge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpO1xufVxuXG4uaWNvbnMgLmZhLW1pY3JvcGhvbmUtc2xhc2gsXG4uaWNvbnMgLmZhLXBob25lIHtcbiAgZm9udC1zaXplOiAyNHB4O1xufVxuXG4uaWNvbnMgLmJ1dHRvbiB7XG4gIG1hcmdpbjogNXB4O1xufVxuXG4uaWNvbnMge1xuICBtYXJnaW4tdG9wOiAyNXB4O1xuICBwYWRkaW5nLWxlZnQ6IDI5JTtcbn1cblxuLmhhbmctYnRuIHtcbiAgY29sb3I6IHJlZCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IHJlZCAhaW1wb3J0YW50O1xufVxuXG4uY2xhc3N0ZXh0MSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uZGF0YXZpZXcge1xuICBtYXJnaW4tbGVmdDogMTVweDtcbn1cblxuLnRpbWVzdGFtcCB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIHtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICB3aWR0aDogNTUlO1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGNvbG9yOiAjMDA0NTdEO1xuICBmb250LXNpemU6IDEycHg7XG4gIHdpZHRoOiA1MCU7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtbGFiZWwtY29udGVudCB7XG4gIGxpbmUtaGVpZ2h0OiAyMnB4O1xufVxuXG4uaGlzdG9yeS1jYXJkIC5hcHBseUhvcml6b250YWxTY3JvbGwge1xuICBtYXJnaW4tYm90dG9tOiAwcHg7XG59XG5cbi5oaXN0b3J5LWNhcmQgOjpuZy1kZWVwIG1hdC1wYWdpbmF0b3Ige1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiAwO1xufVxuXG4uaGlzdG9yeS1jYXJkIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBoZWlnaHQ6IDE1cHg7XG59XG5cbi5oaXN0b3J5LWNhcmQgOjpuZy1kZWVwIC5tYXQtY2FyZC1jb250ZW50IHtcbiAgcGFkZGluZy1ib3R0b206IDQwcHg7XG59XG5cbi5yZWNvcmRpbmctZGFpbG9nIHtcbiAgYm94LXNoYWRvdzogMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICByaWdodDogMTUlO1xufVxuXG4uY2FsbC1yZXNwb25zZSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgd2lkdGg6IDM1JTtcbiAgdG9wOiAyMyU7XG4gIHJpZ2h0OiA1MHB4O1xufVxuXG4uY2FsbC1zdGF0cy1jYXJkLWJvcmRlcjEge1xuICBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIHNvbGlkIHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLXJhZGl1czogMCU7XG4gIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4udGFibGUtYm9yZGVyLm1hdC10YWJsZSB7XG4gIGJvcmRlci1zdHlsZTogbm9uZSBzb2xpZCBzb2xpZCBub25lO1xuICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxuLmljb24tYmFja2dyb3VuZCB7XG4gIGNvbG9yOiAjMDA0NTdEICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMTNweCAhaW1wb3J0YW50O1xuICB3aWR0aDogMTNweCAhaW1wb3J0YW50O1xufVxuXG4uZWRpdC1pY29uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogIzAwNDU3RDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogNXB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIHRvcDogMjAlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5jaGVjay1pY29uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogIzFhY2MwNDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogNXB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIHRvcDogMjAlO1xuICBtYXJnaW4tcmlnaHQ6IDE4cHg7XG4gIG1hcmdpbi1ib3R0b206IDVweCAhaW1wb3J0YW50O1xufVxuXG4uY2FuY2xlLWljb24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiByZWQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDVweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICB0b3A6IDIwJTtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICBtYXJnaW4tbGVmdDogMzVweDtcbn1cblxuLm51bWJlci1mb3JtIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgaGVpZ2h0OiAwcHggIWltcG9ydGFudDtcbn1cblxuLnN0cmF0ZS1saW5lIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogNXB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIHRvcDogNTAlO1xufVxuXG4uaW5wdXQtYm9yZGVyIHtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIHdpZHRoOiA3NSUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAyNXB4O1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgbWFyZ2luLWxlZnQ6IDVweDtcbn1cblxuLmlucHV0LWJvcmRlci1kIHtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIHdpZHRoOiA3MCUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAyNXB4O1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgbWFyZ2luLWxlZnQ6IDVweDtcbn1cblxuLmNhbGxpbmctdGFibGUubWF0LXRhYmxlIC5tYXQtY2VsbCB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgY29sb3I6IGJsYWNrO1xuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgb3BhY2l0eTogMTtcbn1cblxudGQubWF0LWNlbGwsXG50ZC5tYXQtZm9vdGVyLWNlbGwsXG50aC5tYXQtaGVhZGVyLWNlbGwge1xuICBmb250LXNpemU6IDEycHg7XG4gIHBhZGRpbmc6IDVweDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZCBub25lIG5vbmUgc29saWQ7XG4gIGJvcmRlci13aWR0aDogMC4xcHg7XG4gIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4udGFibGUtZm9udC50aCB7XG4gIGNvbG9yOiBibGFjaztcbn1cblxuLnRhYmxlLWZvbnQudGQge1xuICBjb2xvcjogIzU5NTk1OTtcbn1cblxuLnNydkhpc3RyeUhlYWRlcjEge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4udGVjaC1jYW1wIDo6bmctZGVlcCAubWF0LXRhYi1ib2R5LXdyYXBwZXIge1xuICBib3gtc2hhZG93OiAwIDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgMXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi50ZWNoLWNhbXAgOjpuZy1kZWVwIC5tYXQtY2FyZC1jb250ZW50IHtcbiAgbWFyZ2luLWJvdHRvbTogMHB4O1xufVxuXG4ucGFnaW5hdG9yIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBoZWlnaHQ6IDE4cHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1ib3R0b206IDBweDtcbn1cblxuLmN1czM2MFRkIHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LWZhbWlseTogcG9wcGlucztcbn0iXX0= */\"","import { Component, OnInit, ViewChild } from \"@angular/core\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { CommonService } from \"../../core/service/common-service/common.service\";\nimport { MatDialog, MatSort, MatPaginator, MatTableDataSource, MatTabChangeEvent } from \"@angular/material\";\nimport { Router } from \"@angular/router\";\nimport { DatePipe } from \"@angular/common\";\nimport { CallParams } from \"src/app/model/call-params.model\";\nimport { DialogService } from \"src/app/dialog.service\";\n\n@Component({\n selector: \"app-customer360\",\n templateUrl: \"./customer360.component.html\",\n styleUrls: [\"./customer360.component.scss\"]\n})\nexport class Customer360Component implements OnInit {\n @ViewChild(MatSort, { static: true }) sort: MatSort;\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\n @ViewChild('CallLogsPaginator', { static: true }) callLogsPaginator: MatPaginator;\n @ViewChild('CallLogsSort', { static: true }) callLogsSort: MatSort;\n @ViewChild('RemarksPaginator', { static: true }) remarksPaginator: MatPaginator;\n @ViewChild('RemarksSort', { static: true }) remarksSort: MatSort;\n @ViewChild('ServiceHistoryPaginator', { static: true }) serviceHistoryPaginator: MatPaginator;\n @ViewChild('ServiceHistorySort', { static: true }) serviceHistorySort: MatSort;\n\n cus360: any;\n cusType: string;\n calledNo: string;\n vehicleDetails: any = {};\n lastServiceDetails: any = {};\n serviceDetails: any = {};\n faultDetails: any = [];\n callVisible: boolean;\n spinner: boolean;\n vinNoList: string[] = [];\n vehicleInfoList: any[] = [];\n vehicleTypeCallInfo: any;\n vehicleServiceAndStausInfo: any;\n dataSource: any;\n selectedNumber: any;\n selectedName: any;\n updatedNumber: any;\n updatedName: any;\n contactInfoOwner: any[] = [];\n contactInfoFleet: any[] = [];\n contactInfoDriver: any[] = [];\n updatedNumberType: string;\n updatedNameType: string;\n secondaryNo: string;\n unableEdit: any = {};\n unableCall: boolean = false;\n workShops = [];\n selectedWorkShop: string;\n audioSource: any = {};\n selectedVehicle: string;\n HideServiceHistory: boolean = true;\n historyToggleStatus: boolean = false;\n showCallDailog: boolean = false;\n showRecordingDailog: boolean = false;\n showPlayBtn: boolean = true;\n paused: boolean = false;\n ownerSelected: boolean = true;\n fleetSelected: boolean = false;\n driverSelected: boolean = false;\n errorShow: any = {};\n customerID: string;\n userId: string;\n chassisNo: string;\n recentNumber: string;\n bookingCount: number;\n followupCount: number;\n customerData: any;\n vin: string;\n rrDetails: any = [];\n rrLength: number;\n technicalCampLength: number;\n division: string;\n workshopAppointmentFlag: boolean = false;\n cdmTrailCheckOwner: boolean = false;\n cdmTrailCheckfleet: boolean = false;\n cdmTrailCheckdriver: boolean = false;\n secondTrailCall: boolean = false;\n //service history table columns\n displayedColumns: string[] = [\n \"jcNo\",\n \"servNo\",\n \"dealerLoc\",\n \"jbcardDate\",\n \"mileage\",\n \"failureDate\",\n \"billDate\",\n \"insdate\",\n \"mechanic\",\n \"serviceAdv\",\n \"serviceAdvNo\"\n ];\n\n //call log table columns\n displayedCallColumns: string[] = [\n \"number\",\n \"callDate\",\n \"startTime\",\n \"duration\",\n \"recording\"\n ];\n\n //call log table columns\n displayedRemarksColumns: string[] = [\n \"remark\",\n \"remarkDate\",\n \"remarkTime\"\n ];\n\n displayedFaultColumns: string[] = [\n \"faultCaseId\",\n \"rulesDesc\",\n \"faultListDate\",\n \"faultFertCode\",\n \"faultServiceDueDate\",\n \"faultBookingDate\"\n ];\n\n displayedTechnicalCampColumns: string[] = [\n \"campaignId\",\n \"campaignIdDesc\",\n \"campaignStartDate\",\n \"campaignEndDate\",\n \"techCampaignCallStatus\",\n \"techBookingDate\"\n ];\n\n \n dataSource1: any[];\n expandedElement: any[] = [];\n rows: any = [];\n\n callLists: any;\n callCount: number = 0;\n\n remarksDetails: any;\n historyDetails: any;\n remarksCount: number = 0;\n historyCount: number = 0;\n private audio: HTMLMediaElement;\n techCampDetails: any;\n techCampCount: number = 0;\n selectedTab: any;\n custNameForSave: any;\n serviceCount: any;\n bookingDuration: any;\n serviceType: any;\n userContactNo: string;\n countryCode: string;\n recordingUrl: any;\n callOption: string;\n transId: any;\n blockStatus: String = 'false';\n\n constructor(\n private dialogService: DialogService,\n private datePipe: DatePipe,\n public dialog: MatDialog,\n private commonService: CommonService,\n private toastr: ToastrService,\n private router: Router\n ) {\n this.unableEdit['O'] = {};\n this.unableEdit['F'] = {};\n this.unableEdit['D'] = {};\n }\n\n ngOnInit() {\n this.userInfo = JSON.parse(localStorage.getItem(\"userInfo\") || null)[0];\n this.customerData = JSON.parse(localStorage.getItem(\"customerData\") || null);\n this.callVisible = true;\n this.chassisNo = localStorage.getItem(\"chassisNo\");\n this.userId = localStorage.getItem(\"userId\");\n this.customerID = localStorage.getItem(\"customerId\");\n this.userContactNo = localStorage.getItem(\"userContactNo\");\n this.countryCode = localStorage.getItem(\"countryCode\");\n this.workShops = JSON.parse(localStorage.getItem('workshops'));\n this.selectedWorkShop = (this.workShops && this.workShops.length) ? this.workShops[0].workshopCode : '';\n this.customerData = JSON.parse(localStorage.getItem(\"customerData\"));\n this.vin = this.customerData.vin;\n\n if (localStorage.getItem(\"userId\") == null || localStorage.getItem(\"userId\") == undefined) {\n this.router.navigate([\"login\"]);\n }\n\n //this.getBookingFollowupCount(this.customerID, this.vin);\n this.getWorkshopAppointmentFlag();\n this.getCustomer360();\n this.getCallList();\n this.getContactdetail();\n this.fetchBlockStatus();\n }\n\n /**\n * Name: getCallRecording\n * purpose: To get call recording and play\n */\nrecording:string = ''\n getCallRecording(bucketName: string, fileName: string, id: string, source: string,element:any): void {\n console.log(element);\n \n if (element.recordingUrl) {\n this.recording = element.recordingUrl;\n }else{\n this.recording = '';\n }\n this.spinner = true;\n this.onRecordingClose();\n this.commonService.downloadAudio(bucketName, fileName, source).subscribe(res => {\n this.spinner = false;\n var binary = res['body'];\n var blob = new Blob([binary], { type: 'audio/mp4' });\n this.audioSource.id = id;\n this.audioSource.url = URL.createObjectURL(blob);\n if (this.audioSource.url) {\n this.playRecording();\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n /**\n * Name: playRecording\n * purpose: To play recoding\n */\n playRecording(): void {\n this.showPlayBtn = false;\n this.showRecordingDailog = true;\n }\n\n /**\n * Name: onRecordingClose\n * purpose: To close Recording dailog\n */\n onRecordingClose() {\n this.showPlayBtn = true;\n this.showRecordingDailog = false;\n }\n\n /**\n * Name: getContactdetail\n * purpose: To get customer Contact detail\n */\n getContactdetail(): void {\n this.spinner = true;\n this.commonService.contactdetail(this.customerID).subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n this.contactInfoOwner = res[\"responseData\"].filter(contact => contact.flag == \"O\");\n this.contactInfoFleet = res[\"responseData\"].filter(contact => contact.flag == \"F\");\n this.contactInfoDriver = res[\"responseData\"].filter(contact => contact.flag == \"D\");\n this.selectedNumber = this.contactInfoOwner[0].contactNo;\n this.selectedName = this.contactInfoOwner[0].name;\n this.unableEdit['O'][0] = true;\n this.unableEdit['O'][1] = false;\n this.unableEdit['D'][0] = true;\n this.unableEdit['D'][1] = false;\n this.updatedNumberType = 'Primary';\n this.unableCall = true;\n this.spinner = false;\n } else {\n this.spinner = false;\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n },\n ()=>{\n this.updateActiveContactNo();\n });\n }\n\n getCdmData() {\n let temp: any;\n this.selectedTab = this.selectedTab ? this.selectedTab : 0;\n\n let data = {\n \"customerId\": this.customerID,\n \"vin\": \"\",\n \"phoneNo\": \"\",\n \"startDate\": \"\",\n \"endDate\": \"\",\n \"date\": \"\",\n \"customerName\": \"\",\n \"type\": \"T\",\n \"flag\": this.selectedTab == 0 ? 'C' : this.selectedTab == 1 ? 'F' : this.selectedTab == 2 ? 'D' : 'C'\n };\n this.commonService.fetchCdmData(data).subscribe((resp) => {\n if (resp['responseCode'] == 0) {\n temp = resp[\"responseData\"].filter(contact => contact.contactNo = contact.phoneNo);\n temp.forEach((trail) => {\n if (this.selectedTab == 0) {\n this.contactInfoOwner.push(trail)\n this.cdmTrailCheckOwner = true\n } else if (this.selectedTab == 1) {\n this.contactInfoFleet.push(trail)\n this.cdmTrailCheckfleet = true\n } else if (this.selectedTab == 2) {\n this.contactInfoDriver.push(trail)\n this.cdmTrailCheckdriver = true\n }\n })\n this.trailLogCheck();\n } else {\n this.toastr.error(resp['message'], \"Error\");\n }\n\n }, error => {\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n // this.contactInfoOwner.push(temp[0]);\n\n }\n\n trailLogCheck() {\n if (this.selectedTab == 0) {\n this.secondTrailCall = this.cdmTrailCheckOwner\n // return this.cdmTrailCheckOwner\n } else if (this.selectedTab == 1) {\n this.secondTrailCall = this.cdmTrailCheckfleet\n // return this.cdmTrailCheckfleet\n } else if (this.selectedTab == 2) {\n this.secondTrailCall = this.cdmTrailCheckdriver\n // return this.cdmTrailCheckdriver\n } else {\n this.secondTrailCall = false\n }\n }\n\n /**\n * Name: checkCallStatus\n * purpose: To set contect type selection\n * @param {any} type - type of number\n */\n checkCallStatus(type: any): void {\n this.onTabChange(type)\n this.selectedTab = type && type.index;\n if (type && type.index == 0) {\n this.ownerSelected = true;\n this.fleetSelected = false;\n this.driverSelected = false;\n if (this.contactInfoOwner.length) {\n this.unableCall = true;\n this.contactInfoOwner.forEach((element, i) => {\n if (this.unableEdit['O'][i] != undefined && this.unableEdit['O'][i]) {\n this.selectedNumber = element.contactNo;\n this.selectedName = element.name;\n }\n });\n } else {\n this.unableCall = false;\n }\n }\n\n if (type && type.index == 1) {\n this.ownerSelected = false;\n this.fleetSelected = true;\n this.driverSelected = false;\n if (this.contactInfoFleet.length) {\n this.unableCall = true;\n let numberSelected = false;\n this.contactInfoFleet.forEach((element, i) => {\n if (this.unableEdit['F'][i] != undefined && this.unableEdit['F'][i]) {\n this.selectedNumber = element.contactNo;\n this.selectedName = element.name;\n numberSelected = true;\n }\n });\n if (!numberSelected) {\n this.selectedNumber = this.contactInfoFleet[0].contactNo;\n this.selectedName = this.contactInfoFleet[0].name;\n this.unableEdit['F'][0] = true;\n }\n } else {\n this.unableCall = false;\n }\n }\n\n if (type && type.index == 2) {\n this.ownerSelected = false;\n this.fleetSelected = false;\n this.driverSelected = true;\n if (this.contactInfoDriver.length) {\n this.unableCall = true;\n let numberSelected = false;\n this.contactInfoDriver.forEach((element, i) => {\n if (this.unableEdit['D'][i] != undefined && this.unableEdit['D'][i]) {\n this.selectedNumber = element.contactNo;\n this.selectedName = element.name;\n numberSelected = true;\n }\n });\n if (!numberSelected) {\n this.selectedNumber = this.contactInfoDriver[0].contactNo;\n this.selectedName = this.contactInfoDriver[0].name;\n this.unableEdit['D'][0] = true;\n }\n } else {\n this.unableCall = false;\n }\n }\n this.trailLogCheck();\n }\n\n /**\n * Name: callUser\n * purpose: To call user\n */\n private callUser(): void {\n this.showRecordingDailog = false;\n this.spinner = true;\n let callNumber = this.selectedNumber;\n let type = (this.ownerSelected ? 'C' : (this.fleetSelected ? 'F' : 'D'));\n if(type=='C'){\n this.contactInfoOwner.forEach((element)=>{\n if(element.contactNo==this.selectedNumber){\n this.custNameForSave=element.name\n }\n });\n }else if(type=='F'){\n this.contactInfoFleet.forEach((element)=>{\n if(element.contactNo==this.selectedNumber){\n this.custNameForSave=element.name\n }\n });\n }\n else if(type=='D'){\n this.contactInfoDriver.forEach((element)=>{\n if(element.contactNo==this.selectedNumber){\n this.custNameForSave=element.name\n }\n });\n }\n this.calledNo = this.selectedNumber;\n this.cusType = type;\n callNumber = \"+91\" + callNumber;\n if(type != 'C') {\n this.blockStatus = 'false';\n }\n if(this.blockStatus == 'false') {\n this.commonService.callCustomer(this.userId, this.customerID, callNumber, type, 'SRM').subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n this.showCallDailog = true;\n this.spinner = false;\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n } else {\n this.toastr.info(\"Customer contact number is block. Please connect to Fleet Manager or Driver.\", \"Info\");\n }\n\n if (localStorage.getItem('countryCode')=='IND91') {\n this.callingToUser();\n }else{\n localStorage.setItem(\"exotel_URI\",'')\n }\n }\n\n /**\n * Name: onClose\n * purpose: To close call dailog\n */\n onClose() {\n this.showCallDailog = false;\n this.getContactdetail();\n }\n\n /**\n * Name: updateNumber\n * @param {boolean} addNumber - type of number\n * purpose: To set customer number\n */\n updateNumber(addNumber: boolean): void {\n if ((this.updatedNumber && this.updatedNumber.length == 10) || (addNumber && this.secondaryNo && this.secondaryNo.length == 10)) {\n this.spinner = true;\n let oldNumber = this.selectedNumber;\n let newNumber = this.updatedNumber ? this.updatedNumber : this.selectedNumber;\n let oldName = this.selectedName;\n let newName = this.updatedName;\n if (addNumber) {\n oldNumber = this.secondaryNo;\n newNumber = this.secondaryNo;\n this.updatedNumberType = \"Secondary\";\n }\n this.commonService.updateNumber(newNumber, oldNumber, this.updatedNumberType, this.customerID, this.userId, oldName, newName).subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n this.spinner = false;\n this.selectedNumber = this.updatedNumber;\n this.selectedName = this.updatedName;\n this.toastr.success(\"Data is saved.\", \"Success\");\n this.getContactdetail();\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n })\n }\n }\n\n /**\n * Name: onNameChange\n * * purpose: To get new selected name\n * @param name\n * @param editName\n * @param index\n * @param type\n */\n onNameChange(name: any, editName: boolean, index: any, type: string) {\n if (type == 'D' && editName) {\n this.updatedName = name.name;\n this.updatedNumber = name.contactNo;\n this.updatedNumberType = 'D';\n this.errorShow[index] = false;\n } else {\n this.selectedName = name.name;\n this.updatedNumber = name.contactNo;\n this.updatedName = name.name;\n this.updatedNumberType = index == 0 ? 'Y' : \"N\";\n if (type == 'D') {\n this.contactInfoDriver.forEach((element, i) => {\n if (i == index) {\n this.unableEdit[type][i] = true;\n } else {\n this.unableEdit[type][i] = false;\n }\n });\n }\n }\n }\n\n /**\n * Name: onNumberChange\n * purpose: To get new selected number\n */\n onNumberChange(number: any, editNumber: boolean, index: any, type: string): void {\n if (type == \"D\" && editNumber && number.contactNo.length == 10) {\n this.updatedNumber = number.contactNo;\n this.updatedName = number.name;\n this.updatedNumberType = 'D';\n this.errorShow[index] = false;\n } else if (editNumber && number.contactNo.length == 10) {\n this.updatedNumber = number.contactNo;\n this.updatedName = number.name;\n this.updatedNumberType = index == 0 ? 'Y' : 'N';\n this.errorShow[index] = false;\n } else if (editNumber && number.contactNo.length !== 10) {\n this.errorShow[index] = true;\n } else {\n this.selectedNumber = number.contactNo;\n this.selectedName = number.name;\n this.updatedNumber = number.contactNo;\n this.updatedName = number.name;\n this.updatedNumberType = index == 0 ? 'Y' : 'N';\n if (type == 'O') {\n this.contactInfoOwner.forEach((element, i) => {\n if (i == index) {\n this.unableEdit[type][i] = true;\n } else {\n this.unableEdit[type][i] = false;\n }\n });\n } else if (type == 'F') {\n this.contactInfoFleet.forEach((element, i) => {\n if (i == index) {\n this.unableEdit[type][i] = true;\n } else {\n this.unableEdit[type][i] = false;\n }\n });\n } else if (type == 'D') {\n this.contactInfoDriver.forEach((element, i) => {\n if (i == index) {\n this.unableEdit[type][i] = true;\n } else {\n this.unableEdit[type][i] = false;\n }\n });\n }\n\n }\n }\n\n /**\n * Name: sendWorkshopMsg\n * purpose: To send workshop addess SMS\n */\n sendWorkshopMsg(): void {\n this.spinner = true;\n let data = {\n contactNo: this.selectedNumber,\n custName: this.cus360['CUSTOMER_INFO'].custName,\n }\n this.workShops.forEach(workshop => {\n if (workshop.workshopCode == this.selectedWorkShop) {\n data['wSAddress'] = workshop.workshopAddress || '';\n data['wSManager'] = workshop.contactNo || '';\n data['wSName'] = workshop.workshopName || '';\n }\n });\n this.commonService.sendLocationSMS(data).subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n this.toastr.info(res['message'], \"Message\");\n this.spinner = false;\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: getCustomer360\n * purpose: To get customer data\n */\n getCustomer360(): void {\n this.spinner = true;\n this.commonService.getcustomerdata(this.customerID, this.userId, \"\").subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n this.cus360 = res[\"responseData\"];\n if (this.cus360[\"VECHILE_INFO\"] && this.cus360[\"VECHILE_INFO\"].length && this.cus360[\"VECHILE_INFO\"][0].vin6Bits) {\n this.selectedVehicle = this.cus360[\"VECHILE_INFO\"][0].vin6Bits\n this.cus360[\"VECHILE_INFO\"].forEach(element => {\n this.vinNoList.push(element.vin6Bits);\n this.vehicleInfoList.push(element);\n });\n this.subTabDefault(this.selectedVehicle);\n } else {\n this.vehicleDetails = {};\n }\n this.spinner = false;\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: getCallList\n * purpose: To get customer call data\n */\n getCallList(): void {\n this.spinner = true;\n this.commonService.callDetails(this.userId, this.customerID, 'SRM').subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n this.spinner = false;\n \n this.callLists = new MatTableDataSource(res['responseData']);\n \n \n this.recentNumber = (res['responseData'].length && res['responseData'][0].custNo) ? res['responseData'][0].custNo.split('+91')[1] : '';\n this.sort.direction = '';\n this.callLists.sort = this.callLogsSort;\n this.callLists.paginator = this.callLogsPaginator;\n this.callCount = res['responseData'].length;\n } else {\n this.spinner = false;\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: getHistory\n * purpose: To get service history\n */\n getHistory(showHistory: boolean): void {\n if (showHistory) {\n this.spinner = true;\n this.commonService.history(this.chassisNo).subscribe(\n res => {\n if (res[\"responseCode\"] == 0) {\n this.HideServiceHistory = false;\n this.dataSource1 = res[\"responseData\"];\n this.historyDetails = new MatTableDataSource(this.dataSource1);\n this.sort.direction = '';\n this.historyDetails.sort = this.serviceHistorySort;\n this.historyDetails.paginator = this.serviceHistoryPaginator;\n this.historyCount = this.dataSource1.length;\n this.spinner = false;\n } else {\n this.toastr.info(res[\"message\"]);\n this.historyDetails = [];\n this.spinner = false;\n this.historyToggleStatus = false;\n }\n }, err => {\n this.spinner = false;\n this.historyToggleStatus = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n } else {\n this.HideServiceHistory = true;\n }\n }\n\n /**\n * Name: subTabDefault\n * purpose: To set vehicle details as selected\n */\n subTabDefault(selectedVehicle: string): void {\n this.vehicleDetails = this.cus360[\"VECHILE_INFO\"].filter(vehicle => vehicle.vin6Bits == selectedVehicle)[0];\n this.division = this.vehicleDetails.division;\n //this.rrLength = Object.keys(this.cus360[\"RR_SERVICE_INFO\"]).length;\n localStorage.setItem(\"chassisNo\", this.vehicleDetails.chassisNo);\n this.chassisNo = this.vehicleDetails.chassisNo;\n //change the sale date format\n this.vehicleDetails.saleDate = this.datePipe.transform(\n this.vehicleDetails.saleDate,\n \"yyyy-MM-dd\"\n );\n\n //set the vehicle call Info\n if (this.cus360[\"SERVICE_INFO\"] && Object.keys(this.cus360[\"SERVICE_INFO\"]).length && this.cus360[\"SERVICE_INFO\"][selectedVehicle]) {\n this.serviceDetails = this.cus360[\"SERVICE_INFO\"][selectedVehicle];\n this.serviceCount=this.cus360[\"SERVICE_INFO\"][selectedVehicle][\"serviceSeq\"];\n if(this.serviceCount >= 0) {\n if(this.serviceCount % 2 == 1) {\n this.bookingDuration = 90;\n } else {\n this.bookingDuration = 240;\n }\n }\n\n localStorage.setItem(\"serviceInfo\", JSON.stringify(this.cus360[\"SERVICE_INFO\"]));\n localStorage.setItem(\"serviceDueDate\", this.cus360[\"SERVICE_INFO\"][selectedVehicle].serviceDueDate);\n\n //set the vehicle call Info\n this.vehicleServiceAndStausInfo = this.serviceDetails.campaignId ? this.serviceDetails.serviceType : this.serviceDetails.serviceType + \", \" + this.serviceDetails.callStatus;\n this.vehicleTypeCallInfo = this.serviceDetails.callType;\n this.serviceType = this.serviceDetails.serviceType.split(' - ')[0];\n } else {\n this.serviceDetails = {};\n }\n\n if (this.cus360[\"FAULT_SERVICE_INFO\"] && Object.keys(this.cus360[\"FAULT_SERVICE_INFO\"]).length && this.cus360[\"FAULT_SERVICE_INFO\"][selectedVehicle]) {\n let faultInfo = this.cus360[\"FAULT_SERVICE_INFO\"][selectedVehicle];\n this.faultDetails = new MatTableDataSource(faultInfo);\n } else {\n this.faultDetails = [];\n }\n\n if (this.cus360[\"LAST_SERVICE_INFO\"] && Object.keys(this.cus360[\"LAST_SERVICE_INFO\"]).length && this.cus360[\"LAST_SERVICE_INFO\"][selectedVehicle]) {\n this.lastServiceDetails = this.cus360[\"LAST_SERVICE_INFO\"][selectedVehicle];\n localStorage.setItem(\"milage\", this.lastServiceDetails.milage);\n this.lastServiceDetails.invoiceDate = this.datePipe.transform(\n this.lastServiceDetails.invoiceDate,\n \"yyyy-MM-dd\"\n );\n } else {\n this.lastServiceDetails = {};\n }\n\n if (this.cus360[\"Remark_Info\"] && Object.keys(this.cus360[\"Remark_Info\"]).length && this.cus360[\"Remark_Info\"][selectedVehicle]) {\n let remarks = this.cus360[\"Remark_Info\"][selectedVehicle];\n remarks.forEach(element => {\n let date = element.remarkTime + \" GMT+0000\";\n let d = new Date(date);\n element.remarkTime = d;\n element.remarkDate = this.datePipe.transform(element.remarkTime, \"yyyy-MM-dd\");\n });\n this.remarksDetails = new MatTableDataSource(remarks);\n this.sort.direction = '';\n this.remarksDetails.sort = this.remarksSort;\n this.remarksDetails.paginator = this.remarksPaginator;\n this.remarksCount = remarks.length;\n } else {\n this.remarksDetails = [];\n }\n\n if (this.cus360[\"Technical_Camp\"] && Object.keys(this.cus360[\"Technical_Camp\"]).length && this.cus360[\"Technical_Camp\"][selectedVehicle]) {\n let techCamp = this.cus360[\"Technical_Camp\"][selectedVehicle];\n this.technicalCampLength = techCamp.length;\n // remarks.forEach(element => {\n // let date = element.remarkTime + \" GMT+0000\";\n // let d = new Date(date);\n // element.remarkTime = d;\n // element.remarkDate = this.datePipe.transform(element.remarkTime, \"yyyy-MM-dd\");\n // });\n this.techCampDetails = new MatTableDataSource(techCamp);\n this.sort.direction = '';\n this.techCampDetails.sort = this.remarksSort;\n this.techCampDetails.paginator = this.remarksPaginator;\n this.techCampCount = techCamp.length;\n } else {\n this.techCampDetails = [];\n }\n }\n\n getWorkshopAppointmentFlag(){\n this.commonService.getWorkshopAppointmentFlag(this.selectedWorkShop)\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n this.workshopAppointmentFlag = res['responseData'][0].appointmentFlag;\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n fetchBlockStatus() {\n this.commonService.fetchBlockStatus(this.customerID, 'srm').subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n this.blockStatus = res[\"responseData\"].blockStatus;\n //this.spinner = false;\n } else {\n //this.spinner = false;\n }\n }, err => {\n //this.spinner = false;\n // this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n // getBookingFollowupCount(customerId: string, vin: string){\n // this.commonService.getBookingFollowupCount(customerId, vin)\n // .subscribe(res => {\n // if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n // this.bookingCount = res['responseData'].bookingCount;\n // this.followupCount = res['responseData'].followUpCount;\n\n // } else {\n // this.spinner = false;\n // this.toastr.error(res['message'], \"Error\");\n // }\n // }, err => {\n // this.spinner = false;\n // this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n // });\n\n // }\n\n\n activeTabLabel: string = 'Owner'; \n activeIndex:number = 0\n userInfo: any;\n\n selectedContactNumbers = {\n 'Owner': null,\n 'Fleet Manager': null,\n 'Driver': null\n };\n\n onTabChange(event: MatTabChangeEvent) {\n this.activeTabLabel = event.tab.textLabel;\n this.activeIndex = event.index;\n this.updateActiveContactNo();\n }\n\n \n\n private updateActiveContactNo() {\n let contactList;\n \n if (this.activeIndex === 0) {\n contactList = this.contactInfoOwner;\n } else if (this.activeIndex === 1) {\n contactList = this.contactInfoFleet;\n } else if (this.activeIndex === 2) {\n contactList = this.contactInfoDriver;\n }\n \n console.log(this.activeIndex);\n console.log(contactList);\n if (contactList && contactList.length > 0) {\n this.selectedContactNumbers[this.activeTabLabel] = this.selectedContactNumbers[this.activeTabLabel] || contactList[0].contactNo;\n }\n \n }\n onRadioChange(contactNo: string, tabLabel: string) {\n this.selectedContactNumbers[tabLabel] = contactNo;\n \n \n }\n\n\n private callingToUser(){\n let customerPhone = this.selectedContactNumbers[this.activeTabLabel];\n if(customerPhone){\n this.makeCall(customerPhone)\n }else{\n this.spinner = false;\n this.toastr.error(\"Customer Phone number can't be Empty while placing the call\")\n }\n }\n\n \n private makeCall(customerPhone:string) {\n const callParams = new CallParams(this.userInfo.contactNo, customerPhone);\n this.spinner = true\n this.commonService.createCallConnection_API(callParams).subscribe({\n next: (response) => {\n if(response.responseData.Uri) {\n localStorage.setItem(\"exotel_URI\",response.responseData.Uri)\n } else{\n localStorage.setItem(\"exotel_URI\",'')\n }\n if (response.responseCode==0) {\n this.toastr.success(\"Call is in progress\")\n \n }else{\n this.toastr.error(response.responseData)\n }\n \n },\n error:(error)=>{\n this.spinner = false\n this.toastr.error(\"Something went wrong\");\n \n },\n complete:()=>{\n this.spinner = false\n }\n });\n }\n\n openConfirmation() {\n if (localStorage.getItem('countryCode')=='IND91') {\n this.dialogService.openConfirmDialog().subscribe(result => {\n if (result) {\n console.log(result);\n this.callUser(); \n } else {\n console.log(result);\n }\n });\n }else{\n this.callUser();\n }\n \n }\n\n}","export default \".chart-container {\\n display: block;\\n margin-bottom: 0px !important;\\n padding: 0px 10px !important;\\n}\\n\\n.detail-card ::ng-deep .mat-tab-label {\\n height: 48px;\\n padding: 0 8px;\\n min-width: 95px;\\n}\\n\\n.chartjs-render-monitor {\\n max-width: 100% !important;\\n}\\n\\n.kpi {\\n background-color: #ededed;\\n padding-top: 120px;\\n padding-left: 10px;\\n padding-right: 20px;\\n padding-bottom: 20px;\\n}\\n\\n.kpi h3 {\\n text-align: center;\\n}\\n\\n.kpi-chart {\\n background: white;\\n padding: 5px;\\n}\\n\\n.kpi-chart .chart-container {\\n padding: 0px 10px;\\n}\\n\\n.kpi-chart .chartjs-render-monitor {\\n height: 60px !important;\\n}\\n\\n.kpi-chrt-head {\\n text-align: center;\\n margin: 0px;\\n}\\n\\n.kpi-chrt-head .heading-kpi {\\n font-size: 13px;\\n color: black;\\n font-weight: 500;\\n padding-top: 5px;\\n}\\n\\n.kpi-chrt-head .state {\\n font-size: 15px;\\n font-weight: 500;\\n padding-top: 10px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9jb21wb25lbnQvZGFzaGJvYXJkL2NoYXJ0LWRhc2hib2FyZC9jaGFydC1kYXNoYm9hcmQuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NvbXBvbmVudC9kYXNoYm9hcmQvY2hhcnQtZGFzaGJvYXJkL2NoYXJ0LWRhc2hib2FyZC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQTtFQUNFLGNBQUE7RUFDQSw2QkFBQTtFQUNBLDRCQUFBO0FDQUY7O0FER0E7RUFDRSxZQUFBO0VBQ0EsY0FBQTtFQUNBLGVBQUE7QUNBRjs7QURHQTtFQUNFLDBCQUFBO0FDQUY7O0FESUE7RUFDRSx5QkFBQTtFQUNBLGtCQUFBO0VBQ0Esa0JBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0FDREY7O0FER0U7RUFDRSxrQkFBQTtBQ0RKOztBREtBO0VBQ0UsaUJBQUE7RUFDQSxZQUFBO0FDRkY7O0FESUU7RUFDRSxpQkFBQTtBQ0ZKOztBREtFO0VBQ0UsdUJBQUE7QUNISjs7QURPQTtFQUNFLGtCQUFBO0VBQ0EsV0FBQTtBQ0pGOztBRE1FO0VBQ0UsZUFBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtFQUNBLGdCQUFBO0FDSko7O0FET0U7RUFDRSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtBQ0xKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50L2Rhc2hib2FyZC9jaGFydC1kYXNoYm9hcmQvY2hhcnQtZGFzaGJvYXJkLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLy9jaGFydCBjc3Ncbi5jaGFydC1jb250YWluZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMHB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDBweCAxMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5kZXRhaWwtY2FyZCA6Om5nLWRlZXAgLm1hdC10YWItbGFiZWwge1xuICBoZWlnaHQ6IDQ4cHg7XG4gIHBhZGRpbmc6IDAgOHB4O1xuICBtaW4td2lkdGg6IDk1cHg7XG59XG5cbi5jaGFydGpzLXJlbmRlci1tb25pdG9yIHtcbiAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG59XG5cbi8va3BpIGNzc1xuLmtwaSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZGVkZWQ7XG4gIHBhZGRpbmctdG9wOiAxMjBweDtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMjBweDtcblxuICBoMyB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59XG5cbi5rcGktY2hhcnQge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgcGFkZGluZzogNXB4O1xuXG4gIC5jaGFydC1jb250YWluZXIge1xuICAgIHBhZGRpbmc6IDBweCAxMHB4O1xuICB9XG5cbiAgLmNoYXJ0anMtcmVuZGVyLW1vbml0b3Ige1xuICAgIGhlaWdodDogNjBweCAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5rcGktY2hydC1oZWFkIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW46IDBweDtcblxuICAuaGVhZGluZy1rcGkge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogYmxhY2s7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBwYWRkaW5nLXRvcDogNXB4O1xuICB9XG5cbiAgLnN0YXRlIHtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBwYWRkaW5nLXRvcDogMTBweDtcbiAgfVxufVxuIiwiLmNoYXJ0LWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAwcHggIWltcG9ydGFudDtcbiAgcGFkZGluZzogMHB4IDEwcHggIWltcG9ydGFudDtcbn1cblxuLmRldGFpbC1jYXJkIDo6bmctZGVlcCAubWF0LXRhYi1sYWJlbCB7XG4gIGhlaWdodDogNDhweDtcbiAgcGFkZGluZzogMCA4cHg7XG4gIG1pbi13aWR0aDogOTVweDtcbn1cblxuLmNoYXJ0anMtcmVuZGVyLW1vbml0b3Ige1xuICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cblxuLmtwaSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZGVkZWQ7XG4gIHBhZGRpbmctdG9wOiAxMjBweDtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbn1cbi5rcGkgaDMge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5rcGktY2hhcnQge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgcGFkZGluZzogNXB4O1xufVxuLmtwaS1jaGFydCAuY2hhcnQtY29udGFpbmVyIHtcbiAgcGFkZGluZzogMHB4IDEwcHg7XG59XG4ua3BpLWNoYXJ0IC5jaGFydGpzLXJlbmRlci1tb25pdG9yIHtcbiAgaGVpZ2h0OiA2MHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5rcGktY2hydC1oZWFkIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW46IDBweDtcbn1cbi5rcGktY2hydC1oZWFkIC5oZWFkaW5nLWtwaSB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgY29sb3I6IGJsYWNrO1xuICBmb250LXdlaWdodDogNTAwO1xuICBwYWRkaW5nLXRvcDogNXB4O1xufVxuLmtwaS1jaHJ0LWhlYWQgLnN0YXRlIHtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBwYWRkaW5nLXRvcDogMTBweDtcbn0iXX0= */\"","import { Component, OnInit, Input } from '@angular/core';\nimport { ChartOptions, ChartType, ChartDataSets } from 'chart.js';\nimport { Label } from 'ng2-charts';\n\n@Component({\n selector: 'chart-dashboard',\n templateUrl: './chart-dashboard.component.html',\n styleUrls: ['./chart-dashboard.component.scss'],\n})\n\nexport class ChartDashboardComponent implements OnInit {\n @Input() chartData: ChartDataSets;\n @Input() chartHeight: any;\n @Input() chartWidth: any;\n @Input() chartLabels: Label[];\n @Input() chartOptions: ChartOptions;\n @Input() chartPlugins: any;\n @Input() chartLegend: boolean;\n @Input() chartType: ChartType;\n\n constructor() { }\n\n ngOnInit() { }\n}\n","export default \".example-header {\\n display: flex;\\n align-items: center;\\n padding: 0.5em;\\n}\\n\\n.example-header-label {\\n flex: 1;\\n height: 1em;\\n font-weight: 500;\\n text-align: center;\\n}\\n\\n.example-double-arrow .mat-icon {\\n margin: -22%;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9jb21wb25lbnQvZGFzaGJvYXJkL2N1c3RvbS1oZWFkZXItY2FsL2N1c3RvbS1oZWFkZXIuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NvbXBvbmVudC9kYXNoYm9hcmQvY3VzdG9tLWhlYWRlci1jYWwvY3VzdG9tLWhlYWRlci5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGFBQUE7RUFDQSxtQkFBQTtFQUNBLGNBQUE7QUNDRjs7QURFQTtFQUNFLE9BQUE7RUFDQSxXQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtBQ0NGOztBREVBO0VBQ0UsWUFBQTtBQ0NGIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50L2Rhc2hib2FyZC9jdXN0b20taGVhZGVyLWNhbC9jdXN0b20taGVhZGVyLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmV4YW1wbGUtaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogMC41ZW07XG59XG5cbi5leGFtcGxlLWhlYWRlci1sYWJlbCB7XG4gIGZsZXg6IDE7XG4gIGhlaWdodDogMWVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5leGFtcGxlLWRvdWJsZS1hcnJvdyAubWF0LWljb24ge1xuICBtYXJnaW46IC0yMiU7XG59XG4iLCIuZXhhbXBsZS1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiAwLjVlbTtcbn1cblxuLmV4YW1wbGUtaGVhZGVyLWxhYmVsIHtcbiAgZmxleDogMTtcbiAgaGVpZ2h0OiAxZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmV4YW1wbGUtZG91YmxlLWFycm93IC5tYXQtaWNvbiB7XG4gIG1hcmdpbjogLTIyJTtcbn0iXX0= */\"","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Inject,\n OnDestroy\n} from '@angular/core';\nimport { MatCalendar, MatDatepickerIntl } from '@angular/material/datepicker';\nimport { DateAdapter, MAT_DATE_FORMATS, MatDateFormats } from '@angular/material/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n/** Custom header component for datepicker. */\n@Component({\n selector: 'custom-header',\n templateUrl: './custom-header.component.html',\n styleUrls: ['./custom-header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ExampleHeader implements OnDestroy {\n private _destroyed = new Subject();\n\n constructor(\n private _calendar: MatCalendar, private _intl: MatDatepickerIntl, private _dateAdapter: DateAdapter,\n @Inject(MAT_DATE_FORMATS) private _dateFormats: MatDateFormats, cdr: ChangeDetectorRef) {\n _calendar.stateChanges\n .pipe(takeUntil(this._destroyed))\n .subscribe(() => cdr.markForCheck());\n }\n\n ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\n }\n\n /** Handles user clicks on the period label. */\n currentPeriodClicked(): void {\n this._calendar.currentView = this._calendar.currentView == 'year' ? 'multi-year' : 'year';\n }\n\n /** The label for the current calendar view. */\n get periodButtonText(): string {\n return this._dateAdapter.getYearName(this._calendar.activeDate);\n }\n\n /** Handles user clicks on the previous button. */\n previousClicked(): void {\n this._calendar.activeDate = this._calendar.currentView == 'month' ?\n this._dateAdapter.addCalendarMonths(this._calendar.activeDate, -1) :\n this._dateAdapter.addCalendarYears(\n this._calendar.activeDate, this._calendar.currentView == 'year' ? -1 : 20\n );\n }\n\n /** Handles user clicks on the next button. */\n nextClicked(): void {\n this._calendar.activeDate = this._calendar.currentView == 'month' ?\n this._dateAdapter.addCalendarMonths(this._calendar.activeDate, 1) :\n this._dateAdapter.addCalendarYears(\n this._calendar.activeDate,\n this._calendar.currentView == 'year' ? 1 : 20\n );\n }\n}\n","export default \".working-area {\\n margin: 0px 0px 0px 0px !important;\\n min-height: 100vh;\\n}\\n\\n.dashboard {\\n padding-top: 120px;\\n padding-left: 20px;\\n padding-bottom: 20px;\\n}\\n\\n.dashboard h3 {\\n text-align: center;\\n}\\n\\n.dashboard .grth {\\n padding: 5px 5px 5px 0px;\\n}\\n\\n.p-b-8 {\\n padding-bottom: 8px;\\n}\\n\\n.p-b-3 {\\n padding-bottom: 3px;\\n}\\n\\n.p-t-5 {\\n padding-top: 5px;\\n}\\n\\n.p-t-13 {\\n padding-top: 13px;\\n}\\n\\n.m-0 {\\n margin: 0px;\\n}\\n\\nhr {\\n width: 100%;\\n opacity: 0.5;\\n margin-bottom: 15px !important;\\n}\\n\\n.detail-card {\\n background-color: #ffffff;\\n padding: 5px;\\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12);\\n}\\n\\n.detail-card .head-crd {\\n margin-top: 15px;\\n}\\n\\n.detail-card .indicator {\\n margin-left: 0px;\\n margin-top: 10px;\\n}\\n\\n.detail-card1 {\\n background-color: #ffffff;\\n padding: 5px;\\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12);\\n}\\n\\n.detail-card1 .indicator {\\n margin-left: 5px;\\n}\\n\\n.count {\\n font-size: 14px !important;\\n font-weight: bold;\\n}\\n\\n.count1 {\\n font-size: 16px !important;\\n font-weight: bold;\\n}\\n\\n.count2 {\\n font-size: 18px !important;\\n font-weight: bold;\\n}\\n\\np {\\n font-size: 11px !important;\\n margin: 3px;\\n}\\n\\n.color-red {\\n color: #e64243;\\n}\\n\\n.color-nv-blue {\\n color: #2e3668;\\n}\\n\\n.color-lg-blue {\\n color: #4834d4;\\n}\\n\\n.color-blue {\\n color: #5758bb;\\n}\\n\\n.color-lg-sky {\\n color: #57aeef;\\n}\\n\\n.color-d-sky {\\n color: #3f729d;\\n}\\n\\n.color-grn {\\n color: #54b157;\\n}\\n\\n.indicator {\\n margin-right: 10px;\\n border: 1px solid #2e3668;\\n border-radius: 50%;\\n padding: 5px;\\n font-size: 14px;\\n color: #2e3668;\\n cursor: pointer;\\n}\\n\\n.label {\\n text-align: center;\\n}\\n\\n.chart-container {\\n display: block;\\n margin-bottom: 0px !important;\\n padding: 0px 10px !important;\\n}\\n\\n.detail-card ::ng-deep .mat-tab-label {\\n height: 25px;\\n padding: 0 8px;\\n min-width: 95px;\\n font-size: 13px;\\n}\\n\\n.chartjs-render-monitor {\\n max-width: 100% !important;\\n}\\n\\n.example-month-picker .mat-calendar-period-button {\\n pointer-events: none;\\n}\\n\\n.example-month-picker .mat-calendar-arrow {\\n display: none;\\n}\\n\\n.dateField {\\n width: 100%;\\n}\\n\\n.heading .indicator {\\n position: relative;\\n left: 109px;\\n background: #ffffff;\\n padding: 3px;\\n bottom: 20px;\\n}\\n\\n.alert {\\n font-size: 20px;\\n font-weight: bold;\\n}\\n\\n#dateField ::ng-deep input.mat-input-element {\\n margin-top: 3px;\\n padding-left: 5px;\\n font-size: 14px !important;\\n}\\n\\n#dateField ::ng-deep .mat-form-field-suffix {\\n right: 0px;\\n top: 0px;\\n}\\n\\n#dateField ::ng-deep .mat-form-field {\\n font-size: 14px !important;\\n}\\n\\n#dateField ::ng-deep .mat-datepicker-toggle {\\n position: absolute;\\n right: 0px;\\n top: -16px;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-infix {\\n border: 1px solid lightgray;\\n border-radius: 2px;\\n background: white;\\n padding: 0;\\n height: 20px;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field {\\n font-size: 14px !important;\\n}\\n\\n.filter1 ::ng-deep .mat-select {\\n padding: 3px 0px;\\n font-size: 14px !important;\\n}\\n\\n.filter1 ::ng-deep .mat-select-trigger {\\n padding-left: 8px;\\n width: 100%;\\n}\\n\\n.filter1 ::ng-deep .mat-select-value {\\n width: 90%;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label-wrapper {\\n top: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-underline {\\n display: none;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label {\\n top: 0;\\n margin-top: 3px !important;\\n padding-left: 5px;\\n font-size: 14px !important;\\n}\\n\\n.filter3::ng-deep .mat-form-field-infix {\\n border: 1px solid lightgray;\\n border-radius: 2px;\\n background: white;\\n padding: 0;\\n height: 20px;\\n width: 100px !important;\\n margin-top: 17px;\\n}\\n\\n.filter3 ::ng-deep .mat-form-field {\\n font-size: 14px !important;\\n}\\n\\n.filter3 ::ng-deep .mat-select {\\n padding: 3px 0px;\\n font-size: 14px !important;\\n}\\n\\n.filter3 ::ng-deep .mat-select-trigger {\\n padding-left: 8px;\\n width: 100%;\\n}\\n\\n.filter3 ::ng-deep .mat-select-value {\\n width: 100%;\\n}\\n\\n.filter3 ::ng-deep .mat-form-field-label-wrapper {\\n top: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n\\n.filter3 ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 0;\\n}\\n\\n.filter3 ::ng-deep .mat-form-field-underline {\\n display: none;\\n}\\n\\n.filter3 ::ng-deep .mat-form-field-label {\\n top: 0;\\n margin-top: 3px !important;\\n padding-left: 5px;\\n font-size: 16px !important;\\n font-weight: bold !important;\\n}\\n\\n.filter-label {\\n font: Bold 14px Roboto;\\n letter-spacing: 0px;\\n color: #3c3c3c;\\n opacity: 1;\\n margin-bottom: 5px;\\n}\\n\\n.dateFilter {\\n border: 1px solid lightgray;\\n border-radius: 2px;\\n background: white;\\n padding: 0;\\n height: 20px;\\n}\\n\\n.kpi {\\n background-color: #ededed;\\n padding-top: 105px;\\n padding-left: 20px;\\n padding-right: 20px;\\n padding-bottom: 20px;\\n}\\n\\n.kpi h3 {\\n text-align: center;\\n}\\n\\n.kpi .heading {\\n margin-bottom: 8px;\\n margin-top: 10px;\\n}\\n\\n.kpi-chart {\\n background: white;\\n padding: 5px;\\n cursor: pointer;\\n}\\n\\n.kpi-chart .chart-container {\\n padding: 0px 10px;\\n}\\n\\n.kpi-chart .chartjs-render-monitor {\\n height: 60px !important;\\n}\\n\\n.kpi-chrt-head {\\n text-align: center;\\n margin: 0px;\\n}\\n\\n.kpi-chrt-head .heading-kpi {\\n font-size: 13px;\\n color: black;\\n font-weight: 500;\\n padding-top: 5px;\\n}\\n\\n.kpi-chrt-head .state {\\n font-size: 15px;\\n font-weight: 500;\\n padding-top: 10px;\\n}\\n\\n.filter-label-date {\\n font: 12px Roboto;\\n letter-spacing: 0px;\\n color: #3c3c3c;\\n opacity: 1;\\n margin-bottom: 3px;\\n padding: 1px 0px 0px;\\n}\\n\\n.searchfilter {\\n width: 200px;\\n height: 30px;\\n margin-left: 10px;\\n font-size: 12px;\\n border: 0;\\n}\\n\\n.indicator1 {\\n margin-right: 10px;\\n padding: 5px;\\n font-size: 14px;\\n color: #2e3668;\\n cursor: pointer;\\n}\\n\\n.filter-margin {\\n margin-top: 20px;\\n}\\n\\n.kpicard-filter {\\n margin-top: 13px;\\n}\\n\\n.kpicard-button {\\n margin-top: 14px;\\n padding-left: 10px;\\n}\\n\\n.calender {\\n position: relative;\\n background: white;\\n}\\n\\n.calender input {\\n width: 95%;\\n border: 1px solid lightgray !important;\\n font-size: 12px;\\n height: 18px;\\n padding-left: 5px;\\n}\\n\\n.calander-btn {\\n position: absolute;\\n right: 8px;\\n top: 2px;\\n}\\n\\n.excel-icon {\\n width: 25px;\\n height: 25px;\\n margin-top: 14px;\\n cursor: pointer;\\n}\\n\\n.filterButton {\\n color: white !important;\\n background-color: #00457D;\\n height: 20px;\\n line-height: 10px;\\n margin-top: 18px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9jb21wb25lbnQvZGFzaGJvYXJkL2Rhc2hib2FyZC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50L2Rhc2hib2FyZC9kYXNoYm9hcmQuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxrQ0FBQTtFQUNBLGlCQUFBO0FDQ0Y7O0FER0E7RUFDRSxrQkFBQTtFQUNBLGtCQUFBO0VBQ0Esb0JBQUE7QUNBRjs7QURDRTtFQUNFLGtCQUFBO0FDQ0o7O0FEQ0U7RUFDRSx3QkFBQTtBQ0NKOztBREdBO0VBQ0UsbUJBQUE7QUNBRjs7QURHQTtFQUNFLG1CQUFBO0FDQUY7O0FER0E7RUFDRSxnQkFBQTtBQ0FGOztBREdBO0VBQ0UsaUJBQUE7QUNBRjs7QURHQTtFQUNFLFdBQUE7QUNBRjs7QURHQTtFQUNFLFdBQUE7RUFDQSxZQUFBO0VBQ0EsOEJBQUE7QUNBRjs7QURHQTtFQUNFLHlCQUFBO0VBQ0EsWUFBQTtFQUNBLCtHQUFBO0FDQUY7O0FESUU7RUFDRSxnQkFBQTtBQ0RKOztBREdFO0VBQ0UsZ0JBQUE7RUFDQSxnQkFBQTtBQ0RKOztBREtBO0VBQ0UseUJBQUE7RUFDQSxZQUFBO0VBQ0EsK0dBQUE7QUNGRjs7QURLQTtFQUNFLGdCQUFBO0FDRkY7O0FES0E7RUFDRSwwQkFBQTtFQUNBLGlCQUFBO0FDRkY7O0FES0E7RUFDRSwwQkFBQTtFQUNBLGlCQUFBO0FDRkY7O0FES0E7RUFDRSwwQkFBQTtFQUNBLGlCQUFBO0FDRkY7O0FES0E7RUFDRSwwQkFBQTtFQUNBLFdBQUE7QUNGRjs7QURLQTtFQUNFLGNBQUE7QUNGRjs7QURLQTtFQUNFLGNBQUE7QUNGRjs7QURLQTtFQUNFLGNBQUE7QUNGRjs7QURLQTtFQUNFLGNBQUE7QUNGRjs7QURLQTtFQUNFLGNBQUE7QUNGRjs7QURLQTtFQUNFLGNBQUE7QUNGRjs7QURLQTtFQUNFLGNBQUE7QUNGRjs7QURLQTtFQUNFLGtCQUFBO0VB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O0VBQ0EsWUFBQTtFQUNBLGVBQUE7RUFDQSxjQUFBO0VBQ0EsZUFBQTtBQ2JGOztBRGdCQTtFQUNFLGdCQUFBO0FDYkY7O0FEZ0JBO0VBQ0UsZ0JBQUE7QUNiRjs7QURnQkE7RUFDRSxnQkFBQTtFQUNBLGtCQUFBO0FDYkY7O0FEZ0JBO0VBQ0Usa0JBQUE7RUFDQSxpQkFBQTtBQ2JGOztBRGNFO0VBQ0UsVUFBQTtFQUNBLHNDQUFBO0VBRUEsZUFBQTtFQUNBLFlBQUE7RUFDQSxpQkFBQTtBQ2JKOztBRGlCQTtFQUNFLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLFFBQUE7QUNkRjs7QURpQkE7RUFDRSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VBQ0EsZUFBQTtBQ2RGOztBRGlCQTtFQUNFLHVCQUFBO0VBQ0EseUJBQUE7RUFDQSxZQUFBO0VBQ0EsaUJBQUE7RUFDQSxnQkFBQTtBQ2RGIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50L2Rhc2hib2FyZC9kYXNoYm9hcmQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIud29ya2luZy1hcmVhIHtcbiAgbWFyZ2luOiAwcHggMHB4IDBweCAwcHggIWltcG9ydGFudDtcbiAgbWluLWhlaWdodDogMTAwdmg7XG59XG5cbi8vZGFzaGJvYXJkIGNzc1xuLmRhc2hib2FyZCB7XG4gIHBhZGRpbmctdG9wOiAxMjBweDtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgaDMge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAuZ3J0aCB7XG4gICAgcGFkZGluZzogNXB4IDVweCA1cHggMHB4O1xuICB9XG59XG5cbi5wLWItOCB7XG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XG59XG5cbi5wLWItMyB7XG4gIHBhZGRpbmctYm90dG9tOiAzcHg7XG59XG5cbi5wLXQtNSB7XG4gIHBhZGRpbmctdG9wOiA1cHg7XG59XG5cbi5wLXQtMTMge1xuICBwYWRkaW5nLXRvcDogMTNweDtcbn1cblxuLm0tMCB7XG4gIG1hcmdpbjogMHB4O1xufVxuXG5ociB7XG4gIHdpZHRoOiAxMDAlO1xuICBvcGFjaXR5OiAwLjU7XG4gIG1hcmdpbi1ib3R0b206IDE1cHggIWltcG9ydGFudDtcbn1cblxuLmRldGFpbC1jYXJkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgcGFkZGluZzogNXB4O1xuICBib3gtc2hhZG93OiAwIDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMXB4IDFweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgMXB4IDNweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5kZXRhaWwtY2FyZCB7XG4gIC5oZWFkLWNyZCB7XG4gICAgbWFyZ2luLXRvcDogMTVweDtcbiAgfVxuICAuaW5kaWNhdG9yIHtcbiAgICBtYXJnaW4tbGVmdDogMHB4O1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gIH1cbn1cblxuLmRldGFpbC1jYXJkMSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIHBhZGRpbmc6IDVweDtcbiAgYm94LXNoYWRvdzogMCAycHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDFweCAxcHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDFweCAzcHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4uZGV0YWlsLWNhcmQxIC5pbmRpY2F0b3Ige1xuICBtYXJnaW4tbGVmdDogNXB4O1xufVxuXG4uY291bnQge1xuICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5jb3VudDEge1xuICBmb250LXNpemU6IDE2cHggIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5jb3VudDIge1xuICBmb250LXNpemU6IDE4cHggIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbnAge1xuICBmb250LXNpemU6IDExcHggIWltcG9ydGFudDtcbiAgbWFyZ2luOiAzcHg7XG59XG5cbi5jb2xvci1yZWQge1xuICBjb2xvcjogI2U2NDI0Mztcbn1cblxuLmNvbG9yLW52LWJsdWUge1xuICBjb2xvcjogIzJlMzY2ODtcbn1cblxuLmNvbG9yLWxnLWJsdWUge1xuICBjb2xvcjogIzQ4MzRkNDtcbn1cblxuLmNvbG9yLWJsdWUge1xuICBjb2xvcjogIzU3NThiYjtcbn1cblxuLmNvbG9yLWxnLXNreSB7XG4gIGNvbG9yOiAjNTdhZWVmO1xufVxuXG4uY29sb3ItZC1za3kge1xuICBjb2xvcjogIzNmNzI5ZDtcbn1cblxuLmNvbG9yLWdybiB7XG4gIGNvbG9yOiAjNTRiMTU3O1xufVxuXG4uaW5kaWNhdG9yIHtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjMmUzNjY4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHBhZGRpbmc6IDVweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBjb2xvcjogIzJlMzY2ODtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubGFiZWwge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi8vY2hhcnQgY3NzXG4uY2hhcnQtY29udGFpbmVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDBweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwcHggMTBweCAhaW1wb3J0YW50O1xufVxuXG4uZGV0YWlsLWNhcmQgOjpuZy1kZWVwIC5tYXQtdGFiLWxhYmVsIHtcbiAgaGVpZ2h0OiAyNXB4O1xuICBwYWRkaW5nOiAwIDhweDtcbiAgbWluLXdpZHRoOiA5NXB4O1xuICBmb250LXNpemU6IDEzcHg7XG59XG5cbi5jaGFydGpzLXJlbmRlci1tb25pdG9yIHtcbiAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG59XG5cbi8vY3VzdG9tIGNhbGVuZGVyXG4uZXhhbXBsZS1tb250aC1waWNrZXIgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5leGFtcGxlLW1vbnRoLXBpY2tlciAubWF0LWNhbGVuZGFyLWFycm93IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmRhdGVGaWVsZCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uaGVhZGluZyB7XG4gIC8vcGFkZGluZy10b3A6IDIwcHg7XG4gIC8vIGZvbnQtc2l6ZTogMTZweDtcbiAgLy8gZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIC8vIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLy8gbWFyZ2luLXRvcDogMThweDtcbiAgLmluZGljYXRvciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDEwOXB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgcGFkZGluZzogM3B4O1xuICAgIGJvdHRvbTogMjBweDtcbiAgfVxufVxuXG4uYWxlcnQge1xuICAvL3BhZGRpbmctdG9wOiAyMHB4O1xuICBmb250LXNpemU6IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vL2N1c3RvbSBtYXQtc2VsZWN0XG4jZGF0ZUZpZWxkIDo6bmctZGVlcCBpbnB1dC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gIG1hcmdpbi10b3A6IDNweDtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xufVxuXG4jZGF0ZUZpZWxkIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtc3VmZml4IHtcbiAgcmlnaHQ6IDBweDtcbiAgdG9wOiAwcHg7XG59XG5cbiNkYXRlRmllbGQgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZCB7XG4gIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xufVxuXG4jZGF0ZUZpZWxkIDo6bmctZGVlcCAubWF0LWRhdGVwaWNrZXItdG9nZ2xlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMHB4O1xuICB0b3A6IC0xNnB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBwYWRkaW5nOiAwO1xuICBoZWlnaHQ6IDIwcHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQge1xuICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0IHtcbiAgcGFkZGluZzogM3B4IDBweDtcbiAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdmFsdWUge1xuICB3aWR0aDogOTAlO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIge1xuICB0b3A6IDA7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRvcDogMDtcbiAgbWFyZ2luLXRvcDogM3B4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xuICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcbn1cblxuLmZpbHRlcjM6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBwYWRkaW5nOiAwO1xuICBoZWlnaHQ6IDIwcHg7XG4gIHdpZHRoOiAxMDBweCAhaW1wb3J0YW50O1xuICBtYXJnaW4tdG9wOiAxN3B4O1xufVxuXG4uZmlsdGVyMyA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkIHtcbiAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5maWx0ZXIzIDo6bmctZGVlcCAubWF0LXNlbGVjdCB7XG4gIHBhZGRpbmc6IDNweCAwcHg7XG4gIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xufVxuXG4uZmlsdGVyMyA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gIHBhZGRpbmctbGVmdDogOHB4O1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmZpbHRlcjMgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5maWx0ZXIzIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gIHRvcDogMDtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMyA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjMgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZmlsdGVyMyA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdG9wOiAwO1xuICBtYXJnaW4tdG9wOiAzcHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gIGZvbnQtc2l6ZTogMTZweCAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogYm9sZCAhaW1wb3J0YW50O1xufVxuXG4uZmlsdGVyLWxhYmVsIHtcbiAgZm9udDogQm9sZCAxNHB4IFJvYm90bztcbiAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgY29sb3I6ICMzYzNjM2M7XG4gIG9wYWNpdHk6IDE7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cbi5kYXRlRmlsdGVyIHtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBwYWRkaW5nOiAwO1xuICBoZWlnaHQ6IDIwcHg7XG59XG5cbi8va3BpIGNzc1xuLmtwaSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZGVkZWQ7XG4gIHBhZGRpbmctdG9wOiAxMDVweDtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgaDMge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAuaGVhZGluZyB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gIH1cbn1cblxuLmtwaS1jaGFydCB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBwYWRkaW5nOiA1cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgcGFkZGluZzogMHB4IDEwcHg7XG4gIH1cbiAgLmNoYXJ0anMtcmVuZGVyLW1vbml0b3Ige1xuICAgIGhlaWdodDogNjBweCAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5rcGktY2hydC1oZWFkIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW46IDBweDtcbiAgLmhlYWRpbmcta3BpIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgY29sb3I6IGJsYWNrO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgcGFkZGluZy10b3A6IDVweDtcbiAgfVxuICAuc3RhdGUge1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICB9XG59XG5cbi5maWx0ZXItbGFiZWwtZGF0ZSB7XG4gIGZvbnQ6IDEycHggUm9ib3RvO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICBjb2xvcjogIzNjM2MzYztcbiAgb3BhY2l0eTogMTtcbiAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICBwYWRkaW5nOiAxcHggMHB4IDBweDtcbn1cblxuLnNlYXJjaGZpbHRlciB7XG4gIHdpZHRoOiAyMDBweDtcbiAgaGVpZ2h0OiAzMHB4O1xuICBtYXJnaW4tbGVmdDogMTBweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBib3JkZXI6IDA7XG59XG5cbi5pbmRpY2F0b3IxIHtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICBwYWRkaW5nOiA1cHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgY29sb3I6ICMyZTM2Njg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmZpbHRlci1tYXJnaW4ge1xuICBtYXJnaW4tdG9wOiAyMHB4O1xufVxuXG4ua3BpY2FyZC1maWx0ZXIge1xuICBtYXJnaW4tdG9wOiAxM3B4O1xufVxuXG4ua3BpY2FyZC1idXR0b24ge1xuICBtYXJnaW4tdG9wOiAxNHB4O1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG59XG5cbi5jYWxlbmRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGlucHV0IHtcbiAgICB3aWR0aDogOTUlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheSAhaW1wb3J0YW50O1xuICAgIC8vYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBoZWlnaHQ6IDE4cHg7XG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gIH1cbn1cblxuLmNhbGFuZGVyLWJ0biB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDhweDtcbiAgdG9wOiAycHg7XG59XG5cbi5leGNlbC1pY29uIHtcbiAgd2lkdGg6IDI1cHg7XG4gIGhlaWdodDogMjVweDtcbiAgbWFyZ2luLXRvcDogMTRweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uZmlsdGVyQnV0dG9uIHtcbiAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0Q7XG4gIGhlaWdodDogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDEwcHg7XG4gIG1hcmdpbi10b3A6IDE4cHg7XG59XG4iLCIud29ya2luZy1hcmVhIHtcbiAgbWFyZ2luOiAwcHggMHB4IDBweCAwcHggIWltcG9ydGFudDtcbiAgbWluLWhlaWdodDogMTAwdmg7XG59XG5cbi5kYXNoYm9hcmQge1xuICBwYWRkaW5nLXRvcDogMTIwcHg7XG4gIHBhZGRpbmctbGVmdDogMjBweDtcbiAgcGFkZGluZy1ib3R0b206IDIwcHg7XG59XG4uZGFzaGJvYXJkIGgzIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmRhc2hib2FyZCAuZ3J0aCB7XG4gIHBhZGRpbmc6IDVweCA1cHggNXB4IDBweDtcbn1cblxuLnAtYi04IHtcbiAgcGFkZGluZy1ib3R0b206IDhweDtcbn1cblxuLnAtYi0zIHtcbiAgcGFkZGluZy1ib3R0b206IDNweDtcbn1cblxuLnAtdC01IHtcbiAgcGFkZGluZy10b3A6IDVweDtcbn1cblxuLnAtdC0xMyB7XG4gIHBhZGRpbmctdG9wOiAxM3B4O1xufVxuXG4ubS0wIHtcbiAgbWFyZ2luOiAwcHg7XG59XG5cbmhyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG9wYWNpdHk6IDAuNTtcbiAgbWFyZ2luLWJvdHRvbTogMTVweCAhaW1wb3J0YW50O1xufVxuXG4uZGV0YWlsLWNhcmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBwYWRkaW5nOiA1cHg7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDFweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMCAxcHggMXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAxcHggM3B4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLmRldGFpbC1jYXJkIC5oZWFkLWNyZCB7XG4gIG1hcmdpbi10b3A6IDE1cHg7XG59XG4uZGV0YWlsLWNhcmQgLmluZGljYXRvciB7XG4gIG1hcmdpbi1sZWZ0OiAwcHg7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG59XG5cbi5kZXRhaWwtY2FyZDEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBwYWRkaW5nOiA1cHg7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDFweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMCAxcHggMXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAxcHggM3B4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLmRldGFpbC1jYXJkMSAuaW5kaWNhdG9yIHtcbiAgbWFyZ2luLWxlZnQ6IDVweDtcbn1cblxuLmNvdW50IHtcbiAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uY291bnQxIHtcbiAgZm9udC1zaXplOiAxNnB4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uY291bnQyIHtcbiAgZm9udC1zaXplOiAxOHB4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG5wIHtcbiAgZm9udC1zaXplOiAxMXB4ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogM3B4O1xufVxuXG4uY29sb3ItcmVkIHtcbiAgY29sb3I6ICNlNjQyNDM7XG59XG5cbi5jb2xvci1udi1ibHVlIHtcbiAgY29sb3I6ICMyZTM2Njg7XG59XG5cbi5jb2xvci1sZy1ibHVlIHtcbiAgY29sb3I6ICM0ODM0ZDQ7XG59XG5cbi5jb2xvci1ibHVlIHtcbiAgY29sb3I6ICM1NzU4YmI7XG59XG5cbi5jb2xvci1sZy1za3kge1xuICBjb2xvcjogIzU3YWVlZjtcbn1cblxuLmNvbG9yLWQtc2t5IHtcbiAgY29sb3I6ICMzZjcyOWQ7XG59XG5cbi5jb2xvci1ncm4ge1xuICBjb2xvcjogIzU0YjE1Nztcbn1cblxuLmluZGljYXRvciB7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgIzJlMzY2ODtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBwYWRkaW5nOiA1cHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgY29sb3I6ICMyZTM2Njg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmxhYmVsIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uY2hhcnQtY29udGFpbmVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDBweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwcHggMTBweCAhaW1wb3J0YW50O1xufVxuXG4uZGV0YWlsLWNhcmQgOjpuZy1kZWVwIC5tYXQtdGFiLWxhYmVsIHtcbiAgaGVpZ2h0OiAyNXB4O1xuICBwYWRkaW5nOiAwIDhweDtcbiAgbWluLXdpZHRoOiA5NXB4O1xuICBmb250LXNpemU6IDEzcHg7XG59XG5cbi5jaGFydGpzLXJlbmRlci1tb25pdG9yIHtcbiAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG59XG5cbi5leGFtcGxlLW1vbnRoLXBpY2tlciAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b24ge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmV4YW1wbGUtbW9udGgtcGlja2VyIC5tYXQtY2FsZW5kYXItYXJyb3cge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZGF0ZUZpZWxkIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5oZWFkaW5nIC5pbmRpY2F0b3Ige1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDEwOXB4O1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBwYWRkaW5nOiAzcHg7XG4gIGJvdHRvbTogMjBweDtcbn1cblxuLmFsZXJ0IHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuI2RhdGVGaWVsZCA6Om5nLWRlZXAgaW5wdXQubWF0LWlucHV0LWVsZW1lbnQge1xuICBtYXJnaW4tdG9wOiAzcHg7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xuICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcbn1cblxuI2RhdGVGaWVsZCA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCB7XG4gIHJpZ2h0OiAwcHg7XG4gIHRvcDogMHB4O1xufVxuXG4jZGF0ZUZpZWxkIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQge1xuICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcbn1cblxuI2RhdGVGaWVsZCA6Om5nLWRlZXAgLm1hdC1kYXRlcGlja2VyLXRvZ2dsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDBweDtcbiAgdG9wOiAtMTZweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgcGFkZGluZzogMDtcbiAgaGVpZ2h0OiAyMHB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkIHtcbiAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdCB7XG4gIHBhZGRpbmc6IDNweCAwcHg7XG4gIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gIHBhZGRpbmctbGVmdDogOHB4O1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgd2lkdGg6IDkwJTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIHtcbiAgdG9wOiAwO1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0b3A6IDA7XG4gIG1hcmdpbi10b3A6IDNweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5maWx0ZXIzOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgcGFkZGluZzogMDtcbiAgaGVpZ2h0OiAyMHB4O1xuICB3aWR0aDogMTAwcHggIWltcG9ydGFudDtcbiAgbWFyZ2luLXRvcDogMTdweDtcbn1cblxuLmZpbHRlcjMgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZCB7XG4gIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xufVxuXG4uZmlsdGVyMyA6Om5nLWRlZXAgLm1hdC1zZWxlY3Qge1xuICBwYWRkaW5nOiAzcHggMHB4O1xuICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcbn1cblxuLmZpbHRlcjMgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5maWx0ZXIzIDo6bmctZGVlcCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uZmlsdGVyMyA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIge1xuICB0b3A6IDA7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjMgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXIzIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmZpbHRlcjMgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRvcDogMDtcbiAgbWFyZ2luLXRvcDogM3B4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xuICBmb250LXNpemU6IDE2cHggIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQgIWltcG9ydGFudDtcbn1cblxuLmZpbHRlci1sYWJlbCB7XG4gIGZvbnQ6IEJvbGQgMTRweCBSb2JvdG87XG4gIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gIGNvbG9yOiAjM2MzYzNjO1xuICBvcGFjaXR5OiAxO1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG5cbi5kYXRlRmlsdGVyIHtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBwYWRkaW5nOiAwO1xuICBoZWlnaHQ6IDIwcHg7XG59XG5cbi5rcGkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWRlZGVkO1xuICBwYWRkaW5nLXRvcDogMTA1cHg7XG4gIHBhZGRpbmctbGVmdDogMjBweDtcbiAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgcGFkZGluZy1ib3R0b206IDIwcHg7XG59XG4ua3BpIGgzIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmtwaSAuaGVhZGluZyB7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbiAgbWFyZ2luLXRvcDogMTBweDtcbn1cblxuLmtwaS1jaGFydCB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBwYWRkaW5nOiA1cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5rcGktY2hhcnQgLmNoYXJ0LWNvbnRhaW5lciB7XG4gIHBhZGRpbmc6IDBweCAxMHB4O1xufVxuLmtwaS1jaGFydCAuY2hhcnRqcy1yZW5kZXItbW9uaXRvciB7XG4gIGhlaWdodDogNjBweCAhaW1wb3J0YW50O1xufVxuXG4ua3BpLWNocnQtaGVhZCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luOiAwcHg7XG59XG4ua3BpLWNocnQtaGVhZCAuaGVhZGluZy1rcGkge1xuICBmb250LXNpemU6IDEzcHg7XG4gIGNvbG9yOiBibGFjaztcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgcGFkZGluZy10b3A6IDVweDtcbn1cbi5rcGktY2hydC1oZWFkIC5zdGF0ZSB7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgcGFkZGluZy10b3A6IDEwcHg7XG59XG5cbi5maWx0ZXItbGFiZWwtZGF0ZSB7XG4gIGZvbnQ6IDEycHggUm9ib3RvO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICBjb2xvcjogIzNjM2MzYztcbiAgb3BhY2l0eTogMTtcbiAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICBwYWRkaW5nOiAxcHggMHB4IDBweDtcbn1cblxuLnNlYXJjaGZpbHRlciB7XG4gIHdpZHRoOiAyMDBweDtcbiAgaGVpZ2h0OiAzMHB4O1xuICBtYXJnaW4tbGVmdDogMTBweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBib3JkZXI6IDA7XG59XG5cbi5pbmRpY2F0b3IxIHtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICBwYWRkaW5nOiA1cHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgY29sb3I6ICMyZTM2Njg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmZpbHRlci1tYXJnaW4ge1xuICBtYXJnaW4tdG9wOiAyMHB4O1xufVxuXG4ua3BpY2FyZC1maWx0ZXIge1xuICBtYXJnaW4tdG9wOiAxM3B4O1xufVxuXG4ua3BpY2FyZC1idXR0b24ge1xuICBtYXJnaW4tdG9wOiAxNHB4O1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG59XG5cbi5jYWxlbmRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG4uY2FsZW5kZXIgaW5wdXQge1xuICB3aWR0aDogOTUlO1xuICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXkgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBoZWlnaHQ6IDE4cHg7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xufVxuXG4uY2FsYW5kZXItYnRuIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogOHB4O1xuICB0b3A6IDJweDtcbn1cblxuLmV4Y2VsLWljb24ge1xuICB3aWR0aDogMjVweDtcbiAgaGVpZ2h0OiAyNXB4O1xuICBtYXJnaW4tdG9wOiAxNHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5maWx0ZXJCdXR0b24ge1xuICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBsaW5lLWhlaWdodDogMTBweDtcbiAgbWFyZ2luLXRvcDogMThweDtcbn0iXX0= */\"","import { Component, OnInit, ChangeDetectionStrategy, ViewChild } from '@angular/core';\nimport { FormControl, Validators, FormGroup, FormBuilder } from '@angular/forms';\nimport { MomentDateAdapter, MAT_MOMENT_DATE_ADAPTER_OPTIONS } from '@angular/material-moment-adapter';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE, MatOption } from '@angular/material/core';\nimport { MatDatepicker } from '@angular/material/datepicker';\nimport { ChartOptions, ChartType, ChartDataSets } from 'chart.js';\nimport { Label } from 'ng2-charts';\nimport { ToastrService } from \"ngx-toastr\";\nimport { CommonService } from \"../../core/service/common-service/common.service\";\nimport { ExampleHeader } from './custom-header-cal/custom-header.component';\n\nimport * as _moment from 'moment';\n// tslint:disable-next-line:no-duplicate-imports\nimport { default as _rollupMoment, Moment } from 'moment';\nimport { ChartDialogComponent } from 'src/app/modal/chart-dialog/chart-dialog.component';\nimport { MatDialog } from '@angular/material';\nimport { ServiceBreakDialogComponent } from 'src/app/modal/service-break-dialog/service-break-dialog.component';\nimport { Router } from '@angular/router';\nimport { DatePipe } from '@angular/common';\nimport {MatMonthView} from '@angular/material/datepicker';\nimport { element } from 'protractor';\n\nconst moment = _rollupMoment || _moment;\n\nexport const MY_FORMATS = {\n parse: {\n dateInput: 'MMM/YYYY',\n },\n display: {\n dateInput: 'MMM/YYYY',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n },\n};\n\n@Component({\n selector: 'app-dashboard',\n templateUrl: './dashboard.component.html',\n styleUrls: ['./dashboard.component.scss'],\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS]\n },\n\n { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },\n ]\n})\n\nexport class DashboardComponent implements OnInit {\n\n @ViewChild('allSelectedService', { static: true }) private allSelectedService: MatOption;\n\n selectService: any;\n exampleHeader = ExampleHeader;\n date = new FormControl(moment());\n selectedDate: any;\n minDate: any = new Date();\n maxDate: any = new Date();\n spinner: boolean;\n filtersWorkshop: any = [];\n filtersCre: string[] = [];\n selectedWorkShop: string[] = [];\n userId: string;\n userInfo: any;\n selectedCre: string[] = [];\n serviceType:string = \"\";\n updateChart: boolean = false;\n updateChartCard: boolean = false;\n //line-char\n callCoverage: any = [];\n selectedCallCoverage: any = {};\n avgCall: any = [];\n selectedAvgCall: any = {};\n successReminder: any = [];\n selectedSuccessReminder: any = {};\n successVisit: any = [];\n selectedSuccessVisit: any = {};\n successNoShow: any = [];\n selectedSuccessNoShow: any = {};\n lostConversion: any = [];\n selectedLostConversion: any = {};\n overAllConversion: any = [];\n selectedOverAllConversion: any = {};\n bookingRate: any = [];\n selectedBookingRate: any = {};\n perCallConversion: any = [];\n selectedPerCallConversion: any = {};\n services: any = [\n {key: \"1\", value: \"ECS - Early Care Service\"},\n {key: \"2\", value: \"FS - Free Service\"},\n {key: \"3\", value: \"PMS - Preventive Maintenance Service\"},\n {key: \"4\", value: \"Technical Campaign Order\"},\n {key: \"7\", value: \"Fault Code\"},\n {key: \"6\", value: \"Wheel Alignment\"},\n {key: \"8\", value: \"PMS BS-6\"},\n {key: \"9\", value: \"Running Repair\"},\n {key: \"10\", value: \"PBBI - Post Body Building Inspection\"}\n ];\n //hr-bar\n allocated: any = {};\n attempted: any = {};\n notAttempted: any = {};\n contacted: any = {};\n notContacted: any = {};\n booking: any = {};\n converted: any = {};\n activeBooking: any = {};\n contactedNoService: any = {};\n contactedFollowup: any = {};\n connectedSystemClose: any = {};\n bookingFollowup: any = {};\n bookingNoService: any = {};\n bookingSystemClose: any = {};\n noResponse: any = {};\n busy: any = {};\n switchOff: any = {};\n invalid: any = {};\n others: any = {};\n followup: any = {};\n followup1: any = {};\n followup2: any = {};\n uniqueWorkshop: string[] = [];\n uniqueWorkshopCopy: string[] = [];\n uniqueWorkshopCard: string[] = [];\n uniqueWorkshopCardCopy: string[] = [];\n selectedDealer: any;\n selectedCardDealer: any;\n filtersCreCopy: string[] = [];\n selectedCreCode: any;\n dealerCode: string[] = [];\n dealerCodeCard: string[] = [];\n creCode: string[] = [];\n today: Date = new Date();\n toDate: Date = new Date();\n fromDate: Date = new Date();\n selectAllService: boolean;\n availableDashboard:string[]=[];\n selectedDashboard:any\n\n\n bFollowup1: any = {};\n bFollowup2: any = {};\n bFollowup3: any = {};\n\n systemClose: any = {};\n noService: any = {};\n notConverted: any = {};\n noShow: any = {};\n\n //connected bar\n wrongOdo: any = {};\n alreadyService: any = {};\n vehicleSold: any = {};\n disPreviousSer: any = {};\n distanceDealer: any = {};\n disSales: any = {};\n contactedOthers: any = {};\n disInsurance: any = {};\n custNotInterested: any = {};\n dnd: any = {};\n\n //booking bar\n bWrongOdo: any = {};\n bAlreadyService: any = {};\n bVehicleSold: any = {};\n bDisPreviousSer: any = {};\n bDistanceDealer: any = {};\n bDisSales: any = {};\n bookingOthers: any = {};\n bDisInsurance: any = {};\n bCustNotInterested: any = {};\n bDnd: any = {};\n\n //follow-reason\n sameDay: any = {};\n eventual: any = {};\n\n //service-breakup\n allocatedServiceBreak: any[] = [];\n attemptedServiceBreak: any[] = [];\n connectedServiceBreak: any[] = [];\n bookingServiceBreak: any[] = [];\n AttemptedAchievement: number;\n ContactedAchievement: any;\n BookingsAchievement: any;\n selectedKpiCardWorkShop: string[] = [];\n minEndDate: any = new Date();\n\n\n //horizontalBarChart1 horizontalBar start\n public horizontalBarChart1Options: ChartOptions = {\n responsive: true,\n title: { display: false },\n tooltips: {\n enabled: false,\n mode: 'single',\n position: 'nearest',\n caretSize: 2,\n bodyAlign: 'center',\n titleAlign: 'center',\n titleFontSize: 11,\n titleFontStyle: 'normal',\n bodyFontSize: 11,\n bodyFontStyle: 'normal'\n },\n scales: {\n xAxes: [{\n display: false, ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n yAxes: [{\n display: false, ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n }\n };\n public horizontalBarChart1Labels: Label[] = ['Attempted'];\n public horizontalBarChartType: ChartType = 'horizontalBar';\n public horizontalBarChartLegend = false;\n public horizontalBarChartPlugins = [];\n public horizontalBarChart1Data: ChartDataSets[] = [];\n //horizontalBarChart1 horizontalBar end\n\n //horizontalBarChart2 horizontalBar start\n public horizontalBarChart2Labels: Label[] = ['Connected'];\n public horizontalBarChart2Options: ChartOptions = {\n responsive: true,\n title: { display: false },\n tooltips: {\n enabled: false,\n mode: 'single',\n position: 'nearest',\n caretSize: 2,\n bodyAlign: 'center',\n titleAlign: 'center',\n titleFontSize: 11,\n titleFontStyle: 'normal',\n bodyFontSize: 11,\n bodyFontStyle: 'normal'\n },\n scales: {\n xAxes: [{\n display: false, ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n yAxes: [{\n display: false, ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n }\n };\n public horizontalBarChart2Data: ChartDataSets[] = [];\n //horizontalBarChart2 horizontalBar end\n\n //horizontalBarChart3 horizontalBar start\n public horizontalBarChart3Labels: Label[] = ['Bookings'];\n public horizontalBarChart3Options: ChartOptions = {\n responsive: true,\n title: { display: false },\n tooltips: {\n enabled: false,\n mode: 'single',\n position: 'nearest',\n caretSize: 2,\n bodyAlign: 'center',\n titleAlign: 'center',\n titleFontSize: 11,\n titleFontStyle: 'normal',\n bodyFontSize: 11,\n bodyFontStyle: 'normal'\n },\n scales: {\n xAxes: [{\n display: false, ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n yAxes: [{\n display: false, ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n }\n };\n public horizontalBarChart3Data: ChartDataSets[] = [];\n //horizontalBarChart3 horizontalBar end\n\n //horizontalBarChart4 horizontalBar start\n public horizontalBarChart4Options: ChartOptions = {\n responsive: true,\n title: { display: false },\n tooltips: {\n enabled: true,\n mode: 'single',\n position: 'nearest',\n caretSize: 2,\n bodyAlign: 'center',\n titleAlign: 'center',\n displayColors: false,\n titleFontSize: 11,\n titleFontStyle: 'normal',\n bodyFontSize: 11,\n bodyFontStyle: 'normal'\n },\n scales: {\n xAxes: [{\n display: false, ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n yAxes: [{\n display: true,\n gridLines: { display: false },\n scaleLabel: { display: true },\n ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n }\n };\n public horizontalBarChart4Labels: Label[] = [\n 'Wrong Odometer Prediction',\n \"Already Serviced\",\n \"Vehicle Sold\",\n \"Dissatisfied With Previous Service\",\n \"Distance From Dealer Location\",\n \"Dissatisfaction With Sales\",\n \"Dissatisfaction With Insurance\",\n \"Other\",\n \"Customer Not Interested\",\n \"Do Not Call This Customer In Future\"\n ];\n public horizontalBarChart4Data: ChartDataSets[] = [];\n //horizontalBarChart4 horizontalBar end\n public horizontalBarChart5Options: ChartOptions = {\n responsive: true,\n title: { display: false },\n tooltips: {\n enabled: true,\n mode: 'single',\n position: 'nearest',\n caretSize: 2,\n bodyAlign: 'center',\n titleAlign: 'center',\n displayColors: false,\n titleFontSize: 11,\n titleFontStyle: 'normal',\n bodyFontSize: 11,\n bodyFontStyle: 'normal'\n },\n scales: {\n xAxes: [{\n display: false, ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n yAxes: [{\n display: true,\n gridLines: { display: false },\n scaleLabel: { display: true },\n ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n }\n };\n public horizontalBarChart5Data: ChartDataSets[] = [];\n\n //horizontalBarChart6 horizontalBar start\n public horizontalBarChart6Options: ChartOptions = {\n responsive: true,\n title: { display: false },\n tooltips: {\n enabled: true,\n mode: 'single',\n position: 'nearest',\n caretSize: 2,\n bodyAlign: 'center',\n titleAlign: 'center',\n displayColors: false,\n titleFontSize: 11,\n titleFontStyle: 'normal',\n bodyFontSize: 11,\n bodyFontStyle: 'normal'\n },\n scales: {\n xAxes: [{\n display: false, ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n yAxes: [{\n display: true,\n gridLines: { display: false },\n scaleLabel: { display: true },\n ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n }\n };\n public horizontalBarChart6Labels: Label[] = [\n 'Call Later',\n \"Cancel Booking And Call Later\",\n ];\n public horizontalBarChart6Data: ChartDataSets[] = [];\n //horizontalBarChart6 horizontalBar end\n\n //horizontalBarChart7 horizontalBar start\n public horizontalBarChart7Options: ChartOptions = {\n responsive: true,\n title: { display: false },\n tooltips: {\n enabled: true,\n mode: 'single',\n position: 'nearest',\n caretSize: 2,\n bodyAlign: 'center',\n titleAlign: 'center',\n displayColors: false,\n titleFontSize: 11,\n titleFontStyle: 'normal',\n bodyFontSize: 11,\n bodyFontStyle: 'normal'\n },\n scales: {\n xAxes: [{\n display: false, ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n yAxes: [{\n display: true,\n gridLines: { display: false },\n scaleLabel: { display: true },\n ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n }\n };\n public horizontalBarChart7Labels: Label[] = [\n 'Follow Up',\n 'Contact Fleet Manager',\n ];\n public horizontalBarChart7Data: ChartDataSets[] = [];\n //horizontalBarChart7 horizontalBar end\n\n //horizontalBarChart8 horizontalBar start\n public horizontalBarChart8Options: ChartOptions = {\n responsive: true,\n title: { display: false },\n tooltips: {\n enabled: true,\n mode: 'single',\n position: 'nearest',\n caretSize: 2,\n bodyAlign: 'center',\n titleAlign: 'center',\n displayColors: false,\n titleFontSize: 11,\n titleFontStyle: 'normal',\n bodyFontSize: 11,\n bodyFontStyle: 'normal'\n },\n scales: {\n xAxes: [{\n display: false, ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n yAxes: [{\n display: true,\n gridLines: { display: false },\n scaleLabel: { display: true },\n ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n }\n };\n public horizontalBarChart8Labels: Label[] = [\n 'Call Later',\n 'Contact Fleet Manager',\n 'Cancel Booking'\n ];\n public horizontalBarChart8Data: ChartDataSets[] = [];\n //horizontalBarChart8 horizontalBar end\n\n //barChart1 VerticalBar start\n public barChart1Options: ChartOptions = {\n responsive: true,\n title: {\n display: true,\n text: 'Not Contacted Reason',\n position: 'top',\n fontSize: 13\n },\n tooltips: {\n enabled: true,\n mode: 'single',\n position: 'nearest',\n caretSize: 2,\n bodyAlign: 'center',\n titleAlign: 'center',\n displayColors: false,\n titleFontSize: 11,\n titleFontStyle: 'normal',\n bodyFontSize: 11,\n bodyFontStyle: 'normal'\n },\n scales: {\n xAxes: [{\n display: true,\n gridLines: {\n display: false,\n },\n scaleLabel: {\n display: true,\n },\n ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n yAxes: [{\n display: false,\n ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n }\n };\n public barChart1Labels: Label[] = ['No Response', 'Busy', 'Switched Off', 'Invalid No.', 'Others'];\n public barChart1Type: ChartType = 'bar';\n public barChart1Legend = false;\n public barChart1Plugins = [];\n public barChart1Data: ChartDataSets[] = [];\n //barChart1 VerticalBar end\n\n //barChart2 VerticalBar start\n public barChart2Options: ChartOptions = {\n responsive: true,\n title: {\n display: true,\n text: 'Conversion',\n position: 'top',\n fontSize: 13\n },\n tooltips: {\n enabled: true,\n mode: 'single',\n position: 'nearest',\n caretSize: 2,\n bodyAlign: 'center',\n titleAlign: 'center',\n displayColors: false,\n titleFontSize: 11,\n titleFontStyle: 'normal',\n bodyFontSize: 11,\n bodyFontStyle: 'normal'\n },\n scales: {\n xAxes: [{\n display: true,\n gridLines: {\n display: false,\n },\n scaleLabel: {\n display: true,\n },\n ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n yAxes: [{\n display: false,\n ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n }\n };\n public barChart2Labels: Label[] = ['Same Day', 'Eventual'];\n public barChart2Type: ChartType = 'bar';\n public barChart2Legend = false;\n public barChart2Plugins = [];\n public barChart2Data: ChartDataSets[] = [];\n //barChart2 VerticalBar end\n\n //barChart6 horizontalBar start\n public barChart6Options: ChartOptions = {\n responsive: true,\n title: {\n display: false\n },\n tooltips: {\n enabled: true,\n mode: 'single',\n position: 'nearest',\n caretSize: 2,\n bodyAlign: 'center',\n titleAlign: 'center',\n displayColors: false,\n titleFontSize: 11,\n titleFontStyle: 'normal',\n bodyFontSize: 11,\n bodyFontStyle: 'normal'\n },\n scales: {\n xAxes: [{\n display: false,\n ticks: {\n beginAtZero: true,\n max: 15,\n fontSize: 11\n }\n }],\n yAxes: [{\n display: true,\n gridLines: {\n display: false,\n },\n scaleLabel: {\n display: true,\n },\n ticks: {\n beginAtZero: true,\n max: 15,\n fontSize: 11\n }\n }],\n }\n };\n public barChart6Labels: Label[] = ['R1', 'R2', 'R3', 'R4'];\n public barChart6Type: ChartType = 'horizontalBar';\n public barChart6Legend = false;\n public barChart6Plugins = [];\n\n public barChart6Data: ChartDataSets[] = [\n {\n data: [15, 10, 12, 6],\n backgroundColor: 'rgb(87, 174, 239)',\n hoverBackgroundColor: 'rgb(87, 174, 239)',\n borderSkipped: 'chartArea',\n barPercentage: 0.5,\n barThickness: 12,\n maxBarThickness: 12,\n minBarLength: 2\n }\n ];\n //barChart6 horizontalBar end\n\n //lineChart1 VerticalBar start\n public lineChartOptions: ChartOptions = {\n responsive: true,\n legend: {\n display: false\n },\n title: {\n display: false\n },\n tooltips: {\n enabled: false\n },\n scales: {\n xAxes: [{\n display: true,\n gridLines: {\n display: false,\n },\n scaleLabel: {\n display: false,\n },\n ticks: {\n beginAtZero: true,\n display: false,\n max: 30,\n fontSize: 11\n }\n }],\n yAxes: [{\n display: false,\n ticks: {\n beginAtZero: true,\n max: 15,\n fontSize: 11\n }\n }],\n },\n elements: {\n line: {\n fill: false,\n tension: 0.000001,\n },\n point: {\n radius: 0\n }\n }\n };\n public lineChartLabels: Label[] = ['1', '2', '3', '4'];\n public lineChartType: ChartType = 'line';\n public lineChartLegend = false;\n public lineChartPlugins = [];\n\n public lineChart1Data: ChartDataSets[] = [\n {\n data: [2, 10, 5, 8],\n borderColor: 'black',\n backgroundColor: '#ffffff',\n hoverBackgroundColor: '#ffffff',\n borderWidth: 1\n }\n ];\n //lineChart1 VerticalBar end\n\n constructor(private commonService: CommonService, private toastr: ToastrService, public dialog: MatDialog, private router: Router, private datePipe: DatePipe, private fb: FormBuilder) { }\n\n ngOnInit() {\n this.availableDashboard=[]\n if(localStorage.getItem('roleId') == \"1\"){\n this.availableDashboard.push(\"Dashboard\",\"Prs-Dashboard\")\n }\n if(localStorage.getItem('roleId') == \"12\"){\n this.availableDashboard.push(\"Prs-Dashboard\")\n }\n if(localStorage.getItem('roleId') == \"15\"){\n this.availableDashboard.push(\"Prs-Dashboard\")\n }\n\n if (localStorage.getItem('userId') == null || localStorage.getItem('userId') == undefined) {\n this.router.navigate(['login']);\n }\n\n let userInfo = JSON.parse(localStorage.getItem('userInfo'));\n this.userInfo = userInfo[0];\n this.userId = localStorage.getItem(\"userId\");\n this.filterDashboard();\n this.periodFilter();\n\n if (localStorage.getItem('workshops') == null || localStorage.getItem('workshops') == undefined) {\n this.getWorkshopDetails();\n }\n this.selectService = this.fb.group({\n selectServiceType: ['']\n });\n }\n\n /**\n * Name: getWorkshopDetails\n * purpose: To get CRE assigned workshop details\n */\n getWorkshopDetails() {\n this.spinner = true;\n this.commonService.getWorkshopDetails(this.userId)\n .subscribe(res => {\n if (res['responseCode'] == 0) {\n this.spinner = false;\n localStorage.setItem('workshops', JSON.stringify(res['responseData']));\n } else {\n this.spinner = false;\n //this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n chosenYearHandler(normalizedYear: Moment) {\n const ctrlValue = this.date.value;\n if(normalizedYear.year() == this.maxDate.getFullYear()) {\n ctrlValue.month(this.maxDate.getMonth());\n } else {\n ctrlValue.month(this.minDate.getMonth());\n }\n ctrlValue.year(normalizedYear.year());\n this.date.setValue(ctrlValue);\n }\n\n chosenMonthHandler(normalizedMonth: Moment, datepicker: MatDatepicker) {\n const ctrlValue = this.date.value;\n ctrlValue.month(normalizedMonth.month());\n ctrlValue.year(normalizedMonth.year());\n this.date.setValue(ctrlValue);\n datepicker.close();\n }\n\n reset() {\n this.selectedCre = [];\n this.selectedWorkShop = [];\n this.serviceType = \"\";\n let date = moment(this.maxDate);\n this.date.setValue(date);\n this.selectService.setValue({selectServiceType:''});\n this.today = new Date();\n this.toDate = new Date();\n this.fromDate = new Date();\n this.getDashboardKpi();\n }\n\n getChart(chartKpi: any) {\n this.dialog.open(ChartDialogComponent, {\n width: '600px',\n data: { kpi: chartKpi }\n });\n }\n\n getServiceBreak(serviceBreakup: any) {\n this.dialog.open(ServiceBreakDialogComponent, {\n width: '400px',\n data: { serviceBreak: serviceBreakup }\n });\n }\n\n resetResponse() {\n this.followup1 = {};\n this.followup2 = {};\n //booking followup\n this.bFollowup1 = {};\n this.bFollowup2 = {};\n this.bFollowup3 = {};\n //conversion\n this.sameDay = {};\n this.eventual = {};\n //not connected reason\n this.noResponse = {};\n this.busy = {};\n this.switchOff = {};\n this.invalid = {};\n this.others = {};\n //connected mo service\n this.wrongOdo = {};\n this.alreadyService = {};\n this.vehicleSold = {};\n this.disPreviousSer = {};\n this.distanceDealer = {};\n this.disInsurance = {};\n this.disSales = {};\n this.contactedOthers = {};\n this.custNotInterested = {};\n this.dnd = {};\n //booking no service\n this.bWrongOdo = {};\n this.bAlreadyService = {};\n this.bVehicleSold = {};\n this.bDisPreviousSer = {};\n this.bDistanceDealer = {};\n this.bDisInsurance = {};\n this.bDisSales = {};\n this.bookingOthers = {};\n this.bCustNotInterested = {};\n this.bDnd = {};\n this.barChart1Data = [];\n this.barChart2Data = [];\n this.horizontalBarChart4Data = [];\n this.horizontalBarChart5Data = [];\n this.horizontalBarChart7Data = [];\n this.horizontalBarChart8Data = [];\n }\n\n resetKpiCard() {\n this.callCoverage = [];\n this.selectedCallCoverage = {};\n\n this.avgCall = [];\n this.selectedAvgCall = {};\n\n this.successReminder = [];\n this.selectedSuccessReminder = {};\n\n this.successVisit = [];\n this.selectedSuccessVisit = {};\n\n this.successNoShow = [];\n this.selectedSuccessNoShow = {};\n\n this.lostConversion = [];\n this.selectedLostConversion = {};\n\n this.overAllConversion = [];\n this.selectedOverAllConversion = {};\n\n this.bookingRate = [];\n this.selectedBookingRate = {};\n\n this.perCallConversion = [];\n this.selectedPerCallConversion = {};\n }\n\n resetDashboard() {\n this.allocated = {};\n this.attempted = {};\n this.notAttempted = {};\n this.contacted = {};\n this.notContacted = {};\n this.booking = {};\n this.converted = {};\n this.activeBooking = {};\n this.contactedNoService = {};\n this.contactedFollowup = {};\n this.connectedSystemClose = {};\n this.bookingNoService = {};\n this.bookingFollowup = {};\n this.bookingSystemClose = {};\n this.horizontalBarChart1Data = [];\n this.horizontalBarChart2Data = [];\n this.horizontalBarChart3Data = [];\n this.horizontalBarChart7Data = [];\n this.horizontalBarChart4Data = [];\n this.barChart1Data = [];\n }\n\n /**\n * Name: getDashboardResponseKpi\n * purpose: To get service history\n */\n getDashboardResponseKpi(): void {\n this.spinner = true;\n this.updateChartCard = true;\n let selectedCre = '';\n this.selectedCre.forEach((element, index) => {\n if (index == 0) {\n selectedCre = element;\n } else {\n selectedCre = selectedCre + ',' + element;\n }\n });\n let selectedWorkShop = '';\n this.selectedWorkShop.forEach((element, index) => {\n if (index == 0) {\n selectedWorkShop = element.split(\" - \")[0];\n } else {\n selectedWorkShop = selectedWorkShop + ',' + element.split(\" - \")[0];\n }\n });\n\n let service = '';\n if(this.selectService.value.selectServiceType != \"\"){\n this.selectService.value.selectServiceType.forEach((element,index)=>{\n if(element == \"0\"){\n this.selectService.value.selectServiceType.splice(index,1);\n }\n });\n service = this.selectService.value.selectServiceType.toString();\n }\n\n const request = {\n \"userId\": this.userInfo.userId,\n \"roleId\": this.userInfo.roleId,\n \"creId\": selectedCre || '',\n \"workshopCode\": selectedWorkShop || '',\n \"service\": service ? service.toString() : '',\n \"startDate\": this.datePipe.transform(this.fromDate, \"yyyy-MM-dd\").toString(),\n \"endDate\": this.datePipe.transform(this.toDate, \"yyyy-MM-dd\").toString()\n };\n this.resetResponse();\n this.commonService.getDashboardResponseKpi(request).subscribe(\n res => {\n if (res[\"responseCode\"] == 0) {\n this.selectedDate = this.datePipe.transform(this.date.value['_d'], \"MMM yy\");\n res[\"responseData\"].forEach(kpi => {\n if (kpi.actualVal) {\n kpi.actualVal = Math.round(kpi.actualVal * 100 + Number.EPSILON) / 100;\n }\n if (kpi.growthRate) {\n kpi.growthRate = Math.round(kpi.growthRate * 100 + Number.EPSILON) / 100;\n }\n\n //conncted followup\n if (kpi.kpiCode == '202') {\n this.followup1 = kpi;\n }\n if (kpi.kpiCode == '203') {\n this.followup2 = kpi;\n }\n\n //booking followup\n if (kpi.kpiCode == '1-2') {\n this.bFollowup1 = kpi;\n }\n if (kpi.kpiCode == '1-3') {\n this.bFollowup2 = kpi;\n }\n if (kpi.kpiCode == '113') {\n this.bFollowup3 = kpi;\n }\n\n //conversion\n if (kpi.kpiCode == '111') {\n this.sameDay = kpi;\n }\n if (kpi.kpiCode == '222') {\n this.eventual = kpi;\n }\n\n //not connected reason\n if (kpi.kpiCode == '205') {\n this.noResponse = kpi;\n }\n if (kpi.kpiCode == '206') {\n this.busy = kpi;\n }\n if (kpi.kpiCode == '207') {\n this.switchOff = kpi;\n }\n if (kpi.kpiCode == '208') {\n this.invalid = kpi;\n }\n if (kpi.kpiCode == '209') {\n this.others = kpi;\n }\n\n //connected mo service\n if (kpi.kpiCode == '308') {\n this.wrongOdo = kpi;\n }\n if (kpi.kpiCode == '309') {\n this.alreadyService = kpi;\n }\n if (kpi.kpiCode == '310') {\n this.vehicleSold = kpi;\n }\n if (kpi.kpiCode == '311') {\n this.disPreviousSer = kpi;\n }\n if (kpi.kpiCode == '312') {\n this.distanceDealer = kpi;\n }\n if (kpi.kpiCode == '314') {\n this.disInsurance = kpi;\n }\n if (kpi.kpiCode == '313') {\n this.disSales = kpi;\n }\n if (kpi.kpiCode == '315') {\n this.contactedOthers = kpi;\n }\n if (kpi.kpiCode == '316') {\n this.custNotInterested = kpi;\n }\n if (kpi.kpiCode == '317') {\n this.dnd = kpi;\n }\n\n //booking no service\n if (kpi.kpiCode == '8-8') {\n this.bWrongOdo = kpi;\n }\n if (kpi.kpiCode == '8-9') {\n this.bAlreadyService = kpi;\n }\n if (kpi.kpiCode == '8-0') {\n this.bVehicleSold = kpi;\n }\n if (kpi.kpiCode == '8-1') {\n this.bDisPreviousSer = kpi;\n }\n if (kpi.kpiCode == '8-2') {\n this.bDistanceDealer = kpi;\n }\n if (kpi.kpiCode == '8-4') {\n this.bDisInsurance = kpi;\n }\n if (kpi.kpiCode == '8-3') {\n this.bDisSales = kpi;\n }\n if (kpi.kpiCode == '8-5') {\n this.bookingOthers = kpi;\n }\n if (kpi.kpiCode == '8-6') {\n this.bCustNotInterested = kpi;\n }\n if (kpi.kpiCode == '8-7') {\n this.bDnd = kpi;\n }\n });\n\n //barChart1 start not connected reason\n this.noResponse.actualVal = this.noResponse.actualVal || 0;\n this.busy.actualVal = this.busy.actualVal || 0;\n this.switchOff.actualVal = this.switchOff.actualVal || 0;\n this.invalid.actualVal = this.invalid.actualVal || 0;\n this.others.actualVal = this.others.actualVal || 0;\n let maxNotConnected = Math.max(this.noResponse.actualVal, this.busy.actualVal, this.switchOff.actualVal, this.invalid.actualVal, this.others.actualVal);\n if (maxNotConnected) {\n this.barChart1Options.scales.xAxes[0].ticks.max = maxNotConnected;\n this.barChart1Options.scales.yAxes[0].ticks.max = maxNotConnected;\n this.barChart1Data = [\n {\n data: [this.noResponse.actualVal, this.busy.actualVal, this.switchOff.actualVal, this.invalid.actualVal, this.others.actualVal],\n backgroundColor: 'rgb(87, 174, 239)',\n hoverBackgroundColor: 'rgb(87, 174, 239)',\n borderSkipped: 'chartArea',\n barPercentage: 0.5,\n barThickness: 20,\n maxBarThickness: 20,\n minBarLength: 2\n }\n ];\n }\n //barChart1 end\n\n //barChart1 start conversion\n this.sameDay.actualVal = this.sameDay.actualVal || 0;\n this.eventual.actualVal = this.eventual.actualVal || 0;\n if (this.sameDay.actualVal || this.eventual.actualVal) {\n this.barChart2Options.scales.xAxes[0].ticks.max = this.eventual.actualVal > this.sameDay.actualVal ? this.eventual.actualVal : this.sameDay.actualVal;\n this.barChart2Options.scales.yAxes[0].ticks.max = this.eventual.actualVal > this.sameDay.actualVal ? this.eventual.actualVal : this.sameDay.actualVal;\n this.barChart2Data = [\n {\n data: [this.sameDay.actualVal, this.eventual.actualVal],\n backgroundColor: ['rgb(46, 54, 104)', 'rgb(87, 174, 239)'],\n hoverBackgroundColor: ['rgb(46, 54, 104)', 'rgb(87, 174, 239)'],\n borderSkipped: 'chartArea',\n barPercentage: 0.5,\n barThickness: 20,\n maxBarThickness: 20,\n minBarLength: 2\n }\n ];\n }\n //barChart1 end\n\n //horizontalBarChart4 start noservice connected\n this.wrongOdo.actualVal = this.wrongOdo.actualVal || 0;\n this.alreadyService.actualVal = this.alreadyService.actualVal || 0;\n this.vehicleSold.actualVal = this.vehicleSold.actualVal || 0;\n this.disPreviousSer.actualVal = this.disPreviousSer.actualVal || 0;\n this.distanceDealer.actualVal = this.distanceDealer.actualVal || 0;\n this.disSales.actualVal = this.disSales.actualVal || 0;\n this.disInsurance.actualVal = this.disInsurance.actualVal || 0;\n this.contactedOthers.actualVal = this.contactedOthers.actualVal || 0;\n this.custNotInterested.actualVal = this.custNotInterested.actualVal || 0;\n this.dnd.actualVal = this.dnd.actualVal || 0;\n let max4 = Math.max(this.wrongOdo.actualVal, this.alreadyService.actualVal, this.vehicleSold.actualVal,\n this.disPreviousSer.actualVal, this.distanceDealer.actualVal, this.disSales.actualVal,\n this.disInsurance.actualVal, this.contactedOthers.actualVal, this.custNotInterested.actualVal,\n this.dnd.actualVal);\n if (max4) {\n this.horizontalBarChart4Options.scales.xAxes[0].ticks.max = max4 + 10;\n this.horizontalBarChart4Options.scales.yAxes[0].ticks.max = max4 + 10;\n this.horizontalBarChart4Data = [\n {\n data: [this.wrongOdo.actualVal, this.alreadyService.actualVal, this.vehicleSold.actualVal,\n this.disPreviousSer.actualVal, this.distanceDealer.actualVal, this.disSales.actualVal,\n this.disInsurance.actualVal, this.contactedOthers.actualVal, this.custNotInterested.actualVal,\n this.dnd.actualVal],\n backgroundColor: 'rgb(46, 54, 104)',\n hoverBackgroundColor: 'rgb(46, 54, 104)',\n borderSkipped: 'chartArea',\n barPercentage: 0.5,\n barThickness: 10,\n }\n ];\n }\n //horizontalBarChart4 start\n\n //horizontalBarChart5 start noservice booking\n this.bWrongOdo.actualVal = this.bWrongOdo.actualVal || 0;\n this.bAlreadyService.actualVal = this.bAlreadyService.actualVal || 0;\n this.bVehicleSold.actualVal = this.bVehicleSold.actualVal || 0;\n this.bDisPreviousSer.actualVal = this.bDisPreviousSer.actualVal || 0;\n this.bDistanceDealer.actualVal = this.bDistanceDealer.actualVal || 0;\n this.bDisSales.actualVal = this.bDisSales.actualVal || 0;\n this.bDisInsurance.actualVal = this.bDisInsurance.actualVal || 0;\n this.bookingOthers.actualVal = this.bookingOthers.actualVal || 0;\n this.bCustNotInterested.actualVal = this.bCustNotInterested.actualVal || 0;\n this.bDnd.actualVal = this.bDnd.actualVal || 0;\n let max5 = Math.max(this.bWrongOdo.actualVal, this.bAlreadyService.actualVal, this.bVehicleSold.actualVal,\n this.bDisPreviousSer.actualVal, this.bDistanceDealer.actualVal, this.bDisSales.actualVal,\n this.bDisInsurance.actualVal, this.bookingOthers.actualVal, this.bCustNotInterested.actualVal,\n this.bDnd.actualVal);\n if (max5) {\n this.horizontalBarChart5Options.scales.xAxes[0].ticks.max = max5 + 10;\n this.horizontalBarChart5Options.scales.yAxes[0].ticks.max = max5 + 10;\n this.horizontalBarChart5Data = [\n {\n data: [this.bWrongOdo.actualVal, this.bAlreadyService.actualVal, this.bVehicleSold.actualVal,\n this.bDisPreviousSer.actualVal, this.bDistanceDealer.actualVal, this.bDisSales.actualVal,\n this.bDisInsurance.actualVal, this.bookingOthers.actualVal, this.bCustNotInterested.actualVal,\n this.bDnd.actualVal],\n backgroundColor: 'rgb(46, 54, 104)',\n hoverBackgroundColor: 'rgb(46, 54, 104)',\n borderSkipped: 'chartArea',\n barPercentage: 0.5,\n barThickness: 10,\n }\n ];\n }\n //horizontalBarChart7 start followup connected\n this.followup1.actualVal = this.followup1.actualVal || 0;\n this.followup2.actualVal = this.followup2.actualVal || 0;\n if (this.followup1.actualVal || this.followup2.actualVal) {\n this.horizontalBarChart7Options.scales.xAxes[0].ticks.max = (this.followup1.actualVal + this.followup2.actualVal + 10) || this.followup.actualVal;\n this.horizontalBarChart7Options.scales.yAxes[0].ticks.max = (this.followup1.actualVal + this.followup2.actualVal + 10) || this.followup.actualVal;\n this.horizontalBarChart7Data = [\n {\n data: [this.followup1.actualVal, this.followup2.actualVal],\n backgroundColor: 'rgb(46, 54, 104)',\n hoverBackgroundColor: 'rgb(46, 54, 104)',\n borderSkipped: 'chartArea',\n barPercentage: 0.5,\n barThickness: 10,\n }\n ];\n }\n\n //horizontalBarChart8 start booking connected\n this.bFollowup1.actualVal = this.bFollowup1.actualVal || 0;\n this.bFollowup2.actualVal = this.bFollowup2.actualVal || 0;\n this.bFollowup3.actualVal = this.bFollowup3.actualVal || 0;\n if (this.bFollowup1.actualVal || this.bFollowup2.actualVal || this.bFollowup3.actualVal) {\n this.horizontalBarChart8Options.scales.xAxes[0].ticks.max = (this.bFollowup1.actualVal + this.bFollowup2.actualVal + this.bFollowup3.actualVal + 5) || this.followup.actualVal;\n this.horizontalBarChart8Options.scales.yAxes[0].ticks.max = (this.bFollowup1.actualVal + this.bFollowup2.actualVal + this.bFollowup3.actualVal + 5) || this.followup.actualVal;\n this.horizontalBarChart8Data = [\n {\n data: [this.bFollowup1.actualVal, this.bFollowup2.actualVal, this.bFollowup3.actualVal],\n backgroundColor: 'rgb(46, 54, 104)',\n hoverBackgroundColor: 'rgb(46, 54, 104)',\n borderSkipped: 'chartArea',\n barPercentage: 0.5,\n barThickness: 10,\n }\n ];\n }\n this.updateChartCard = false;\n this.spinner = false;\n } else {\n this.toastr.info(res[\"message\"]);\n this.spinner = false;\n this.updateChartCard = false;\n }\n }, err => {\n this.spinner = false;\n this.updateChartCard = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: getDashboardKpiCard\n * purpose: To get left kpi card history\n */\n getDashboardKpiCard(): void {\n this.spinner = true;\n let selectedCre = '';\n this.selectedCre.forEach((element, index) => {\n if (index == 0) {\n selectedCre = element;\n } else {\n selectedCre = selectedCre + ',' + element;\n }\n });\n let selectedWorkShop = '';\n this.selectedKpiCardWorkShop.forEach((element, index) => {\n if (index == 0) {\n selectedWorkShop = element.split(\" - \")[0];\n } else {\n selectedWorkShop = selectedWorkShop + ',' + element.split(\" - \")[0];\n }\n });\n\n let service = '';\n if(this.selectService.value.selectServiceType != \"\"){\n this.selectService.value.selectServiceType.forEach((element,index)=>{\n if(element == \"0\"){\n this.selectService.value.selectServiceType.splice(index,1);\n }\n });\n service = this.selectService.value.selectServiceType.toString();\n }\n\n const request = {\n \"userId\": this.userInfo.userId,\n \"roleId\": this.userInfo.roleId,\n \"creId\": selectedCre || '',\n \"workshopCode\": selectedWorkShop || '',\n \"service\": service ? service.toString() : '',\n \"month\": new Date(this.maxDate).getMonth() + 1,\n \"year\": new Date(this.maxDate).getFullYear()\n };\n this.resetKpiCard();\n this.commonService.getDashboardKpiCard(request).subscribe(\n res => {\n if (res[\"responseCode\"] == 0) {\n let mnth = new Date(this.maxDate).getMonth() + 1;\n this.callCoverage = [];\n this.avgCall = [];\n this.successReminder = [];\n this.successVisit = [];\n this.successNoShow = [];\n this.lostConversion = [];\n this.overAllConversion = [];\n this.bookingRate = [];\n this.perCallConversion = [];\n\n res[\"responseData\"].forEach(kpi => {\n if (kpi.actualVal) {\n kpi.actualVal = Math.round(kpi.actualVal * 100 + Number.EPSILON) / 100;\n }\n if (kpi.growthRate) {\n kpi.growthRate = Math.round(kpi.growthRate * 100 + Number.EPSILON) / 100;\n }\n if (kpi.kpiCode == '013') {\n this.callCoverage.push(kpi);\n this.selectedCallCoverage = (mnth == kpi.monthVal) ? kpi : {};\n }\n if (kpi.kpiCode == '014') {\n this.avgCall.push(kpi);\n this.selectedAvgCall = (mnth == kpi.monthVal) ? kpi : {};\n }\n if (kpi.kpiCode == '015') {\n this.successReminder.push(kpi);\n this.selectedSuccessReminder = (mnth == kpi.monthVal) ? kpi : {};\n }\n if (kpi.kpiCode == '016') {\n this.successVisit.push(kpi);\n this.selectedSuccessVisit = (mnth == kpi.monthVal) ? kpi : {};\n }\n if (kpi.kpiCode == '017') {\n this.successNoShow.push(kpi);\n this.selectedSuccessNoShow = (mnth == kpi.monthVal) ? kpi : {};\n }\n if (kpi.kpiCode == '018') {\n this.lostConversion.push(kpi);\n this.selectedLostConversion = (mnth == kpi.monthVal) ? kpi : {};\n }\n if (kpi.kpiCode == '019') {\n this.overAllConversion.push(kpi);\n this.selectedOverAllConversion = (mnth == kpi.monthVal) ? kpi : {};\n }\n if (kpi.kpiCode == '020') {\n this.bookingRate.push(kpi);\n this.selectedBookingRate = (mnth == kpi.monthVal) ? kpi : {};\n }\n if (kpi.kpiCode == '023') {\n this.perCallConversion.push(kpi);\n this.selectedPerCallConversion = (mnth == kpi.monthVal) ? kpi : {};\n }\n });\n this.spinner = false;\n } else {\n this.toastr.info(res[\"message\"]);\n this.spinner = false;\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: getDashboardKpi\n * purpose: To get dashboard kpi\n */\n getDashboardKpi(): void {\n this.spinner = true;\n this.updateChart = true;\n let selectedCre = '';\n this.selectedCre.forEach((element, index) => {\n if (index == 0) {\n selectedCre = element;\n } else {\n selectedCre = selectedCre + ',' + element;\n }\n });\n let selectedWorkShop = '';\n this.selectedWorkShop.forEach((element, index) => {\n if (index == 0) {\n selectedWorkShop = element.split(\" - \")[0];\n } else {\n selectedWorkShop = selectedWorkShop + ',' + element.split(\" - \")[0];\n }\n });\n\n let service = '';\n if(this.selectService.value.selectServiceType != \"\"){\n this.selectService.value.selectServiceType.forEach((element,index)=>{\n if(element == \"0\"){\n this.selectService.value.selectServiceType.splice(index,1);\n }\n });\n service = this.selectService.value.selectServiceType.toString();\n }\n\n const request = {\n \"userId\": this.userInfo.userId,\n \"roleId\": this.userInfo.roleId,\n \"creId\": selectedCre || '',\n \"workshopCode\": selectedWorkShop || '',\n \"service\": service ? service.toString() : '',\n \"startDate\": this.datePipe.transform(this.fromDate, \"yyyy-MM-dd\").toString(),\n \"endDate\": this.datePipe.transform(this.toDate, \"yyyy-MM-dd\").toString()\n };\n this.resetDashboard();\n this.commonService.getDashboardKpi(request).subscribe(\n res => {\n if (res[\"responseCode\"] == 0) {\n this.selectedDate = this.datePipe.transform(this.date.value['_d'], \"MMM yy\");\n res[\"responseData\"].forEach(kpi => {\n if (kpi.actualVal) {\n kpi.actualVal = Math.round(kpi.actualVal * 100 + Number.EPSILON) / 100;\n }\n if (kpi.growthRate) {\n kpi.growthRate = Math.round(kpi.growthRate * 100 + Number.EPSILON) / 100;\n }\n if (kpi.kpiCode == '001') {\n this.allocated = kpi;\n }\n if (kpi.kpiCode == '002') {\n this.attempted = kpi;\n }\n if (kpi.kpiCode == '003') {\n this.notAttempted = kpi;\n }\n if (kpi.kpiCode == '004') {\n this.contacted = kpi;\n }\n if (kpi.kpiCode == '005') {\n this.notContacted = kpi;\n }\n if (kpi.kpiCode == '006') {\n this.booking = kpi;\n }\n if (kpi.kpiCode == '011') {\n this.converted = kpi;\n }\n if (kpi.kpiCode == '022') {\n this.activeBooking = kpi;\n }\n if (kpi.kpiCode == '007') {\n this.contactedNoService = kpi;\n }\n if (kpi.kpiCode == '008') {\n this.contactedFollowup = kpi;\n }\n if (kpi.kpiCode == '021') {\n this.connectedSystemClose = kpi;\n }\n if (kpi.kpiCode == '009') {\n this.bookingNoService = kpi;\n }\n if (kpi.kpiCode == '010') {\n this.bookingFollowup = kpi;\n }\n if (kpi.kpiCode == '024') {\n this.bookingSystemClose = kpi;\n }\n });\n if(this.allocated.actualVal != 0) {\n this.AttemptedAchievement = (this.attempted.actualVal/this.allocated.actualVal)*100;\n } else {\n this.AttemptedAchievement = 0;\n }\n if(this.attempted.actualVal != 0) {\n this.ContactedAchievement = (this.contacted.actualVal/this.attempted.actualVal)*100;\n } else {\n this.ContactedAchievement = 0;\n }\n if(this.contacted.actualVal != 0) {\n this.BookingsAchievement = (this.booking.actualVal/this.contacted.actualVal)*100;\n } else {\n this.BookingsAchievement = 0;\n }\n\n //horizontalBarChart1 start\n this.contacted.actualVal = this.contacted.actualVal || 0;\n this.notContacted.actualVal = this.notContacted.actualVal || 0;\n if (this.contacted.actualVal || this.notContacted.actualVal) {\n this.horizontalBarChart1Data = [\n {\n data: [this.contacted.actualVal],\n stack: 'a',\n label: 'Contacted',\n backgroundColor: 'rgb(46, 54, 104)',\n hoverBackgroundColor: 'rgb(46, 54, 104)',\n borderSkipped: 'chartArea',\n barPercentage: 0.5,\n barThickness: 12,\n maxBarThickness: 12,\n minBarLength: 2\n },\n {\n data: [this.notContacted.actualVal],\n stack: 'a',\n label: 'Not Contacted',\n backgroundColor: 'rgb(87, 174, 239)',\n hoverBackgroundColor: 'rgb(87, 174, 239)',\n borderSkipped: 'chartArea',\n barPercentage: 0.5,\n barThickness: 12,\n maxBarThickness: 12,\n minBarLength: 2\n }\n ];\n let max1 = this.contacted.actualVal + this.notContacted.actualVal;\n this.horizontalBarChart1Options.scales.xAxes[0].ticks.max = max1;\n this.horizontalBarChart1Options.scales.yAxes[0].ticks.max = max1;\n }\n //horizontalBarChart1 end\n\n //horizontalBarChart2 start\n this.booking.actualVal = this.booking.actualVal || 0;\n this.contactedFollowup.actualVal = this.contactedFollowup.actualVal || 0;\n this.connectedSystemClose.actualVal = this.connectedSystemClose.actualVal || 0;\n this.contactedNoService.actualVal = this.contactedNoService.actualVal || 0;\n let max2 = this.booking.actualVal + this.contactedFollowup.actualVal + this.connectedSystemClose.actualVal + this.contactedNoService.actualVal;\n if (max2) {\n this.horizontalBarChart2Options.scales.xAxes[0].ticks.max = max2;\n this.horizontalBarChart2Options.scales.yAxes[0].ticks.max = max2;\n this.horizontalBarChart2Data = [\n {\n data: [this.booking.actualVal],\n stack: 'a',\n label: 'Booking',\n backgroundColor: '#4834d4',\n hoverBackgroundColor: '#4834d4',\n borderSkipped: 'chartArea',\n barPercentage: 0.5,\n barThickness: 12,\n maxBarThickness: 12,\n minBarLength: 2\n },\n {\n data: [this.contactedFollowup.actualVal],\n stack: 'a',\n label: 'Followup',\n backgroundColor: '#57aeef',\n hoverBackgroundColor: '#57aeef',\n borderSkipped: 'chartArea',\n barPercentage: 0.5,\n barThickness: 12,\n maxBarThickness: 12,\n minBarLength: 2\n },\n {\n data: [this.connectedSystemClose.actualVal],\n stack: 'a',\n label: 'System Closed',\n backgroundColor: '#5758bb',\n hoverBackgroundColor: '#5758bb',\n borderSkipped: 'chartArea',\n barPercentage: 0.5,\n barThickness: 12,\n maxBarThickness: 12,\n minBarLength: 2\n },\n {\n data: [this.contactedNoService.actualVal],\n stack: 'a',\n label: 'No Service',\n backgroundColor: '#2e3668',\n hoverBackgroundColor: '#2e3668',\n borderSkipped: 'chartArea',\n barPercentage: 0.5,\n barThickness: 12,\n maxBarThickness: 12,\n minBarLength: 2\n }\n ];\n }\n //horizontalBarChart2 end\n\n //horizontalBarChart3 start\n this.activeBooking.actualVal = this.activeBooking.actualVal || 0;\n this.converted.actualVal = this.converted.actualVal || 0;\n this.bookingFollowup.actualVal = this.bookingFollowup.actualVal || 0;\n this.bookingNoService.actualVal = this.bookingNoService.actualVal || 0;\n this.bookingSystemClose.actualVal = this.bookingSystemClose.actualVal || 0;\n let max3 = this.activeBooking.actualVal + this.converted.actualVal + this.bookingFollowup.actualVal + this.bookingNoService.actualVal;\n if (max3) {\n this.horizontalBarChart3Options.scales.xAxes[0].ticks.max = max3;\n this.horizontalBarChart3Options.scales.yAxes[0].ticks.max = max3;\n this.horizontalBarChart3Data = [\n {\n data: [this.activeBooking.actualVal],\n stack: 'a',\n label: 'Active',\n backgroundColor: '#2e3668',\n hoverBackgroundColor: '#2e3668',\n borderSkipped: 'chartArea',\n barPercentage: 0.5,\n barThickness: 12,\n maxBarThickness: 12,\n minBarLength: 2\n },\n\n {\n data: [this.bookingNoService.actualVal],\n stack: 'a',\n label: 'No Service',\n backgroundColor: '#4834d4',\n hoverBackgroundColor: '#4834d4',\n borderSkipped: 'chartArea',\n barPercentage: 0.5,\n barThickness: 12,\n maxBarThickness: 12,\n minBarLength: 2\n },\n {\n data: [this.bookingFollowup.actualVal],\n stack: 'a',\n label: 'Followup',\n backgroundColor: '#57aeef',\n hoverBackgroundColor: '#57aeef',\n borderSkipped: 'chartArea',\n barPercentage: 0.5,\n barThickness: 12,\n maxBarThickness: 12,\n minBarLength: 2\n },\n {\n data: [this.converted.actualVal],\n stack: 'a',\n label: 'Converted',\n backgroundColor: '#3f729d',\n hoverBackgroundColor: '#3f729d',\n borderSkipped: 'chartArea',\n barPercentage: 0.5,\n barThickness: 12,\n maxBarThickness: 12,\n minBarLength: 2\n }\n ];\n }\n //horizontalBarChart3 end\n this.updateChart = false;\n this.getDashboardResponseKpi();\n this.getDashboardServiceKpi();\n this.spinner = false;\n } else {\n this.toastr.info(res[\"message\"]);\n this.spinner = false;\n this.updateChart = false;\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n this.updateChart = false;\n });\n }\n\n /**\n * Name: getDashboardServiceKpi\n * purpose: To get service breakup\n */\n getDashboardServiceKpi(): void {\n this.spinner = true;\n let selectedCre = '';\n this.selectedCre.forEach((element, index) => {\n if (index == 0) {\n selectedCre = element;\n } else {\n selectedCre = selectedCre + ',' + element;\n }\n });\n let selectedWorkShop = '';\n this.selectedWorkShop.forEach((element, index) => {\n if (index == 0) {\n selectedWorkShop = element.split(\" - \")[0];\n } else {\n selectedWorkShop = selectedWorkShop + ',' + element.split(\" - \")[0];\n }\n });\n\n let service = '';\n if(this.selectService.value.selectServiceType != \"\"){\n this.selectService.value.selectServiceType.forEach((element,index)=>{\n if(element == \"0\"){\n this.selectService.value.selectServiceType.splice(index,1);\n }\n });\n service = this.selectService.value.selectServiceType.toString();\n }\n\n const request = {\n \"userId\": this.userInfo.userId,\n \"roleId\": this.userInfo.roleId,\n \"creId\": selectedCre || '',\n \"workshopCode\": selectedWorkShop || '',\n \"service\": service ? service.toString() : '',\n \"startDate\": this.datePipe.transform(this.fromDate, \"yyyy-MM-dd\").toString(),\n \"endDate\": this.datePipe.transform(this.toDate, \"yyyy-MM-dd\").toString()\n };\n this.commonService.getDashboardServiceKpi(request).subscribe(\n res => {\n if (res[\"responseCode\"] == 0) {\n this.allocatedServiceBreak = [];\n this.attemptedServiceBreak = [];\n this.connectedServiceBreak = [];\n this.bookingServiceBreak = [];\n res[\"responseData\"].forEach(element => {\n if (element.kpiCode == '001') {\n this.allocatedServiceBreak.push(element);\n }\n if (element.kpiCode == '002') {\n this.attemptedServiceBreak.push(element);\n }\n if (element.kpiCode == '004') {\n this.connectedServiceBreak.push(element);\n }\n if (element.kpiCode == '006') {\n this.bookingServiceBreak.push(element);\n }\n });\n this.spinner = false;\n } else {\n this.toastr.info(res[\"message\"]);\n this.spinner = false;\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: filterDashboard\n * purpose: To get filter Dashboard\n */\n filterDashboard(): void {\n this.spinner = true;\n let workshopSet = new Set();\n let workshopCardSet = new Set();\n this.commonService.filterDashboard(this.userInfo).subscribe(\n res => {\n if (res[\"responseCode\"] == 0) {\n this.filtersWorkshop = [];\n this.filtersCre = [];\n res['responseData'].forEach(element => {\n let workshopCode = element.workshop.split(\" - \")[0];\n let workshop = { id: element.id, workshopCode: workshopCode, workshop: element.workshop };\n let cre = element.creId;\n this.filtersWorkshop.push(workshop);\n workshopSet.add(workshop.workshop);\n workshopCardSet.add(workshop.workshop);\n if (!this.filtersCre.includes(cre)) {\n this.filtersCre.push(cre);\n }\n });\n this.uniqueWorkshop = Array.from(workshopSet);\n this.uniqueWorkshopCard = Array.from(workshopCardSet);\n this.uniqueWorkshopCopy = this.uniqueWorkshop;\n this.uniqueWorkshopCardCopy = this.uniqueWorkshopCard;\n this.filtersCreCopy = this.filtersCre;\n this.spinner = false;\n } else {\n this.spinner = false;\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: periodFilter\n * purpose: To get filter Dashboard\n */\n periodFilter(): void {\n this.spinner = true;\n this.commonService.periodFilter(this.userInfo).subscribe(\n res => {\n if (res[\"responseCode\"] == 0) {\n if (res['responseData'].length) {\n let dateFilter = res['responseData'][0];\n if(dateFilter.minMonth && dateFilter.minYear) {\n this.minDate = new Date(res['responseData'][0].minMonth + '/' + '1/' + res['responseData'][0].minYear);\n } else {\n this.minDate = new Date();\n }\n if(dateFilter.maxMonth && dateFilter.maxYear) {\n this.maxDate = new Date(res['responseData'][0].maxMonth + '/' + '1/' + res['responseData'][0].maxYear);\n } else {\n this.maxDate = new Date();\n }\n let date = moment(this.maxDate);\n this.date.setValue(date);\n if(dateFilter.minMonth && dateFilter.minYear && dateFilter.maxMonth && dateFilter.maxYear) {\n this.selectedDate = this.datePipe.transform(this.date.value['_d'], \"MMM yy\");\n this.getDashboardServiceKpi();\n this.getDashboardKpiCard();\n this.getDashboardKpi();\n } else {\n this.toastr.info(\"Data not found.\");\n }\n } else {\n this.minDate = new Date();\n this.maxDate = new Date();\n }\n this.spinner = false;\n } else {\n this.toastr.info(res[\"message\"]);\n this.spinner = false;\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n onKeyWorkshop() : void {\n this.uniqueWorkshop = this.uniqueWorkshopCopy;\n this.dealerCode = [];\n this.selectedDealer = this.selectedDealer.trim();\n this.dealerCode = this.uniqueWorkshop.filter(item =>\n item.toLowerCase().includes(this.selectedDealer.toLowerCase())\n );\n this.dealerCode.forEach(element => {\n let index = this.uniqueWorkshopCopy.findIndex((ele) => {return ele == element});\n if(index != -1) {\n this.uniqueWorkshopCopy.splice(index, 1);\n }\n this.uniqueWorkshopCopy.unshift(element);\n })\n if(this.dealerCode.length > 0) {\n this.closeInput();\n }\n this.uniqueWorkshop = [];\n this.uniqueWorkshop = this.uniqueWorkshopCopy;\n }\n\n closeInput() : void {\n if(this.dealerCode.length == 0) {\n this.selectedDealer = '';\n this.uniqueWorkshop = this.uniqueWorkshopCopy;\n }\n }\n\n onKeyCRE() : void {\n this.filtersCre = this.filtersCreCopy;\n this.creCode = [];\n this.selectedCreCode = this.selectedCreCode.trim();\n this.creCode = this.filtersCre.filter(item =>\n item.toLowerCase().includes(this.selectedCreCode.toLowerCase())\n );\n this.creCode.forEach(element => {\n let index = this.filtersCreCopy.findIndex((ele) => {return ele == element});\n if(index != -1) {\n this.filtersCreCopy.splice(index, 1);\n }\n this.filtersCreCopy.unshift(element);\n })\n if(this.creCode.length > 0) {\n this.closeInputCre();\n }\n this.filtersCre = [];\n this.filtersCre = this.filtersCreCopy;\n }\n\n closeInputCre() : void {\n if(this.creCode.length == 0) {\n this.selectedCreCode = '';\n this.filtersCre = this.filtersCreCopy;\n }\n }\n\n onKeyWorkshopCard() : void {\n this.uniqueWorkshopCard = this.uniqueWorkshopCardCopy;\n this.dealerCodeCard = [];\n this.selectedCardDealer = this.selectedCardDealer.trim();\n this.dealerCodeCard = this.uniqueWorkshopCard.filter(item =>\n item.toLowerCase().includes(this.selectedCardDealer.toLowerCase())\n );\n this.dealerCodeCard.forEach(element => {\n let index = this.uniqueWorkshopCardCopy.findIndex((ele) => {return ele == element});\n if(index != -1) {\n this.uniqueWorkshopCardCopy.splice(index, 1);\n }\n this.uniqueWorkshopCardCopy.unshift(element);\n })\n\n if(this.dealerCodeCard.length > 0) {\n this.closeInput();\n }\n this.uniqueWorkshopCard = [];\n this.uniqueWorkshopCard = this.uniqueWorkshopCardCopy;\n }\n\n closeInputCard() : void {\n if(this.dealerCodeCard.length == 0) {\n this.selectedCardDealer = '';\n this.uniqueWorkshopCard = this.uniqueWorkshopCardCopy;\n }\n }\n\n /**\n * Name: getDashboardReport\n * purpose: To export report as excel\n */\n getDashboardReport(): void {\n this.spinner = true;\n //this.updateChart = true;\n let selectedCre = '';\n this.selectedCre.forEach((element, index) => {\n if (index == 0) {\n selectedCre = element;\n } else {\n selectedCre = selectedCre + ',' + element;\n }\n });\n let selectedWorkShop = '';\n this.selectedWorkShop.forEach((element, index) => {\n if (index == 0) {\n selectedWorkShop = element.split(\" - \")[0];\n } else {\n selectedWorkShop = selectedWorkShop + ',' + element.split(\" - \")[0];\n }\n });\n\n let serviceType = '';\n if(this.selectService.value.selectServiceType != \"\"){\n this.selectService.value.selectServiceType.forEach((element,index)=>{\n if(element == \"0\"){\n this.selectService.value.selectServiceType.splice(index,1);\n }\n });\n serviceType = this.selectService.value.selectServiceType.toString();\n }\n\n let startDate = this.datePipe.transform(this.fromDate, \"yyyy-MM-dd\").toString();\n let endDate = this.datePipe.transform(this.toDate, \"yyyy-MM-dd\").toString();\n let fileName = \"Dashboard Report_For_\" + startDate + \"-\" + endDate ;\n this.commonService.getDashboardReport(this.userInfo.userId, this.userInfo.roleId, selectedCre, startDate, endDate, serviceType, selectedWorkShop)\n .subscribe(fileData => {\n if (fileData) {\n const blob: any = new Blob([fileData], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\n let link = document.createElement(\"a\");\n if (link.download !== undefined) {\n let url = URL.createObjectURL(blob);\n link.setAttribute(\"href\", url);\n link.setAttribute(\"download\", fileName);\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n this.spinner = false;\n }\n } else {\n this.spinner = false;\n }\n }, err => {\n this.spinner = false;\n\n });\n }\n\n tosslePerOne(all){\n if (this.allSelectedService.selected) {\n this.allSelectedService.deselect();\n return false;\n }\n if (this.selectService.controls.selectServiceType.value.length==this.services.length)\n this.allSelectedService.select();\n }\n\n toggleAllSelection() {\n if (this.allSelectedService.selected) {\n this.selectService.controls.selectServiceType\n .patchValue([...this.services.map(item => item.key), 0]);\n this.selectAllService = true;\n } else {\n this.selectService.controls.selectServiceType.patchValue([]);\n }\n }\n\n dashboardSelection(){\n if(this.selectedDashboard == 'Prs-Dashboard'){\n //this.showPrsDashboard=true\n this.router.navigate([\"prs-dashboard\"])\n }\n }\n\n}","export default \".working-area {\\n margin-top: 115px;\\n}\\n\\ntable {\\n width: 100%;\\n}\\n\\n.calling-table tr {\\n cursor: pointer;\\n}\\n\\n.table-head-call {\\n background: none;\\n padding-top: 12px;\\n}\\n\\n.button-margin {\\n margin-left: 10px;\\n}\\n\\n.callList {\\n font: Bold 20px Roboto;\\n letter-spacing: 0px;\\n color: #484848;\\n opacity: 1;\\n}\\n\\n.close-con {\\n font-size: 18px;\\n cursor: pointer;\\n top: 3px;\\n right: 1px;\\n position: absolute !important;\\n z-index: 10;\\n opacity: 1;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-infix {\\n border: 1px solid lightgray;\\n border-radius: 5px;\\n background: white;\\n padding: 0;\\n height: 20px;\\n}\\n\\n.filter1 ::ng-deep .mat-select {\\n padding: 3px 0px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-trigger {\\n padding-left: 8px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-value {\\n width: 89%;\\n}\\n\\n.filter1 ::ng-deep .mat-button {\\n font-size: 12px;\\n font: white;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label-wrapper {\\n top: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-underline {\\n display: none;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label {\\n top: 0;\\n margin-top: 4px !important;\\n padding-left: 5px;\\n}\\n\\n.filter-label {\\n font: Bold 14px Roboto;\\n letter-spacing: 0px;\\n color: #3c3c3c;\\n opacity: 1;\\n margin-bottom: 5px;\\n}\\n\\n.refesh-icon {\\n float: right;\\n margin-bottom: -30px;\\n margin-right: 20px;\\n margin-top: 30px;\\n cursor: pointer;\\n}\\n\\n.coloredRow {\\n background: #ffff99;\\n}\\n\\n.coloredGreenRow {\\n background: #90ee90;\\n}\\n\\n.mat-dialog-title {\\n background-color: darkgray;\\n}\\n\\n.callList-right {\\n font-size: 11px;\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.columnHeader {\\n font: Bold 12px Roboto;\\n letter-spacing: 0px;\\n color: #333333;\\n text-transform: capitalize;\\n}\\n\\n.lost {\\n color: #e64243;\\n position: absolute;\\n left: 10px;\\n font-size: 10px;\\n top: 38%;\\n}\\n\\n.inbound {\\n color: #2e3668;\\n position: absolute;\\n left: 10px;\\n font-size: 10px;\\n top: 38%;\\n}\\n\\n.columnvalue {\\n font-size: 14px;\\n position: relative;\\n}\\n\\n.filter1 {\\n font-size: 12px;\\n margin-top: 10px;\\n}\\n\\n.filterButton {\\n color: white !important;\\n background-color: #00457D;\\n height: 20px;\\n line-height: 10px;\\n margin-bottom: 1px;\\n}\\n\\n.filterdiv {\\n align-items: center;\\n box-sizing: border-box;\\n display: flex;\\n flex-wrap: wrap;\\n}\\n\\n.serviceDueDate {\\n width: 10% !important;\\n}\\n\\n.followUp {\\n width: 9% !important;\\n}\\n\\ntd.mat-cell,\\ntd.mat-footer-cell,\\nth.mat-header-cell {\\n padding: 3px;\\n border-style: solid none none solid;\\n border-width: 0.1px;\\n border-color: lightgray;\\n}\\n\\n.table-border.mat-table {\\n border-style: none solid solid none;\\n border-color: lightgray;\\n}\\n\\nth.mat-header-cell {\\n background-color: #d9d9d9;\\n}\\n\\n.filter2 {\\n width: auto;\\n}\\n\\n.call-stats-card .mat-card-title {\\n margin-bottom: 0px;\\n}\\n\\n.call-stats-card .call-stats {\\n font-size: 11px;\\n color: #ffffff;\\n}\\n\\n.call-stats-card .call-stats i {\\n color: #2e3668;\\n font-size: 11px;\\n}\\n\\n.call-stats-card .call-stats-title {\\n font-size: 20px;\\n color: #484848;\\n}\\n\\n.call-stats-card1 {\\n padding-top: 0px;\\n}\\n\\n.call-stats-card-border1 {\\n border-style: solid solid none solid;\\n border-width: 1px;\\n border-radius: 0%;\\n border-color: lightgray;\\n}\\n\\n.call-stats-card-border2 {\\n border-style: solid solid solid solid;\\n border-width: 1px;\\n border-radius: 0%;\\n margin-bottom: 15px;\\n border-color: lightgray;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-group {\\n border-radius: 0px;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle {\\n background-color: #ffffff;\\n color: #5482BC;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-checked {\\n background-color: #5482BC;\\n color: #ffffff;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-label-content {\\n line-height: 30px;\\n font: Regular 14px Roboto;\\n letter-spacing: 0px;\\n}\\n\\n.toggle-btn-grp ::ng-deep .refresh-btn.mat-button {\\n min-width: auto;\\n}\\n\\n.refresh-btn {\\n background-color: #ffffff;\\n color: #e64243;\\n border: 1px solid #e64243;\\n border-radius: 0px;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-flex {\\n border: 1px solid lightgray;\\n border-radius: 3px;\\n background: white;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-label {\\n padding-left: 10px;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-infix {\\n border-top: none;\\n}\\n\\n.textboxService ::ng-deep label.mat-form-field-label {\\n margin-top: 8px !important;\\n}\\n\\n.textboxService ::ng-deep input.mat-input-element {\\n margin-top: 0.6em;\\n margin-left: 10px;\\n}\\n\\n.search-icon {\\n position: absolute;\\n right: 15px;\\n top: 15px;\\n}\\n\\n.backColor {\\n background-color: #00457D !important;\\n font-size: 12px;\\n}\\n\\n.box-size {\\n margin-left: 10px;\\n margin-top: 7px;\\n width: 28px;\\n height: 28px;\\n color: #ffffff !important;\\n}\\n\\n.backColor1 {\\n background-color: #5482BC !important;\\n font-size: 12px;\\n}\\n\\n.call-stats-value {\\n margin-left: 50px;\\n font-size: 18px;\\n}\\n\\n.call-stats-value1 {\\n margin-left: 30px;\\n font-size: 18px;\\n}\\n\\n.info-circle-size {\\n font-size: 12px !important;\\n color: #ffffff !important;\\n}\\n\\n.flex-set {\\n margin-top: 7px;\\n margin-left: 30px;\\n}\\n\\n.flex-set1 {\\n margin-top: 7px;\\n margin-left: 55px;\\n}\\n\\n.dueDateIcon {\\n height: 9px;\\n width: 11px;\\n}\\n\\n.filter3 {\\n width: 200px;\\n margin-right: 30px;\\n font-size: 12px;\\n}\\n\\n.paginator ::ng-deep .mat-form-field-infix {\\n height: 18px !important;\\n padding-bottom: 0px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9jb21wb25lbnQvZG9vcnN0ZXAtY2FsbGluZy1saXN0L2Rvb3JzdGVwLWNhbGxpbmctbGlzdC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50L2Rvb3JzdGVwLWNhbGxpbmctbGlzdC9kb29yc3RlcC1jYWxsaW5nLWxpc3QuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxpQkFBQTtBQ0NKOztBREVBO0VBQ0ksV0FBQTtBQ0NKOztBREVBO0VBQ0ksZUFBQTtBQ0NKOztBREVBO0VBQ0ksZ0JBQUE7RUFDQSxpQkFBQTtBQ0NKOztBREVBO0VBQ0ksaUJBQUE7QUNDSjs7QURFQTtFQUNJLHNCQUFBO0VBQ0EsbUJBQUE7RUFDQSxjQUFBO0VBQ0EsVUFBQTtBQ0NKOztBREVBO0VBQ0ksZUFBQTtFQUNBLGVBQUE7RUFDQSxRQUFBO0VBQ0EsVUFBQTtFQUNBLDZCQUFBO0VBQ0EsV0FBQTtFQUNBLFVBQUE7QUNDSjs7QURFQTtFQUNJLDJCQUFBO0VBQ0Esa0JBQUE7RUFDQSxpQkFBQTtFQUNBLFVBQUE7RUFDQSxZQUFBO0FDQ0o7O0FERUE7RUFDSSxnQkFBQTtBQ0NKOztBREVBO0VBQ0ksaUJBQUE7QUNDSjs7QURFQTtFQUNJLFVBQUE7QUNDSjs7QURFQTtFQUNJLGVBQUE7RUFDQSxXQUFBO0FDQ0o7O0FERUE7RUFDSSxNQUFBO0VBQ0EsY0FBQTtFQUNBLGlCQUFBO0FDQ0o7O0FERUE7RUFDSSxpQkFBQTtBQ0NKOztBREVBO0VBQ0ksYUFBQTtBQ0NKOztBREVBO0VBQ0ksTUFBQTtFQUNBLDBCQUFBO0VBQ0EsaUJBQUE7QUNDSjs7QURFQTtFQUNJLHNCQUFBO0VBQ0EsbUJBQUE7RUFDQSxjQUFBO0VBQ0EsVUFBQTtFQUNBLGtCQUFBO0FDQ0o7O0FERUE7RUFDSSxZQUFBO0VBQ0Esb0JBQUE7RUFDQSxrQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZUFBQTtBQ0NKOztBREVBO0VBQ0ksbUJBQUE7QUNDSjs7QURFQTtFQUNJLG1CQUFBO0FDQ0o7O0FERUE7RUFDSSwwQkFBQTtBQ0NKOztBREVBO0VBQ0ksZUFBQTtFQUNBLDBCQUFBO0FDQ0o7O0FERUE7RUFDSSxzQkFBQTtFQUNBLG1CQUFBO0VBQ0EsY0FBQTtFQUNBLDBCQUFBO0FDQ0o7O0FERUE7RUFDSSxjQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBO0VBQ0EsZUFBQTtFQUNBLFFBQUE7QUNDSjs7QURFQTtFQUNJLGNBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7RUFDQSxlQUFBO0VBQ0EsUUFBQTtBQ0NKOztBREVBO0VBQ0ksZUFBQTtFQUNBLGtCQUFBO0FDQ0o7O0FERUE7RUFDSSxlQUFBO0VBQ0EsZ0JBQUE7QUNDSjs7QURFQTtFQUNJLHVCQUFBO0VBQ0EseUJBQUE7RUFDQSxZQUFBO0VBQ0EsaUJBQUE7RUFDQSxrQkFBQTtBQ0NKOztBREVBO0VBQ0ksbUJBQUE7RUFDQSxzQkFBQTtFQUNBLGFBQUE7RUFDQSxlQUFBO0FDQ0o7O0FERUE7RUFDSSxxQkFBQTtBQ0NKOztBREVBO0VBQ0ksb0JBQUE7QUNDSjs7QURFQTs7O0VBR0ksWUFBQTtFQUNBLG1DQUFBO0VBQ0EsbUJBQUE7RUFDQSx1QkFBQTtBQ0NKOztBREVBO0VBQ0ksbUNBQUE7RUFDQSx1QkFBQTtBQ0NKOztBREVBO0VBQ0kseUJBQUE7QUNDSjs7QURFQTtFQUNJLFdBQUE7QUNDSjs7QURHSTtFQUNJLGtCQUFBO0FDQVI7O0FERUk7RUFDSSxlQUFBO0VBQ0EsY0FBQTtBQ0FSOztBRENRO0VBQ0ksY0FBQTtFQUNBLGVBQUE7QUNDWjs7QURFSTtFQUNJLGVBQUE7RUFDQSxjQUFBO0FDQVI7O0FESUE7RUFDSSxnQkFBQTtBQ0RKOztBRElBO0VBQ0ksb0NBQUE7RUFDQSxpQkFBQTtFQUNBLGlCQUFBO0VBQ0EsdUJBQUE7QUNESjs7QURJQTtFQUNJLHFDQUFBO0VBQ0EsaUJBQUE7RUFDQSxpQkFBQTtFQUNBLG1CQUFBO0VBQ0EsdUJBQUE7QUNESjs7QURJQTtFQUNJLGtCQUFBO0FDREo7O0FESUE7RUFDSSx5QkFBQTtFQUNBLGNBQUE7QUNESjs7QURJQTtFQUNJLHlCQUFBO0VBQ0EsY0FBQTtBQ0RKOztBRElBO0VBQ0ksaUJBQUE7RUFDQSx5QkFBQTtFQUNBLG1CQUFBO0FDREo7O0FESUE7RUFDSSxlQUFBO0FDREo7O0FESUE7RUFDSSx5QkFBQTtFQUNBLGNBQUE7RUFDQSx5QkFBQTtFQUNBLGtCQUFBO0FDREo7O0FESUE7RUFDSSwyQkFBQTtFQUNBLGtCQUFBO0VBQ0EsaUJBQUE7QUNESjs7QURJQTtFQUNJLGtCQUFBO0FDREo7O0FESUE7RUFDSSxnQkFBQTtBQ0RKOztBRElBO0VBQ0ksMEJBQUE7QUNESjs7QURJQTtFQUNJLGlCQUFBO0VBQ0EsaUJBQUE7QUNESjs7QURJQTtFQUNJLGtCQUFBO0VBQ0EsV0FBQTtFQUNBLFNBQUE7QUNESjs7QURJQTtFQUNJLG9DQUFBO0VBQ0EsZUFBQTtBQ0RKOztBRElBO0VBQ0ksaUJBQUE7RUFDQSxlQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSx5QkFBQTtBQ0RKOztBRElBO0VBQ0ksb0NBQUE7RUFDQSxlQUFBO0FDREo7O0FESUE7RUFDSSxpQkFBQTtFQUNBLGVBQUE7QUNESjs7QURJQTtFQUNJLGlCQUFBO0VBQ0EsZUFBQTtBQ0RKOztBRElBO0VBQ0ksMEJBQUE7RUFDQSx5QkFBQTtBQ0RKOztBRElBO0VBQ0ksZUFBQTtFQUNBLGlCQUFBO0FDREo7O0FESUE7RUFDSSxlQUFBO0VBQ0EsaUJBQUE7QUNESjs7QURJQTtFQUNJLFdBQUE7RUFDQSxXQUFBO0FDREo7O0FESUE7RUFDSSxZQUFBO0VBQ0Esa0JBQUE7RUFDQSxlQUFBO0FDREo7O0FESUE7RUFDSSx1QkFBQTtFQUNBLG1CQUFBO0FDREoiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnQvZG9vcnN0ZXAtY2FsbGluZy1saXN0L2Rvb3JzdGVwLWNhbGxpbmctbGlzdC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi53b3JraW5nLWFyZWEge1xuICAgIG1hcmdpbi10b3A6IDExNXB4O1xufVxuXG50YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5jYWxsaW5nLXRhYmxlIHRyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi50YWJsZS1oZWFkLWNhbGwge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgcGFkZGluZy10b3A6IDEycHg7XG59XG5cbi5idXR0b24tbWFyZ2luIHtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbn1cblxuLmNhbGxMaXN0IHtcbiAgICBmb250OiBCb2xkIDIwcHggUm9ib3RvO1xuICAgIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gICAgY29sb3I6ICM0ODQ4NDg7XG4gICAgb3BhY2l0eTogMTtcbn1cblxuLmNsb3NlLWNvbiB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0b3A6IDNweDtcbiAgICByaWdodDogMXB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICAgIHotaW5kZXg6IDEwO1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgcGFkZGluZzogMDtcbiAgICBoZWlnaHQ6IDIwcHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdCB7XG4gICAgcGFkZGluZzogM3B4IDBweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICAgIHBhZGRpbmctbGVmdDogOHB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdmFsdWUge1xuICAgIHdpZHRoOiA4OSU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWJ1dHRvbiB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQ6IHdoaXRlO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIge1xuICAgIHRvcDogMDtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIHRvcDogMDtcbiAgICBtYXJnaW4tdG9wOiA0cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbn1cblxuLmZpbHRlci1sYWJlbCB7XG4gICAgZm9udDogQm9sZCAxNHB4IFJvYm90bztcbiAgICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICAgIGNvbG9yOiAjM2MzYzNjO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuXG4ucmVmZXNoLWljb24ge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tYm90dG9tOiAtMzBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gICAgbWFyZ2luLXRvcDogMzBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5jb2xvcmVkUm93IHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZjk5O1xufVxuXG4uY29sb3JlZEdyZWVuUm93IHtcbiAgICBiYWNrZ3JvdW5kOiAjOTBlZTkwO1xufVxuXG4ubWF0LWRpYWxvZy10aXRsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2dyYXk7XG59XG5cbi5jYWxsTGlzdC1yaWdodCB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuXG4uY29sdW1uSGVhZGVyIHtcbiAgICBmb250OiBCb2xkIDEycHggUm9ib3RvO1xuICAgIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gICAgY29sb3I6ICMzMzMzMzM7XG4gICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG59XG5cbi5sb3N0IHtcbiAgICBjb2xvcjogI2U2NDI0MztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMTBweDtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgdG9wOiAzOCU7XG59XG5cbi5pbmJvdW5kIHtcbiAgICBjb2xvcjogIzJlMzY2ODtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMTBweDtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgdG9wOiAzOCU7XG59XG5cbi5jb2x1bW52YWx1ZSB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmZpbHRlcjEge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuXG4uZmlsdGVyQnV0dG9uIHtcbiAgICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEO1xuICAgIGhlaWdodDogMjBweDtcbiAgICBsaW5lLWhlaWdodDogMTBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxcHg7XG59XG5cbi5maWx0ZXJkaXYge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLnNlcnZpY2VEdWVEYXRlIHtcbiAgICB3aWR0aDogMTAlICFpbXBvcnRhbnQ7XG59XG5cbi5mb2xsb3dVcCB7XG4gICAgd2lkdGg6IDklICFpbXBvcnRhbnQ7XG59XG5cbnRkLm1hdC1jZWxsLFxudGQubWF0LWZvb3Rlci1jZWxsLFxudGgubWF0LWhlYWRlci1jZWxsIHtcbiAgICBwYWRkaW5nOiAzcHg7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZCBub25lIG5vbmUgc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAwLjFweDtcbiAgICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxuLnRhYmxlLWJvcmRlci5tYXQtdGFibGUge1xuICAgIGJvcmRlci1zdHlsZTogbm9uZSBzb2xpZCBzb2xpZCBub25lO1xuICAgIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG50aC5tYXQtaGVhZGVyLWNlbGwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkOWQ5ZDk7XG59XG5cbi5maWx0ZXIyIHtcbiAgICB3aWR0aDogYXV0bztcbn1cblxuLmNhbGwtc3RhdHMtY2FyZCB7XG4gICAgLm1hdC1jYXJkLXRpdGxlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIH1cbiAgICAuY2FsbC1zdGF0cyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIGkge1xuICAgICAgICAgICAgY29sb3I6ICMyZTM2Njg7XG4gICAgICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmNhbGwtc3RhdHMtdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgIGNvbG9yOiAjNDg0ODQ4O1xuICAgIH1cbn1cblxuLmNhbGwtc3RhdHMtY2FyZDEge1xuICAgIHBhZGRpbmctdG9wOiAwcHg7XG59XG5cbi5jYWxsLXN0YXRzLWNhcmQtYm9yZGVyMSB7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZCBzb2xpZCBub25lIHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDAlO1xuICAgIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4uY2FsbC1zdGF0cy1jYXJkLWJvcmRlcjIge1xuICAgIGJvcmRlci1zdHlsZTogc29saWQgc29saWQgc29saWQgc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAge1xuICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgY29sb3I6ICM1NDgyQkM7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM1NDgyQkM7XG4gICAgY29sb3I6ICNmZmZmZmY7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWxhYmVsLWNvbnRlbnQge1xuICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgIGZvbnQ6IFJlZ3VsYXIgMTRweCBSb2JvdG87XG4gICAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAucmVmcmVzaC1idG4ubWF0LWJ1dHRvbiB7XG4gICAgbWluLXdpZHRoOiBhdXRvO1xufVxuXG4ucmVmcmVzaC1idG4ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgY29sb3I6ICNlNjQyNDM7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2U2NDI0MztcbiAgICBib3JkZXItcmFkaXVzOiAwcHg7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWZsZXgge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICBib3JkZXItdG9wOiBub25lO1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIGxhYmVsLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICBtYXJnaW4tdG9wOiA4cHggIWltcG9ydGFudDtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCBpbnB1dC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gICAgbWFyZ2luLXRvcDogMC42ZW07XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbi5zZWFyY2gtaWNvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAxNXB4O1xuICAgIHRvcDogMTVweDtcbn1cblxuLmJhY2tDb2xvciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RCAhaW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmJveC1zaXplIHtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICBtYXJnaW4tdG9wOiA3cHg7XG4gICAgd2lkdGg6IDI4cHg7XG4gICAgaGVpZ2h0OiAyOHB4O1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbi5iYWNrQ29sb3IxIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTQ4MkJDICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uY2FsbC1zdGF0cy12YWx1ZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwcHg7XG4gICAgZm9udC1zaXplOiAxOHB4O1xufVxuXG4uY2FsbC1zdGF0cy12YWx1ZTEge1xuICAgIG1hcmdpbi1sZWZ0OiAzMHB4O1xuICAgIGZvbnQtc2l6ZTogMThweDtcbn1cblxuLmluZm8tY2lyY2xlLXNpemUge1xuICAgIGZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbi5mbGV4LXNldCB7XG4gICAgbWFyZ2luLXRvcDogN3B4O1xuICAgIG1hcmdpbi1sZWZ0OiAzMHB4O1xufVxuXG4uZmxleC1zZXQxIHtcbiAgICBtYXJnaW4tdG9wOiA3cHg7XG4gICAgbWFyZ2luLWxlZnQ6IDU1cHg7XG59XG5cbi5kdWVEYXRlSWNvbiB7XG4gICAgaGVpZ2h0OiA5cHg7XG4gICAgd2lkdGg6IDExcHg7XG59XG5cbi5maWx0ZXIzIHtcbiAgICB3aWR0aDogMjAwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAzMHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLnBhZ2luYXRvciA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICBoZWlnaHQ6IDE4cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMHB4O1xufVxuIiwiLndvcmtpbmctYXJlYSB7XG4gIG1hcmdpbi10b3A6IDExNXB4O1xufVxuXG50YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uY2FsbGluZy10YWJsZSB0ciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnRhYmxlLWhlYWQtY2FsbCB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIHBhZGRpbmctdG9wOiAxMnB4O1xufVxuXG4uYnV0dG9uLW1hcmdpbiB7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuXG4uY2FsbExpc3Qge1xuICBmb250OiBCb2xkIDIwcHggUm9ib3RvO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICBjb2xvcjogIzQ4NDg0ODtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmNsb3NlLWNvbiB7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0b3A6IDNweDtcbiAgcmlnaHQ6IDFweDtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHotaW5kZXg6IDEwO1xuICBvcGFjaXR5OiAxO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBwYWRkaW5nOiAwO1xuICBoZWlnaHQ6IDIwcHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdCB7XG4gIHBhZGRpbmc6IDNweCAwcHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gIHdpZHRoOiA4OSU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udDogd2hpdGU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gIHRvcDogMDtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdG9wOiAwO1xuICBtYXJnaW4tdG9wOiA0cHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG59XG5cbi5maWx0ZXItbGFiZWwge1xuICBmb250OiBCb2xkIDE0cHggUm9ib3RvO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICBjb2xvcjogIzNjM2MzYztcbiAgb3BhY2l0eTogMTtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuXG4ucmVmZXNoLWljb24ge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi1ib3R0b206IC0zMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIG1hcmdpbi10b3A6IDMwcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmNvbG9yZWRSb3cge1xuICBiYWNrZ3JvdW5kOiAjZmZmZjk5O1xufVxuXG4uY29sb3JlZEdyZWVuUm93IHtcbiAgYmFja2dyb3VuZDogIzkwZWU5MDtcbn1cblxuLm1hdC1kaWFsb2ctdGl0bGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZ3JheTtcbn1cblxuLmNhbGxMaXN0LXJpZ2h0IHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cblxuLmNvbHVtbkhlYWRlciB7XG4gIGZvbnQ6IEJvbGQgMTJweCBSb2JvdG87XG4gIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbn1cblxuLmxvc3Qge1xuICBjb2xvcjogI2U2NDI0MztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAxMHB4O1xuICBmb250LXNpemU6IDEwcHg7XG4gIHRvcDogMzglO1xufVxuXG4uaW5ib3VuZCB7XG4gIGNvbG9yOiAjMmUzNjY4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgdG9wOiAzOCU7XG59XG5cbi5jb2x1bW52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZmlsdGVyMSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbWFyZ2luLXRvcDogMTBweDtcbn1cblxuLmZpbHRlckJ1dHRvbiB7XG4gIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEO1xuICBoZWlnaHQ6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxcHg7XG59XG5cbi5maWx0ZXJkaXYge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cbi5zZXJ2aWNlRHVlRGF0ZSB7XG4gIHdpZHRoOiAxMCUgIWltcG9ydGFudDtcbn1cblxuLmZvbGxvd1VwIHtcbiAgd2lkdGg6IDklICFpbXBvcnRhbnQ7XG59XG5cbnRkLm1hdC1jZWxsLFxudGQubWF0LWZvb3Rlci1jZWxsLFxudGgubWF0LWhlYWRlci1jZWxsIHtcbiAgcGFkZGluZzogM3B4O1xuICBib3JkZXItc3R5bGU6IHNvbGlkIG5vbmUgbm9uZSBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAwLjFweDtcbiAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG59XG5cbi50YWJsZS1ib3JkZXIubWF0LXRhYmxlIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lIHNvbGlkIHNvbGlkIG5vbmU7XG4gIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG50aC5tYXQtaGVhZGVyLWNlbGwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDlkOWQ5O1xufVxuXG4uZmlsdGVyMiB7XG4gIHdpZHRoOiBhdXRvO1xufVxuXG4uY2FsbC1zdGF0cy1jYXJkIC5tYXQtY2FyZC10aXRsZSB7XG4gIG1hcmdpbi1ib3R0b206IDBweDtcbn1cbi5jYWxsLXN0YXRzLWNhcmQgLmNhbGwtc3RhdHMge1xuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLmNhbGwtc3RhdHMtY2FyZCAuY2FsbC1zdGF0cyBpIHtcbiAgY29sb3I6ICMyZTM2Njg7XG4gIGZvbnQtc2l6ZTogMTFweDtcbn1cbi5jYWxsLXN0YXRzLWNhcmQgLmNhbGwtc3RhdHMtdGl0bGUge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGNvbG9yOiAjNDg0ODQ4O1xufVxuXG4uY2FsbC1zdGF0cy1jYXJkMSB7XG4gIHBhZGRpbmctdG9wOiAwcHg7XG59XG5cbi5jYWxsLXN0YXRzLWNhcmQtYm9yZGVyMSB7XG4gIGJvcmRlci1zdHlsZTogc29saWQgc29saWQgbm9uZSBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1yYWRpdXM6IDAlO1xuICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxuLmNhbGwtc3RhdHMtY2FyZC1ib3JkZXIyIHtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZCBzb2xpZCBzb2xpZCBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1yYWRpdXM6IDAlO1xuICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAge1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgY29sb3I6ICM1NDgyQkM7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTQ4MkJDO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtbGFiZWwtY29udGVudCB7XG4gIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICBmb250OiBSZWd1bGFyIDE0cHggUm9ib3RvO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5yZWZyZXNoLWJ0bi5tYXQtYnV0dG9uIHtcbiAgbWluLXdpZHRoOiBhdXRvO1xufVxuXG4ucmVmcmVzaC1idG4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBjb2xvcjogI2U2NDI0MztcbiAgYm9yZGVyOiAxcHggc29saWQgI2U2NDI0MztcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBib3JkZXItdG9wOiBub25lO1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIGxhYmVsLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgbWFyZ2luLXRvcDogOHB4ICFpbXBvcnRhbnQ7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgaW5wdXQubWF0LWlucHV0LWVsZW1lbnQge1xuICBtYXJnaW4tdG9wOiAwLjZlbTtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbi5zZWFyY2gtaWNvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDE1cHg7XG4gIHRvcDogMTVweDtcbn1cblxuLmJhY2tDb2xvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0QgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uYm94LXNpemUge1xuICBtYXJnaW4tbGVmdDogMTBweDtcbiAgbWFyZ2luLXRvcDogN3B4O1xuICB3aWR0aDogMjhweDtcbiAgaGVpZ2h0OiAyOHB4O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG4uYmFja0NvbG9yMSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1NDgyQkMgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uY2FsbC1zdGF0cy12YWx1ZSB7XG4gIG1hcmdpbi1sZWZ0OiA1MHB4O1xuICBmb250LXNpemU6IDE4cHg7XG59XG5cbi5jYWxsLXN0YXRzLXZhbHVlMSB7XG4gIG1hcmdpbi1sZWZ0OiAzMHB4O1xuICBmb250LXNpemU6IDE4cHg7XG59XG5cbi5pbmZvLWNpcmNsZS1zaXplIHtcbiAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbi5mbGV4LXNldCB7XG4gIG1hcmdpbi10b3A6IDdweDtcbiAgbWFyZ2luLWxlZnQ6IDMwcHg7XG59XG5cbi5mbGV4LXNldDEge1xuICBtYXJnaW4tdG9wOiA3cHg7XG4gIG1hcmdpbi1sZWZ0OiA1NXB4O1xufVxuXG4uZHVlRGF0ZUljb24ge1xuICBoZWlnaHQ6IDlweDtcbiAgd2lkdGg6IDExcHg7XG59XG5cbi5maWx0ZXIzIHtcbiAgd2lkdGg6IDIwMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDMwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLnBhZ2luYXRvciA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgaGVpZ2h0OiAxOHB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctYm90dG9tOiAwcHg7XG59Il19 */\"","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { ChangeDetectorRef } from '@angular/core';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { Router } from '@angular/router';\nimport { interval } from 'rxjs';\nimport { CommonService } from '../../core/service/common-service/common.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { MatDialog, MatPaginator, MatSort, MatSelect } from '@angular/material';\nimport { ReminderDialogComponent } from '../../modal/reminder-dialog/reminder-dialog.component';\nimport { DatePipe } from '@angular/common';\nimport { FilterPipePipe } from '../../pipes/filter-pipe.pipe';\nimport { ListCustData } from './listCustData';\nimport { FormControl, FormBuilder, FormGroup } from '@angular/forms';\nimport { element } from 'protractor';\nimport { error } from 'util';\n\n@Component({\n selector: 'app-doorstep-calling-list',\n templateUrl: './doorstep-calling-list.component.html',\n styleUrls: ['./doorstep-calling-list.component.scss'],\n providers: [FilterPipePipe],\n})\nexport class DoorstepCallingListComponent implements OnInit {\n\n @ViewChild(MatSort, { static: true }) sort: MatSort;\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\n @ViewChild('filterSelect', { static: true }) filterSelect: MatSelect;\n\n reminderData: any;\n callsToBeMade: number = 0;\n pageSize: number;\n callsMade: number = 0;\n callToggleStatus: boolean = true;\n displayedColumns: string[] = [\n 'customerName',\n 'serviceType',\n 'callType',\n 'callStatusDesc',\n 'serviceDueDate',\n 'location',\n 'lastCallTime',\n 'creinputs',\n 'followUpTime',\n 'remarks'\n ];\n dataSource: any;\n selection: any;\n customerData: any;\n currentDate: string;\n spinner: boolean;\n customersToBeCalled: string;\n callsMade1: string;\n openPopUp: boolean;\n columnsToFilter: any[] = [\n { value: 'serviceType', viewValue: 'Service Type' },\n { value: 'callType', viewValue: 'Call Type' },\n { value: 'customerType', viewValue: 'Customer Type' },\n { value: 'callStatusDesc', viewValue: 'Call Status Desc' }];\n dialogRef: any;\n selectedValue: string;\n selectedCol: string;\n selectedFilter: string;\n filterMap = new Map();\n serviceTypeMap = new Map();\n uniqueServiceType = new Set();\n uniqueCallType = new Set();\n uniqueCustomerType = new Set();\n uniqueCallState = new Set();\n uniqueDueDate = new Set();\n uniqueLocation = new Set();\n uniquePredicationType = new Set();\n filterValues: string[] = [];\n selectedColValues: string[] = [];\n filteredDataSource: any;\n callFlag: any;\n callStats: any = {};\n userId: string;\n selectedServiceTypeValues: string[] = [];\n selectedCustomerTypeValues: string[] = [];\n selectedCallTypeValues: string[] = [];\n selectedCallStatusValues: string[] = [];\n selectedLocationValues: string[] = [];\n selectedpredationCodeValues: string[] = [];\n filteredValue: any;\n serviceTypeArray: any = [];\n predationCodeArray: any = [];\n //followupDataSource: any = [];\n custDataSource: string[] = [];\n\n constructor(private commonService: CommonService, private router: Router, public dialog: MatDialog,\n private toastr: ToastrService, private datePipe: DatePipe, private changeDetectorRefs: ChangeDetectorRef,\n private filterPipePipe: FilterPipePipe, private fb: FormBuilder) { }\n\n ngOnInit() {\n if (localStorage.getItem('userId') == null || localStorage.getItem('userId') == undefined) {\n this.router.navigate(['login']);\n }\n this.customerData = JSON.parse(localStorage.getItem('customerData'));\n this.userId = localStorage.getItem('userId');\n this.currentDate = this.datePipe.transform(new Date(), \"yyyy-MM-dd\");\n\n if (localStorage.getItem('selectedServiceTypeValues') != null || localStorage.getItem('selectedServiceTypeValues') != undefined) {\n let selectedServiceTypeValues = JSON.parse(localStorage.getItem('selectedServiceTypeValues'));\n this.selectedServiceTypeValues = selectedServiceTypeValues;\n }\n\n if (localStorage.getItem('selectedCustomerTypeValues') != null || localStorage.getItem('selectedCustomerTypeValues') != undefined) {\n let selectedCustomerTypeValues = JSON.parse(localStorage.getItem('selectedCustomerTypeValues'));\n this.selectedCustomerTypeValues = selectedCustomerTypeValues;\n }\n\n if (localStorage.getItem('selectedCallTypeValues') != null || localStorage.getItem('selectedCallTypeValues') != undefined) {\n let selectedCallTypeValues = JSON.parse(localStorage.getItem('selectedCallTypeValues'));\n this.selectedCallTypeValues = selectedCallTypeValues;\n }\n\n if (localStorage.getItem('selectedLocationValues') != null || localStorage.getItem('selectedLocationValues') != undefined) {\n let selectedLocationValues = JSON.parse(localStorage.getItem('selectedLocationValues'));\n this.selectedLocationValues = selectedLocationValues;\n }\n\n if (localStorage.getItem('selectedCallStatusValues') != null || localStorage.getItem('selectedCallStatusValues') != undefined) {\n let selectedCallStatusValues = JSON.parse(localStorage.getItem('selectedCallStatusValues'));\n this.selectedCallStatusValues = selectedCallStatusValues;\n }\n if (localStorage.getItem('selectedpredationCodeValues') != null || localStorage.getItem('selectedpredationCodeValues') != undefined) {\n let selectedpredationCodeValues = JSON.parse(localStorage.getItem('selectedpredationCodeValues'));\n this.selectedpredationCodeValues = selectedpredationCodeValues;\n }\n\n if (localStorage.getItem('selectedCol') != null || localStorage.getItem('selectedCol') != undefined) {\n let selectedCol = localStorage.getItem('selectedCol');\n this.selectedCol = selectedCol;\n }\n\n if (localStorage.getItem('selectedColValues') != null || localStorage.getItem('selectedColValues') != undefined) {\n let selectedColValues = JSON.parse(localStorage.getItem('selectedColValues'));\n this.selectedColValues = selectedColValues;\n }\n\n if (localStorage.getItem('callListPageSize') != null || localStorage.getItem('callListPageSize') != undefined) {\n let pagesize = Number(localStorage.getItem('callListPageSize'));\n this.pageSize = (pagesize && !Number.isNaN(pagesize)) ? pagesize : 50;\n } else {\n this.pageSize = 50;\n }\n\n if (localStorage.getItem('workshops') == null || localStorage.getItem('workshops') == undefined) {\n this.getWorkshopDetails();\n }\n\n this.commonService.countryCode=localStorage.getItem('countryCode');\n\n this.commonService.startInterval();\n this.commonService.followupResponse && this.commonService.followupResponse.subscribe((res) => {\n this.commonService.followupDataSource = [];\n if(res['responseCode'] == 0) {\n res['responseData'].forEach((element) => {\n this.commonService.followupDataSource.push(element);\n let callListItem = this.commonService.callListResponseData.find((ele) => {return ele.customerId == element.customerId});\n let index = this.commonService.callListResponseData.findIndex((ele) => {return ele.customerId == element.customerId});\n if(index != -1) {\n this.commonService.callListResponseData.splice(index, 1);\n }\n });\n this.commonService.followupDataSource.forEach((val) => {\n this.commonService.callListResponseData.unshift(val);\n })\n } else {\n this.commonService.followupDataSource = [];\n // this.toastr.error(res['message'], \"Error\");\n }\n }, error => {\n // this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n\n this.getCreStats();\n setTimeout(() => this.prepairCallList('Y'), 1000);\n }\n\n /**\n * Name: setPageData\n * purpose: To set pagesize for table\n */\n setPageData(event) {\n let size = event.pageSize.toString();\n localStorage.setItem('callListPageSize', size);\n }\n\n /**\n * Name: getWorkshopDetails\n * purpose: To get CRE assigned workshop details\n */\n getWorkshopDetails() {\n //this.spinner = true;\n this.commonService.getWorkshopDetails(this.userId)\n .subscribe(res => {\n if (res['responseCode'] == 0) {\n //this.spinner = false;\n localStorage.setItem('workshops', JSON.stringify(res['responseData']));\n } else {\n //this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n //this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: setupCallScheduler\n * purpose: To show scheduled call remainder\n */\n setupCallScheduler(): void {\n interval(10 * 60 * 1000).subscribe(x => {\n this.commonService.callreminder(this.userId)\n .subscribe(res => {\n if (res['responseCode'] == 0) {\n this.reminderData = res['responseData'];\n if (res['responseData'] && res['responseData'].count > 0) {\n localStorage.setItem('customerCount', this.reminderData.count);\n this.dialog.closeAll();\n this.openReminderDialog(); //open popup\n }\n } else {\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n });\n }\n\n /**\n * Name: openReminderDialog\n * purpose: To open scheduled call remainder dialog\n */\n openReminderDialog(): void {\n const dialogRef = this.dialog.open(ReminderDialogComponent, {\n width: '400px',\n data: {}\n });\n dialogRef.afterClosed().subscribe(result => {\n if (this.router.url == \"/calling\") {\n this.prepairCallList('Y');\n }\n });\n }\n\n /**\n * Name: prepairCallList\n * purpose: To get calllist details\n * @param {string} flag - type of call\n */\n prepairCallList(flag: string): void {\n this.spinner = true;\n this.selection = new SelectionModel(true, []);\n\n this.commonService.doorStepCustomerCallList(this.userId, flag)\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n if (flag == 'Y') {\n this.callFlag = flag;\n this.callToggleStatus = true;\n } else {\n this.callFlag = flag;\n this.callToggleStatus = false;\n }\n this.callsToBeMade = res['responseData'].length;\n //init data table and shorting\n this.dataSource = new MatTableDataSource(res['responseData']);\n this.sort.direction = '';\n this.dataSource.sort = this.sort;\n this.dataSource.sortingDataAccessor = (data, header) => data[header];\n this.dataSource.paginator = this.paginator;\n this.filterData();\n if ((!this.selectedServiceTypeValues || this.selectedServiceTypeValues.length == 0)\n && (!this.selectedCallTypeValues || this.selectedCallTypeValues.length == 0)\n && (!this.selectedCustomerTypeValues || this.selectedCustomerTypeValues.length == 0)\n && (!this.selectedCallStatusValues || this.selectedCallStatusValues.length == 0)\n && (!this.selectedLocationValues || this.selectedLocationValues.length == 0)\n && (!this.selectedpredationCodeValues || this.selectedpredationCodeValues.length == 0)) {\n //init filtered table and shorting\n this.filteredDataSource = new MatTableDataSource(res['responseData']);\n this.sort.direction = '';\n this.filteredDataSource.sort = this.sort;\n this.filteredDataSource.sortingDataAccessor = (data, header) => data[header];\n this.filteredDataSource.paginator = this.paginator;\n }\n this.callsMadeCalculate(res['responseData']);\n this.callListinfo();\n this.spinner = false;\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n this.callToggleStatus = true;\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n this.callToggleStatus = true;\n });\n }\n\n setCallListData(flag: string) {\n let response;\n if(flag == 'Y') {\n response = this.commonService.callListResponseData\n response = this.commonService.workedCallListData\n }\n\n if (flag == 'Y') {\n this.callFlag = flag;\n this.callToggleStatus = true;\n } else {\n this.callFlag = flag;\n this.callToggleStatus = false;\n }\n if (response.length) {\n\n this.callsToBeMade = response.length;\n //init data table and shorting\n this.dataSource = new MatTableDataSource(response);\n this.sort.direction = '';\n this.dataSource.sort = this.sort;\n this.dataSource.sortingDataAccessor = (data, header) => data[header];\n this.dataSource.paginator = this.paginator;\n this.filterData();\n if ((!this.selectedServiceTypeValues || this.selectedServiceTypeValues.length == 0)\n && (!this.selectedCallTypeValues || this.selectedCallTypeValues.length == 0)\n && (!this.selectedCustomerTypeValues || this.selectedCustomerTypeValues.length == 0)\n && (!this.selectedCallStatusValues || this.selectedCallStatusValues.length == 0)\n && (!this.selectedLocationValues || this.selectedLocationValues.length == 0)) {\n //init filtered table and shorting\n this.filteredDataSource = new MatTableDataSource(response);\n this.sort.direction = '';\n this.filteredDataSource.sort = this.sort;\n this.filteredDataSource.sortingDataAccessor = (data, header) => data[header];\n this.filteredDataSource.paginator = this.paginator;\n }\n this.callsMadeCalculate(response);\n this.callListinfo();\n }\n }\n\n /**\n * Name: callListinfo\n * purpose: To get call count info\n */\n callListinfo(): void {\n //this.spinner = true;\n this.commonService.doorStepCallsCount(this.userId)\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n this.customersToBeCalled = res['responseData']['customersToBeCalled'];\n this.callsMade1 = res['responseData']['callsMade'];\n //this.spinner = false;\n } else {\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n //this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n //...\n });\n }\n\n /**\n * Name: getCreStats\n * purpose: To get call count info\n */\n getCreStats(): void {\n //this.spinner = true;\n this.commonService.doorStepCallStats(this.userId)\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n //this.spinner = false;\n this.callStats = res['responseData'][0];\n } else {\n //this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n //this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: callsMadeCalculate\n * purpose: To get call made count\n * @param {Array} callsToBeMade - list of calls\n */\n callsMadeCalculate(callsToBeMade: any) {\n this.callsMade = 0;\n callsToBeMade.forEach(element => {\n let currentDate = \"\" + this.datePipe.transform(new Date(), \"yyyy-MM-dd\");\n let reqDate = this.datePipe.transform((element.lastCallTime), \"yyyy-MM-dd\");\n if (currentDate == reqDate) {\n this.callsMade++;\n }\n });\n }\n\n /**\n * Name: selectCustomer\n * purpose: To select customer for details\n * @param {Object} row - selected customer details\n */\n selectCustomer(row: ListCustData): void {\n localStorage.setItem('customerId', row.customerId);\n localStorage.setItem('custNotification', row.serviceType + \", \" + row.callStatusDesc);\n localStorage.setItem(\"customerData\", JSON.stringify(row));\n this.router.navigate(['doorstep-customer360']);\n }\n\n /**\n * Name: refreshCallList\n * purpose: To refresh call list\n */\n refreshCallList(): void {\n //this.spinner = true;\n this.commonService.doorStepCustomerCallList(this.userId, 'Y')\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n this.dataSource = new MatTableDataSource(res['responseData']);\n this.callsToBeMade = res['responseData'].length;\n this.dataSource.sort = this.sort;\n this.dataSource.sortingDataAccessor = (data, header) => data[header];\n this.dataSource.paginator = this.paginator;\n this.callsMadeCalculate(res['responseData']);\n //this.spinner = false;\n this.changeDetectorRefs.detectChanges();\n } else {\n //this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: filterData\n * purpose: To filter call list data\n */\n filterData(): void {\n this.dataSource.filteredData.forEach(element => {\n this.uniqueCallState.add(element.callStatus);\n this.uniqueCallType.add(element.callType);\n this.uniqueCustomerType.add(element.customerType);\n if(element.location!=null)\n this.uniqueLocation.add(element.location)\n if(element.serviceType!=null)\n this.uniqueServiceType.add(element.serviceType);\n this.uniqueDueDate.add(element.serviceDueDate);\n this.uniquePredicationType.add(element.productionCode);\n });\n\n this.uniqueServiceType.forEach(element => {\n this.serviceTypeArray.push(element)\n })\n\n this.uniquePredicationType.forEach(element => {\n if(element == 'I') {\n this.predationCodeArray.push({ value: 'I', viewValue: 'Inbound' })\n } else if(element == 'S') {\n this.predationCodeArray.push({ value: 'S', viewValue: 'SRM' })\n } else if(element == 'L') {\n this.predationCodeArray.push({ value: 'L', viewValue: 'Lost-Customer' })\n }\n })\n\n if ((this.selectedServiceTypeValues != null && this.selectedServiceTypeValues.length != 0)\n || (this.selectedCallTypeValues != null && this.selectedCallTypeValues.length != 0)\n || (this.selectedCustomerTypeValues != null && this.selectedCustomerTypeValues.length != 0)\n || (this.selectedCallStatusValues != null && this.selectedCallStatusValues.length != 0)\n || (this.selectedLocationValues != null && this.selectedLocationValues.length != 0)\n || (this.selectedpredationCodeValues != null && this.selectedpredationCodeValues.length != 0)) {\n //this.filterTriggered(null);\n this.applyfilter();\n }\n }\n\n /**\n * Name: filterTriggered\n * @param {Event} event - 1st filter data\n * purpose: To set 2nd filter values\n */\n filterTriggered(event: any): void {\n if ((event && event.isUserInput && event.source._selected) || (!event && this.selectedCol)) {\n this.filterValues = [];\n let value = event ? event.source.value : this.selectedCol;\n switch (value) {\n case \"serviceType\":\n this.uniqueServiceType.forEach(element => {\n this.filterValues.push(element);\n });\n break;\n case \"callType\":\n this.uniqueCallType.forEach(element => {\n this.filterValues.push(element);\n });\n break;\n case \"customerType\":\n this.uniqueCustomerType.forEach(element => {\n this.filterValues.push(element);\n });\n break;\n case \"location\":\n this.uniqueLocation.forEach(element => {\n this.filterValues.push(element);\n });\n break;\n case \"callStatusDesc\":\n this.uniqueCallState.forEach(element => {\n this.filterValues.push(element);\n });\n break;\n case \"serviceDueDate\":\n this.uniqueDueDate.forEach(element => {\n this.filterValues.push(element);\n });\n break;\n case \"productionCode\":\n this.uniquePredicationType.forEach(element => {\n this.filterValues.push(element);\n });\n break;\n }\n }\n }\n\n /**\n * Name: applyfilter\n * purpose: To apply filter on call list data\n */\n applyfilter(): void {\n let key = '';\n this.filterMap = new Map();\n this.filteredDataSource = this.dataSource;\n if (this.selectedServiceTypeValues != null && this.selectedServiceTypeValues.length != 0) {\n key = \"serviceType\";\n this.filterMap.set(key, this.selectedServiceTypeValues);\n this.filteredDataSource = new MatTableDataSource(this.filterPipePipe.transform(this.filteredDataSource.filteredData, this.filterMap));\n }\n\n if (this.selectedCustomerTypeValues != null && this.selectedCustomerTypeValues.length != 0) {\n key = \"customerType\";\n this.filterMap.set(key, this.selectedCustomerTypeValues);\n this.filteredDataSource = new MatTableDataSource(this.filterPipePipe.transform(this.filteredDataSource.filteredData, this.filterMap));\n }\n\n if (this.selectedCallTypeValues != null && this.selectedCallTypeValues.length != 0) {\n key = \"callType\";\n this.filterMap.set(key, this.selectedCallTypeValues);\n this.filteredDataSource = new MatTableDataSource(this.filterPipePipe.transform(this.filteredDataSource.filteredData, this.filterMap));\n }\n\n if (this.selectedLocationValues != null && this.selectedLocationValues.length != 0) {\n key = \"location\";\n this.filterMap.set(key, this.selectedLocationValues);\n this.filteredDataSource = new MatTableDataSource(this.filterPipePipe.transform(this.filteredDataSource.filteredData, this.filterMap));\n }\n\n if (this.selectedCallStatusValues != null && this.selectedCallStatusValues.length != 0) {\n key = \"callStatus\";\n this.filterMap.set(key, this.selectedCallStatusValues);\n this.filteredDataSource = new MatTableDataSource(this.filterPipePipe.transform(this.filteredDataSource.filteredData, this.filterMap));\n }\n\n if (this.selectedpredationCodeValues != null && this.selectedpredationCodeValues.length != 0) {\n key = \"productionCode\";\n this.filterMap.set(key, this.selectedpredationCodeValues);\n this.filteredDataSource = new MatTableDataSource(this.filterPipePipe.transform(this.filteredDataSource.filteredData, this.filterMap));\n }\n //this.filterMap.set(this.selectedCol, this.selectedColValues);\n //this.filteredDataSource = new MatTableDataSource(this.filterPipePipe.transform(this.dataSource.filteredData, this.filterMap));\n this.callsToBeMade = this.filteredDataSource.filteredData.length;\n this.sort.direction = '';\n this.filteredDataSource.sort = this.sort;\n this.filteredDataSource.sortingDataAccessor = (data, header) => data[header];\n this.filteredDataSource.paginator = this.paginator;\n localStorage.setItem('selectedServiceTypeValues',JSON.stringify(this.selectedServiceTypeValues));\n localStorage.setItem('selectedCustomerTypeValues',JSON.stringify(this.selectedCustomerTypeValues));\n localStorage.setItem('selectedCallTypeValues',JSON.stringify(this.selectedCallTypeValues));\n localStorage.setItem('selectedCallStatusValues',JSON.stringify(this.selectedCallStatusValues));\n localStorage.setItem('selectedLocationValues',JSON.stringify(this.selectedLocationValues));\n localStorage.setItem('selectedpredationCodeValues',JSON.stringify(this.selectedpredationCodeValues));\n //localStorage.setItem('selectedCol', this.selectedCol);\n //localStorage.setItem('selectedColValues', JSON.stringify(this.selectedColValues));\n }\n\n /**\n * Name: searchfilter\n * purpose: To apply filter on call list data\n */\n searchfilter(filterValue: string): void {\n filterValue = filterValue.trim(); // Remove whitespace\n filterValue = filterValue.toLowerCase(); // Datasource defaults to lowercase matches\n this.filteredDataSource.filter = filterValue;\n }\n\n /**\n * Name: clearFilter\n * purpose: To clear filter\n */\n clearFilter(): void {\n this.filterMap.clear();\n this.selectedCol = null;\n this.selectedColValues = null;\n this.selectedServiceTypeValues = null;\n this.selectedCustomerTypeValues = null;\n this.selectedCallTypeValues = null;\n this.selectedCallStatusValues = null;\n this.selectedLocationValues = null;\n this.selectedpredationCodeValues = null;\n this.filteredDataSource = new MatTableDataSource(this.filterPipePipe.transform(this.dataSource.filteredData, this.filterMap));\n this.callsToBeMade = this.filteredDataSource.filteredData.length;\n this.sort.direction = '';\n this.filteredDataSource.sort = this.sort;\n this.filteredDataSource.sortingDataAccessor = (data, header) => data[header];\n this.filteredDataSource.paginator = this.paginator;\n localStorage.removeItem('selectedCol');\n localStorage.removeItem('selectedColValues');\n localStorage.removeItem('selectedServiceTypeValues');\n localStorage.removeItem('selectedCustomerTypeValues');\n localStorage.removeItem('selectedCallTypeValues');\n localStorage.removeItem('selectedCallStatusValues');\n localStorage.removeItem('selectedLocationValues');\n }\n\n /**\n * Name: changeColor\n * purpose: To change followup time color\n */\n changeColor(followUp: any): String {\n let currentTime = this.datePipe.transform(new Date(), \"yyyy-MM-dd HH:mm:ss \");\n\n if (followUp != null && followUp != undefined && followUp != \"\") {\n let followUpDateTime = this.datePipe.transform(followUp, \"yyyy-MM-dd HH:mm:ss\");\n if ((new Date(currentTime)).getTime() > (new Date(followUpDateTime).getTime())) {\n return \"red\";\n }\n }\n }\n\n /**\n * Name: activeButton\n * purpose: To activat apply button\n */\n activeButton(): boolean {\n let flag = false;\n if (this.selectedServiceTypeValues != null && this.selectedServiceTypeValues.length != 0) {\n flag = true;\n } else if (this.selectedCustomerTypeValues != null && this.selectedCustomerTypeValues.length != 0) {\n flag = true;\n } else if (this.selectedCallTypeValues != null && this.selectedCallTypeValues.length != 0) {\n flag = true;\n } else if (this.selectedCallStatusValues != null && this.selectedCallStatusValues.length != 0) {\n flag = true;\n } else if (this.selectedpredationCodeValues != null && this.selectedpredationCodeValues.length != 0) {\n flag = true;\n } else if (this.selectedLocationValues != null && this.selectedLocationValues.length != 0) {\n flag = true;\n }\n return flag;\n }\n\n}\n","export default \".working-area {\\n margin-bottom: 20px;\\n margin-left: 10px;\\n margin-top: 10px;\\n}\\n\\n.cust360-container {\\n margin: 115px 30px 30px 30px;\\n}\\n\\n.example-card1 {\\n display: block;\\n margin-left: auto;\\n margin-right: auto;\\n}\\n\\n.example-card1 .fontClass {\\n display: inline-block;\\n}\\n\\n.example-card1 .inlineClass {\\n display: inline-block;\\n}\\n\\n.example-card2 {\\n display: block;\\n margin-left: auto;\\n margin-right: auto;\\n border: none;\\n box-shadow: none;\\n padding: 0px;\\n}\\n\\n.history-card {\\n box-shadow: none;\\n padding: 0px;\\n}\\n\\n.fontClass {\\n font: Bold 12px/20px Roboto;\\n font-size: 12px;\\n color: #707070;\\n}\\n\\n.fontClassBold {\\n font-family: Bold 16px/22px Roboto;\\n color: #707070;\\n}\\n\\n.border {\\n border: 1px solid #707070;\\n font: 12px/18px Roboto;\\n color: #707070;\\n border-radius: 25px;\\n padding: 5px;\\n}\\n\\n.serv-heading {\\n width: 30%;\\n}\\n\\n.serv-desc {\\n width: 70%;\\n font-weight: 400;\\n}\\n\\n.serv-desc small {\\n margin-right: 10px;\\n float: right;\\n}\\n\\n.button {\\n text-align: center;\\n float: right;\\n font: Regular 16px/22px Roboto;\\n color: #ffffff;\\n border-radius: 0px;\\n}\\n\\n.recent {\\n color: #1acc04;\\n position: relative;\\n right: 15px;\\n font-size: 12px;\\n top: 0;\\n margin-bottom: 7px;\\n}\\n\\n.disabled {\\n opacity: 0.6;\\n}\\n\\n.buttonservice {\\n float: right;\\n font-family: Roboto;\\n color: #f1f1ff;\\n}\\n\\n.checkalign {\\n padding-left: 16px !important;\\n padding-top: 20px !important;\\n}\\n\\n.checkalignment {\\n padding-top: 20px !important;\\n}\\n\\n.inlineClass {\\n display: inline;\\n font: Regular 14px Roboto;\\n font-size: 12px;\\n letter-spacing: 0px;\\n color: black;\\n opacity: 1;\\n}\\n\\np.inlineClass {\\n margin-top: 0px;\\n margin-bottom: 5px;\\n}\\n\\n.marginClass {\\n margin-left: 20px;\\n}\\n\\n.marginClass1 {\\n margin-left: 40px;\\n}\\n\\n.navbar {\\n padding-left: 10px;\\n padding-top: 10px;\\n font-size: 12px;\\n}\\n\\n.navbar a {\\n cursor: pointer;\\n}\\n\\n.history-btn {\\n width: 100%;\\n height: 30px;\\n}\\n\\n.nobullet {\\n list-style-type: none;\\n margin-bottom: 10px;\\n}\\n\\n.play {\\n cursor: pointer;\\n margin-right: 5px;\\n}\\n\\n.colorStyle {\\n color: greenyellow;\\n}\\n\\n.callLogs {\\n display: block !important;\\n float: left;\\n}\\n\\n.custNotification {\\n display: inline;\\n}\\n\\n.example-radio-group {\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.example-radio-button {\\n margin: 5px;\\n}\\n\\n.update-btn {\\n background-color: #16377d;\\n color: #ffffff;\\n margin-left: 15px;\\n}\\n\\n.edit-btn {\\n margin-left: 5px;\\n color: #16377d;\\n background-color: #ffffff;\\n border: none;\\n cursor: pointer;\\n}\\n\\n.number-form ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 5px;\\n}\\n\\n.number-form ::ng-deep .mat-form-field-infix {\\n padding: 0.1375em 0;\\n}\\n\\n.number-form ::ng-deep .mat-form-field-underline {\\n bottom: 0.25em;\\n height: 0px;\\n}\\n\\n.number-form ::ng-deep input.mat-input-element {\\n margin-top: 0px;\\n}\\n\\n.number-form {\\n width: 100%;\\n position: relative;\\n}\\n\\n.number-row {\\n width: 100%;\\n position: relative;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-infix {\\n border: 1px solid lightgray;\\n border-radius: 5px;\\n background: white;\\n padding: 0;\\n height: 20px;\\n}\\n\\n.filter1 ::ng-deep .mat-select {\\n padding: 2px 0px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-trigger {\\n padding-left: 8px;\\n width: 100%;\\n font-size: 12px;\\n padding-bottom: 5px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-value {\\n width: 90%;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label-wrapper {\\n top: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-underline {\\n display: none;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label {\\n top: 0;\\n margin-top: 4px !important;\\n padding-left: 5px;\\n}\\n\\n.filter-label {\\n font: Bold 14px Roboto;\\n letter-spacing: 0px;\\n color: #3c3c3c;\\n opacity: 1;\\n margin-bottom: 5px;\\n font-size: 13px;\\n}\\n\\n.mat-expansion-panel-header-title {\\n font-weight: 500;\\n font-size: 13px;\\n font: Bold 14px/16px Roboto;\\n}\\n\\n.mat-expansion-panel-header-title i {\\n margin-right: 10px;\\n color: #00457D;\\n}\\n\\n.fontClass {\\n font: Bold 14px/16px Roboto;\\n letter-spacing: 0px;\\n font-size: 12px;\\n color: #7b7a7a;\\n opacity: 1;\\n margin-bottom: 3px !important;\\n}\\n\\n.fontClassBold {\\n font-family: Bold 16px/22px Roboto;\\n color: #000000;\\n font-size: 12px;\\n font-weight: 500;\\n}\\n\\n.fontClassBold i {\\n color: #00457D;\\n margin-right: 5px;\\n}\\n\\n.border {\\n border: 1px solid #707070;\\n font: 12px/18px Roboto;\\n color: #707070;\\n border-radius: 25px;\\n padding: 5px;\\n}\\n\\n.button {\\n text-align: center;\\n float: right;\\n font: Regular 16px/22px Roboto;\\n color: #ffffff;\\n}\\n\\n.buttonservice {\\n float: right;\\n font-family: Roboto;\\n color: #f1f1ff;\\n}\\n\\n.example-radio-group {\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.example-radio-button {\\n margin: 5px;\\n}\\n\\n.mat-dialog-content {\\n padding: 5px 24px;\\n}\\n\\n.contact {\\n width: 100% !important;\\n margin-top: 20px;\\n}\\n\\n.contact .mat-tab-group {\\n min-height: 150px;\\n}\\n\\n.contact ::ng-deep .mat-tab-label {\\n height: 20px;\\n min-width: 90px;\\n color: #5482BC;\\n border: 1px solid lightgray;\\n font-size: 11px;\\n}\\n\\n.contact ::ng-deep .mat-tab-label-active {\\n background-color: #5482BC;\\n color: #ffffff;\\n opacity: 1;\\n}\\n\\n.contact ::ng-deep .mat-tab-header {\\n border: none;\\n}\\n\\n.contact ::ng-deep .mat-tab-list .mat-ink-bar {\\n height: 0px;\\n}\\n\\n.tabrow {\\n width: 100% !important;\\n margin-top: 20px;\\n margin-bottom: 20px;\\n}\\n\\n.align {\\n padding-left: 16px;\\n padding-top: 20px;\\n}\\n\\n.tabrow ::ng-deep .mat-tab-label {\\n height: 35px;\\n padding: 0px 10px;\\n border-top-left-radius: 8px !important;\\n border-top-right-radius: 8px !important;\\n border-bottom-width: 1px;\\n border-color: #d3d3d3;\\n border-style: solid;\\n background-color: white;\\n margin-left: 3px;\\n color: black;\\n opacity: 1;\\n}\\n\\n.tabrow ::ng-deep .mat-tab-label-active {\\n background-color: #00457D;\\n color: #ffffff;\\n opacity: 1;\\n border-style: none;\\n}\\n\\n.tabrow ::ng-deep .mat-tab-header {\\n border: none;\\n}\\n\\n.tabrow ::ng-deep .mat-tab-list .mat-ink-bar {\\n height: 0px;\\n}\\n\\n.table {\\n font-family: \\\"Trebuchet MS\\\", Arial, Helvetica, sans-serif;\\n border-collapse: collapse;\\n width: 100%;\\n margin-top: 20px;\\n}\\n\\n.table td,\\n.table th {\\n border: 1px solid lightgray;\\n padding: 5px;\\n width: auto;\\n font-size: 12px;\\n}\\n\\n.table tr:nth-child(even) {\\n background-color: #ffffff;\\n}\\n\\n.table tr:hover {\\n background-color: #ffffff;\\n}\\n\\n.table th {\\n padding-top: 5px;\\n padding-bottom: 5px;\\n text-align: left;\\n background-color: #d3d3d3;\\n color: black;\\n}\\n\\n.fault-table td,\\n.fault-table th {\\n padding: 5px;\\n}\\n\\n.fault-table .fault-date {\\n width: 15% !important;\\n}\\n\\n.fault-table .fault-des {\\n width: 20% !important;\\n}\\n\\n.btn {\\n position: relative;\\n cursor: pointer;\\n overflow: hidden;\\n background-color: #00457D !important;\\n border-radius: 5px !important;\\n height: 25px;\\n}\\n\\n.btn p {\\n text-align: center;\\n text-transform: uppercase;\\n color: #fff;\\n position: relative;\\n z-index: 1;\\n transition: all 0.3s ease;\\n margin: auto;\\n font-size: 12px;\\n line-height: 10px;\\n}\\n\\n/* sliders */\\n\\n/* Left Slider */\\n\\n.btn-1 {\\n background-color: #ffffff !important;\\n color: #00457D !important;\\n border: 1px solid #00457D;\\n}\\n\\n.btn-1 p {\\n margin: auto;\\n}\\n\\ntable {\\n width: 100%;\\n}\\n\\n.rect2 {\\n padding: 15px;\\n height: 130px;\\n width: 93%;\\n background: #eaeaea;\\n}\\n\\n.rect3 {\\n padding-top: 15px;\\n padding-right: 15px;\\n padding-left: 15px;\\n padding-bottom: 0px;\\n height: 66px;\\n width: 93%;\\n background: #ffffff;\\n}\\n\\n.rect3 .button {\\n float: right;\\n margin-right: 8px;\\n margin-top: 5px;\\n}\\n\\n.rect4 {\\n float: left;\\n width: 93%;\\n margin-left: 10px;\\n font-size: 14px;\\n padding-bottom: 0px;\\n}\\n\\n.ngx-timepicker-field-example {\\n float: left;\\n margin-top: 15px;\\n}\\n\\n.rect5 {\\n float: left;\\n width: 50%;\\n}\\n\\n.text-pp {\\n width: 100%;\\n}\\n\\n.call-popup-save {\\n float: right;\\n margin-right: 20px;\\n margin-bottom: 10px;\\n}\\n\\n.icons .fa-phone {\\n transform: rotate(135deg);\\n}\\n\\n.icons .fa-microphone-slash,\\n.icons .fa-phone {\\n font-size: 24px;\\n}\\n\\n.icons .button {\\n margin: 5px;\\n}\\n\\n.icons {\\n margin-top: 25px;\\n padding-left: 29%;\\n}\\n\\n.hang-btn {\\n color: red !important;\\n border-color: red !important;\\n}\\n\\n.classtext1 {\\n font-weight: bold;\\n}\\n\\n.dataview {\\n margin-left: 15px;\\n}\\n\\n.timestamp {\\n font-size: 11px;\\n margin-left: 10px;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-group {\\n border-radius: 0px;\\n margin-bottom: 10px;\\n width: 55%;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle {\\n background-color: #ffffff;\\n color: #00457D;\\n font-size: 12px;\\n width: 50%;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-checked {\\n background-color: #00457D;\\n color: #ffffff;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-label-content {\\n line-height: 22px;\\n}\\n\\n.history-card .applyHorizontalScroll {\\n margin-bottom: 0px;\\n}\\n\\n.history-card ::ng-deep mat-paginator {\\n position: absolute;\\n right: 0;\\n left: 0;\\n}\\n\\n.history-card ::ng-deep .mat-form-field-infix {\\n height: 15px;\\n}\\n\\n.history-card ::ng-deep .mat-card-content {\\n padding-bottom: 40px;\\n}\\n\\n.recording-dailog {\\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n background-color: #ffffff;\\n position: absolute;\\n top: 50%;\\n right: 15%;\\n}\\n\\n.call-response {\\n position: fixed;\\n width: 35%;\\n top: 23%;\\n right: 50px;\\n}\\n\\n.call-stats-card-border1 {\\n border-style: solid solid solid solid;\\n border-width: 1px;\\n border-radius: 0%;\\n border-color: lightgray;\\n}\\n\\n.table-border.mat-table {\\n border-style: none solid solid none;\\n border-color: lightgray;\\n}\\n\\n.icon-background {\\n color: #00457D !important;\\n height: 13px !important;\\n width: 13px !important;\\n}\\n\\n.edit-icon {\\n cursor: pointer;\\n color: #00457D;\\n position: absolute;\\n right: 5px;\\n font-size: 12px;\\n top: 20%;\\n cursor: pointer;\\n}\\n\\n.check-icon {\\n cursor: pointer;\\n color: #1acc04;\\n position: absolute;\\n right: 5px;\\n font-size: 12px;\\n top: 20%;\\n margin-right: 18px;\\n margin-bottom: 5px !important;\\n}\\n\\n.cancle-icon {\\n cursor: pointer;\\n color: red;\\n position: absolute;\\n right: 5px;\\n font-size: 12px;\\n top: 20%;\\n margin-bottom: 5px;\\n margin-left: 35px;\\n}\\n\\n.number-form ::ng-deep .mat-form-field-ripple {\\n height: 0px !important;\\n}\\n\\n.strate-line {\\n position: absolute;\\n right: 5px;\\n font-size: 12px;\\n top: 50%;\\n}\\n\\n.input-border {\\n border: 1px solid lightgray;\\n border-radius: 3px;\\n width: 75% !important;\\n height: 25px;\\n padding-left: 5px;\\n margin-left: 5px;\\n}\\n\\n.input-border-d {\\n border: 1px solid lightgray;\\n border-radius: 3px;\\n width: 70% !important;\\n height: 25px;\\n padding-left: 5px;\\n margin-left: 5px;\\n}\\n\\n.calling-table.mat-table .mat-cell {\\n font-size: 11px;\\n letter-spacing: 0px;\\n color: black;\\n text-transform: capitalize;\\n opacity: 1;\\n}\\n\\ntd.mat-cell,\\ntd.mat-footer-cell,\\nth.mat-header-cell {\\n font-size: 12px;\\n padding: 5px;\\n border-style: solid none none solid;\\n border-width: 0.1px;\\n border-color: lightgray;\\n}\\n\\n.table-font.th {\\n color: black;\\n}\\n\\n.table-font.td {\\n color: #595959;\\n}\\n\\n.srvHistryHeader1 {\\n font-weight: bold;\\n font-size: 12px;\\n}\\n\\n.tech-camp ::ng-deep .mat-tab-body-wrapper {\\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n}\\n\\n.tech-camp ::ng-deep .mat-card-content {\\n margin-bottom: 0px;\\n}\\n\\n.paginator ::ng-deep .mat-form-field-infix {\\n height: 18px !important;\\n padding-bottom: 0px;\\n}\\n\\n.cus360Td {\\n font-size: 11px;\\n font-family: poppins;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9jb21wb25lbnQvZG9vcnN0ZXAtY3VzdG9tZXIzNjAvZG9vcnN0ZXAtY3VzdG9tZXIzNjAuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NvbXBvbmVudC9kb29yc3RlcC1jdXN0b21lcjM2MC9kb29yc3RlcC1jdXN0b21lcjM2MC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLG1CQUFBO0VBQ0EsaUJBQUE7RUFDQSxnQkFBQTtBQ0NKOztBREVBO0VBQ0ksNEJBQUE7QUNDSjs7QURHQTtFQUNJLGNBQUE7RUFDQSxpQkFBQTtFQUNBLGtCQUFBO0FDQUo7O0FER0E7RUFDSSxxQkFBQTtBQ0FKOztBREdBO0VBQ0kscUJBQUE7QUNBSjs7QURHQTtFQUNJLGNBQUE7RUFDQSxpQkFBQTtFQUNBLGtCQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VBQ0EsWUFBQTtBQ0FKOztBREdBO0VBQ0ksZ0JBQUE7RUFDQSxZQUFBO0FDQUo7O0FER0E7RUFDSSwyQkFBQTtFQUNBLGVBQUE7RUFDQSxjQUFBO0FDQUo7O0FER0E7RUFDSSxrQ0FBQTtFQUNBLGNBQUE7QUNBSjs7QURHQTtFQUNJLHlCQUFBO0VBQ0Esc0JBQUE7RUFDQSxjQUFBO0VBQ0EsbUJBQUE7RUFDQSxZQUFBO0FDQUo7O0FER0E7RUFDSSxVQUFBO0FDQUo7O0FER0E7RUFDSSxVQUFBO0VBQ0EsZ0JBQUE7QUNBSjs7QURDSTtFQUNJLGtCQUFBO0VBQ0EsWUFBQTtBQ0NSOztBREdBO0VBQ0ksa0JBQUE7RUFDQSxZQUFBO0VBQ0EsOEJBQUE7RUFDQSxjQUFBO0VBQ0Esa0JBQUE7QUNBSjs7QURHQTtFQUNJLGNBQUE7RUFDQSxrQkFBQTtFQUNBLFdBQUE7RUFDQSxlQUFBO0VBQ0EsTUFBQTtFQUNBLGtCQUFBO0FDQUo7O0FER0E7RUFDSSxZQUFBO0FDQUo7O0FER0E7RUFDSSxZQUFBO0VBQ0EsbUJBQUE7RUFDQSxjQUFBO0FDQUo7O0FER0E7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SSxpQkFBQTtFQUNBLGVBQUE7QUM1Q0o7O0FEK0NBO0VBQ0ksK0dBQUE7QUM1Q0o7O0FEK0NBO0VBQ0ksa0JBQUE7QUM1Q0o7O0FEK0NBO0VBQ0ksdUJBQUE7RUFDQSxtQkFBQTtBQzVDSjs7QUQrQ0E7RUFDSSxlQUFBO0VBQ0Esb0JBQUE7QUM1Q0oiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnQvZG9vcnN0ZXAtY3VzdG9tZXIzNjAvZG9vcnN0ZXAtY3VzdG9tZXIzNjAuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIud29ya2luZy1hcmVhIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG59XG5cbi5jdXN0MzYwLWNvbnRhaW5lciB7XG4gICAgbWFyZ2luOiAxMTVweCAzMHB4IDMwcHggMzBweDtcbiAgICAvL21hcmdpbi1sZWZ0OiAzMHB4O1xufVxuXG4uZXhhbXBsZS1jYXJkMSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4uZXhhbXBsZS1jYXJkMSAuZm9udENsYXNzIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5leGFtcGxlLWNhcmQxIC5pbmxpbmVDbGFzcyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uZXhhbXBsZS1jYXJkMiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIHBhZGRpbmc6IDBweDtcbn1cblxuLmhpc3RvcnktY2FyZCB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBwYWRkaW5nOiAwcHg7XG59XG5cbi5mb250Q2xhc3Mge1xuICAgIGZvbnQ6IEJvbGQgMTJweC8yMHB4IFJvYm90bztcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6ICM3MDcwNzA7XG59XG5cbi5mb250Q2xhc3NCb2xkIHtcbiAgICBmb250LWZhbWlseTogQm9sZCAxNnB4LzIycHggUm9ib3RvO1xuICAgIGNvbG9yOiAjNzA3MDcwO1xufVxuXG4uYm9yZGVyIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjNzA3MDcwO1xuICAgIGZvbnQ6IDEycHgvMThweCBSb2JvdG87XG4gICAgY29sb3I6ICM3MDcwNzA7XG4gICAgYm9yZGVyLXJhZGl1czogMjVweDtcbiAgICBwYWRkaW5nOiA1cHg7XG59XG5cbi5zZXJ2LWhlYWRpbmcge1xuICAgIHdpZHRoOiAzMCU7XG59XG5cbi5zZXJ2LWRlc2Mge1xuICAgIHdpZHRoOiA3MCU7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBzbWFsbCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbn1cblxuLmJ1dHRvbiB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBmb250OiBSZWd1bGFyIDE2cHgvMjJweCBSb2JvdG87XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4O1xufVxuXG4ucmVjZW50IHtcbiAgICBjb2xvcjogIzFhY2MwNDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcmlnaHQ6IDE1cHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiA3cHg7XG59XG5cbi5kaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogMC42O1xufVxuXG4uYnV0dG9uc2VydmljZSB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGZvbnQtZmFtaWx5OiBSb2JvdG87XG4gICAgY29sb3I6ICNmMWYxZmY7XG59XG5cbi5jaGVja2FsaWduIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDE2cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXRvcDogMjBweCAhaW1wb3J0YW50O1xufVxuXG4uY2hlY2thbGlnbm1lbnQge1xuICAgIHBhZGRpbmctdG9wOiAyMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5pbmxpbmVDbGFzcyB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIGZvbnQ6IFJlZ3VsYXIgMTRweCBSb2JvdG87XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gICAgY29sb3I6IGJsYWNrO1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbnAuaW5saW5lQ2xhc3Mge1xuICAgIG1hcmdpbi10b3A6IDBweDtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG5cbi5tYXJnaW5DbGFzcyB7XG4gICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG59XG5cbi5tYXJnaW5DbGFzczEge1xuICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xufVxuXG4ubmF2YmFyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgLy9mb250LXdlaWdodDogYm9sZDtcbiAgICBmb250LXNpemU6IDEycHg7XG59XG5cbi5uYXZiYXIgYSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uaGlzdG9yeS1idG4ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMzBweDtcbn1cblxuLm5vYnVsbGV0IHtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLnBsYXkge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cblxuLmNvbG9yU3R5bGUge1xuICAgIGNvbG9yOiBncmVlbnllbGxvdztcbn1cblxuLmNhbGxMb2dzIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIGZsb2F0OiBsZWZ0O1xufVxuXG4uY3VzdE5vdGlmaWNhdGlvbiB7XG4gICAgZGlzcGxheTogaW5saW5lO1xufVxuXG4uZXhhbXBsZS1yYWRpby1ncm91cCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4uZXhhbXBsZS1yYWRpby1idXR0b24ge1xuICAgIG1hcmdpbjogNXB4O1xufVxuXG4udXBkYXRlLWJ0biB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzE2Mzc3ZDtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBtYXJnaW4tbGVmdDogMTVweDtcbn1cblxuLmVkaXQtYnRuIHtcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgIGNvbG9yOiAjMTYzNzdkO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm51bWJlci1mb3JtIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gICAgcGFkZGluZy1ib3R0b206IDVweDtcbn1cblxuLm51bWJlci1mb3JtIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgIHBhZGRpbmc6IDAuMTM3NWVtIDA7XG4gICAgLy9ib3JkZXI6IHNvbGlkO1xufVxuXG4ubnVtYmVyLWZvcm0gOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgIGJvdHRvbTogMC4yNWVtO1xuICAgIGhlaWdodDogMHB4O1xufVxuXG4ubnVtYmVyLWZvcm0gOjpuZy1kZWVwIGlucHV0Lm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgICBtYXJnaW4tdG9wOiAwcHg7XG59XG5cbi5udW1iZXItZm9ybSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ubnVtYmVyLXJvdyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vL2N1c3RvbSBtYXQtc2VsZWN0XG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIC8vZm9udC1zaXplOiAxMnB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3Qge1xuICAgIHBhZGRpbmc6IDJweCAwcHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgcGFkZGluZy1ib3R0b206IDVweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgICB3aWR0aDogOTAlO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIge1xuICAgIHRvcDogMDtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIHRvcDogMDtcbiAgICBtYXJnaW4tdG9wOiA0cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbn1cblxuLmZpbHRlci1sYWJlbCB7XG4gICAgZm9udDogQm9sZCAxNHB4IFJvYm90bztcbiAgICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICAgIGNvbG9yOiAjM2MzYzNjO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbn1cblxuLy9jdXN0bWVyMzYwIHZpZSB1cGRhdGUgY3NzXG4ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQ6IEJvbGQgMTRweC8xNnB4IFJvYm90bztcbiAgICBpIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgICAgICBjb2xvcjogIzAwNDU3RDtcbiAgICB9XG59XG5cbi5mb250Q2xhc3Mge1xuICAgIGZvbnQ6IEJvbGQgMTRweC8xNnB4IFJvYm90bztcbiAgICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogIzdiN2E3YTtcbiAgICBvcGFjaXR5OiAxO1xuICAgIG1hcmdpbi1ib3R0b206IDNweCAhaW1wb3J0YW50O1xufVxuXG4uZm9udENsYXNzQm9sZCB7XG4gICAgZm9udC1mYW1pbHk6IEJvbGQgMTZweC8yMnB4IFJvYm90bztcbiAgICBjb2xvcjogIzAwMDAwMDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBpIHtcbiAgICAgICAgY29sb3I6ICMwMDQ1N0Q7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIH1cbn1cblxuLmJvcmRlciB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzcwNzA3MDtcbiAgICBmb250OiAxMnB4LzE4cHggUm9ib3RvO1xuICAgIGNvbG9yOiAjNzA3MDcwO1xuICAgIGJvcmRlci1yYWRpdXM6IDI1cHg7XG4gICAgcGFkZGluZzogNXB4O1xufVxuXG4uYnV0dG9uIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGZvbnQ6IFJlZ3VsYXIgMTZweC8yMnB4IFJvYm90bztcbiAgICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLmJ1dHRvbnNlcnZpY2Uge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBmb250LWZhbWlseTogUm9ib3RvO1xuICAgIGNvbG9yOiAjZjFmMWZmO1xufVxuXG4uZXhhbXBsZS1yYWRpby1ncm91cCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4uZXhhbXBsZS1yYWRpby1idXR0b24ge1xuICAgIG1hcmdpbjogNXB4O1xufVxuXG4ubWF0LWRpYWxvZy1jb250ZW50IHtcbiAgICBwYWRkaW5nOiA1cHggMjRweDtcbn1cblxuLmNvbnRhY3Qge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbn1cblxuLmNvbnRhY3QgLm1hdC10YWItZ3JvdXAge1xuICAgIG1pbi1oZWlnaHQ6IDE1MHB4O1xufVxuXG4uY29udGFjdCA6Om5nLWRlZXAgLm1hdC10YWItbGFiZWwge1xuICAgIGhlaWdodDogMjBweDtcbiAgICAvL3BhZGRpbmc6IDBweCAxMHB4O1xuICAgIG1pbi13aWR0aDogOTBweDtcbiAgICBjb2xvcjogIzU0ODJCQztcbiAgICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gICAgZm9udC1zaXplOiAxMXB4O1xufVxuXG4uY29udGFjdCA6Om5nLWRlZXAgLm1hdC10YWItbGFiZWwtYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTQ4MkJDO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi5jb250YWN0IDo6bmctZGVlcCAubWF0LXRhYi1oZWFkZXIge1xuICAgIGJvcmRlcjogbm9uZTtcbn1cblxuLmNvbnRhY3QgOjpuZy1kZWVwIC5tYXQtdGFiLWxpc3QgLm1hdC1pbmstYmFyIHtcbiAgICBoZWlnaHQ6IDBweDtcbn1cblxuLnRhYnJvdyB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cbi5hbGlnbiB7XG4gICAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICAgIHBhZGRpbmctdG9wOiAyMHB4O1xufVxuXG4udGFicm93IDo6bmctZGVlcCAubWF0LXRhYi1sYWJlbCB7XG4gICAgaGVpZ2h0OiAzNXB4O1xuICAgIHBhZGRpbmc6IDBweCAxMHB4O1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDhweCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA4cHggIWltcG9ydGFudDtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7XG4gICAgYm9yZGVyLWNvbG9yOiAjZDNkM2QzO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgbWFyZ2luLWxlZnQ6IDNweDtcbiAgICBjb2xvcjogYmxhY2s7XG4gICAgb3BhY2l0eTogMTtcbiAgICAvLyBmb250LXNpemU6IDEzcHggIWltcG9ydGFudDs7XG59XG5cbi50YWJyb3cgOjpuZy1kZWVwIC5tYXQtdGFiLWxhYmVsLWFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RDtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBvcGFjaXR5OiAxO1xuICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbn1cblxuLnRhYnJvdyA6Om5nLWRlZXAgLm1hdC10YWItaGVhZGVyIHtcbiAgICBib3JkZXI6IG5vbmU7XG59XG5cbi50YWJyb3cgOjpuZy1kZWVwIC5tYXQtdGFiLWxpc3QgLm1hdC1pbmstYmFyIHtcbiAgICBoZWlnaHQ6IDBweDtcbn1cblxuLy90YWJsZVxuLnRhYmxlIHtcbiAgICBmb250LWZhbWlseTogXCJUcmVidWNoZXQgTVNcIiwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG59XG5cbi50YWJsZSB0ZCxcbi50YWJsZSB0aCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICB3aWR0aDogYXV0bztcbiAgICBmb250LXNpemU6IDEycHg7XG59XG5cbi50YWJsZSB0cjpudGgtY2hpbGQoZXZlbikge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG5cbi50YWJsZSB0cjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbn1cblxuLnRhYmxlIHRoIHtcbiAgICBwYWRkaW5nLXRvcDogNXB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDNkM2QzO1xuICAgIGNvbG9yOiBibGFjaztcbn1cblxuLy9mYXVsdCB0YWJsZVxuLmZhdWx0LXRhYmxlIHRkLFxuLmZhdWx0LXRhYmxlIHRoIHtcbiAgICBwYWRkaW5nOiA1cHg7XG59XG5cbi5mYXVsdC10YWJsZSB7XG4gICAgLmZhdWx0LWRhdGUge1xuICAgICAgICB3aWR0aDogMTUlICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIC5mYXVsdC1kZXMge1xuICAgICAgICB3aWR0aDogMjAlICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4vL3NsaWRpbmcgYnRuXG4uYnRuIHtcbiAgICAvL2JvcmRlci1sZWZ0OiA0cHggc29saWQgIzJlMzY2ODtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIC8vdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0QgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiA1cHggIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDI1cHg7XG59XG5cbi5idG4gcCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxMHB4O1xufVxuXG5cbi8qIHNsaWRlcnMgKi9cblxuLy8gLmJ0bjpiZWZvcmUge1xuLy8gICAgIGNvbnRlbnQ6IFwiXCI7XG4vLyAgICAgd2lkdGg6IDEwMCU7XG4vLyAgICAgaGVpZ2h0OiAxMDAlO1xuLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0Q7XG4vLyAgICAgY29sb3I6ICNmZmY7XG4vLyAgICAgLy9ib3JkZXI6IDJweCBzb2xpZCAjMkUzNjY4O1xuLy8gICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuLy8gfVxuXG4vKiBMZWZ0IFNsaWRlciAqL1xuXG4vLyAuYnRuLTI6YmVmb3JlIHtcbi8vICAgICB0b3A6IDA7XG4vLyAgICAgbGVmdDogLTIzMHB4O1xuLy8gfVxuLy8gLmJ0bi0yOmhvdmVyOmJlZm9yZSB7XG4vLyAgICAgbGVmdDogMDtcbi8vIH1cbi8vIC5idG4tMjpob3ZlciB7XG4vLyAgICAgY29sb3I6ICNmZmY7XG4vLyAgICAgLy9ib3JkZXI6IDJweCBzb2xpZCAjMkUzNjY4O1xuLy8gfVxuLmJ0bi0xIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICMwMDQ1N0QgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMDA0NTdEO1xufVxuXG4uYnRuLTEgcCB7XG4gICAgbWFyZ2luOiBhdXRvO1xufVxuXG4vL2NhbGwgZGlhbG9nIGNzc1xudGFibGUge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4ucmVjdDIge1xuICAgIHBhZGRpbmc6IDE1cHg7XG4gICAgaGVpZ2h0OiAxMzBweDtcbiAgICB3aWR0aDogOTMlO1xuICAgIGJhY2tncm91bmQ6ICNlYWVhZWE7XG59XG5cbi5yZWN0MyB7XG4gICAgcGFkZGluZy10b3A6IDE1cHg7XG4gICAgcGFkZGluZy1yaWdodDogMTVweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDBweDtcbiAgICBoZWlnaHQ6IDY2cHg7XG4gICAgd2lkdGg6IDkzJTtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xufVxuXG4ucmVjdDMgLmJ1dHRvbiB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIG1hcmdpbi10b3A6IDVweDtcbn1cblxuLnJlY3Q0IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogOTMlO1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMHB4O1xufVxuXG4ubmd4LXRpbWVwaWNrZXItZmllbGQtZXhhbXBsZSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXRvcDogMTVweDtcbn1cblxuLnJlY3Q1IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogNTAlO1xufVxuXG4udGV4dC1wcCB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5jYWxsLXBvcHVwLXNhdmUge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLmljb25zIC5mYS1waG9uZSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKTtcbn1cblxuLmljb25zIC5mYS1taWNyb3Bob25lLXNsYXNoLFxuLmljb25zIC5mYS1waG9uZSB7XG4gICAgZm9udC1zaXplOiAyNHB4O1xufVxuXG4uaWNvbnMgLmJ1dHRvbiB7XG4gICAgbWFyZ2luOiA1cHg7XG59XG5cbi5pY29ucyB7XG4gICAgbWFyZ2luLXRvcDogMjVweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDI5JTtcbn1cblxuLmhhbmctYnRuIHtcbiAgICBjb2xvcjogcmVkICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiByZWQgIWltcG9ydGFudDtcbn1cblxuLmNsYXNzdGV4dDEge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uZGF0YXZpZXcge1xuICAgIG1hcmdpbi1sZWZ0OiAxNXB4O1xufVxuXG4udGltZXN0YW1wIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIHtcbiAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICB3aWR0aDogNTUlO1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBjb2xvcjogIzAwNDU3RDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgd2lkdGg6IDUwJTtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RDtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtbGFiZWwtY29udGVudCB7XG4gICAgbGluZS1oZWlnaHQ6IDIycHg7XG59XG5cbi5oaXN0b3J5LWNhcmQgLmFwcGx5SG9yaXpvbnRhbFNjcm9sbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xufVxuXG4uaGlzdG9yeS1jYXJkIDo6bmctZGVlcCBtYXQtcGFnaW5hdG9yIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDA7XG4gICAgbGVmdDogMDtcbn1cblxuLmhpc3RvcnktY2FyZCA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICBoZWlnaHQ6IDE1cHg7XG59XG5cbi5oaXN0b3J5LWNhcmQgOjpuZy1kZWVwIC5tYXQtY2FyZC1jb250ZW50IHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNDBweDtcbn1cblxuLy9yZWNvcmRpbmcgZGFpbG9nXG4ucmVjb3JkaW5nLWRhaWxvZyB7XG4gICAgYm94LXNoYWRvdzogMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIHJpZ2h0OiAxNSU7XG59XG5cbi8vY2FsbGluZyBkYWlsb2dcbi5jYWxsLXJlc3BvbnNlIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgd2lkdGg6IDM1JTtcbiAgICB0b3A6IDIzJTtcbiAgICByaWdodDogNTBweDtcbn1cblxuLmNhbGwtc3RhdHMtY2FyZC1ib3JkZXIxIHtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIHNvbGlkIHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDAlO1xuICAgIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4udGFibGUtYm9yZGVyLm1hdC10YWJsZSB7XG4gICAgYm9yZGVyLXN0eWxlOiBub25lIHNvbGlkIHNvbGlkIG5vbmU7XG4gICAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG59XG5cbi5pY29uLWJhY2tncm91bmQge1xuICAgIGNvbG9yOiAjMDA0NTdEICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAxM3B4ICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDEzcHggIWltcG9ydGFudDtcbn1cblxuLmVkaXQtaWNvbiB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGNvbG9yOiAjMDA0NTdEO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogNXB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICB0b3A6IDIwJTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5jaGVjay1pY29uIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY29sb3I6ICMxYWNjMDQ7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiA1cHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHRvcDogMjAlO1xuICAgIG1hcmdpbi1yaWdodDogMThweDtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHggIWltcG9ydGFudDtcbiAgICAvL2JvcmRlcjogbm9uZSBzb2xpZCBub25lIG5vbmUgIWltcG9ydGFudDtcbiAgICAvL2JvcmRlci1jb2xvcjogYmxhY2s7XG59XG5cbi5jYW5jbGUtaWNvbiB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGNvbG9yOiByZWQ7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiA1cHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHRvcDogMjAlO1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICBtYXJnaW4tbGVmdDogMzVweDtcbn1cblxuLm51bWJlci1mb3JtIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgICBoZWlnaHQ6IDBweCAhaW1wb3J0YW50O1xufVxuXG4uc3RyYXRlLWxpbmUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogNXB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICB0b3A6IDUwJTtcbn1cblxuLmlucHV0LWJvcmRlciB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICB3aWR0aDogNzUlICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAyNXB4O1xuICAgIHBhZGRpbmctbGVmdDogNXB4O1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG59XG5cbi5pbnB1dC1ib3JkZXItZCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICB3aWR0aDogNzAlICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAyNXB4O1xuICAgIHBhZGRpbmctbGVmdDogNXB4O1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG59XG5cbi5jYWxsaW5nLXRhYmxlLm1hdC10YWJsZSAubWF0LWNlbGwge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICAgIGNvbG9yOiBibGFjaztcbiAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgICBvcGFjaXR5OiAxO1xufVxuXG50ZC5tYXQtY2VsbCxcbnRkLm1hdC1mb290ZXItY2VsbCxcbnRoLm1hdC1oZWFkZXItY2VsbCB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkIG5vbmUgbm9uZSBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDAuMXB4O1xuICAgIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4udGFibGUtZm9udC50aCB7XG4gICAgY29sb3I6IGJsYWNrO1xufVxuXG4udGFibGUtZm9udC50ZCB7XG4gICAgY29sb3I6ICM1OTU5NTk7XG59XG5cbi5zcnZIaXN0cnlIZWFkZXIxIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBmb250LXNpemU6IDEycHg7XG59XG5cbi50ZWNoLWNhbXAgOjpuZy1kZWVwIC5tYXQtdGFiLWJvZHktd3JhcHBlciB7XG4gICAgYm94LXNoYWRvdzogMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAuMiksIDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgLjE0KSwgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAuMTIpO1xufVxuXG4udGVjaC1jYW1wIDo6bmctZGVlcCAubWF0LWNhcmQtY29udGVudCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xufVxuXG4ucGFnaW5hdG9yIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgIGhlaWdodDogMThweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAwcHg7XG59XG5cbi5jdXMzNjBUZHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC1mYW1pbHk6IHBvcHBpbnM7XG59XG4iLCIud29ya2luZy1hcmVhIHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG59XG5cbi5jdXN0MzYwLWNvbnRhaW5lciB7XG4gIG1hcmdpbjogMTE1cHggMzBweCAzMHB4IDMwcHg7XG59XG5cbi5leGFtcGxlLWNhcmQxIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbi5leGFtcGxlLWNhcmQxIC5mb250Q2xhc3Mge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5leGFtcGxlLWNhcmQxIC5pbmxpbmVDbGFzcyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLmV4YW1wbGUtY2FyZDIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xuICBwYWRkaW5nOiAwcHg7XG59XG5cbi5oaXN0b3J5LWNhcmQge1xuICBib3gtc2hhZG93OiBub25lO1xuICBwYWRkaW5nOiAwcHg7XG59XG5cbi5mb250Q2xhc3Mge1xuICBmb250OiBCb2xkIDEycHgvMjBweCBSb2JvdG87XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICM3MDcwNzA7XG59XG5cbi5mb250Q2xhc3NCb2xkIHtcbiAgZm9udC1mYW1pbHk6IEJvbGQgMTZweC8yMnB4IFJvYm90bztcbiAgY29sb3I6ICM3MDcwNzA7XG59XG5cbi5ib3JkZXIge1xuICBib3JkZXI6IDFweCBzb2xpZCAjNzA3MDcwO1xuICBmb250OiAxMnB4LzE4cHggUm9ib3RvO1xuICBjb2xvcjogIzcwNzA3MDtcbiAgYm9yZGVyLXJhZGl1czogMjVweDtcbiAgcGFkZGluZzogNXB4O1xufVxuXG4uc2Vydi1oZWFkaW5nIHtcbiAgd2lkdGg6IDMwJTtcbn1cblxuLnNlcnYtZGVzYyB7XG4gIHdpZHRoOiA3MCU7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG4uc2Vydi1kZXNjIHNtYWxsIHtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbi5idXR0b24ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZsb2F0OiByaWdodDtcbiAgZm9udDogUmVndWxhciAxNnB4LzIycHggUm9ib3RvO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xufVxuXG4ucmVjZW50IHtcbiAgY29sb3I6ICMxYWNjMDQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcmlnaHQ6IDE1cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiA3cHg7XG59XG5cbi5kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNjtcbn1cblxuLmJ1dHRvbnNlcnZpY2Uge1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG87XG4gIGNvbG9yOiAjZjFmMWZmO1xufVxuXG4uY2hlY2thbGlnbiB7XG4gIHBhZGRpbmctbGVmdDogMTZweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXRvcDogMjBweCAhaW1wb3J0YW50O1xufVxuXG4uY2hlY2thbGlnbm1lbnQge1xuICBwYWRkaW5nLXRvcDogMjBweCAhaW1wb3J0YW50O1xufVxuXG4uaW5saW5lQ2xhc3Mge1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIGZvbnQ6IFJlZ3VsYXIgMTRweCBSb2JvdG87XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgY29sb3I6IGJsYWNrO1xuICBvcGFjaXR5OiAxO1xufVxuXG5wLmlubGluZUNsYXNzIHtcbiAgbWFyZ2luLXRvcDogMHB4O1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG5cbi5tYXJnaW5DbGFzcyB7XG4gIG1hcmdpbi1sZWZ0OiAyMHB4O1xufVxuXG4ubWFyZ2luQ2xhc3MxIHtcbiAgbWFyZ2luLWxlZnQ6IDQwcHg7XG59XG5cbi5uYXZiYXIge1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gIHBhZGRpbmctdG9wOiAxMHB4O1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5uYXZiYXIgYSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmhpc3RvcnktYnRuIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMzBweDtcbn1cblxuLm5vYnVsbGV0IHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4ucGxheSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG59XG5cbi5jb2xvclN0eWxlIHtcbiAgY29sb3I6IGdyZWVueWVsbG93O1xufVxuXG4uY2FsbExvZ3Mge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICBmbG9hdDogbGVmdDtcbn1cblxuLmN1c3ROb3RpZmljYXRpb24ge1xuICBkaXNwbGF5OiBpbmxpbmU7XG59XG5cbi5leGFtcGxlLXJhZGlvLWdyb3VwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLmV4YW1wbGUtcmFkaW8tYnV0dG9uIHtcbiAgbWFyZ2luOiA1cHg7XG59XG5cbi51cGRhdGUtYnRuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE2Mzc3ZDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIG1hcmdpbi1sZWZ0OiAxNXB4O1xufVxuXG4uZWRpdC1idG4ge1xuICBtYXJnaW4tbGVmdDogNXB4O1xuICBjb2xvcjogIzE2Mzc3ZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgYm9yZGVyOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5udW1iZXItZm9ybSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICBwYWRkaW5nLWJvdHRvbTogNXB4O1xufVxuXG4ubnVtYmVyLWZvcm0gOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIHBhZGRpbmc6IDAuMTM3NWVtIDA7XG59XG5cbi5udW1iZXItZm9ybSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGJvdHRvbTogMC4yNWVtO1xuICBoZWlnaHQ6IDBweDtcbn1cblxuLm51bWJlci1mb3JtIDo6bmctZGVlcCBpbnB1dC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gIG1hcmdpbi10b3A6IDBweDtcbn1cblxuLm51bWJlci1mb3JtIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLm51bWJlci1yb3cge1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBwYWRkaW5nOiAwO1xuICBoZWlnaHQ6IDIwcHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdCB7XG4gIHBhZGRpbmc6IDJweCAwcHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gIHdpZHRoOiAxMDAlO1xuICBmb250LXNpemU6IDEycHg7XG4gIHBhZGRpbmctYm90dG9tOiA1cHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gIHdpZHRoOiA5MCU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gIHRvcDogMDtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdG9wOiAwO1xuICBtYXJnaW4tdG9wOiA0cHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG59XG5cbi5maWx0ZXItbGFiZWwge1xuICBmb250OiBCb2xkIDE0cHggUm9ib3RvO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICBjb2xvcjogIzNjM2MzYztcbiAgb3BhY2l0eTogMTtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICBmb250LXNpemU6IDEzcHg7XG59XG5cbi5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZSB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udDogQm9sZCAxNHB4LzE2cHggUm9ib3RvO1xufVxuLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRpdGxlIGkge1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gIGNvbG9yOiAjMDA0NTdEO1xufVxuXG4uZm9udENsYXNzIHtcbiAgZm9udDogQm9sZCAxNHB4LzE2cHggUm9ib3RvO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjN2I3YTdhO1xuICBvcGFjaXR5OiAxO1xuICBtYXJnaW4tYm90dG9tOiAzcHggIWltcG9ydGFudDtcbn1cblxuLmZvbnRDbGFzc0JvbGQge1xuICBmb250LWZhbWlseTogQm9sZCAxNnB4LzIycHggUm9ib3RvO1xuICBjb2xvcjogIzAwMDAwMDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuLmZvbnRDbGFzc0JvbGQgaSB7XG4gIGNvbG9yOiAjMDA0NTdEO1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cblxuLmJvcmRlciB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM3MDcwNzA7XG4gIGZvbnQ6IDEycHgvMThweCBSb2JvdG87XG4gIGNvbG9yOiAjNzA3MDcwO1xuICBib3JkZXItcmFkaXVzOiAyNXB4O1xuICBwYWRkaW5nOiA1cHg7XG59XG5cbi5idXR0b24ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZsb2F0OiByaWdodDtcbiAgZm9udDogUmVndWxhciAxNnB4LzIycHggUm9ib3RvO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLmJ1dHRvbnNlcnZpY2Uge1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG87XG4gIGNvbG9yOiAjZjFmMWZmO1xufVxuXG4uZXhhbXBsZS1yYWRpby1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi5leGFtcGxlLXJhZGlvLWJ1dHRvbiB7XG4gIG1hcmdpbjogNXB4O1xufVxuXG4ubWF0LWRpYWxvZy1jb250ZW50IHtcbiAgcGFkZGluZzogNXB4IDI0cHg7XG59XG5cbi5jb250YWN0IHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgbWFyZ2luLXRvcDogMjBweDtcbn1cblxuLmNvbnRhY3QgLm1hdC10YWItZ3JvdXAge1xuICBtaW4taGVpZ2h0OiAxNTBweDtcbn1cblxuLmNvbnRhY3QgOjpuZy1kZWVwIC5tYXQtdGFiLWxhYmVsIHtcbiAgaGVpZ2h0OiAyMHB4O1xuICBtaW4td2lkdGg6IDkwcHg7XG4gIGNvbG9yOiAjNTQ4MkJDO1xuICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gIGZvbnQtc2l6ZTogMTFweDtcbn1cblxuLmNvbnRhY3QgOjpuZy1kZWVwIC5tYXQtdGFiLWxhYmVsLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1NDgyQkM7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBvcGFjaXR5OiAxO1xufVxuXG4uY29udGFjdCA6Om5nLWRlZXAgLm1hdC10YWItaGVhZGVyIHtcbiAgYm9yZGVyOiBub25lO1xufVxuXG4uY29udGFjdCA6Om5nLWRlZXAgLm1hdC10YWItbGlzdCAubWF0LWluay1iYXIge1xuICBoZWlnaHQ6IDBweDtcbn1cblxuLnRhYnJvdyB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cbi5hbGlnbiB7XG4gIHBhZGRpbmctbGVmdDogMTZweDtcbiAgcGFkZGluZy10b3A6IDIwcHg7XG59XG5cbi50YWJyb3cgOjpuZy1kZWVwIC5tYXQtdGFiLWxhYmVsIHtcbiAgaGVpZ2h0OiAzNXB4O1xuICBwYWRkaW5nOiAwcHggMTBweDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogOHB4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA4cHggIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4O1xuICBib3JkZXItY29sb3I6ICNkM2QzZDM7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBtYXJnaW4tbGVmdDogM3B4O1xuICBjb2xvcjogYmxhY2s7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi50YWJyb3cgOjpuZy1kZWVwIC5tYXQtdGFiLWxhYmVsLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0Q7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBvcGFjaXR5OiAxO1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG5cbi50YWJyb3cgOjpuZy1kZWVwIC5tYXQtdGFiLWhlYWRlciB7XG4gIGJvcmRlcjogbm9uZTtcbn1cblxuLnRhYnJvdyA6Om5nLWRlZXAgLm1hdC10YWItbGlzdCAubWF0LWluay1iYXIge1xuICBoZWlnaHQ6IDBweDtcbn1cblxuLnRhYmxlIHtcbiAgZm9udC1mYW1pbHk6IFwiVHJlYnVjaGV0IE1TXCIsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tdG9wOiAyMHB4O1xufVxuXG4udGFibGUgdGQsXG4udGFibGUgdGgge1xuICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gIHBhZGRpbmc6IDVweDtcbiAgd2lkdGg6IGF1dG87XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLnRhYmxlIHRyOm50aC1jaGlsZChldmVuKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG5cbi50YWJsZSB0cjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG5cbi50YWJsZSB0aCB7XG4gIHBhZGRpbmctdG9wOiA1cHg7XG4gIHBhZGRpbmctYm90dG9tOiA1cHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkM2QzZDM7XG4gIGNvbG9yOiBibGFjaztcbn1cblxuLmZhdWx0LXRhYmxlIHRkLFxuLmZhdWx0LXRhYmxlIHRoIHtcbiAgcGFkZGluZzogNXB4O1xufVxuXG4uZmF1bHQtdGFibGUgLmZhdWx0LWRhdGUge1xuICB3aWR0aDogMTUlICFpbXBvcnRhbnQ7XG59XG4uZmF1bHQtdGFibGUgLmZhdWx0LWRlcyB7XG4gIHdpZHRoOiAyMCUgIWltcG9ydGFudDtcbn1cblxuLmJ0biB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDVweCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDI1cHg7XG59XG5cbi5idG4gcCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6ICNmZmY7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgbWFyZ2luOiBhdXRvO1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxMHB4O1xufVxuXG4vKiBzbGlkZXJzICovXG4vKiBMZWZ0IFNsaWRlciAqL1xuLmJ0bi0xIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICBjb2xvcjogIzAwNDU3RCAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCAjMDA0NTdEO1xufVxuXG4uYnRuLTEgcCB7XG4gIG1hcmdpbjogYXV0bztcbn1cblxudGFibGUge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLnJlY3QyIHtcbiAgcGFkZGluZzogMTVweDtcbiAgaGVpZ2h0OiAxMzBweDtcbiAgd2lkdGg6IDkzJTtcbiAgYmFja2dyb3VuZDogI2VhZWFlYTtcbn1cblxuLnJlY3QzIHtcbiAgcGFkZGluZy10b3A6IDE1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gIHBhZGRpbmctbGVmdDogMTVweDtcbiAgcGFkZGluZy1ib3R0b206IDBweDtcbiAgaGVpZ2h0OiA2NnB4O1xuICB3aWR0aDogOTMlO1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xufVxuXG4ucmVjdDMgLmJ1dHRvbiB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gIG1hcmdpbi10b3A6IDVweDtcbn1cblxuLnJlY3Q0IHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiA5MyU7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIHBhZGRpbmctYm90dG9tOiAwcHg7XG59XG5cbi5uZ3gtdGltZXBpY2tlci1maWVsZC1leGFtcGxlIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi10b3A6IDE1cHg7XG59XG5cbi5yZWN0NSB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogNTAlO1xufVxuXG4udGV4dC1wcCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uY2FsbC1wb3B1cC1zYXZlIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi5pY29ucyAuZmEtcGhvbmUge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpO1xufVxuXG4uaWNvbnMgLmZhLW1pY3JvcGhvbmUtc2xhc2gsXG4uaWNvbnMgLmZhLXBob25lIHtcbiAgZm9udC1zaXplOiAyNHB4O1xufVxuXG4uaWNvbnMgLmJ1dHRvbiB7XG4gIG1hcmdpbjogNXB4O1xufVxuXG4uaWNvbnMge1xuICBtYXJnaW4tdG9wOiAyNXB4O1xuICBwYWRkaW5nLWxlZnQ6IDI5JTtcbn1cblxuLmhhbmctYnRuIHtcbiAgY29sb3I6IHJlZCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IHJlZCAhaW1wb3J0YW50O1xufVxuXG4uY2xhc3N0ZXh0MSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uZGF0YXZpZXcge1xuICBtYXJnaW4tbGVmdDogMTVweDtcbn1cblxuLnRpbWVzdGFtcCB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIHtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICB3aWR0aDogNTUlO1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGNvbG9yOiAjMDA0NTdEO1xuICBmb250LXNpemU6IDEycHg7XG4gIHdpZHRoOiA1MCU7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtbGFiZWwtY29udGVudCB7XG4gIGxpbmUtaGVpZ2h0OiAyMnB4O1xufVxuXG4uaGlzdG9yeS1jYXJkIC5hcHBseUhvcml6b250YWxTY3JvbGwge1xuICBtYXJnaW4tYm90dG9tOiAwcHg7XG59XG5cbi5oaXN0b3J5LWNhcmQgOjpuZy1kZWVwIG1hdC1wYWdpbmF0b3Ige1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiAwO1xufVxuXG4uaGlzdG9yeS1jYXJkIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBoZWlnaHQ6IDE1cHg7XG59XG5cbi5oaXN0b3J5LWNhcmQgOjpuZy1kZWVwIC5tYXQtY2FyZC1jb250ZW50IHtcbiAgcGFkZGluZy1ib3R0b206IDQwcHg7XG59XG5cbi5yZWNvcmRpbmctZGFpbG9nIHtcbiAgYm94LXNoYWRvdzogMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICByaWdodDogMTUlO1xufVxuXG4uY2FsbC1yZXNwb25zZSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgd2lkdGg6IDM1JTtcbiAgdG9wOiAyMyU7XG4gIHJpZ2h0OiA1MHB4O1xufVxuXG4uY2FsbC1zdGF0cy1jYXJkLWJvcmRlcjEge1xuICBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIHNvbGlkIHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLXJhZGl1czogMCU7XG4gIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4udGFibGUtYm9yZGVyLm1hdC10YWJsZSB7XG4gIGJvcmRlci1zdHlsZTogbm9uZSBzb2xpZCBzb2xpZCBub25lO1xuICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxuLmljb24tYmFja2dyb3VuZCB7XG4gIGNvbG9yOiAjMDA0NTdEICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMTNweCAhaW1wb3J0YW50O1xuICB3aWR0aDogMTNweCAhaW1wb3J0YW50O1xufVxuXG4uZWRpdC1pY29uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogIzAwNDU3RDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogNXB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIHRvcDogMjAlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5jaGVjay1pY29uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogIzFhY2MwNDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogNXB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIHRvcDogMjAlO1xuICBtYXJnaW4tcmlnaHQ6IDE4cHg7XG4gIG1hcmdpbi1ib3R0b206IDVweCAhaW1wb3J0YW50O1xufVxuXG4uY2FuY2xlLWljb24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiByZWQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDVweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICB0b3A6IDIwJTtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICBtYXJnaW4tbGVmdDogMzVweDtcbn1cblxuLm51bWJlci1mb3JtIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgaGVpZ2h0OiAwcHggIWltcG9ydGFudDtcbn1cblxuLnN0cmF0ZS1saW5lIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogNXB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIHRvcDogNTAlO1xufVxuXG4uaW5wdXQtYm9yZGVyIHtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIHdpZHRoOiA3NSUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAyNXB4O1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgbWFyZ2luLWxlZnQ6IDVweDtcbn1cblxuLmlucHV0LWJvcmRlci1kIHtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIHdpZHRoOiA3MCUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAyNXB4O1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgbWFyZ2luLWxlZnQ6IDVweDtcbn1cblxuLmNhbGxpbmctdGFibGUubWF0LXRhYmxlIC5tYXQtY2VsbCB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgY29sb3I6IGJsYWNrO1xuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgb3BhY2l0eTogMTtcbn1cblxudGQubWF0LWNlbGwsXG50ZC5tYXQtZm9vdGVyLWNlbGwsXG50aC5tYXQtaGVhZGVyLWNlbGwge1xuICBmb250LXNpemU6IDEycHg7XG4gIHBhZGRpbmc6IDVweDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZCBub25lIG5vbmUgc29saWQ7XG4gIGJvcmRlci13aWR0aDogMC4xcHg7XG4gIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4udGFibGUtZm9udC50aCB7XG4gIGNvbG9yOiBibGFjaztcbn1cblxuLnRhYmxlLWZvbnQudGQge1xuICBjb2xvcjogIzU5NTk1OTtcbn1cblxuLnNydkhpc3RyeUhlYWRlcjEge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4udGVjaC1jYW1wIDo6bmctZGVlcCAubWF0LXRhYi1ib2R5LXdyYXBwZXIge1xuICBib3gtc2hhZG93OiAwIDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgMXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi50ZWNoLWNhbXAgOjpuZy1kZWVwIC5tYXQtY2FyZC1jb250ZW50IHtcbiAgbWFyZ2luLWJvdHRvbTogMHB4O1xufVxuXG4ucGFnaW5hdG9yIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBoZWlnaHQ6IDE4cHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1ib3R0b206IDBweDtcbn1cblxuLmN1czM2MFRkIHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LWZhbWlseTogcG9wcGlucztcbn0iXX0= */\"","import { Component, OnInit, ViewChild } from \"@angular/core\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { CommonService } from \"../../core/service/common-service/common.service\";\nimport { MatDialog, MatSort, MatPaginator, MatTableDataSource, MatTabChangeEvent } from \"@angular/material\";\nimport { Router } from \"@angular/router\";\nimport { DatePipe,Location } from \"@angular/common\";\nimport { CallParams } from \"src/app/model/call-params.model\";\nimport { DialogService } from \"src/app/dialog.service\";\n@Component({\n selector: 'app-doorstep-customer360',\n templateUrl: './doorstep-customer360.component.html',\n styleUrls: ['./doorstep-customer360.component.scss']\n})\nexport class DoorstepCustomer360Component implements OnInit {\n\n @ViewChild(MatSort, { static: true }) sort: MatSort;\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\n @ViewChild('CallLogsPaginator', { static: true }) callLogsPaginator: MatPaginator;\n @ViewChild('CallLogsSort', { static: true }) callLogsSort: MatSort;\n @ViewChild('RemarksPaginator', { static: true }) remarksPaginator: MatPaginator;\n @ViewChild('RemarksSort', { static: true }) remarksSort: MatSort;\n @ViewChild('ServiceHistoryPaginator', { static: true }) serviceHistoryPaginator: MatPaginator;\n @ViewChild('ServiceHistorySort', { static: true }) serviceHistorySort: MatSort;\n\n cus360: any;\n cusType: string;\n calledNo: string;\n vehicleDetails: any = {};\n lastServiceDetails: any = {};\n serviceDetails: any = {};\n faultDetails: any = [];\n callVisible: boolean;\n spinner: boolean;\n vinNoList: string[] = [];\n vehicleInfoList: any[] = [];\n vehicleTypeCallInfo: any;\n vehicleServiceAndStausInfo: any;\n dataSource: any;\n selectedNumber: any;\n selectedName: any;\n updatedNumber: any;\n updatedName: any;\n contactInfoOwner: any[] = [];\n contactInfoFleet: any[] = [];\n contactInfoDriver: any[] = [];\n updatedNumberType: string;\n updatedNameType: string;\n secondaryNo: string;\n unableEdit: any = {};\n unableCall: boolean = false;\n workShops = [];\n selectedWorkShop: string;\n audioSource: any = {};\n selectedVehicle: string;\n HideServiceHistory: boolean = true;\n historyToggleStatus: boolean = false;\n showCallDailog: boolean = false;\n showRecordingDailog: boolean = false;\n showPlayBtn: boolean = true;\n paused: boolean = false;\n ownerSelected: boolean = true;\n fleetSelected: boolean = false;\n driverSelected: boolean = false;\n errorShow: any = {};\n customerID: string;\n userId: string;\n chassisNo: string;\n recentNumber: string;\n bookingCount: number;\n followupCount: number;\n customerData: any;\n vin: string;\n rrDetails: any = [];\n rrLength: number;\n technicalCampLength: number;\n division: string;\n workshopAppointmentFlag: boolean = false;\n cdmTrailCheckOwner: boolean = false;\n cdmTrailCheckfleet: boolean = false;\n cdmTrailCheckdriver: boolean = false;\n secondTrailCall: boolean = false;\n //service history table columns\n displayedColumns: string[] = [\n \"jcNo\",\n \"servNo\",\n \"dealerLoc\",\n \"jbcardDate\",\n \"mileage\",\n \"failureDate\",\n \"billDate\",\n \"insdate\",\n \"mechanic\",\n \"serviceAdv\",\n \"serviceAdvNo\"\n ];\n\n //call log table columns\n displayedCallColumns: string[] = [\n \"startTime\",\n \"duration\",\n \"number\",\n \"callDate\",\n \"recording\"\n ];\n\n //call log table columns\n displayedRemarksColumns: string[] = [\n \"remark\",\n \"remarkDate\",\n \"remarkTime\"\n ];\n\n displayedFaultColumns: string[] = [\n \"faultCaseId\",\n \"rulesDesc\",\n \"faultListDate\",\n \"faultFertCode\",\n \"faultServiceDueDate\",\n \"faultBookingDate\"\n ];\n\n displayedRRColumns: string[] = [\n \"customerCode\",\n \"workshopCode\",\n \"vin\",\n \"mileage\",\n \"runningRepairDate\",\n \"remarks\"\n ];\n\n displayedTechnicalCampColumns: string[] = [\n \"campaignId\",\n \"campaignIdDesc\",\n \"campaignStartDate\",\n \"campaignEndDate\",\n \"techCampaignCallStatus\",\n \"techBookingDate\"\n ];\n\n dataSource1: any[];\n expandedElement: any[] = [];\n rows: any = [];\n\n callLists: any;\n recordingUrl: any;\n callCount: number = 0;\n\n remarksDetails: any;\n historyDetails: any;\n remarksCount: number = 0;\n historyCount: number = 0;\n private audio: HTMLMediaElement;\n techCampDetails: any;\n techCampCount: number = 0;\n selectedTab: any;\n custNameForSave: any;\n serviceCount: any;\n bookingDuration: any;\n serviceType: any;\n callOption: string;\n userContactNo: string;\n countryCode: string;\n transId: any;\n\n constructor(\n private dialogService: DialogService,\n private datePipe: DatePipe,\n public dialog: MatDialog,\n private commonService: CommonService,\n private toastr: ToastrService,\n private router: Router,\n private location: Location,\n ) {\n this.unableEdit['O'] = {};\n this.unableEdit['F'] = {};\n this.unableEdit['D'] = {};\n }\n\n ngOnInit() {\n this.userInfo = JSON.parse(localStorage.getItem(\"userInfo\") || null)[0];\n this.customerData = JSON.parse(localStorage.getItem(\"customerData\") || null);\n this.callVisible = true;\n this.chassisNo = localStorage.getItem(\"chassisNo\");\n this.userId = localStorage.getItem(\"userId\");\n this.customerID = localStorage.getItem(\"customerId\");\n this.userContactNo = localStorage.getItem(\"userContactNo\");\n this.countryCode = localStorage.getItem(\"countryCode\");\n this.workShops = JSON.parse(localStorage.getItem('workshops'));\n this.selectedWorkShop = (this.workShops && this.workShops.length) ? this.workShops[0].workshopCode : '';\n this.customerData = JSON.parse(localStorage.getItem(\"customerData\"));\n this.vin = this.customerData.vin;\n\n if (localStorage.getItem(\"userId\") == null || localStorage.getItem(\"userId\") == undefined) {\n this.router.navigate([\"login\"]);\n }\n\n //this.getBookingFollowupCount(this.customerID, this.vin);\n this.getWorkshopAppointmentFlag();\n this.getCustomer360();\n this.getCallList();\n this.getContactdetail();\n }\n\n goback() {\n this.location.back();\n }\n\n /**\n * Name: getCallRecording\n * purpose: To get call recording and play\n */\n recording:string = ''\n getCallRecording(bucketName: string, fileName: string, id: string, source: string,element:any): void {\n\n if (element.recordingUrl) {\n this.recording = element.recordingUrl;\n }else{\n this.recording = '';\n }\n \n this.spinner = true;\n this.onRecordingClose();\n this.commonService.downloadAudio(bucketName, fileName, source).subscribe(res => {\n this.spinner = false;\n var binary = res['body'];\n var blob = new Blob([binary], { type: 'audio/mp4' });\n this.audioSource.id = id;\n this.audioSource.url = URL.createObjectURL(blob);\n if (this.audioSource.url) {\n this.playRecording();\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n /**\n * Name: playRecording\n * purpose: To play recoding\n */\n playRecording(): void {\n this.showPlayBtn = false;\n this.showRecordingDailog = true;\n }\n\n /**\n * Name: onRecordingClose\n * purpose: To close Recording dailog\n */\n onRecordingClose() {\n this.showPlayBtn = true;\n this.showRecordingDailog = false;\n }\n\n /**\n * Name: getContactdetail\n * purpose: To get customer Contact detail\n */\n getContactdetail(): void {\n this.spinner = true;\n this.commonService.doorStepContactDetails(this.customerID).subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n this.contactInfoOwner = res[\"responseData\"].filter(contact => contact.flag == \"O\");\n this.contactInfoFleet = res[\"responseData\"].filter(contact => contact.flag == \"F\");\n this.contactInfoDriver = res[\"responseData\"].filter(contact => contact.flag == \"D\");\n this.selectedNumber = this.contactInfoOwner[0].contactNumber;\n this.selectedName = this.contactInfoOwner[0].customerName;\n this.unableEdit['O'][0] = true;\n this.unableEdit['O'][1] = false;\n this.unableEdit['D'][0] = true;\n this.unableEdit['D'][1] = false;\n this.updatedNumberType = 'Primary';\n this.unableCall = true;\n this.spinner = false;\n } else {\n this.spinner = false;\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n },\n ()=>{\n this.updateActiveContactNo();\n }\n );\n }\n\n getCdmData() {\n let temp: any;\n this.selectedTab = this.selectedTab ? this.selectedTab : 0;\n\n let data = {\n \"customerId\": this.customerID,\n \"vin\": \"\",\n \"phoneNo\": \"\",\n \"startDate\": \"\",\n \"endDate\": \"\",\n \"date\": \"\",\n \"customerName\": \"\",\n \"type\": \"T\",\n \"flag\": this.selectedTab == 0 ? 'C' : this.selectedTab == 1 ? 'F' : this.selectedTab == 2 ? 'D' : 'C'\n };\n this.commonService.fetchCdmData(data).subscribe((resp) => {\n if (resp['responseCode'] == 0) {\n temp = resp[\"responseData\"].filter(contact => contact.contactNo = contact.phoneNo);\n temp.forEach((trail) => {\n if (this.selectedTab == 0) {\n this.contactInfoOwner.push(trail)\n this.cdmTrailCheckOwner = true\n } else if (this.selectedTab == 1) {\n this.contactInfoFleet.push(trail)\n this.cdmTrailCheckfleet = true\n } else if (this.selectedTab == 2) {\n this.contactInfoDriver.push(trail)\n this.cdmTrailCheckdriver = true\n }\n })\n this.trailLogCheck();\n } else {\n this.toastr.error(resp['message'], \"Error\");\n }\n\n }, error => {\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n // this.contactInfoOwner.push(temp[0]);\n\n }\n\n trailLogCheck() {\n if (this.selectedTab == 0) {\n this.secondTrailCall = this.cdmTrailCheckOwner\n // return this.cdmTrailCheckOwner\n } else if (this.selectedTab == 1) {\n this.secondTrailCall = this.cdmTrailCheckfleet\n // return this.cdmTrailCheckfleet\n } else if (this.selectedTab == 2) {\n this.secondTrailCall = this.cdmTrailCheckdriver\n // return this.cdmTrailCheckdriver\n } else {\n this.secondTrailCall = false\n }\n }\n\n /**\n * Name: checkCallStatus\n * purpose: To set contect type selection\n * @param {any} type - type of number\n */\n checkCallStatus(type: any): void {\n this.onTabChange(type)\n this.selectedTab = type && type.index;\n if (type && type.index == 0) {\n this.ownerSelected = true;\n this.fleetSelected = false;\n this.driverSelected = false;\n if (this.contactInfoOwner.length) {\n this.unableCall = true;\n this.contactInfoOwner.forEach((element, i) => {\n if (this.unableEdit['O'][i] != undefined && this.unableEdit['O'][i]) {\n this.selectedNumber = element.contactNumber;\n this.selectedName = element.customerName;\n }\n });\n } else {\n this.unableCall = false;\n }\n }\n\n if (type && type.index == 1) {\n this.ownerSelected = false;\n this.fleetSelected = true;\n this.driverSelected = false;\n if (this.contactInfoFleet.length) {\n this.unableCall = true;\n let numberSelected = false;\n this.contactInfoFleet.forEach((element, i) => {\n if (this.unableEdit['F'][i] != undefined && this.unableEdit['F'][i]) {\n this.selectedNumber = element.contactNumber;\n this.selectedName = element.customerName;\n numberSelected = true;\n }\n });\n if (!numberSelected) {\n this.selectedNumber = this.contactInfoFleet[0].contactNumber;\n this.selectedName = this.contactInfoFleet[0].customerName;\n this.unableEdit['F'][0] = true;\n }\n } else {\n this.unableCall = false;\n }\n }\n\n if (type && type.index == 2) {\n this.ownerSelected = false;\n this.fleetSelected = false;\n this.driverSelected = true;\n if (this.contactInfoDriver.length) {\n this.unableCall = true;\n let numberSelected = false;\n this.contactInfoDriver.forEach((element, i) => {\n if (this.unableEdit['D'][i] != undefined && this.unableEdit['D'][i]) {\n this.selectedNumber = element.contactNumber;\n this.selectedName = element.customerName;\n numberSelected = true;\n }\n });\n if (!numberSelected) {\n this.selectedNumber = this.contactInfoDriver[0].contactNumber;\n this.selectedName = this.contactInfoDriver[0].customerName;\n this.unableEdit['D'][0] = true;\n }\n } else {\n this.unableCall = false;\n }\n }\n this.trailLogCheck();\n }\n\n /**\n * Name: callUser\n * purpose: To call user\n */\n private callUser(): void {\n this.showRecordingDailog = false;\n this.spinner = true;\n let callNumber;\n // if(this.countryCode == \"IND91\") {\n callNumber = this.selectedNumber;\n // } else {\n // callNumber = \"+88\" + this.selectedNumber;\n // }\n\n let type = (this.ownerSelected ? 'C' : (this.fleetSelected ? 'F' : 'D'));\n if (type == 'C') {\n this.contactInfoOwner.forEach((element) => {\n if (element.contactNumber == this.selectedNumber) {\n this.custNameForSave = element.customerName\n }\n });\n } else if (type == 'F') {\n this.contactInfoFleet.forEach((element) => {\n if (element.contactNumber == this.selectedNumber) {\n this.custNameForSave = element.customerName\n }\n });\n }\n else if (type == 'D') {\n this.contactInfoDriver.forEach((element) => {\n if (element.contactNumber == this.selectedNumber) {\n this.custNameForSave = element.customerName\n }\n });\n }\n this.calledNo = this.selectedNumber;\n this.cusType = type;\n this.commonService.callCustomer(this.userId, this.customerID, callNumber, type, 'DSP').subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n this.showCallDailog = true;\n this.spinner = false;\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n\n if (localStorage.getItem('countryCode')=='IND91') {\n this.callingToUser();\n }else{\n localStorage.setItem(\"exotel_URI\",'')\n }\n }\n\n /**\n * Name: onClose\n * purpose: To close call dailog\n */\n onClose() {\n this.showCallDailog = false;\n this.getContactdetail();\n }\n\n /**\n * Name: updateNumber\n * @param {boolean} addNumber - type of number\n * purpose: To set customer number\n */\n updateNumber(addNumber: boolean): void {\n if ((this.updatedNumber && this.updatedNumber.length == 10) || (addNumber && this.secondaryNo && this.secondaryNo.length == 10)) {\n this.spinner = true;\n let oldNumber = this.selectedNumber;\n let newNumber = this.updatedNumber ? this.updatedNumber : this.selectedNumber;\n let oldName = this.selectedName;\n let newName = this.updatedName;\n if (addNumber) {\n oldNumber = this.secondaryNo;\n newNumber = this.secondaryNo;\n this.updatedNumberType = \"Secondary\";\n }\n this.commonService.doorStepUpdateContact(newNumber, oldNumber, this.updatedNumberType, this.customerID, this.userId, oldName, newName).subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n this.spinner = false;\n this.selectedNumber = this.updatedNumber;\n this.selectedName = this.updatedName;\n this.toastr.success(\"Data is saved.\", \"Success\");\n //this.getContactdetail();\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n })\n }\n }\n\n getOption() {\n this.callOption = localStorage.getItem('navOption');\n return this.callOption;\n }\n\n /**\n * Name: onNameChange\n * * purpose: To get new selected name\n * @param name\n * @param editName\n * @param index\n * @param type\n */\n onNameChange(name: any, editName: boolean, index: any, type: string) {\n if (type == 'D' && editName) {\n this.updatedName = name.customerName;\n this.updatedNumber = name.contactNumber;\n this.updatedNumberType = 'D';\n this.errorShow[index] = false;\n } else {\n this.selectedName = name.customerName;\n this.updatedNumber = name.contactNumber;\n this.updatedName = name.customerName;\n this.updatedNumberType = index == 0 ? 'Y' : \"N\";\n if (type == 'D') {\n this.contactInfoDriver.forEach((element, i) => {\n if (i == index) {\n this.unableEdit[type][i] = true;\n } else {\n this.unableEdit[type][i] = false;\n }\n });\n }\n }\n }\n\n /**\n * Name: onNumberChange\n * purpose: To get new selected number\n */\n onNumberChange(number: any, editNumber: boolean, index: any, type: string): void {\n if (type == \"D\" && editNumber && number.contactNumber.length == 10) {\n this.updatedNumber = number.contactNumber;\n this.updatedName = number.customerName;\n this.updatedNumberType = 'D';\n this.errorShow[index] = false;\n } else if (editNumber && number.contactNumber.length == 10) {\n this.updatedNumber = number.contactNumber;\n this.updatedName = number.customerName;\n this.updatedNumberType = index == 0 ? 'Y' : 'N';\n this.errorShow[index] = false;\n } else if (editNumber && number.contactNumber.length !== 10) {\n this.errorShow[index] = true;\n } else {\n this.selectedNumber = number.contactNumber;\n this.selectedName = number.customerName;\n this.updatedNumber = number.contactNumber;\n this.updatedName = number.customerName;\n this.updatedNumberType = index == 0 ? 'Y' : 'N';\n if (type == 'O') {\n this.contactInfoOwner.forEach((element, i) => {\n if (i == index) {\n this.unableEdit[type][i] = true;\n } else {\n this.unableEdit[type][i] = false;\n }\n });\n } else if (type == 'F') {\n this.contactInfoFleet.forEach((element, i) => {\n if (i == index) {\n this.unableEdit[type][i] = true;\n } else {\n this.unableEdit[type][i] = false;\n }\n });\n } else if (type == 'D') {\n this.contactInfoDriver.forEach((element, i) => {\n if (i == index) {\n this.unableEdit[type][i] = true;\n } else {\n this.unableEdit[type][i] = false;\n }\n });\n }\n\n }\n }\n\n /**\n * Name: sendWorkshopMsg\n * purpose: To send workshop addess SMS\n */\n sendWorkshopMsg(): void {\n this.spinner = true;\n let data = {\n contactNo: this.selectedNumber,\n custName: this.cus360['DOORSTEP_CUSTOMER_INFO'].custName,\n }\n this.workShops.forEach(workshop => {\n if (workshop.workshopCode == this.selectedWorkShop) {\n data['wSAddress'] = workshop.workshopAddress || '';\n data['wSManager'] = workshop.contactNo || '';\n data['wSName'] = workshop.workshopName || '';\n }\n });\n this.commonService.sendLocationSMS(data).subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n this.toastr.info(res['message'], \"Message\");\n this.spinner = false;\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: getCustomer360\n * purpose: To get customer data\n */\n getCustomer360(): void {\n this.spinner = true;\n this.commonService.doorStepCustomerDetails(this.customerID, this.userId, this.vin).subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n this.cus360 = res[\"responseData\"];\n if (this.cus360[\"VECHILE_INFO\"] && this.cus360[\"VECHILE_INFO\"].length && this.cus360[\"VECHILE_INFO\"][0].vin6Bits) {\n this.selectedVehicle = this.cus360[\"VECHILE_INFO\"][0].vin6Bits\n this.cus360[\"VECHILE_INFO\"].forEach(element => {\n this.vinNoList.push(element.vin6Bits);\n this.vehicleInfoList.push(element);\n });\n this.subTabDefault(this.selectedVehicle);\n } else {\n this.vehicleDetails = {};\n }\n this.spinner = false;\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: getCallList\n * purpose: To get customer call data\n */\n getCallList(): void {\n this.spinner = true;\n this.commonService.callDetails(this.userId, this.customerID, 'DS').subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n this.spinner = false;\n res['responseData'].forEach(data => {\n data.duration = data.duration.split('PT')[1];\n });\n this.callLists = new MatTableDataSource(res['responseData']);\n this.recordingUrl = res['responseData'][0].recordingName;\n this.recentNumber = (res['responseData'].length && res['responseData'][0].custNo) ? res['responseData'][0].custNo.split('+91')[1] : '';\n this.sort.direction = '';\n this.callLists.sort = this.callLogsSort;\n this.callLists.paginator = this.callLogsPaginator;\n this.callCount = res['responseData'].length;\n } else {\n this.spinner = false;\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: getHistory\n * purpose: To get service history\n */\n getHistory(showHistory: boolean): void {\n if (showHistory) {\n this.spinner = true;\n this.commonService.history(this.chassisNo).subscribe(\n res => {\n if (res[\"responseCode\"] == 0) {\n this.HideServiceHistory = false;\n this.dataSource1 = res[\"responseData\"];\n this.historyDetails = new MatTableDataSource(this.dataSource1);\n this.sort.direction = '';\n this.historyDetails.sort = this.serviceHistorySort;\n this.historyDetails.paginator = this.serviceHistoryPaginator;\n this.historyCount = this.dataSource1.length;\n this.spinner = false;\n } else {\n this.toastr.info(res[\"message\"]);\n this.historyDetails = [];\n this.spinner = false;\n this.historyToggleStatus = false;\n }\n }, err => {\n this.spinner = false;\n this.historyToggleStatus = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n } else {\n this.HideServiceHistory = true;\n }\n }\n\n /**\n * Name: subTabDefault\n * purpose: To set vehicle details as selected\n */\n subTabDefault(selectedVehicle: string): void {\n this.vehicleDetails = this.cus360[\"VECHILE_INFO\"].filter(vehicle => vehicle.vin6Bits == selectedVehicle)[0];\n this.division = this.vehicleDetails.division;\n //this.rrLength = Object.keys(this.cus360[\"RR_SERVICE_INFO\"]).length;\n localStorage.setItem(\"chassisNo\", this.vehicleDetails.chassisNumber);\n this.chassisNo = this.vehicleDetails.chassisNumber;\n //change the sale date format\n this.vehicleDetails.saleDate = this.datePipe.transform(\n this.vehicleDetails.saleDate,\n \"yyyy-MM-dd\"\n );\n\n //set the vehicle call Info\n if (this.cus360[\"SERVICE_INFO\"] && Object.keys(this.cus360[\"SERVICE_INFO\"]).length && this.cus360[\"SERVICE_INFO\"][selectedVehicle]) {\n this.serviceDetails = this.cus360[\"SERVICE_INFO\"][selectedVehicle];\n this.serviceCount = this.cus360[\"SERVICE_INFO\"][selectedVehicle][\"serviceTypeSequence\"];\n if (this.serviceCount >= 0) {\n if (this.serviceCount % 2 == 1) {\n this.bookingDuration = 90;\n } else {\n this.bookingDuration = 240;\n }\n }\n\n localStorage.setItem(\"serviceInfo\", JSON.stringify(this.cus360[\"SERVICE_INFO\"]));\n localStorage.setItem(\"serviceDueDate\", this.cus360[\"SERVICE_INFO\"][selectedVehicle].serviceDueDate);\n\n //set the vehicle call Info\n if (this.serviceDetails.serviceType == null)\n this.serviceDetails.serviceType = \"None\"\n this.vehicleServiceAndStausInfo = this.serviceDetails.campaignId ? this.serviceDetails.serviceType : this.serviceDetails.serviceType + \", \" + this.serviceDetails.callStatus;\n this.vehicleTypeCallInfo = this.serviceDetails.callType;\n this.serviceType = this.serviceDetails.serviceType.split(' - ')[0];\n } else {\n this.serviceDetails = {};\n }\n\n\n if (this.cus360[\"LAST_SERVICE_INFO\"] && Object.keys(this.cus360[\"LAST_SERVICE_INFO\"]).length && this.cus360[\"LAST_SERVICE_INFO\"][selectedVehicle]) {\n this.lastServiceDetails = this.cus360[\"LAST_SERVICE_INFO\"][selectedVehicle];\n localStorage.setItem(\"milage\", this.lastServiceDetails.mileage);\n this.lastServiceDetails.invoiceDate = this.datePipe.transform(\n this.lastServiceDetails.invoiceDate,\n \"yyyy-MM-dd\"\n );\n } else {\n this.lastServiceDetails = {};\n }\n\n if (this.cus360[\"REMARK_INFO\"] && Object.keys(this.cus360[\"REMARK_INFO\"]).length && this.cus360[\"REMARK_INFO\"][selectedVehicle]) {\n let remarks = this.cus360[\"REMARK_INFO\"][selectedVehicle];\n remarks.forEach(element => {\n let date = element.remarkTime + \" GMT+0000\";\n let d = new Date(date);\n element.remarkTime = d;\n element.remarkDate = this.datePipe.transform(element.remarkTime, \"yyyy-MM-dd\");\n });\n this.remarksDetails = new MatTableDataSource(remarks);\n this.sort.direction = '';\n this.remarksDetails.sort = this.remarksSort;\n this.remarksDetails.paginator = this.remarksPaginator;\n this.remarksCount = remarks.length;\n } else {\n this.remarksDetails = [];\n }\n }\n\n public refreshVinList(): void {\n this.getCustomer360();\n }\n\n getWorkshopAppointmentFlag() {\n this.commonService.getWorkshopAppointmentFlag(this.selectedWorkShop)\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n this.workshopAppointmentFlag = res['responseData'][0].appointmentFlag;\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n\n activeTabLabel: string = 'Owner'; \n activeIndex:number = 0\n userInfo: any;\n\n\n selectedContactNumbers = {\n 'Owner': null,\n 'Fleet Manager': null,\n 'Driver': null\n };\n\n onTabChange(event: MatTabChangeEvent) {\n this.activeTabLabel = event.tab.textLabel;\n this.activeIndex = event.index;\n this.updateActiveContactNo();\n }\n\n \n\n private updateActiveContactNo() {\n let contactList;\n \n if (this.activeIndex === 0) {\n contactList = this.contactInfoOwner;\n } else if (this.activeIndex === 1) {\n contactList = this.contactInfoFleet;\n } else if (this.activeIndex === 2) {\n contactList = this.contactInfoDriver;\n }\n \n console.log(this.activeIndex);\n console.log(contactList);\n if (contactList && contactList.length > 0) {\n this.selectedContactNumbers[this.activeTabLabel] = this.selectedContactNumbers[this.activeTabLabel] || contactList[0].contactNumber;\n }\n \n }\n \n onRadioChange(contactNo: string, tabLabel: string) {\n this.selectedContactNumbers[tabLabel] = contactNo;\n \n \n }\n\n\n private callingToUser(){\n let customerPhone = this.selectedContactNumbers[this.activeTabLabel];\n console.log(this.selectedContactNumbers);\n \n if(customerPhone){\n this.makeCall(customerPhone)\n }else{\n this.spinner = false;\n this.toastr.error(\"Customer Phone number can't be Empty while placing the call\")\n }\n }\n\n \n private makeCall(customerPhone:string) {\n const callParams = new CallParams(this.userInfo.contactNo, customerPhone);\n this.spinner = true\n this.commonService.createCallConnection_API(callParams).subscribe({\n next: (response) => {\n if(response.responseData.Uri) {\n localStorage.setItem(\"exotel_URI\",response.responseData.Uri)\n } else{\n localStorage.setItem(\"exotel_URI\",'')\n }\n if (response.responseCode==0) {\n this.toastr.success(\"Call is in progress\")\n \n }else{\n this.toastr.error(response.responseData)\n }\n \n },\n error:(error)=>{\n this.spinner = false\n this.toastr.error(\"Something went wrong\");\n \n },\n complete:()=>{\n this.spinner = false\n }\n });\n }\n\n openConfirmation() {\n if (localStorage.getItem('countryCode')=='IND91') {\n this.dialogService.openConfirmDialog().subscribe(result => {\n if (result) {\n console.log(result);\n this.callUser(); \n } else {\n console.log(result);\n }\n });\n }else{\n this.callUser();\n }\n \n }\n}\n","export default \".chart-container {\\n display: block;\\n margin-bottom: 0px !important;\\n padding: 0px 10px !important;\\n}\\n\\n.detail-card ::ng-deep .mat-tab-label {\\n height: 48px;\\n padding: 0 8px;\\n min-width: 95px;\\n}\\n\\n.chartjs-render-monitor {\\n max-width: 100% !important;\\n}\\n\\n.kpi {\\n background-color: #ededed;\\n padding-top: 120px;\\n padding-left: 10px;\\n padding-right: 20px;\\n padding-bottom: 20px;\\n}\\n\\n.kpi h3 {\\n text-align: center;\\n}\\n\\n.kpi-chart {\\n background: white;\\n padding: 5px;\\n}\\n\\n.kpi-chart .chart-container {\\n padding: 0px 10px;\\n}\\n\\n.kpi-chart .chartjs-render-monitor {\\n height: 60px !important;\\n}\\n\\n.kpi-chrt-head {\\n text-align: center;\\n margin: 0px;\\n}\\n\\n.kpi-chrt-head .heading-kpi {\\n font-size: 13px;\\n color: black;\\n font-weight: 500;\\n padding-top: 5px;\\n}\\n\\n.kpi-chrt-head .state {\\n font-size: 15px;\\n font-weight: 500;\\n padding-top: 10px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9jb21wb25lbnQvZG9vcnN0ZXAtZGFzaGJvYXJkL2Rvb3JzdGVwLWNoYXJ0LWRhc2hib2FyZC9kb29yc3RlcC1jaGFydC1kYXNoYm9hcmQuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NvbXBvbmVudC9kb29yc3RlcC1kYXNoYm9hcmQvZG9vcnN0ZXAtY2hhcnQtZGFzaGJvYXJkL2Rvb3JzdGVwLWNoYXJ0LWRhc2hib2FyZC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQTtFQUNJLGNBQUE7RUFDQSw2QkFBQTtFQUNBLDRCQUFBO0FDQUo7O0FER0U7RUFDRSxZQUFBO0VBQ0EsY0FBQTtFQUNBLGVBQUE7QUNBSjs7QURHRTtFQUNFLDBCQUFBO0FDQUo7O0FESUU7RUFDRSx5QkFBQTtFQUNBLGtCQUFBO0VBQ0Esa0JBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0FDREo7O0FER0k7RUFDRSxrQkFBQTtBQ0ROOztBREtFO0VBQ0UsaUJBQUE7RUFDQSxZQUFBO0FDRko7O0FESUk7RUFDRSxpQkFBQTtBQ0ZOOztBREtJO0VBQ0UsdUJBQUE7QUNITjs7QURPRTtFQUNFLGtCQUFBO0VBQ0EsV0FBQTtBQ0pKOztBRE1JO0VBQ0UsZUFBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtFQUNBLGdCQUFBO0FDSk47O0FET0k7RUFDRSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtBQ0xOIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50L2Rvb3JzdGVwLWRhc2hib2FyZC9kb29yc3RlcC1jaGFydC1kYXNoYm9hcmQvZG9vcnN0ZXAtY2hhcnQtZGFzaGJvYXJkLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLy9jaGFydCBjc3Ncbi5jaGFydC1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IDBweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDBweCAxMHB4ICFpbXBvcnRhbnQ7XG4gIH1cbiAgXG4gIC5kZXRhaWwtY2FyZCA6Om5nLWRlZXAgLm1hdC10YWItbGFiZWwge1xuICAgIGhlaWdodDogNDhweDtcbiAgICBwYWRkaW5nOiAwIDhweDtcbiAgICBtaW4td2lkdGg6IDk1cHg7XG4gIH1cbiAgXG4gIC5jaGFydGpzLXJlbmRlci1tb25pdG9yIHtcbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxuICBcbiAgLy9rcGkgY3NzXG4gIC5rcGkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZGVkZWQ7XG4gICAgcGFkZGluZy10b3A6IDEyMHB4O1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAyMHB4O1xuICBcbiAgICBoMyB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuICB9XG4gIFxuICAua3BpLWNoYXJ0IHtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBwYWRkaW5nOiA1cHg7XG4gIFxuICAgIC5jaGFydC1jb250YWluZXIge1xuICAgICAgcGFkZGluZzogMHB4IDEwcHg7XG4gICAgfVxuICBcbiAgICAuY2hhcnRqcy1yZW5kZXItbW9uaXRvciB7XG4gICAgICBoZWlnaHQ6IDYwcHggIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbiAgXG4gIC5rcGktY2hydC1oZWFkIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luOiAwcHg7XG4gIFxuICAgIC5oZWFkaW5nLWtwaSB7XG4gICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICBjb2xvcjogYmxhY2s7XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgcGFkZGluZy10b3A6IDVweDtcbiAgICB9XG4gIFxuICAgIC5zdGF0ZSB7XG4gICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgfVxuICB9XG4gICIsIi5jaGFydC1jb250YWluZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMHB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDBweCAxMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5kZXRhaWwtY2FyZCA6Om5nLWRlZXAgLm1hdC10YWItbGFiZWwge1xuICBoZWlnaHQ6IDQ4cHg7XG4gIHBhZGRpbmc6IDAgOHB4O1xuICBtaW4td2lkdGg6IDk1cHg7XG59XG5cbi5jaGFydGpzLXJlbmRlci1tb25pdG9yIHtcbiAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG59XG5cbi5rcGkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWRlZGVkO1xuICBwYWRkaW5nLXRvcDogMTIwcHg7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbiAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgcGFkZGluZy1ib3R0b206IDIwcHg7XG59XG4ua3BpIGgzIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ua3BpLWNoYXJ0IHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIHBhZGRpbmc6IDVweDtcbn1cbi5rcGktY2hhcnQgLmNoYXJ0LWNvbnRhaW5lciB7XG4gIHBhZGRpbmc6IDBweCAxMHB4O1xufVxuLmtwaS1jaGFydCAuY2hhcnRqcy1yZW5kZXItbW9uaXRvciB7XG4gIGhlaWdodDogNjBweCAhaW1wb3J0YW50O1xufVxuXG4ua3BpLWNocnQtaGVhZCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luOiAwcHg7XG59XG4ua3BpLWNocnQtaGVhZCAuaGVhZGluZy1rcGkge1xuICBmb250LXNpemU6IDEzcHg7XG4gIGNvbG9yOiBibGFjaztcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgcGFkZGluZy10b3A6IDVweDtcbn1cbi5rcGktY2hydC1oZWFkIC5zdGF0ZSB7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgcGFkZGluZy10b3A6IDEwcHg7XG59Il19 */\"","import { Component, Input, OnInit } from '@angular/core';\nimport { ChartOptions, ChartType, ChartDataSets } from 'chart.js';\nimport { Label } from 'ng2-charts';\n\n@Component({\n selector: 'app-doorstep-chart-dashboard',\n templateUrl: './doorstep-chart-dashboard.component.html',\n styleUrls: ['./doorstep-chart-dashboard.component.scss']\n})\nexport class DoorstepChartDashboardComponent implements OnInit {\n\n @Input() chartData: ChartDataSets;\n @Input() chartHeight: any;\n @Input() chartWidth: any;\n @Input() chartLabels: Label[];\n @Input() chartOptions: ChartOptions;\n @Input() chartPlugins: any;\n @Input() chartLegend: boolean;\n @Input() chartType: ChartType;\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","export default \".example-header {\\n display: flex;\\n align-items: center;\\n padding: 0.5em;\\n}\\n\\n.example-header-label {\\n flex: 1;\\n height: 1em;\\n font-weight: 500;\\n text-align: center;\\n}\\n\\n.example-double-arrow .mat-icon {\\n margin: -22%;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9jb21wb25lbnQvZG9vcnN0ZXAtZGFzaGJvYXJkL2Rvb3JzdGVwLWN1c3RvbS1oZWFkZXItY2FsL2Rvb3JzdGVwLWN1c3RvbS1oZWFkZXItY2FsLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnQvZG9vcnN0ZXAtZGFzaGJvYXJkL2Rvb3JzdGVwLWN1c3RvbS1oZWFkZXItY2FsL2Rvb3JzdGVwLWN1c3RvbS1oZWFkZXItY2FsLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksYUFBQTtFQUNBLG1CQUFBO0VBQ0EsY0FBQTtBQ0NKOztBREVFO0VBQ0UsT0FBQTtFQUNBLFdBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0FDQ0o7O0FERUU7RUFDRSxZQUFBO0FDQ0oiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnQvZG9vcnN0ZXAtZGFzaGJvYXJkL2Rvb3JzdGVwLWN1c3RvbS1oZWFkZXItY2FsL2Rvb3JzdGVwLWN1c3RvbS1oZWFkZXItY2FsLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmV4YW1wbGUtaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMC41ZW07XG4gIH1cbiAgXG4gIC5leGFtcGxlLWhlYWRlci1sYWJlbCB7XG4gICAgZmxleDogMTtcbiAgICBoZWlnaHQ6IDFlbTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICBcbiAgLmV4YW1wbGUtZG91YmxlLWFycm93IC5tYXQtaWNvbiB7XG4gICAgbWFyZ2luOiAtMjIlO1xuICB9XG4gICIsIi5leGFtcGxlLWhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDAuNWVtO1xufVxuXG4uZXhhbXBsZS1oZWFkZXItbGFiZWwge1xuICBmbGV4OiAxO1xuICBoZWlnaHQ6IDFlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uZXhhbXBsZS1kb3VibGUtYXJyb3cgLm1hdC1pY29uIHtcbiAgbWFyZ2luOiAtMjIlO1xufSJdfQ== */\"","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Inject,\n OnDestroy\n } from '@angular/core';\n import { MatCalendar, MatDatepickerIntl } from '@angular/material/datepicker';\n import { DateAdapter, MAT_DATE_FORMATS, MatDateFormats } from '@angular/material/core';\n import { Subject } from 'rxjs';\n import { takeUntil } from 'rxjs/operators';\n \n @Component({\n selector: 'app-doorstep-custom-header-cal',\n templateUrl: './doorstep-custom-header-cal.component.html',\n styleUrls: ['./doorstep-custom-header-cal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n })\n export class ExampleHeader implements OnDestroy {\n \n private _destroyed = new Subject();\n \n constructor(\n private _calendar: MatCalendar, private _intl: MatDatepickerIntl, private _dateAdapter: DateAdapter,\n @Inject(MAT_DATE_FORMATS) private _dateFormats: MatDateFormats, cdr: ChangeDetectorRef) {\n _calendar.stateChanges\n .pipe(takeUntil(this._destroyed))\n .subscribe(() => cdr.markForCheck());\n }\n \n ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\n }\n \n /** Handles user clicks on the period label. */\n currentPeriodClicked(): void {\n this._calendar.currentView = this._calendar.currentView == 'year' ? 'multi-year' : 'year';\n }\n \n /** The label for the current calendar view. */\n get periodButtonText(): string {\n return this._dateAdapter.getYearName(this._calendar.activeDate);\n }\n \n /** Handles user clicks on the previous button. */\n previousClicked(): void {\n this._calendar.activeDate = this._calendar.currentView == 'month' ?\n this._dateAdapter.addCalendarMonths(this._calendar.activeDate, -1) :\n this._dateAdapter.addCalendarYears(\n this._calendar.activeDate, this._calendar.currentView == 'year' ? -1 : 20\n );\n }\n \n /** Handles user clicks on the next button. */\n nextClicked(): void {\n this._calendar.activeDate = this._calendar.currentView == 'month' ?\n this._dateAdapter.addCalendarMonths(this._calendar.activeDate, 1) :\n this._dateAdapter.addCalendarYears(\n this._calendar.activeDate,\n this._calendar.currentView == 'year' ? 1 : 20\n );\n }\n \n }","export default \".working-area {\\n margin: 0px 0px 0px 0px !important;\\n min-height: 100vh;\\n}\\n\\n.dashboard {\\n padding-top: 120px;\\n padding-left: 20px;\\n padding-bottom: 20px;\\n}\\n\\n.dashboard h3 {\\n text-align: center;\\n}\\n\\n.dashboard .grth {\\n padding: 5px 5px 5px 0px;\\n}\\n\\n.p-b-8 {\\n padding-bottom: 8px;\\n}\\n\\n.p-b-3 {\\n padding-bottom: 3px;\\n}\\n\\n.p-t-5 {\\n padding-top: 5px;\\n}\\n\\n.p-t-13 {\\n padding-top: 13px;\\n}\\n\\n.m-0 {\\n margin: 0px;\\n}\\n\\nhr {\\n width: 100%;\\n opacity: 0.5;\\n margin-bottom: 15px !important;\\n}\\n\\n.detail-card {\\n background-color: #ffffff;\\n padding: 5px;\\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12);\\n}\\n\\n.detail-card .head-crd {\\n margin-top: 15px;\\n}\\n\\n.detail-card .indicator {\\n margin-left: 0px;\\n margin-top: 10px;\\n}\\n\\n.detail-card1 {\\n background-color: #ffffff;\\n padding: 5px;\\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12);\\n}\\n\\n.detail-card1 .indicator {\\n margin-left: 5px;\\n}\\n\\n.count {\\n font-size: 14px !important;\\n font-weight: bold;\\n}\\n\\n.count1 {\\n font-size: 16px !important;\\n font-weight: bold;\\n}\\n\\n.count2 {\\n font-size: 18px !important;\\n font-weight: bold;\\n}\\n\\np {\\n font-size: 11px !important;\\n margin: 3px;\\n}\\n\\n.color-red {\\n color: #e64243;\\n}\\n\\n.color-nv-blue {\\n color: #2e3668;\\n}\\n\\n.color-lg-blue {\\n color: #4834d4;\\n}\\n\\n.color-blue {\\n color: #5758bb;\\n}\\n\\n.color-lg-sky {\\n color: #57aeef;\\n}\\n\\n.color-d-sky {\\n color: #3f729d;\\n}\\n\\n.color-grn {\\n color: #54b157;\\n}\\n\\n.indicator {\\n margin-right: 10px;\\n border: 1px solid #2e3668;\\n border-radius: 50%;\\n padding: 5px;\\n font-size: 14px;\\n color: #2e3668;\\n cursor: pointer;\\n}\\n\\n.label {\\n text-align: center;\\n}\\n\\n.chart-container {\\n display: block;\\n margin-bottom: 0px !important;\\n padding: 0px 10px !important;\\n}\\n\\n.detail-card ::ng-deep .mat-tab-label {\\n height: 25px;\\n padding: 0 8px;\\n min-width: 95px;\\n font-size: 13px;\\n}\\n\\n.chartjs-render-monitor {\\n max-width: 100% !important;\\n}\\n\\n.example-month-picker .mat-calendar-period-button {\\n pointer-events: none;\\n}\\n\\n.example-month-picker .mat-calendar-arrow {\\n display: none;\\n}\\n\\n.dateField {\\n width: 100%;\\n}\\n\\n.headingSme {\\n padding-top: 20px;\\n font-size: 16px;\\n font-weight: bold;\\n position: relative;\\n margin-top: 18px;\\n bottom: 20px;\\n}\\n\\n.headingSme .indicator {\\n position: relative;\\n left: 23px;\\n background: #ffffff;\\n padding: 3px;\\n}\\n\\n.heading .indicator {\\n position: relative;\\n left: 109px;\\n background: #ffffff;\\n padding: 3px;\\n bottom: 20px;\\n}\\n\\n.alert {\\n font-size: 20px;\\n font-weight: bold;\\n}\\n\\n#dateField ::ng-deep input.mat-input-element {\\n margin-top: 3px;\\n padding-left: 5px;\\n font-size: 14px !important;\\n}\\n\\n#dateField ::ng-deep .mat-form-field-suffix {\\n right: 0px;\\n top: 0px;\\n}\\n\\n#dateField ::ng-deep .mat-form-field {\\n font-size: 14px !important;\\n}\\n\\n#dateField ::ng-deep .mat-datepicker-toggle {\\n position: absolute;\\n right: 0px;\\n top: -16px;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-infix {\\n border: 1px solid lightgray;\\n border-radius: 2px;\\n background: white;\\n padding: 0;\\n height: 20px;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field {\\n font-size: 14px !important;\\n}\\n\\n.filter1 ::ng-deep .mat-select {\\n padding: 3px 0px;\\n font-size: 14px !important;\\n}\\n\\n.filter1 ::ng-deep .mat-select-trigger {\\n padding-left: 8px;\\n width: 100%;\\n}\\n\\n.filter1 ::ng-deep .mat-select-value {\\n width: 90%;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label-wrapper {\\n top: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-underline {\\n display: none;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label {\\n top: 0;\\n margin-top: 3px !important;\\n padding-left: 5px;\\n font-size: 14px !important;\\n}\\n\\n.filter3::ng-deep .mat-form-field-infix {\\n border: 1px solid lightgray;\\n border-radius: 2px;\\n background: white;\\n padding: 0;\\n height: 20px;\\n width: 100px !important;\\n margin-top: 17px;\\n}\\n\\n.filter3 ::ng-deep .mat-form-field {\\n font-size: 14px !important;\\n}\\n\\n.filter3 ::ng-deep .mat-select {\\n padding: 3px 0px;\\n font-size: 14px !important;\\n}\\n\\n.filter3 ::ng-deep .mat-select-trigger {\\n padding-left: 8px;\\n width: 100%;\\n}\\n\\n.filter3 ::ng-deep .mat-select-value {\\n width: 100%;\\n}\\n\\n.filter3 ::ng-deep .mat-form-field-label-wrapper {\\n top: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n\\n.filter3 ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 0;\\n}\\n\\n.filter3 ::ng-deep .mat-form-field-underline {\\n display: none;\\n}\\n\\n.filter3 ::ng-deep .mat-form-field-label {\\n top: 0;\\n margin-top: 3px !important;\\n padding-left: 5px;\\n font-size: 16px !important;\\n font-weight: bold !important;\\n}\\n\\n.filter-label {\\n font: Bold 14px Roboto;\\n letter-spacing: 0px;\\n color: #3c3c3c;\\n opacity: 1;\\n margin-bottom: 5px;\\n}\\n\\n.dateFilter {\\n border: 1px solid lightgray;\\n border-radius: 2px;\\n background: white;\\n padding: 0;\\n height: 20px;\\n}\\n\\n.kpi {\\n background-color: #ededed;\\n padding-top: 105px;\\n padding-left: 20px;\\n padding-right: 20px;\\n padding-bottom: 20px;\\n}\\n\\n.kpi h3 {\\n text-align: center;\\n}\\n\\n.kpi .heading {\\n margin-bottom: 8px;\\n margin-top: 10px;\\n}\\n\\n.kpi-chart {\\n background: white;\\n padding: 5px;\\n cursor: pointer;\\n}\\n\\n.kpi-chart .chart-container {\\n padding: 0px 10px;\\n}\\n\\n.kpi-chart .chartjs-render-monitor {\\n height: 60px !important;\\n}\\n\\n.kpi-chrt-head {\\n text-align: center;\\n margin: 0px;\\n}\\n\\n.kpi-chrt-head .heading-kpi {\\n font-size: 13px;\\n color: black;\\n font-weight: 500;\\n padding-top: 5px;\\n}\\n\\n.kpi-chrt-head .state {\\n font-size: 15px;\\n font-weight: 500;\\n padding-top: 10px;\\n}\\n\\n.filter-label-date {\\n font: 12px Roboto;\\n letter-spacing: 0px;\\n color: #3c3c3c;\\n opacity: 1;\\n margin-bottom: 3px;\\n padding: 1px 0px 0px;\\n}\\n\\n.searchfilter {\\n width: 200px;\\n height: 30px;\\n margin-left: 10px;\\n font-size: 12px;\\n border: 0;\\n}\\n\\n.indicator1 {\\n margin-right: 10px;\\n padding: 5px;\\n font-size: 14px;\\n color: #2e3668;\\n cursor: pointer;\\n}\\n\\n.filter-margin {\\n margin-top: 20px;\\n}\\n\\n.kpicard-filter {\\n margin-top: 13px;\\n}\\n\\n.kpicard-button {\\n margin-top: 14px;\\n padding-left: 10px;\\n}\\n\\n.calender {\\n position: relative;\\n background: white;\\n}\\n\\n.calender input {\\n width: 95%;\\n border: 1px solid lightgray !important;\\n font-size: 12px;\\n height: 18px;\\n padding-left: 5px;\\n}\\n\\n.calander-btn {\\n position: absolute;\\n right: 2px;\\n top: 2px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9jb21wb25lbnQvZG9vcnN0ZXAtZGFzaGJvYXJkL2Rvb3JzdGVwLWRhc2hib2FyZC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50L2Rvb3JzdGVwLWRhc2hib2FyZC9kb29yc3RlcC1kYXNoYm9hcmQuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxrQ0FBQTtFQUNBLGlCQUFBO0FDQ0Y7O0FER0E7RUFDRSxrQkFBQTtFQUNBLGtCQUFBO0VBQ0Esb0JBQUE7QUNBRjs7QURDRTtFQUNJLGtCQUFBO0FDQ047O0FEQ0U7RUFDSSx3QkFBQTtBQ0NOOztBREdBO0VBQ0EsbUJBQUE7QUNBQTs7QURHQTtFQUNBLG1CQUFBO0FDQUE7O0FER0E7RUFDQSxnQkFBQTtBQ0FBOztBREdBO0VBQ0EsaUJBQUE7QUNBQTs7QURHQTtFQUNBLFdBQUE7QUNBQTs7QURHQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsOEJBQUE7QUNBQTs7QURHQTtFQUNBLHlCQUFBO0VBQ0EsWUFBQTtFQUNBLCtHQUFBO0FDQUE7O0FESUU7RUFDSSxnQkFBQTtBQ0ROOztBREdFO0VBQ0ksZ0JBQUE7RUFDQSxnQkFBQTtBQ0ROOztBREtBO0VBQ0EseUJBQUE7RUFDQSxZQUFBO0VBQ0EsK0dBQUE7QUNGQTs7QURLQTtFQUNBLGdCQUFBO0FDRkE7O0FES0E7RUFDQSwwQkFBQTtFQUNBLGlCQUFBO0FDRkE7O0FES0E7RUFDQSwwQkFBQTtFQUNBLGlCQUFBO0FDRkE7O0FES0E7RUFDQSwwQkFBQTtFQUNBLGlCQUFBO0FDRkE7O0FES0E7RUFDQSwwQkFBQTtFQUNBLFdBQUE7QUNGQTs7QURLQTtFQUNBLGNBQUE7QUNGQTs7QURLQTtFQUNBLGNBQUE7QUNGQTs7QURLQTtFQUNBLGNBQUE7QUNGQTs7QURLQTtFQUNBLGNBQUE7QUNGQTs7QURLQTtFQUNBLGNBQUE7QUNGQTs7QURLQTtFQUNBLGNBQUE7QUNGQTs7QURL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QUNBLGlCQUFBO0FDZE47O0FEa0JBO0VBQ0UsaUJBQUE7RUFDQSxtQkFBQTtFQUNBLGNBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7RUFDQSxvQkFBQTtBQ2ZGOztBRGtCQTtFQUNFLFlBQUE7RUFDQSxZQUFBO0VBQ0EsaUJBQUE7RUFDQSxlQUFBO0VBQ0EsU0FBQTtBQ2ZGOztBRGtCQTtFQUNFLGtCQUFBO0VBQ0EsWUFBQTtFQUNBLGVBQUE7RUFDQSxjQUFBO0VBQ0EsZUFBQTtBQ2ZGOztBRGtCQTtFQUNFLGdCQUFBO0FDZkY7O0FEa0JBO0VBQ0UsZ0JBQUE7QUNmRjs7QURrQkE7RUFDRSxnQkFBQTtFQUNBLGtCQUFBO0FDZkY7O0FEa0JBO0VBQ0Esa0JBQUE7RUFDQSxpQkFBQTtBQ2ZBOztBRGdCQTtFQUNJLFVBQUE7RUFDQSxzQ0FBQTtFQUVBLGVBQUE7RUFDQSxZQUFBO0VBQ0EsaUJBQUE7QUNmSjs7QURtQkE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7RUFDQSxRQUFBO0FDaEJBIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50L2Rvb3JzdGVwLWRhc2hib2FyZC9kb29yc3RlcC1kYXNoYm9hcmQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIud29ya2luZy1hcmVhIHtcbiAgbWFyZ2luOiAwcHggMHB4IDBweCAwcHggIWltcG9ydGFudDtcbiAgbWluLWhlaWdodDogMTAwdmg7XG59XG5cbi8vZGFzaGJvYXJkIGNzc1xuLmRhc2hib2FyZCB7XG4gIHBhZGRpbmctdG9wOiAxMjBweDtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgaDMge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC5ncnRoIHtcbiAgICAgIHBhZGRpbmc6IDVweCA1cHggNXB4IDBweDtcbiAgfVxufVxuXG4ucC1iLTgge1xucGFkZGluZy1ib3R0b206IDhweDtcbn1cblxuLnAtYi0zIHtcbnBhZGRpbmctYm90dG9tOiAzcHg7XG59XG5cbi5wLXQtNSB7XG5wYWRkaW5nLXRvcDogNXB4O1xufVxuXG4ucC10LTEzIHtcbnBhZGRpbmctdG9wOiAxM3B4O1xufVxuXG4ubS0wIHtcbm1hcmdpbjogMHB4O1xufVxuXG5ociB7XG53aWR0aDogMTAwJTtcbm9wYWNpdHk6IDAuNTtcbm1hcmdpbi1ib3R0b206IDE1cHggIWltcG9ydGFudDtcbn1cblxuLmRldGFpbC1jYXJkIHtcbmJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG5wYWRkaW5nOiA1cHg7XG5ib3gtc2hhZG93OiAwIDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMXB4IDFweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgMXB4IDNweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5kZXRhaWwtY2FyZCB7XG4gIC5oZWFkLWNyZCB7XG4gICAgICBtYXJnaW4tdG9wOiAxNXB4O1xuICB9XG4gIC5pbmRpY2F0b3Ige1xuICAgICAgbWFyZ2luLWxlZnQ6IDBweDtcbiAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gIH1cbn1cblxuLmRldGFpbC1jYXJkMSB7XG5iYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xucGFkZGluZzogNXB4O1xuYm94LXNoYWRvdzogMCAycHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDFweCAxcHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDFweCAzcHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4uZGV0YWlsLWNhcmQxIC5pbmRpY2F0b3Ige1xubWFyZ2luLWxlZnQ6IDVweDtcbn1cblxuLmNvdW50IHtcbmZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xuZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5jb3VudDEge1xuZm9udC1zaXplOiAxNnB4ICFpbXBvcnRhbnQ7XG5mb250LXdlaWdodDogYm9sZDtcbn1cblxuLmNvdW50MiB7XG5mb250LXNpemU6IDE4cHggIWltcG9ydGFudDtcbmZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG5wIHtcbmZvbnQtc2l6ZTogMTFweCAhaW1wb3J0YW50O1xubWFyZ2luOiAzcHg7XG59XG5cbi5jb2xvci1yZWQge1xuY29sb3I6ICNlNjQyNDM7XG59XG5cbi5jb2xvci1udi1ibHVlIHtcbmNvbG9yOiAjMmUzNjY4O1xufVxuXG4uY29sb3ItbGctYmx1ZSB7XG5jb2xvcjogIzQ4MzRkNDtcbn1cblxuLmNvbG9yLWJsdWUge1xuY29sb3I6ICM1NzU4YmI7XG59XG5cbi5jb2xvci1sZy1za3kge1xuY29sb3I6ICM1N2FlZWY7XG59XG5cbi5jb2xvci1kLXNreSB7XG5jb2xvcjogIzNmNzI5ZDtcbn1cblxuLmNvbG9yLWdybiB7XG5jb2xvcjogIzU0YjE1Nztcbn1cblxuLmluZGljYXRvciB7XG5tYXJnaW4tcmlnaHQ6IDEwcHg7XG5ib3JkZXI6IDFweCBzb2xpZCAjMmUzNjY4O1xuYm9yZGVyLXJhZGl1czogNTAlO1xucGFkZGluZzogNXB4O1xuZm9udC1zaXplOiAxNHB4O1xuY29sb3I6ICMyZTM2Njg7XG5jdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5sYWJlbCB7XG50ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi8vY2hhcnQgY3NzXG4uY2hhcnQtY29udGFpbmVyIHtcbmRpc3BsYXk6IGJsb2NrO1xubWFyZ2luLWJvdHRvbTogMHB4ICFpbXBvcnRhbnQ7XG5wYWRkaW5nOiAwcHggMTBweCAhaW1wb3J0YW50O1xufVxuXG4uZGV0YWlsLWNhcmQgOjpuZy1kZWVwIC5tYXQtdGFiLWxhYmVsIHtcbmhlaWdodDogMjVweDtcbnBhZGRpbmc6IDAgOHB4O1xubWluLXdpZHRoOiA5NXB4O1xuZm9udC1zaXplOiAxM3B4O1xufVxuXG4uY2hhcnRqcy1yZW5kZXItbW9uaXRvciB7XG5tYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cblxuLy9jdXN0b20gY2FsZW5kZXJcbi5leGFtcGxlLW1vbnRoLXBpY2tlciAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b24ge1xucG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5leGFtcGxlLW1vbnRoLXBpY2tlciAubWF0LWNhbGVuZGFyLWFycm93IHtcbmRpc3BsYXk6IG5vbmU7XG59XG5cbi5kYXRlRmllbGQge1xud2lkdGg6IDEwMCU7XG59XG5cbi5oZWFkaW5nU21lIHtcbiAgcGFkZGluZy10b3A6IDIwcHg7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXRvcDogMThweDtcbiAgYm90dG9tOiAyMHB4O1xuICAuaW5kaWNhdG9yIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMjNweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIHBhZGRpbmc6IDNweDtcbiAgfVxufVxuXG4uaGVhZGluZyB7XG4gIC8vcGFkZGluZy10b3A6IDIwcHg7XG4gIC8vIGZvbnQtc2l6ZTogMTZweDtcbiAgLy8gZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIC8vIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLy8gbWFyZ2luLXRvcDogMThweDtcbiAgLmluZGljYXRvciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDEwOXB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgcGFkZGluZzogM3B4O1xuICAgYm90dG9tOiAyMHB4O1xuICB9XG59XG5cbi5hbGVydCB7XG4vL3BhZGRpbmctdG9wOiAyMHB4O1xuZm9udC1zaXplOiAyMHB4O1xuZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8vY3VzdG9tIG1hdC1zZWxlY3RcbiNkYXRlRmllbGQgOjpuZy1kZWVwIGlucHV0Lm1hdC1pbnB1dC1lbGVtZW50IHtcbm1hcmdpbi10b3A6IDNweDtcbnBhZGRpbmctbGVmdDogNXB4O1xuZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG59XG5cbiNkYXRlRmllbGQgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1zdWZmaXgge1xucmlnaHQ6IDBweDtcbnRvcDogMHB4O1xufVxuXG4jZGF0ZUZpZWxkIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQge1xuZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG59XG5cbiNkYXRlRmllbGQgOjpuZy1kZWVwIC5tYXQtZGF0ZXBpY2tlci10b2dnbGUge1xucG9zaXRpb246IGFic29sdXRlO1xucmlnaHQ6IDBweDtcbnRvcDogLTE2cHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuYm9yZGVyLXJhZGl1czogMnB4O1xuYmFja2dyb3VuZDogd2hpdGU7XG5wYWRkaW5nOiAwO1xuaGVpZ2h0OiAyMHB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkIHtcbmZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3Qge1xucGFkZGluZzogM3B4IDBweDtcbmZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG5wYWRkaW5nLWxlZnQ6IDhweDtcbndpZHRoOiAxMDAlO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdmFsdWUge1xud2lkdGg6IDkwJTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIHtcbnRvcDogMDtcbnBhZGRpbmctdG9wOiAwO1xucGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG5wYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuZGlzcGxheTogbm9uZTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG50b3A6IDA7XG5tYXJnaW4tdG9wOiAzcHggIWltcG9ydGFudDtcbnBhZGRpbmctbGVmdDogNXB4O1xuZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5maWx0ZXIzOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgcGFkZGluZzogMDtcbiAgaGVpZ2h0OiAyMHB4O1xuICB3aWR0aDogMTAwcHggIWltcG9ydGFudDtcbiAgbWFyZ2luLXRvcDogMTdweDtcblxufVxuXG4uZmlsdGVyMyA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkIHtcbiAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5maWx0ZXIzIDo6bmctZGVlcCAubWF0LXNlbGVjdCB7XG4gIHBhZGRpbmc6IDNweCAwcHg7XG4gIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xufVxuXG4uZmlsdGVyMyA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gIHBhZGRpbmctbGVmdDogOHB4O1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmZpbHRlcjMgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5maWx0ZXIzIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gIHRvcDogMDtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMyA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjMgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZmlsdGVyMyA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdG9wOiAwO1xuICBtYXJnaW4tdG9wOiAzcHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gIGZvbnQtc2l6ZTogMTZweCAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogYm9sZCAhaW1wb3J0YW50O1xuXG59XG5cbi5maWx0ZXItbGFiZWwge1xuZm9udDogQm9sZCAxNHB4IFJvYm90bztcbmxldHRlci1zcGFjaW5nOiAwcHg7XG5jb2xvcjogIzNjM2MzYztcbm9wYWNpdHk6IDE7XG5tYXJnaW4tYm90dG9tOiA1cHg7XG59XG4uZGF0ZUZpbHRlciB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgcGFkZGluZzogMDtcbiAgaGVpZ2h0OiAyMHB4O1xufVxuXG4vL2twaSBjc3Ncbi5rcGkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWRlZGVkO1xuICBwYWRkaW5nLXRvcDogMTA1cHg7XG4gIHBhZGRpbmctbGVmdDogMjBweDtcbiAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgcGFkZGluZy1ib3R0b206IDIwcHg7XG4gIGgzIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAuaGVhZGluZyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICB9XG59XG5cbi5rcGktY2hhcnQge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgcGFkZGluZzogNXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC5jaGFydC1jb250YWluZXIge1xuICAgICAgcGFkZGluZzogMHB4IDEwcHg7XG4gIH1cbiAgLmNoYXJ0anMtcmVuZGVyLW1vbml0b3Ige1xuICAgICAgaGVpZ2h0OiA2MHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLmtwaS1jaHJ0LWhlYWQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbjogMHB4O1xuICAuaGVhZGluZy1rcGkge1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgY29sb3I6IGJsYWNrO1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIHBhZGRpbmctdG9wOiA1cHg7XG4gIH1cbiAgLnN0YXRlIHtcbiAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICBwYWRkaW5nLXRvcDogMTBweDtcbiAgfVxufVxuXG4uZmlsdGVyLWxhYmVsLWRhdGUge1xuICBmb250OiAxMnB4IFJvYm90bztcbiAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgY29sb3I6ICMzYzNjM2M7XG4gIG9wYWNpdHk6IDE7XG4gIG1hcmdpbi1ib3R0b206IDNweDtcbiAgcGFkZGluZzogMXB4IDBweCAwcHg7XG59XG5cbi5zZWFyY2hmaWx0ZXIge1xuICB3aWR0aDogMjAwcHg7XG4gIGhlaWdodDogMzBweDtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgYm9yZGVyOiAwO1xufVxuXG4uaW5kaWNhdG9yMSB7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbiAgcGFkZGluZzogNXB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGNvbG9yOiAjMmUzNjY4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5maWx0ZXItbWFyZ2luIHtcbiAgbWFyZ2luLXRvcDogMjBweDtcbn1cblxuLmtwaWNhcmQtZmlsdGVyIHtcbiAgbWFyZ2luLXRvcDogMTNweDtcbn1cblxuLmtwaWNhcmQtYnV0dG9uIHtcbiAgbWFyZ2luLXRvcDogMTRweDtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xufVxuXG4uY2FsZW5kZXIge1xucG9zaXRpb246IHJlbGF0aXZlO1xuYmFja2dyb3VuZDogd2hpdGU7XG5pbnB1dCB7XG4gICAgd2lkdGg6IDk1JTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXkgIWltcG9ydGFudDtcbiAgICAvL2JvcmRlci1yYWRpdXM6IDVweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgaGVpZ2h0OiAxOHB4O1xuICAgIHBhZGRpbmctbGVmdDogNXB4O1xufVxufVxuXG4uY2FsYW5kZXItYnRuIHtcbnBvc2l0aW9uOiBhYnNvbHV0ZTtcbnJpZ2h0OiAycHg7XG50b3A6IDJweDtcbn1cbiIsIi53b3JraW5nLWFyZWEge1xuICBtYXJnaW46IDBweCAwcHggMHB4IDBweCAhaW1wb3J0YW50O1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcbn1cblxuLmRhc2hib2FyZCB7XG4gIHBhZGRpbmctdG9wOiAxMjBweDtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbn1cbi5kYXNoYm9hcmQgaDMge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uZGFzaGJvYXJkIC5ncnRoIHtcbiAgcGFkZGluZzogNXB4IDVweCA1cHggMHB4O1xufVxuXG4ucC1iLTgge1xuICBwYWRkaW5nLWJvdHRvbTogOHB4O1xufVxuXG4ucC1iLTMge1xuICBwYWRkaW5nLWJvdHRvbTogM3B4O1xufVxuXG4ucC10LTUge1xuICBwYWRkaW5nLXRvcDogNXB4O1xufVxuXG4ucC10LTEzIHtcbiAgcGFkZGluZy10b3A6IDEzcHg7XG59XG5cbi5tLTAge1xuICBtYXJnaW46IDBweDtcbn1cblxuaHIge1xuICB3aWR0aDogMTAwJTtcbiAgb3BhY2l0eTogMC41O1xuICBtYXJnaW4tYm90dG9tOiAxNXB4ICFpbXBvcnRhbnQ7XG59XG5cbi5kZXRhaWwtY2FyZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIHBhZGRpbmc6IDVweDtcbiAgYm94LXNoYWRvdzogMCAycHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDFweCAxcHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDFweCAzcHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4uZGV0YWlsLWNhcmQgLmhlYWQtY3JkIHtcbiAgbWFyZ2luLXRvcDogMTVweDtcbn1cbi5kZXRhaWwtY2FyZCAuaW5kaWNhdG9yIHtcbiAgbWFyZ2luLWxlZnQ6IDBweDtcbiAgbWFyZ2luLXRvcDogMTBweDtcbn1cblxuLmRldGFpbC1jYXJkMSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIHBhZGRpbmc6IDVweDtcbiAgYm94LXNoYWRvdzogMCAycHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDFweCAxcHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDFweCAzcHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4uZGV0YWlsLWNhcmQxIC5pbmRpY2F0b3Ige1xuICBtYXJnaW4tbGVmdDogNXB4O1xufVxuXG4uY291bnQge1xuICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5jb3VudDEge1xuICBmb250LXNpemU6IDE2cHggIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5jb3VudDIge1xuICBmb250LXNpemU6IDE4cHggIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbnAge1xuICBmb250LXNpemU6IDExcHggIWltcG9ydGFudDtcbiAgbWFyZ2luOiAzcHg7XG59XG5cbi5jb2xvci1yZWQge1xuICBjb2xvcjogI2U2NDI0Mztcbn1cblxuLmNvbG9yLW52LWJsdWUge1xuICBjb2xvcjogIzJlMzY2ODtcbn1cblxuLmNvbG9yLWxnLWJsdWUge1xuICBjb2xvcjogIzQ4MzRkNDtcbn1cblxuLmNvbG9yLWJsdWUge1xuICBjb2xvcjogIzU3NThiYjtcbn1cblxuLmNvbG9yLWxnLXNreSB7XG4gIGNvbG9yOiAjNTdhZWVmO1xufVxuXG4uY29sb3ItZC1za3kge1xuICBjb2xvcjogIzNmNzI5ZDtcbn1cblxuLmNvbG9yLWdybiB7XG4gIGNvbG9yOiAjNTRiMTU3O1xufVxuXG4uaW5kaWNhdG9yIHtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjMmUzNjY4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHBhZGRpbmc6IDVweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBjb2xvcjogIzJlMzY2ODtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubGFiZWwge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5jaGFydC1jb250YWluZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMHB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDBweCAxMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5kZXRhaWwtY2FyZCA6Om5nLWRlZXAgLm1hdC10YWItbGFiZWwge1xuICBoZWlnaHQ6IDI1cHg7XG4gIHBhZGRpbmc6IDAgOHB4O1xuICBtaW4td2lkdGg6IDk1cHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbn1cblxuLmNoYXJ0anMtcmVuZGVyLW1vbml0b3Ige1xuICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cblxuLmV4YW1wbGUtbW9udGgtcGlja2VyIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbiB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uZXhhbXBsZS1tb250aC1waWNrZXIgLm1hdC1jYWxlbmRhci1hcnJvdyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5kYXRlRmllbGQge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmhlYWRpbmdTbWUge1xuICBwYWRkaW5nLXRvcDogMjBweDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tdG9wOiAxOHB4O1xuICBib3R0b206IDIwcHg7XG59XG4uaGVhZGluZ1NtZSAuaW5kaWNhdG9yIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAyM3B4O1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBwYWRkaW5nOiAzcHg7XG59XG5cbi5oZWFkaW5nIC5pbmRpY2F0b3Ige1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDEwOXB4O1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBwYWRkaW5nOiAzcHg7XG4gIGJvdHRvbTogMjBweDtcbn1cblxuLmFsZXJ0IHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuI2RhdGVGaWVsZCA6Om5nLWRlZXAgaW5wdXQubWF0LWlucHV0LWVsZW1lbnQge1xuICBtYXJnaW4tdG9wOiAzcHg7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xuICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcbn1cblxuI2RhdGVGaWVsZCA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCB7XG4gIHJpZ2h0OiAwcHg7XG4gIHRvcDogMHB4O1xufVxuXG4jZGF0ZUZpZWxkIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQge1xuICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcbn1cblxuI2RhdGVGaWVsZCA6Om5nLWRlZXAgLm1hdC1kYXRlcGlja2VyLXRvZ2dsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDBweDtcbiAgdG9wOiAtMTZweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgcGFkZGluZzogMDtcbiAgaGVpZ2h0OiAyMHB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkIHtcbiAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdCB7XG4gIHBhZGRpbmc6IDNweCAwcHg7XG4gIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gIHBhZGRpbmctbGVmdDogOHB4O1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgd2lkdGg6IDkwJTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIHtcbiAgdG9wOiAwO1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0b3A6IDA7XG4gIG1hcmdpbi10b3A6IDNweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5maWx0ZXIzOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgcGFkZGluZzogMDtcbiAgaGVpZ2h0OiAyMHB4O1xuICB3aWR0aDogMTAwcHggIWltcG9ydGFudDtcbiAgbWFyZ2luLXRvcDogMTdweDtcbn1cblxuLmZpbHRlcjMgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZCB7XG4gIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xufVxuXG4uZmlsdGVyMyA6Om5nLWRlZXAgLm1hdC1zZWxlY3Qge1xuICBwYWRkaW5nOiAzcHggMHB4O1xuICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcbn1cblxuLmZpbHRlcjMgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5maWx0ZXIzIDo6bmctZGVlcCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uZmlsdGVyMyA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIge1xuICB0b3A6IDA7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjMgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXIzIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmZpbHRlcjMgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRvcDogMDtcbiAgbWFyZ2luLXRvcDogM3B4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xuICBmb250LXNpemU6IDE2cHggIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQgIWltcG9ydGFudDtcbn1cblxuLmZpbHRlci1sYWJlbCB7XG4gIGZvbnQ6IEJvbGQgMTRweCBSb2JvdG87XG4gIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gIGNvbG9yOiAjM2MzYzNjO1xuICBvcGFjaXR5OiAxO1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG5cbi5kYXRlRmlsdGVyIHtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBwYWRkaW5nOiAwO1xuICBoZWlnaHQ6IDIwcHg7XG59XG5cbi5rcGkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWRlZGVkO1xuICBwYWRkaW5nLXRvcDogMTA1cHg7XG4gIHBhZGRpbmctbGVmdDogMjBweDtcbiAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgcGFkZGluZy1ib3R0b206IDIwcHg7XG59XG4ua3BpIGgzIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmtwaSAuaGVhZGluZyB7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbiAgbWFyZ2luLXRvcDogMTBweDtcbn1cblxuLmtwaS1jaGFydCB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBwYWRkaW5nOiA1cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5rcGktY2hhcnQgLmNoYXJ0LWNvbnRhaW5lciB7XG4gIHBhZGRpbmc6IDBweCAxMHB4O1xufVxuLmtwaS1jaGFydCAuY2hhcnRqcy1yZW5kZXItbW9uaXRvciB7XG4gIGhlaWdodDogNjBweCAhaW1wb3J0YW50O1xufVxuXG4ua3BpLWNocnQtaGVhZCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luOiAwcHg7XG59XG4ua3BpLWNocnQtaGVhZCAuaGVhZGluZy1rcGkge1xuICBmb250LXNpemU6IDEzcHg7XG4gIGNvbG9yOiBibGFjaztcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgcGFkZGluZy10b3A6IDVweDtcbn1cbi5rcGktY2hydC1oZWFkIC5zdGF0ZSB7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgcGFkZGluZy10b3A6IDEwcHg7XG59XG5cbi5maWx0ZXItbGFiZWwtZGF0ZSB7XG4gIGZvbnQ6IDEycHggUm9ib3RvO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICBjb2xvcjogIzNjM2MzYztcbiAgb3BhY2l0eTogMTtcbiAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICBwYWRkaW5nOiAxcHggMHB4IDBweDtcbn1cblxuLnNlYXJjaGZpbHRlciB7XG4gIHdpZHRoOiAyMDBweDtcbiAgaGVpZ2h0OiAzMHB4O1xuICBtYXJnaW4tbGVmdDogMTBweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBib3JkZXI6IDA7XG59XG5cbi5pbmRpY2F0b3IxIHtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICBwYWRkaW5nOiA1cHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgY29sb3I6ICMyZTM2Njg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmZpbHRlci1tYXJnaW4ge1xuICBtYXJnaW4tdG9wOiAyMHB4O1xufVxuXG4ua3BpY2FyZC1maWx0ZXIge1xuICBtYXJnaW4tdG9wOiAxM3B4O1xufVxuXG4ua3BpY2FyZC1idXR0b24ge1xuICBtYXJnaW4tdG9wOiAxNHB4O1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG59XG5cbi5jYWxlbmRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG4uY2FsZW5kZXIgaW5wdXQge1xuICB3aWR0aDogOTUlO1xuICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXkgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBoZWlnaHQ6IDE4cHg7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xufVxuXG4uY2FsYW5kZXItYnRuIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMnB4O1xuICB0b3A6IDJweDtcbn0iXX0= */\"","import { Component, OnInit, ChangeDetectionStrategy, ViewChild } from '@angular/core';\nimport { FormControl, Validators, FormGroup, FormBuilder } from '@angular/forms';\nimport { MomentDateAdapter, MAT_MOMENT_DATE_ADAPTER_OPTIONS } from '@angular/material-moment-adapter';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE, MatOption } from '@angular/material/core';\nimport { MatDatepicker } from '@angular/material/datepicker';\nimport { ChartOptions, ChartType, ChartDataSets } from 'chart.js';\nimport { Label } from 'ng2-charts';\nimport { ToastrService } from \"ngx-toastr\";\nimport { CommonService } from \"../../core/service/common-service/common.service\";\nimport { ExampleHeader } from './doorstep-custom-header-cal/doorstep-custom-header-cal.component';\n\nimport * as _moment from 'moment';\n// tslint:disable-next-line:no-duplicate-imports\nimport { default as _rollupMoment, Moment } from 'moment';\nimport { ChartDialogComponent } from '../../modal/chart-dialog/chart-dialog.component';\nimport { MatDialog } from '@angular/material';\nimport { ServiceBreakDialogComponent } from '../../modal/service-break-dialog/service-break-dialog.component';\nimport { ActivatedRoute, Router, RouterLinkActive } from '@angular/router';\nimport { DatePipe } from '@angular/common';\nimport { MatMonthView } from '@angular/material/datepicker';\nimport { element } from 'protractor';\n\nconst moment = _rollupMoment || _moment;\n\nexport const MY_FORMATS = {\n parse: {\n dateInput: 'MMM/YYYY',\n },\n display: {\n dateInput: 'MMM/YYYY',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n },\n};\n\n@Component({\n selector: 'app-doorstep-dashboard',\n templateUrl: './doorstep-dashboard.component.html',\n styleUrls: ['./doorstep-dashboard.component.scss'],\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS]\n },\n\n { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },\n ]\n})\n\nexport class DoorstepDashboardComponent implements OnInit {\n\n @ViewChild('allSelectedService', { static: true }) private allSelectedService: MatOption;\n\n selectService: any;\n exampleHeader = ExampleHeader;\n date = new FormControl(moment());\n selectedDate: any;\n minDate: any = new Date();\n maxDate: any = new Date();\n spinner: boolean;\n filtersWorkshop: any = [];\n filtersCre: string[] = [];\n selectedWorkShop: string[] = [];\n userId: string;\n userInfo: any;\n selectedCre: string[] = [];\n serviceType: string = \"\";\n updateChart: boolean = false;\n updateChartCard: boolean = false;\n //line-char\n callCoverage: any = [];\n selectedCallCoverage: any = {};\n avgCall: any = [];\n selectedAvgCall: any = {};\n successReminder: any = [];\n selectedSuccessReminder: any = {};\n successVisit: any = [];\n selectedSuccessVisit: any = {};\n successNoShow: any = [];\n selectedSuccessNoShow: any = {};\n lostConversion: any = [];\n selectedLostConversion: any = {};\n overAllConversion: any = [];\n selectedOverAllConversion: any = {};\n bookingRate: any = [];\n selectedBookingRate: any = {};\n perCallConversion: any = [];\n selectedPerCallConversion: any = {};\n services: any = [\n { key: \"1\", value: \"ECS - Early Care Service\" },\n { key: \"2\", value: \"FS - Free Service\" },\n { key: \"3\", value: \"PMS - Preventive Maintenance Service\" },\n { key: \"4\", value: \"Technical Campaign Order\" },\n { key: \"7\", value: \"Fault Code\" },\n { key: \"6\", value: \"Wheel Alignment\" },\n { key: \"8\", value: \"PMS BS-6\" },\n { key: \"9\", value: \"Running Repair\" }\n ];\n //hr-bar\n allocated: any = {};\n attempted: any = {};\n notAttempted: any = {};\n contacted: any = {};\n notContacted: any = {};\n booking: any = {};\n converted: any = {};\n activeBooking: any = {};\n contactedNoService: any = {};\n contactedFollowup: any = {};\n connectedSystemClose: any = {};\n bookingFollowup: any = {};\n bookingNoService: any = {};\n bookingSystemClose: any = {};\n noResponse: any = {};\n busy: any = {};\n switchOff: any = {};\n invalid: any = {};\n others: any = {};\n followup: any = {};\n followup1: any = {};\n followup2: any = {};\n followup3: any = {};\n uniqueWorkshop: string[] = [];\n uniqueWorkshopCopy: string[] = [];\n uniqueWorkshopCard: string[] = [];\n uniqueWorkshopCardCopy: string[] = [];\n selectedDealer: any;\n selectedCardDealer: any;\n filtersCreCopy: string[] = [];\n selectedCreCode: any;\n dealerCode: string[] = [];\n dealerCodeCard: string[] = [];\n creCode: string[] = [];\n today: Date = new Date();\n toDate: Date = new Date();\n fromDate: Date = new Date();\n availableDashboard: string[] = [];\n selectedDashboard: any\n\n\n bFollowup1: any = {};\n bFollowup2: any = {};\n bFollowup3: any = {};\n\n systemClose: any = {};\n noService: any = {};\n notConverted: any = {};\n noShow: any = {};\n\n //connected bar\n cFollowup: any = {};\n cContactFleet: any = {};\n cCancelBooking: any = {};\n cHighCost: any = {};\n cOwnWorkshop: any = {};\n cDistance: any = {};\n cVehicleSold: any = {};\n cVehicleRunning: any = {};\n cVehicleTheft: any = {};\n cOthers: any = {};\n\n //booking bar\n bFollowup: any = {};\n bContactFleet: any = {};\n bCancelBooking: any = {};\n bHighCost: any = {};\n bOwnWorkshop: any = {};\n bDistance: any = {};\n bVehicleSold: any = {};\n bVehicleRunning: any = {};\n bVehicleTheft: any = {};\n bOthers: any = {};\n\n //follow-reason\n sameDay: any = {};\n eventual: any = {};\n\n //service-breakup\n allocatedServiceBreak: any[] = [];\n attemptedServiceBreak: any[] = [];\n connectedServiceBreak: any[] = [];\n bookingServiceBreak: any[] = [];\n AttemptedAchievement: number;\n ContactedAchievement: any;\n BookingsAchievement: any;\n selectedKpiCardWorkShop: string[] = [];\n minEndDate: any = new Date();\n\n\n //horizontalBarChart1 horizontalBar start\n public horizontalBarChart1Options: ChartOptions = {\n responsive: true,\n title: { display: false },\n tooltips: {\n enabled: false,\n mode: 'single',\n position: 'nearest',\n caretSize: 2,\n bodyAlign: 'center',\n titleAlign: 'center',\n titleFontSize: 11,\n titleFontStyle: 'normal',\n bodyFontSize: 11,\n bodyFontStyle: 'normal'\n },\n scales: {\n xAxes: [{\n display: false, ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n yAxes: [{\n display: false, ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n }\n };\n public horizontalBarChart1Labels: Label[] = ['Attempted'];\n public horizontalBarChartType: ChartType = 'horizontalBar';\n public horizontalBarChartLegend = false;\n public horizontalBarChartPlugins = [];\n public horizontalBarChart1Data: ChartDataSets[] = [];\n //horizontalBarChart1 horizontalBar end\n\n //horizontalBarChart2 horizontalBar start\n public horizontalBarChart2Labels: Label[] = ['Connected'];\n public horizontalBarChart2Options: ChartOptions = {\n responsive: true,\n title: { display: false },\n tooltips: {\n enabled: false,\n mode: 'single',\n position: 'nearest',\n caretSize: 2,\n bodyAlign: 'center',\n titleAlign: 'center',\n titleFontSize: 11,\n titleFontStyle: 'normal',\n bodyFontSize: 11,\n bodyFontStyle: 'normal'\n },\n scales: {\n xAxes: [{\n display: false, ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n yAxes: [{\n display: false, ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n }\n };\n public horizontalBarChart2Data: ChartDataSets[] = [];\n //horizontalBarChart2 horizontalBar end\n\n //horizontalBarChart3 horizontalBar start\n public horizontalBarChart3Labels: Label[] = ['Bookings'];\n public horizontalBarChart3Options: ChartOptions = {\n responsive: true,\n title: { display: false },\n tooltips: {\n enabled: false,\n mode: 'single',\n position: 'nearest',\n caretSize: 2,\n bodyAlign: 'center',\n titleAlign: 'center',\n titleFontSize: 11,\n titleFontStyle: 'normal',\n bodyFontSize: 11,\n bodyFontStyle: 'normal'\n },\n scales: {\n xAxes: [{\n display: false, ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n yAxes: [{\n display: false, ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n }\n };\n public horizontalBarChart3Data: ChartDataSets[] = [];\n //horizontalBarChart3 horizontalBar end\n\n //horizontalBarChart4 horizontalBar start\n public horizontalBarChart4Options: ChartOptions = {\n responsive: true,\n title: { display: false },\n tooltips: {\n enabled: true,\n mode: 'single',\n position: 'nearest',\n caretSize: 2,\n bodyAlign: 'center',\n titleAlign: 'center',\n displayColors: false,\n titleFontSize: 11,\n titleFontStyle: 'normal',\n bodyFontSize: 11,\n bodyFontStyle: 'normal'\n },\n scales: {\n xAxes: [{\n display: false, ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n yAxes: [{\n display: true,\n gridLines: { display: false },\n scaleLabel: { display: true },\n ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n }\n };\n public horizontalBarChart4Labels: Label[] = [\n \"Distance from dealer location-Other city\",\n \"Service Cost High\",\n \"Other\",\n \"Customer Has own Workshop\",\n \"Vehicle running less\",\n \"Vehicle Sold\",\n \"Vehicle Theft/Total Loss\"\n ];\n public horizontalBarChart4Data: ChartDataSets[] = [];\n //horizontalBarChart4 horizontalBar end\n public horizontalBarChart5Options: ChartOptions = {\n responsive: true,\n title: { display: false },\n tooltips: {\n enabled: true,\n mode: 'single',\n position: 'nearest',\n caretSize: 2,\n bodyAlign: 'center',\n titleAlign: 'center',\n displayColors: false,\n titleFontSize: 11,\n titleFontStyle: 'normal',\n bodyFontSize: 11,\n bodyFontStyle: 'normal'\n },\n scales: {\n xAxes: [{\n display: false, ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n yAxes: [{\n display: true,\n gridLines: { display: false },\n scaleLabel: { display: true },\n ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n }\n };\n public horizontalBarChart5Data: ChartDataSets[] = [];\n\n //horizontalBarChart6 horizontalBar start\n public horizontalBarChart6Options: ChartOptions = {\n responsive: true,\n title: { display: false },\n tooltips: {\n enabled: true,\n mode: 'single',\n position: 'nearest',\n caretSize: 2,\n bodyAlign: 'center',\n titleAlign: 'center',\n displayColors: false,\n titleFontSize: 11,\n titleFontStyle: 'normal',\n bodyFontSize: 11,\n bodyFontStyle: 'normal'\n },\n scales: {\n xAxes: [{\n display: false, ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n yAxes: [{\n display: true,\n gridLines: { display: false },\n scaleLabel: { display: true },\n ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n }\n };\n public horizontalBarChart6Labels: Label[] = [\n 'Call Later',\n \"Cancel Booking And Call Later\",\n ];\n public horizontalBarChart6Data: ChartDataSets[] = [];\n //horizontalBarChart6 horizontalBar end\n\n //horizontalBarChart7 horizontalBar start\n public horizontalBarChart7Options: ChartOptions = {\n responsive: true,\n title: { display: false },\n tooltips: {\n enabled: true,\n mode: 'single',\n position: 'nearest',\n caretSize: 2,\n bodyAlign: 'center',\n titleAlign: 'center',\n displayColors: false,\n titleFontSize: 11,\n titleFontStyle: 'normal',\n bodyFontSize: 11,\n bodyFontStyle: 'normal'\n },\n scales: {\n xAxes: [{\n display: false, ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n yAxes: [{\n display: true,\n gridLines: { display: false },\n scaleLabel: { display: true },\n ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n }\n };\n public horizontalBarChart7Labels: Label[] = [\n 'Follow Up',\n 'Contact Fleet Manager',\n 'Cancel Booking and Contact Later'\n ];\n public horizontalBarChart7Data: ChartDataSets[] = [];\n //horizontalBarChart7 horizontalBar end\n\n //horizontalBarChart8 horizontalBar start\n public horizontalBarChart8Options: ChartOptions = {\n responsive: true,\n title: { display: false },\n tooltips: {\n enabled: true,\n mode: 'single',\n position: 'nearest',\n caretSize: 2,\n bodyAlign: 'center',\n titleAlign: 'center',\n displayColors: false,\n titleFontSize: 11,\n titleFontStyle: 'normal',\n bodyFontSize: 11,\n bodyFontStyle: 'normal'\n },\n scales: {\n xAxes: [{\n display: false, ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n yAxes: [{\n display: true,\n gridLines: { display: false },\n scaleLabel: { display: true },\n ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n }\n };\n public horizontalBarChart8Labels: Label[] = [\n 'Follow Up',\n 'Contact Fleet Manager',\n 'Cancel Booking and Contact Later'\n ];\n public horizontalBarChart8Data: ChartDataSets[] = [];\n //horizontalBarChart8 horizontalBar end\n\n //barChart1 VerticalBar start\n public barChart1Options: ChartOptions = {\n responsive: true,\n title: {\n display: true,\n text: 'Not Contacted Reason',\n position: 'top',\n fontSize: 13\n },\n tooltips: {\n enabled: true,\n mode: 'single',\n position: 'nearest',\n caretSize: 2,\n bodyAlign: 'center',\n titleAlign: 'center',\n displayColors: false,\n titleFontSize: 11,\n titleFontStyle: 'normal',\n bodyFontSize: 11,\n bodyFontStyle: 'normal'\n },\n scales: {\n xAxes: [{\n display: true,\n gridLines: {\n display: false,\n },\n scaleLabel: {\n display: true,\n },\n ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n yAxes: [{\n display: false,\n ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n }\n };\n public barChart1Labels: Label[] = ['No Response', 'Busy', 'Switched Off', 'Invalid No.', 'Others'];\n public barChart1Type: ChartType = 'bar';\n public barChart1Legend = false;\n public barChart1Plugins = [];\n public barChart1Data: ChartDataSets[] = [];\n //barChart1 VerticalBar end\n\n //barChart2 VerticalBar start\n public barChart2Options: ChartOptions = {\n responsive: true,\n title: {\n display: true,\n text: 'Conversion',\n position: 'top',\n fontSize: 13\n },\n tooltips: {\n enabled: true,\n mode: 'single',\n position: 'nearest',\n caretSize: 2,\n bodyAlign: 'center',\n titleAlign: 'center',\n displayColors: false,\n titleFontSize: 11,\n titleFontStyle: 'normal',\n bodyFontSize: 11,\n bodyFontStyle: 'normal'\n },\n scales: {\n xAxes: [{\n display: true,\n gridLines: {\n display: false,\n },\n scaleLabel: {\n display: true,\n },\n ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n yAxes: [{\n display: false,\n ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n }\n };\n public barChart2Labels: Label[] = ['Same Day', 'Eventual'];\n public barChart2Type: ChartType = 'bar';\n public barChart2Legend = false;\n public barChart2Plugins = [];\n public barChart2Data: ChartDataSets[] = [];\n //barChart2 VerticalBar end\n\n //barChart6 horizontalBar start\n public barChart6Options: ChartOptions = {\n responsive: true,\n title: {\n display: false\n },\n tooltips: {\n enabled: true,\n mode: 'single',\n position: 'nearest',\n caretSize: 2,\n bodyAlign: 'center',\n titleAlign: 'center',\n displayColors: false,\n titleFontSize: 11,\n titleFontStyle: 'normal',\n bodyFontSize: 11,\n bodyFontStyle: 'normal'\n },\n scales: {\n xAxes: [{\n display: false,\n ticks: {\n beginAtZero: true,\n max: 15,\n fontSize: 11\n }\n }],\n yAxes: [{\n display: true,\n gridLines: {\n display: false,\n },\n scaleLabel: {\n display: true,\n },\n ticks: {\n beginAtZero: true,\n max: 15,\n fontSize: 11\n }\n }],\n }\n };\n public barChart6Labels: Label[] = ['R1', 'R2', 'R3', 'R4'];\n public barChart6Type: ChartType = 'horizontalBar';\n public barChart6Legend = false;\n public barChart6Plugins = [];\n\n public barChart6Data: ChartDataSets[] = [\n {\n data: [15, 10, 12, 6],\n backgroundColor: 'rgb(87, 174, 239)',\n hoverBackgroundColor: 'rgb(87, 174, 239)',\n borderSkipped: 'chartArea',\n barPercentage: 0.5,\n barThickness: 12,\n maxBarThickness: 12,\n minBarLength: 2\n }\n ];\n //barChart6 horizontalBar end\n\n //lineChart1 VerticalBar start\n public lineChartOptions: ChartOptions = {\n responsive: true,\n legend: {\n display: false\n },\n title: {\n display: false\n },\n tooltips: {\n enabled: false\n },\n scales: {\n xAxes: [{\n display: true,\n gridLines: {\n display: false,\n },\n scaleLabel: {\n display: false,\n },\n ticks: {\n beginAtZero: true,\n display: false,\n max: 30,\n fontSize: 11\n }\n }],\n yAxes: [{\n display: false,\n ticks: {\n beginAtZero: true,\n max: 15,\n fontSize: 11\n }\n }],\n },\n elements: {\n line: {\n fill: false,\n tension: 0.000001,\n },\n point: {\n radius: 0\n }\n }\n };\n public lineChartLabels: Label[] = ['1', '2', '3', '4'];\n public lineChartType: ChartType = 'line';\n public lineChartLegend = false;\n public lineChartPlugins = [];\n\n public lineChart1Data: ChartDataSets[] = [\n {\n data: [2, 10, 5, 8],\n borderColor: 'black',\n backgroundColor: '#ffffff',\n hoverBackgroundColor: '#ffffff',\n borderWidth: 1\n }\n ];\n //lineChart1 VerticalBar end\n selectAllService: boolean;\n\n\n\n\n constructor(private commonService: CommonService, private toastr: ToastrService, public dialog: MatDialog, private router: Router, private datePipe: DatePipe, private fb: FormBuilder) { }\n\n ngOnInit() {\n this.availableDashboard = [];\n if (localStorage.getItem('roleId') == \"17\") {\n this.availableDashboard.push(\"Dashboard\")\n }\n if (localStorage.getItem('roleId') == \"15\") {\n this.availableDashboard.push(\"SRM-Dashboard\", \"Prs-Dashboard\")\n\n }\n\n if (localStorage.getItem('userId') == null || localStorage.getItem('userId') == undefined) {\n this.router.navigate(['login']);\n }\n\n let userInfo = JSON.parse(localStorage.getItem('userInfo'));\n this.userInfo = userInfo[0];\n this.userId = localStorage.getItem(\"userId\");\n this.doorstepFilterDashboard();\n this.periodFilter();\n\n if (localStorage.getItem('workshops') == null || localStorage.getItem('workshops') == undefined) {\n this.getWorkshopDetails();\n }\n this.selectService = this.fb.group({\n selectServiceType: ['']\n });\n }\n\n /**\n * Name: getWorkshopDetails\n * purpose: To get CRE assigned workshop details\n */\n getWorkshopDetails() {\n this.spinner = true;\n this.commonService.getWorkshopDetails(this.userId)\n .subscribe(res => {\n if (res['responseCode'] == 0) {\n this.spinner = false;\n localStorage.setItem('workshops', JSON.stringify(res['responseData']));\n } else {\n this.spinner = false;\n //this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n chosenYearHandler(normalizedYear: Moment) {\n const ctrlValue = this.date.value;\n if (normalizedYear.year() == this.maxDate.getFullYear()) {\n ctrlValue.month(this.maxDate.getMonth());\n } else {\n ctrlValue.month(this.minDate.getMonth());\n }\n ctrlValue.year(normalizedYear.year());\n this.date.setValue(ctrlValue);\n }\n\n chosenMonthHandler(normalizedMonth: Moment, datepicker: MatDatepicker) {\n const ctrlValue = this.date.value;\n ctrlValue.month(normalizedMonth.month());\n ctrlValue.year(normalizedMonth.year());\n this.date.setValue(ctrlValue);\n datepicker.close();\n }\n\n reset() {\n this.selectedCre = [];\n this.selectedWorkShop = [];\n this.serviceType = \"\";\n let date = moment(this.maxDate);\n this.date.setValue(date);\n this.selectService.setValue({ selectServiceType: '' });\n this.today = new Date();\n this.toDate = new Date();\n this.fromDate = new Date();\n this.getDoorStepDashboardKpi();\n }\n\n getChart(chartKpi: any) {\n this.dialog.open(ChartDialogComponent, {\n width: '600px',\n data: { kpi: chartKpi }\n });\n }\n\n getServiceBreak(serviceBreakup: any) {\n this.dialog.open(ServiceBreakDialogComponent, {\n width: '400px',\n data: { serviceBreak: serviceBreakup }\n });\n }\n\n resetResponse() {\n this.followup1 = {};\n this.followup2 = {};\n this.followup3 = {};\n //booking followup\n this.bFollowup1 = {};\n this.bFollowup2 = {};\n this.bFollowup3 = {};\n //conversion\n this.sameDay = {};\n this.eventual = {};\n //not connected reason\n this.noResponse = {};\n this.busy = {};\n this.switchOff = {};\n this.invalid = {};\n this.others = {};\n //connected mo service\n this.cFollowup = {};\n this.cContactFleet = {};\n this.cCancelBooking = {};\n this.cHighCost = {};\n this.cOwnWorkshop = {};\n this.cDistance = {};\n this.cVehicleSold = {};\n this.cVehicleRunning = {};\n this.cVehicleTheft = {};\n this.cOthers = {};\n //booking no service\n this.bFollowup = {};\n this.bContactFleet = {};\n this.bCancelBooking = {};\n this.bHighCost = {};\n this.bOwnWorkshop = {};\n this.bDistance = {};\n this.bVehicleSold = {};\n this.bVehicleRunning = {};\n this.bVehicleTheft = {};\n this.bOthers = {};\n this.barChart1Data = [];\n this.barChart2Data = [];\n this.horizontalBarChart4Data = [];\n this.horizontalBarChart5Data = [];\n this.horizontalBarChart7Data = [];\n this.horizontalBarChart8Data = [];\n }\n\n resetKpiCard() {\n this.callCoverage = [];\n this.selectedCallCoverage = {};\n\n this.avgCall = [];\n this.selectedAvgCall = {};\n\n this.successReminder = [];\n this.selectedSuccessReminder = {};\n\n this.successVisit = [];\n this.selectedSuccessVisit = {};\n\n this.successNoShow = [];\n this.selectedSuccessNoShow = {};\n\n this.lostConversion = [];\n this.selectedLostConversion = {};\n\n this.overAllConversion = [];\n this.selectedOverAllConversion = {};\n\n this.bookingRate = [];\n this.selectedBookingRate = {};\n\n this.perCallConversion = [];\n this.selectedPerCallConversion = {};\n }\n\n resetDashboard() {\n this.allocated = {};\n this.attempted = {};\n this.notAttempted = {};\n this.contacted = {};\n this.notContacted = {};\n this.booking = {};\n this.converted = {};\n this.activeBooking = {};\n this.contactedNoService = {};\n this.contactedFollowup = {};\n this.connectedSystemClose = {};\n this.bookingNoService = {};\n this.bookingFollowup = {};\n this.bookingSystemClose = {};\n this.horizontalBarChart1Data = [];\n this.horizontalBarChart2Data = [];\n this.horizontalBarChart3Data = [];\n this.horizontalBarChart7Data = [];\n this.horizontalBarChart4Data = [];\n this.barChart1Data = [];\n }\n\n /**\n * Name: getDoorStepDashboardResponseKpi\n * purpose: To get service history\n */\n getDoorStepDashboardResponseKpi(): void {\n this.spinner = true;\n this.updateChartCard = true;\n let selectedCre = '';\n this.selectedCre.forEach((element, index) => {\n if (index == 0) {\n selectedCre = element;\n } else {\n selectedCre = selectedCre + ',' + element;\n }\n });\n let selectedWorkShop = '';\n this.selectedWorkShop.forEach((element, index) => {\n if (index == 0) {\n selectedWorkShop = element.split(\" - \")[0];\n } else {\n selectedWorkShop = selectedWorkShop + ',' + element.split(\" - \")[0];\n }\n });\n\n let service = '';\n if (this.selectService.value.selectServiceType != \"\") {\n this.selectService.value.selectServiceType.forEach((element, index) => {\n if (element == \"0\") {\n this.selectService.value.selectServiceType.splice(index, 1);\n }\n });\n service = this.selectService.value.selectServiceType.toString();\n }\n\n const request = {\n \"userId\": this.userInfo.userId,\n \"roleId\": this.userInfo.roleId,\n \"creId\": selectedCre || '',\n \"workshopCode\": selectedWorkShop || '',\n \"service\": service ? service.toString() : '',\n \"startDate\": this.datePipe.transform(this.fromDate, \"yyyy-MM-dd\").toString(),\n \"endDate\": this.datePipe.transform(this.toDate, \"yyyy-MM-dd\").toString()\n };\n this.resetResponse();\n this.commonService.getDoorStepDashboardResponseKpi(request).subscribe(\n res => {\n if (res[\"responseCode\"] == 0) {\n this.selectedDate = this.datePipe.transform(this.date.value['_d'], \"MMM yy\");\n res[\"responseData\"].forEach(kpi => {\n if (kpi.actualVal) {\n kpi.actualVal = Math.round(kpi.actualVal * 100 + Number.EPSILON) / 100;\n }\n if (kpi.growthRate) {\n kpi.growthRate = Math.round(kpi.growthRate * 100 + Number.EPSILON) / 100;\n }\n\n //conncted followup\n if (kpi.kpiCode == '202C') {\n this.followup1 = kpi;\n }\n if (kpi.kpiCode == '203C') {\n this.followup2 = kpi;\n }\n if (kpi.kpiCode == '213C') {\n this.followup3 = kpi;\n }\n\n //booking followup\n if (kpi.kpiCode == '202B') {\n this.bFollowup1 = kpi;\n }\n if (kpi.kpiCode == '203B') {\n this.bFollowup2 = kpi;\n }\n if (kpi.kpiCode == '213B') {\n this.bFollowup3 = kpi;\n }\n\n //conversion\n if (kpi.kpiCode == '111B') {\n this.sameDay = kpi;\n }\n if (kpi.kpiCode == '222B') {\n this.eventual = kpi;\n }\n\n //not connected reason\n if (kpi.kpiCode == '205A') {\n this.noResponse = kpi;\n }\n if (kpi.kpiCode == '206A') {\n this.busy = kpi;\n }\n if (kpi.kpiCode == '207A') {\n this.switchOff = kpi;\n }\n if (kpi.kpiCode == '208A') {\n this.invalid = kpi;\n }\n if (kpi.kpiCode == '209A') {\n this.others = kpi;\n }\n\n //connected No service\n if (kpi.kpiCode == '312C') {\n this.cHighCost = kpi;\n }\n if (kpi.kpiCode == '313C') {\n this.cOwnWorkshop = kpi;\n }\n if (kpi.kpiCode == '314C') {\n this.cDistance = kpi;\n }\n if (kpi.kpiCode == '315C') {\n this.cVehicleSold = kpi;\n }\n if (kpi.kpiCode == '316C') {\n this.cVehicleRunning = kpi;\n }\n if (kpi.kpiCode == '317C') {\n this.cVehicleTheft = kpi;\n }\n if (kpi.kpiCode == '318C') {\n this.cOthers = kpi;\n }\n\n //booking no service\n if (kpi.kpiCode == '312B') {\n this.bHighCost = kpi;\n }\n if (kpi.kpiCode == '313B') {\n this.bOwnWorkshop = kpi;\n }\n if (kpi.kpiCode == '314B') {\n this.bDistance = kpi;\n }\n if (kpi.kpiCode == '315B') {\n this.bVehicleSold = kpi;\n }\n if (kpi.kpiCode == '316B') {\n this.bVehicleRunning = kpi;\n }\n if (kpi.kpiCode == '317B') {\n this.bVehicleTheft = kpi;\n }\n if (kpi.kpiCode == '318B') {\n this.bOthers = kpi;\n }\n });\n\n //barChart1 start not connected reason\n this.noResponse.actualVal = this.noResponse.actualVal || 0;\n this.busy.actualVal = this.busy.actualVal || 0;\n this.switchOff.actualVal = this.switchOff.actualVal || 0;\n this.invalid.actualVal = this.invalid.actualVal || 0;\n this.others.actualVal = this.others.actualVal || 0;\n let maxNotConnected = Math.max(this.noResponse.actualVal, this.busy.actualVal, this.switchOff.actualVal, this.invalid.actualVal, this.others.actualVal);\n if (maxNotConnected) {\n this.barChart1Options.scales.xAxes[0].ticks.max = maxNotConnected;\n this.barChart1Options.scales.yAxes[0].ticks.max = maxNotConnected;\n this.barChart1Data = [\n {\n data: [this.noResponse.actualVal, this.busy.actualVal, this.switchOff.actualVal, this.invalid.actualVal, this.others.actualVal],\n backgroundColor: 'rgb(87, 174, 239)',\n hoverBackgroundColor: 'rgb(87, 174, 239)',\n borderSkipped: 'chartArea',\n barPercentage: 0.5,\n barThickness: 20,\n maxBarThickness: 20,\n minBarLength: 2\n }\n ];\n }\n //barChart1 end\n\n //barChart1 start conversion\n this.sameDay.actualVal = this.sameDay.actualVal || 0;\n this.eventual.actualVal = this.eventual.actualVal || 0;\n if (this.sameDay.actualVal || this.eventual.actualVal) {\n this.barChart2Options.scales.xAxes[0].ticks.max = this.eventual.actualVal > this.sameDay.actualVal ? this.eventual.actualVal : this.sameDay.actualVal;\n this.barChart2Options.scales.yAxes[0].ticks.max = this.eventual.actualVal > this.sameDay.actualVal ? this.eventual.actualVal : this.sameDay.actualVal;\n this.barChart2Data = [\n {\n data: [this.sameDay.actualVal, this.eventual.actualVal],\n backgroundColor: ['rgb(46, 54, 104)', 'rgb(87, 174, 239)'],\n hoverBackgroundColor: ['rgb(46, 54, 104)', 'rgb(87, 174, 239)'],\n borderSkipped: 'chartArea',\n barPercentage: 0.5,\n barThickness: 20,\n maxBarThickness: 20,\n minBarLength: 2\n }\n ];\n }\n //barChart1 end\n\n //horizontalBarChart4 start noservice connected\n this.cDistance.actualVal = this.cDistance.actualVal || 0;\n this.cHighCost.actualVal = this.cHighCost.actualVal || 0;\n this.cOthers.actualVal = this.cOthers.actualVal || 0;\n this.cOwnWorkshop.actualVal = this.cOwnWorkshop.actualVal || 0;\n this.cVehicleRunning.actualVal = this.cVehicleRunning.actualVal || 0;\n this.cVehicleSold.actualVal = this.cVehicleSold.actualVal || 0;\n this.cVehicleTheft.actualVal = this.cVehicleTheft.actualVal || 0;\n let max4 = Math.max(\n this.cDistance.actualVal, this.cHighCost.actualVal, this.cOthers.actualVal,\n this.cOwnWorkshop.actualVal, this.cVehicleRunning.actualVal, this.cVehicleSold.actualVal,\n this.cVehicleTheft.actualVal);\n if (max4) {\n this.horizontalBarChart4Options.scales.xAxes[0].ticks.max = max4 + 10;\n this.horizontalBarChart4Options.scales.yAxes[0].ticks.max = max4 + 10;\n this.horizontalBarChart4Data = [\n {\n data: [\n this.cDistance.actualVal, this.cHighCost.actualVal, this.cOthers.actualVal,\n this.cOwnWorkshop.actualVal, this.cVehicleRunning.actualVal, this.cVehicleSold.actualVal,\n this.cVehicleTheft.actualVal],\n backgroundColor: 'rgb(46, 54, 104)',\n hoverBackgroundColor: 'rgb(46, 54, 104)',\n borderSkipped: 'chartArea',\n barPercentage: 0.5,\n barThickness: 10,\n }\n ];\n }\n //horizontalBarChart4 start\n\n //horizontalBarChart5 start noservice booking\n this.bDistance.actualVal = this.bDistance.actualVal || 0;\n this.bHighCost.actualVal = this.bHighCost.actualVal || 0;\n this.bOthers.actualVal = this.bOthers.actualVal || 0;\n this.bOwnWorkshop.actualVal = this.bOwnWorkshop.actualVal || 0;\n this.bVehicleRunning.actualVal = this.bVehicleRunning.actualVal || 0;\n this.bVehicleSold.actualVal = this.bVehicleSold.actualVal || 0;\n this.bVehicleTheft.actualVal = this.bVehicleTheft.actualVal || 0;\n let max5 = Math.max(\n this.bDistance.actualVal, this.bHighCost.actualVal, this.bOthers.actualVal,\n this.bOwnWorkshop.actualVal, this.bVehicleRunning.actualVal, this.bVehicleSold.actualVal,\n this.bVehicleTheft.actualVal);\n if (max5) {\n this.horizontalBarChart5Options.scales.xAxes[0].ticks.max = max5 + 10;\n this.horizontalBarChart5Options.scales.yAxes[0].ticks.max = max5 + 10;\n this.horizontalBarChart5Data = [\n {\n data: [\n this.bDistance.actualVal, this.bHighCost.actualVal, this.bOthers.actualVal,\n this.bOwnWorkshop.actualVal, this.bVehicleRunning.actualVal, this.bVehicleSold.actualVal,\n this.bVehicleTheft.actualVal],\n backgroundColor: 'rgb(46, 54, 104)',\n hoverBackgroundColor: 'rgb(46, 54, 104)',\n borderSkipped: 'chartArea',\n barPercentage: 0.5,\n barThickness: 10,\n }\n ];\n }\n //horizontalBarChart7 start followup connected\n this.followup1.actualVal = this.followup1.actualVal || 0;\n this.followup2.actualVal = this.followup2.actualVal || 0;\n this.followup3.actualVal = this.followup3.actualVal || 0;\n if (this.followup1.actualVal || this.followup2.actualVal) {\n this.horizontalBarChart7Options.scales.xAxes[0].ticks.max = (this.followup1.actualVal + this.followup2.actualVal + this.followup3.actualVal + 5) || this.followup.actualVal;\n this.horizontalBarChart7Options.scales.yAxes[0].ticks.max = (this.followup1.actualVal + this.followup2.actualVal + this.followup3.actualVal + 5) || this.followup.actualVal;\n this.horizontalBarChart7Data = [\n {\n data: [this.followup1.actualVal, this.followup2.actualVal, this.followup3.actualVal],\n backgroundColor: 'rgb(46, 54, 104)',\n hoverBackgroundColor: 'rgb(46, 54, 104)',\n borderSkipped: 'chartArea',\n barPercentage: 0.5,\n barThickness: 10,\n }\n ];\n }\n\n //horizontalBarChart8 start booking connected\n this.bFollowup1.actualVal = this.bFollowup1.actualVal || 0;\n this.bFollowup2.actualVal = this.bFollowup2.actualVal || 0;\n this.bFollowup3.actualVal = this.bFollowup3.actualVal || 0;\n if (this.bFollowup1.actualVal || this.bFollowup2.actualVal || this.bFollowup3.actualVal) {\n this.horizontalBarChart8Options.scales.xAxes[0].ticks.max = (this.bFollowup1.actualVal + this.bFollowup2.actualVal + this.bFollowup3.actualVal + 5) || this.followup.actualVal;\n this.horizontalBarChart8Options.scales.yAxes[0].ticks.max = (this.bFollowup1.actualVal + this.bFollowup2.actualVal + this.bFollowup3.actualVal + 5) || this.followup.actualVal;\n this.horizontalBarChart8Data = [\n {\n data: [this.bFollowup1.actualVal, this.bFollowup2.actualVal, this.bFollowup3.actualVal],\n backgroundColor: 'rgb(46, 54, 104)',\n hoverBackgroundColor: 'rgb(46, 54, 104)',\n borderSkipped: 'chartArea',\n barPercentage: 0.5,\n barThickness: 10,\n }\n ];\n }\n this.updateChartCard = false;\n this.spinner = false;\n } else {\n this.toastr.info(res[\"message\"]);\n this.spinner = false;\n this.updateChartCard = false;\n }\n }, err => {\n this.spinner = false;\n this.updateChartCard = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: getDoorStepDashboardKpiCard\n * purpose: To get left kpi card history\n */\n getDoorStepDashboardKpiCard(): void {\n this.spinner = true;\n let selectedCre = '';\n this.selectedCre.forEach((element, index) => {\n if (index == 0) {\n selectedCre = element;\n } else {\n selectedCre = selectedCre + ',' + element;\n }\n });\n let selectedWorkShop = '';\n this.selectedKpiCardWorkShop.forEach((element, index) => {\n if (index == 0) {\n selectedWorkShop = element.split(\" - \")[0];\n } else {\n selectedWorkShop = selectedWorkShop + ',' + element.split(\" - \")[0];\n }\n });\n\n let service = '';\n if (this.selectService.value.selectServiceType != \"\") {\n this.selectService.value.selectServiceType.forEach((element, index) => {\n if (element == \"0\") {\n this.selectService.value.selectServiceType.splice(index, 1);\n }\n });\n service = this.selectService.value.selectServiceType.toString();\n }\n\n const request = {\n \"userId\": this.userInfo.userId,\n \"roleId\": this.userInfo.roleId,\n \"creId\": selectedCre || '',\n \"workshopCode\": selectedWorkShop || '',\n \"service\": service ? service.toString() : '',\n \"month\": new Date(this.maxDate).getMonth() + 1,\n \"year\": new Date(this.maxDate).getFullYear()\n };\n this.resetKpiCard();\n this.commonService.getDoorStepDashboardKpiCard(request).subscribe(\n res => {\n if (res[\"responseCode\"] == 0) {\n let mnth = new Date(this.maxDate).getMonth() + 1;\n this.callCoverage = [];\n this.avgCall = [];\n this.successReminder = [];\n this.successVisit = [];\n this.successNoShow = [];\n this.lostConversion = [];\n this.overAllConversion = [];\n this.bookingRate = [];\n this.perCallConversion = [];\n\n res[\"responseData\"].forEach(kpi => {\n if (kpi.actualVal) {\n kpi.actualVal = Math.round(kpi.actualVal * 100 + Number.EPSILON) / 100;\n }\n if (kpi.growthRate) {\n kpi.growthRate = Math.round(kpi.growthRate * 100 + Number.EPSILON) / 100;\n }\n if (kpi.kpiCode == '013') {\n this.callCoverage.push(kpi);\n this.selectedCallCoverage = (mnth == kpi.monthVal) ? kpi : {};\n }\n if (kpi.kpiCode == '014') {\n this.avgCall.push(kpi);\n this.selectedAvgCall = (mnth == kpi.monthVal) ? kpi : {};\n }\n if (kpi.kpiCode == '015') {\n this.successReminder.push(kpi);\n this.selectedSuccessReminder = (mnth == kpi.monthVal) ? kpi : {};\n }\n if (kpi.kpiCode == '016') {\n this.successVisit.push(kpi);\n this.selectedSuccessVisit = (mnth == kpi.monthVal) ? kpi : {};\n }\n if (kpi.kpiCode == '017') {\n this.successNoShow.push(kpi);\n this.selectedSuccessNoShow = (mnth == kpi.monthVal) ? kpi : {};\n }\n if (kpi.kpiCode == '018') {\n this.lostConversion.push(kpi);\n this.selectedLostConversion = (mnth == kpi.monthVal) ? kpi : {};\n }\n if (kpi.kpiCode == '019') {\n this.overAllConversion.push(kpi);\n this.selectedOverAllConversion = (mnth == kpi.monthVal) ? kpi : {};\n }\n if (kpi.kpiCode == '020') {\n this.bookingRate.push(kpi);\n this.selectedBookingRate = (mnth == kpi.monthVal) ? kpi : {};\n }\n if (kpi.kpiCode == '023') {\n this.perCallConversion.push(kpi);\n this.selectedPerCallConversion = (mnth == kpi.monthVal) ? kpi : {};\n }\n });\n this.spinner = false;\n } else {\n this.toastr.info(res[\"message\"]);\n this.spinner = false;\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: getDashboardKpi\n * purpose: To get dashboard kpi\n */\n getDoorStepDashboardKpi(): void {\n this.spinner = true;\n this.updateChart = true;\n let selectedCre = '';\n this.selectedCre.forEach((element, index) => {\n if (index == 0) {\n selectedCre = element;\n } else {\n selectedCre = selectedCre + ',' + element;\n }\n });\n let selectedWorkShop = '';\n this.selectedWorkShop.forEach((element, index) => {\n if (index == 0) {\n selectedWorkShop = element.split(\" - \")[0];\n } else {\n selectedWorkShop = selectedWorkShop + ',' + element.split(\" - \")[0];\n }\n });\n\n let service = '';\n if (this.selectService.value.selectServiceType != \"\") {\n this.selectService.value.selectServiceType.forEach((element, index) => {\n if (element == \"0\") {\n this.selectService.value.selectServiceType.splice(index, 1);\n }\n });\n service = this.selectService.value.selectServiceType.toString();\n }\n const request = {\n \"userId\": this.userInfo.userId,\n \"roleId\": this.userInfo.roleId,\n \"creId\": selectedCre || '',\n \"workshopCode\": selectedWorkShop || '',\n \"service\": service ? service.toString() : '',\n \"startDate\": this.datePipe.transform(this.fromDate, \"yyyy-MM-dd\").toString(),\n \"endDate\": this.datePipe.transform(this.toDate, \"yyyy-MM-dd\").toString()\n };\n this.resetDashboard();\n this.commonService.getDoorStepDashboardKpi(request).subscribe(\n res => {\n if (res[\"responseCode\"] == 0) {\n this.selectedDate = this.datePipe.transform(this.date.value['_d'], \"MMM yy\");\n res[\"responseData\"].forEach(kpi => {\n if (kpi.actualVal) {\n kpi.actualVal = Math.round(kpi.actualVal * 100 + Number.EPSILON) / 100;\n }\n if (kpi.growthRate) {\n kpi.growthRate = Math.round(kpi.growthRate * 100 + Number.EPSILON) / 100;\n }\n if (kpi.kpiCode == '001') {\n this.allocated = kpi;\n }\n if (kpi.kpiCode == '002') {\n this.attempted = kpi;\n }\n if (kpi.kpiCode == '003') {\n this.notAttempted = kpi;\n }\n if (kpi.kpiCode == '004') {\n this.contacted = kpi;\n }\n if (kpi.kpiCode == '005') {\n this.notContacted = kpi;\n }\n if (kpi.kpiCode == '006') {\n this.booking = kpi;\n }\n if (kpi.kpiCode == '011') {\n this.converted = kpi;\n }\n if (kpi.kpiCode == '022') {\n this.activeBooking = kpi;\n }\n if (kpi.kpiCode == '007') {\n this.contactedNoService = kpi;\n }\n if (kpi.kpiCode == '008') {\n this.contactedFollowup = kpi;\n }\n if (kpi.kpiCode == '021') {\n this.connectedSystemClose = kpi;\n }\n if (kpi.kpiCode == '009') {\n this.bookingNoService = kpi;\n }\n if (kpi.kpiCode == '010') {\n this.bookingFollowup = kpi;\n }\n if (kpi.kpiCode == '024') {\n this.bookingSystemClose = kpi;\n }\n });\n if (this.allocated.actualVal != 0) {\n this.AttemptedAchievement = (this.attempted.actualVal / this.allocated.actualVal) * 100;\n } else {\n this.AttemptedAchievement = 0;\n }\n if (this.attempted.actualVal != 0) {\n this.ContactedAchievement = (this.contacted.actualVal / this.attempted.actualVal) * 100;\n } else {\n this.ContactedAchievement = 0;\n }\n if (this.contacted.actualVal != 0) {\n this.BookingsAchievement = (this.booking.actualVal / this.contacted.actualVal) * 100;\n } else {\n this.BookingsAchievement = 0;\n }\n\n //horizontalBarChart1 start\n this.contacted.actualVal = this.contacted.actualVal || 0;\n this.notContacted.actualVal = this.notContacted.actualVal || 0;\n if (this.contacted.actualVal || this.notContacted.actualVal) {\n this.horizontalBarChart1Data = [\n {\n data: [this.contacted.actualVal],\n stack: 'a',\n label: 'Contacted',\n backgroundColor: 'rgb(46, 54, 104)',\n hoverBackgroundColor: 'rgb(46, 54, 104)',\n borderSkipped: 'chartArea',\n barPercentage: 0.5,\n barThickness: 12,\n maxBarThickness: 12,\n minBarLength: 2\n },\n {\n data: [this.notContacted.actualVal],\n stack: 'a',\n label: 'Not Contacted',\n backgroundColor: 'rgb(87, 174, 239)',\n hoverBackgroundColor: 'rgb(87, 174, 239)',\n borderSkipped: 'chartArea',\n barPercentage: 0.5,\n barThickness: 12,\n maxBarThickness: 12,\n minBarLength: 2\n }\n ];\n let max1 = this.contacted.actualVal + this.notContacted.actualVal;\n this.horizontalBarChart1Options.scales.xAxes[0].ticks.max = max1;\n this.horizontalBarChart1Options.scales.yAxes[0].ticks.max = max1;\n }\n //horizontalBarChart1 end\n\n //horizontalBarChart2 start\n this.booking.actualVal = this.booking.actualVal || 0;\n this.contactedFollowup.actualVal = this.contactedFollowup.actualVal || 0;\n this.connectedSystemClose.actualVal = this.connectedSystemClose.actualVal || 0;\n this.contactedNoService.actualVal = this.contactedNoService.actualVal || 0;\n let max2 = this.booking.actualVal + this.contactedFollowup.actualVal + this.connectedSystemClose.actualVal + this.contactedNoService.actualVal;\n if (max2) {\n this.horizontalBarChart2Options.scales.xAxes[0].ticks.max = max2;\n this.horizontalBarChart2Options.scales.yAxes[0].ticks.max = max2;\n this.horizontalBarChart2Data = [\n {\n data: [this.booking.actualVal],\n stack: 'a',\n label: 'Booking',\n backgroundColor: '#4834d4',\n hoverBackgroundColor: '#4834d4',\n borderSkipped: 'chartArea',\n barPercentage: 0.5,\n barThickness: 12,\n maxBarThickness: 12,\n minBarLength: 2\n },\n {\n data: [this.contactedFollowup.actualVal],\n stack: 'a',\n label: 'Followup',\n backgroundColor: '#57aeef',\n hoverBackgroundColor: '#57aeef',\n borderSkipped: 'chartArea',\n barPercentage: 0.5,\n barThickness: 12,\n maxBarThickness: 12,\n minBarLength: 2\n },\n {\n data: [this.connectedSystemClose.actualVal],\n stack: 'a',\n label: 'System Closed',\n backgroundColor: '#5758bb',\n hoverBackgroundColor: '#5758bb',\n borderSkipped: 'chartArea',\n barPercentage: 0.5,\n barThickness: 12,\n maxBarThickness: 12,\n minBarLength: 2\n },\n {\n data: [this.contactedNoService.actualVal],\n stack: 'a',\n label: 'No Service',\n backgroundColor: '#2e3668',\n hoverBackgroundColor: '#2e3668',\n borderSkipped: 'chartArea',\n barPercentage: 0.5,\n barThickness: 12,\n maxBarThickness: 12,\n minBarLength: 2\n }\n ];\n }\n //horizontalBarChart2 end\n\n //horizontalBarChart3 start\n this.activeBooking.actualVal = this.activeBooking.actualVal || 0;\n this.converted.actualVal = this.converted.actualVal || 0;\n this.bookingFollowup.actualVal = this.bookingFollowup.actualVal || 0;\n this.bookingNoService.actualVal = this.bookingNoService.actualVal || 0;\n this.bookingSystemClose.actualVal = this.bookingSystemClose.actualVal || 0;\n let max3 = this.activeBooking.actualVal + this.converted.actualVal + this.bookingFollowup.actualVal + this.bookingNoService.actualVal;\n if (max3) {\n this.horizontalBarChart3Options.scales.xAxes[0].ticks.max = max3;\n this.horizontalBarChart3Options.scales.yAxes[0].ticks.max = max3;\n this.horizontalBarChart3Data = [\n {\n data: [this.activeBooking.actualVal],\n stack: 'a',\n label: 'Active',\n backgroundColor: '#2e3668',\n hoverBackgroundColor: '#2e3668',\n borderSkipped: 'chartArea',\n barPercentage: 0.5,\n barThickness: 12,\n maxBarThickness: 12,\n minBarLength: 2\n },\n\n {\n data: [this.bookingNoService.actualVal],\n stack: 'a',\n label: 'No Service',\n backgroundColor: '#4834d4',\n hoverBackgroundColor: '#4834d4',\n borderSkipped: 'chartArea',\n barPercentage: 0.5,\n barThickness: 12,\n maxBarThickness: 12,\n minBarLength: 2\n },\n {\n data: [this.bookingFollowup.actualVal],\n stack: 'a',\n label: 'Followup',\n backgroundColor: '#57aeef',\n hoverBackgroundColor: '#57aeef',\n borderSkipped: 'chartArea',\n barPercentage: 0.5,\n barThickness: 12,\n maxBarThickness: 12,\n minBarLength: 2\n },\n {\n data: [this.converted.actualVal],\n stack: 'a',\n label: 'Converted',\n backgroundColor: '#3f729d',\n hoverBackgroundColor: '#3f729d',\n borderSkipped: 'chartArea',\n barPercentage: 0.5,\n barThickness: 12,\n maxBarThickness: 12,\n minBarLength: 2\n }\n ];\n }\n //horizontalBarChart3 end\n this.updateChart = false;\n this.getDoorStepDashboardResponseKpi();\n this.getDoorStepDashboardServiceKpi();\n this.spinner = false;\n } else {\n this.toastr.info(res[\"message\"]);\n this.spinner = false;\n this.updateChart = false;\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n this.updateChart = false;\n });\n }\n\n /**\n * Name: getDoorStepDashboardServiceKpi\n * purpose: To get service breakup\n */\n getDoorStepDashboardServiceKpi(): void {\n this.spinner = true;\n let selectedCre = '';\n this.selectedCre.forEach((element, index) => {\n if (index == 0) {\n selectedCre = element;\n } else {\n selectedCre = selectedCre + ',' + element;\n }\n });\n let selectedWorkShop = '';\n this.selectedWorkShop.forEach((element, index) => {\n if (index == 0) {\n selectedWorkShop = element.split(\" - \")[0];\n } else {\n selectedWorkShop = selectedWorkShop + ',' + element.split(\" - \")[0];\n }\n });\n\n let service = '';\n if (this.selectService.value.selectServiceType != \"\") {\n this.selectService.value.selectServiceType.forEach((element, index) => {\n if (element == \"0\") {\n this.selectService.value.selectServiceType.splice(index, 1);\n }\n });\n service = this.selectService.value.selectServiceType.toString();\n }\n\n const request = {\n \"userId\": this.userInfo.userId,\n \"roleId\": this.userInfo.roleId,\n \"creId\": selectedCre || '',\n \"workshopCode\": selectedWorkShop || '',\n \"service\": service ? service.toString() : '',\n \"startDate\": this.datePipe.transform(this.fromDate, \"yyyy-MM-dd\").toString(),\n \"endDate\": this.datePipe.transform(this.toDate, \"yyyy-MM-dd\").toString()\n };\n this.commonService.getDoorStepDashboardServiceKpi(request).subscribe(\n res => {\n if (res[\"responseCode\"] == 0) {\n this.allocatedServiceBreak = [];\n this.attemptedServiceBreak = [];\n this.connectedServiceBreak = [];\n this.bookingServiceBreak = [];\n res[\"responseData\"].forEach(element => {\n if (element.kpiCode == '001') {\n this.allocatedServiceBreak.push(element);\n }\n if (element.kpiCode == '002') {\n this.attemptedServiceBreak.push(element);\n }\n if (element.kpiCode == '004') {\n this.connectedServiceBreak.push(element);\n }\n if (element.kpiCode == '006') {\n this.bookingServiceBreak.push(element);\n }\n });\n this.spinner = false;\n } else {\n this.toastr.info(res[\"message\"]);\n this.spinner = false;\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: doorstepFilterDashboard\n * purpose: To get filter Dashboard\n */\n doorstepFilterDashboard(): void {\n this.spinner = true;\n let workshopSet = new Set();\n let workshopCardSet = new Set();\n this.commonService.doorstepFilterDashboard(this.userInfo).subscribe(\n res => {\n if (res[\"responseCode\"] == 0) {\n this.filtersWorkshop = [];\n this.filtersCre = [];\n res['responseData'].forEach(element => {\n let workshopCode = element.workshop.split(\" - \")[0];\n let workshop = { id: element.id, workshopCode: workshopCode, workshop: element.workshop };\n let cre = element.smeId;\n this.filtersWorkshop.push(workshop);\n workshopSet.add(workshop.workshop);\n workshopCardSet.add(workshop.workshop);\n if (!this.filtersCre.includes(cre)) {\n this.filtersCre.push(cre);\n }\n });\n this.uniqueWorkshop = Array.from(workshopSet);\n this.uniqueWorkshopCard = Array.from(workshopCardSet);\n this.uniqueWorkshopCopy = this.uniqueWorkshop;\n this.uniqueWorkshopCardCopy = this.uniqueWorkshopCard;\n this.filtersCreCopy = this.filtersCre;\n this.spinner = false;\n } else {\n this.spinner = false;\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: periodFilter\n * purpose: To get filter Dashboard\n */\n periodFilter(): void {\n this.spinner = true;\n this.commonService.doorStepPeriodFilter(this.userInfo).subscribe(\n res => {\n if (res[\"responseCode\"] == 0) {\n if (res['responseData'].length) {\n let dateFilter = res['responseData'][0];\n if (dateFilter.minMonth && dateFilter.minYear) {\n this.minDate = new Date(res['responseData'][0].minMonth + '/' + '1/' + res['responseData'][0].minYear);\n } else {\n this.minDate = new Date();\n }\n if (dateFilter.maxMonth && dateFilter.maxYear) {\n this.maxDate = new Date(res['responseData'][0].maxMonth + '/' + '1/' + res['responseData'][0].maxYear);\n } else {\n this.maxDate = new Date();\n }\n let date = moment(this.maxDate);\n this.date.setValue(date);\n if (dateFilter.minMonth && dateFilter.minYear && dateFilter.maxMonth && dateFilter.maxYear) {\n this.selectedDate = this.datePipe.transform(this.date.value['_d'], \"MMM yy\");\n this.getDoorStepDashboardServiceKpi();\n this.getDoorStepDashboardKpiCard();\n this.getDoorStepDashboardKpi();\n } else {\n this.toastr.info(\"Data not found.\");\n }\n } else {\n this.minDate = new Date();\n this.maxDate = new Date();\n }\n this.spinner = false;\n } else {\n this.toastr.info(res[\"message\"]);\n this.spinner = false;\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n onKeyWorkshop(): void {\n this.uniqueWorkshop = this.uniqueWorkshopCopy;\n this.dealerCode = [];\n this.selectedDealer = this.selectedDealer.trim();\n this.dealerCode = this.uniqueWorkshop.filter(item =>\n item.toLowerCase().includes(this.selectedDealer.toLowerCase())\n );\n this.dealerCode.forEach(element => {\n let index = this.uniqueWorkshopCopy.findIndex((ele) => { return ele == element });\n if (index != -1) {\n this.uniqueWorkshopCopy.splice(index, 1);\n }\n this.uniqueWorkshopCopy.unshift(element);\n })\n if (this.dealerCode.length > 0) {\n this.closeInput();\n }\n this.uniqueWorkshop = [];\n this.uniqueWorkshop = this.uniqueWorkshopCopy;\n }\n\n closeInput(): void {\n if (this.dealerCode.length == 0) {\n this.selectedDealer = '';\n this.uniqueWorkshop = this.uniqueWorkshopCopy;\n }\n }\n\n onKeyCRE(): void {\n this.filtersCre = this.filtersCreCopy;\n this.creCode = [];\n this.selectedCreCode = this.selectedCreCode.trim();\n this.creCode = this.filtersCre.filter(item =>\n item.toLowerCase().includes(this.selectedCreCode.toLowerCase())\n );\n this.creCode.forEach(element => {\n let index = this.filtersCreCopy.findIndex((ele) => { return ele == element });\n if (index != -1) {\n this.filtersCreCopy.splice(index, 1);\n }\n this.filtersCreCopy.unshift(element);\n })\n if (this.creCode.length > 0) {\n this.closeInputCre();\n }\n this.filtersCre = [];\n this.filtersCre = this.filtersCreCopy;\n }\n\n closeInputCre(): void {\n if (this.creCode.length == 0) {\n this.selectedCreCode = '';\n this.filtersCre = this.filtersCreCopy;\n }\n }\n\n onKeyWorkshopCard(): void {\n this.uniqueWorkshopCard = this.uniqueWorkshopCardCopy;\n this.dealerCodeCard = [];\n this.selectedCardDealer = this.selectedCardDealer.trim();\n this.dealerCodeCard = this.uniqueWorkshopCard.filter(item =>\n item.toLowerCase().includes(this.selectedCardDealer.toLowerCase())\n );\n this.dealerCodeCard.forEach(element => {\n let index = this.uniqueWorkshopCardCopy.findIndex((ele) => { return ele == element });\n if (index != -1) {\n this.uniqueWorkshopCardCopy.splice(index, 1);\n }\n this.uniqueWorkshopCardCopy.unshift(element);\n })\n\n if (this.dealerCodeCard.length > 0) {\n this.closeInput();\n }\n this.uniqueWorkshopCard = [];\n this.uniqueWorkshopCard = this.uniqueWorkshopCardCopy;\n }\n\n closeInputCard(): void {\n if (this.dealerCodeCard.length == 0) {\n this.selectedCardDealer = '';\n this.uniqueWorkshopCard = this.uniqueWorkshopCardCopy;\n }\n }\n\n /**\n * Name: getDashboardReport\n * purpose: To export report as excel\n */\n getDashboardReport(): void {\n this.spinner = true;\n //this.updateChart = true;\n let selectedSME = '';\n this.selectedCre.forEach((element, index) => {\n if (index == 0) {\n selectedSME = element;\n } else {\n selectedSME = selectedSME + ',' + element;\n }\n });\n let selectedWorkShop = '';\n this.selectedWorkShop.forEach((element, index) => {\n if (index == 0) {\n selectedWorkShop = element.split(\" - \")[0];\n } else {\n selectedWorkShop = selectedWorkShop + ',' + element.split(\" - \")[0];\n }\n });\n\n let serviceType = '';\n if (this.selectService.value.selectServiceType != \"\") {\n this.selectService.value.selectServiceType.forEach((element, index) => {\n if (element == \"0\") {\n this.selectService.value.selectServiceType.splice(index, 1);\n }\n });\n serviceType = this.selectService.value.selectServiceType.toString();\n }\n\n let startDate = this.datePipe.transform(this.fromDate, \"yyyy-MM-dd\").toString();\n let endDate = this.datePipe.transform(this.toDate, \"yyyy-MM-dd\").toString();\n let fileName = \"Doorstep Dashboard Report_For_\" + startDate + \"-\" + endDate;\n this.commonService.getDoorstepDashboardReport(this.userInfo.userId, this.userInfo.roleId, selectedSME, startDate, endDate, serviceType, selectedWorkShop)\n .subscribe(fileData => {\n if (fileData) {\n const blob: any = new Blob([fileData], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\n let link = document.createElement(\"a\");\n if (link.download !== undefined) {\n let url = URL.createObjectURL(blob);\n link.setAttribute(\"href\", url);\n link.setAttribute(\"download\", fileName);\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n this.spinner = false;\n }\n } else {\n this.spinner = false;\n }\n }, err => {\n this.spinner = false;\n\n });\n }\n\n tosslePerOne(all) {\n if (this.allSelectedService.selected) {\n this.allSelectedService.deselect();\n return false;\n }\n if (this.selectService.controls.selectServiceType.value.length == this.services.length)\n this.allSelectedService.select();\n\n }\n toggleAllSelection() {\n if (this.allSelectedService.selected) {\n this.selectService.controls.selectServiceType\n .patchValue([...this.services.map(item => item.key), 0]);\n this.selectAllService = true;\n } else {\n this.selectService.controls.selectServiceType.patchValue([]);\n }\n }\n\n dashboardSelection() {\n if (this.selectedDashboard == 'SRM-Dashboard') {\n this.router.navigate([\"dashboard\"])\n }\n else if (this.selectedDashboard == 'Prs-Dashboard') {\n //this.showPrsDashboard=true\n this.router.navigate([\"prs-dashboard\"])\n }\n else {\n this.router.navigate([\"doorstep-dashboard\"]);\n }\n }\n\n}","export default \".inbound-container {\\n margin-top: 115px;\\n}\\n\\n.search-card {\\n box-shadow: none;\\n background-color: transparent;\\n padding-bottom: 0px !important;\\n}\\n\\n.search-icon {\\n position: absolute;\\n right: 15px;\\n top: 5px;\\n}\\n\\n.sub-title {\\n font-size: 13px;\\n}\\n\\n.m-r-8 {\\n margin-right: 8px !important;\\n}\\n\\n.info-card input {\\n border-radius: 3px;\\n border: 1px solid lightgray;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-flex {\\n border: 1px solid lightgray;\\n border-radius: 3px;\\n background: white;\\n height: 25px;\\n font-size: 12px;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-label {\\n padding-left: 10px;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-infix {\\n padding-top: 0px !important;\\n padding-bottom: 1px !important;\\n border-top: none;\\n height: 25px;\\n}\\n\\n.textboxService ::ng-deep label.mat-form-field-label {\\n margin-top: 0px !important;\\n}\\n\\n.textboxService ::ng-deep input.mat-input-element {\\n margin-top: 4px;\\n margin-left: 10px;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-infix {\\n border: 1px solid lightgray;\\n border-radius: 2px;\\n background: white;\\n padding: 0;\\n height: 20px;\\n font-size: 12px;\\n}\\n\\n.filter1 ::ng-deep .mat-select {\\n padding: 4px 0px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-trigger {\\n padding-left: 8px;\\n width: 100%;\\n}\\n\\n.filter1 ::ng-deep .mat-select-value {\\n width: 90%;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label-wrapper {\\n top: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-underline {\\n display: none;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label {\\n top: 0;\\n margin-top: 5px !important;\\n padding-left: 5px;\\n}\\n\\n.filter-label {\\n font: Bold 14px Roboto;\\n letter-spacing: 0px;\\n color: #3c3c3c;\\n opacity: 1;\\n margin-bottom: 5px;\\n}\\n\\n.filter2 ::ng-deep .mat-form-field-infix {\\n border: 0px solid lightgray;\\n border-radius: 2px;\\n background: white;\\n padding: 0;\\n height: 20px;\\n font-size: 12px;\\n}\\n\\n.filter2 ::ng-deep .mat-select {\\n padding: 4px 0px;\\n}\\n\\n.filter2 ::ng-deep .mat-select-trigger {\\n padding-left: 8px;\\n width: 100%;\\n}\\n\\n.filter2 ::ng-deep .mat-select-value {\\n width: 90%;\\n}\\n\\n.filter2 ::ng-deep .mat-form-field-label-wrapper {\\n top: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n\\n.filter2 ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 0;\\n}\\n\\n.filter2 ::ng-deep .mat-form-field-underline {\\n display: none;\\n}\\n\\n.filter2 ::ng-deep .mat-form-field-label {\\n top: 0;\\n margin-top: 5px !important;\\n padding-left: 5px;\\n}\\n\\n.error {\\n color: #ff0000;\\n margin-top: 5px;\\n}\\n\\n.sub-title {\\n margin-bottom: 20px;\\n font-weight: bold;\\n}\\n\\n.form-field {\\n font-size: 12px !important;\\n}\\n\\n.form-field label {\\n font-weight: 500;\\n margin-bottom: 5px;\\n font-size: 12px !important;\\n}\\n\\n.form-field input {\\n padding: 3px;\\n font-size: 12px !important;\\n width: 200px !important;\\n}\\n\\n.form-field mat-form-field {\\n font-size: 12px !important;\\n width: 207px !important;\\n}\\n\\n.info-action {\\n text-align: end;\\n}\\n\\n.info-action button {\\n color: white;\\n background-color: #00457D;\\n border-radius: 5px;\\n font-size: 12px;\\n}\\n\\n#fleet {\\n font-family: \\\"Trebuchet MS\\\", Arial, Helvetica, sans-serif;\\n border-collapse: collapse;\\n width: 100%;\\n}\\n\\n#fleet td,\\n#fleet th {\\n border: 1px solid #e0e0e0;\\n padding: 8px;\\n}\\n\\n#fleet tr:nth-child(even) {\\n background-color: #ffffff;\\n}\\n\\n#fleet tr:hover {\\n background-color: #ffffff;\\n}\\n\\n#fleet th {\\n padding-top: 12px;\\n padding-bottom: 12px;\\n text-align: left;\\n background-color: #d3d3d3;\\n color: black;\\n}\\n\\n.m-l-10 {\\n margin-left: 10px !important;\\n}\\n\\n.btn {\\n margin: 30px 0;\\n position: relative;\\n cursor: pointer;\\n transition: all 0.3s ease;\\n overflow: hidden;\\n background-color: #00457D !important;\\n line-height: 22px;\\n}\\n\\n.btn p {\\n text-align: center;\\n text-transform: uppercase;\\n color: #fff;\\n position: relative;\\n z-index: 1;\\n transition: all 0.3s ease;\\n margin: auto;\\n}\\n\\n/* sliders */\\n\\n.btn-1 {\\n background-color: #ffffff !important;\\n color: #00457D !important;\\n border: 1px solid #00457D;\\n}\\n\\n.btn-1 p {\\n margin: auto;\\n line-height: 20px;\\n}\\n\\n.search-card select {\\n border-radius: 3px;\\n border: 1px solid lightgray;\\n}\\n\\n.service-type ::ng-deep .mat-form-field-flex {\\n background: white;\\n}\\n\\n.service-type ::ng-deep .mat-select-value-text {\\n padding-left: 5px;\\n}\\n\\n.vehicle-card select,\\n.vehicle-card input {\\n border-radius: 3px;\\n border: 1px solid lightgray;\\n}\\n\\n.service-card select,\\n.service-card input {\\n border-radius: 3px;\\n border: 1px solid #d3d3d3;\\n}\\n\\n.main-card-border {\\n border-style: solid solid Solid solid;\\n border-width: 1px;\\n border-radius: 0%;\\n border-color: lightgray;\\n}\\n\\n.working-area1 {\\n margin-top: 115px;\\n}\\n\\n.icon-background {\\n color: #00457D;\\n}\\n\\n.dropdown-box {\\n font-size: 12px;\\n height: 25px;\\n}\\n\\n.calendar-position {\\n position: absolute;\\n right: 22px;\\n top: 4px;\\n}\\n\\n.form-field1 {\\n font-size: 12px !important;\\n}\\n\\n.form-field1 label {\\n font-weight: 500;\\n margin-bottom: 5px;\\n font-size: 12px !important;\\n}\\n\\n.form-field1 input {\\n padding: 3px;\\n font-size: 12px !important;\\n width: 200px !important;\\n}\\n\\n.form-field2 {\\n font-size: 12px !important;\\n}\\n\\n.form-field2 label {\\n font-weight: 500;\\n margin-bottom: 5px;\\n font-size: 12px !important;\\n}\\n\\n.form-field2 input {\\n padding: 3px;\\n font-size: 12px !important;\\n width: 520px !important;\\n}\\n\\n.form-field2 mat-form-field {\\n font-size: 12px !important;\\n width: 520px !important;\\n}\\n\\n.bay {\\n font-size: 12px;\\n}\\n\\n.bay-area {\\n background-color: #f9f9f9;\\n padding: 10px;\\n}\\n\\n.slot {\\n padding: 5px 5px;\\n margin: 0px;\\n text-align: center;\\n border: 1px solid lightgray;\\n}\\n\\n.occupied {\\n background-color: #e64243;\\n}\\n\\n.bay-label {\\n margin-bottom: 10px;\\n color: rgba(0, 0, 0, 0.54);\\n font-size: 12px;\\n font-weight: 500;\\n}\\n\\n.bay-time {\\n margin-top: 10px;\\n}\\n\\n.datetime {\\n padding: 5px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9jb21wb25lbnQvaW5ib3VuZC1jYWxsL2luYm91bmQtY2FsbC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50L2luYm91bmQtY2FsbC9pbmJvdW5kLWNhbGwuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxpQkFBQTtBQ0NKOztBREdBO0VBQ0ksZ0JBQUE7RUFDQSw2QkFBQTtFQUNBLDhCQUFBO0FDQUo7O0FER0E7RUFDSSxrQkFBQTtFQUNBLFdBQUE7RUFDQSxRQUFBO0FDQUo7O0FER0E7RUFDSSxlQUFBO0FDQUo7O0FER0E7RUFDSSw0QkFBQTtBQ0FKOztBRElBO0VBQ0ksa0JBQUE7RUFDQSwyQkFBQTtBQ0RKOztBRElBO0VBQ0ksMkJBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0VBQ0EsWUFBQTtFQUNBLGVBQUE7QUNESjs7QURJQTtFQUNJLGtCQUFBO0FDREo7O0FESUE7RUFDSSwyQkFBQTtFQUNBLDhCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxZQUFBO0FDREo7O0FESUE7RUFDSSwwQkFBQTtBQ0RKOztBRElBO0VBQ0ksZUFBQTtFQUNBLGlCQUFBO0FDREo7O0FES0E7RUFDSSwyQkFBQTtFQUNBLGtCQUFBO0VBQ0EsaUJBQUE7RUFDQSxVQUFBO0VBQ0EsWUFBQTtFQUNBLGVBQUE7QUNGSjs7QURLQTtFQUNJLGdCQUFBO0FDRko7O0FES0E7RUFDSSxpQkFBQTtFQUNBLFdBQUE7QUNGSjs7QURLQTtFQUNJLFVBQUE7QUNGSjs7QURLQTtFQUNJLE1BQUE7RUFDQSxjQUFBO0VBQ0EsaUJBQUE7QUNGSjs7QURLQTtFQUNJLGlCQUFBO0FDRko7O0FES0E7RUFDSSxhQUFBO0FDRko7O0FES0E7RUFDSSxNQUFBO0VBQ0EsMEJBQUE7RUFDQSxpQkFBQTtBQ0ZKOztBREtBO0VBQ0ksc0JBQUE7RUFDQSxtQkFBQTtFQUNBLGNBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7QUNGSjs7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QUNJLFlBQUE7QUNWSiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudC9pbmJvdW5kLWNhbGwvaW5ib3VuZC1jYWxsLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmluYm91bmQtY29udGFpbmVyIHtcbiAgICBtYXJnaW4tdG9wOiAxMTVweDtcbn1cblxuLy9zZWFyY2hcbi5zZWFyY2gtY2FyZCB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5zZWFyY2gtaWNvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAxNXB4O1xuICAgIHRvcDogNXB4O1xufVxuXG4uc3ViLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG59XG5cbi5tLXItOCB7XG4gICAgbWFyZ2luLXJpZ2h0OiA4cHggIWltcG9ydGFudDtcbn1cblxuLy9pbmZvXG4uaW5mby1jYXJkIGlucHV0IHtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIGhlaWdodDogMjVweDtcbiAgICBmb250LXNpemU6IDEycHg7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICBwYWRkaW5nLXRvcDogMHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDFweCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgaGVpZ2h0OiAyNXB4O1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIGxhYmVsLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICBtYXJnaW4tdG9wOiAwcHggIWltcG9ydGFudDtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCBpbnB1dC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gICAgbWFyZ2luLXRvcDogNHB4O1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuXG4vL2N1c3RvbSBtYXQtc2VsZWN0XG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0IHtcbiAgICBwYWRkaW5nOiA0cHggMHB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gICAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gICAgd2lkdGg6IDkwJTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIHtcbiAgICB0b3A6IDA7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICB0b3A6IDA7XG4gICAgbWFyZ2luLXRvcDogNXB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XG59XG5cbi5maWx0ZXItbGFiZWwge1xuICAgIGZvbnQ6IEJvbGQgMTRweCBSb2JvdG87XG4gICAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgICBjb2xvcjogIzNjM2MzYztcbiAgICBvcGFjaXR5OiAxO1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbn1cblxuLmZpbHRlcjIgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgYm9yZGVyOiAwcHggc29saWQgbGlnaHRncmF5O1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGhlaWdodDogMjBweDtcbiAgICBmb250LXNpemU6IDEycHg7XG59XG5cbi5maWx0ZXIyIDo6bmctZGVlcCAubWF0LXNlbGVjdCB7XG4gICAgcGFkZGluZzogNHB4IDBweDtcbn1cblxuLmZpbHRlcjIgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICAgIHBhZGRpbmctbGVmdDogOHB4O1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4uZmlsdGVyMiA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdmFsdWUge1xuICAgIHdpZHRoOiA5MCU7XG59XG5cbi5maWx0ZXIyIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gICAgdG9wOiAwO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMiA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMiA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmZpbHRlcjIgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgdG9wOiAwO1xuICAgIG1hcmdpbi10b3A6IDVweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctbGVmdDogNXB4O1xufVxuXG4uZXJyb3Ige1xuICAgIGNvbG9yOiAjZmYwMDAwO1xuICAgIG1hcmdpbi10b3A6IDVweDtcbn1cblxuLnN1Yi10aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLmZvcm0tZmllbGQge1xuICAgIGZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50O1xuICAgIGxhYmVsIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgICAgICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcbiAgICB9XG4gICAgaW5wdXQge1xuICAgICAgICBwYWRkaW5nOiAzcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50O1xuICAgICAgICB3aWR0aDogMjAwcHggIWltcG9ydGFudDtcbiAgICB9XG4gICAgbWF0LWZvcm0tZmllbGQge1xuICAgICAgICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcbiAgICAgICAgd2lkdGg6IDIwN3B4ICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4uaW5mby1hY3Rpb24ge1xuICAgIHRleHQtYWxpZ246IGVuZDtcbiAgICBidXR0b24ge1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0Q7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgIH1cbn1cblxuLy90YWJsZVxuI2ZsZWV0IHtcbiAgICBmb250LWZhbWlseTogXCJUcmVidWNoZXQgTVNcIiwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4jZmxlZXQgdGQsXG4jZmxlZXQgdGgge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMGUwZTA7XG4gICAgcGFkZGluZzogOHB4O1xufVxuXG4jZmxlZXQgdHI6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xufVxuXG4jZmxlZXQgdHI6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG5cbiNmbGVldCB0aCB7XG4gICAgcGFkZGluZy10b3A6IDEycHg7XG4gICAgcGFkZGluZy1ib3R0b206IDEycHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDNkM2QzO1xuICAgIGNvbG9yOiBibGFjaztcbn1cblxuLm0tbC0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHggIWltcG9ydGFudDtcbn1cblxuLy9zbGlkaW5nIGJ0blxuLmJ0biB7XG4gICAgbWFyZ2luOiAzMHB4IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RCAhaW1wb3J0YW50O1xuICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xufVxuXG4uYnRuIHAge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gICAgbWFyZ2luOiBhdXRvO1xufVxuXG5cbi8qIHNsaWRlcnMgKi9cblxuLmJ0bi0xIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICMwMDQ1N0QgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMDA0NTdEO1xufVxuXG4uYnRuLTEgcCB7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xufVxuXG4vL3NlcnZpY2Vcbi5zZWFyY2gtY2FyZCBzZWxlY3Qge1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG59XG5cbi5zZXJ2aWNlLXR5cGUgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cblxuLnNlcnZpY2UtdHlwZSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdmFsdWUtdGV4dCB7XG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XG59XG5cbi8vdmVoaWNsZS1jYXJkXG4udmVoaWNsZS1jYXJkIHNlbGVjdCxcbi52ZWhpY2xlLWNhcmQgaW5wdXQge1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG59XG5cbi8vc2VydmljZS1jYXJkXG4uc2VydmljZS1jYXJkIHNlbGVjdCxcbi5zZXJ2aWNlLWNhcmQgaW5wdXQge1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZDNkM2QzO1xufVxuXG4ubWFpbi1jYXJkLWJvcmRlciB7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZCBzb2xpZCBTb2xpZCBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDFweDtcbiAgICBib3JkZXItcmFkaXVzOiAwJTtcbiAgICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxuLndvcmtpbmctYXJlYTEge1xuICAgIG1hcmdpbi10b3A6IDExNXB4O1xufVxuXG4uaWNvbi1iYWNrZ3JvdW5kIHtcbiAgICBjb2xvcjogIzAwNDU3RDtcbn1cblxuLmRyb3Bkb3duLWJveCB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGhlaWdodDogMjVweDtcbn1cblxuLmNhbGVuZGFyLXBvc2l0aW9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDIycHg7XG4gICAgdG9wOiA0cHg7XG59XG5cbi5mb3JtLWZpZWxkMSB7XG4gICAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7XG4gICAgbGFiZWwge1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICBpbnB1dCB7XG4gICAgICAgIHBhZGRpbmc6IDNweDtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIHdpZHRoOiAyMDBweCAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLmZvcm0tZmllbGQyIHtcbiAgICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcbiAgICBsYWJlbCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIGlucHV0IHtcbiAgICAgICAgcGFkZGluZzogM3B4O1xuICAgICAgICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcbiAgICAgICAgd2lkdGg6IDUyMHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIG1hdC1mb3JtLWZpZWxkIHtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIHdpZHRoOiA1MjBweCAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLy9iYXkgc2xvdHNcbi5iYXkge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmJheS1hcmVhIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5O1xuICAgIHBhZGRpbmc6IDEwcHg7XG59XG5cbi5zbG90IHtcbiAgICBwYWRkaW5nOiA1cHggNXB4O1xuICAgIG1hcmdpbjogMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG59XG5cbi5vY2N1cGllZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U2NDI0Mztcbn1cblxuLmJheS1sYWJlbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLmJheS10aW1lIHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuXG4uZGF0ZXRpbWUge1xuICAgIHBhZGRpbmc6IDVweDtcbn1cbiIsIi5pbmJvdW5kLWNvbnRhaW5lciB7XG4gIG1hcmdpbi10b3A6IDExNXB4O1xufVxuXG4uc2VhcmNoLWNhcmQge1xuICBib3gtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgcGFkZGluZy1ib3R0b206IDBweCAhaW1wb3J0YW50O1xufVxuXG4uc2VhcmNoLWljb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAxNXB4O1xuICB0b3A6IDVweDtcbn1cblxuLnN1Yi10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbn1cblxuLm0tci04IHtcbiAgbWFyZ2luLXJpZ2h0OiA4cHggIWltcG9ydGFudDtcbn1cblxuLmluZm8tY2FyZCBpbnB1dCB7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBoZWlnaHQ6IDI1cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgcGFkZGluZy10b3A6IDBweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWJvdHRvbTogMXB4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIGhlaWdodDogMjVweDtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCBsYWJlbC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIG1hcmdpbi10b3A6IDBweCAhaW1wb3J0YW50O1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIGlucHV0Lm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgbWFyZ2luLXRvcDogNHB4O1xuICBtYXJnaW4tbGVmdDogMTBweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgcGFkZGluZzogMDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdCB7XG4gIHBhZGRpbmc6IDRweCAwcHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdmFsdWUge1xuICB3aWR0aDogOTAlO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIge1xuICB0b3A6IDA7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRvcDogMDtcbiAgbWFyZ2luLXRvcDogNXB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xufVxuXG4uZmlsdGVyLWxhYmVsIHtcbiAgZm9udDogQm9sZCAxNHB4IFJvYm90bztcbiAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgY29sb3I6ICMzYzNjM2M7XG4gIG9wYWNpdHk6IDE7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cblxuLmZpbHRlcjIgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIGJvcmRlcjogMHB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgcGFkZGluZzogMDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5maWx0ZXIyIDo6bmctZGVlcCAubWF0LXNlbGVjdCB7XG4gIHBhZGRpbmc6IDRweCAwcHg7XG59XG5cbi5maWx0ZXIyIDo6bmctZGVlcCAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uZmlsdGVyMiA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdmFsdWUge1xuICB3aWR0aDogOTAlO1xufVxuXG4uZmlsdGVyMiA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIge1xuICB0b3A6IDA7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjIgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXIyIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmZpbHRlcjIgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRvcDogMDtcbiAgbWFyZ2luLXRvcDogNXB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xufVxuXG4uZXJyb3Ige1xuICBjb2xvcjogI2ZmMDAwMDtcbiAgbWFyZ2luLXRvcDogNXB4O1xufVxuXG4uc3ViLXRpdGxlIHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5mb3JtLWZpZWxkIHtcbiAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7XG59XG4uZm9ybS1maWVsZCBsYWJlbCB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbiAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7XG59XG4uZm9ybS1maWVsZCBpbnB1dCB7XG4gIHBhZGRpbmc6IDNweDtcbiAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAyMDBweCAhaW1wb3J0YW50O1xufVxuLmZvcm0tZmllbGQgbWF0LWZvcm0tZmllbGQge1xuICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcbiAgd2lkdGg6IDIwN3B4ICFpbXBvcnRhbnQ7XG59XG5cbi5pbmZvLWFjdGlvbiB7XG4gIHRleHQtYWxpZ246IGVuZDtcbn1cbi5pbmZvLWFjdGlvbiBidXR0b24ge1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0Q7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4jZmxlZXQge1xuICBmb250LWZhbWlseTogXCJUcmVidWNoZXQgTVNcIiwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbiNmbGVldCB0ZCxcbiNmbGVldCB0aCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMGUwZTA7XG4gIHBhZGRpbmc6IDhweDtcbn1cblxuI2ZsZWV0IHRyOm50aC1jaGlsZChldmVuKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG5cbiNmbGVldCB0cjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG5cbiNmbGVldCB0aCB7XG4gIHBhZGRpbmctdG9wOiAxMnB4O1xuICBwYWRkaW5nLWJvdHRvbTogMTJweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2QzZDNkMztcbiAgY29sb3I6IGJsYWNrO1xufVxuXG4ubS1sLTEwIHtcbiAgbWFyZ2luLWxlZnQ6IDEwcHggIWltcG9ydGFudDtcbn1cblxuLmJ0biB7XG4gIG1hcmdpbjogMzBweCAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RCAhaW1wb3J0YW50O1xuICBsaW5lLWhlaWdodDogMjJweDtcbn1cblxuLmJ0biBwIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogI2ZmZjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICBtYXJnaW46IGF1dG87XG59XG5cbi8qIHNsaWRlcnMgKi9cbi5idG4tMSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgY29sb3I6ICMwMDQ1N0QgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgIzAwNDU3RDtcbn1cblxuLmJ0bi0xIHAge1xuICBtYXJnaW46IGF1dG87XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xufVxuXG4uc2VhcmNoLWNhcmQgc2VsZWN0IHtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG59XG5cbi5zZXJ2aWNlLXR5cGUgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG5cbi5zZXJ2aWNlLXR5cGUgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXZhbHVlLXRleHQge1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbn1cblxuLnZlaGljbGUtY2FyZCBzZWxlY3QsXG4udmVoaWNsZS1jYXJkIGlucHV0IHtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG59XG5cbi5zZXJ2aWNlLWNhcmQgc2VsZWN0LFxuLnNlcnZpY2UtY2FyZCBpbnB1dCB7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2QzZDNkMztcbn1cblxuLm1haW4tY2FyZC1ib3JkZXIge1xuICBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIFNvbGlkIHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLXJhZGl1czogMCU7XG4gIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4ud29ya2luZy1hcmVhMSB7XG4gIG1hcmdpbi10b3A6IDExNXB4O1xufVxuXG4uaWNvbi1iYWNrZ3JvdW5kIHtcbiAgY29sb3I6ICMwMDQ1N0Q7XG59XG5cbi5kcm9wZG93bi1ib3gge1xuICBmb250LXNpemU6IDEycHg7XG4gIGhlaWdodDogMjVweDtcbn1cblxuLmNhbGVuZGFyLXBvc2l0aW9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMjJweDtcbiAgdG9wOiA0cHg7XG59XG5cbi5mb3JtLWZpZWxkMSB7XG4gIGZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50O1xufVxuLmZvcm0tZmllbGQxIGxhYmVsIHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcbn1cbi5mb3JtLWZpZWxkMSBpbnB1dCB7XG4gIHBhZGRpbmc6IDNweDtcbiAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAyMDBweCAhaW1wb3J0YW50O1xufVxuXG4uZm9ybS1maWVsZDIge1xuICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcbn1cbi5mb3JtLWZpZWxkMiBsYWJlbCB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbiAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7XG59XG4uZm9ybS1maWVsZDIgaW5wdXQge1xuICBwYWRkaW5nOiAzcHg7XG4gIGZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50O1xuICB3aWR0aDogNTIwcHggIWltcG9ydGFudDtcbn1cbi5mb3JtLWZpZWxkMiBtYXQtZm9ybS1maWVsZCB7XG4gIGZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50O1xuICB3aWR0aDogNTIwcHggIWltcG9ydGFudDtcbn1cblxuLmJheSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmJheS1hcmVhIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTtcbiAgcGFkZGluZzogMTBweDtcbn1cblxuLnNsb3Qge1xuICBwYWRkaW5nOiA1cHggNXB4O1xuICBtYXJnaW46IDBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG59XG5cbi5vY2N1cGllZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNjQyNDM7XG59XG5cbi5iYXktbGFiZWwge1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4uYmF5LXRpbWUge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuXG4uZGF0ZXRpbWUge1xuICBwYWRkaW5nOiA1cHg7XG59Il19 */\"","import { Component, OnInit } from '@angular/core';\nimport { FormControl, FormGroup, FormBuilder, Validators, FormGroupDirective } from '@angular/forms';\nimport { CommonService } from 'src/app/core/service/common-service/common.service';\nimport { UserService } from 'src/app/core/service/user-service/user.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { Customer360DialogComponent } from 'src/app/modal/customer360-dialog/customer360-dialog.component';\nimport { MatDialog } from \"@angular/material\";\nimport { DatePipe } from \"@angular/common\";\nimport * as _moment from 'moment';\nimport { DateTimeAdapter, OWL_DATE_TIME_FORMATS, OWL_DATE_TIME_LOCALE } from 'ng-pick-datetime';\nimport { MomentDateTimeAdapter } from 'ng-pick-datetime-moment';\nimport { ChartOptions, ChartType, ChartDataSets } from 'chart.js';\n\nconst moment = (_moment as any).default ? (_moment as any).default : _moment;\n\nexport const MY_CUSTOM_FORMATS = {\n parseInput: 'LL LT',\n fullPickerInput: 'DD-MM-YYYY LT',\n datePickerInput: 'LL',\n timePickerInput: 'LT',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n};\n\n@Component({\n selector: 'app-inbound-call',\n templateUrl: './inbound-call.component.html',\n styleUrls: ['./inbound-call.component.scss'],\n providers: [\n { provide: DateTimeAdapter, useClass: MomentDateTimeAdapter, deps: [OWL_DATE_TIME_LOCALE] },\n { provide: OWL_DATE_TIME_FORMATS, useValue: MY_CUSTOM_FORMATS }\n ],\n})\n\nexport class InboundCallComponent implements OnInit {\n searchChassis: FormControl = new FormControl();\n searchNumber: FormControl = new FormControl();\n searchRegisterationNo: FormControl = new FormControl();\n\n custDataForm: FormGroup;\n serviceForm: FormGroup;\n\n customerChassisList = [];\n customerNumberList = [];\n customerDetails = [];\n fleetDetail = [];\n\n serviceDetail = [];\n doorstepServiceDetail = [];\n selectedVehicle = [];\n selectedDoorstepVehicle = [];\n selectedService: string;\n callReason: number = 1;\n\n //vehicle type selection\n vehicleNumbers: any[] = [\n { value: 1, type: 'Chasis Number' },\n { value: 2, type: 'Registration Number' }\n ];\n\n //service type selection\n serviceTypes: any[] = [\n { value: 'FS1 - FREE SERVICE', type: 'FS1 - FREE SERVICE', code: 'FS1' },\n { value: 'FS2 - FREE SERVICE', type: 'FS2 - FREE SERVICE', code: 'FS2' },\n { value: 'FS3 - FREE SERVICE', type: 'FS3 - FREE SERVICE', code: 'FS3' },\n { value: 'ECS - EARLY CARE SERVICE', type: 'ECS - EARLY CARE SERVICE', code: 'ECS' },\n { value: 'PMS - PREVENTIVE MAINTENANCE SERVICE', type: 'PMS - PREVENTIVE MAINTENANCE SERVICE', code: 'PMS' },\n ];\n\n //miscellaneous service type selection\n miscellaneousServices: any[] = [\n { value: 'RUNNING REPAIR', type: 'RUNNING REPAIR/QUICK SERVICE', code: 'RR' },\n { value: 'DOORSTEP SERVICE', type: 'DOORSTEP SERVICE', code: 'DS' },\n ];\n\n //call type selection\n callReasons: any[] = [\n { value: 1, type: 'Service' },\n { value: 2, type: 'Inquiry' }\n ];\n\n //Payment mode selection\n paymentMode: any[] = [\n { value: 'cash', type: 'Cash' },\n { value: 'Digital', type: 'Digital' }\n ];\n\n selectedVehicleType: any = 1;\n selectedChasis: string;\n selectedRegNumber: string;\n dateTimeExample = new Date();\n today: Date = new Date();\n minDate: Date = new Date();\n submitted: boolean;\n spinner: boolean;\n submittedService: boolean = false;\n clear: boolean;\n disableServiceType: boolean;\n workShops = [];\n selectedWorkShop: string;\n searchOldType: string;\n searchCurrentType: string;\n disableDate: boolean;\n userId: string;\n rrStatus: string;\n rrDropdown: boolean;\n miscellaneousService:string;\n division: string;\n workshopAppointmentFlag: string;\n bayNo: string;\n workshopCodeFlag: boolean = true;\n\n //bay\n assignedBay: any;\n workShopBay: any = {};\n bayError: boolean = false;\n bayOpen: any;\n bayClose: any;\n bayMinToday: any;\n bayMaxToday: any;\n serviceHours: any;\n bayLayout: any = [];\n selectedBay: any = [];\n listBay: any = [];\n showBay: boolean = false;\n showBay1: boolean = false;\n selectedBayNo: any = '';\n bayEndTime: any;\n packagelist: any[] = [];\n fertCode: any;\n commentFlag: boolean = false;\n bayStartTime: string;\n selectedVin: string;\n vinList: string[] = [];\n serviceMintus: any;\n bookingandResheduleMaxDate: Date = new Date();\n\n //chartBar start\n public chartOptions: ChartOptions = {\n responsive: true,\n tooltips: {\n enabled: false\n },\n scales: {\n xAxes: [\n {\n display: true,\n gridLines: {\n display: true\n },\n ticks: {\n beginAtZero: false,\n fontSize: 12,\n stepSize: 1,\n autoSkip: false\n }\n }\n ],\n yAxes: [{\n display: false,\n gridLines: {\n display: false\n }\n }]\n }\n };\n public chartLabels: any[] = [];\n public chartType: ChartType = 'horizontalBar';\n public chartLegend = false;\n public chartPlugins = [];\n public chartData: any = [];\n serviceCount: any;\n bookingDate : any;\n todayDate : any;\n\n constructor(\n private fb: FormBuilder,\n private commonService: CommonService,\n private userService: UserService,\n private toastr: ToastrService,\n public dialog: MatDialog,\n private datePipe: DatePipe\n ) {\n\n }\n\n ngOnInit() {\n this.userId = localStorage.getItem('userId');\n this.workShops = JSON.parse(localStorage.getItem('workshops'));\n this.selectedWorkShop = (this.workShops && this.workShops.length) ? this.workShops[0].workshopCode : '';\n this.bookingandResheduleMaxDate.setDate(this.bookingandResheduleMaxDate.getDate() + 15);\n this.dateTimeExample.setDate(this.dateTimeExample.getDate() + 1);\n this.minDate = moment().add(1, 'd').set({ hours: 0, minutes: 0, seconds: 0, milliseconds: 0 })\n\n //chassis search auto complete\n this.searchChassis.valueChanges.subscribe(\n term => {\n if (term != '' && term.length > 3) {\n if (this.searchOldType !== this.searchCurrentType) {\n this.searchNumber.setValue('');\n this.searchRegisterationNo.setValue('');\n this.customerNumberList = [];\n }\n this.userService.searchChassis(term).subscribe(\n data => {\n if (data[\"responseCode\"] == 0) {\n this.customerChassisList = data['responseData'] as any[];\n if (!this.customerChassisList.length) {\n this.toastr.info(data['message'], \"Info\");\n }\n } else {\n this.toastr.error(data['message'], \"Error\");\n }\n }, err => {\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n });\n\n //customer number search auto complete\n this.searchNumber.valueChanges.subscribe(\n term => {\n if (term != '' && term.length > 9) {\n if (this.searchOldType !== this.searchCurrentType) {\n this.searchChassis.setValue('');\n this.searchRegisterationNo.setValue('');\n this.customerChassisList = [];\n }\n this.userService.searchContact(term).subscribe(\n data => {\n if (data[\"responseCode\"] == 0) {\n this.customerNumberList = data['responseData'] as any[];\n if (this.customerNumberList.length) {\n this.customerNumberList.forEach(function (value) {\n value.customerContactNo = term;\n });\n }\n } else {\n this.toastr.error(data['message'], \"Error\");\n }\n }, err => {\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n });\n this.getWorkshopBay();\n }\n\n /**\n * Name: searchReg\n * purpose: To search customer with reg number\n */\n searchReg() {\n this.spinner = true;\n this.showBay = false;\n this.showBay1= false;\n let term = this.searchRegisterationNo.value;\n if (term != '' && term.length > 3) {\n if (this.searchOldType !== this.searchCurrentType) { //clear other search data\n this.searchChassis.setValue('');\n this.searchNumber.setValue('');\n this.customerChassisList = [];\n this.customerNumberList = [];\n }\n this.userService.searchCustomer(term, 'R', this.userId).subscribe(\n data => {\n if (data[\"responseCode\"] == 0) {\n this.spinner = false;\n this.customerDetails = data['responseData'];\n // this.customerDetails.forEach((element) => {\n // this.vinList.push(element.vin);\n // });\n this.selectedVin = this.customerDetails[0].vin\n localStorage.setItem(\"selectedVin\",this.selectedVin);\n if (this.customerDetails && this.customerDetails[0].customerCode) {\n this.buildCustDataForm();\n this.getFleetDetails(this.customerDetails[0].customerCode);\n this.getServiceDetails(this.customerDetails[0].customerCode, this.selectedVin);\n }\n } else {\n this.spinner = false;\n this.toastr.error(data['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n }\n\n /**\n * Name: selectCustomer\n * purpose: To select customer from search\n * @param {string} value - selected customer\n * @param {string} flag - customer search type\n */\n selectCustomer(value: string, flag: string) {\n this.showBay = false;\n this.showBay1= false;\n this.spinner = true;\n this.searchOldType = flag;\n this.userService.searchCustomer(value, flag, this.userId).subscribe(\n data => {\n if (data[\"responseCode\"] == 0) {\n this.customerDetails = data['responseData'];\n this.customerDetails.forEach((element) => {\n this.vinList.push(element.vin);\n });\n this.selectedVin = this.customerDetails[0].vin\n localStorage.setItem(\"selectedVin\",this.selectedVin);\n if (this.customerDetails && this.customerDetails[0].customerCode) {\n this.buildCustDataForm();\n this.getFleetDetails(this.customerDetails[0].customerCode);\n this.getServiceDetails(this.customerDetails[0].customerCode, this.customerDetails[0].vin);\n }\n } else {\n this.toastr.error(data['message'], \"Error\");\n }\n this.spinner = false;\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: getFleetDetails\n * purpose: To get fleet details\n * @param {string} customerCode - selected customer code\n */\n getFleetDetails(customerCode: string) {\n this.spinner = true;\n this.userService.getFleetDetail(customerCode).subscribe(\n data => {\n if (data[\"responseCode\"] == 0) {\n this.fleetDetail = data['responseData'];\n }\n this.spinner = false;\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: getServiceDetails\n * purpose: To get vehicle service details\n * @param {string} customerCode - selected customer code\n */\n getServiceDetails(customerCode: string, vin: string) {\n this.spinner = true;\n this.userService.getServiceDetail(customerCode, this.userId, vin).subscribe(\n data => {\n if (data[\"responseCode\"] == 0) {\n this.serviceDetail = data['responseData'];\n if (this.searchChassis.value) {//if search is chasis then select default vehicle\n let filterVehicle = this.serviceDetail.filter(vehicle => vehicle.vin == this.searchChassis.value)[0];\n this.selectedChasis = filterVehicle.vin;\n this.selectedRegNumber = filterVehicle.registrationNumber\n this.selectedVehicle = filterVehicle;\n this.selectedService = filterVehicle.typeOfService;\n this.selectedWorkShop = filterVehicle.workshopCode || this.selectedWorkShop;\n this.selectedVehicleType = 1;\n this.rrStatus = filterVehicle.rrStatus;\n this.division = filterVehicle.division;\n this.serviceCount = filterVehicle.serviceTypeSequence;\n // this.bayNo = filterVehicle.bayNo;\n // this.bayStartTime = filterVehicle.bayStartTime;\n // this.bayEndTime = filterVehicle.bayEndTime;\n } else if (this.searchRegisterationNo.value) {//if search is registrationNumber then select default vehicle\n let filterVehicle = this.serviceDetail.filter(vehicle => vehicle.registrationNumber == this.searchRegisterationNo.value)[0];\n this.selectedChasis = filterVehicle.vin\n this.selectedRegNumber = filterVehicle.registrationNumber\n this.selectedVehicle = filterVehicle;\n this.selectedService = filterVehicle.typeOfService;\n this.selectedWorkShop = filterVehicle.workshopCode || this.selectedWorkShop;\n this.selectedVehicleType = 2;\n this.rrStatus = filterVehicle.rrStatus;\n this.division = filterVehicle.division;\n this.serviceCount = filterVehicle.serviceTypeSequence;\n // this.bayNo = filterVehicle.bayNo;\n // this.bayStartTime = filterVehicle.bayStartTime;\n // this.bayEndTime = filterVehicle.bayEndTime;\n } else { //if search is number then select default vehicle\n this.selectedChasis = this.serviceDetail[0].vin\n this.selectedRegNumber = this.serviceDetail[0].registrationNumber\n this.selectedVehicle = this.serviceDetail[0];\n this.selectedService = this.serviceDetail[0].typeOfService;\n this.selectedWorkShop = this.serviceDetail[0].workshopCode || this.selectedWorkShop;\n this.rrStatus = this.serviceDetail[0].rrStatus;\n this.division = this.serviceDetail[0].division;\n this.serviceCount = this.serviceDetail[0].serviceTypeSequence;\n //this.bayNo = this.serviceDetail[0].bayNo;\n //this.bayStartTime = this.serviceDetail[0].bayStartTime;\n //this.bayEndTime = this.serviceDetail[0].bayEndTime;\n }\n // if(this.rrStatus == 'YES') {\n // this.rrDropdown = true;\n // this.miscellaneousService = this.miscellaneousServices[0].value;\n // }\n\n this.getWorkshopAppointmentFlag(this.selectedWorkShop, this.workshopCodeFlag);\n //if(this.selectedWorkShop == )\n // if(this.division == \"LMD\") {\n // this.serviceHours = 1;\n // this.serviceMintus = 30;\n // } else {\n // this.serviceHours = 2;\n // this.serviceMintus = 0;\n // }\n\n if(this.serviceCount >= 0) {\n if(this.serviceCount % 2 == 1) {\n this.serviceHours = 1;\n this.serviceMintus = 30;\n } else {\n this.serviceHours = 4;\n this.serviceMintus = 0;\n }\n }\n // this.fertCode = this.selectedVehicle.fertCode;\n // if (this.selectedVehicle.typeOfService) {\n // if (serviceType == 'FS1' || serviceType == 'FS2' || serviceType == 'FS3' || serviceType == 'ECS' || serviceType == 'PMS') {\n // this.showBay = true;\n // } else {\n // this.showBay = false;\n // }\n // } else {\n // this.showBay = true;\n // }\n // this.buildServiceForm();\n // if (this.fertCode && this.showBay) {\n // this.getFertPrice(this.selectedWorkShop, this.fertCode);\n // }\n } else {\n this.toastr.error(data['message'], \"Error\");\n }\n this.spinner = false;\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: onVehicleChange\n * purpose: To update selected vehicle data\n * @param {any} selectedVehicle - selected vehicle\n * @param {string} type - selected vehicle type\n * * @param {FormGroupDirective} formDirective - form directive\n */\n onVehicleChange(selectedVehicleNo: any, type: string, formDirective: FormGroupDirective) {\n if (type === 'V') {//fetch data of selected vehicle from radio btn- type vin\n this.selectedVehicle = this.serviceDetail.filter(vehicle => vehicle.vin == selectedVehicleNo)[0];\n this.selectedChasis = selectedVehicleNo;\n } else {//fetch data of selected vehicle from radio btn- type vin\n this.selectedVehicle = this.serviceDetail.filter(vehicle => vehicle.registrationNumber == selectedVehicleNo)[0];\n this.selectedRegNumber = selectedVehicleNo;\n }\n\n // this.serviceDetail = [];\n // this.selectedVehicle = '';\n // this.userService.getServiceDetail(this.customerDetails[0].customerCode, this.userId, selectedVehicleNo).subscribe(\n // data => {\n // if (data[\"responseCode\"] == 0) {\n // this.serviceDetail = data['responseData'];\n // this.selectedVehicle = this.serviceDetail[0];\n // localStorage.setItem(\"selectedVin\",this.selectedVehicle.vin);\n this.selectedWorkShop = this.selectedVehicle.workshopCode || this.selectedWorkShop;\n this.fertCode = this.selectedVehicle.fertCode;\n this.serviceCount = this.selectedVehicle.serviceTypeSequence\n // if (this.selectedVehicle.typeOfService) {\n // let serviceType = this.selectedVehicle.typeOfService.split(' - ')[0];\n // if (serviceType == 'FS1' || serviceType == 'FS2' || serviceType == 'FS3' || serviceType == 'ECS' || serviceType == 'PMS') {\n // this.showBay = true;\n // } else {\n // this.showBay = false;\n // }\n // } else {\n // this.showBay = true;\n // }\n if (this.workshopAppointmentFlag == \"true\") {\n // if(this.selectedVehicle.typeOfService) {\n // let serviceType = this.selectedVehicle.typeOfService.split(' - ')[0];\n //if (serviceType == 'FS1' || serviceType == 'FS2' || serviceType == 'FS3' || serviceType == 'ECS' || serviceType == 'PMS') {\n this.showBay = true;\n // } else {\n // this.showBay = false;\n // }\n // } else {\n // this.showBay = false;\n // }\n } else {\n this.showBay = false;\n }\n this.resetServiceForm(formDirective);\n this.buildServiceForm();\n if(this.showBay) {\n this.getBayVisibility();\n }\n if (this.selectedVehicle.fertCode && this.showBay) {\n this.getFertPrice(this.selectedWorkShop, this.fertCode);\n }\n // }\n // })\n }\n\n /**\n * Name: buildCustDataForm\n * purpose: To create customer data form\n */\n buildCustDataForm() {\n this.custDataForm = this.fb.group({\n custContact: [this.customerDetails[0].customerContactNo, [Validators.required, Validators.minLength(10), Validators.maxLength(10)]],\n fleetMangName: [\"\"],\n fleetMangContact: [\"\", [Validators.minLength(10), Validators.maxLength(10)]]\n });\n }\n\n /**\n * Name: hasCustDataError\n * purpose: To check if customer form has any error\n * @param {any} control - form control\n * @return {boolean} flag to determine if form is valid.\n */\n hasCustDataError(control: any): boolean {\n return (\n control &&\n (this.submitted || control.touched || control.dirty) &&\n !control.valid\n );\n }\n\n /**\n * Name: saveCustomer\n * purpose: To save customer updated details\n */\n saveCustomer() {\n let f = this.custDataForm;\n this.submitted = true;\n if (f.valid) {\n let custData = {\n creId: this.userId,\n custCode: this.customerDetails[0].customerCode,\n custContactNo: f.value.custContact || '',\n fleetContactNo: f.value.fleetMangContact || '',\n fleetName: f.value.fleetMangName || '',\n userId: this.userId\n }\n this.spinner = true;\n this.commonService.saveInboundCustomer(custData).subscribe(\n data => {\n if (data['responseCode'] == 0) {\n this.getFleetDetails(this.customerDetails[0].customerCode);\n this.custDataForm.controls['fleetMangName'].setValue(\"\");\n this.custDataForm.controls['fleetMangContact'].setValue(\"\");\n this.toastr.success(data['message'], \"Success\");\n } else {\n this.toastr.error(data['message'], \"Error\");\n }\n this.spinner = false;\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n }\n\n /**\n * Name: build service data Form\n * purpose: To create vehicle service info form\n */\n buildServiceForm() {\n this.dateTimeExample = this.selectedVehicle.bookingDate ? new Date(this.selectedVehicle.bookingDate) : this.dateTimeExample;\n this.disableServiceType = this.selectedVehicle.typeOfService ? true : false;\n this.rrDropdown = this.rrStatus == \"YES\" ? true : false;\n let missService = this.rrStatus == \"YES\" ? this.miscellaneousServices[0].value : this.miscellaneousService;\n\n if (this.showBay) {\n\n let packageId = this.packagelist.length ? this.packagelist[0].packageId : '';\n this.serviceForm = this.fb.group({\n serviceType: [this.selectedVehicle.typeOfService],\n miscellaneousService: [missService],\n serviceMileage: [this.selectedVehicle.milage],\n serviceDealer: [this.selectedWorkShop, Validators.required],\n serviceDateTime: [this.dateTimeExample, Validators.required],\n bayStartTime: [this.bayMinToday],\n package: [packageId],\n serviceComment: [this.selectedVehicle.comments]\n });\n } else {\n this.serviceForm = this.fb.group({\n serviceType: [this.selectedVehicle.typeOfService],\n miscellaneousService: [missService],\n serviceMileage: [this.selectedVehicle.milage],\n serviceDealer: [this.selectedWorkShop, Validators.required],\n serviceDateTime: [this.dateTimeExample, Validators.required],\n serviceComment: [this.selectedVehicle.comments]\n });\n }\n }\n\n /**\n * Name: hasDateError\n * purpose: To check if service date has any error\n * @param {any} control - form control\n * @return {boolean} flag to determine if form is valid.\n */\n hasDateError(control: any): boolean {\n let error = false;\n let todayDate = this.datePipe.transform(this.today, \"yyyy-MM-dd\");\n let bookingDate = this.datePipe.transform(control.value, \"yyyy-MM-dd\")\n if (todayDate == bookingDate) {\n error = true;\n } else {\n error = false;\n }\n return error;\n }\n\n /**\n * Name: hasServiceError\n * purpose: To check if service data form has any error\n * @param {any} control - form control\n * @return {boolean} flag to determine if form is valid.\n */\n hasServiceError(control: any): boolean {\n\n this.todayDate = new Date(this.datePipe.transform(this.today, \"yyyy-MM-dd\"));\n this.bookingDate = new Date(this.datePipe.transform(this.serviceForm.value.serviceDateTime, \"yyyy-MM-dd\"));\n return (\n control &&\n (this.submittedService || control.touched || control.dirty) &&\n !control.valid\n );\n }\n\n /**\n * Name: resetServiceForm\n * purpose: To reset service form data\n * @param {FormGroupDirective} formDirective - form directive\n */\n resetServiceForm(formDirective: FormGroupDirective) {\n if (formDirective) {\n formDirective.resetForm();\n }\n this.serviceForm.reset();\n Object.keys(this.serviceForm.controls).forEach(key => {\n this.serviceForm.controls[key].setErrors(null)\n });\n }\n\n /**\n * Name: saveService\n * purpose: To save vehicle service updated details\n * @param {boolean} close - flag to close search view\n * @param {FormGroupDirective} formDirective - form directive\n */\n saveService(close: boolean, formDirective: FormGroupDirective) {\n let f = this.serviceForm;\n this.submittedService = true;\n if (f.valid) {\n if (this.showBay == true && this.showBay1 == false) {\n let serviceDateTime = this.datePipe.transform(f.value.serviceDateTime, \"yyyy-MM-ddTHH:mm:ssZ\");\n let bookingDate = this.datePipe.transform(this.selectedVehicle.bookingDate, \"yyyy-MM-ddTHH:mm:ssZ\");\n let dueDate = this.datePipe.transform(this.selectedVehicle.serviceDueDate, \"yyyy-MM-dd\");\n let serviceType = '';\n if (f.value.serviceType) {\n this.serviceTypes.forEach(type => {\n if (type.value == f.value.serviceType) {\n serviceType = type.code;\n }\n });\n }\n let miscellaneousService = '';\n if (f.value.miscellaneousService) {\n this.miscellaneousServices.forEach(type => {\n if (type.value == f.value.miscellaneousService) {\n miscellaneousService = type.code;\n }\n });\n }\n let bay: string;\n let bayEndTime: any;\n //bay time selection\n if (serviceDateTime && this.showBay && f.value[\"bayStartTime\"] != null) {\n //bay time\n let selectedDate = this.datePipe.transform(serviceDateTime, \"yyyy-MM-dd\");\n let selectedTime = this.datePipe.transform(f.value[\"bayStartTime\"], \"HH:mm:ss\");\n let bayDateTime = new Date(selectedDate + 'T' + selectedTime);\n //service time data data\n serviceDateTime = this.datePipe.transform(bayDateTime, \"yyyy-MM-ddTHH:mm:ssZ\");\n\n //bayendtime\n this.bayEndTime = bayDateTime.setHours(bayDateTime.getHours() + this.serviceHours);\n this.bayEndTime = bayDateTime.setMinutes(bayDateTime.getMinutes() + this.serviceMintus);\n this.bayEndTime = this.datePipe.transform(this.bayEndTime, \"HH:mm:ss\");\n }\n if (this.showBay && f.value.serviceDateTime) {\n bay = this.selectedBayNo;\n bayEndTime = this.bayEndTime;\n } else {\n bay = '';\n // let time = this.datePipe.transform(new Date(), \"yyyy-MM-dd\") + \"T00:00:00+0000\";\n // bayEndTime = this.datePipe.transform(time, \"HH:mm:ss\");\n bayEndTime = \"00:00:00\";\n }\n let serviceData = {\n \"creId\": this.userId,\n \"custCode\": this.customerDetails[0].customerCode,\n \"vin\": this.selectedVehicle.vin,\n \"serviceDueDate\": dueDate || this.datePipe.transform(f.value.serviceDateTime, \"yyyy-MM-dd\"),\n \"driverName\": this.selectedVehicle.driverName || '',\n \"driverContactNo\": this.selectedVehicle.driverContactNo || '',\n \"typeOfService\": serviceType || '',\n \"milage\": f.value.serviceMileage || '',\n \"dealerWorkshopName\": f.value.serviceDealer,\n \"callStatusCode\": this.selectedVehicle.callStatusCode || '',\n \"bookingDate\": serviceDateTime || bookingDate,\n \"serviceReason\": this.callReason,\n \"comments\": f.value.serviceComment || '',\n \"userId\": this.userId,\n \"bay\": bay,\n \"bayEndTime\": bayEndTime,\n \"misServiceType\": miscellaneousService\n }\n this.spinner = true;\n this.commonService.saveServiceData(serviceData).subscribe(\n data => {\n if (data['responseCode'] == 0) {\n this.toastr.success(data['message'], \"Success\");\n //this.sendBookingSMS(serviceData);\n if (this.serviceDetail.length > 1 && !close) {//select new vehicle in case of multiple vin\n let newVehicle = this.serviceDetail.filter(vehicle => vehicle.vin != this.selectedVehicle.vin)[0];\n if (newVehicle && newVehicle.vin) {\n this.onVehicleChange(newVehicle.vin, 'V', formDirective);\n }\n } else {\n this.resetServiceForm(formDirective);\n this.clearSearch();\n }\n this.submittedService = false;\n } else {\n this.submittedService = false;\n this.toastr.error(data['message'], \"Error\");\n }\n this.spinner = false;\n }, err => {\n this.spinner = false;\n this.submittedService = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n else {\n let dueDate\n let serviceDateTime = this.datePipe.transform(f.value.serviceDateTime, \"yyyy-MM-ddTHH:mm:ssZ\");\n let bookingDate = this.datePipe.transform(this.selectedDoorstepVehicle.bookingDate, \"yyyy-MM-ddTHH:mm:ssZ\");\n if(this.selectedDoorstepVehicle.serviceDueDate != null){\n dueDate = this.datePipe.transform(this.selectedDoorstepVehicle.serviceDueDate, \"yyyy-MM-dd\");\n }\n else{\n dueDate = this.datePipe.transform(this.selectedVehicle.serviceDueDate, \"yyyy-MM-dd\");\n }\n let serviceType = '';\n if (f.value.serviceType) {\n this.serviceTypes.forEach(type => {\n if (type.value == f.value.serviceType) {\n serviceType = type.code;\n }\n });\n }\n let serviceData = {\n \"creId\": this.userId,\n \"custCode\": this.customerDetails[0].customerCode,\n \"vin\": this.selectedDoorstepVehicle.vin,\n \"serviceDueDate\": dueDate || this.datePipe.transform(f.value.serviceDateTime, \"yyyy-MM-dd\"),\n \"driverName\": this.selectedDoorstepVehicle.driverName || '',\n \"driverContactNo\": this.selectedDoorstepVehicle.driverContactNo || '',\n \"typeOfService\": serviceType || '',\n \"mileage\": f.value.serviceMileage || '',\n \"dealerWorkshopCode\": f.value.serviceDealer,\n \"callStatusCode\": this.selectedDoorstepVehicle.callStatusCode || '',\n \"bookingDate\": serviceDateTime || bookingDate,\n \"address\": f.value.address || '',\n \"pincode\": f.value.pincode || '',\n \"distance\": f.value.location || '',\n \"additionalService\": f.value.additionalServiceRequired || '',\n \"paymentMethod\": f.value.payment || '',\n \"comments\": f.value.serviceComment || '',\n }\n this.spinner = true;\n this.commonService.saveDoorstepServiceData(serviceData).subscribe(\n data => {\n if (data['responseCode'] == 0) {\n this.toastr.success(data['message'], \"Success\");\n //this.sendBookingSMS(serviceData);\n if (this.doorstepServiceDetail.length > 1 && !close) {//select new vehicle in case of multiple vin\n let newVehicle = this.doorstepServiceDetail.filter(vehicle => vehicle.vin != this.selectedDoorstepVehicle.vin)[0];\n if (newVehicle && newVehicle.vin) {\n this.onVehicleChange(newVehicle.vin, 'V', formDirective);\n }\n } else {\n this.resetServiceForm(formDirective);\n this.clearSearch();\n }\n this.submittedService = false;\n } else {\n this.submittedService = false;\n this.toastr.error(data['message'], \"Error\");\n }\n this.spinner = false;\n }, err => {\n this.spinner = false;\n this.submittedService = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n } else {\n this.submittedService = false;\n }\n }\n\n /**\n * Name: sendBookingSMS\n * purpose: To send booking sms\n */\n sendBookingSMS(bookingData: any): void {\n this.spinner = true;\n let bookingDate = this.datePipe.transform(bookingData.bookingDate, \"yyyy-MM-dd\");\n let bookingTime = this.datePipe.transform(bookingData.bookingDate, \"yyyy-MM-ddTHH:mm:ssZ\");\n let request = {\n bkStatus: 'B',\n bkTime: bookingTime || '',\n bkdate: bookingDate || '',\n contactNo: this.customerDetails[0].customerContactNo || '',\n custName: this.customerDetails[0].customerName || '',\n regNo: this.selectedVehicle.registrationNumber || '',\n vin: this.selectedVehicle.vin || ''\n }\n this.workShops.forEach(workshop => {\n if (workshop.workshopCode == this.selectedWorkShop) {\n request['wSAddress'] = workshop.workshopAddress || '';\n request['wSManager'] = workshop.contactNo || '';\n }\n });\n this.commonService.sendBookingSMS(request).subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n this.spinner = false;\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: openCustomer360\n * purpose: To open customer360 popup\n * @param {string} custId - customer id\n */\n openCustomer360(custId: string) {\n this.dialog.open(Customer360DialogComponent, {\n width: '70%',\n data: { customerCode: custId }\n });\n }\n\n /**\n * Name: clearSearch\n * purpose: To clear current search data\n */\n clearSearch() {\n this.customerChassisList = [];\n this.customerNumberList = [];\n this.customerDetails = [];\n this.fleetDetail = [];\n\n this.serviceDetail = [];\n this.selectedVehicle = [];\n this.selectedDoorstepVehicle = [];\n this.selectedService = '';\n this.vinList = [];\n this.selectedVin = '';\n this.miscellaneousServices = [\n { value: 'RUNNING REPAIR', type: 'RUNNING REPAIR/QUICK SERVICE', code: 'RR' },\n { value: 'DOORSTEP SERVICE', type: 'DOORSTEP SERVICE', code: 'DS' },\n ];\n this.miscellaneousService = '';\n\n this.selectedChasis = '';\n this.selectedRegNumber = '';\n this.selectedWorkShop = (this.workShops && this.workShops.length) ? this.workShops[0].workshopCode : '';\n\n this.searchChassis.setValue('');\n this.searchNumber.setValue('');\n this.searchRegisterationNo.setValue('');\n this.searchChassis.enable();\n this.searchNumber.enable();\n this.searchRegisterationNo.enable();\n if (this.serviceForm) {\n this.serviceForm.reset();\n }\n if (this.custDataForm) {\n this.custDataForm.reset();\n }\n //this.rrDropdown = false;\n this.commentFlag = false;\n }\n\n /**\n * Name: getWorkshopBay\n * purpose: To getWorkshopBay\n */\n getWorkshopBay(): void {\n this.commonService.getWorkshopBay(this.userId).subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n this.assignedBay = res[\"responseData\"];\n this.bayStartTime = this.assignedBay[0].startTime;\n } else {\n //this.toastr.error(res[\"message\"], \"Error\");\n this.spinner = false;\n }\n }, error => {\n this.toastr.error(error, \"Error\");\n this.spinner = false;\n });\n }\n\n /**\n * Name: getBayVisibility\n * purpose: To getBayVisibility\n */\n getBayVisibility(): void {\n let workShopCode = this.serviceForm.value.serviceDealer;\n let selectedDate = this.datePipe.transform(this.serviceForm.value.serviceDateTime, \"yyyy-MM-dd\");\n this.bayLayout = [];\n this.chartData = [];\n this.commonService.getBayVisibility(workShopCode, selectedDate).subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n if (res[\"responseData\"].length) {\n res[\"responseData\"].sort(function (a, b) {\n let aStartTime = new Date(selectedDate + 'T' + a.startTime);\n let bStartTime = new Date(selectedDate + 'T' + b.startTime);\n\n var aMin = aStartTime.getMinutes();\n var aHrs = aMin > 0 ? aMin / 60 : 0;\n let aTime = aStartTime.getHours() + aHrs;\n\n var bMin = bStartTime.getMinutes();\n var bHrs = bMin > 0 ? bMin / 60 : 0;\n let bTime = bStartTime.getHours() + bHrs;\n return aTime - bTime;\n });\n }\n\n var result = Object.assign([], res[\"responseData\"]);\n\n //get assigned workshop details\n this.assignedBay.forEach(element => {\n if (element.workshopCode == workShopCode) {\n this.workShopBay = element;\n }\n });\n this.workShopBay.bayArea = Object.assign([], res[\"responseData\"]);\n let totalNoBay = Number(this.workShopBay.totalNoBay);\n //set baylayout\n let bayList = [];\n for (let b = 1; b <= totalNoBay; b++) {\n var bay = result.filter(item => item.bay == b);\n bayList.push(bay);\n }\n this.selectedBay = Object.assign([], bayList[0]);\n this.selectedBayNo = bayList.length ? 1 : \"\";\n this.bayLayout = Object.assign([], bayList);\n\n //get bay details\n if(new Date(selectedDate + 'T' + this.workShopBay.startTime).getTime() <= this.today.getTime()) {\n this.bayMinToday = new Date();\n this.bayMaxToday = new Date(selectedDate + 'T' + this.workShopBay.endTime);\n } else {\n this.bayMinToday = new Date(selectedDate + 'T' + this.workShopBay.startTime);\n this.bayMaxToday = new Date(selectedDate + 'T' + this.workShopBay.endTime);\n }\n this.bayOpen = new Date(selectedDate + 'T' + this.workShopBay.startTime);\n this.bayClose = new Date(selectedDate + 'T' + this.workShopBay.endTime);\n this.serviceForm.controls.bayStartTime.setValue(this.bayMinToday);\n\n //get chart labels\n let startTime = this.checkHours(this.bayOpen);\n let endTime = this.checkHours(this.bayClose);\n\n this.chartOptions.scales.xAxes[0].ticks.min = startTime;\n this.chartOptions.scales.xAxes[0].ticks.max = endTime;\n\n //fill bay availability\n this.bayLayout.forEach(bayData => {\n let chartData: ChartDataSets[] = [];\n let chartLength = 0;\n let i = startTime;\n for (i; i <= endTime; i++) {\n let slot = {};\n slot['value'] = i;\n slot['available'] = true;\n\n bayData.some((element, index) => {\n //service time\n let serviceStart = new Date(selectedDate + 'T' + element.startTime);\n let serviceEnd = new Date(selectedDate + 'T' + element.endTime);\n\n //final service day hrs\n let serviceStartTime = this.checkHours(serviceStart);\n let serviceEndTime = this.checkHours(serviceEnd);\n\n let serVal = serviceEndTime - serviceStartTime;\n\n if (i >= serviceStartTime) {\n slot['available'] = false;\n let chartVal = serVal;\n if (chartVal > 0) {\n i = chartData.length ? (i + chartVal - 1) : serviceEndTime - 1;\n chartVal = chartData.length ? chartVal : serviceStartTime + chartVal;\n let data: ChartDataSets = {\n data: [chartVal],\n stack: 'a',\n label: 'Occupied',\n backgroundColor: '#e64243',\n hoverBackgroundColor: '#e64243',\n borderSkipped: 'left',\n borderWidth: 1,\n borderColor: \"#e64243\",\n barThickness: 8\n }\n chartLength = chartLength + chartVal;\n chartData.push(data);\n bayData.splice(index, 1);\n }\n return true;\n } else {\n let chartVal = serviceStartTime - i;\n if (chartVal > 0) {\n i = chartData.length ? (i + chartVal - 1) : serviceStartTime - 1;\n chartVal = chartData.length ? chartVal : serviceStartTime;\n let data: ChartDataSets = {\n data: [chartVal],\n stack: 'a',\n label: 'Available',\n backgroundColor: '#d3d3d3',\n hoverBackgroundColor: '#d3d3d3',\n borderSkipped: 'left',\n borderWidth: 1,\n borderColor: \"#d3d3d3\",\n barThickness: 8\n }\n chartLength = chartLength + chartVal;\n chartData.push(data);\n return true;\n }\n }\n });\n if (bayData.length == 0) {\n let chartVal = endTime - chartLength;\n let data: ChartDataSets = {\n data: [chartVal],\n stack: 'a',\n label: 'Available',\n backgroundColor: '#d3d3d3',\n hoverBackgroundColor: '#d3d3d3',\n borderSkipped: 'left',\n borderWidth: 1,\n borderColor: \"#d3d3d3\",\n barThickness: 8\n }\n chartData.push(data);\n break;\n }\n }\n this.chartData.push(chartData);\n });\n if (this.serviceForm.value['bayStartTime']) {\n this.checkAvailability();\n }\n } else {\n this.toastr.error(res[\"message\"], \"Error\");\n this.spinner = false;\n }\n }, error => {\n this.toastr.error(error, \"Error\");\n this.spinner = false;\n });\n }\n\n /**\n * Name: selectBay\n * purpose: To selectBay\n */\n selectBay(bay: any) {\n this.bayError = false;\n this.selectedBay = this.workShopBay.bayArea.filter(item => item.bay == (bay.value + 1));\n this.selectedBayNo = bay.value + 1;\n }\n\n /**\n * Name: checkAvailability\n * purpose: To checkAvailability\n */\n checkAvailability(): void {\n this.bayError = false;\n let serviceTime = 0;\n // if(this.division == \"LMD\") {\n // serviceTime = 1.5;\n // } else {\n // serviceTime = 2;\n // }\n\n if(this.serviceCount>=0){\n if(this.serviceCount % 2 == 1){\n serviceTime = 1.5;\n }else{\n serviceTime = 4;\n }\n }\n let bayOpen = this.checkHours(this.bayOpen);\n let bayClose = this.checkHours(this.bayClose);\n let bayMinToday = this.checkHours(this.bayMinToday);\n let bayMaxToday = this.checkHours(this.bayMaxToday);\n let selectedTime = this.checkHours(new Date(this.serviceForm.value['bayStartTime']));\n let selectedEndTime = selectedTime + serviceTime;\n if (this.selectedBay.length) {\n this.selectedBay.some(element => {\n let date = this.datePipe.transform(this.serviceForm.value['bayStartTime'], \"yyyy-MM-dd\");\n let startDate = new Date(date + 'T' + element.startTime);\n let endDate = new Date(date + 'T' + element.endTime);\n let startTimeS = this.checkHours(startDate);\n let endTimeS = this.checkHours(endDate);\n if((selectedEndTime > bayMaxToday) || (selectedTime < bayMinToday)) {\n this.bayError = true;\n return true;\n }\n if ((selectedTime >= startTimeS && selectedTime < endTimeS) ||\n (selectedEndTime > startTimeS && selectedEndTime <= endTimeS) ||\n (selectedEndTime > bayClose) || (selectedTime < bayOpen) ||\n (selectedTime <= startTimeS && selectedEndTime >= endTimeS)) {\n this.bayError = true;\n return true;\n }\n });\n } else {\n let selectedTime = this.checkHours(new Date(this.serviceForm.value['bayStartTime']));\n let selectedEndTime = selectedTime + serviceTime;\n if ((selectedEndTime > bayClose) || (selectedTime < bayOpen)) {\n this.bayError = true;\n }\n if((selectedEndTime > bayMaxToday) || (selectedTime < bayMinToday)) {\n this.bayError = true;\n }\n }\n }\n\n /**\n * Name: checkHours\n * purpose: To checkHours\n */\n checkHours(selectedTime) {\n var startMin = selectedTime.getMinutes();\n var hrsOpen = startMin > 0 ? startMin / 60 : 0;\n let startTime = selectedTime.getHours() + hrsOpen;\n return startTime;\n }\n\n /**\n * Name: getFertPrice\n * purpose: To getFertPrice\n */\n getFertPrice(workShopCode: string, fertCode: string): void {\n this.commonService.getFertPrice(workShopCode, fertCode).subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n this.packagelist = res[\"responseData\"];\n this.packagelist.forEach(element => {\n element.fert = Math.round(Number(element.fert) * 100 + Number.EPSILON) / 100;\n });\n //this.serviceHours = this.packagelist.length ? this.packagelist[0].fert : 2;\n // if(this.showBay) {\n // this.getBayVisibility();\n // }\n this.serviceForm.controls[\"package\"].setValue(this.packagelist[0].packageId);\n } else {\n //this.serviceHours = 2;\n //this.getBayVisibility();\n //this.toastr.error(res[\"message\"], \"Error\");\n this.spinner = false;\n }\n }, error => {\n //this.toastr.error(error, \"Error\");\n this.spinner = false;\n });\n }\n\n setPackage(packageId) {\n // this.packagelist.forEach(element => {\n // if (element.packageId == packageId) {\n // this.serviceHours = element.fert || 2;\n // }\n // });\n if (this.serviceForm.value['bayStartTime']) {\n this.checkAvailability();\n }\n }\n\n filterTriggered(event: any, formDirective: FormGroupDirective): void {\n this.miscellaneousService = \"\";\n this.miscellaneousService = event.value;\n if ((event && event.value)) {\n if (event.value == \"DOORSTEP SERVICE\") {\n this.showBay1 = true;\n this.showBay = false;\n this.resetServiceForm(formDirective);\n this.getDoorstepCustomerVinDetails(this.customerDetails[0].customerCode, this.selectedVin);\n this.buildDoorstepServiceForm();\n\n }\n else {\n this.showBay1 = false;\n this.showBay = true;\n this.resetServiceForm(formDirective);\n if(this.selectedService != null){\n this.miscellaneousServices = [\n { value: 'DOORSTEP SERVICE', type: 'DOORSTEP SERVICE', code: 'DS' },\n ];\n }\n this.buildServiceForm();\n if (this.selectedVehicle.fertCode && (this.showBay && !this.showBay1)) {\n this.getFertPrice(this.selectedWorkShop, this.fertCode);\n }\n }\n this.commentFlag = true;\n }\n }\n\n getWorkshopAppointmentFlag(workShopCode: string, flag: any) {\n this.packagelist = [];\n this.commonService.getWorkshopAppointmentFlag(workShopCode)\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n this.workshopAppointmentFlag = res['responseData'][0].appointmentFlag;\n this.fertCode = this.selectedVehicle.fertCode;\n if (this.workshopAppointmentFlag == \"true\") {\n // if(this.selectedVehicle.typeOfService) {\n // let serviceType = this.selectedVehicle.typeOfService.split(' - ')[0];\n // if (serviceType == 'FS1' || serviceType == 'FS2' || serviceType == 'FS3' || serviceType == 'ECS' || serviceType == 'PMS') {\n this.showBay = true;\n // } else {\n // this.showBay = false;\n // }\n // } else {\n // this.showBay = false;\n // }\n } else {\n this.showBay = false;\n this.selectedBayNo = \"\";\n }\n // if(flag) {\n this.selectedWorkShop = workShopCode;\n this.buildServiceForm();\n if (this.showBay) {\n this.getBayVisibility();\n }\n // }\n if (this.fertCode && this.showBay) {\n this.getFertPrice(this.selectedWorkShop, this.fertCode);\n }\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n getDoorstepCustomerVinDetails(customerCode: string, vin: string) {\n this.spinner = true;\n this.userService.getDoorstepServiceDetail(customerCode, this.userId, vin).subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n this.doorstepServiceDetail = res['responseData'];\n if (this.searchChassis.value) {//if search is chasis then select default vehicle\n let filterVehicle = this.doorstepServiceDetail.filter(vehicle => vehicle.vin == this.searchChassis.value)[0];\n this.selectedChasis = filterVehicle.vin;\n this.selectedRegNumber = filterVehicle.registrationNumber\n this.selectedDoorstepVehicle = filterVehicle;\n if (filterVehicle.serviceType != null) {\n\n this.selectedService = filterVehicle.serviceType;\n this.selectedWorkShop = filterVehicle.workshopCode || this.selectedWorkShop;\n this.selectedVehicleType = 1;\n this.division = filterVehicle.division;\n this.serviceCount = filterVehicle.serviceTypeSequence;\n this.buildDoorstepServiceForm();\n this.miscellaneousServices = [\n { value: 'DOORSTEP SERVICE', type: 'DOORSTEP SERVICE', code: 'DS' },\n ];\n }\n else {\n this.dateTimeExample = this.selectedVehicle.bookingDate ? new Date(this.selectedVehicle.bookingDate) : this.dateTimeExample;\n this.disableServiceType = this.selectedVehicle.typeOfService ? true : false;\n this.rrDropdown = this.rrStatus == \"YES\" ? true : false;\n let missService = this.rrStatus == \"YES\" ? this.miscellaneousServices[0].value : \"\";\n if(this.selectedVehicle.typeOfService != null){\n this.miscellaneousServices = [\n { value: 'DOORSTEP SERVICE', type: 'DOORSTEP SERVICE', code: 'DS' },\n ];\n }\n else{\n this.miscellaneousServices = [\n { value: 'RUNNING REPAIR', type: 'RUNNING REPAIR/QUICK SERVICE', code: 'RR' },\n { value: 'DOORSTEP SERVICE', type: 'DOORSTEP SERVICE', code: 'DS' },\n ];\n }\n this.serviceForm = this.fb.group({\n serviceType: [this.selectedVehicle.typeOfService],\n miscellaneousService: [this.miscellaneousService],\n serviceMileage: [this.selectedVehicle.milage],\n serviceDealer: [this.selectedWorkShop, Validators.required],\n serviceDateTime: [this.dateTimeExample, Validators.required],\n serviceComment: [this.selectedVehicle.comments],\n address: [\"\",Validators.required],\n pincode: [\"\",Validators.required],\n location: [\"\",Validators.required],\n payment: [\"\",Validators.required],\n additionalServiceRequired: [\"\",Validators.required]\n });\n }\n\n // this.bayNo = filterVehicle.bayNo;\n // this.bayStartTime = filterVehicle.bayStartTime;\n // this.bayEndTime = filterVehicle.bayEndTime;\n } else if (this.searchRegisterationNo.value) {//if search is registrationNumber then select default vehicle\n let filterVehicle = this.serviceDetail.filter(vehicle => vehicle.registrationNumber == this.searchRegisterationNo.value)[0];\n this.selectedChasis = filterVehicle.vin\n this.selectedRegNumber = filterVehicle.registrationNumber\n this.selectedDoorstepVehicle = filterVehicle;\n if (filterVehicle.serviceType != null) {\n\n this.selectedService = filterVehicle.serviceType;\n this.selectedWorkShop = filterVehicle.workshopCode || this.selectedWorkShop;\n this.selectedVehicleType = 2;\n this.division = filterVehicle.division;\n this.serviceCount = filterVehicle.serviceTypeSequence;\n this.buildDoorstepServiceForm();\n this.miscellaneousServices = [\n { value: 'DOORSTEP SERVICE', type: 'DOORSTEP SERVICE', code: 'DS' },\n ];\n\n }\n else {\n this.dateTimeExample = this.selectedVehicle.bookingDate ? new Date(this.selectedVehicle.bookingDate) : this.dateTimeExample;\n this.disableServiceType = this.selectedVehicle.typeOfService ? true : false;\n this.rrDropdown = this.rrStatus == \"YES\" ? true : false;\n let missService = this.rrStatus == \"YES\" ? this.miscellaneousServices[0].value : \"\";\n if(this.selectedVehicle.typeOfService != null){\n this.miscellaneousServices = [\n { value: 'DOORSTEP SERVICE', type: 'DOORSTEP SERVICE', code: 'DS' },\n ];\n }\n else{\n this.miscellaneousServices = [\n { value: 'RUNNING REPAIR', type: 'RUNNING REPAIR/QUICK SERVICE', code: 'RR' },\n { value: 'DOORSTEP SERVICE', type: 'DOORSTEP SERVICE', code: 'DS' },\n ];\n }\n\n this.serviceForm = this.fb.group({\n serviceType: [this.selectedVehicle.typeOfService],\n miscellaneousService: [this.miscellaneousService],\n serviceMileage: [this.selectedVehicle.milage],\n serviceDealer: [this.selectedWorkShop, Validators.required],\n serviceDateTime: [this.dateTimeExample, Validators.required],\n serviceComment: [this.selectedVehicle.comments],\n address: [\"\",Validators.required],\n pincode: [\"\",Validators.required],\n location: [\"\",Validators.required],\n payment: [\"\",Validators.required],\n additionalServiceRequired: [\"\",Validators.required]\n });\n\n\n }\n // this.bayNo = filterVehicle.bayNo;\n // this.bayStartTime = filterVehicle.bayStartTime;\n // this.bayEndTime = filterVehicle.bayEndTime;\n } else { //if search is number then select default vehicle\n this.selectedChasis = this.serviceDetail[0].vin\n this.selectedRegNumber = this.serviceDetail[0].registrationNumber\n this.selectedDoorstepVehicle = this.serviceDetail[0];\n this.selectedService = this.serviceDetail[0].serviceType;\n this.selectedWorkShop = this.serviceDetail[0].workshopCode || this.selectedWorkShop;\n this.rrStatus = this.serviceDetail[0].rrStatus;\n this.division = this.serviceDetail[0].division;\n this.serviceCount = this.serviceDetail[0].serviceTypeSequence;\n //this.bayNo = this.serviceDetail[0].bayNo;\n //this.bayStartTime = this.serviceDetail[0].bayStartTime;\n //this.bayEndTime = this.serviceDetail[0].bayEndTime;\n }\n }\n else {\n this.toastr.error(res['message'], \"Error\");\n }\n this.spinner = false;\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n buildDoorstepServiceForm() {\n this.dateTimeExample = this.selectedDoorstepVehicle.bookingDate ? new Date(this.selectedDoorstepVehicle.bookingDate) : this.dateTimeExample;\n this.disableServiceType = this.selectedDoorstepVehicle.serviceType ? true : false;\n\n this.serviceForm = this.fb.group({\n serviceType: [this.selectedDoorstepVehicle.serviceType],\n miscellaneousService: [this.miscellaneousService],\n serviceMileage: [this.selectedDoorstepVehicle.currentMileage],\n serviceDealer: [this.selectedWorkShop, Validators.required],\n serviceDateTime: [this.dateTimeExample, Validators.required],\n serviceComment: [this.selectedDoorstepVehicle.comments],\n address: [\"\",Validators.required],\n pincode: [\"\",Validators.required],\n location: [\"\",Validators.required],\n payment: [\"\",Validators.required],\n additionalServiceRequired: [\"\",Validators.required]\n });\n }\n\n\n /**\n * Name: saveServiceData\n * purpose: To save vehicle service updated details\n * @param {boolean} close - flag to close search view\n * @param {FormGroupDirective} formDirective - form directive\n */\n saveServiceData(close: boolean, formDirective: FormGroupDirective) {\n\n let today : Date = new Date();\n let todayDate = new Date(this.datePipe.transform(today, \"yyyy-MM-dd\"))\n let booking = new Date(this.datePipe.transform(this.serviceForm.value.serviceDateTime, \"yyyy-MM-dd\"))\n\n if(this.workshopAppointmentFlag == \"true\" && this.selectedBayNo != '') {\n if(booking > todayDate) {\n this.saveService(close, formDirective);\n } else {\n this.toastr.error(\"Booking not allow on current Date.\", \"Error\");\n }\n }\n else if(this.workshopAppointmentFlag == \"false\" && this.selectedBayNo == '') {\n if(booking > todayDate) {\n this.saveService(close, formDirective);\n } else {\n this.toastr.error(\"Booking not allow on current Date.\", \"Error\");\n }\n }\n else {\n this.toastr.error(\"Please select the Bay.\", \"Error\");\n }\n }\n}","export default \".working-area {\\n margin-top: 115px;\\n}\\n\\ntable {\\n width: 100%;\\n}\\n\\n.calling-table tr {\\n cursor: pointer;\\n}\\n\\n.table-head-call {\\n background: none;\\n padding-top: 12px;\\n}\\n\\n.button-margin {\\n margin-left: 10px;\\n}\\n\\n.callList {\\n font: Bold 20px Roboto;\\n letter-spacing: 0px;\\n color: #484848;\\n opacity: 1;\\n}\\n\\n.close-con {\\n font-size: 18px;\\n cursor: pointer;\\n top: 3px;\\n right: 1px;\\n position: absolute !important;\\n z-index: 10;\\n opacity: 1;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-infix {\\n border: 1px solid lightgray;\\n border-radius: 5px;\\n background: white;\\n padding: 0;\\n height: 20px;\\n}\\n\\n.filter1 ::ng-deep .mat-select {\\n padding: 3px 0px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-trigger {\\n padding-left: 8px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-value {\\n width: 89%;\\n}\\n\\n.filter1 ::ng-deep .mat-button {\\n font-size: 12px;\\n font: white;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label-wrapper {\\n top: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-underline {\\n display: none;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label {\\n top: 0;\\n margin-top: 4px !important;\\n padding-left: 5px;\\n}\\n\\n.filter-label {\\n font: Bold 14px Roboto;\\n letter-spacing: 0px;\\n color: #3c3c3c;\\n opacity: 1;\\n margin-bottom: 5px;\\n}\\n\\n.refesh-icon {\\n float: right;\\n margin-bottom: -30px;\\n margin-right: 20px;\\n margin-top: 30px;\\n cursor: pointer;\\n}\\n\\n.coloredRow {\\n background: #ffff99;\\n}\\n\\n.coloredGreenRow {\\n background: #90ee90;\\n}\\n\\n.mat-dialog-title {\\n background-color: darkgray;\\n}\\n\\n.callList-right {\\n font-size: 11px;\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.columnHeader {\\n font: Bold 12px Roboto;\\n letter-spacing: 0px;\\n color: #333333;\\n text-transform: capitalize;\\n}\\n\\n.lost {\\n color: #e64243;\\n position: absolute;\\n left: 10px;\\n font-size: 10px;\\n top: 38%;\\n}\\n\\n.inbound {\\n color: #2e3668;\\n position: absolute;\\n left: 0px;\\n font-size: 10px;\\n top: 38%;\\n}\\n\\n.columnvalue {\\n font-size: 14px;\\n position: relative;\\n}\\n\\n.filter1 {\\n font-size: 12px;\\n}\\n\\n.filterButton {\\n color: white !important;\\n background-color: #00457D;\\n height: 20px;\\n line-height: 10px;\\n margin-bottom: 1px;\\n}\\n\\n.filterdiv {\\n align-items: center;\\n}\\n\\n.serviceDueDate {\\n width: 10% !important;\\n}\\n\\n.followUp {\\n width: 9% !important;\\n}\\n\\ntd.mat-cell,\\ntd.mat-footer-cell,\\nth.mat-header-cell {\\n padding: 3px;\\n border-style: solid none none solid;\\n border-width: 0.1px;\\n border-color: lightgray;\\n}\\n\\n.table-border.mat-table {\\n border-style: none solid solid none;\\n border-color: lightgray;\\n}\\n\\nth.mat-header-cell {\\n background-color: #d9d9d9;\\n}\\n\\n.filter2 {\\n width: auto;\\n}\\n\\n.call-stats-card .mat-card-title {\\n margin-bottom: 0px;\\n}\\n\\n.call-stats-card .call-stats {\\n font-size: 11px;\\n color: #ffffff;\\n}\\n\\n.call-stats-card .call-stats i {\\n color: #2e3668;\\n font-size: 11px;\\n}\\n\\n.call-stats-card .call-stats-title {\\n font-size: 20px;\\n color: #484848;\\n}\\n\\n.call-stats-card1 {\\n padding-top: 0px;\\n}\\n\\n.call-stats-card-border1 {\\n border-style: solid solid none solid;\\n border-width: 1px;\\n border-radius: 0%;\\n border-color: lightgray;\\n}\\n\\n.call-stats-card-border2 {\\n border-style: solid solid solid solid;\\n border-width: 1px;\\n border-radius: 0%;\\n margin-bottom: 15px;\\n border-color: lightgray;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-group {\\n border-radius: 0px;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle {\\n background-color: #ffffff;\\n color: #5482BC;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-checked {\\n background-color: #5482BC;\\n color: #ffffff;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-label-content {\\n line-height: 30px;\\n font: Regular 14px Roboto;\\n letter-spacing: 0px;\\n}\\n\\n.toggle-btn-grp ::ng-deep .refresh-btn.mat-button {\\n min-width: auto;\\n}\\n\\n.refresh-btn {\\n background-color: #ffffff;\\n color: #e64243;\\n border: 1px solid #e64243;\\n border-radius: 0px;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-flex {\\n border: 1px solid lightgray;\\n border-radius: 3px;\\n background: white;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-label {\\n padding-left: 10px;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-infix {\\n border-top: none;\\n}\\n\\n.textboxService ::ng-deep label.mat-form-field-label {\\n margin-top: 8px !important;\\n}\\n\\n.textboxService ::ng-deep input.mat-input-element {\\n margin-top: 0.6em;\\n margin-left: 10px;\\n}\\n\\n.search-icon {\\n position: absolute;\\n right: 15px;\\n top: 15px;\\n}\\n\\n.backColor {\\n background-color: #00457D !important;\\n font-size: 12px;\\n}\\n\\n.box-size {\\n margin-left: 10px;\\n margin-top: 7px;\\n width: 28px;\\n height: 28px;\\n color: #ffffff !important;\\n}\\n\\n.backColor1 {\\n background-color: #5482BC !important;\\n font-size: 12px;\\n}\\n\\n.call-stats-value {\\n margin-left: 50px;\\n font-size: 18px;\\n}\\n\\n.call-stats-value1 {\\n margin-left: 30px;\\n font-size: 18px;\\n}\\n\\n.info-circle-size {\\n font-size: 12px !important;\\n color: #ffffff !important;\\n}\\n\\n.flex-set {\\n margin-top: 7px;\\n margin-left: 30px;\\n}\\n\\n.flex-set1 {\\n margin-top: 7px;\\n margin-left: 55px;\\n}\\n\\n.dueDateIcon {\\n height: 9px;\\n width: 11px;\\n}\\n\\n.filter3 {\\n width: 200px;\\n margin-right: 30px;\\n font-size: 12px;\\n}\\n\\n.paginator ::ng-deep .mat-form-field-infix {\\n height: 18px !important;\\n padding-bottom: 0px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9jb21wb25lbnQvbG9zdC1jdXN0b21lci9sb3N0LWN1c3RvbWVyLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnQvbG9zdC1jdXN0b21lci9sb3N0LWN1c3RvbWVyLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksaUJBQUE7QUNDSjs7QURFQTtFQUNJLFdBQUE7QUNDSjs7QURFQTtFQUNJLGVBQUE7QUNDSjs7QURFQTtFQUNJLGdCQUFBO0VBQ0EsaUJBQUE7QUNDSjs7QURFQTtFQUNJLGlCQUFBO0FDQ0o7O0FERUE7RUFDSSxzQkFBQTtFQUNBLG1CQUFBO0VBQ0EsY0FBQTtFQUNBLFVBQUE7QUNDSjs7QURFQTtFQUNJLGVBQUE7RUFDQSxlQUFBO0VBQ0EsUUFBQTtFQUNBLFVBQUE7RUFDQSw2QkFBQTtFQUNBLFdBQUE7RUFDQSxVQUFBO0FDQ0o7O0FERUE7RUFDSSwyQkFBQTtFQUNBLGtCQUFBO0VBQ0EsaUJBQUE7RUFDQSxVQUFBO0VBQ0EsWUFBQTtBQ0NKOztBREVBO0VBQ0ksZ0JBQUE7QUNDSjs7QURFQTtFQUNJLGlCQUFBO0FDQ0o7O0FERUE7RUFDSSxVQUFBO0FDQ0o7O0FERUE7RUFDSSxlQUFBO0VBQ0EsV0FBQTtBQ0NKOztBREVBO0VBQ0ksTUFBQTtFQUNBLGNBQUE7RUFDQSxpQkFBQTtBQ0NKOztBREVBO0VBQ0ksaUJBQUE7QUNDSjs7QURFQTtFQUNJLGFBQUE7QUNDSjs7QURFQTtFQUNJLE1BQUE7RUFDQSwwQkFBQTtFQUNBLGlCQUFBO0FDQ0o7O0FERUE7RUFDSSxzQkFBQTtFQUNBLG1CQUFBO0VBQ0EsY0FBQTtFQUNBLFVBQUE7RUFDQSxrQkFBQTtBQ0NKOztBREVBO0VBQ0ksWUFBQTtFQUNBLG9CQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQkFBQTtFQUNBLGVBQUE7QUNDSjs7QURFQTtFQUNJLG1CQUFBO0FDQ0o7O0FERUE7RUFDSSxtQkFBQTtBQ0NKOztBREVBO0VBQ0ksMEJBQUE7QUNDSjs7QURFQTtFQUNJLGVBQUE7RUFDQSwwQkFBQTtBQ0NKOztBREVBO0VBQ0ksc0JBQUE7RUFDQSxtQkFBQTtFQUNBLGNBQUE7RUFDQSwwQkFBQTtBQ0NKOztBREVBO0VBQ0ksY0FBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLGVBQUE7RUFDQSxRQUFBO0FDQ0o7O0FERUE7RUFDSSxjQUFBO0VBQ0Esa0JBQUE7RUFDQSxTQUFBO0VBQ0EsZUFBQTtFQUNBLFFBQUE7QUNDSjs7QURFQTtFQUNJLGVBQUE7RUFDQSxrQkFBQTtBQ0NKOztBREVBO0VBQ0ksZUFBQTtBQ0NKOztBREVBO0VBQ0ksdUJBQUE7RUFDQSx5QkFBQTtFQUNBLFlBQUE7RUFDQSxpQkFBQTtFQUNBLGtCQUFBO0FDQ0o7O0FERUE7RUFDSSxtQkFBQTtBQ0NKOztBREVBO0VBQ0kscUJBQUE7QUNDSjs7QURFQTtFQUNJLG9CQUFBO0FDQ0o7O0FERUE7OztFQUdJLFlBQUE7RUFDQSxtQ0FBQTtFQUNBLG1CQUFBO0VBQ0EsdUJBQUE7QUNDSjs7QURFQTtFQUNJLG1DQUFBO0VBQ0EsdUJBQUE7QUNDSjs7QURFQTtFQUNJLHlCQUFBO0FDQ0o7O0FERUE7RUFDSSxXQUFBO0FDQ0o7O0FER0k7RUFDSSxrQkFBQTtBQ0FSOztBREVJO0VBQ0ksZUFBQTtFQUNBLGNBQUE7QUNBUjs7QURDUTtFQUNJLGNBQUE7RUFDQSxlQUFBO0FDQ1o7O0FERUk7RUFDSSxlQUFBO0VBQ0EsY0FBQTtBQ0FSOztBRElBO0VBQ0ksZ0JBQUE7QUNESjs7QURJQTtFQUNJLG9DQUFBO0VBQ0EsaUJBQUE7RUFDQSxpQkFBQTtFQUNBLHVCQUFBO0FDREo7O0FESUE7RUFDSSxxQ0FBQTtFQUNBLGlCQUFBO0VBQ0EsaUJBQUE7RUFDQSxtQkFBQTtFQUNBLHVCQUFBO0FDREo7O0FESUE7RUFDSSxrQkFBQTtBQ0RKOztBRElBO0VBQ0kseUJBQUE7RUFDQSxjQUFBO0FDREo7O0FESUE7RUFDSSx5QkFBQTtFQUNBLGNBQUE7QUNESjs7QURJQTtFQUNJLGlCQUFBO0VBQ0EseUJBQUE7RUFDQSxtQkFBQTtBQ0RKOztBRElBO0VBQ0ksZUFBQTtBQ0RKOztBRElBO0VBQ0kseUJBQUE7RUFDQSxjQUFBO0VBQ0EseUJBQUE7RUFDQSxrQkFBQTtBQ0RKOztBRElBO0VBQ0ksMkJBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0FDREo7O0FESUE7RUFDSSxrQkFBQTtBQ0RKOztBRElBO0VBQ0ksZ0JBQUE7QUNESjs7QURJQTtFQUNJLDBCQUFBO0FDREo7O0FESUE7RUFDSSxpQkFBQTtFQUNBLGlCQUFBO0FDREo7O0FESUE7RUFDSSxrQkFBQTtFQUNBLFdBQUE7RUFDQSxTQUFBO0FDREo7O0FESUE7RUFDSSxvQ0FBQTtFQUNBLGVBQUE7QUNESjs7QURJQTtFQUNJLGlCQUFBO0VBQ0EsZUFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EseUJBQUE7QUNESjs7QURJQTtFQUNJLG9DQUFBO0VBQ0EsZUFBQTtBQ0RKOztBRElBO0VBQ0ksaUJBQUE7RUFDQSxlQUFBO0FDREo7O0FESUE7RUFDSSxpQkFBQTtFQUNBLGVBQUE7QUNESjs7QURJQTtFQUNJLDBCQUFBO0VBQ0EseUJBQUE7QUNESjs7QURJQTtFQUNJLGVBQUE7RUFDQSxpQkFBQTtBQ0RKOztBRElBO0VBQ0ksZUFBQTtFQUNBLGlCQUFBO0FDREo7O0FESUE7RUFDSSxXQUFBO0VBQ0EsV0FBQTtBQ0RKOztBRElBO0VBQ0ksWUFBQTtFQUNBLGtCQUFBO0VBQ0EsZUFBQTtBQ0RKOztBRElBO0VBQ0ksdUJBQUE7RUFDQSxtQkFBQTtBQ0RKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50L2xvc3QtY3VzdG9tZXIvbG9zdC1jdXN0b21lci5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi53b3JraW5nLWFyZWEge1xuICAgIG1hcmdpbi10b3A6IDExNXB4O1xufVxuXG50YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5jYWxsaW5nLXRhYmxlIHRyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi50YWJsZS1oZWFkLWNhbGwge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgcGFkZGluZy10b3A6IDEycHg7XG59XG5cbi5idXR0b24tbWFyZ2luIHtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbn1cblxuLmNhbGxMaXN0IHtcbiAgICBmb250OiBCb2xkIDIwcHggUm9ib3RvO1xuICAgIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gICAgY29sb3I6ICM0ODQ4NDg7XG4gICAgb3BhY2l0eTogMTtcbn1cblxuLmNsb3NlLWNvbiB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0b3A6IDNweDtcbiAgICByaWdodDogMXB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICAgIHotaW5kZXg6IDEwO1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgcGFkZGluZzogMDtcbiAgICBoZWlnaHQ6IDIwcHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdCB7XG4gICAgcGFkZGluZzogM3B4IDBweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICAgIHBhZGRpbmctbGVmdDogOHB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdmFsdWUge1xuICAgIHdpZHRoOiA4OSU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWJ1dHRvbiB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQ6IHdoaXRlO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIge1xuICAgIHRvcDogMDtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIHRvcDogMDtcbiAgICBtYXJnaW4tdG9wOiA0cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbn1cblxuLmZpbHRlci1sYWJlbCB7XG4gICAgZm9udDogQm9sZCAxNHB4IFJvYm90bztcbiAgICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICAgIGNvbG9yOiAjM2MzYzNjO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuXG4ucmVmZXNoLWljb24ge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tYm90dG9tOiAtMzBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gICAgbWFyZ2luLXRvcDogMzBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5jb2xvcmVkUm93IHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZjk5O1xufVxuXG4uY29sb3JlZEdyZWVuUm93IHtcbiAgICBiYWNrZ3JvdW5kOiAjOTBlZTkwO1xufVxuXG4ubWF0LWRpYWxvZy10aXRsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2dyYXk7XG59XG5cbi5jYWxsTGlzdC1yaWdodCB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuXG4uY29sdW1uSGVhZGVyIHtcbiAgICBmb250OiBCb2xkIDEycHggUm9ib3RvO1xuICAgIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gICAgY29sb3I6ICMzMzMzMzM7XG4gICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG59XG5cbi5sb3N0IHtcbiAgICBjb2xvcjogI2U2NDI0MztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMTBweDtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgdG9wOiAzOCU7XG59XG5cbi5pbmJvdW5kIHtcbiAgICBjb2xvcjogIzJlMzY2ODtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMHB4O1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICB0b3A6IDM4JTtcbn1cblxuLmNvbHVtbnZhbHVlIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZmlsdGVyMSB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uZmlsdGVyQnV0dG9uIHtcbiAgICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEO1xuICAgIGhlaWdodDogMjBweDtcbiAgICBsaW5lLWhlaWdodDogMTBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxcHg7XG59XG5cbi5maWx0ZXJkaXYge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5zZXJ2aWNlRHVlRGF0ZSB7XG4gICAgd2lkdGg6IDEwJSAhaW1wb3J0YW50O1xufVxuXG4uZm9sbG93VXAge1xuICAgIHdpZHRoOiA5JSAhaW1wb3J0YW50O1xufVxuXG50ZC5tYXQtY2VsbCxcbnRkLm1hdC1mb290ZXItY2VsbCxcbnRoLm1hdC1oZWFkZXItY2VsbCB7XG4gICAgcGFkZGluZzogM3B4O1xuICAgIGJvcmRlci1zdHlsZTogc29saWQgbm9uZSBub25lIHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogMC4xcHg7XG4gICAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG59XG5cbi50YWJsZS1ib3JkZXIubWF0LXRhYmxlIHtcbiAgICBib3JkZXItc3R5bGU6IG5vbmUgc29saWQgc29saWQgbm9uZTtcbiAgICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxudGgubWF0LWhlYWRlci1jZWxsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDlkOWQ5O1xufVxuXG4uZmlsdGVyMiB7XG4gICAgd2lkdGg6IGF1dG87XG59XG5cbi5jYWxsLXN0YXRzLWNhcmQge1xuICAgIC5tYXQtY2FyZC10aXRsZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICB9XG4gICAgLmNhbGwtc3RhdHMge1xuICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgICBpIHtcbiAgICAgICAgICAgIGNvbG9yOiAjMmUzNjY4O1xuICAgICAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICB9XG4gICAgfVxuICAgIC5jYWxsLXN0YXRzLXRpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICBjb2xvcjogIzQ4NDg0ODtcbiAgICB9XG59XG5cbi5jYWxsLXN0YXRzLWNhcmQxIHtcbiAgICBwYWRkaW5nLXRvcDogMHB4O1xufVxuXG4uY2FsbC1zdGF0cy1jYXJkLWJvcmRlcjEge1xuICAgIGJvcmRlci1zdHlsZTogc29saWQgc29saWQgbm9uZSBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDFweDtcbiAgICBib3JkZXItcmFkaXVzOiAwJTtcbiAgICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxuLmNhbGwtc3RhdHMtY2FyZC1ib3JkZXIyIHtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIHNvbGlkIHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIHtcbiAgICBib3JkZXItcmFkaXVzOiAwcHg7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIGNvbG9yOiAjNTQ4MkJDO1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTQ4MkJDO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZS1sYWJlbC1jb250ZW50IHtcbiAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICBmb250OiBSZWd1bGFyIDE0cHggUm9ib3RvO1xuICAgIGxldHRlci1zcGFjaW5nOiAwcHg7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLnJlZnJlc2gtYnRuLm1hdC1idXR0b24ge1xuICAgIG1pbi13aWR0aDogYXV0bztcbn1cblxuLnJlZnJlc2gtYnRuIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIGNvbG9yOiAjZTY0MjQzO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNjQyNDM7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4O1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCBsYWJlbC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgbWFyZ2luLXRvcDogOHB4ICFpbXBvcnRhbnQ7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgaW5wdXQubWF0LWlucHV0LWVsZW1lbnQge1xuICAgIG1hcmdpbi10b3A6IDAuNmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuXG4uc2VhcmNoLWljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMTVweDtcbiAgICB0b3A6IDE1cHg7XG59XG5cbi5iYWNrQ29sb3Ige1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0QgIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IDEycHg7XG59XG5cbi5ib3gtc2l6ZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgbWFyZ2luLXRvcDogN3B4O1xuICAgIHdpZHRoOiAyOHB4O1xuICAgIGhlaWdodDogMjhweDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG4uYmFja0NvbG9yMSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzU0ODJCQyAhaW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmNhbGwtc3RhdHMtdmFsdWUge1xuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xuICAgIGZvbnQtc2l6ZTogMThweDtcbn1cblxuLmNhbGwtc3RhdHMtdmFsdWUxIHtcbiAgICBtYXJnaW4tbGVmdDogMzBweDtcbiAgICBmb250LXNpemU6IDE4cHg7XG59XG5cbi5pbmZvLWNpcmNsZS1zaXplIHtcbiAgICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG4uZmxleC1zZXQge1xuICAgIG1hcmdpbi10b3A6IDdweDtcbiAgICBtYXJnaW4tbGVmdDogMzBweDtcbn1cblxuLmZsZXgtc2V0MSB7XG4gICAgbWFyZ2luLXRvcDogN3B4O1xuICAgIG1hcmdpbi1sZWZ0OiA1NXB4O1xufVxuXG4uZHVlRGF0ZUljb24ge1xuICAgIGhlaWdodDogOXB4O1xuICAgIHdpZHRoOiAxMXB4O1xufVxuXG4uZmlsdGVyMyB7XG4gICAgd2lkdGg6IDIwMHB4O1xuICAgIG1hcmdpbi1yaWdodDogMzBweDtcbiAgICBmb250LXNpemU6IDEycHg7XG59XG5cbi5wYWdpbmF0b3IgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgaGVpZ2h0OiAxOHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDBweDtcbn0iLCIud29ya2luZy1hcmVhIHtcbiAgbWFyZ2luLXRvcDogMTE1cHg7XG59XG5cbnRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5jYWxsaW5nLXRhYmxlIHRyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4udGFibGUtaGVhZC1jYWxsIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgcGFkZGluZy10b3A6IDEycHg7XG59XG5cbi5idXR0b24tbWFyZ2luIHtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbi5jYWxsTGlzdCB7XG4gIGZvbnQ6IEJvbGQgMjBweCBSb2JvdG87XG4gIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gIGNvbG9yOiAjNDg0ODQ4O1xuICBvcGFjaXR5OiAxO1xufVxuXG4uY2xvc2UtY29uIHtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRvcDogM3B4O1xuICByaWdodDogMXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgei1pbmRleDogMTA7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIHBhZGRpbmc6IDA7XG4gIGhlaWdodDogMjBweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0IHtcbiAgcGFkZGluZzogM3B4IDBweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICBwYWRkaW5nLWxlZnQ6IDhweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgd2lkdGg6IDg5JTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtYnV0dG9uIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250OiB3aGl0ZTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIHtcbiAgdG9wOiAwO1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0b3A6IDA7XG4gIG1hcmdpbi10b3A6IDRweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbn1cblxuLmZpbHRlci1sYWJlbCB7XG4gIGZvbnQ6IEJvbGQgMTRweCBSb2JvdG87XG4gIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gIGNvbG9yOiAjM2MzYzNjO1xuICBvcGFjaXR5OiAxO1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG5cbi5yZWZlc2gtaWNvbiB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLWJvdHRvbTogLTMwcHg7XG4gIG1hcmdpbi1yaWdodDogMjBweDtcbiAgbWFyZ2luLXRvcDogMzBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uY29sb3JlZFJvdyB7XG4gIGJhY2tncm91bmQ6ICNmZmZmOTk7XG59XG5cbi5jb2xvcmVkR3JlZW5Sb3cge1xuICBiYWNrZ3JvdW5kOiAjOTBlZTkwO1xufVxuXG4ubWF0LWRpYWxvZy10aXRsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IGRhcmtncmF5O1xufVxuXG4uY2FsbExpc3QtcmlnaHQge1xuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuXG4uY29sdW1uSGVhZGVyIHtcbiAgZm9udDogQm9sZCAxMnB4IFJvYm90bztcbiAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xufVxuXG4ubG9zdCB7XG4gIGNvbG9yOiAjZTY0MjQzO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgdG9wOiAzOCU7XG59XG5cbi5pbmJvdW5kIHtcbiAgY29sb3I6ICMyZTM2Njg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMHB4O1xuICBmb250LXNpemU6IDEwcHg7XG4gIHRvcDogMzglO1xufVxuXG4uY29sdW1udmFsdWUge1xuICBmb250LXNpemU6IDE0cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmZpbHRlcjEge1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5maWx0ZXJCdXR0b24ge1xuICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBsaW5lLWhlaWdodDogMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMXB4O1xufVxuXG4uZmlsdGVyZGl2IHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLnNlcnZpY2VEdWVEYXRlIHtcbiAgd2lkdGg6IDEwJSAhaW1wb3J0YW50O1xufVxuXG4uZm9sbG93VXAge1xuICB3aWR0aDogOSUgIWltcG9ydGFudDtcbn1cblxudGQubWF0LWNlbGwsXG50ZC5tYXQtZm9vdGVyLWNlbGwsXG50aC5tYXQtaGVhZGVyLWNlbGwge1xuICBwYWRkaW5nOiAzcHg7XG4gIGJvcmRlci1zdHlsZTogc29saWQgbm9uZSBub25lIHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDAuMXB4O1xuICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxuLnRhYmxlLWJvcmRlci5tYXQtdGFibGUge1xuICBib3JkZXItc3R5bGU6IG5vbmUgc29saWQgc29saWQgbm9uZTtcbiAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG59XG5cbnRoLm1hdC1oZWFkZXItY2VsbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkOWQ5ZDk7XG59XG5cbi5maWx0ZXIyIHtcbiAgd2lkdGg6IGF1dG87XG59XG5cbi5jYWxsLXN0YXRzLWNhcmQgLm1hdC1jYXJkLXRpdGxlIHtcbiAgbWFyZ2luLWJvdHRvbTogMHB4O1xufVxuLmNhbGwtc3RhdHMtY2FyZCAuY2FsbC1zdGF0cyB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4uY2FsbC1zdGF0cy1jYXJkIC5jYWxsLXN0YXRzIGkge1xuICBjb2xvcjogIzJlMzY2ODtcbiAgZm9udC1zaXplOiAxMXB4O1xufVxuLmNhbGwtc3RhdHMtY2FyZCAuY2FsbC1zdGF0cy10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgY29sb3I6ICM0ODQ4NDg7XG59XG5cbi5jYWxsLXN0YXRzLWNhcmQxIHtcbiAgcGFkZGluZy10b3A6IDBweDtcbn1cblxuLmNhbGwtc3RhdHMtY2FyZC1ib3JkZXIxIHtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZCBzb2xpZCBub25lIHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLXJhZGl1czogMCU7XG4gIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4uY2FsbC1zdGF0cy1jYXJkLWJvcmRlcjIge1xuICBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIHNvbGlkIHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLXJhZGl1czogMCU7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBjb2xvcjogIzU0ODJCQztcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1NDgyQkM7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZS1sYWJlbC1jb250ZW50IHtcbiAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gIGZvbnQ6IFJlZ3VsYXIgMTRweCBSb2JvdG87XG4gIGxldHRlci1zcGFjaW5nOiAwcHg7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLnJlZnJlc2gtYnRuLm1hdC1idXR0b24ge1xuICBtaW4td2lkdGg6IGF1dG87XG59XG5cbi5yZWZyZXNoLWJ0biB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGNvbG9yOiAjZTY0MjQzO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTY0MjQzO1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWZsZXgge1xuICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgbGFiZWwubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBtYXJnaW4tdG9wOiA4cHggIWltcG9ydGFudDtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCBpbnB1dC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gIG1hcmdpbi10b3A6IDAuNmVtO1xuICBtYXJnaW4tbGVmdDogMTBweDtcbn1cblxuLnNlYXJjaC1pY29uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMTVweDtcbiAgdG9wOiAxNXB4O1xufVxuXG4uYmFja0NvbG9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RCAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5ib3gtc2l6ZSB7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICBtYXJnaW4tdG9wOiA3cHg7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbi5iYWNrQ29sb3IxIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU0ODJCQyAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5jYWxsLXN0YXRzLXZhbHVlIHtcbiAgbWFyZ2luLWxlZnQ6IDUwcHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbn1cblxuLmNhbGwtc3RhdHMtdmFsdWUxIHtcbiAgbWFyZ2luLWxlZnQ6IDMwcHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbn1cblxuLmluZm8tY2lyY2xlLXNpemUge1xuICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuLmZsZXgtc2V0IHtcbiAgbWFyZ2luLXRvcDogN3B4O1xuICBtYXJnaW4tbGVmdDogMzBweDtcbn1cblxuLmZsZXgtc2V0MSB7XG4gIG1hcmdpbi10b3A6IDdweDtcbiAgbWFyZ2luLWxlZnQ6IDU1cHg7XG59XG5cbi5kdWVEYXRlSWNvbiB7XG4gIGhlaWdodDogOXB4O1xuICB3aWR0aDogMTFweDtcbn1cblxuLmZpbHRlcjMge1xuICB3aWR0aDogMjAwcHg7XG4gIG1hcmdpbi1yaWdodDogMzBweDtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4ucGFnaW5hdG9yIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBoZWlnaHQ6IDE4cHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1ib3R0b206IDBweDtcbn0iXX0= */\"","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { ListCustData } from '../lost-customer/listCustData';\nimport { VisitListCustData } from '../lost-customer/visitListCustData';\nimport { ChangeDetectorRef } from '@angular/core';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { Router } from '@angular/router';\nimport { CommonService } from '../../core/service/common-service/common.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { MatDialog, MatPaginator, MatSort, MatSelect } from '@angular/material';\nimport { DatePipe } from '@angular/common';\nimport { FilterPipePipe } from '../../pipes/filter-pipe.pipe';\nimport { FormBuilder } from '@angular/forms';\n\n@Component({\n selector: 'app-lost-customer',\n templateUrl: './lost-customer.component.html',\n styleUrls: ['./lost-customer.component.scss'],\n providers: [FilterPipePipe]\n})\nexport class LostCustomerComponent implements OnInit {\n\n @ViewChild(MatSort, { static: true }) sort: MatSort;\n @ViewChild(MatPaginator,{static:false}) paginator: MatPaginator;\n @ViewChild('filterSelect', { static: true }) filterSelect: MatSelect;\n\n callsToBeMade: number = 0;\n visitCallsToBeMade: number = 0;\n pageSize: number;\n visitPageSize: number;\n callsMade: number = 0;\n visitCallsMade: number = 0;\n callToggleStatus: boolean = true;\n visitCallToggleStatus: boolean = true;\n displayedColumns: string[] = [\n 'customerName',\n 'callType',\n 'callStatus',\n 'leadGenerationDate',\n 'callTime',\n 'creInput',\n 'followUpTime',\n 'remarks'\n ];\n displayedVisitColumns: string[] = [\n 'customerName',\n 'callType',\n 'callStatus',\n 'leadGenerationDate',\n 'visitingDate',\n 'callTime',\n 'creInput',\n 'disengageReason',\n 'proposal',\n 'remarks'\n ];\n dataSource: any;\n visitDataSource: any;\n spinner: boolean;\n customersToBeCalled: string;\n callsMade1: string;\n visitCustomersToBeCalled: string;\n visitCallsMade1: string;\n filterMap = new Map();\n visitFilterMap = new Map();\n uniqueCallType = new Set();\n uniqueCallState = new Set();\n filteredDataSource: any;\n filteredVisitDataSource: any;\n callFlag: any;\n callStats: any = {};\n userId: string;\n selectedCallTypeValues: string[] = [];\n selectedCallStatusValues: string[] = [];\n callListType: any[] = [\n { value: 'Call List', viewValue: 'Call List' },\n { value: 'Visit Call List', viewValue: 'Visit Call List' }];\n selectedCallListType: any;\n showVisitList: boolean;\n\n constructor(private commonService: CommonService, private router: Router, public dialog: MatDialog,\n private toastr: ToastrService, private datePipe: DatePipe, private changeDetectorRefs: ChangeDetectorRef,\n private filterPipePipe: FilterPipePipe, private fb: FormBuilder) { }\n\n ngOnInit() {\n if (localStorage.getItem('userId') == null || localStorage.getItem('userId') == undefined) {\n this.router.navigate(['login']);\n }\n this.userId = localStorage.getItem('userId');\n\n if (localStorage.getItem('selectedCallListType') != null || localStorage.getItem('selectedCallListType') != undefined) {\n let selectedCallListType = JSON.parse(localStorage.getItem('selectedCallListType'));\n this.selectedCallListType = selectedCallListType;\n }\n\n if (localStorage.getItem('selectedCallTypeValues') != null || localStorage.getItem('selectedCallTypeValues') != undefined) {\n let selectedCallTypeValues = JSON.parse(localStorage.getItem('selectedCallTypeValues'));\n this.selectedCallTypeValues = selectedCallTypeValues;\n }\n\n if (localStorage.getItem('selectedCallStatusValues') != null || localStorage.getItem('selectedCallStatusValues') != undefined) {\n let selectedCallStatusValues = JSON.parse(localStorage.getItem('selectedCallStatusValues'));\n this.selectedCallStatusValues = selectedCallStatusValues;\n }\n\n // if (localStorage.getItem('callListPageSize') != null || localStorage.getItem('callListPageSize') != undefined) {\n // let pagesize = Number(localStorage.getItem('callListPageSize'));\n // this.pageSize = (pagesize && pagesize != NaN) ? pagesize : 50;\n // } else {\n // this.pageSize = 50;\n // }\n\n // if (localStorage.getItem('visitCallListPageSize') != null || localStorage.getItem('visitCallListPageSize') != undefined) {\n // let pagesize = Number(localStorage.getItem('visitCallListPageSize'));\n // this.visitPageSize = (pagesize && pagesize != NaN) ? pagesize : 50;\n // } else {\n // this.visitPageSize = 50;\n // }\n\n if (localStorage.getItem('workshops') == null || localStorage.getItem('workshops') == undefined) {\n this.getWorkshopDetails();\n }\n\n this.getCreStats();\n //console.log(\"selectedCallListType : \",this.selectedCallListType);\n this.getCallList();\n }\n\n /**\n * Name: setPageData\n * purpose: To set pagesize for table\n */\n \n\n /**\n * Name: setVisitPageData\n * purpose: To set pagesize for table\n */\n setVisitPageData(event) {\n let size = event.visitPageSize.toString();\n localStorage.setItem('visitCallListPageSize', size);\n }\n\n /**\n * Name: getWorkshopDetails\n * purpose: To get CRE assigned workshop details\n */\n getWorkshopDetails() {\n this.commonService.getWorkshopDetails(this.userId).subscribe(res => {\n if (res['responseCode'] == 0) {\n localStorage.setItem('workshops', JSON.stringify(res['responseData']));\n } else {\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: prepairCallList\n * purpose: To get calllist details\n * @param {string} flag - type of call\n */\n prepairCallList(flag: string): void {\n this.spinner = true;\n this.commonService.lostCustomerCallList(this.userId, flag)\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n if (flag == 'Y') {\n this.callFlag = flag;\n this.callToggleStatus = true;\n } else {\n this.callFlag = flag;\n this.callToggleStatus = false;\n }\n if (res['responseData'].length) {\n res['responseData'].forEach(data => {\n\n // if ((data.custType).toLowerCase() == \"lost\") {\n // let changeName = data.customerName.split(\" - L\")[0];\n // data.customerName = changeName;\n // }\n let inboundCustomer = data.customerName.includes(\"- I\");\n let stringPosition = data.customerName.length;\n let lostString = data.customerName[stringPosition - 3] + data.customerName[stringPosition - 2] + data.customerName[stringPosition - 1]\n if (inboundCustomer && lostString == \"- I\") {\n let changeName = data.customerName.split(\" - I\")[0];\n data.customerName = changeName;\n // data.isInboundCall = true;\n }\n });\n }\n this.callsToBeMade = res['responseData'].length;\n //init data table and shorting\n this.dataSource = new MatTableDataSource(res['responseData']);\n // this.sort.direction = '';\n this.dataSource.sort = this.sort;\n this.dataSource.sortingDataAccessor = (data, header) => data[header];\n this.dataSource.paginator = this.paginator;\n this.filterData();\n if ((!this.selectedCallTypeValues || this.selectedCallTypeValues.length == 0)\n && (!this.selectedCallStatusValues || this.selectedCallStatusValues.length == 0)) {\n //init filtered table and shorting\n this.filteredDataSource = new MatTableDataSource(res['responseData']);\n // this.sort.direction = '';\n this.filteredDataSource.sort = this.sort;\n this.filteredDataSource.sortingDataAccessor = (data, header) => data[header];\n this.filteredDataSource.paginator = this.paginator;\n }\n // this.callsMadeCalculate(res['responseData']);\n this.LostCallListinfo();\n this.spinner = false;\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n this.callToggleStatus = true;\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n this.callToggleStatus = true;\n });\n }\n\n /**\n * Name: getCallList\n * purpose: To get calllist details\n * @param {string} flag - type of call\n */\n getCallList() {\n if(this.selectedCallListType == 'Visit Call List') {\n this.selectedCallListType = 'Visit Call List';\n this.showVisitList = true;\n this.prepairVisitCallList('N');\n localStorage.setItem('selectedCallListType',JSON.stringify(this.selectedCallListType));\n } else {\n this.selectedCallListType = 'Call List';\n this.showVisitList = false;\n this.prepairCallList('Y');\n localStorage.setItem('selectedCallListType',JSON.stringify(this.selectedCallListType));\n }\n }\n\n /**\n * Name: prepairVisitCallList\n * purpose: To get visit calllist details\n * @param {string} flag - type of call\n */\n prepairVisitCallList(flag: string): void {\n this.spinner = true;\n // this.visitDataSource = '';\n // this.filteredVisitDataSource = '';\n this.commonService.lostCustomerVisitCallList(this.userId, flag).subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n if (flag == 'N') {\n this.callFlag = flag;\n this.visitCallToggleStatus = true;\n } else {\n this.callFlag = flag;\n this.visitCallToggleStatus = false;\n }\n this.visitCallsToBeMade = res['responseData'].length;\n //init data table and shorting\n this.visitDataSource = new MatTableDataSource(res['responseData']);\n // this.sort.direction = '';\n this.visitDataSource.sort = this.sort;\n this.visitDataSource.sortingDataAccessor = (data, header) => data[header];\n this.visitDataSource.paginator = this.paginator;\n this.filterData();\n if ((!this.selectedCallTypeValues || this.selectedCallTypeValues.length == 0)\n && (!this.selectedCallStatusValues || this.selectedCallStatusValues.length == 0)) {\n //init filtered table and shorting\n this.filteredVisitDataSource = new MatTableDataSource(res['responseData']);\n // this.sort.direction = '';\n this.filteredVisitDataSource.sort = this.sort;\n this.filteredVisitDataSource.sortingDataAccessor = (data, header) => data[header];\n this.filteredVisitDataSource.paginator = this.paginator;\n }\n // this.callsMadeCalculate(res['responseData']);\n this.VisitCallListinfo();\n this.spinner = false;\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n this.visitCallToggleStatus = true;\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n this.visitCallToggleStatus = true;\n });\n }\n\n // openVisit(){\n // localStorage.setItem('navOption','Visit')\n // this.router.navigate(['visiting-list']);\n // }\n\n /**\n * Name: callListinfo\n * purpose: To get call count info\n */\n LostCallListinfo(): void {\n this.spinner = true;\n this.commonService.lostCallListinfo(this.userId)\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n this.customersToBeCalled = res['responseData']['customersToBeCalled'];\n this.callsMade1 = res['responseData']['callsMade'];\n this.spinner = false;\n } else {\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: callListinfo\n * purpose: To get call count info\n */\n VisitCallListinfo(): void {\n //this.spinner = true;\n this.commonService.visitCallListinfo(this.userId)\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n this.visitCustomersToBeCalled = res['responseData']['customersToBeContacted'];\n this.visitCallsMade1 = res['responseData']['contactMade'];\n //this.spinner = false;\n } else {\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n //this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n //...\n });\n }\n\n /**\n * Name: getCreStats\n * purpose: To get call count info\n */\n getCreStats(): void {\n //this.spinner = true;\n this.commonService.getLostCreCallStats(this.userId)\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n //this.spinner = false;\n this.callStats = res['responseData'][0];\n } else {\n //this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n //this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: callsMadeCalculate\n * purpose: To get call made count\n * @param {Array} callsToBeMade - list of calls\n */\n callsMadeCalculate(callsToBeMade: any) {\n this.callsMade = 0;\n callsToBeMade.forEach(element => {\n let currentDate = \"\" + this.datePipe.transform(new Date(), \"yyyy-MM-dd\");\n let reqDate = this.datePipe.transform((element.callTime), \"yyyy-MM-dd\");\n if (currentDate == reqDate) {\n this.callsMade++;\n }\n });\n }\n\n /**\n * Name: selectCustomer\n * purpose: To select customer for details\n * @param {Object} row - selected customer details\n */\n selectCustomer(row: ListCustData): void {\n localStorage.setItem('customerId', row.customerId);\n // localStorage.setItem('custNotification', row.serviceType + \", \" + row.callStatusDesc);\n localStorage.setItem(\"customerData\", JSON.stringify(row));\n this.router.navigate(['lost-customer360']);\n }\n\n /**\n * Name: filterData\n * purpose: To filter call list data\n */\n filterData(): void {\n if(this.selectedCallListType == 'Call List') {\n this.dataSource.filteredData.forEach(element => {\n this.uniqueCallState.add(element.callStatus);\n this.uniqueCallType.add(element.callType);\n });\n } else {\n this.visitDataSource.filteredData.forEach(element => {\n this.uniqueCallState.add(element.callStatus);\n this.uniqueCallType.add(element.callType);\n });\n }\n\n if ((this.selectedCallTypeValues != null && this.selectedCallTypeValues.length != 0)\n || (this.selectedCallStatusValues != null && this.selectedCallStatusValues.length != 0)) {\n this.applyfilter();\n }\n }\n\n /**\n * Name: applyfilter\n * purpose: To apply filter on call list data\n */\n applyfilter(): void {\n let key = '';\n this.filterMap = new Map();\n this.visitFilterMap = new Map();\n if(this.selectedCallListType == 'Call List') {\n this.filteredDataSource = this.dataSource;\n } else {\n this.filteredVisitDataSource = this.visitDataSource\n }\n\n if (this.selectedCallTypeValues != null && this.selectedCallTypeValues.length != 0) {\n key = \"callType\";\n if(this.selectedCallListType == \"Call List\") {\n this.filterMap.set(key, this.selectedCallTypeValues);\n this.filteredDataSource = new MatTableDataSource(this.filterPipePipe.transform(this.filteredDataSource.filteredData, this.filterMap));\n } else {\n this.visitFilterMap.set(key, this.selectedCallTypeValues)\n this.filteredVisitDataSource = new MatTableDataSource(this.filterPipePipe.transform(this.filteredVisitDataSource.filteredData, this.visitFilterMap));\n }\n }\n\n if (this.selectedCallStatusValues != null && this.selectedCallStatusValues.length != 0) {\n key = \"callStatus\";\n if(this.selectedCallListType == \"Call List\") {\n this.filterMap.set(key, this.selectedCallStatusValues);\n this.filteredDataSource = new MatTableDataSource(this.filterPipePipe.transform(this.filteredDataSource.filteredData, this.filterMap));\n } else {\n this.visitFilterMap.set(key, this.selectedCallStatusValues);\n this.filteredVisitDataSource = new MatTableDataSource(this.filterPipePipe.transform(this.filteredVisitDataSource.filteredData, this.visitFilterMap));\n }\n }\n\n if(this.selectedCallListType == \"Call List\") {\n this.callsToBeMade = this.filteredDataSource.filteredData.length;\n // this.sort.direction = '';\n this.filteredDataSource.sort = this.sort;\n this.filteredDataSource.sortingDataAccessor = (data, header) => data[header];\n this.filteredDataSource.paginator = this.paginator;\n } else {\n this.visitCallsToBeMade = this.filteredVisitDataSource.filteredData.length;\n // this.sort.direction = '';\n this.filteredVisitDataSource.sort = this.sort;\n this.filteredVisitDataSource.sortingDataAccessor = (data, header) => data[header];\n this.filteredVisitDataSource.paginator = this.paginator;\n }\n\n\n localStorage.setItem('selectedCallTypeValues',JSON.stringify(this.selectedCallTypeValues));\n localStorage.setItem('selectedCallStatusValues',JSON.stringify(this.selectedCallStatusValues));\n localStorage.setItem('selectedCallListType',JSON.stringify(this.selectedCallListType));\n }\n\n /**\n * Name: searchfilter\n * purpose: To apply filter on call list data\n */\n searchfilter(filterValue: string): void {\n filterValue = filterValue.trim(); // Remove whitespace\n filterValue = filterValue.toLowerCase(); // Datasource defaults to lowercase matches\n if(this.selectedCallListType == \"Call List\") {\n this.filteredDataSource.filter = filterValue;\n } else {\n this.filteredVisitDataSource.filter = filterValue;\n }\n }\n\n /**\n * Name: clearFilter\n * purpose: To clear filter\n */\n clearFilter(): void {\n this.filterMap.clear();\n this.visitFilterMap.clear();\n this.selectedCallTypeValues = null;\n this.selectedCallStatusValues = null;\n if(this.selectedCallListType == \"Call List\") {\n this.filteredDataSource = new MatTableDataSource(this.filterPipePipe.transform(this.dataSource.filteredData, this.filterMap));\n this.callsToBeMade = this.filteredDataSource.filteredData.length;\n // this.sort.direction = '';\n this.filteredDataSource.sort = this.sort;\n this.filteredDataSource.sortingDataAccessor = (data, header) => data[header];\n this.filteredDataSource.paginator = this.paginator;\n } else {\n this.filteredVisitDataSource = new MatTableDataSource(this.filterPipePipe.transform(this.visitDataSource.filteredData, this.visitFilterMap));\n this.visitCallsToBeMade = this.filteredVisitDataSource.filteredData.length;\n // this.sort.direction = '';\n this.filteredVisitDataSource.sort = this.sort;\n this.filteredVisitDataSource.sortingDataAccessor = (data, header) => data[header];\n this.filteredVisitDataSource.paginator = this.paginator;\n }\n\n localStorage.removeItem('selectedCallTypeValues');\n localStorage.removeItem('selectedCallStatusValues');\n }\n\n /**\n * Name: changeColor\n * purpose: To change followup time color\n */\n changeColor(followUp: any): String {\n let currentTime = this.datePipe.transform(new Date(), \"yyyy-MM-dd HH:mm:ss \");\n\n if (followUp != null && followUp != undefined && followUp != \"\") {\n let followUpDateTime = this.datePipe.transform(followUp, \"yyyy-MM-dd HH:mm:ss\");\n if ((new Date(currentTime)).getTime() > (new Date(followUpDateTime).getTime())) {\n return \"red\";\n }\n }\n }\n\n /**\n * Name: activeButton\n * purpose: To activat apply button\n */\n activeButton(): boolean {\n let flag = false;\n if (this.selectedCallTypeValues != null && this.selectedCallTypeValues.length != 0) {\n flag = true;\n } else if (this.selectedCallStatusValues != null && this.selectedCallStatusValues.length != 0) {\n flag = true;\n }\n return flag;\n }\n\n}\n","export default \".working-area {\\n margin-bottom: 20px;\\n margin-left: 10px;\\n margin-top: 10px;\\n}\\n\\n.cust360-container {\\n margin: 115px 30px 30px 30px;\\n}\\n\\n.example-card1 {\\n display: block;\\n margin-left: auto;\\n margin-right: auto;\\n}\\n\\n.example-card1 .fontClass {\\n display: inline-block;\\n}\\n\\n.example-card1 .inlineClass {\\n display: inline-block;\\n}\\n\\n.example-card2 {\\n display: block;\\n margin-left: auto;\\n margin-right: auto;\\n border: none;\\n box-shadow: none;\\n padding: 0px;\\n}\\n\\n.history-card {\\n box-shadow: none;\\n padding: 0px;\\n}\\n\\n.fontClass {\\n font: Bold 12px/20px Roboto;\\n font-size: 12px;\\n color: #707070;\\n}\\n\\n.fontClassBold {\\n font-family: Bold 16px/22px Roboto;\\n color: #707070;\\n}\\n\\n.border {\\n border: 1px solid #707070;\\n font: 12px/18px Roboto;\\n color: #707070;\\n border-radius: 25px;\\n padding: 5px;\\n}\\n\\n.serv-heading {\\n width: 30%;\\n}\\n\\n.serv-desc {\\n width: 70%;\\n font-weight: 400;\\n}\\n\\n.serv-desc small {\\n margin-right: 10px;\\n float: right;\\n}\\n\\n.button {\\n text-align: center;\\n float: right;\\n font: Regular 16px/22px Roboto;\\n color: #ffffff;\\n border-radius: 0px;\\n}\\n\\n.recent {\\n color: #1acc04;\\n position: relative;\\n right: 15px;\\n font-size: 12px;\\n top: 0;\\n margin-bottom: 7px;\\n}\\n\\n.disabled {\\n opacity: 0.6;\\n}\\n\\n.buttonservice {\\n float: right;\\n font-family: Roboto;\\n color: #f1f1ff;\\n}\\n\\n.checkalign {\\n padding-left: 16px !important;\\n padding-top: 20px !important;\\n}\\n\\n.checkalignment {\\n padding-top: 20px !important;\\n}\\n\\n.inlineClass {\\n display: inline;\\n font: Regular 14px Roboto;\\n font-size: 12px;\\n letter-spacing: 0px;\\n color: black;\\n opacity: 1;\\n}\\n\\np.inlineClass {\\n margin-top: 0px;\\n margin-bottom: 5px;\\n}\\n\\n.marginClass {\\n margin-left: 20px;\\n}\\n\\n.marginClass1 {\\n margin-left: 40px;\\n}\\n\\n.navbar {\\n padding-left: 10px;\\n padding-top: 10px;\\n font-size: 12px;\\n}\\n\\n.navbar a {\\n cursor: pointer;\\n}\\n\\n.history-btn {\\n width: 100%;\\n height: 30px;\\n}\\n\\n.nobullet {\\n list-style-type: none;\\n margin-bottom: 10px;\\n}\\n\\n.play {\\n cursor: pointer;\\n margin-right: 5px;\\n}\\n\\n.colorStyle {\\n color: greenyellow;\\n}\\n\\n.callLogs {\\n display: block !important;\\n float: left;\\n}\\n\\n.custNotification {\\n display: inline;\\n}\\n\\n.example-radio-group {\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.example-radio-button {\\n margin: 5px;\\n}\\n\\n.update-btn {\\n background-color: #16377d;\\n color: #ffffff;\\n margin-left: 15px;\\n}\\n\\n.edit-btn {\\n margin-left: 5px;\\n color: #16377d;\\n background-color: #ffffff;\\n border: none;\\n cursor: pointer;\\n}\\n\\n.number-form ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 5px;\\n}\\n\\n.number-form ::ng-deep .mat-form-field-infix {\\n padding: 0.1375em 0;\\n}\\n\\n.number-form ::ng-deep .mat-form-field-underline {\\n bottom: 0.25em;\\n height: 0px;\\n}\\n\\n.number-form ::ng-deep input.mat-input-element {\\n margin-top: 0px;\\n}\\n\\n.number-form {\\n width: 100%;\\n position: relative;\\n}\\n\\n.number-row {\\n width: 100%;\\n position: relative;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-infix {\\n border: 1px solid lightgray;\\n border-radius: 5px;\\n background: white;\\n padding: 0;\\n height: 20px;\\n}\\n\\n.filter1 ::ng-deep .mat-select {\\n padding: 2px 0px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-trigger {\\n padding-left: 8px;\\n width: 100%;\\n font-size: 12px;\\n padding-bottom: 5px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-value {\\n width: 90%;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label-wrapper {\\n top: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-underline {\\n display: none;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label {\\n top: 0;\\n margin-top: 4px !important;\\n padding-left: 5px;\\n}\\n\\n.filter-label {\\n font: Bold 14px Roboto;\\n letter-spacing: 0px;\\n color: #3c3c3c;\\n opacity: 1;\\n margin-bottom: 5px;\\n font-size: 13px;\\n}\\n\\n.mat-expansion-panel-header-title {\\n font-weight: 500;\\n font-size: 13px;\\n font: Bold 14px/16px Roboto;\\n}\\n\\n.mat-expansion-panel-header-title i {\\n margin-right: 10px;\\n color: #00457D;\\n}\\n\\n.fontClass {\\n font: Bold 14px/16px Roboto;\\n letter-spacing: 0px;\\n font-size: 12px;\\n color: #7b7a7a;\\n opacity: 1;\\n margin-bottom: 3px !important;\\n}\\n\\n.fontClassBold {\\n font-family: Bold 16px/22px Roboto;\\n color: #000000;\\n font-size: 12px;\\n font-weight: 500;\\n}\\n\\n.fontClassBold i {\\n color: #00457D;\\n margin-right: 5px;\\n}\\n\\n.border {\\n border: 1px solid #707070;\\n font: 12px/18px Roboto;\\n color: #707070;\\n border-radius: 25px;\\n padding: 5px;\\n}\\n\\n.button {\\n text-align: center;\\n float: right;\\n font: Regular 16px/22px Roboto;\\n color: #ffffff;\\n}\\n\\n.buttonservice {\\n float: right;\\n font-family: Roboto;\\n color: #f1f1ff;\\n}\\n\\n.example-radio-group {\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.example-radio-button {\\n margin: 5px;\\n}\\n\\n.mat-dialog-content {\\n padding: 5px 24px;\\n}\\n\\n.contact {\\n width: 100% !important;\\n margin-top: 20px;\\n}\\n\\n.contact .mat-tab-group {\\n min-height: 150px;\\n}\\n\\n.contact ::ng-deep .mat-tab-label {\\n height: 20px;\\n min-width: 90px;\\n color: #5482BC;\\n border: 1px solid lightgray;\\n font-size: 11px;\\n}\\n\\n.contact ::ng-deep .mat-tab-label-active {\\n background-color: #5482BC;\\n color: #ffffff;\\n opacity: 1;\\n}\\n\\n.contact ::ng-deep .mat-tab-header {\\n border: none;\\n}\\n\\n.contact ::ng-deep .mat-tab-list .mat-ink-bar {\\n height: 0px;\\n}\\n\\n.tabrow {\\n width: 100% !important;\\n margin-top: 20px;\\n margin-bottom: 20px;\\n}\\n\\n.align {\\n padding-left: 16px;\\n padding-top: 20px;\\n}\\n\\n.tabrow ::ng-deep .mat-tab-label {\\n height: 35px;\\n padding: 0px 10px;\\n border-top-left-radius: 8px !important;\\n border-top-right-radius: 8px !important;\\n border-bottom-width: 1px;\\n border-color: #d3d3d3;\\n border-style: solid;\\n background-color: white;\\n margin-left: 3px;\\n color: black;\\n opacity: 1;\\n}\\n\\n.tabrow ::ng-deep .mat-tab-label-active {\\n background-color: #00457D;\\n color: #ffffff;\\n opacity: 1;\\n border-style: none;\\n}\\n\\n.tabrow ::ng-deep .mat-tab-header {\\n border: none;\\n}\\n\\n.tabrow ::ng-deep .mat-tab-list .mat-ink-bar {\\n height: 0px;\\n}\\n\\n.table {\\n font-family: \\\"Trebuchet MS\\\", Arial, Helvetica, sans-serif;\\n border-collapse: collapse;\\n width: 100%;\\n margin-top: 20px;\\n}\\n\\n.table td,\\n.table th {\\n border: 1px solid lightgray;\\n padding: 5px;\\n width: auto;\\n font-size: 12px;\\n}\\n\\n.table tr:nth-child(even) {\\n background-color: #ffffff;\\n}\\n\\n.table tr:hover {\\n background-color: #ffffff;\\n}\\n\\n.table th {\\n padding-top: 5px;\\n padding-bottom: 5px;\\n text-align: left;\\n background-color: #d3d3d3;\\n color: black;\\n}\\n\\n.fault-table td,\\n.fault-table th {\\n padding: 5px;\\n}\\n\\n.fault-table .fault-date {\\n width: 15% !important;\\n}\\n\\n.fault-table .fault-des {\\n width: 20% !important;\\n}\\n\\n.btn {\\n position: relative;\\n cursor: pointer;\\n overflow: hidden;\\n background-color: #00457D !important;\\n border-radius: 5px !important;\\n height: 25px;\\n}\\n\\n.btn p {\\n text-align: center;\\n text-transform: uppercase;\\n color: #fff;\\n position: relative;\\n z-index: 1;\\n transition: all 0.3s ease;\\n margin: auto;\\n font-size: 12px;\\n line-height: 10px;\\n}\\n\\n/* sliders */\\n\\n/* Left Slider */\\n\\n.btn-1 {\\n background-color: #ffffff !important;\\n color: #00457D !important;\\n border: 1px solid #00457D;\\n}\\n\\n.btn-1 p {\\n margin: auto;\\n}\\n\\ntable {\\n width: 100%;\\n}\\n\\n.rect2 {\\n padding: 15px;\\n height: 130px;\\n width: 93%;\\n background: #eaeaea;\\n}\\n\\n.rect3 {\\n padding-top: 15px;\\n padding-right: 15px;\\n padding-left: 15px;\\n padding-bottom: 0px;\\n height: 66px;\\n width: 93%;\\n background: #ffffff;\\n}\\n\\n.rect3 .button {\\n float: right;\\n margin-right: 8px;\\n margin-top: 5px;\\n}\\n\\n.rect4 {\\n float: left;\\n width: 93%;\\n margin-left: 10px;\\n font-size: 14px;\\n padding-bottom: 0px;\\n}\\n\\n.ngx-timepicker-field-example {\\n float: left;\\n margin-top: 15px;\\n}\\n\\n.rect5 {\\n float: left;\\n width: 50%;\\n}\\n\\n.text-pp {\\n width: 100%;\\n}\\n\\n.call-popup-save {\\n float: right;\\n margin-right: 20px;\\n margin-bottom: 10px;\\n}\\n\\n.icons .fa-phone {\\n transform: rotate(135deg);\\n}\\n\\n.icons .fa-microphone-slash,\\n.icons .fa-phone {\\n font-size: 24px;\\n}\\n\\n.icons .button {\\n margin: 5px;\\n}\\n\\n.icons {\\n margin-top: 25px;\\n padding-left: 29%;\\n}\\n\\n.hang-btn {\\n color: red !important;\\n border-color: red !important;\\n}\\n\\n.classtext1 {\\n font-weight: bold;\\n}\\n\\n.dataview {\\n margin-left: 15px;\\n}\\n\\n.timestamp {\\n font-size: 11px;\\n margin-left: 10px;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-group {\\n border-radius: 0px;\\n margin-bottom: 10px;\\n width: 55%;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle {\\n background-color: #ffffff;\\n color: #00457D;\\n font-size: 12px;\\n width: 50%;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-checked {\\n background-color: #00457D;\\n color: #ffffff;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-label-content {\\n line-height: 22px;\\n}\\n\\n.history-card .applyHorizontalScroll {\\n margin-bottom: 0px;\\n}\\n\\n.history-card ::ng-deep mat-paginator {\\n position: absolute;\\n right: 0;\\n left: 0;\\n}\\n\\n.history-card ::ng-deep .mat-form-field-infix {\\n height: 15px;\\n}\\n\\n.history-card ::ng-deep .mat-card-content {\\n padding-bottom: 40px;\\n}\\n\\n.recording-dailog {\\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n background-color: #ffffff;\\n position: absolute;\\n top: 50%;\\n right: 15%;\\n}\\n\\n.call-response {\\n position: fixed;\\n width: 35%;\\n top: 23%;\\n right: 50px;\\n}\\n\\n.call-stats-card-border1 {\\n border-style: solid solid solid solid;\\n border-width: 1px;\\n border-radius: 0%;\\n border-color: lightgray;\\n}\\n\\n.table-border.mat-table {\\n border-style: none solid solid none;\\n border-color: lightgray;\\n}\\n\\n.icon-background {\\n color: #00457D !important;\\n height: 13px !important;\\n width: 13px !important;\\n}\\n\\n.edit-icon {\\n cursor: pointer;\\n color: #00457D;\\n position: absolute;\\n right: 5px;\\n font-size: 12px;\\n top: 20%;\\n cursor: pointer;\\n}\\n\\n.check-icon {\\n cursor: pointer;\\n color: #1acc04;\\n position: absolute;\\n right: 5px;\\n font-size: 12px;\\n top: 20%;\\n margin-right: 18px;\\n margin-bottom: 5px !important;\\n}\\n\\n.cancle-icon {\\n cursor: pointer;\\n color: red;\\n position: absolute;\\n right: 5px;\\n font-size: 12px;\\n top: 20%;\\n margin-bottom: 5px;\\n margin-left: 35px;\\n}\\n\\n.number-form ::ng-deep .mat-form-field-ripple {\\n height: 0px !important;\\n}\\n\\n.strate-line {\\n position: absolute;\\n right: 5px;\\n font-size: 12px;\\n top: 50%;\\n}\\n\\n.input-border {\\n border: 1px solid lightgray;\\n border-radius: 3px;\\n width: 75% !important;\\n height: 25px;\\n padding-left: 5px;\\n margin-left: 5px;\\n}\\n\\n.input-border-d {\\n border: 1px solid lightgray;\\n border-radius: 3px;\\n width: 70% !important;\\n height: 25px;\\n padding-left: 5px;\\n margin-left: 5px;\\n}\\n\\n.calling-table.mat-table .mat-cell {\\n font-size: 11px;\\n letter-spacing: 0px;\\n color: black;\\n text-transform: capitalize;\\n opacity: 1;\\n}\\n\\ntd.mat-cell,\\ntd.mat-footer-cell,\\nth.mat-header-cell {\\n font-size: 12px;\\n padding: 5px;\\n border-style: solid none none solid;\\n border-width: 0.1px;\\n border-color: lightgray;\\n}\\n\\n.table-font.th {\\n color: black;\\n}\\n\\n.table-font.td {\\n color: #595959;\\n}\\n\\n.srvHistryHeader1 {\\n font-weight: bold;\\n font-size: 12px;\\n}\\n\\n.tech-camp ::ng-deep .mat-tab-body-wrapper {\\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n}\\n\\n.tech-camp ::ng-deep .mat-card-content {\\n margin-bottom: 0px;\\n}\\n\\n.paginator ::ng-deep .mat-form-field-infix {\\n height: 18px !important;\\n padding-bottom: 0px;\\n}\\n\\n.cus360Td {\\n font-size: 11px;\\n font-family: poppins;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9jb21wb25lbnQvbG9zdC1jdXN0b21lcjM2MC9sb3N0LWN1c3RvbWVyMzYwLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnQvbG9zdC1jdXN0b21lcjM2MC9sb3N0LWN1c3RvbWVyMzYwLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksbUJBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBO0FDQ0o7O0FERUE7RUFDSSw0QkFBQTtBQ0NKOztBREdBO0VBQ0ksY0FBQTtFQUNBLGlCQUFBO0VBQ0Esa0JBQUE7QUNBSjs7QURHQTtFQUNJLHFCQUFBO0FDQUo7O0FER0E7RUFDSSxxQkFBQTtBQ0FKOztBREdBO0VBQ0ksY0FBQTtFQUNBLGlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSxZQUFBO0FDQUo7O0FER0E7RUFDSSxnQkFBQTtFQUNBLFlBQUE7QUNBSjs7QURHQTtFQUNJLDJCQUFBO0VBQ0EsZUFBQTtFQUNBLGNBQUE7QUNBSjs7QURHQTtFQUNJLGtDQUFBO0VBQ0EsY0FBQTtBQ0FKOztBREdBO0VBQ0kseUJBQUE7RUFDQSxzQkFBQTtFQUNBLGNBQUE7RUFDQSxtQkFBQTtFQUNBLFlBQUE7QUNBSjs7QURHQTtFQUNJLFVBQUE7QUNBSjs7QURHQTtFQUNJLFVBQUE7RUFDQSxnQkFBQTtBQ0FKOztBRENJO0VBQ0ksa0JBQUE7RUFDQSxZQUFBO0FDQ1I7O0FER0E7RUFDSSxrQkFBQTtFQUNBLFlBQUE7RUFDQSw4QkFBQTtFQUNBLGNBQUE7RUFDQSxrQkFBQTtBQ0FKOztBREdBO0VBQ0ksY0FBQTtFQUNBLGtCQUFBO0VBQ0EsV0FBQTtFQUNBLGVBQUE7RUFDQSxNQUFBO0VBQ0Esa0JBQUE7QUNBSjs7QURHQTtFQUNJLFlBQUE7QUNBSjs7QURHQTtFQUNJLFlBQUE7RUFDQSxtQkFBQTtFQUNBLGNBQUE7QUNBSjs7QURHQTtFQUNJLDZCQUFBO0VBQ0Es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QTtBQzVDSjs7QUQrQ0E7RUFDSSwrR0FBQTtBQzVDSjs7QUQrQ0E7RUFDSSxrQkFBQTtBQzVDSjs7QUQrQ0E7RUFDSSx1QkFBQTtFQUNBLG1CQUFBO0FDNUNKOztBRCtDQTtFQUNJLGVBQUE7RUFDQSxvQkFBQTtBQzVDSiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudC9sb3N0LWN1c3RvbWVyMzYwL2xvc3QtY3VzdG9tZXIzNjAuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIud29ya2luZy1hcmVhIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG59XG5cbi5jdXN0MzYwLWNvbnRhaW5lciB7XG4gICAgbWFyZ2luOiAxMTVweCAzMHB4IDMwcHggMzBweDtcbiAgICAvL21hcmdpbi1sZWZ0OiAzMHB4O1xufVxuXG4uZXhhbXBsZS1jYXJkMSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4uZXhhbXBsZS1jYXJkMSAuZm9udENsYXNzIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5leGFtcGxlLWNhcmQxIC5pbmxpbmVDbGFzcyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uZXhhbXBsZS1jYXJkMiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIHBhZGRpbmc6IDBweDtcbn1cblxuLmhpc3RvcnktY2FyZCB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBwYWRkaW5nOiAwcHg7XG59XG5cbi5mb250Q2xhc3Mge1xuICAgIGZvbnQ6IEJvbGQgMTJweC8yMHB4IFJvYm90bztcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6ICM3MDcwNzA7XG59XG5cbi5mb250Q2xhc3NCb2xkIHtcbiAgICBmb250LWZhbWlseTogQm9sZCAxNnB4LzIycHggUm9ib3RvO1xuICAgIGNvbG9yOiAjNzA3MDcwO1xufVxuXG4uYm9yZGVyIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjNzA3MDcwO1xuICAgIGZvbnQ6IDEycHgvMThweCBSb2JvdG87XG4gICAgY29sb3I6ICM3MDcwNzA7XG4gICAgYm9yZGVyLXJhZGl1czogMjVweDtcbiAgICBwYWRkaW5nOiA1cHg7XG59XG5cbi5zZXJ2LWhlYWRpbmcge1xuICAgIHdpZHRoOiAzMCU7XG59XG5cbi5zZXJ2LWRlc2Mge1xuICAgIHdpZHRoOiA3MCU7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBzbWFsbCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbn1cblxuLmJ1dHRvbiB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBmb250OiBSZWd1bGFyIDE2cHgvMjJweCBSb2JvdG87XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4O1xufVxuXG4ucmVjZW50IHtcbiAgICBjb2xvcjogIzFhY2MwNDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcmlnaHQ6IDE1cHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiA3cHg7XG59XG5cbi5kaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogMC42O1xufVxuXG4uYnV0dG9uc2VydmljZSB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGZvbnQtZmFtaWx5OiBSb2JvdG87XG4gICAgY29sb3I6ICNmMWYxZmY7XG59XG5cbi5jaGVja2FsaWduIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDE2cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXRvcDogMjBweCAhaW1wb3J0YW50O1xufVxuXG4uY2hlY2thbGlnbm1lbnQge1xuICAgIHBhZGRpbmctdG9wOiAyMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5pbmxpbmVDbGFzcyB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIGZvbnQ6IFJlZ3VsYXIgMTRweCBSb2JvdG87XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gICAgY29sb3I6IGJsYWNrO1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbnAuaW5saW5lQ2xhc3Mge1xuICAgIG1hcmdpbi10b3A6IDBweDtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG5cbi5tYXJnaW5DbGFzcyB7XG4gICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG59XG5cbi5tYXJnaW5DbGFzczEge1xuICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xufVxuXG4ubmF2YmFyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgLy9mb250LXdlaWdodDogYm9sZDtcbiAgICBmb250LXNpemU6IDEycHg7XG59XG5cbi5uYXZiYXIgYSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uaGlzdG9yeS1idG4ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMzBweDtcbn1cblxuLm5vYnVsbGV0IHtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLnBsYXkge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cblxuLmNvbG9yU3R5bGUge1xuICAgIGNvbG9yOiBncmVlbnllbGxvdztcbn1cblxuLmNhbGxMb2dzIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIGZsb2F0OiBsZWZ0O1xufVxuXG4uY3VzdE5vdGlmaWNhdGlvbiB7XG4gICAgZGlzcGxheTogaW5saW5lO1xufVxuXG4uZXhhbXBsZS1yYWRpby1ncm91cCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4uZXhhbXBsZS1yYWRpby1idXR0b24ge1xuICAgIG1hcmdpbjogNXB4O1xufVxuXG4udXBkYXRlLWJ0biB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzE2Mzc3ZDtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBtYXJnaW4tbGVmdDogMTVweDtcbn1cblxuLmVkaXQtYnRuIHtcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgIGNvbG9yOiAjMTYzNzdkO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm51bWJlci1mb3JtIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gICAgcGFkZGluZy1ib3R0b206IDVweDtcbn1cblxuLm51bWJlci1mb3JtIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgIHBhZGRpbmc6IDAuMTM3NWVtIDA7XG4gICAgLy9ib3JkZXI6IHNvbGlkO1xufVxuXG4ubnVtYmVyLWZvcm0gOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgIGJvdHRvbTogMC4yNWVtO1xuICAgIGhlaWdodDogMHB4O1xufVxuXG4ubnVtYmVyLWZvcm0gOjpuZy1kZWVwIGlucHV0Lm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgICBtYXJnaW4tdG9wOiAwcHg7XG59XG5cbi5udW1iZXItZm9ybSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ubnVtYmVyLXJvdyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vL2N1c3RvbSBtYXQtc2VsZWN0XG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIC8vZm9udC1zaXplOiAxMnB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3Qge1xuICAgIHBhZGRpbmc6IDJweCAwcHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgcGFkZGluZy1ib3R0b206IDVweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgICB3aWR0aDogOTAlO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIge1xuICAgIHRvcDogMDtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIHRvcDogMDtcbiAgICBtYXJnaW4tdG9wOiA0cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbn1cblxuLmZpbHRlci1sYWJlbCB7XG4gICAgZm9udDogQm9sZCAxNHB4IFJvYm90bztcbiAgICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICAgIGNvbG9yOiAjM2MzYzNjO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbn1cblxuLy9jdXN0bWVyMzYwIHZpZSB1cGRhdGUgY3NzXG4ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQ6IEJvbGQgMTRweC8xNnB4IFJvYm90bztcbiAgICBpIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgICAgICBjb2xvcjogIzAwNDU3RDtcbiAgICB9XG59XG5cbi5mb250Q2xhc3Mge1xuICAgIGZvbnQ6IEJvbGQgMTRweC8xNnB4IFJvYm90bztcbiAgICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogIzdiN2E3YTtcbiAgICBvcGFjaXR5OiAxO1xuICAgIG1hcmdpbi1ib3R0b206IDNweCAhaW1wb3J0YW50O1xufVxuXG4uZm9udENsYXNzQm9sZCB7XG4gICAgZm9udC1mYW1pbHk6IEJvbGQgMTZweC8yMnB4IFJvYm90bztcbiAgICBjb2xvcjogIzAwMDAwMDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBpIHtcbiAgICAgICAgY29sb3I6ICMwMDQ1N0Q7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIH1cbn1cblxuLmJvcmRlciB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzcwNzA3MDtcbiAgICBmb250OiAxMnB4LzE4cHggUm9ib3RvO1xuICAgIGNvbG9yOiAjNzA3MDcwO1xuICAgIGJvcmRlci1yYWRpdXM6IDI1cHg7XG4gICAgcGFkZGluZzogNXB4O1xufVxuXG4uYnV0dG9uIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGZvbnQ6IFJlZ3VsYXIgMTZweC8yMnB4IFJvYm90bztcbiAgICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLmJ1dHRvbnNlcnZpY2Uge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBmb250LWZhbWlseTogUm9ib3RvO1xuICAgIGNvbG9yOiAjZjFmMWZmO1xufVxuXG4uZXhhbXBsZS1yYWRpby1ncm91cCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4uZXhhbXBsZS1yYWRpby1idXR0b24ge1xuICAgIG1hcmdpbjogNXB4O1xufVxuXG4ubWF0LWRpYWxvZy1jb250ZW50IHtcbiAgICBwYWRkaW5nOiA1cHggMjRweDtcbn1cblxuLmNvbnRhY3Qge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbn1cblxuLmNvbnRhY3QgLm1hdC10YWItZ3JvdXAge1xuICAgIG1pbi1oZWlnaHQ6IDE1MHB4O1xufVxuXG4uY29udGFjdCA6Om5nLWRlZXAgLm1hdC10YWItbGFiZWwge1xuICAgIGhlaWdodDogMjBweDtcbiAgICAvL3BhZGRpbmc6IDBweCAxMHB4O1xuICAgIG1pbi13aWR0aDogOTBweDtcbiAgICBjb2xvcjogIzU0ODJCQztcbiAgICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gICAgZm9udC1zaXplOiAxMXB4O1xufVxuXG4uY29udGFjdCA6Om5nLWRlZXAgLm1hdC10YWItbGFiZWwtYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTQ4MkJDO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi5jb250YWN0IDo6bmctZGVlcCAubWF0LXRhYi1oZWFkZXIge1xuICAgIGJvcmRlcjogbm9uZTtcbn1cblxuLmNvbnRhY3QgOjpuZy1kZWVwIC5tYXQtdGFiLWxpc3QgLm1hdC1pbmstYmFyIHtcbiAgICBoZWlnaHQ6IDBweDtcbn1cblxuLnRhYnJvdyB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cbi5hbGlnbiB7XG4gICAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICAgIHBhZGRpbmctdG9wOiAyMHB4O1xufVxuXG4udGFicm93IDo6bmctZGVlcCAubWF0LXRhYi1sYWJlbCB7XG4gICAgaGVpZ2h0OiAzNXB4O1xuICAgIHBhZGRpbmc6IDBweCAxMHB4O1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDhweCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA4cHggIWltcG9ydGFudDtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7XG4gICAgYm9yZGVyLWNvbG9yOiAjZDNkM2QzO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgbWFyZ2luLWxlZnQ6IDNweDtcbiAgICBjb2xvcjogYmxhY2s7XG4gICAgb3BhY2l0eTogMTtcbiAgICAvLyBmb250LXNpemU6IDEzcHggIWltcG9ydGFudDs7XG59XG5cbi50YWJyb3cgOjpuZy1kZWVwIC5tYXQtdGFiLWxhYmVsLWFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RDtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBvcGFjaXR5OiAxO1xuICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbn1cblxuLnRhYnJvdyA6Om5nLWRlZXAgLm1hdC10YWItaGVhZGVyIHtcbiAgICBib3JkZXI6IG5vbmU7XG59XG5cbi50YWJyb3cgOjpuZy1kZWVwIC5tYXQtdGFiLWxpc3QgLm1hdC1pbmstYmFyIHtcbiAgICBoZWlnaHQ6IDBweDtcbn1cblxuLy90YWJsZVxuLnRhYmxlIHtcbiAgICBmb250LWZhbWlseTogXCJUcmVidWNoZXQgTVNcIiwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG59XG5cbi50YWJsZSB0ZCxcbi50YWJsZSB0aCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICB3aWR0aDogYXV0bztcbiAgICBmb250LXNpemU6IDEycHg7XG59XG5cbi50YWJsZSB0cjpudGgtY2hpbGQoZXZlbikge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG5cbi50YWJsZSB0cjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbn1cblxuLnRhYmxlIHRoIHtcbiAgICBwYWRkaW5nLXRvcDogNXB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDNkM2QzO1xuICAgIGNvbG9yOiBibGFjaztcbn1cblxuLy9mYXVsdCB0YWJsZVxuLmZhdWx0LXRhYmxlIHRkLFxuLmZhdWx0LXRhYmxlIHRoIHtcbiAgICBwYWRkaW5nOiA1cHg7XG59XG5cbi5mYXVsdC10YWJsZSB7XG4gICAgLmZhdWx0LWRhdGUge1xuICAgICAgICB3aWR0aDogMTUlICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIC5mYXVsdC1kZXMge1xuICAgICAgICB3aWR0aDogMjAlICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4vL3NsaWRpbmcgYnRuXG4uYnRuIHtcbiAgICAvL2JvcmRlci1sZWZ0OiA0cHggc29saWQgIzJlMzY2ODtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIC8vdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0QgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiA1cHggIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDI1cHg7XG59XG5cbi5idG4gcCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxMHB4O1xufVxuXG5cbi8qIHNsaWRlcnMgKi9cblxuLy8gLmJ0bjpiZWZvcmUge1xuLy8gICAgIGNvbnRlbnQ6IFwiXCI7XG4vLyAgICAgd2lkdGg6IDEwMCU7XG4vLyAgICAgaGVpZ2h0OiAxMDAlO1xuLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0Q7XG4vLyAgICAgY29sb3I6ICNmZmY7XG4vLyAgICAgLy9ib3JkZXI6IDJweCBzb2xpZCAjMkUzNjY4O1xuLy8gICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuLy8gfVxuXG4vKiBMZWZ0IFNsaWRlciAqL1xuXG4vLyAuYnRuLTI6YmVmb3JlIHtcbi8vICAgICB0b3A6IDA7XG4vLyAgICAgbGVmdDogLTIzMHB4O1xuLy8gfVxuLy8gLmJ0bi0yOmhvdmVyOmJlZm9yZSB7XG4vLyAgICAgbGVmdDogMDtcbi8vIH1cbi8vIC5idG4tMjpob3ZlciB7XG4vLyAgICAgY29sb3I6ICNmZmY7XG4vLyAgICAgLy9ib3JkZXI6IDJweCBzb2xpZCAjMkUzNjY4O1xuLy8gfVxuLmJ0bi0xIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICMwMDQ1N0QgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMDA0NTdEO1xufVxuXG4uYnRuLTEgcCB7XG4gICAgbWFyZ2luOiBhdXRvO1xufVxuXG4vL2NhbGwgZGlhbG9nIGNzc1xudGFibGUge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4ucmVjdDIge1xuICAgIHBhZGRpbmc6IDE1cHg7XG4gICAgaGVpZ2h0OiAxMzBweDtcbiAgICB3aWR0aDogOTMlO1xuICAgIGJhY2tncm91bmQ6ICNlYWVhZWE7XG59XG5cbi5yZWN0MyB7XG4gICAgcGFkZGluZy10b3A6IDE1cHg7XG4gICAgcGFkZGluZy1yaWdodDogMTVweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDBweDtcbiAgICBoZWlnaHQ6IDY2cHg7XG4gICAgd2lkdGg6IDkzJTtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xufVxuXG4ucmVjdDMgLmJ1dHRvbiB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIG1hcmdpbi10b3A6IDVweDtcbn1cblxuLnJlY3Q0IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogOTMlO1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMHB4O1xufVxuXG4ubmd4LXRpbWVwaWNrZXItZmllbGQtZXhhbXBsZSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXRvcDogMTVweDtcbn1cblxuLnJlY3Q1IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogNTAlO1xufVxuXG4udGV4dC1wcCB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5jYWxsLXBvcHVwLXNhdmUge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLmljb25zIC5mYS1waG9uZSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKTtcbn1cblxuLmljb25zIC5mYS1taWNyb3Bob25lLXNsYXNoLFxuLmljb25zIC5mYS1waG9uZSB7XG4gICAgZm9udC1zaXplOiAyNHB4O1xufVxuXG4uaWNvbnMgLmJ1dHRvbiB7XG4gICAgbWFyZ2luOiA1cHg7XG59XG5cbi5pY29ucyB7XG4gICAgbWFyZ2luLXRvcDogMjVweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDI5JTtcbn1cblxuLmhhbmctYnRuIHtcbiAgICBjb2xvcjogcmVkICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiByZWQgIWltcG9ydGFudDtcbn1cblxuLmNsYXNzdGV4dDEge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uZGF0YXZpZXcge1xuICAgIG1hcmdpbi1sZWZ0OiAxNXB4O1xufVxuXG4udGltZXN0YW1wIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIHtcbiAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICB3aWR0aDogNTUlO1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBjb2xvcjogIzAwNDU3RDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgd2lkdGg6IDUwJTtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RDtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtbGFiZWwtY29udGVudCB7XG4gICAgbGluZS1oZWlnaHQ6IDIycHg7XG59XG5cbi5oaXN0b3J5LWNhcmQgLmFwcGx5SG9yaXpvbnRhbFNjcm9sbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xufVxuXG4uaGlzdG9yeS1jYXJkIDo6bmctZGVlcCBtYXQtcGFnaW5hdG9yIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDA7XG4gICAgbGVmdDogMDtcbn1cblxuLmhpc3RvcnktY2FyZCA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICBoZWlnaHQ6IDE1cHg7XG59XG5cbi5oaXN0b3J5LWNhcmQgOjpuZy1kZWVwIC5tYXQtY2FyZC1jb250ZW50IHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNDBweDtcbn1cblxuLy9yZWNvcmRpbmcgZGFpbG9nXG4ucmVjb3JkaW5nLWRhaWxvZyB7XG4gICAgYm94LXNoYWRvdzogMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIHJpZ2h0OiAxNSU7XG59XG5cbi8vY2FsbGluZyBkYWlsb2dcbi5jYWxsLXJlc3BvbnNlIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgd2lkdGg6IDM1JTtcbiAgICB0b3A6IDIzJTtcbiAgICByaWdodDogNTBweDtcbn1cblxuLmNhbGwtc3RhdHMtY2FyZC1ib3JkZXIxIHtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIHNvbGlkIHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDAlO1xuICAgIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4udGFibGUtYm9yZGVyLm1hdC10YWJsZSB7XG4gICAgYm9yZGVyLXN0eWxlOiBub25lIHNvbGlkIHNvbGlkIG5vbmU7XG4gICAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG59XG5cbi5pY29uLWJhY2tncm91bmQge1xuICAgIGNvbG9yOiAjMDA0NTdEICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAxM3B4ICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDEzcHggIWltcG9ydGFudDtcbn1cblxuLmVkaXQtaWNvbiB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGNvbG9yOiAjMDA0NTdEO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogNXB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICB0b3A6IDIwJTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5jaGVjay1pY29uIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY29sb3I6ICMxYWNjMDQ7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiA1cHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHRvcDogMjAlO1xuICAgIG1hcmdpbi1yaWdodDogMThweDtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHggIWltcG9ydGFudDtcbiAgICAvL2JvcmRlcjogbm9uZSBzb2xpZCBub25lIG5vbmUgIWltcG9ydGFudDtcbiAgICAvL2JvcmRlci1jb2xvcjogYmxhY2s7XG59XG5cbi5jYW5jbGUtaWNvbiB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGNvbG9yOiByZWQ7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiA1cHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHRvcDogMjAlO1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICBtYXJnaW4tbGVmdDogMzVweDtcbn1cblxuLm51bWJlci1mb3JtIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgICBoZWlnaHQ6IDBweCAhaW1wb3J0YW50O1xufVxuXG4uc3RyYXRlLWxpbmUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogNXB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICB0b3A6IDUwJTtcbn1cblxuLmlucHV0LWJvcmRlciB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICB3aWR0aDogNzUlICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAyNXB4O1xuICAgIHBhZGRpbmctbGVmdDogNXB4O1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG59XG5cbi5pbnB1dC1ib3JkZXItZCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICB3aWR0aDogNzAlICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAyNXB4O1xuICAgIHBhZGRpbmctbGVmdDogNXB4O1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG59XG5cbi5jYWxsaW5nLXRhYmxlLm1hdC10YWJsZSAubWF0LWNlbGwge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICAgIGNvbG9yOiBibGFjaztcbiAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgICBvcGFjaXR5OiAxO1xufVxuXG50ZC5tYXQtY2VsbCxcbnRkLm1hdC1mb290ZXItY2VsbCxcbnRoLm1hdC1oZWFkZXItY2VsbCB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkIG5vbmUgbm9uZSBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDAuMXB4O1xuICAgIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4udGFibGUtZm9udC50aCB7XG4gICAgY29sb3I6IGJsYWNrO1xufVxuXG4udGFibGUtZm9udC50ZCB7XG4gICAgY29sb3I6ICM1OTU5NTk7XG59XG5cbi5zcnZIaXN0cnlIZWFkZXIxIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBmb250LXNpemU6IDEycHg7XG59XG5cbi50ZWNoLWNhbXAgOjpuZy1kZWVwIC5tYXQtdGFiLWJvZHktd3JhcHBlciB7XG4gICAgYm94LXNoYWRvdzogMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAuMiksIDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgLjE0KSwgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAuMTIpO1xufVxuXG4udGVjaC1jYW1wIDo6bmctZGVlcCAubWF0LWNhcmQtY29udGVudCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xufVxuXG4ucGFnaW5hdG9yIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgIGhlaWdodDogMThweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAwcHg7XG59XG5cbi5jdXMzNjBUZHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC1mYW1pbHk6IHBvcHBpbnM7XG59XG4iLCIud29ya2luZy1hcmVhIHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG59XG5cbi5jdXN0MzYwLWNvbnRhaW5lciB7XG4gIG1hcmdpbjogMTE1cHggMzBweCAzMHB4IDMwcHg7XG59XG5cbi5leGFtcGxlLWNhcmQxIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbi5leGFtcGxlLWNhcmQxIC5mb250Q2xhc3Mge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5leGFtcGxlLWNhcmQxIC5pbmxpbmVDbGFzcyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLmV4YW1wbGUtY2FyZDIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xuICBwYWRkaW5nOiAwcHg7XG59XG5cbi5oaXN0b3J5LWNhcmQge1xuICBib3gtc2hhZG93OiBub25lO1xuICBwYWRkaW5nOiAwcHg7XG59XG5cbi5mb250Q2xhc3Mge1xuICBmb250OiBCb2xkIDEycHgvMjBweCBSb2JvdG87XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICM3MDcwNzA7XG59XG5cbi5mb250Q2xhc3NCb2xkIHtcbiAgZm9udC1mYW1pbHk6IEJvbGQgMTZweC8yMnB4IFJvYm90bztcbiAgY29sb3I6ICM3MDcwNzA7XG59XG5cbi5ib3JkZXIge1xuICBib3JkZXI6IDFweCBzb2xpZCAjNzA3MDcwO1xuICBmb250OiAxMnB4LzE4cHggUm9ib3RvO1xuICBjb2xvcjogIzcwNzA3MDtcbiAgYm9yZGVyLXJhZGl1czogMjVweDtcbiAgcGFkZGluZzogNXB4O1xufVxuXG4uc2Vydi1oZWFkaW5nIHtcbiAgd2lkdGg6IDMwJTtcbn1cblxuLnNlcnYtZGVzYyB7XG4gIHdpZHRoOiA3MCU7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG4uc2Vydi1kZXNjIHNtYWxsIHtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbi5idXR0b24ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZsb2F0OiByaWdodDtcbiAgZm9udDogUmVndWxhciAxNnB4LzIycHggUm9ib3RvO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xufVxuXG4ucmVjZW50IHtcbiAgY29sb3I6ICMxYWNjMDQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcmlnaHQ6IDE1cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiA3cHg7XG59XG5cbi5kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNjtcbn1cblxuLmJ1dHRvbnNlcnZpY2Uge1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG87XG4gIGNvbG9yOiAjZjFmMWZmO1xufVxuXG4uY2hlY2thbGlnbiB7XG4gIHBhZGRpbmctbGVmdDogMTZweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXRvcDogMjBweCAhaW1wb3J0YW50O1xufVxuXG4uY2hlY2thbGlnbm1lbnQge1xuICBwYWRkaW5nLXRvcDogMjBweCAhaW1wb3J0YW50O1xufVxuXG4uaW5saW5lQ2xhc3Mge1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIGZvbnQ6IFJlZ3VsYXIgMTRweCBSb2JvdG87XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgY29sb3I6IGJsYWNrO1xuICBvcGFjaXR5OiAxO1xufVxuXG5wLmlubGluZUNsYXNzIHtcbiAgbWFyZ2luLXRvcDogMHB4O1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG5cbi5tYXJnaW5DbGFzcyB7XG4gIG1hcmdpbi1sZWZ0OiAyMHB4O1xufVxuXG4ubWFyZ2luQ2xhc3MxIHtcbiAgbWFyZ2luLWxlZnQ6IDQwcHg7XG59XG5cbi5uYXZiYXIge1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gIHBhZGRpbmctdG9wOiAxMHB4O1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5uYXZiYXIgYSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmhpc3RvcnktYnRuIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMzBweDtcbn1cblxuLm5vYnVsbGV0IHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4ucGxheSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG59XG5cbi5jb2xvclN0eWxlIHtcbiAgY29sb3I6IGdyZWVueWVsbG93O1xufVxuXG4uY2FsbExvZ3Mge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICBmbG9hdDogbGVmdDtcbn1cblxuLmN1c3ROb3RpZmljYXRpb24ge1xuICBkaXNwbGF5OiBpbmxpbmU7XG59XG5cbi5leGFtcGxlLXJhZGlvLWdyb3VwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLmV4YW1wbGUtcmFkaW8tYnV0dG9uIHtcbiAgbWFyZ2luOiA1cHg7XG59XG5cbi51cGRhdGUtYnRuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE2Mzc3ZDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIG1hcmdpbi1sZWZ0OiAxNXB4O1xufVxuXG4uZWRpdC1idG4ge1xuICBtYXJnaW4tbGVmdDogNXB4O1xuICBjb2xvcjogIzE2Mzc3ZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgYm9yZGVyOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5udW1iZXItZm9ybSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICBwYWRkaW5nLWJvdHRvbTogNXB4O1xufVxuXG4ubnVtYmVyLWZvcm0gOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIHBhZGRpbmc6IDAuMTM3NWVtIDA7XG59XG5cbi5udW1iZXItZm9ybSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGJvdHRvbTogMC4yNWVtO1xuICBoZWlnaHQ6IDBweDtcbn1cblxuLm51bWJlci1mb3JtIDo6bmctZGVlcCBpbnB1dC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gIG1hcmdpbi10b3A6IDBweDtcbn1cblxuLm51bWJlci1mb3JtIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLm51bWJlci1yb3cge1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBwYWRkaW5nOiAwO1xuICBoZWlnaHQ6IDIwcHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdCB7XG4gIHBhZGRpbmc6IDJweCAwcHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gIHdpZHRoOiAxMDAlO1xuICBmb250LXNpemU6IDEycHg7XG4gIHBhZGRpbmctYm90dG9tOiA1cHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gIHdpZHRoOiA5MCU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gIHRvcDogMDtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdG9wOiAwO1xuICBtYXJnaW4tdG9wOiA0cHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG59XG5cbi5maWx0ZXItbGFiZWwge1xuICBmb250OiBCb2xkIDE0cHggUm9ib3RvO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICBjb2xvcjogIzNjM2MzYztcbiAgb3BhY2l0eTogMTtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICBmb250LXNpemU6IDEzcHg7XG59XG5cbi5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZSB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udDogQm9sZCAxNHB4LzE2cHggUm9ib3RvO1xufVxuLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRpdGxlIGkge1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gIGNvbG9yOiAjMDA0NTdEO1xufVxuXG4uZm9udENsYXNzIHtcbiAgZm9udDogQm9sZCAxNHB4LzE2cHggUm9ib3RvO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjN2I3YTdhO1xuICBvcGFjaXR5OiAxO1xuICBtYXJnaW4tYm90dG9tOiAzcHggIWltcG9ydGFudDtcbn1cblxuLmZvbnRDbGFzc0JvbGQge1xuICBmb250LWZhbWlseTogQm9sZCAxNnB4LzIycHggUm9ib3RvO1xuICBjb2xvcjogIzAwMDAwMDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuLmZvbnRDbGFzc0JvbGQgaSB7XG4gIGNvbG9yOiAjMDA0NTdEO1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cblxuLmJvcmRlciB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM3MDcwNzA7XG4gIGZvbnQ6IDEycHgvMThweCBSb2JvdG87XG4gIGNvbG9yOiAjNzA3MDcwO1xuICBib3JkZXItcmFkaXVzOiAyNXB4O1xuICBwYWRkaW5nOiA1cHg7XG59XG5cbi5idXR0b24ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZsb2F0OiByaWdodDtcbiAgZm9udDogUmVndWxhciAxNnB4LzIycHggUm9ib3RvO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLmJ1dHRvbnNlcnZpY2Uge1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG87XG4gIGNvbG9yOiAjZjFmMWZmO1xufVxuXG4uZXhhbXBsZS1yYWRpby1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi5leGFtcGxlLXJhZGlvLWJ1dHRvbiB7XG4gIG1hcmdpbjogNXB4O1xufVxuXG4ubWF0LWRpYWxvZy1jb250ZW50IHtcbiAgcGFkZGluZzogNXB4IDI0cHg7XG59XG5cbi5jb250YWN0IHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgbWFyZ2luLXRvcDogMjBweDtcbn1cblxuLmNvbnRhY3QgLm1hdC10YWItZ3JvdXAge1xuICBtaW4taGVpZ2h0OiAxNTBweDtcbn1cblxuLmNvbnRhY3QgOjpuZy1kZWVwIC5tYXQtdGFiLWxhYmVsIHtcbiAgaGVpZ2h0OiAyMHB4O1xuICBtaW4td2lkdGg6IDkwcHg7XG4gIGNvbG9yOiAjNTQ4MkJDO1xuICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gIGZvbnQtc2l6ZTogMTFweDtcbn1cblxuLmNvbnRhY3QgOjpuZy1kZWVwIC5tYXQtdGFiLWxhYmVsLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1NDgyQkM7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBvcGFjaXR5OiAxO1xufVxuXG4uY29udGFjdCA6Om5nLWRlZXAgLm1hdC10YWItaGVhZGVyIHtcbiAgYm9yZGVyOiBub25lO1xufVxuXG4uY29udGFjdCA6Om5nLWRlZXAgLm1hdC10YWItbGlzdCAubWF0LWluay1iYXIge1xuICBoZWlnaHQ6IDBweDtcbn1cblxuLnRhYnJvdyB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cbi5hbGlnbiB7XG4gIHBhZGRpbmctbGVmdDogMTZweDtcbiAgcGFkZGluZy10b3A6IDIwcHg7XG59XG5cbi50YWJyb3cgOjpuZy1kZWVwIC5tYXQtdGFiLWxhYmVsIHtcbiAgaGVpZ2h0OiAzNXB4O1xuICBwYWRkaW5nOiAwcHggMTBweDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogOHB4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA4cHggIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4O1xuICBib3JkZXItY29sb3I6ICNkM2QzZDM7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBtYXJnaW4tbGVmdDogM3B4O1xuICBjb2xvcjogYmxhY2s7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi50YWJyb3cgOjpuZy1kZWVwIC5tYXQtdGFiLWxhYmVsLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0Q7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBvcGFjaXR5OiAxO1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG5cbi50YWJyb3cgOjpuZy1kZWVwIC5tYXQtdGFiLWhlYWRlciB7XG4gIGJvcmRlcjogbm9uZTtcbn1cblxuLnRhYnJvdyA6Om5nLWRlZXAgLm1hdC10YWItbGlzdCAubWF0LWluay1iYXIge1xuICBoZWlnaHQ6IDBweDtcbn1cblxuLnRhYmxlIHtcbiAgZm9udC1mYW1pbHk6IFwiVHJlYnVjaGV0IE1TXCIsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tdG9wOiAyMHB4O1xufVxuXG4udGFibGUgdGQsXG4udGFibGUgdGgge1xuICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gIHBhZGRpbmc6IDVweDtcbiAgd2lkdGg6IGF1dG87XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLnRhYmxlIHRyOm50aC1jaGlsZChldmVuKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG5cbi50YWJsZSB0cjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG5cbi50YWJsZSB0aCB7XG4gIHBhZGRpbmctdG9wOiA1cHg7XG4gIHBhZGRpbmctYm90dG9tOiA1cHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkM2QzZDM7XG4gIGNvbG9yOiBibGFjaztcbn1cblxuLmZhdWx0LXRhYmxlIHRkLFxuLmZhdWx0LXRhYmxlIHRoIHtcbiAgcGFkZGluZzogNXB4O1xufVxuXG4uZmF1bHQtdGFibGUgLmZhdWx0LWRhdGUge1xuICB3aWR0aDogMTUlICFpbXBvcnRhbnQ7XG59XG4uZmF1bHQtdGFibGUgLmZhdWx0LWRlcyB7XG4gIHdpZHRoOiAyMCUgIWltcG9ydGFudDtcbn1cblxuLmJ0biB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDVweCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDI1cHg7XG59XG5cbi5idG4gcCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6ICNmZmY7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgbWFyZ2luOiBhdXRvO1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxMHB4O1xufVxuXG4vKiBzbGlkZXJzICovXG4vKiBMZWZ0IFNsaWRlciAqL1xuLmJ0bi0xIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICBjb2xvcjogIzAwNDU3RCAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCAjMDA0NTdEO1xufVxuXG4uYnRuLTEgcCB7XG4gIG1hcmdpbjogYXV0bztcbn1cblxudGFibGUge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLnJlY3QyIHtcbiAgcGFkZGluZzogMTVweDtcbiAgaGVpZ2h0OiAxMzBweDtcbiAgd2lkdGg6IDkzJTtcbiAgYmFja2dyb3VuZDogI2VhZWFlYTtcbn1cblxuLnJlY3QzIHtcbiAgcGFkZGluZy10b3A6IDE1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gIHBhZGRpbmctbGVmdDogMTVweDtcbiAgcGFkZGluZy1ib3R0b206IDBweDtcbiAgaGVpZ2h0OiA2NnB4O1xuICB3aWR0aDogOTMlO1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xufVxuXG4ucmVjdDMgLmJ1dHRvbiB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gIG1hcmdpbi10b3A6IDVweDtcbn1cblxuLnJlY3Q0IHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiA5MyU7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIHBhZGRpbmctYm90dG9tOiAwcHg7XG59XG5cbi5uZ3gtdGltZXBpY2tlci1maWVsZC1leGFtcGxlIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi10b3A6IDE1cHg7XG59XG5cbi5yZWN0NSB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogNTAlO1xufVxuXG4udGV4dC1wcCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uY2FsbC1wb3B1cC1zYXZlIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi5pY29ucyAuZmEtcGhvbmUge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpO1xufVxuXG4uaWNvbnMgLmZhLW1pY3JvcGhvbmUtc2xhc2gsXG4uaWNvbnMgLmZhLXBob25lIHtcbiAgZm9udC1zaXplOiAyNHB4O1xufVxuXG4uaWNvbnMgLmJ1dHRvbiB7XG4gIG1hcmdpbjogNXB4O1xufVxuXG4uaWNvbnMge1xuICBtYXJnaW4tdG9wOiAyNXB4O1xuICBwYWRkaW5nLWxlZnQ6IDI5JTtcbn1cblxuLmhhbmctYnRuIHtcbiAgY29sb3I6IHJlZCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IHJlZCAhaW1wb3J0YW50O1xufVxuXG4uY2xhc3N0ZXh0MSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uZGF0YXZpZXcge1xuICBtYXJnaW4tbGVmdDogMTVweDtcbn1cblxuLnRpbWVzdGFtcCB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIHtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICB3aWR0aDogNTUlO1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGNvbG9yOiAjMDA0NTdEO1xuICBmb250LXNpemU6IDEycHg7XG4gIHdpZHRoOiA1MCU7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtbGFiZWwtY29udGVudCB7XG4gIGxpbmUtaGVpZ2h0OiAyMnB4O1xufVxuXG4uaGlzdG9yeS1jYXJkIC5hcHBseUhvcml6b250YWxTY3JvbGwge1xuICBtYXJnaW4tYm90dG9tOiAwcHg7XG59XG5cbi5oaXN0b3J5LWNhcmQgOjpuZy1kZWVwIG1hdC1wYWdpbmF0b3Ige1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiAwO1xufVxuXG4uaGlzdG9yeS1jYXJkIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBoZWlnaHQ6IDE1cHg7XG59XG5cbi5oaXN0b3J5LWNhcmQgOjpuZy1kZWVwIC5tYXQtY2FyZC1jb250ZW50IHtcbiAgcGFkZGluZy1ib3R0b206IDQwcHg7XG59XG5cbi5yZWNvcmRpbmctZGFpbG9nIHtcbiAgYm94LXNoYWRvdzogMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICByaWdodDogMTUlO1xufVxuXG4uY2FsbC1yZXNwb25zZSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgd2lkdGg6IDM1JTtcbiAgdG9wOiAyMyU7XG4gIHJpZ2h0OiA1MHB4O1xufVxuXG4uY2FsbC1zdGF0cy1jYXJkLWJvcmRlcjEge1xuICBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIHNvbGlkIHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLXJhZGl1czogMCU7XG4gIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4udGFibGUtYm9yZGVyLm1hdC10YWJsZSB7XG4gIGJvcmRlci1zdHlsZTogbm9uZSBzb2xpZCBzb2xpZCBub25lO1xuICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxuLmljb24tYmFja2dyb3VuZCB7XG4gIGNvbG9yOiAjMDA0NTdEICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMTNweCAhaW1wb3J0YW50O1xuICB3aWR0aDogMTNweCAhaW1wb3J0YW50O1xufVxuXG4uZWRpdC1pY29uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogIzAwNDU3RDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogNXB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIHRvcDogMjAlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5jaGVjay1pY29uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogIzFhY2MwNDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogNXB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIHRvcDogMjAlO1xuICBtYXJnaW4tcmlnaHQ6IDE4cHg7XG4gIG1hcmdpbi1ib3R0b206IDVweCAhaW1wb3J0YW50O1xufVxuXG4uY2FuY2xlLWljb24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiByZWQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDVweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICB0b3A6IDIwJTtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICBtYXJnaW4tbGVmdDogMzVweDtcbn1cblxuLm51bWJlci1mb3JtIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgaGVpZ2h0OiAwcHggIWltcG9ydGFudDtcbn1cblxuLnN0cmF0ZS1saW5lIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogNXB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIHRvcDogNTAlO1xufVxuXG4uaW5wdXQtYm9yZGVyIHtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIHdpZHRoOiA3NSUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAyNXB4O1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgbWFyZ2luLWxlZnQ6IDVweDtcbn1cblxuLmlucHV0LWJvcmRlci1kIHtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIHdpZHRoOiA3MCUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAyNXB4O1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgbWFyZ2luLWxlZnQ6IDVweDtcbn1cblxuLmNhbGxpbmctdGFibGUubWF0LXRhYmxlIC5tYXQtY2VsbCB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgY29sb3I6IGJsYWNrO1xuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgb3BhY2l0eTogMTtcbn1cblxudGQubWF0LWNlbGwsXG50ZC5tYXQtZm9vdGVyLWNlbGwsXG50aC5tYXQtaGVhZGVyLWNlbGwge1xuICBmb250LXNpemU6IDEycHg7XG4gIHBhZGRpbmc6IDVweDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZCBub25lIG5vbmUgc29saWQ7XG4gIGJvcmRlci13aWR0aDogMC4xcHg7XG4gIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4udGFibGUtZm9udC50aCB7XG4gIGNvbG9yOiBibGFjaztcbn1cblxuLnRhYmxlLWZvbnQudGQge1xuICBjb2xvcjogIzU5NTk1OTtcbn1cblxuLnNydkhpc3RyeUhlYWRlcjEge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4udGVjaC1jYW1wIDo6bmctZGVlcCAubWF0LXRhYi1ib2R5LXdyYXBwZXIge1xuICBib3gtc2hhZG93OiAwIDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgMXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi50ZWNoLWNhbXAgOjpuZy1kZWVwIC5tYXQtY2FyZC1jb250ZW50IHtcbiAgbWFyZ2luLWJvdHRvbTogMHB4O1xufVxuXG4ucGFnaW5hdG9yIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBoZWlnaHQ6IDE4cHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1ib3R0b206IDBweDtcbn1cblxuLmN1czM2MFRkIHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LWZhbWlseTogcG9wcGlucztcbn0iXX0= */\"","import { Component, OnInit, Optional, ViewChild } from \"@angular/core\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { CommonService } from \"../../core/service/common-service/common.service\";\nimport { MatDialog, MatSort, MatPaginator, MatTableDataSource, MatDialogRef, MatTabChangeEvent } from \"@angular/material\";\nimport { Router } from \"@angular/router\";\nimport { DatePipe,Location } from \"@angular/common\";\nimport { openvisitReportDialog, VisitReportComponent } from \"src/app/modal/visit-report/visit-report.component\";\nimport { filter } from \"rxjs/operators\";\nimport { CallParams } from \"src/app/model/call-params.model\";\nimport { DialogService } from \"src/app/dialog.service\";\n\n@Component({\n selector: 'app-lost-customer360',\n templateUrl: './lost-customer360.component.html',\n styleUrls: ['./lost-customer360.component.scss']\n})\nexport class LostCustomer360Component implements OnInit {\n\n @ViewChild(MatSort, { static: true }) sort: MatSort;\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\n @ViewChild('CallLogsPaginator', { static: true }) callLogsPaginator: MatPaginator;\n @ViewChild('CallLogsSort', { static: true }) callLogsSort: MatSort;\n @ViewChild('RemarksPaginator', { static: true }) remarksPaginator: MatPaginator;\n @ViewChild('RemarksSort', { static: true }) remarksSort: MatSort;\n @ViewChild('ServiceHistoryPaginator', { static: true }) serviceHistoryPaginator: MatPaginator;\n @ViewChild('ServiceHistorySort', { static: true }) serviceHistorySort: MatSort;\n\n cus360: any;\n cusType: string;\n calledNo: string;\n vehicleDetails: any = {};\n lastServiceDetails: any = {};\n // serviceDetails: any = {};\n spinner: boolean;\n vinNoList: string[] = [];\n vehicleInfoList: any[] = [];\n selectedNumber: any;\n selectedName: any;\n updatedNumber: any;\n updatedName: any;\n contactInfoOwner: any[] = [];\n contactInfoFleet: any[] = [];\n contactInfoDriver: any[] = [];\n updatedNumberType: string;\n secondaryNo: string;\n unableEdit: any = {};\n unableCall: boolean = false;\n workShops = [];\n selectedWorkShop: string;\n audioSource: any = {};\n selectedVehicle: string;\n HideServiceHistory: boolean = true;\n historyToggleStatus: boolean = false;\n showCallDailog: boolean = false;\n showRecordingDailog: boolean = false;\n showPlayBtn: boolean = true;\n // paused: boolean = false;\n ownerSelected: boolean = true;\n fleetSelected: boolean = false;\n driverSelected: boolean = false;\n errorShow: any = {};\n customerID: string;\n userId: string;\n chassisNo: string;\n recentNumber: string;\n bookingCount: number;\n followupCount: number;\n customerData: any;\n vin: string;\n division: string;\n workshopAppointmentFlag: boolean = false;\n cdmTrailCheckOwner: boolean = false;\n cdmTrailCheckfleet: boolean = false;\n cdmTrailCheckdriver: boolean = false;\n secondTrailCall: boolean = false;\n dataSource1: any[];\n callLists: any;\n callCount: number = 0;\n remarksDetails: any;\n historyDetails: any;\n remarksCount: number = 0;\n historyCount: number = 0;\n private audio: HTMLMediaElement;\n selectedTab: any;\n custNameForSave: any;\n callOption: string;\n clicked: boolean = true;\n visitReportCheck: boolean = true;\n\n //service history table columns\n displayedColumns: string[] = [\n \"jcNo\",\n \"servNo\",\n \"dealerLoc\",\n \"jbcardDate\",\n \"mileage\",\n \"failureDate\",\n \"billDate\",\n \"insdate\",\n \"mechanic\",\n \"serviceAdv\",\n \"serviceAdvNo\"\n ];\n\n //call log table columns\n displayedCallColumns: string[] = [\n \"number\",\n \"callDate\",\n \"startTime\",\n \"duration\",\n \"recording\"\n ];\n\n //call log table columns\n displayedRemarksColumns: string[] = [\n \"remark\",\n \"remarkDate\",\n \"remarkTime\"\n ];\n customerInfo: any;\n\n constructor(\n private dialogService: DialogService,\n private datePipe: DatePipe,\n public dialog: MatDialog,\n private commonService: CommonService,\n private toastr: ToastrService,\n private router: Router,\n private location:Location,\n ) {\n this.unableEdit['O'] = {};\n this.unableEdit['F'] = {};\n this.unableEdit['D'] = {};\n }\n\n ngOnInit() {\n this.userInfo = JSON.parse(localStorage.getItem(\"userInfo\") || null)[0];\n this.customerData = JSON.parse(localStorage.getItem(\"customerData\") || null);\n // this.callVisible = true;\n this.chassisNo = localStorage.getItem(\"chassisNo\");\n this.userId = localStorage.getItem(\"userId\");\n this.customerID = localStorage.getItem(\"customerId\");\n this.workShops = JSON.parse(localStorage.getItem('workshops'));\n this.selectedWorkShop = (this.workShops && this.workShops.length) ? this.workShops[0].workshopCode : '';\n this.customerData = JSON.parse(localStorage.getItem(\"customerData\"));\n this.vin = this.customerData.vin;\n if (localStorage.getItem(\"userId\") == null || localStorage.getItem(\"userId\") == undefined) {\n this.router.navigate([\"login\"]);\n }\n\n //this.getBookingFollowupCount(this.customerID, this.vin);\n this.getWorkshopAppointmentFlag();\n this.getCustomer360();\n this.getCallList();\n this.getContactdetail();\n this.showCustomerProfile();\n if(this.customerData.callTypeCode == 5){\n this.checkVisitReportStatus();\n }\n }\n\n /**\n * Name: getCallRecording\n * purpose: To get call recording and play\n */\n recordingUrl:string = ''\n getCallRecording(bucketName: string, fileName: string, id: string, source: string,element:any): void {\n console.log(element);\n \n\n if (element.recordingUrl) {\n this.recordingUrl = element.recordingUrl;\n }else{\n this.recordingUrl = '';\n }\n this.spinner = true;\n this.onRecordingClose();\n this.commonService.downloadAudio(bucketName, fileName, source).subscribe(res => {\n this.spinner = false;\n var binary = res['body'];\n var blob = new Blob([binary], { type: 'audio/mp4' });\n this.audioSource.id = id;\n this.audioSource.url = URL.createObjectURL(blob);\n if (this.audioSource.url) {\n this.playRecording();\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n /**\n * Name: playRecording\n * purpose: To play recoding\n */\n playRecording(): void {\n this.showPlayBtn = false;\n this.showRecordingDailog = true;\n }\n\n /**\n * Name: onRecordingClose\n * purpose: To close Recording dailog\n */\n onRecordingClose() {\n this.showPlayBtn = true;\n this.showRecordingDailog = false;\n }\n\n /**\n * Name: getContactdetail\n * purpose: To get customer Contact detail\n */\n getContactdetail(): void {\n this.spinner = true;\n this.commonService.contactdetail(this.customerID).subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n this.contactInfoOwner = res[\"responseData\"].filter(contact => contact.flag == \"O\");\n this.contactInfoFleet = res[\"responseData\"].filter(contact => contact.flag == \"F\");\n this.contactInfoDriver = res[\"responseData\"].filter(contact => contact.flag == \"D\");\n this.selectedNumber = this.contactInfoOwner[0].contactNo;\n this.selectedName = this.contactInfoOwner[0].name;\n this.unableEdit['O'][0] = true;\n this.unableEdit['O'][1] = false;\n this.unableEdit['D'][0] = true;\n this.unableEdit['D'][1] = false;\n this.updatedNumberType = 'Primary';\n this.unableCall = true;\n this.spinner = false;\n } else {\n this.spinner = false;\n }\n }, (err) => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n },\n ()=>{\n this.updateActiveContactNo();\n });\n }\n\n getCdmData() {\n let temp: any;\n this.selectedTab = this.selectedTab ? this.selectedTab : 0;\n\n let data = {\n \"customerId\": this.customerID,\n \"vin\": \"\",\n \"phoneNo\": \"\",\n \"startDate\": \"\",\n \"endDate\": \"\",\n \"date\": \"\",\n \"customerName\": \"\",\n \"type\": \"T\",\n \"flag\": this.selectedTab == 0 ? 'C' : this.selectedTab == 1 ? 'F' : this.selectedTab == 2 ? 'D' : 'C'\n };\n this.commonService.fetchCdmData(data).subscribe((resp) => {\n if (resp['responseCode'] == 0) {\n temp = resp[\"responseData\"].filter(contact => contact.contactNo = contact.phoneNo);\n temp.forEach((trail) => {\n if (this.selectedTab == 0) {\n this.contactInfoOwner.push(trail)\n this.cdmTrailCheckOwner = true\n } else if (this.selectedTab == 1) {\n this.contactInfoFleet.push(trail)\n this.cdmTrailCheckfleet = true\n } else if (this.selectedTab == 2) {\n this.contactInfoDriver.push(trail)\n this.cdmTrailCheckdriver = true\n }\n })\n this.trailLogCheck();\n } else {\n this.toastr.error(resp['message'], \"Error\");\n }\n\n }, error => {\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n // this.contactInfoOwner.push(temp[0]);\n\n }\n\n trailLogCheck() {\n if (this.selectedTab == 0) {\n this.secondTrailCall = this.cdmTrailCheckOwner\n // return this.cdmTrailCheckOwner\n } else if (this.selectedTab == 1) {\n this.secondTrailCall = this.cdmTrailCheckfleet\n // return this.cdmTrailCheckfleet\n } else if (this.selectedTab == 2) {\n this.secondTrailCall = this.cdmTrailCheckdriver\n // return this.cdmTrailCheckdriver\n } else {\n this.secondTrailCall = false\n }\n }\n\n /**\n * Name: checkCallStatus\n * purpose: To set contect type selection\n * @param {any} type - type of number\n */\n checkCallStatus(type: any): void {\n this.onTabChange(type)\n this.selectedTab = type && type.index;\n if (type && type.index == 0) {\n this.ownerSelected = true;\n this.fleetSelected = false;\n this.driverSelected = false;\n if (this.contactInfoOwner.length) {\n this.unableCall = true;\n this.contactInfoOwner.forEach((element, i) => {\n if (this.unableEdit['O'][i] != undefined && this.unableEdit['O'][i]) {\n this.selectedNumber = element.contactNo;\n this.selectedName = element.name;\n }\n });\n } else {\n this.unableCall = false;\n }\n }\n\n if (type && type.index == 1) {\n this.ownerSelected = false;\n this.fleetSelected = true;\n this.driverSelected = false;\n if (this.contactInfoFleet.length) {\n this.unableCall = true;\n let numberSelected = false;\n this.contactInfoFleet.forEach((element, i) => {\n if (this.unableEdit['F'][i] != undefined && this.unableEdit['F'][i]) {\n this.selectedNumber = element.contactNo;\n this.selectedName = element.name;\n numberSelected = true;\n }\n });\n if (!numberSelected) {\n this.selectedNumber = this.contactInfoFleet[0].contactNo;\n this.selectedName = this.contactInfoFleet[0].name;\n this.unableEdit['F'][0] = true;\n }\n } else {\n this.unableCall = false;\n }\n }\n\n if (type && type.index == 2) {\n this.ownerSelected = false;\n this.fleetSelected = false;\n this.driverSelected = true;\n if (this.contactInfoDriver.length) {\n this.unableCall = true;\n let numberSelected = false;\n this.contactInfoDriver.forEach((element, i) => {\n if (this.unableEdit['D'][i] != undefined && this.unableEdit['D'][i]) {\n this.selectedNumber = element.contactNo;\n this.selectedName = element.name;\n numberSelected = true;\n }\n });\n if (!numberSelected) {\n this.selectedNumber = this.contactInfoDriver[0].contactNo;\n this.selectedName = this.contactInfoDriver[0].name;\n this.unableEdit['D'][0] = true;\n }\n } else {\n this.unableCall = false;\n }\n }\n this.trailLogCheck();\n }\n\n /**\n * Name: callUser\n * purpose: To call user\n */\n private callUser(): void {\n this.showRecordingDailog = false;\n this.spinner = true;\n let callNumber = \"+91\" + this.selectedNumber;\n let type = (this.ownerSelected ? 'C' : (this.fleetSelected ? 'F' : 'D'));\n if(type=='C'){\n this.contactInfoOwner.forEach((element)=>{\n if(element.contactNo==this.selectedNumber){\n this.custNameForSave=element.name\n }\n });\n }else if(type=='F'){\n this.contactInfoFleet.forEach((element)=>{\n if(element.contactNo==this.selectedNumber){\n this.custNameForSave=element.name\n }\n });\n }\n else if(type=='D'){\n this.contactInfoDriver.forEach((element)=>{\n if(element.contactNo==this.selectedNumber){\n this.custNameForSave=element.name\n }\n });\n }\n this.calledNo = this.selectedNumber;\n this.cusType = type;\n\n this.commonService.callCustomer(this.userId, this.customerID, callNumber, type, 'LCRM').subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n this.showCallDailog = true;\n this.spinner = false;\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n\n\n if (localStorage.getItem('countryCode')=='IND91') {\n this.callingToUser();\n }else{\n localStorage.setItem(\"exotel_URI\",'')\n }\n }\n\n showVistResponse(): void {\n this.showRecordingDailog = false;\n // this.spinner = true;\n let callNumber = \"+91\" + this.selectedNumber;\n let type = (this.ownerSelected ? 'C' : (this.fleetSelected ? 'F' : 'D'));\n if(type=='C'){\n this.contactInfoOwner.forEach((element)=>{\n if(element.contactNo==this.selectedNumber){\n this.custNameForSave=element.name\n }\n });\n }else if(type=='F'){\n this.contactInfoFleet.forEach((element)=>{\n if(element.contactNo==this.selectedNumber){\n this.custNameForSave=element.name\n }\n });\n }\n else if(type=='D'){\n this.contactInfoDriver.forEach((element)=>{\n if(element.contactNo==this.selectedNumber){\n this.custNameForSave=element.name\n }\n });\n }\n this.calledNo = this.selectedNumber;\n this.cusType = type;\n this.showCallDailog = true;\n }\n\n /**\n * Name: onClose\n * purpose: To close call dailog\n */\n onClose() {\n this.showCallDailog = false;\n this.getContactdetail();\n }\n\n /**\n * Name: updateNumber\n * @param {boolean} addNumber - type of number\n * purpose: To set customer number\n */\n updateNumber(addNumber): void {\n // if ((this.updatedNumber && this.updatedNumber.length == 10) || (addNumber && this.secondaryNo && this.secondaryNo.length == 10)) {\n this.spinner = true;\n let oldNumber = this.selectedNumber;\n let newNumber = this.updatedNumber ? this.updatedNumber : this.selectedNumber;\n let oldName = this.selectedName;\n let newName = this.updatedName;\n if (addNumber) {\n oldNumber = this.secondaryNo;\n newNumber = this.secondaryNo;\n this.updatedNumberType = \"Secondary\";\n }\n this.commonService.updateNumber(newNumber, oldNumber, this.updatedNumberType, this.customerID, this.userId, oldName, newName).subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n this.spinner = false;\n this.selectedNumber = this.updatedNumber;\n this.selectedName = this.updatedName;\n this.toastr.success(\"Data is saved.\", \"Success\");\n //this.getContactdetail();\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n })\n // }\n }\n\n getOption(){\n this.callOption=localStorage.getItem('navOption');\n return this.callOption;\n }\n\n onNameChange(name: any, editName: boolean, index: any, type: string) {\n if (type == 'D' && editName) {\n this.updatedName = name.name;\n this.updatedNumber = name.contactNo;\n this.updatedNumberType = 'D';\n this.errorShow[index] = false;\n } else {\n this.selectedName = name.name;\n this.updatedNumber = name.contactNo;\n this.updatedName = name.name;\n this.updatedNumberType = index == 0 ? 'Y' : \"N\";\n if (type == 'D') {\n this.contactInfoDriver.forEach((element, i) => {\n if (i == index) {\n this.unableEdit[type][i] = true;\n } else {\n this.unableEdit[type][i] = false;\n }\n });\n }\n }\n }\n\n /**\n * Name: onNumberChange\n * purpose: To get new selected number\n */\n onNumberChange(number: any, editNumber: boolean, index: any, type: string): void {\n if (type == \"D\" && editNumber && number.contactNo.length == 10) {\n this.updatedNumber = number.contactNo;\n this.updatedName = number.name;\n this.updatedNumberType = 'D';\n this.errorShow[index] = false;\n } else if (editNumber && number.contactNo.length == 10) {\n this.updatedNumber = number.contactNo;\n this.updatedName = number.name;\n this.updatedNumberType = index == 0 ? 'Y' : 'N';\n this.errorShow[index] = false;\n } else if (editNumber && number.contactNo.length !== 10) {\n this.errorShow[index] = true;\n } else {\n this.selectedNumber = number.contactNo;\n this.selectedName = number.name;\n this.updatedNumber = number.contactNo;\n this.updatedName = number.name;\n this.updatedNumberType = index == 0 ? 'Y' : 'N';\n if (type == 'O') {\n this.contactInfoOwner.forEach((element, i) => {\n if (i == index) {\n this.unableEdit[type][i] = true;\n } else {\n this.unableEdit[type][i] = false;\n }\n });\n } else if (type == 'F') {\n this.contactInfoFleet.forEach((element, i) => {\n if (i == index) {\n this.unableEdit[type][i] = true;\n } else {\n this.unableEdit[type][i] = false;\n }\n });\n } else if (type == 'D') {\n this.contactInfoDriver.forEach((element, i) => {\n if (i == index) {\n this.unableEdit[type][i] = true;\n } else {\n this.unableEdit[type][i] = false;\n }\n });\n }\n\n }\n }\n\n /**\n * Name: sendWorkshopMsg\n * purpose: To send workshop addess SMS\n */\n sendWorkshopMsg(): void {\n this.spinner = true;\n let data = {\n contactNo: this.selectedNumber,\n custName: this.cus360['CUSTOMER_INFO'].custName,\n }\n this.workShops.forEach(workshop => {\n if (workshop.workshopCode == this.selectedWorkShop) {\n data['wSAddress'] = workshop.workshopAddress || '';\n data['wSManager'] = workshop.contactNo || '';\n data['wSName'] = workshop.workshopName || '';\n }\n });\n this.commonService.sendLocationSMS(data).subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n this.spinner = false;\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: getCustomer360\n * purpose: To get customer data\n */\n getCustomer360(): void {\n this.spinner = true;\n this.commonService.getLostcustomerdata(this.customerID, this.userId, this.vin).subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n this.cus360 = res[\"responseData\"];\n if (this.cus360[\"VECHILE_INFO\"] && this.cus360[\"VECHILE_INFO\"].length && this.cus360[\"VECHILE_INFO\"][0].vin6Bits) {\n this.selectedVehicle = this.cus360[\"VECHILE_INFO\"][0].vin6Bits\n this.cus360[\"VECHILE_INFO\"].forEach(element => {\n this.vinNoList.push(element.vin6Bits);\n this.vehicleInfoList.push(element);\n });\n this.subTabDefault(this.selectedVehicle);\n } else {\n this.vehicleDetails = {};\n }\n this.spinner = false;\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: getCallList\n * purpose: To get customer call data\n */\n getCallList(): void {\n this.spinner = true;\n this.commonService.callDetails(this.userId, this.customerID, 'LCRM').subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n this.spinner = false;\n \n this.callLists = new MatTableDataSource(res['responseData']);\n this.recentNumber = (res['responseData'].length && res['responseData'][0].custNo) ? res['responseData'][0].custNo.split('+91')[1] : '';\n this.sort.direction = '';\n this.callLists.sort = this.callLogsSort;\n this.callLists.paginator = this.callLogsPaginator;\n this.callCount = res['responseData'].length;\n } else {\n this.spinner = false;\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: getHistory\n * purpose: To get service history\n */\n getHistory(showHistory: boolean): void {\n if (showHistory) {\n this.spinner = true;\n this.commonService.history(this.chassisNo).subscribe(\n res => {\n if (res[\"responseCode\"] == 0) {\n this.HideServiceHistory = false;\n this.dataSource1 = res[\"responseData\"];\n this.historyDetails = new MatTableDataSource(this.dataSource1);\n this.sort.direction = '';\n this.historyDetails.sort = this.serviceHistorySort;\n this.historyDetails.paginator = this.serviceHistoryPaginator;\n this.historyCount = this.dataSource1.length;\n this.spinner = false;\n } else {\n this.toastr.info(res[\"message\"]);\n this.historyDetails = [];\n this.spinner = false;\n this.historyToggleStatus = false;\n }\n }, err => {\n this.spinner = false;\n this.historyToggleStatus = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n } else {\n this.HideServiceHistory = true;\n }\n }\n\n /**\n * Name: subTabDefault\n * purpose: To set vehicle details as selected\n */\n subTabDefault(selectedVehicle: string): void {\n this.vehicleDetails = this.cus360[\"VECHILE_INFO\"].filter(vehicle => vehicle.vin6Bits == selectedVehicle)[0];\n this.division = this.vehicleDetails.division;\n localStorage.setItem(\"chassisNo\", this.vehicleDetails.chassisNo);\n this.chassisNo = this.vehicleDetails.chassisNo;\n //change the sale date format\n this.vehicleDetails.saleDate = this.datePipe.transform(\n this.vehicleDetails.saleDate,\n \"yyyy-MM-dd\"\n );\n //set booking nd followup count\n if(this.cus360[\"BOOKING_FOLLOWUP_COUNT\"] && Object.keys(this.cus360[\"BOOKING_FOLLOWUP_COUNT\"]).length&& this.cus360[\"BOOKING_FOLLOWUP_COUNT\"][selectedVehicle].length) {\n this.bookingCount = this.cus360[\"BOOKING_FOLLOWUP_COUNT\"][selectedVehicle][0].bookingCount || 0;\n this.followupCount = this.cus360[\"BOOKING_FOLLOWUP_COUNT\"][selectedVehicle][0].followUpCount || 0;\n } else {\n this.bookingCount = 0;\n this.followupCount = 0;\n }\n\n if (this.cus360[\"LAST_SERVICE_INFO\"] && Object.keys(this.cus360[\"LAST_SERVICE_INFO\"]).length && this.cus360[\"LAST_SERVICE_INFO\"][selectedVehicle]) {\n this.lastServiceDetails = this.cus360[\"LAST_SERVICE_INFO\"][selectedVehicle];\n localStorage.setItem(\"milage\", this.lastServiceDetails.milage);\n this.lastServiceDetails.invoiceDate = this.datePipe.transform(\n this.lastServiceDetails.invoiceDate,\n \"yyyy-MM-dd\"\n );\n } else {\n this.lastServiceDetails = {};\n }\n\n if (this.cus360[\"LOST_CUSTOMER_REMARK_INFO\"] && Object.keys(this.cus360[\"LOST_CUSTOMER_REMARK_INFO\"]).length && this.cus360[\"LOST_CUSTOMER_REMARK_INFO\"][selectedVehicle]) {\n let remarks = this.cus360[\"LOST_CUSTOMER_REMARK_INFO\"][selectedVehicle];\n remarks.forEach(element => {\n let date = element.remarkTime + \" GMT+0000\";\n let d = new Date(date);\n element.remarkTime = d;\n element.remarkDate = this.datePipe.transform(element.remarkTime, \"yyyy-MM-dd\");\n });\n this.remarksDetails = new MatTableDataSource(remarks);\n this.sort.direction = '';\n this.remarksDetails.sort = this.remarksSort;\n this.remarksDetails.paginator = this.remarksPaginator;\n this.remarksCount = remarks.length;\n } else {\n this.remarksDetails = [];\n }\n}\n\n getWorkshopAppointmentFlag(){\n this.commonService.getWorkshopAppointmentFlag(this.selectedWorkShop)\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n this.workshopAppointmentFlag = res['responseData'][0].appointmentFlag;\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n showVistReportFormfn() {\n if(this.visitReportCheck == false){\n this.toastr.error(\"Report already exist\");\n }else{\n openvisitReportDialog(this.dialog).subscribe(val => {\n if(val==\"false\") {\n this.clicked=val\n }\n });\n }\n }\n\n showCustomerProfile(){\n this.commonService.getCustomerProfile(this.customerID).subscribe(res=>{\n\n if (res[\"responseCode\"] == 0) {\n this.customerInfo = res[\"responseData\"];\n\n } else {\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n checkVisitReportStatus(){\n this.commonService.LostCustomerVisitReportCheck(this.customerID, this.vin, this.userId).subscribe(res=>{\n if(res['responseCode'] == 0){\n if(res['responseData'] == 'Visit report already exist'){\n this.visitReportCheck = false;\n this.clicked = false;\n }\n else{\n this.clicked = true;\n }\n }\n else{\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n })\n }\n\n\n activeTabLabel: string = 'Owner'; \n activeIndex:number = 0\n userInfo: any;\n\n\n selectedContactNumbers = {\n 'Owner': null,\n 'Fleet Manager': null,\n 'Driver': null\n };\n\n onTabChange(event: MatTabChangeEvent) {\n this.activeTabLabel = event.tab.textLabel;\n this.activeIndex = event.index;\n this.updateActiveContactNo();\n }\n\n \n\n private updateActiveContactNo() {\n let contactList;\n \n if (this.activeIndex === 0) {\n contactList = this.contactInfoOwner;\n } else if (this.activeIndex === 1) {\n contactList = this.contactInfoFleet;\n } else if (this.activeIndex === 2) {\n contactList = this.contactInfoDriver;\n }\n \n console.log(this.activeIndex);\n console.log(contactList);\n if (contactList && contactList.length > 0) {\n this.selectedContactNumbers[this.activeTabLabel] = this.selectedContactNumbers[this.activeTabLabel] || contactList[0].contactNo;\n }\n \n }\n onRadioChange(contactNo: string, tabLabel: string) {\n this.selectedContactNumbers[tabLabel] = contactNo;\n \n \n }\n\n\n private callingToUser(){\n let customerPhone = this.selectedContactNumbers[this.activeTabLabel];\n if(customerPhone){\n this.makeCall(customerPhone)\n }else{\n this.spinner = false;\n this.toastr.error(\"Customer Phone number can't be Empty while placing the call\")\n }\n }\n\n \n private makeCall(customerPhone:string) {\n const callParams = new CallParams(this.userInfo.contactNo, customerPhone);\n this.spinner = true\n this.commonService.createCallConnection_API(callParams).subscribe({\n next: (response) => {\n if(response.responseData.Uri) {\n localStorage.setItem(\"exotel_URI\",response.responseData.Uri)\n } else{\n localStorage.setItem(\"exotel_URI\",'')\n }\n if (response.responseCode==0) {\n this.toastr.success(\"Call is in progress\")\n \n }else{\n this.toastr.error(response.responseData)\n }\n \n },\n error:(error)=>{\n this.spinner = false\n this.toastr.error(\"Something went wrong\");\n \n },\n complete:()=>{\n this.spinner = false\n }\n });\n }\n\n\n openConfirmation() {\n if (localStorage.getItem('countryCode')=='IND91') {\n this.dialogService.openConfirmDialog().subscribe(result => {\n if (result) {\n console.log(result);\n this.callUser(); \n } else {\n console.log(result);\n }\n });\n }else{\n this.callUser();\n }\n \n }\n}\n","export default \".working-area {\\n margin-top: 115px;\\n width: auto;\\n}\\n\\n.call-stats-card-border1 {\\n border-style: solid solid solid solid;\\n border-width: 1px;\\n border-radius: 0%;\\n border-color: lightgray;\\n}\\n\\n.call-stats-card .mat-card-title {\\n margin-bottom: 0px;\\n}\\n\\n.filterdiv {\\n align-items: center;\\n}\\n\\n.filter-style {\\n width: 125px !important;\\n}\\n\\n.filter-label {\\n font: 12px Roboto;\\n letter-spacing: 0px;\\n color: #3c3c3c;\\n opacity: 1;\\n margin-bottom: 3px;\\n padding: 1px 0px 0px;\\n}\\n\\n.filter1 ::ng-deep .mat-select {\\n padding-bottom: 0px;\\n padding-top: 2px;\\n}\\n\\n.filter1 ::ng-deep .mat-button {\\n font-size: 12px;\\n font: white;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-infix {\\n border: 1px solid lightgray;\\n border-radius: 5px;\\n background: white;\\n padding-bottom: 0px;\\n font-size: 12px !important;\\n height: 21px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-trigger {\\n padding-left: 8px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-value {\\n width: 89%;\\n}\\n\\n.filter1 ::ng-deep .mat-select-arrow-wrapper {\\n padding-bottom: 0x;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label-wrapper {\\n top: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-underline {\\n display: none;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label {\\n top: 0;\\n margin-top: 6px !important;\\n padding-left: 5px;\\n}\\n\\n.filter1-input {\\n margin-top: 7px !important;\\n margin-left: 5px;\\n}\\n\\n.filter1 {\\n font-size: 12px;\\n}\\n\\n.filter2 {\\n width: auto;\\n}\\n\\n.calender {\\n position: relative;\\n background: white;\\n width: 100px;\\n margin-right: 10px !important;\\n}\\n\\n.calender input {\\n border: 1px solid lightgray !important;\\n border-radius: 5px;\\n font-size: 12px;\\n height: 24px;\\n padding-left: 5px;\\n width: 100px;\\n}\\n\\n.calander-btn {\\n position: absolute;\\n right: 0px;\\n top: 5px;\\n}\\n\\n.button-margin {\\n margin-left: 3px;\\n}\\n\\n.filterButton {\\n color: white !important;\\n background-color: #00457D;\\n height: 25px;\\n line-height: 10px;\\n margin-bottom: 1px;\\n padding-bottom: 2px;\\n}\\n\\n.example-card1 {\\n text-align: center;\\n display: block;\\n margin-left: auto;\\n margin-right: auto;\\n margin-bottom: 10px;\\n}\\n\\n.form-field label {\\n font-weight: 500;\\n margin-bottom: 0px;\\n}\\n\\n.form-field input {\\n padding-left: 7px;\\n padding-top: 3px;\\n}\\n\\n.table-border.mat-table {\\n border-style: none solid solid none;\\n border-color: lightgray;\\n}\\n\\n.columnHeader {\\n font: bold 12px Roboto;\\n letter-spacing: 0px;\\n color: #333333;\\n text-transform: capitalize;\\n}\\n\\n.columnvalue {\\n font-size: 11px !important;\\n position: relative;\\n}\\n\\n.cust-width {\\n width: 12%;\\n}\\n\\ntd.mat-cell,\\ntd.mat-footer-cell,\\nth.mat-header-cell {\\n padding: 3px;\\n border-style: solid none none solid;\\n border-width: 0.1px;\\n border-color: lightgray;\\n}\\n\\ntd.mat-cell,\\ntd.mat-footer-cell {\\n padding: 3px;\\n text-align: start;\\n}\\n\\nth.mat-header-cell {\\n padding: 3px;\\n text-align: end !important;\\n}\\n\\n.cont-width {\\n width: 107px;\\n}\\n\\n.reg-width {\\n width: 130px;\\n}\\n\\n.che-width {\\n width: 110px;\\n}\\n\\n.delName-width {\\n width: 141px;\\n}\\n\\n.set-min-width-report {\\n min-width: 1425px;\\n}\\n\\n.paginator ::ng-deep .mat-form-field-infix {\\n height: 18px !important;\\n padding-bottom: 0px;\\n}\\n\\n.searchfilter {\\n width: 100px;\\n height: 30px;\\n margin-left: 10px;\\n font-size: 12px;\\n border: 0;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9jb21wb25lbnQvbWFya2V0LXNoYXJlLXJlcG9ydGluZy9tYXJrZXQtc2hhcmUtcmVwb3J0aW5nLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnQvbWFya2V0LXNoYXJlLXJlcG9ydGluZy9tYXJrZXQtc2hhcmUtcmVwb3J0aW5nLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksaUJBQUE7RUFDQSxXQUFBO0FDQ0o7O0FERUE7RUFDSSxxQ0FBQTtFQUNBLGlCQUFBO0VBQ0EsaUJBQUE7RUFDQSx1QkFBQTtBQ0NKOztBREdJO0VBQ0ksa0JBQUE7QUNBUjs7QURJQTtFQUNJLG1CQUFBO0FDREo7O0FESUE7RUFDSSx1QkFBQTtBQ0RKOztBRElBO0VBQ0ksaUJBQUE7RUFDQSxtQkFBQTtFQUNBLGNBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7RUFDQSxvQkFBQTtBQ0RKOztBRElBO0VBQ0ksbUJBQUE7RUFDQSxnQkFBQTtBQ0RKOztBRElBO0VBQ0ksZUFBQTtFQUNBLFdBQUE7QUNESjs7QURJQTtFQUNJLDJCQUFBO0VBQ0Esa0JBQUE7RUFDQSxpQkFBQTtFQUVBLG1CQUFBO0VBQ0EsMEJBQUE7RUFDQSxZQUFBO0FDRko7O0FES0E7RUFDSSxpQkFBQTtBQ0ZKOztBREtBO0VBQ0ksVUFBQTtBQ0ZKOztBREtBO0VBQ0ksa0JBQUE7QUNGSjs7QURLQTtFQUNJLE1BQUE7RUFDQSxjQUFBO0VBQ0EsaUJBQUE7QUNGSjs7QURLQTtFQUNJLGlCQUFBO0FDRko7O0FES0E7RUFDSSxhQUFBO0FDRko7O0FES0E7RUFDSSxNQUFBO0VBQ0EsMEJBQUE7RUFDQSxpQkFBQTtBQ0ZKOztBREtBO0VBQ0ksMEJBQUE7RUFDQSxnQkFBQTtBQ0ZKOztBREtBO0VBQ0ksZUFBQTtBQ0ZKOztBREtBO0VBQ0ksV0FBQTtBQ0ZKOztBREtBO0VBQ0ksa0JBQUE7RUFDQSxpQkFBQTtFQUNBLFlBQUE7RUFDQSw2QkFBQTtBQ0ZKOztBREdJO0VBQ0ksc0NBQUE7RUFDQSxrQkFBQTtFQUNBLGVBQUE7RUFDQSxZQUFBO0VBQ0EsaUJBQUE7RUFDQSxZQUFBO0FDRFI7O0FES0E7RUFDSSxrQkFBQTtFQUNBLFVBQUE7RUFDQSxRQUFBO0FDRko7O0FES0E7RUFDSSxnQkFBQTtBQ0ZKOztBREtBO0VBQ0ksdUJBQUE7RUFDQSx5QkFBQTtFQUNBLFlBQUE7RUFDQSxpQkFBQTtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7QUNGSjs7QURLQTtFQUNJLGtCQUFBO0VBQ0EsY0FBQTtFQUNBLGlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxtQkFBQTtBQ0ZKOztBRE1JO0VBQ0ksZ0JBQUE7RUFDQSxrQkFBQTtBQ0hSOztBREtJO0VBQ0ksaUJBQUE7RUFDQSxnQkFBQTtBQ0hSOztBRE9BO0VBQ0ksbUNBQUE7RUFDQSx1QkFBQTtBQ0pKOztBRE9BO0VBQ0ksc0JBQUE7RUFDQSxtQkFBQTtFQUNBLGNBQUE7RUFDQSwwQkFBQTtBQ0pKOztBRFFBO0VBQ0ksMEJBQUE7RUFDQSxrQkFBQTtBQ0xKOztBRFFBO0VBQ0ksVUFBQTtBQ0xKOztBRFFBOzs7RUFHSSxZQUFBO0VBQ0EsbUNBQUE7RUFDQSxtQkFBQTtFQUNBLHVCQUFBO0FDTEo7O0FEUUE7O0VBRUksWUFBQTtFQUNBLGlCQUFBO0FDTEo7O0FEUUE7RUFDSSxZQUFBO0VBQ0EsMEJBQUE7QUNMSjs7QURRQTtFQUNJLFlBQUE7QUNMSjs7QURRQTtFQUNJLFlBQUE7QUNMSjs7QURRQTtFQUNJLFlBQUE7QUNMSjs7QURRQTtFQUNJLFlBQUE7QUNMSjs7QURRQTtFQUNJLGlCQUFBO0FDTEo7O0FEUUE7RUFDSSx1QkFBQTtFQUNBLG1CQUFBO0FDTEo7O0FEUUE7RUFDSSxZQUFBO0VBQ0EsWUFBQTtFQUNBLGlCQUFBO0VBQ0EsZUFBQTtFQUNBLFNBQUE7QUNMSiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudC9tYXJrZXQtc2hhcmUtcmVwb3J0aW5nL21hcmtldC1zaGFyZS1yZXBvcnRpbmcuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIud29ya2luZy1hcmVhIHtcbiAgICBtYXJnaW4tdG9wOiAxMTVweDtcbiAgICB3aWR0aDogYXV0bztcbn1cblxuLmNhbGwtc3RhdHMtY2FyZC1ib3JkZXIxIHtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIHNvbGlkIHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDAlO1xuICAgIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4uY2FsbC1zdGF0cy1jYXJkIHtcbiAgICAubWF0LWNhcmQtdGl0bGUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgfVxufVxuXG4uZmlsdGVyZGl2IHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uZmlsdGVyLXN0eWxlIHtcbiAgICB3aWR0aDogMTI1cHggIWltcG9ydGFudDtcbn1cblxuLmZpbHRlci1sYWJlbCB7XG4gICAgZm9udDogMTJweCBSb2JvdG87XG4gICAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgICBjb2xvcjogIzNjM2MzYztcbiAgICBvcGFjaXR5OiAxO1xuICAgIG1hcmdpbi1ib3R0b206IDNweDtcbiAgICBwYWRkaW5nOiAxcHggMHB4IDBweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0IHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMHB4O1xuICAgIHBhZGRpbmctdG9wOiAycHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWJ1dHRvbiB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQ6IHdoaXRlO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIC8vcGFkZGluZy10b3A6IDJweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogMjFweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICAgIHBhZGRpbmctbGVmdDogOHB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdmFsdWUge1xuICAgIHdpZHRoOiA4OSU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC1hcnJvdy13cmFwcGVyIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gICAgdG9wOiAwO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgdG9wOiAwO1xuICAgIG1hcmdpbi10b3A6IDZweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctbGVmdDogNXB4O1xufVxuXG4uZmlsdGVyMS1pbnB1dCB7XG4gICAgbWFyZ2luLXRvcDogN3B4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDVweDtcbn1cblxuLmZpbHRlcjEge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmZpbHRlcjIge1xuICAgIHdpZHRoOiBhdXRvO1xufVxuXG4uY2FsZW5kZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICB3aWR0aDogMTAwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgaW5wdXQge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXkgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gICAgICAgIHdpZHRoOiAxMDBweDtcbiAgICB9XG59XG5cbi5jYWxhbmRlci1idG4ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMHB4O1xuICAgIHRvcDogNXB4O1xufVxuXG4uYnV0dG9uLW1hcmdpbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDNweDtcbn1cblxuLmZpbHRlckJ1dHRvbiB7XG4gICAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RDtcbiAgICBoZWlnaHQ6IDI1cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMXB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAycHg7XG59XG5cbi5leGFtcGxlLWNhcmQxIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi5mb3JtLWZpZWxkIHtcbiAgICBsYWJlbCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICB9XG4gICAgaW5wdXQge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDdweDtcbiAgICAgICAgcGFkZGluZy10b3A6IDNweDtcbiAgICB9XG59XG5cbi50YWJsZS1ib3JkZXIubWF0LXRhYmxlIHtcbiAgICBib3JkZXItc3R5bGU6IG5vbmUgc29saWQgc29saWQgbm9uZTtcbiAgICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxuLmNvbHVtbkhlYWRlciB7XG4gICAgZm9udDogYm9sZCAxMnB4IFJvYm90bztcbiAgICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICAgIC8vbWluLXdpZHRoOiAxMTBweCAhaW1wb3J0YW50O1xufVxuXG4uY29sdW1udmFsdWUge1xuICAgIGZvbnQtc2l6ZTogMTFweCAhaW1wb3J0YW50O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmN1c3Qtd2lkdGgge1xuICAgIHdpZHRoOiAxMiU7XG59XG5cbnRkLm1hdC1jZWxsLFxudGQubWF0LWZvb3Rlci1jZWxsLFxudGgubWF0LWhlYWRlci1jZWxsIHtcbiAgICBwYWRkaW5nOiAzcHg7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZCBub25lIG5vbmUgc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAwLjFweDtcbiAgICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxudGQubWF0LWNlbGwsXG50ZC5tYXQtZm9vdGVyLWNlbGwge1xuICAgIHBhZGRpbmc6IDNweDtcbiAgICB0ZXh0LWFsaWduOiBzdGFydDtcbn1cblxudGgubWF0LWhlYWRlci1jZWxsIHtcbiAgICBwYWRkaW5nOiAzcHg7XG4gICAgdGV4dC1hbGlnbjogZW5kICFpbXBvcnRhbnQ7XG59XG5cbi5jb250LXdpZHRoIHtcbiAgICB3aWR0aDogMTA3cHg7XG59XG5cbi5yZWctd2lkdGgge1xuICAgIHdpZHRoOiAxMzBweDtcbn1cblxuLmNoZS13aWR0aCB7XG4gICAgd2lkdGg6IDExMHB4O1xufVxuXG4uZGVsTmFtZS13aWR0aCB7XG4gICAgd2lkdGg6IDE0MXB4O1xufVxuXG4uc2V0LW1pbi13aWR0aC1yZXBvcnQge1xuICAgIG1pbi13aWR0aDogMTQyNXB4O1xufVxuXG4ucGFnaW5hdG9yIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgIGhlaWdodDogMThweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAwcHg7XG59XG5cbi5zZWFyY2hmaWx0ZXIge1xuICAgIHdpZHRoOiAxMDBweDtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGJvcmRlcjogMDtcbn0iLCIud29ya2luZy1hcmVhIHtcbiAgbWFyZ2luLXRvcDogMTE1cHg7XG4gIHdpZHRoOiBhdXRvO1xufVxuXG4uY2FsbC1zdGF0cy1jYXJkLWJvcmRlcjEge1xuICBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIHNvbGlkIHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLXJhZGl1czogMCU7XG4gIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4uY2FsbC1zdGF0cy1jYXJkIC5tYXQtY2FyZC10aXRsZSB7XG4gIG1hcmdpbi1ib3R0b206IDBweDtcbn1cblxuLmZpbHRlcmRpdiB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5maWx0ZXItc3R5bGUge1xuICB3aWR0aDogMTI1cHggIWltcG9ydGFudDtcbn1cblxuLmZpbHRlci1sYWJlbCB7XG4gIGZvbnQ6IDEycHggUm9ib3RvO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICBjb2xvcjogIzNjM2MzYztcbiAgb3BhY2l0eTogMTtcbiAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICBwYWRkaW5nOiAxcHggMHB4IDBweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0IHtcbiAgcGFkZGluZy1ib3R0b206IDBweDtcbiAgcGFkZGluZy10b3A6IDJweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtYnV0dG9uIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250OiB3aGl0ZTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgcGFkZGluZy1ib3R0b206IDBweDtcbiAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMjFweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICBwYWRkaW5nLWxlZnQ6IDhweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgd2lkdGg6IDg5JTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LWFycm93LXdyYXBwZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gIHRvcDogMDtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdG9wOiAwO1xuICBtYXJnaW4tdG9wOiA2cHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG59XG5cbi5maWx0ZXIxLWlucHV0IHtcbiAgbWFyZ2luLXRvcDogN3B4ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1sZWZ0OiA1cHg7XG59XG5cbi5maWx0ZXIxIHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uZmlsdGVyMiB7XG4gIHdpZHRoOiBhdXRvO1xufVxuXG4uY2FsZW5kZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICB3aWR0aDogMTAwcHg7XG4gIG1hcmdpbi1yaWdodDogMTBweCAhaW1wb3J0YW50O1xufVxuLmNhbGVuZGVyIGlucHV0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBoZWlnaHQ6IDI0cHg7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xuICB3aWR0aDogMTAwcHg7XG59XG5cbi5jYWxhbmRlci1idG4ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwcHg7XG4gIHRvcDogNXB4O1xufVxuXG4uYnV0dG9uLW1hcmdpbiB7XG4gIG1hcmdpbi1sZWZ0OiAzcHg7XG59XG5cbi5maWx0ZXJCdXR0b24ge1xuICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RDtcbiAgaGVpZ2h0OiAyNXB4O1xuICBsaW5lLWhlaWdodDogMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMXB4O1xuICBwYWRkaW5nLWJvdHRvbTogMnB4O1xufVxuXG4uZXhhbXBsZS1jYXJkMSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi5mb3JtLWZpZWxkIGxhYmVsIHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbWFyZ2luLWJvdHRvbTogMHB4O1xufVxuLmZvcm0tZmllbGQgaW5wdXQge1xuICBwYWRkaW5nLWxlZnQ6IDdweDtcbiAgcGFkZGluZy10b3A6IDNweDtcbn1cblxuLnRhYmxlLWJvcmRlci5tYXQtdGFibGUge1xuICBib3JkZXItc3R5bGU6IG5vbmUgc29saWQgc29saWQgbm9uZTtcbiAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG59XG5cbi5jb2x1bW5IZWFkZXIge1xuICBmb250OiBib2xkIDEycHggUm9ib3RvO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICBjb2xvcjogIzMzMzMzMztcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG59XG5cbi5jb2x1bW52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogMTFweCAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5jdXN0LXdpZHRoIHtcbiAgd2lkdGg6IDEyJTtcbn1cblxudGQubWF0LWNlbGwsXG50ZC5tYXQtZm9vdGVyLWNlbGwsXG50aC5tYXQtaGVhZGVyLWNlbGwge1xuICBwYWRkaW5nOiAzcHg7XG4gIGJvcmRlci1zdHlsZTogc29saWQgbm9uZSBub25lIHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDAuMXB4O1xuICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxudGQubWF0LWNlbGwsXG50ZC5tYXQtZm9vdGVyLWNlbGwge1xuICBwYWRkaW5nOiAzcHg7XG4gIHRleHQtYWxpZ246IHN0YXJ0O1xufVxuXG50aC5tYXQtaGVhZGVyLWNlbGwge1xuICBwYWRkaW5nOiAzcHg7XG4gIHRleHQtYWxpZ246IGVuZCAhaW1wb3J0YW50O1xufVxuXG4uY29udC13aWR0aCB7XG4gIHdpZHRoOiAxMDdweDtcbn1cblxuLnJlZy13aWR0aCB7XG4gIHdpZHRoOiAxMzBweDtcbn1cblxuLmNoZS13aWR0aCB7XG4gIHdpZHRoOiAxMTBweDtcbn1cblxuLmRlbE5hbWUtd2lkdGgge1xuICB3aWR0aDogMTQxcHg7XG59XG5cbi5zZXQtbWluLXdpZHRoLXJlcG9ydCB7XG4gIG1pbi13aWR0aDogMTQyNXB4O1xufVxuXG4ucGFnaW5hdG9yIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBoZWlnaHQ6IDE4cHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1ib3R0b206IDBweDtcbn1cblxuLnNlYXJjaGZpbHRlciB7XG4gIHdpZHRoOiAxMDBweDtcbiAgaGVpZ2h0OiAzMHB4O1xuICBtYXJnaW4tbGVmdDogMTBweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBib3JkZXI6IDA7XG59Il19 */\"","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { DateTimeAdapter, OWL_DATE_TIME_FORMATS, OWL_DATE_TIME_LOCALE } from 'ng-pick-datetime';\nimport { MomentDateTimeAdapter } from 'ng-pick-datetime-moment';\nimport { FilterPipePipe } from '../../pipes/filter-pipe.pipe';\nimport { Router } from '@angular/router';\nimport { DatePipe } from '@angular/common';\nimport { CommonService } from '../../core/service/common-service/common.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { MatTableDataSource, MatSort, MatPaginator, MatSelect, MatOption } from '@angular/material';\nimport { FormControl, FormBuilder, FormGroup } from '@angular/forms';\n\nexport const MY_CUSTOM_FORMATS = {\n parseInput: 'LL LT',\n fullPickerInput: 'DD-MM-YYYY LT',\n datePickerInput: 'DD-MM-YYYY',\n timePickerInput: 'LT',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n};\n\n@Component({\n selector: 'app-market-share-reporting',\n templateUrl: './market-share-reporting.component.html',\n styleUrls: ['./market-share-reporting.component.scss'],\n providers: [\n { provide: DateTimeAdapter, useClass: MomentDateTimeAdapter, deps: [OWL_DATE_TIME_LOCALE] },\n { provide: OWL_DATE_TIME_FORMATS, useValue: MY_CUSTOM_FORMATS },\n FilterPipePipe\n ],\n})\nexport class MarketShareReportingComponent implements OnInit {\n\n @ViewChild(MatSort, { static: true }) sort: MatSort;\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\n @ViewChild('allSelectedRegion', { static: true }) private allSelectedRegion: MatOption;\n @ViewChild('allSelectedWorkshopCode', { static: true }) private allSelectedWorkshopCode: MatOption;\n @ViewChild('allSelectedServiceType', { static: true }) private allSelectedServiceType: MatOption;\n @ViewChild('allSelectedLostAge', { static: true }) private allSelectedLostAge: MatOption;\n @ViewChild('allSelectedVehicleAge', { static: true }) private allSelectedVehicleAge: MatOption;\n\n uniqueLostAge: any[] = [\n {key: \"0-1\", value: \"0-1\"},\n {key: \"1-2\", value: \"1-2\"},\n {key: \"2-3\", value: \"2-3\"},\n {key: \"3-4\", value: \"3-4\"},\n {key: \"4-5\", value: \"4-5\"},\n {key: \"5-6\", value: \"5-6\"},\n {key: \"6-7\", value: \"6-7\"},\n {key: \"7-8\", value: \"7-8\"}\n ];\n\n uniqueVehicleAge: any[] = [\n {key: \"0-1\", value: \"0-1\"},\n {key: \"1-2\", value: \"1-2\"},\n {key: \"2-3\", value: \"2-3\"},\n {key: \"3-4\", value: \"3-4\"},\n {key: \"4-5\", value: \"4-5\"},\n {key: \"5-6\", value: \"5-6\"},\n {key: \"6-7\", value: \"6-7\"},\n {key: \"7-8\", value: \"7-8\"}\n ];\n\n uniqueServiceTypeValue: any[] = [\n {key: \"1\", value: \"ECS - Early Care Service\"},\n {key: \"3\", value: \"PMS - Preventive Maintenance Service\"},\n // {key: \"21,22,23\", value: \"FS - Free Service\"},\n {key: \"21\", value: \"FS - Free Service 1\"},\n {key: \"22\", value: \"FS - Free Service 2\"},\n {key: \"23\", value: \"FS - Free Service 3\"},\n ];\n\n spinner: boolean;\n userId: string;\n userInfo: any;\n today: Date = new Date();\n toDate: Date = new Date();\n fromDate: Date = new Date();\n uniqueRegionValue: string[] = [];\n uniqueWorkshopCodeValue: string[] = [];\n //uniqueServiceTypeValue: string[] = [];\n selectedRegionValues: string[] = [];\n selectedWorkshopValues: string[] = [];\n selectedLostAgeValues: string[] = [];\n selectedVehicleAgeValues: string[] = [];\n selectedServiceTypeValues: string[] = [];\n selectRegion: FormGroup;\n selectWorkshop: FormGroup;\n selectServiceType: FormGroup;\n selectLostAge: FormGroup;\n selectVehicleAge: FormGroup;\n workshopCodeType: any;\n uniqueWorkshopCodeValueCopy: string[] = [];\n selectedDealer:any;\n dealerCode: string[] = [];\n maxDate: Date = new Date();\n\n constructor(\n private router: Router,\n private datePipe: DatePipe,\n private commonService: CommonService,\n private toastr: ToastrService,\n private filterPipePipe: FilterPipePipe,\n private fb: FormBuilder\n ) { }\n\n ngOnInit() {\n this.userId = localStorage.getItem('userId');\n this.userInfo = JSON.parse(localStorage.getItem('userInfo'));\n if (localStorage.getItem('userId') == null || localStorage.getItem('userId') == undefined) {\n this.router.navigate(['login']);\n }\n\n this.selectRegion = this.fb.group({\n regionType: ['']\n });\n\n this.selectWorkshop = this.fb.group({\n workshopCodeType: [''],\n selectedDealer: ['']\n });\n\n this.selectServiceType = this.fb.group({\n serviceTypeValue: ['']\n });\n\n this.selectLostAge = this.fb.group({\n lostAgeType: ['']\n });\n\n this.selectVehicleAge = this.fb.group({\n vehicleAgeType: ['']\n });\n\n this.getRegion();\n this.getWorkshopCode();\n }\n\n /**\n * Name: getRegion\n * purpose: To get region value\n */\n getRegion() {\n this.spinner = true;\n this.commonService.getRegionValue()\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n if (res['responseData'].length) {\n res['responseData'].forEach(element => {\n this.uniqueRegionValue.push(element.workshopRegion);\n });\n //this.selectedRegionValues = this.uniqueRegionValue[0];\n this.spinner = false;\n }\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: filterTriggered\n * @param {Event} event - region filter data\n * purpose: To set dealer code filter values\n */\n filterTriggered(event: any): void {\n this.uniqueWorkshopCodeValue = [];\n //this.selectWorkshop.setValue({workshopCodeType:''});\n let value;\n if(this.selectRegion.value.regionType == \"0\") {\n value = '';\n } else {\n value = this.selectRegion.value.regionType.toString();\n }\n this.commonService.getMSDealerCode(value)\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n if (res['responseData'].length) {\n res['responseData'].forEach(element => {\n this.uniqueWorkshopCodeValue.push(element.workshopCode);\n });\n this.uniqueWorkshopCodeValueCopy = this.uniqueWorkshopCodeValue;\n this.spinner = false;\n }\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: getLeadExcelReport\n * purpose: To export Lead Data report as excel\n */\n getLeadExcelReport() {\n this.spinner = true;\n if(this.selectRegion.value.regionType != \"\"){\n this.selectRegion.value.regionType.forEach((element,index)=>{\n if(element == \"0\"){\n this.selectRegion.value.regionType.splice(index,1);\n }\n });\n }\n if(this.selectWorkshop.value.workshopCodeType != \"\"){\n this.selectWorkshop.value.workshopCodeType.forEach((element,index)=>{\n if(element == \"0\"){\n this.selectWorkshop.value.workshopCodeType.splice(index,1);\n }\n });\n }\n if(this.selectServiceType.value.serviceTypeValue != \"\"){\n this.selectServiceType.value.serviceTypeValue.forEach((element,index)=>{\n if(element == \"0\"){\n this.selectServiceType.value.serviceTypeValue.splice(index,1);\n }\n });\n }\n if(this.selectLostAge.value.lostAgeType != \"\"){\n this.selectLostAge.value.lostAgeType.forEach((element,index)=>{\n if(element == \"0\"){\n this.selectLostAge.value.lostAgeType.splice(index,1);\n }\n });\n }\n if(this.selectVehicleAge.value.vehicleAgeType != \"\"){\n this.selectVehicleAge.value.vehicleAgeType.forEach((element,index)=>{\n if(element == \"0\"){\n this.selectVehicleAge.value.vehicleAgeType.splice(index,1);\n }\n });\n }\n let request = {\n region: this.selectRegion.value.regionType.toString(),\n workshopCode: this.selectWorkshop.value.workshopCodeType.toString(),\n serviceTypeCode: this.selectServiceType.value.serviceTypeValue.toString(),\n startDate: this.datePipe.transform(this.fromDate, \"yyyy-MM-dd\"),\n endDate: this.datePipe.transform(this.toDate, \"yyyy-MM-dd\"),\n vehicalAge: this.selectVehicleAge.value.vehicleAgeType.toString(),\n lostCust: this.selectLostAge.value.lostAgeType.toString(),\n userId: this.userId\n };\n\n let startDate = this.datePipe.transform(this.fromDate, \"yyyy-MM-dd\");\n let endDate = this.datePipe.transform(this.toDate, \"yyyy-MM-dd\");\n\n let fileName = \"Lead Status Report_From_\" + startDate + \"_To_\" + endDate;\n this.commonService.getLeadExcelReport(request)\n .subscribe(fileData => {\n if (fileData) {\n const blob: any = new Blob([fileData], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\n let link = document.createElement(\"a\");\n if (link.download !== undefined) {\n let url = URL.createObjectURL(blob);\n link.setAttribute(\"href\", url);\n link.setAttribute(\"download\", fileName);\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n this.spinner = false;\n }\n } else {\n this.spinner = false;\n }\n }, err => {\n this.spinner = false;\n });\n }\n\n /**\n * Name: getMarketShareReport\n * purpose: To export Market Share Data report as excel\n */\n getMarketShareReport() {\n this.spinner = true;\n if(this.selectRegion.value.regionType != \"\"){\n this.selectRegion.value.regionType.forEach((element,index)=>{\n if(element == \"0\"){\n this.selectRegion.value.regionType.splice(index,1);\n }\n });\n }\n if(this.selectWorkshop.value.workshopCodeType != \"\"){\n this.selectWorkshop.value.workshopCodeType.forEach((element,index)=>{\n if(element == \"0\"){\n this.selectWorkshop.value.workshopCodeType.splice(index,1);\n }\n });\n }\n if(this.selectServiceType.value.serviceTypeValue != \"\"){\n this.selectServiceType.value.serviceTypeValue.forEach((element,index)=>{\n if(element == \"0\"){\n this.selectServiceType.value.serviceTypeValue.splice(index,1);\n }\n });\n }\n if(this.selectLostAge.value.lostAgeType != \"\"){\n this.selectLostAge.value.lostAgeType.forEach((element,index)=>{\n if(element == \"0\"){\n this.selectLostAge.value.lostAgeType.splice(index,1);\n }\n });\n }\n if(this.selectVehicleAge.value.vehicleAgeType != \"\"){\n this.selectVehicleAge.value.vehicleAgeType.forEach((element,index)=>{\n if(element == \"0\"){\n this.selectVehicleAge.value.vehicleAgeType.splice(index,1);\n }\n });\n }\n let request = {\n region: this.selectRegion.value.regionType.toString(),\n workshopCode: this.selectWorkshop.value.workshopCodeType.toString(),\n serviceTypeCode: this.selectServiceType.value.serviceTypeValue.toString(),\n startDate: this.datePipe.transform(this.fromDate, \"yyyy-MM-dd\"),\n endDate: this.datePipe.transform(this.toDate, \"yyyy-MM-dd\"),\n vehicalAge: this.selectVehicleAge.value.vehicleAgeType.toString(),\n lostCust: this.selectLostAge.value.lostAgeType.toString(),\n userId: this.userId\n };\n\n let startDate = this.datePipe.transform(this.fromDate, \"yyyy-MM-dd\");\n let endDate = this.datePipe.transform(this.toDate, \"yyyy-MM-dd\");\n let fileName = \"Market Share Report_From_\" + startDate + \"_To_\" + endDate;\n this.commonService.getMarketShareReport(request)\n .subscribe(fileData => {\n if (fileData) {\n const blob: any = new Blob([fileData], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\n let link = document.createElement(\"a\");\n if (link.download !== undefined) {\n let url = URL.createObjectURL(blob);\n link.setAttribute(\"href\", url);\n link.setAttribute(\"download\", fileName);\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n this.spinner = false;\n }\n } else {\n this.spinner = false;\n }\n }, err => {\n this.spinner = false;\n });\n }\n\n getWorkshopCode(){\n this.spinner = true;\n this.commonService.getMSDealerCode('')\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n if (res['responseData'].length) {\n res['responseData'].forEach(element => {\n this.uniqueWorkshopCodeValue.push(element.workshopCode);\n });\n this.uniqueWorkshopCodeValueCopy = this.uniqueWorkshopCodeValue;\n this.spinner = false;\n }\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: toggleAllSelectionRegion\n * purpose: To select/remove all data in workshop drop down\n */\n toggleAllSelectionRegion(): void {\n if (this.allSelectedRegion.selected) {\n this.selectRegion.controls.regionType.patchValue([...this.uniqueRegionValue, 0]);\n } else {\n this.selectRegion.controls.regionType.patchValue([]);\n }\n }\n\n tosslePerOneRegion() {\n if (this.allSelectedRegion.selected) {\n this.allSelectedRegion.deselect();\n return false;\n }\n\n if (this.selectRegion.controls.regionType.value.length == this.uniqueRegionValue.length) {\n this.allSelectedRegion.select();\n }\n }\n\n /**\n * Name: toggleAllSelectionWorkshopCode\n * purpose: To select/remove all data in workshop drop down\n */\n toggleAllSelectionWorkshopCode(): void {\n if (this.allSelectedWorkshopCode.selected) {\n this.selectWorkshop.controls.workshopCodeType.patchValue([...this.uniqueWorkshopCodeValue, 0]);\n } else {\n this.selectWorkshop.controls.workshopCodeType.patchValue([]);\n }\n }\n\n tosslePerOneWorkshopCode() {\n if (this.allSelectedWorkshopCode.selected) {\n this.allSelectedWorkshopCode.deselect();\n return false;\n }\n\n if (this.selectWorkshop.controls.workshopCodeType.value.length == this.uniqueWorkshopCodeValue.length) {\n this.allSelectedWorkshopCode.select();\n }\n }\n\n /**\n * Name: toggleAllSelectionServiceType\n * purpose: To select/remove all data in workshop drop down\n */\n toggleAllSelectionServiceType(): void {\n if (this.allSelectedServiceType.selected) {\n this.selectServiceType.controls.serviceTypeValue.patchValue([...this.uniqueServiceTypeValue.map(item => item.key), 0]);\n } else {\n this.selectServiceType.controls.serviceTypeValue.patchValue([]);\n }\n }\n\n\n tosslePerOneServiceType() {\n if (this.allSelectedServiceType.selected) {\n this.allSelectedServiceType.deselect();\n return false;\n }\n\n if (this.selectServiceType.controls.serviceTypeValue.value.length == this.uniqueServiceTypeValue.length) {\n this.allSelectedServiceType.select();\n }\n }\n\n /**\n * Name: toggleAllSelectionLostAge\n * purpose: To select/remove all data in workshop drop down\n */\n toggleAllSelectionLostAge(): void {\n if (this.allSelectedLostAge.selected) {\n this.selectLostAge.controls.lostAgeType.patchValue([...this.uniqueLostAge.map(item => item.key), 0]);\n } else {\n this.selectLostAge.controls.lostAgeType.patchValue([]);\n }\n }\n\n\n tosslePerOneLostAge() {\n if (this.allSelectedLostAge.selected) {\n this.allSelectedLostAge.deselect();\n return false;\n }\n\n if (this.selectLostAge.controls.lostAgeType.value.length == this.uniqueLostAge.length) {\n this.allSelectedLostAge.select();\n }\n }\n\n /**\n * Name: toggleAllSelectionVehicleAge\n * purpose: To select/remove all data in workshop drop down\n */\n toggleAllSelectionVehicleAge(): void {\n if (this.allSelectedVehicleAge.selected) {\n this.selectVehicleAge.controls.vehicleAgeType.patchValue([...this.uniqueVehicleAge.map(item => item.key), 0]);\n } else {\n this.selectVehicleAge.controls.vehicleAgeType.patchValue([]);\n }\n }\n\n tosslePerOneVehicleAge() {\n if (this.allSelectedVehicleAge.selected) {\n this.allSelectedVehicleAge.deselect();\n return false;\n }\n\n if (this.selectVehicleAge.controls.vehicleAgeType.value.length == this.uniqueVehicleAge.length) {\n this.allSelectedVehicleAge.select();\n }\n }\n\n onKey() : void {\n this.uniqueWorkshopCodeValue = this.uniqueWorkshopCodeValueCopy;\n this.dealerCode = [];\n this.selectedDealer = this.selectWorkshop.controls.selectedDealer.value;\n this.selectedDealer = this.selectedDealer.toString();\n this.dealerCode = this.uniqueWorkshopCodeValue.filter(item =>\n item.toLowerCase().includes(this.selectedDealer.toLowerCase())\n );\n if(this.dealerCode.length > 0){\n this.closeInput();\n }\n this.uniqueWorkshopCodeValue = [];\n this.uniqueWorkshopCodeValue = this.dealerCode;\n }\n\n closeInput() : void {\n if(this.dealerCode.length == 0) {\n //this.selectedDealer = '';\n this.selectWorkshop.controls['selectedDealer'].setValue(\"\");\n this.uniqueWorkshopCodeValue = this.uniqueWorkshopCodeValueCopy;\n }\n }\n\n dateFilterTriggered(event: any): void {\n this.today = new Date();\n if((new Date(new Date(event.source.value).getTime()+(1000*60*60*24*30))).getTime() >= this.today.getTime()){\n this.today = new Date();\n if((new Date(new Date(event.source.value).getTime()+(1000*60*60*24*30))).getTime() >= this.today.getTime()){\n this.toDate = new Date();\n } else {\n this.toDate = new Date(new Date(event.source.value).getTime()+(1000*60*60*24*30));\n }\n } else {\n this.today = new Date(new Date(event.source.value).getTime()+(1000*60*60*24*30));\n this.toDate = new Date(new Date(event.source.value).getTime()+(1000*60*60*24*30));\n }\n }\n}","export class ListCustData {\n customerCode: string;\n product: string;\n source: string;\n leadType: string;\n buyDate: string;\n leadStatusCode: string;\n leadSubStatusCode: string;\n userId: string;\n countryCode: string;\n customerName: string;\n enquiryId: string;\n vin: string;\n leadStatus: string;\n followUp: string;\n followUpDate: string;\n enquiryRemarks: string;\n contractNumber: string\n\n constructor(\n customerCode: string,\n vin: string,\n product: string,\n source: string,\n leadType: string,\n buyDate: string,\n leadStatusCode: string,\n leadSubStatusCode: string,\n userId: string,\n countryCode: string,\n followUpDate: string,\n enquiryRemarks: string,\n contractNumber: string\n ) {\n this.source=source;\n this.customerCode=customerCode;\n this.userId= userId;\n this.countryCode= countryCode\n this.product = product;\n this.vin=vin;\n this.leadStatusCode = leadStatusCode;\n this.leadType= leadType;\n this.buyDate = buyDate;\n this.leadSubStatusCode = leadSubStatusCode;\n this.followUpDate=followUpDate;\n this.enquiryRemarks=enquiryRemarks;\n this.contractNumber=contractNumber;\n }\n}\n","export default \".working-area {\\n margin-top: 115px;\\n}\\n\\ntable {\\n width: 100%;\\n}\\n\\n.calling-table tr {\\n cursor: pointer;\\n}\\n\\n.table-head-call {\\n background: none;\\n padding-top: 12px;\\n}\\n\\n.callList {\\n font: Bold 20px Roboto;\\n letter-spacing: 0px;\\n color: #484848;\\n opacity: 1;\\n}\\n\\n.close-con {\\n font-size: 18px;\\n cursor: pointer;\\n top: 3px;\\n right: 1px;\\n position: absolute !important;\\n z-index: 10;\\n opacity: 1;\\n}\\n\\n.filter-label {\\n font: 12px Roboto;\\n letter-spacing: 0px;\\n color: #3c3c3c;\\n opacity: 1;\\n margin-bottom: 3px;\\n padding: 1px 4px 0px;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-infix {\\n border: 1px solid lightgray;\\n border-radius: 5px;\\n background: white;\\n padding: 0;\\n height: 20px;\\n width: 196px;\\n}\\n\\n.filter1 ::ng-deep .mat-select {\\n padding: 4px 0px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-trigger {\\n padding-left: 8px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-value {\\n width: 90% !important;\\n}\\n\\n.filter1 ::ng-deep .mat-button {\\n font-size: 12px;\\n font: white;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label-wrapper {\\n top: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-underline {\\n display: none;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label {\\n top: 0;\\n margin-top: 4px !important;\\n padding-left: 5px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-arrow-wrapper {\\n padding-bottom: 0px;\\n}\\n\\n.refesh-icon {\\n float: right;\\n margin-bottom: -30px;\\n margin-right: 20px;\\n margin-top: 30px;\\n cursor: pointer;\\n}\\n\\n.coloredRow {\\n background: #ffff99;\\n}\\n\\n.coloredGreenRow {\\n background: #90ee90;\\n}\\n\\n.mat-dialog-title {\\n background-color: darkgray;\\n}\\n\\n.callList-right {\\n font-size: 11px;\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.columnHeader {\\n font: Bold 12px Roboto;\\n letter-spacing: 0px;\\n color: #333333;\\n text-transform: capitalize;\\n}\\n\\n.lost {\\n color: #e64243;\\n position: absolute;\\n left: 10px;\\n font-size: 10px;\\n top: 38%;\\n}\\n\\n.inbound {\\n color: #2e3668;\\n position: absolute;\\n left: 0px;\\n font-size: 10px;\\n top: 38%;\\n}\\n\\n.columnvalue {\\n font-size: 14px;\\n position: relative;\\n}\\n\\n.filter1 {\\n font-size: 12px;\\n}\\n\\n.dataview {\\n margin-left: 5px;\\n margin-top: 3px;\\n}\\n\\n.filterButton {\\n color: white !important;\\n background-color: #00457D;\\n height: 20px;\\n line-height: 10px;\\n margin-bottom: 1px;\\n width: 75px;\\n margin-top: 17px;\\n}\\n\\n.filterButton1 {\\n color: white !important;\\n background-color: #00457D;\\n height: 20px;\\n line-height: 10px;\\n margin-top: 17px;\\n margin-bottom: 1px;\\n}\\n\\n.filterdiv {\\n align-items: center;\\n box-sizing: border-box;\\n display: flex;\\n flex-wrap: wrap;\\n}\\n\\n.serviceDueDate {\\n width: 10% !important;\\n}\\n\\n.followUp {\\n width: 8% !important;\\n}\\n\\ntd.mat-cell,\\ntd.mat-footer-cell,\\nth.mat-header-cell {\\n padding: 10px;\\n border-style: solid none none solid;\\n border-width: 0.1px;\\n border-color: lightgray;\\n}\\n\\n.table-border.mat-table {\\n border-style: none solid solid none;\\n border-color: lightgray;\\n}\\n\\nth.mat-header-cell {\\n background-color: #d9d9d9;\\n}\\n\\n.mat-sort-header-container {\\n justify-content: center !important;\\n}\\n\\n.filter2 {\\n width: auto;\\n}\\n\\n.call-stats-card .mat-card-title {\\n margin-bottom: 0px;\\n}\\n\\n.call-stats-card .call-stats {\\n font-size: 11px;\\n color: #ffffff;\\n}\\n\\n.call-stats-card .call-stats i {\\n color: #2e3668;\\n font-size: 11px;\\n}\\n\\n.call-stats-card .call-stats-title {\\n font-size: 20px;\\n color: #484848;\\n}\\n\\n.call-stats-card1 {\\n padding-top: 0px;\\n}\\n\\n.call-stats-card-border1 {\\n border-style: solid solid none solid;\\n border-width: 1px;\\n border-radius: 0%;\\n border-color: lightgray;\\n}\\n\\n.call-stats-card-border2 {\\n border-style: solid solid solid solid;\\n border-width: 1px;\\n border-radius: 0%;\\n margin-bottom: 15px;\\n border-color: lightgray;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-group {\\n border-radius: 0px;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle {\\n background-color: #ffffff;\\n color: #5482BC;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-checked {\\n background-color: #5482BC;\\n color: #ffffff;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-label-content {\\n line-height: 30px;\\n font: Regular 14px Roboto;\\n letter-spacing: 0px;\\n}\\n\\n.toggle-btn-grp ::ng-deep .refresh-btn.mat-button {\\n min-width: auto;\\n}\\n\\n.refresh-btn {\\n background-color: #ffffff;\\n color: #e64243;\\n border: 1px solid #e64243;\\n border-radius: 0px;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-flex {\\n border: 1px solid lightgray;\\n border-radius: 3px;\\n background: white;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-label {\\n padding-left: 10px;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-infix {\\n border-top: none;\\n}\\n\\n.textboxService ::ng-deep label.mat-form-field-label {\\n margin-top: 8px !important;\\n}\\n\\n.textboxService ::ng-deep input.mat-input-element {\\n margin-top: 0.6em;\\n margin-left: 10px;\\n}\\n\\n.search-icon {\\n position: absolute;\\n right: 15px;\\n top: 15px;\\n}\\n\\n.backColor {\\n background-color: #00457D !important;\\n font-size: 12px;\\n}\\n\\n.box-size {\\n margin-left: 10px;\\n margin-top: 7px;\\n width: 28px;\\n height: 28px;\\n color: #ffffff !important;\\n}\\n\\n.box-size1 {\\n margin-left: 10px;\\n margin-top: 10px;\\n width: 22px;\\n height: 22px;\\n color: #ffffff !important;\\n}\\n\\n.backColor1 {\\n background-color: #5482BC !important;\\n font-size: 12px;\\n}\\n\\n.call-stats-value {\\n margin-left: 50px;\\n font-size: 18px;\\n}\\n\\n.call-stats-value1 {\\n margin-left: 30px;\\n font-size: 18px;\\n}\\n\\n.info-circle-size {\\n font-size: 12px !important;\\n color: #ffffff !important;\\n}\\n\\n.flex-set {\\n margin-top: 7px;\\n margin-left: 15px;\\n}\\n\\n.flex-set1 {\\n margin-top: 7px;\\n margin-left: 25px;\\n}\\n\\n.dueDateIcon {\\n height: 9px;\\n width: 11px;\\n}\\n\\n.droupdown-style {\\n width: 180px;\\n}\\n\\n.value-list1 hr {\\n border-top: 1px solid lightgrey;\\n margin: 5px 0px;\\n width: 100%;\\n}\\n\\n.value-list1 span {\\n margin-left: 5px;\\n padding-left: 5px;\\n margin-top: 3px;\\n font-size: 12px;\\n}\\n\\n.margin-left {\\n padding-left: 10px;\\n}\\n\\n.paginator ::ng-deep .mat-form-field-infix {\\n height: 18px !important;\\n padding-bottom: 0px;\\n}\\n\\n.followUp {\\n width: 9% !important;\\n}\\n\\n.lastCall {\\n width: 9% !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9jb21wb25lbnQvcGlwZWxpbmUtbWFuYWdlbWVudC9waXBlbGluZS1tYW5hZ2VtZW50LmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnQvcGlwZWxpbmUtbWFuYWdlbWVudC9waXBlbGluZS1tYW5hZ2VtZW50LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksaUJBQUE7QUNDSjs7QURFQTtFQUNJLFdBQUE7QUNDSjs7QURFQTtFQUNJLGVBQUE7QUNDSjs7QURFQTtFQUNJLGdCQUFBO0VBQ0EsaUJBQUE7QUNDSjs7QURFQTtFQUNJLHNCQUFBO0VBQ0EsbUJBQUE7RUFDQSxjQUFBO0VBQ0EsVUFBQTtBQ0NKOztBREVBO0VBQ0ksZUFBQTtFQUNBLGVBQUE7RUFDQSxRQUFBO0VBQ0EsVUFBQTtFQUNBLDZCQUFBO0VBQ0EsV0FBQTtFQUNBLFVBQUE7QUNDSjs7QURFQTtFQUNJLGlCQUFBO0VBQ0EsbUJBQUE7RUFDQSxjQUFBO0VBQ0EsVUFBQTtFQUNBLGtCQUFBO0VBQ0Esb0JBQUE7QUNDSjs7QURFQTtFQUNJLDJCQUFBO0VBQ0Esa0JBQUE7RUFDQSxpQkFBQTtFQUNBLFVBQUE7RUFDQSxZQUFBO0VBQ0EsWUFBQTtBQ0NKOztBREVBO0VBQ0ksZ0JBQUE7QUNDSjs7QURHQTtFQUNJLGlCQUFBO0FDQUo7O0FER0E7RUFDSSxxQkFBQTtBQ0FKOztBREdBO0VBQ0ksZUFBQTtFQUNBLFdBQUE7QUNBSjs7QURHQTtFQUNJLE1BQUE7RUFDQSxjQUFBO0VBQ0EsaUJBQUE7QUNBSjs7QURHQTtFQUNJLGlCQUFBO0FDQUo7O0FER0E7RUFDSSxhQUFBO0FDQUo7O0FER0E7RUFDSSxNQUFBO0VBQ0EsMEJBQUE7RUFDQSxpQkFBQTtBQ0FKOztBREdBO0VBQ0ksbUJBQUE7QUNBSjs7QURHQTtFQUNJLFlBQUE7RUFDQSxvQkFBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxlQUFBO0FDQUo7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QUNOSjs7QURTQTtFQUNJLFlBQUE7QUNOSjs7QURVSTtFQUNJLCtCQUFBO0VBQ0EsZUFBQTtFQUNBLFdBQUE7QUNQUjs7QURTSTtFQUNJLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxlQUFBO0VBQ0EsZUFBQTtBQ1BSOztBRFdBO0VBQ0ksa0JBQUE7QUNSSjs7QURXQTtFQUNJLHVCQUFBO0VBQ0EsbUJBQUE7QUNSSjs7QURXQTtFQUNJLG9CQUFBO0FDUko7O0FEV0E7RUFDSSxvQkFBQTtBQ1JKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50L3BpcGVsaW5lLW1hbmFnZW1lbnQvcGlwZWxpbmUtbWFuYWdlbWVudC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi53b3JraW5nLWFyZWEge1xuICAgIG1hcmdpbi10b3A6IDExNXB4O1xufVxuXG50YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5jYWxsaW5nLXRhYmxlIHRyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi50YWJsZS1oZWFkLWNhbGwge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgcGFkZGluZy10b3A6IDEycHg7XG59XG5cbi5jYWxsTGlzdCB7XG4gICAgZm9udDogQm9sZCAyMHB4IFJvYm90bztcbiAgICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICAgIGNvbG9yOiAjNDg0ODQ4O1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi5jbG9zZS1jb24ge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdG9wOiAzcHg7XG4gICAgcmlnaHQ6IDFweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgICB6LWluZGV4OiAxMDtcbiAgICBvcGFjaXR5OiAxO1xufVxuXG4uZmlsdGVyLWxhYmVse1xuICAgIGZvbnQ6IDEycHggUm9ib3RvO1xuICAgIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gICAgY29sb3I6ICMzYzNjM2M7XG4gICAgb3BhY2l0eTogMTtcbiAgICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gICAgcGFkZGluZzogMXB4IDRweCAwcHg7XG4gIH1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGhlaWdodDogMjBweDtcbiAgICB3aWR0aDogMTk2cHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdCB7XG4gICAgcGFkZGluZzogNHB4IDBweDtcbiAgICAvL3dpZHRoOiA5MCUgIWltcG9ydGFudDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICAgIHBhZGRpbmctbGVmdDogOHB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdmFsdWUge1xuICAgIHdpZHRoOiA5MCUgIWltcG9ydGFudDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtYnV0dG9uIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udDogd2hpdGU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gICAgdG9wOiAwO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgdG9wOiAwO1xuICAgIG1hcmdpbi10b3A6IDRweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctbGVmdDogNXB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtYXJyb3ctd3JhcHBlciB7XG4gICAgcGFkZGluZy1ib3R0b206IDBweDtcbn1cblxuLnJlZmVzaC1pY29uIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLWJvdHRvbTogLTMwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uY29sb3JlZFJvdyB7XG4gICAgYmFja2dyb3VuZDogI2ZmZmY5OTtcbn1cblxuLmNvbG9yZWRHcmVlblJvdyB7XG4gICAgYmFja2dyb3VuZDogIzkwZWU5MDtcbn1cblxuLm1hdC1kaWFsb2ctdGl0bGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtncmF5O1xufVxuXG4uY2FsbExpc3QtcmlnaHQge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cblxuLmNvbHVtbkhlYWRlciB7XG4gICAgZm9udDogQm9sZCAxMnB4IFJvYm90bztcbiAgICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xufVxuXG4ubG9zdCB7XG4gICAgY29sb3I6ICNlNjQyNDM7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDEwcHg7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIHRvcDogMzglO1xufVxuXG4uaW5ib3VuZCB7XG4gICAgY29sb3I6ICMyZTM2Njg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDBweDtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgdG9wOiAzOCU7XG59XG5cbi5jb2x1bW52YWx1ZSB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmZpbHRlcjEge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmRhdGF2aWV3e1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgbWFyZ2luLXRvcDogM3B4O1xufVxuXG4uZmlsdGVyQnV0dG9uIHtcbiAgICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEO1xuICAgIGhlaWdodDogMjBweDtcbiAgICBsaW5lLWhlaWdodDogMTBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxcHg7XG4gICAgd2lkdGg6IDc1cHg7XG4gICAgbWFyZ2luLXRvcDogMTdweDtcbn1cblxuLmZpbHRlckJ1dHRvbjEge1xuICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0Q7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxMHB4O1xuICAgIG1hcmdpbi10b3A6IDE3cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMXB4O1xuICB9XG5cbi5maWx0ZXJkaXYge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLnNlcnZpY2VEdWVEYXRlIHtcbiAgICB3aWR0aDogMTAlICFpbXBvcnRhbnQ7XG59XG5cbi5mb2xsb3dVcCB7XG4gICAgd2lkdGg6IDglICFpbXBvcnRhbnQ7XG59XG5cbnRkLm1hdC1jZWxsLFxudGQubWF0LWZvb3Rlci1jZWxsLFxudGgubWF0LWhlYWRlci1jZWxsIHtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIGJvcmRlci1zdHlsZTogc29saWQgbm9uZSBub25lIHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogMC4xcHg7XG4gICAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG59XG5cbi50YWJsZS1ib3JkZXIubWF0LXRhYmxlIHtcbiAgICBib3JkZXItc3R5bGU6IG5vbmUgc29saWQgc29saWQgbm9uZTtcbiAgICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxudGgubWF0LWhlYWRlci1jZWxsIHtcbiAgICAvL2p1c3RpZnktc2VsZjogY2VudGVyO1xuICAgIC8vdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIC8vZGlzcGxheTogZmxleDtcbiAgICAvL2p1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkOWQ5ZDk7XG59XG5cbi5tYXQtc29ydC1oZWFkZXItY29udGFpbmVyIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50O1xufVxuXG4uZmlsdGVyMiB7XG4gICAgd2lkdGg6IGF1dG87XG59XG5cbi5jYWxsLXN0YXRzLWNhcmQge1xuICAgIC5tYXQtY2FyZC10aXRsZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICB9XG4gICAgLmNhbGwtc3RhdHMge1xuICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgICBpIHtcbiAgICAgICAgICAgIGNvbG9yOiAjMmUzNjY4O1xuICAgICAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICB9XG4gICAgfVxuICAgIC5jYWxsLXN0YXRzLXRpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICBjb2xvcjogIzQ4NDg0ODtcbiAgICB9XG59XG5cbi5jYWxsLXN0YXRzLWNhcmQxIHtcbiAgICBwYWRkaW5nLXRvcDogMHB4O1xufVxuXG4uY2FsbC1zdGF0cy1jYXJkLWJvcmRlcjEge1xuICAgIGJvcmRlci1zdHlsZTogc29saWQgc29saWQgbm9uZSBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDFweDtcbiAgICBib3JkZXItcmFkaXVzOiAwJTtcbiAgICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxuLmNhbGwtc3RhdHMtY2FyZC1ib3JkZXIyIHtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIHNvbGlkIHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIHtcbiAgICBib3JkZXItcmFkaXVzOiAwcHg7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIGNvbG9yOiAjNTQ4MkJDO1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTQ4MkJDO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZS1sYWJlbC1jb250ZW50IHtcbiAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICBmb250OiBSZWd1bGFyIDE0cHggUm9ib3RvO1xuICAgIGxldHRlci1zcGFjaW5nOiAwcHg7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLnJlZnJlc2gtYnRuLm1hdC1idXR0b24ge1xuICAgIG1pbi13aWR0aDogYXV0bztcbn1cblxuLnJlZnJlc2gtYnRuIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIGNvbG9yOiAjZTY0MjQzO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNjQyNDM7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4O1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCBsYWJlbC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgbWFyZ2luLXRvcDogOHB4ICFpbXBvcnRhbnQ7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgaW5wdXQubWF0LWlucHV0LWVsZW1lbnQge1xuICAgIG1hcmdpbi10b3A6IDAuNmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuXG4uc2VhcmNoLWljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMTVweDtcbiAgICB0b3A6IDE1cHg7XG59XG5cbi5iYWNrQ29sb3Ige1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0QgIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IDEycHg7XG59XG5cbi5ib3gtc2l6ZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgbWFyZ2luLXRvcDogN3B4O1xuICAgIHdpZHRoOiAyOHB4O1xuICAgIGhlaWdodDogMjhweDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG4uYm94LXNpemUxIHtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIHdpZHRoOiAyMnB4O1xuICAgIGhlaWdodDogMjJweDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG4uYmFja0NvbG9yMSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzU0ODJCQyAhaW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmNhbGwtc3RhdHMtdmFsdWUge1xuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xuICAgIGZvbnQtc2l6ZTogMThweDtcbn1cblxuLmNhbGwtc3RhdHMtdmFsdWUxIHtcbiAgICBtYXJnaW4tbGVmdDogMzBweDtcbiAgICBmb250LXNpemU6IDE4cHg7XG59XG5cbi5pbmZvLWNpcmNsZS1zaXplIHtcbiAgICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG4uZmxleC1zZXQge1xuICAgIG1hcmdpbi10b3A6IDdweDtcbiAgICBtYXJnaW4tbGVmdDogMTVweDtcbn1cblxuLmZsZXgtc2V0MSB7XG4gICAgbWFyZ2luLXRvcDogN3B4O1xuICAgIG1hcmdpbi1sZWZ0OiAyNXB4O1xufVxuXG4uZHVlRGF0ZUljb24ge1xuICAgIGhlaWdodDogOXB4O1xuICAgIHdpZHRoOiAxMXB4O1xufVxuXG4uZHJvdXBkb3duLXN0eWxlIHtcbiAgICB3aWR0aDogMTgwcHg7XG59XG5cbi52YWx1ZS1saXN0MSB7XG4gICAgaHIge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgbGlnaHRncmV5O1xuICAgICAgICBtYXJnaW46IDVweCAwcHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgICBzcGFuIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDNweDtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgIH1cbn1cblxuLm1hcmdpbi1sZWZ0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG59XG5cbi5wYWdpbmF0b3IgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgaGVpZ2h0OiAxOHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDBweDtcbn1cblxuLmZvbGxvd1VwIHtcbiAgICB3aWR0aDogOSUgIWltcG9ydGFudDtcbn1cblxuLmxhc3RDYWxsIHtcbiAgICB3aWR0aDogOSUgIWltcG9ydGFudDtcbn1cbiIsIi53b3JraW5nLWFyZWEge1xuICBtYXJnaW4tdG9wOiAxMTVweDtcbn1cblxudGFibGUge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmNhbGxpbmctdGFibGUgdHIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi50YWJsZS1oZWFkLWNhbGwge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBwYWRkaW5nLXRvcDogMTJweDtcbn1cblxuLmNhbGxMaXN0IHtcbiAgZm9udDogQm9sZCAyMHB4IFJvYm90bztcbiAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgY29sb3I6ICM0ODQ4NDg7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5jbG9zZS1jb24ge1xuICBmb250LXNpemU6IDE4cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdG9wOiAzcHg7XG4gIHJpZ2h0OiAxcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB6LWluZGV4OiAxMDtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmZpbHRlci1sYWJlbCB7XG4gIGZvbnQ6IDEycHggUm9ib3RvO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICBjb2xvcjogIzNjM2MzYztcbiAgb3BhY2l0eTogMTtcbiAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICBwYWRkaW5nOiAxcHggNHB4IDBweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgcGFkZGluZzogMDtcbiAgaGVpZ2h0OiAyMHB4O1xuICB3aWR0aDogMTk2cHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdCB7XG4gIHBhZGRpbmc6IDRweCAwcHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gIHdpZHRoOiA5MCUgIWltcG9ydGFudDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtYnV0dG9uIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250OiB3aGl0ZTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIHtcbiAgdG9wOiAwO1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0b3A6IDA7XG4gIG1hcmdpbi10b3A6IDRweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LWFycm93LXdyYXBwZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMHB4O1xufVxuXG4ucmVmZXNoLWljb24ge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi1ib3R0b206IC0zMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIG1hcmdpbi10b3A6IDMwcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmNvbG9yZWRSb3cge1xuICBiYWNrZ3JvdW5kOiAjZmZmZjk5O1xufVxuXG4uY29sb3JlZEdyZWVuUm93IHtcbiAgYmFja2dyb3VuZDogIzkwZWU5MDtcbn1cblxuLm1hdC1kaWFsb2ctdGl0bGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZ3JheTtcbn1cblxuLmNhbGxMaXN0LXJpZ2h0IHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cblxuLmNvbHVtbkhlYWRlciB7XG4gIGZvbnQ6IEJvbGQgMTJweCBSb2JvdG87XG4gIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbn1cblxuLmxvc3Qge1xuICBjb2xvcjogI2U2NDI0MztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAxMHB4O1xuICBmb250LXNpemU6IDEwcHg7XG4gIHRvcDogMzglO1xufVxuXG4uaW5ib3VuZCB7XG4gIGNvbG9yOiAjMmUzNjY4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDBweDtcbiAgZm9udC1zaXplOiAxMHB4O1xuICB0b3A6IDM4JTtcbn1cblxuLmNvbHVtbnZhbHVlIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5maWx0ZXIxIHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uZGF0YXZpZXcge1xuICBtYXJnaW4tbGVmdDogNXB4O1xuICBtYXJnaW4tdG9wOiAzcHg7XG59XG5cbi5maWx0ZXJCdXR0b24ge1xuICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBsaW5lLWhlaWdodDogMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMXB4O1xuICB3aWR0aDogNzVweDtcbiAgbWFyZ2luLXRvcDogMTdweDtcbn1cblxuLmZpbHRlckJ1dHRvbjEge1xuICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBsaW5lLWhlaWdodDogMTBweDtcbiAgbWFyZ2luLXRvcDogMTdweDtcbiAgbWFyZ2luLWJvdHRvbTogMXB4O1xufVxuXG4uZmlsdGVyZGl2IHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4uc2VydmljZUR1ZURhdGUge1xuICB3aWR0aDogMTAlICFpbXBvcnRhbnQ7XG59XG5cbi5mb2xsb3dVcCB7XG4gIHdpZHRoOiA4JSAhaW1wb3J0YW50O1xufVxuXG50ZC5tYXQtY2VsbCxcbnRkLm1hdC1mb290ZXItY2VsbCxcbnRoLm1hdC1oZWFkZXItY2VsbCB7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGJvcmRlci1zdHlsZTogc29saWQgbm9uZSBub25lIHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDAuMXB4O1xuICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxuLnRhYmxlLWJvcmRlci5tYXQtdGFibGUge1xuICBib3JkZXItc3R5bGU6IG5vbmUgc29saWQgc29saWQgbm9uZTtcbiAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG59XG5cbnRoLm1hdC1oZWFkZXItY2VsbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkOWQ5ZDk7XG59XG5cbi5tYXQtc29ydC1oZWFkZXItY29udGFpbmVyIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcbn1cblxuLmZpbHRlcjIge1xuICB3aWR0aDogYXV0bztcbn1cblxuLmNhbGwtc3RhdHMtY2FyZCAubWF0LWNhcmQtdGl0bGUge1xuICBtYXJnaW4tYm90dG9tOiAwcHg7XG59XG4uY2FsbC1zdGF0cy1jYXJkIC5jYWxsLXN0YXRzIHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi5jYWxsLXN0YXRzLWNhcmQgLmNhbGwtc3RhdHMgaSB7XG4gIGNvbG9yOiAjMmUzNjY4O1xuICBmb250LXNpemU6IDExcHg7XG59XG4uY2FsbC1zdGF0cy1jYXJkIC5jYWxsLXN0YXRzLXRpdGxlIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBjb2xvcjogIzQ4NDg0ODtcbn1cblxuLmNhbGwtc3RhdHMtY2FyZDEge1xuICBwYWRkaW5nLXRvcDogMHB4O1xufVxuXG4uY2FsbC1zdGF0cy1jYXJkLWJvcmRlcjEge1xuICBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIG5vbmUgc29saWQ7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3JkZXItcmFkaXVzOiAwJTtcbiAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG59XG5cbi5jYWxsLXN0YXRzLWNhcmQtYm9yZGVyMiB7XG4gIGJvcmRlci1zdHlsZTogc29saWQgc29saWQgc29saWQgc29saWQ7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3JkZXItcmFkaXVzOiAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIHtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGNvbG9yOiAjNTQ4MkJDO1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU0ODJCQztcbiAgY29sb3I6ICNmZmZmZmY7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWxhYmVsLWNvbnRlbnQge1xuICBsaW5lLWhlaWdodDogMzBweDtcbiAgZm9udDogUmVndWxhciAxNHB4IFJvYm90bztcbiAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAucmVmcmVzaC1idG4ubWF0LWJ1dHRvbiB7XG4gIG1pbi13aWR0aDogYXV0bztcbn1cblxuLnJlZnJlc2gtYnRuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgY29sb3I6ICNlNjQyNDM7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNjQyNDM7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCBsYWJlbC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIG1hcmdpbi10b3A6IDhweCAhaW1wb3J0YW50O1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIGlucHV0Lm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgbWFyZ2luLXRvcDogMC42ZW07XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuXG4uc2VhcmNoLWljb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAxNXB4O1xuICB0b3A6IDE1cHg7XG59XG5cbi5iYWNrQ29sb3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmJveC1zaXplIHtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIG1hcmdpbi10b3A6IDdweDtcbiAgd2lkdGg6IDI4cHg7XG4gIGhlaWdodDogMjhweDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuLmJveC1zaXplMSB7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICB3aWR0aDogMjJweDtcbiAgaGVpZ2h0OiAyMnB4O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG4uYmFja0NvbG9yMSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1NDgyQkMgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uY2FsbC1zdGF0cy12YWx1ZSB7XG4gIG1hcmdpbi1sZWZ0OiA1MHB4O1xuICBmb250LXNpemU6IDE4cHg7XG59XG5cbi5jYWxsLXN0YXRzLXZhbHVlMSB7XG4gIG1hcmdpbi1sZWZ0OiAzMHB4O1xuICBmb250LXNpemU6IDE4cHg7XG59XG5cbi5pbmZvLWNpcmNsZS1zaXplIHtcbiAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbi5mbGV4LXNldCB7XG4gIG1hcmdpbi10b3A6IDdweDtcbiAgbWFyZ2luLWxlZnQ6IDE1cHg7XG59XG5cbi5mbGV4LXNldDEge1xuICBtYXJnaW4tdG9wOiA3cHg7XG4gIG1hcmdpbi1sZWZ0OiAyNXB4O1xufVxuXG4uZHVlRGF0ZUljb24ge1xuICBoZWlnaHQ6IDlweDtcbiAgd2lkdGg6IDExcHg7XG59XG5cbi5kcm91cGRvd24tc3R5bGUge1xuICB3aWR0aDogMTgwcHg7XG59XG5cbi52YWx1ZS1saXN0MSBociB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCBsaWdodGdyZXk7XG4gIG1hcmdpbjogNXB4IDBweDtcbiAgd2lkdGg6IDEwMCU7XG59XG4udmFsdWUtbGlzdDEgc3BhbiB7XG4gIG1hcmdpbi1sZWZ0OiA1cHg7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xuICBtYXJnaW4tdG9wOiAzcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLm1hcmdpbi1sZWZ0IHtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xufVxuXG4ucGFnaW5hdG9yIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBoZWlnaHQ6IDE4cHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1ib3R0b206IDBweDtcbn1cblxuLmZvbGxvd1VwIHtcbiAgd2lkdGg6IDklICFpbXBvcnRhbnQ7XG59XG5cbi5sYXN0Q2FsbCB7XG4gIHdpZHRoOiA5JSAhaW1wb3J0YW50O1xufSJdfQ== */\"","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\nimport { DatePipe } from '@angular/common';\nimport { MatDialog, MatPaginator, MatSort, MatSelect } from '@angular/material';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { CommonService } from '../../core/service/common-service/common.service';\nimport { FilterPipePipe } from '../../pipes/filter-pipe.pipe';\nimport { ListCustData } from './listCustData';\nimport { openLeadStatusDialog } from 'src/app/modal/lead-status-dialog/lead-status-dialog.component';\n\n@Component({\n selector: 'app-pipeline-management',\n templateUrl: './pipeline-management.component.html',\n styleUrls: ['./pipeline-management.component.scss'],\n providers: [FilterPipePipe]\n})\nexport class PipelineManagementComponent implements OnInit {\n\n @ViewChild(MatSort, { static: true }) sort: MatSort;\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\n\n customerData: any;\n currentDate: string;\n today: Date = new Date();\n spinner: boolean;\n userId: string;\n startDate: Date;\n endDate: Date;\n userRoles: any;\n customerNameValues: string[] = [];\n enquiryIdValues: string[] = [];\n productNAmeValues: string[] = [];\n customerMobileValues: string[] = [];\n callStatusValues: string[] = [];\n chasisNoValues: string[] = [];\n uniqueEnquiryId = new Set();\n uniqueProductName = new Set();\n uniqueChasisNo = new Set();\n uniqueCallStatus = new Set();\n uniqueCustomerMobile = new Set();\n uniqueCustomerName = new Set();\n pageSize: number;\n filterMap = new Map();\n dataSource: any;\n filteredDataSource: any;\n callsToBeMade: number = 0;\n callsMade: number = 0;\n selection: any;\n callFlag: any;\n customersToBeCalled: string;\n callsMade1: string;\n userRoleId: string;\n showpipelinedatareport: boolean = false;\n listFlag: string;\n displayedColumns: string[] = [\n 'customerName',\n 'enquiryId',\n 'productType',\n 'vin',\n 'custTelNo',\n 'leadType',\n 'leadStatus',\n 'likelyBuyDate',\n 'followUp',\n ];\n clickedRow: ListCustData;\n followUpCount: any;\n\n constructor(private router: Router, private toastr: ToastrService, private commonService: CommonService,\n private datePipe: DatePipe, private filterPipePipe: FilterPipePipe, public dialog: MatDialog) { }\n\n ngOnInit() {\n\n if (localStorage.getItem('userId') == null || localStorage.getItem('userId') == undefined) {\n this.router.navigate(['login']);\n }\n this.customerData = JSON.parse(localStorage.getItem('customerData'));\n this.userId = localStorage.getItem('userId');\n this.currentDate = this.datePipe.transform(new Date(), \"yyyy-MM-dd\");\n this.userRoles = localStorage.getItem('userRoles');\n\n this.userRoleId = JSON.parse(localStorage.getItem(\"userInfo\"))[0].roleId;\n if (localStorage.getItem('enquiryIdValues') != null || localStorage.getItem('enquiryIdValues') != undefined) {\n let enquiryIdValues = JSON.parse(localStorage.getItem('enquiryIdValues'));\n this.enquiryIdValues = enquiryIdValues;\n }\n\n if (localStorage.getItem('productNameValues') != null || localStorage.getItem('productNameValues') != undefined) {\n let productNAmeValues = JSON.parse(localStorage.getItem('productNameValues'));\n this.productNAmeValues = productNAmeValues;\n }\n\n if (localStorage.getItem('chasisNoValues') != null || localStorage.getItem('chasisNoValues') != undefined) {\n let chasisNoValues = JSON.parse(localStorage.getItem('chasisNoValues'));\n this.chasisNoValues = chasisNoValues;\n }\n\n if (localStorage.getItem('customerMobileValues') != null || localStorage.getItem('customerMobileValues') != undefined) {\n let customerMobileValues = JSON.parse(localStorage.getItem('customerMobileValues'));\n this.customerMobileValues = customerMobileValues;\n }\n\n if (localStorage.getItem('customerNameValues') != null || localStorage.getItem('customerNameValues') != undefined) {\n let customerNameValues = JSON.parse(localStorage.getItem('customerNameValues'));\n this.customerNameValues = customerNameValues;\n }\n\n if (localStorage.getItem('callListPageSize') != null || localStorage.getItem('callListPageSize') != undefined) {\n let pagesize = Number(localStorage.getItem('callListPageSize'));\n this.pageSize = (pagesize && !Number.isNaN(pagesize)) ? pagesize : 50;\n } else {\n this.pageSize = 50;\n }\n\n // if ((localStorage.getItem('workshops') == null || localStorage.getItem('workshops') == undefined) && this.userRoles !='Call Center Agent') {\n // this.getWorkshopDetails();\n // }\n //this.getCreStats();\n if (this.userRoleId == '1') {\n this.listFlag = 'Z';\n setTimeout(() => this.pipelineCallList(this.userId), 1000);\n } else {\n this.listFlag = 'Y';\n setTimeout(() => this.pipelineCallList(this.userId), 1000);\n }\n //this.clearFilter(false);\n\n //showpipeline data report\n if(this.userRoleId == \"3\" || this.userRoleId == \"5\" || this.userRoleId == \"7\") {\n this.showpipelinedatareport = true;\n }\n\n }\n\n /**\n * Name: setPageData\n * purpose: To set pagesize for table\n */\n setPageData(event) {\n let size = event.pageSize.toString();\n localStorage.setItem('callListPageSize', size);\n }\n\n showLeadStatusDialog() {\n openLeadStatusDialog(this.dialog, this.clickedRow).subscribe(val => {\n if (val == -1) {\n this.ngOnInit();\n }\n });\n\n }\n\n showPipelineSearch() {\n this.router.navigate(['pipeline-search']);\n }\n\n /**\n * Name: getWorkshopDetails\n * purpose: To get CRE assigned workshop details\n */\n getWorkshopDetails() {\n this.spinner = true;\n this.commonService.getWorkshopDetails(this.userId)\n .subscribe(res => {\n if (res['responseCode'] == 0) {\n this.spinner = false;\n localStorage.setItem('workshops', JSON.stringify(res['responseData']));\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: activeButton\n * purpose: To activat apply button\n */\n activeButton(): boolean {\n let flag = false;\n if (this.enquiryIdValues != null && this.enquiryIdValues.length != 0) {\n flag = true;\n } else if (this.productNAmeValues != null && this.productNAmeValues.length != 0) {\n flag = true;\n } else if (this.chasisNoValues != null && this.chasisNoValues.length != 0) {\n flag = true;\n } else if (this.callStatusValues != null && this.callStatusValues.length != 0) {\n flag = true;\n } else if (this.customerMobileValues != null && this.customerMobileValues.length != 0) {\n flag = true;\n } else if (this.customerNameValues != null && this.customerNameValues.length != 0) {\n flag = true;\n }\n return flag;\n }\n\n downloadPipelineReport(): void {\n let fdate = this.datePipe.transform(this.startDate, \"yyyy-MM-dd\");\n let tdate = this.datePipe.transform(this.endDate, \"yyyy-MM-dd\");\n let fileName = \"Pipeline_Data Status Report_From_\" + fdate + \"_To_\" + tdate;\n\n this.commonService.getPipelineDataReport(fdate, tdate, this.userId)\n .subscribe(fileData => {\n if (fileData) {\n const blob: any = new Blob([fileData], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\n let link = document.createElement(\"a\");\n if (link.download !== undefined) {\n let url = URL.createObjectURL(blob);\n link.setAttribute(\"href\", url);\n link.setAttribute(\"download\", fileName);\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n this.spinner = false;\n }\n } else {\n this.spinner = false;\n }\n }, err => {\n this.spinner = false;\n });\n }\n\n getPipelineRegionWiseDataReport(): void{\n let fdate = this.datePipe.transform(this.startDate, \"yyyy-MM-dd\");\n let tdate = this.datePipe.transform(this.endDate, \"yyyy-MM-dd\");\n let fileName = \"PipelineRegionWise_Data Status Report_From_\" + fdate + \"_To_\" + tdate;\n\n this.commonService. getPipelineRegionWiseDataReport(fdate, tdate, this.userId, this.userRoleId)\n .subscribe(fileData => {\n if (fileData) {\n const blob: any = new Blob([fileData], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\n let link = document.createElement(\"a\");\n if (link.download !== undefined) {\n let url = URL.createObjectURL(blob);\n link.setAttribute(\"href\", url);\n link.setAttribute(\"download\", fileName);\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n this.spinner = false;\n }\n } else {\n this.spinner = false;\n }\n }, err => {\n this.spinner = false;\n });\n\n }\n\n /**\n * Name: applyfilter\n * purpose: To apply filter on call list data\n */\n applyfilter(): void {\n let key = '';\n this.filterMap = new Map();\n this.filteredDataSource = this.dataSource;\n\n if (this.customerNameValues != null && this.customerNameValues.length != 0) {\n key = \"customerName\";\n this.filterMap.set(key, this.customerNameValues);\n this.filteredDataSource = new MatTableDataSource(this.filterPipePipe.transform(this.filteredDataSource.filteredData, this.filterMap));\n }\n\n if (this.enquiryIdValues != null && this.enquiryIdValues.length != 0) {\n key = \"enquiryId\";\n this.filterMap.set(key, this.enquiryIdValues);\n this.filteredDataSource = new MatTableDataSource(this.filterPipePipe.transform(this.filteredDataSource.filteredData, this.filterMap));\n }\n\n if (this.productNAmeValues != null && this.productNAmeValues.length != 0) {\n key = \"productType\";\n this.filterMap.set(key, this.productNAmeValues);\n this.filteredDataSource = new MatTableDataSource(this.filterPipePipe.transform(this.filteredDataSource.filteredData, this.filterMap));\n }\n\n if (this.chasisNoValues != null && this.chasisNoValues.length != 0) {\n key = \"vin\";\n this.filterMap.set(key, this.chasisNoValues);\n this.filteredDataSource = new MatTableDataSource(this.filterPipePipe.transform(this.filteredDataSource.filteredData, this.filterMap));\n }\n\n if (this.callStatusValues != null && this.callStatusValues.length != 0) {\n key = \"leadStatus\";\n this.filterMap.set(key, this.callStatusValues);\n this.filteredDataSource = new MatTableDataSource(this.filterPipePipe.transform(this.filteredDataSource.filteredData, this.filterMap));\n }\n\n if (this.customerMobileValues != null && this.customerMobileValues.length != 0) {\n key = \"custTelNo\";\n this.filterMap.set(key, this.customerMobileValues);\n this.filteredDataSource = new MatTableDataSource(this.filterPipePipe.transform(this.filteredDataSource.filteredData, this.filterMap));\n }\n\n //this.filterMap.set(this.selectedCol, this.selectedColValues);\n //this.filteredDataSource = new MatTableDataSource(this.filterPipePipe.transform(this.dataSource.filteredData, this.filterMap));\n this.callsToBeMade = this.filteredDataSource.filteredData.length;\n this.sort.direction = '';\n this.filteredDataSource.sort = this.sort;\n this.filteredDataSource.sortingDataAccessor = (data, header) => data[header];\n this.filteredDataSource.paginator = this.paginator;\n localStorage.setItem('enquiryIdValues', JSON.stringify(this.enquiryIdValues));\n localStorage.setItem('productNameValues', JSON.stringify(this.productNAmeValues));\n localStorage.setItem('chasisNoValues', JSON.stringify(this.chasisNoValues));\n localStorage.setItem('callStatusValues', JSON.stringify(this.callStatusValues));\n localStorage.setItem('customerMobileValues', JSON.stringify(this.customerMobileValues));\n localStorage.setItem('customerNameValues', JSON.stringify(this.customerNameValues));\n //localStorage.setItem('selectedCol', this.selectedCol);\n //localStorage.setItem('selectedColValues', JSON.stringify(this.selectedColValues));\n }\n\n /**\n * Name: searchfilter\n * purpose: To apply filter on call list data\n */\n searchfilter(filterValue: string): void {\n filterValue = filterValue.trim(); // Remove whitespace\n filterValue = filterValue.toLowerCase(); // Datasource defaults to lowercase matches\n this.filteredDataSource.filter = filterValue;\n }\n\n /**\n * Name: amcpairCallList\n * purpose: To get calllist details\n * @param {string} flag - type of call\n * @param {string} creId - User Id\n */\n pipelineCallList(creId: string): void {\n this.spinner = true;\n this.selection = new SelectionModel(true, []);\n\n this.commonService.pipelineCustomerCallList(creId)\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n this.callsToBeMade = res['responseData'].length;\n //init data table and shorting\n this.dataSource = new MatTableDataSource(res['responseData']);\n //this.sort.direction = '';\n this.followUpCount = res['responseData'][0].followUpCount;\n this.dataSource.sort = this.sort;\n this.dataSource.sortingDataAccessor = (data, header) => data[header];\n this.dataSource.paginator = this.paginator;\n this.filterData();\n if ((!this.enquiryIdValues || this.enquiryIdValues.length == 0)\n && (!this.productNAmeValues || this.productNAmeValues.length == 0)\n && (!this.chasisNoValues || this.chasisNoValues.length == 0)\n && (!this.callStatusValues || this.callStatusValues.length == 0)\n && (!this.customerMobileValues || this.customerMobileValues.length == 0)\n && (!this.customerNameValues || this.customerNameValues.length == 0)\n ) {\n //init filtered table and shorting\n this.filteredDataSource = new MatTableDataSource(res['responseData']);\n //this.sort.direction = '';\n this.filteredDataSource.sort = this.sort;\n this.filteredDataSource.sortingDataAccessor = (data, header) => data[header];\n this.filteredDataSource.paginator = this.paginator;\n }\n this.spinner = false;\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: selectCustomer\n * purpose: To select customer for details\n * @param {Object} row - selected customer details\n */\n selectCustomer(row: ListCustData): void {\n this.clickedRow = row;\n localStorage.setItem('customerId', row.enquiryId);\n localStorage.setItem(\"pipelinecustomerData\", JSON.stringify(row));\n if (this.clickedRow.leadStatus == \"Deal Closed\") {\n this.toastr.error(\"Lead Closed.\");\n }else if(this.clickedRow.leadStatus == \"Lost\"){\n this.toastr.error(\"Lost Lead.\");\n }\n else {\n this.showLeadStatusDialog();\n }\n\n }\n\n /**\n * Name: filterData\n * purpose: To filter call list data\n */\n filterData(): void {\n this.dataSource.filteredData.forEach(element => {\n this.uniqueEnquiryId.add(element.enquiryId);\n this.uniqueProductName.add(element.productType);\n this.uniqueChasisNo.add(element.vin);\n this.uniqueCallStatus.add(element.leadStatus);\n this.uniqueCustomerMobile.add(element.custTelNo);\n this.uniqueCustomerName.add(element.customerName);\n });\n\n if ((this.enquiryIdValues != null && this.enquiryIdValues.length != 0)\n || (this.productNAmeValues != null && this.productNAmeValues.length != 0)\n || (this.chasisNoValues != null && this.chasisNoValues.length != 0)\n || (this.callStatusValues != null && this.callStatusValues.length != 0)\n || (this.customerMobileValues != null && this.customerMobileValues.length != 0)\n || (this.customerNameValues != null && this.customerNameValues.length != 0)\n ) {\n //this.filterTriggered(null);\n this.applyfilter();\n }\n }\n\n /**\n * Name: clearFilter\n * purpose: To clear filter\n */\n clearFilter(listChange: boolean): void {\n if (listChange) {\n this.dataSource = [];\n this.filteredDataSource = [];\n this.pipelineCallList(this.userId);\n } else {\n this.filterMap.clear();\n this.enquiryIdValues = null;\n this.productNAmeValues = null;\n this.chasisNoValues = null;\n this.callStatusValues = null;\n this.customerMobileValues = null;\n this.customerNameValues = null;\n this.startDate = null;\n this.endDate = null;\n this.filteredDataSource = new MatTableDataSource(this.filterPipePipe.transform(this.dataSource.filteredData, this.filterMap));\n this.callsToBeMade = this.filteredDataSource.filteredData.length;\n this.sort.direction = '';\n this.filteredDataSource.sort = this.sort;\n this.filteredDataSource.sortingDataAccessor = (data, header) => data[header];\n this.filteredDataSource.paginator = this.paginator;\n localStorage.removeItem('enquiryIdValues');\n localStorage.removeItem('productNAmeValues');\n localStorage.removeItem('chasisNoValues');\n localStorage.removeItem('callStatusValues');\n localStorage.removeItem('customerMobileValues');\n localStorage.removeItem('customerNameValues');\n\n }\n }\n\n /**\n * Name: changeColor\n * purpose: To change followup time color\n */\n changeColor(followUpDate: any): String {\n let currentTime = this.datePipe.transform(new Date(), \"yyyy-MM-dd HH:mm:ss \");\n\n if (followUpDate != null && followUpDate != undefined && followUpDate != \"\") {\n let followUpDateTime = this.datePipe.transform(followUpDate, \"yyyy-MM-dd HH:mm:ss\");\n if ((new Date(currentTime)).getTime() > (new Date(followUpDateTime).getTime())) {\n return \"red\";\n }\n }\n }\n}\n\n","export default \".mat-tab-nav-bar {\\n background-color: #00457D;\\n height: 30px;\\n\\n}\\n.mat-tab-nav-bar a {\\n color: white;\\n font-size: 14px;\\n padding-bottom: 8px;\\n}\\n.filterButton {\\n color: white !important;\\n background-color: #00457D;\\n height: 26px;\\n line-height: 10px;\\n margin-top: 1px;\\n margin-bottom: 1px;\\n}\\n.pipeline-header{\\n color: white;\\n font-size: 14px;\\n margin-left:0px;\\n}\\n.call-stats-card-border1 {\\n border-style: solid solid none solid;\\n border-width: 1px;\\n border-radius: 0%;\\n border-color: lightgray;\\n}\\n.call-stats-card-border2 {\\n padding-top: 0px;\\n border-style: solid solid solid solid;\\n border-width: 1px;\\n border-radius: 0%;\\n border-color: lightgray;\\n margin-bottom: 15px;\\n}\\n.table-border{\\nborder-color: #1b1b1b;\\n}\\n.columnHeader {\\nfont: Bold 12px Roboto;\\nletter-spacing: 0px;\\ncolor: #ffff;\\ntext-transform: capitalize;\\nbackground-color: #00457D;\\ntext-align: center;\\nborder-style: solid none none solid;\\nborder-color: lightgray;\\n}\\n.columnvalue {\\nborder-style: solid none none solid;\\ntext-align: center;\\nborder-color: lightgray;\\nfont-size: 14px;\\nposition: relative;\\n}\\n.demo-table {\\nalign-items: center;\\nwidth: 100%;\\n}\\n.enqiryButton{\\ncolor: white !important;\\nbackground-color: #00457D;\\n}\\n.filter1 ::ng-deep .mat-form-field-infix {\\nborder: 1px solid lightgray;\\nborder-radius: 5px;\\nbackground: white;\\npadding: 0;\\nheight: 20px;\\n}\\n.filter1 ::ng-deep .mat-select {\\npadding: 4px 0px;\\n}\\n.filter1 ::ng-deep .mat-select-trigger {\\npadding-left: 8px;\\n}\\n.filter1 ::ng-deep .mat-select-value {\\nwidth: 90% !important;\\n}\\n.filter1 ::ng-deep .mat-button {\\nfont-size: 12px;\\nfont: white;\\n}\\n.filter1 ::ng-deep .mat-form-field-label-wrapper {\\ntop: 0;\\npadding-top: 0;\\npadding-bottom: 0;\\n}\\n.filter1 ::ng-deep .mat-form-field-wrapper {\\npadding-bottom: 0;\\n}\\n.filter1 ::ng-deep .mat-form-field-underline {\\ndisplay: none;\\n}\\n.filter1 ::ng-deep .mat-form-field-label {\\ntop: 0;\\nmargin-top: 4px !important;\\npadding-left: 5px;\\n}\\n.filter1 ::ng-deep .mat-select-arrow-wrapper {\\npadding-bottom: 0px;\\n}\\n.filterdiv {\\nalign-items: center;\\nbox-sizing: border-box;\\ndisplay: flex;\\nflex-wrap: wrap;\\n}\\n.dropdown-style {\\nwidth: 200px;\\nmargin: 10px;\\nmargin-left: 30px;\\n}\\n.dataview{\\nmargin-left: 5px;\\nmargin-top: 3px;\\n}\\n.button-margin {\\nmargin-left: 30px;\\n}\\n.paginator ::ng-deep .mat-form-field-infix {\\nheight: 18px !important;\\npadding-bottom: 0px;\\n}\\n.call-stats-card1 {\\npadding-top: 0px;\\n}\\n.calling-table tr {\\ncursor: pointer;\\n}\\n.table-border.mat-table {\\nborder-style: none solid solid none;\\nborder-color: lightgray;\\n}\\ntable {\\nwidth: 100%;\\n}\\n.filter-label{\\nfont: 12px Roboto;\\nletter-spacing: 0px;\\ncolor: #3c3c3c;\\nopacity: 1;\\nmargin-bottom: 3px;\\npadding: 1px 4px 0px;\\n}\\n\\n\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50L3BpcGVsaW5lLXNlYXJjaC9waXBlbGluZS1zZWFyY2guY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLHlCQUF5QjtFQUN6QixZQUFZOztBQUVkO0FBQ0E7RUFDRSxZQUFZO0VBQ1osZUFBZTtFQUNmLG1CQUFtQjtBQUNyQjtBQUNBO0VBQ0UsdUJBQXVCO0VBQ3ZCLHlCQUF5QjtFQUN6QixZQUFZO0VBQ1osaUJBQWlCO0VBQ2pCLGVBQWU7RUFDZixrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLFlBQVk7RUFDWixlQUFlO0VBQ2YsZUFBZTtBQUNqQjtBQUNBO0lBQ0ksb0NBQW9DO0lBQ3BDLGlCQUFpQjtJQUNqQixpQkFBaUI7SUFDakIsdUJBQXVCO0FBQzNCO0FBQ0E7RUFDRSxnQkFBZ0I7RUFDaEIscUNBQXFDO0VBQ3JDLGlCQUFpQjtFQUNqQixpQkFBaUI7RUFDakIsdUJBQXVCO0VBQ3ZCLG1CQUFtQjtBQUNyQjtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQSxzQkFBc0I7QUFDdEIsbUJBQW1CO0FBQ25CLFlBQVk7QUFDWiwwQkFBMEI7QUFDMUIseUJBQXlCO0FBQ3pCLGtCQUFrQjtBQUNsQixtQ0FBbUM7QUFDbkMsdUJBQXVCO0FBQ3ZCO0FBQ0E7QUFDQSxtQ0FBbUM7QUFDbkMsa0JBQWtCO0FBQ2xCLHVCQUF1QjtBQUN2QixlQUFlO0FBQ2Ysa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkIsV0FBVztBQUNYO0FBQ0E7QUFDQSx1QkFBdUI7QUFDdkIseUJBQXlCO0FBQ3pCO0FBRUE7QUFDQSwyQkFBMkI7QUFDM0Isa0JBQWtCO0FBQ2xCLGlCQUFpQjtBQUNqQixVQUFVO0FBQ1YsWUFBWTtBQUNaO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQSxlQUFlO0FBQ2YsV0FBVztBQUNYO0FBQ0E7QUFDQSxNQUFNO0FBQ04sY0FBYztBQUNkLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBLE1BQU07QUFDTiwwQkFBMEI7QUFDMUIsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTtBQUNBLG1CQUFtQjtBQUNuQixzQkFBc0I7QUFDdEIsYUFBYTtBQUNiLGVBQWU7QUFDZjtBQUNBO0FBQ0EsWUFBWTtBQUNaLFlBQVk7QUFDWixpQkFBaUI7QUFDakI7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQixlQUFlO0FBQ2Y7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0EsdUJBQXVCO0FBQ3ZCLG1CQUFtQjtBQUNuQjtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBRUE7QUFDQSxlQUFlO0FBQ2Y7QUFDQTtBQUNBLG1DQUFtQztBQUNuQyx1QkFBdUI7QUFDdkI7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUVBO0FBQ0EsaUJBQWlCO0FBQ2pCLG1CQUFtQjtBQUNuQixjQUFjO0FBQ2QsVUFBVTtBQUNWLGtCQUFrQjtBQUNsQixvQkFBb0I7QUFDcEIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnQvcGlwZWxpbmUtc2VhcmNoL3BpcGVsaW5lLXNlYXJjaC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm1hdC10YWItbmF2LWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0Q7XG4gIGhlaWdodDogMzBweDtcblxufVxuLm1hdC10YWItbmF2LWJhciBhIHtcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LXNpemU6IDE0cHg7XG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XG59XG4uZmlsdGVyQnV0dG9uIHtcbiAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0Q7XG4gIGhlaWdodDogMjZweDtcbiAgbGluZS1oZWlnaHQ6IDEwcHg7XG4gIG1hcmdpbi10b3A6IDFweDtcbiAgbWFyZ2luLWJvdHRvbTogMXB4O1xufVxuLnBpcGVsaW5lLWhlYWRlcntcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LXNpemU6IDE0cHg7XG4gIG1hcmdpbi1sZWZ0OjBweDtcbn1cbi5jYWxsLXN0YXRzLWNhcmQtYm9yZGVyMSB7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZCBzb2xpZCBub25lIHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDAlO1xuICAgIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuLmNhbGwtc3RhdHMtY2FyZC1ib3JkZXIyIHtcbiAgcGFkZGluZy10b3A6IDBweDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZCBzb2xpZCBzb2xpZCBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1yYWRpdXM6IDAlO1xuICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbn1cbi50YWJsZS1ib3JkZXJ7XG5ib3JkZXItY29sb3I6ICMxYjFiMWI7XG59XG4uY29sdW1uSGVhZGVyIHtcbmZvbnQ6IEJvbGQgMTJweCBSb2JvdG87XG5sZXR0ZXItc3BhY2luZzogMHB4O1xuY29sb3I6ICNmZmZmO1xudGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG5iYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEO1xudGV4dC1hbGlnbjogY2VudGVyO1xuYm9yZGVyLXN0eWxlOiBzb2xpZCBub25lIG5vbmUgc29saWQ7XG5ib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cbi5jb2x1bW52YWx1ZSB7XG5ib3JkZXItc3R5bGU6IHNvbGlkIG5vbmUgbm9uZSBzb2xpZDtcbnRleHQtYWxpZ246IGNlbnRlcjtcbmJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xuZm9udC1zaXplOiAxNHB4O1xucG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmRlbW8tdGFibGUge1xuYWxpZ24taXRlbXM6IGNlbnRlcjtcbndpZHRoOiAxMDAlO1xufVxuLmVucWlyeUJ1dHRvbntcbmNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG5ib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG5ib3JkZXItcmFkaXVzOiA1cHg7XG5iYWNrZ3JvdW5kOiB3aGl0ZTtcbnBhZGRpbmc6IDA7XG5oZWlnaHQ6IDIwcHg7XG59XG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3Qge1xucGFkZGluZzogNHB4IDBweDtcbn1cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbnBhZGRpbmctbGVmdDogOHB4O1xufVxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXZhbHVlIHtcbndpZHRoOiA5MCUgIWltcG9ydGFudDtcbn1cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWJ1dHRvbiB7XG5mb250LXNpemU6IDEycHg7XG5mb250OiB3aGl0ZTtcbn1cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG50b3A6IDA7XG5wYWRkaW5nLXRvcDogMDtcbnBhZGRpbmctYm90dG9tOiAwO1xufVxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbnBhZGRpbmctYm90dG9tOiAwO1xufVxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuZGlzcGxheTogbm9uZTtcbn1cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xudG9wOiAwO1xubWFyZ2luLXRvcDogNHB4ICFpbXBvcnRhbnQ7XG5wYWRkaW5nLWxlZnQ6IDVweDtcbn1cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC1hcnJvdy13cmFwcGVyIHtcbnBhZGRpbmctYm90dG9tOiAwcHg7XG59XG4uZmlsdGVyZGl2IHtcbmFsaWduLWl0ZW1zOiBjZW50ZXI7XG5ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuZGlzcGxheTogZmxleDtcbmZsZXgtd3JhcDogd3JhcDtcbn1cbi5kcm9wZG93bi1zdHlsZSB7XG53aWR0aDogMjAwcHg7XG5tYXJnaW46IDEwcHg7XG5tYXJnaW4tbGVmdDogMzBweDtcbn1cbi5kYXRhdmlld3tcbm1hcmdpbi1sZWZ0OiA1cHg7XG5tYXJnaW4tdG9wOiAzcHg7XG59XG4uYnV0dG9uLW1hcmdpbiB7XG5tYXJnaW4tbGVmdDogMzBweDtcbn1cbi5wYWdpbmF0b3IgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG5oZWlnaHQ6IDE4cHggIWltcG9ydGFudDtcbnBhZGRpbmctYm90dG9tOiAwcHg7XG59XG4uY2FsbC1zdGF0cy1jYXJkMSB7XG5wYWRkaW5nLXRvcDogMHB4O1xufVxuXG4uY2FsbGluZy10YWJsZSB0ciB7XG5jdXJzb3I6IHBvaW50ZXI7XG59XG4udGFibGUtYm9yZGVyLm1hdC10YWJsZSB7XG5ib3JkZXItc3R5bGU6IG5vbmUgc29saWQgc29saWQgbm9uZTtcbmJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxudGFibGUge1xud2lkdGg6IDEwMCU7XG59XG5cbi5maWx0ZXItbGFiZWx7XG5mb250OiAxMnB4IFJvYm90bztcbmxldHRlci1zcGFjaW5nOiAwcHg7XG5jb2xvcjogIzNjM2MzYztcbm9wYWNpdHk6IDE7XG5tYXJnaW4tYm90dG9tOiAzcHg7XG5wYWRkaW5nOiAxcHggNHB4IDBweDtcbn1cblxuXG4iXX0= */\"","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { MatDialog, MatPaginator, MatSort, MatTableDataSource } from '@angular/material';\nimport { Router } from '@angular/router';\nimport { FormBuilder, FormControl, Validators } from '@angular/forms';\nimport { openPipelineEnquiryDialog } from 'src/app/modal/pipeline-enquiry/pipeline-enquiry.component';\nimport { CommonService } from 'src/app/core/service/common-service/common.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { SearchCustData } from './searchCust';\nimport { Observable } from 'rxjs';\nimport { map, startWith } from 'rxjs/operators';\nimport { element } from 'protractor';\nimport { DatePipe } from '@angular/common';\n\n@Component({\n selector: 'app-pipeline-search',\n templateUrl: './pipeline-search.component.html',\n styleUrls: ['./pipeline-search.component.css']\n})\nexport class PipelineSearchComponent implements OnInit {\n\n @ViewChild(MatSort, { static: true }) sort: MatSort;\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\n\n custCode: string\n custMobile: string\n custName: string\n vehSalesEnqNo: string\n vehRegNo: string\n chassisNo: string\n startDate: string;\n endDate: string;\n spinner: boolean;\n modelName: string\n model= new FormControl();\n filteredOptionsModel: Observable;\n ModelSuggestion: string[] = [];\n columnsToDisplay: string[] = ['customerName', 'customerCode', 'customerTelephone', 'registrationNo', 'vin', 'saleDate', 'vehicleModel']\n searchedCustomer: any\n showTable: boolean = false\n showEnquirybtn: boolean = false;\n pageLength = 0;\n pageSize: number;\n clickedRow: any;\n tableData: any;\n uniqueChassisArray: string[];\n selectedRowIndex: any;\n customerName = new FormControl();\n filteredOptions: Observable;\n customerNameSuggestion: string[] = [];\n today: Date = new Date();\n responseData: any;\n constructor(private router: Router, public dialog: MatDialog, private fb: FormBuilder, private commonService: CommonService, private toastr: ToastrService, private datePipe: DatePipe) { }\n\n ngOnInit() {\n if (localStorage.getItem('pipSearchListPageSize') != null || localStorage.getItem('pipSearchListPageSize') != undefined) {\n let pagesize = Number(localStorage.getItem('pipSearchListPageSize'));\n this.pageSize = (pagesize && !Number.isNaN(pagesize)) ? pagesize : 50;\n } else {\n this.pageSize = 50;\n }\n this.filteredOptions = this.customerName.valueChanges.pipe(\n startWith(''),\n map(value => this._filter(value))\n );\n this.commonService.customerNameSuggestionFilter().subscribe(res => {\n if (res['responseCode'] == 0) {\n res['responseData'].forEach(element => {\n this.customerNameSuggestion.push(element.customerName);\n })\n }\n else {\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n\n this.filteredOptionsModel = this.model.valueChanges.pipe(\n startWith(''),\n map(value => this._filterModel(value.trim()))\n );\n this.commonService.getModelSuggestionFilter().subscribe(res => {\n if (res['responseCode'] == 0) {\n res['responseData'].forEach(element => {\n this.ModelSuggestion.push(element.vehicleModel);\n })\n }\n else {\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n showEnquiryDialog() {\n openPipelineEnquiryDialog(this.dialog, this.clickedRow, this.uniqueChassisArray).subscribe(val => {\n this.selectedRowIndex = val;\n });\n this.uniqueChassisArray = [];\n }\n\n\n private _filter(value: string): string[] {\n if (value.length >= 3) {\n const filterValue = value.toLowerCase();\n return this.customerNameSuggestion.filter(option =>\n option.toLowerCase().startsWith(filterValue)\n );\n }\n }\n\n private _filterModel(value: string): string[] {\n if (value.length >= 2) {\n const filterValue = value.toLowerCase();\n return this.ModelSuggestion.filter(option =>\n option.toLowerCase().includes(filterValue)\n );\n }\n }\n\n applyFilter() {\n\n this.startDate = this.datePipe.transform(this.startDate, \"yyyy-MM-dd\");\n this.endDate = this.datePipe.transform(this.endDate, \"yyyy-MM-dd\");\n this.custName = this.customerName.value;\n this.modelName = this.model.value;\n\n if (this.custCode == null) {\n this.custCode = \"\";\n }\n if (this.custMobile == null) {\n this.custMobile = \"\";\n }\n if (this.vehRegNo == null) {\n this.vehRegNo = \"\";\n }\n if (this.custName == null || this.custName == \"\") {\n this.custName = \"\";\n }\n if (this.chassisNo == null) {\n this.chassisNo = \"\";\n }\n if (this.startDate == null || this.startDate == \"\") {\n this.startDate = \"\";\n }\n if (this.endDate == null || this.endDate == \"\") {\n this.endDate = \"\";\n }\n if (this.modelName == null || this.modelName == \"\") {\n this.modelName = \"\";\n }\n this.spinner = true;\n\n this.commonService.pipelineSearchFilter(this.custCode, this.custMobile, this.vehRegNo, this.custName, this.chassisNo, this.startDate, this.endDate, this.modelName).subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n this.spinner = false;\n this.showTable = true;\n this.searchedCustomer = new MatTableDataSource(res['responseData']);\n this.pageLength = res[\"responseData\"].length;\n // this.sort.direction = '';\n this.searchedCustomer.sort = this.sort;\n this.searchedCustomer.sortingDataAccessor = (data, header) => data[header];\n this.searchedCustomer.paginator = this.paginator;\n this.tableData = res['responseData'];\n }\n else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n\n });\n }\n\n setPageData(event) {\n let size = event.pageSize.toString();\n localStorage.setItem('pipSearchListPageSize', size);\n }\n\n activeButton(): boolean {\n let flag = false;\n if (this.custCode != null && this.custCode.length != 0) {\n flag = true;\n } else if (this.customerName.value != null && this.customerName.value.length != 0) {\n flag = true;\n } else if (this.custMobile != null && this.custMobile.length != 0) {\n flag = true;\n } else if (this.vehSalesEnqNo != null && this.vehSalesEnqNo.length != 0) {\n flag = true;\n } else if (this.vehRegNo != null && this.vehRegNo.length != 0) {\n flag = true;\n } else if (this.chassisNo != null && this.chassisNo.length != 0) {\n flag = true;\n } else if ((this.startDate != null && this.startDate.length != 0) && (this.endDate != null && this.endDate.length != 0)) {\n flag = true;\n } else if (this.model.value != null && this.model.value.length != 0) {\n flag = true;\n }\n return flag;\n }\n\n createEnquiry(row) {\n let chassisArray: string[] = [];\n this.selectedRowIndex = row.id;\n this.clickedRow = row;\n this.tableData.forEach(element => {\n if (element.customerCode == row.customerCode) {\n chassisArray.push(element.vin);\n this.uniqueChassisArray = Array.from(new Set(chassisArray));\n\n }\n });\n\n }\n\n showEnquiryDialogueFilter() {\n this.commonService.enquiryDialogFilter().subscribe(res => {\n this.responseData = res;\n return this.responseData;\n })\n }\n\n clearFilter() {\n this.custCode = \"\";\n this.custMobile = \"\";\n this.vehRegNo = \"\";\n this.custName = \"\";\n this.chassisNo = \"\";\n this.startDate = \"\";\n this.endDate = \"\";\n this.modelName = \"\";\n this.vehSalesEnqNo = \"\";\n this.searchedCustomer = \"\";\n }\n}\n","export default \".main-container {\\n margin: 115px 30px 30px 30px;\\n height: auto;\\n}\\n\\n.profile-container {\\n margin-bottom: 30px;\\n margin-top: 30px;\\n}\\n\\n.profile-card {\\n width: 50%;\\n margin: 0 auto;\\n background-color: #ffffff;\\n}\\n\\n.mat-card-header {\\n border-bottom: 1px solid lightgray;\\n}\\n\\n.mat-card-title {\\n font: Bold 13px/20px Roboto;\\n font-size: 13px;\\n}\\n\\n.password-form {\\n margin-top: 20px !important;\\n width: 100%;\\n}\\n\\n.password-form .form-field {\\n width: 50%;\\n font-size: 12px;\\n}\\n\\n.btn {\\n border-left: 4px solid #2E3668;\\n margin: 30px 0;\\n position: relative;\\n cursor: pointer;\\n transition: all 0.3s ease;\\n overflow: hidden;\\n background-color: #E64243 !important;\\n border-radius: 0px;\\n}\\n\\n.btn p {\\n text-align: center;\\n text-transform: uppercase;\\n color: #fff;\\n position: relative;\\n z-index: 1;\\n transition: all 0.3s ease;\\n margin: auto;\\n}\\n\\n/* sliders */\\n\\n.btn:before {\\n content: \\\"\\\";\\n width: 100%;\\n height: 100%;\\n background-color: #2E3668;\\n color: #fff;\\n position: absolute;\\n transition: all 0.3s ease;\\n}\\n\\n/* Left Slider */\\n\\n.btn-2:before {\\n top: 0;\\n left: -210px;\\n}\\n\\n.btn-2:hover:before {\\n left: 0;\\n}\\n\\n.btn-2:hover {\\n color: #fff;\\n}\\n\\n.btn-1 {\\n background-color: #ffffff !important;\\n color: #E64243 !important;\\n border: 1px solid #E64243;\\n}\\n\\n.btn-1 p {\\n margin: auto;\\n}\\n\\n.call-stats-card-border {\\n border-style: solid solid solid solid;\\n border-width: 1px;\\n border-radius: 0%;\\n border-color: lightgray;\\n}\\n\\n.fontClass {\\n font: Bold 12px/20px Roboto;\\n font-size: 12px;\\n color: #707070;\\n}\\n\\n.filterButton {\\n color: white !important;\\n background-color: #00457D;\\n height: 23px;\\n line-height: 0px;\\n margin-bottom: 1px;\\n}\\n\\n.inlineClass {\\n display: inline;\\n font: Regular 14px Roboto;\\n font-size: 12px;\\n letter-spacing: 0px;\\n color: black;\\n opacity: 1;\\n}\\n\\np.inlineClass {\\n margin-top: 5px;\\n margin-bottom: 5px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9jb21wb25lbnQvcHJvZmlsZS9wcm9maWxlLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnQvcHJvZmlsZS9wcm9maWxlLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksNEJBQUE7RUFDQSxZQUFBO0FDQ0o7O0FERUE7RUFHSSxtQkFBQTtFQUNBLGdCQUFBO0FDREo7O0FESUE7RUFDSSxVQUFBO0VBQ0EsY0FBQTtFQUNBLHlCQUFBO0FDREo7O0FESUE7RUFDSSxrQ0FBQTtBQ0RKOztBRElBO0VBQ0ksMkJBQUE7RUFDQSxlQUFBO0FDREo7O0FESUE7RUFDSSwyQkFBQTtFQUNBLFdBQUE7QUNESjs7QURFSTtFQUNJLFVBQUE7RUFDQSxlQUFBO0FDQVI7O0FES0E7RUFFSSw4QkFBQTtFQUNBLGNBQUE7RUFDQSxrQkFBQTtFQUNBLGVBQUE7RUFDQSx5QkFBQTtFQUNBLGdCQUFBO0VBQ0Esb0NBQUE7RUFDQSxrQkFBQTtBQ0hKOztBRE1BO0VBQ0ksa0JBQUE7RUFDQSx5QkFBQTtFQUNBLFdBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7RUFDQSx5QkFBQTtFQUNBLFlBQUE7QUNISjs7QURPQSxZQUFBOztBQUVBO0VBQ0ksV0FBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EseUJBQUE7RUFDQSxXQUFBO0VBRUEsa0JBQUE7RUFDQSx5QkFBQTtBQ05KOztBRFVBLGdCQUFBOztBQUVBO0VBQ0ksTUFBQTtFQUNBLFlBQUE7QUNSSjs7QURXQTtFQUNJLE9BQUE7QUNSSjs7QURXQTtFQUNJLFdBQUE7QUNSSjs7QURZQTtFQUNJLG9DQUFBO0VBQ0EseUJBQUE7RUFDQSx5QkFBQTtBQ1RKOztBRFlBO0VBQ0ksWUFBQTtBQ1RKOztBRFlBO0VBQ0kscUNBQUE7RUFDQSxpQkFBQTtFQUNBLGlCQUFBO0VBQ0EsdUJBQUE7QUNUSjs7QURZQTtFQUNJLDJCQUFBO0VBQ0EsZUFBQTtFQUNBLGNBQUE7QUNUSjs7QURZQTtFQUNJLHVCQUFBO0VBQ0EseUJBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtBQ1RKOztBRFlBO0VBQ0ksZUFBQTtFQUNBLHlCQUFBO0VBQ0EsZUFBQTtFQUNBLG1CQUFBO0VBQ0EsWUFBQTtFQUNBLFVBQUE7QUNUSjs7QURZQTtFQUNJLGVBQUE7RUFDQSxrQkFBQTtBQ1RKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50L3Byb2ZpbGUvcHJvZmlsZS5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5tYWluLWNvbnRhaW5lciB7XG4gICAgbWFyZ2luOiAxMTVweCAzMHB4IDMwcHggMzBweDtcbiAgICBoZWlnaHQ6IGF1dG87XG59XG5cbi5wcm9maWxlLWNvbnRhaW5lciB7XG4gICAgLy9oZWlnaHQ6IDEwMHZoO1xuICAgIC8vcGFkZGluZzogMzVweCAwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgICBtYXJnaW4tdG9wOiAzMHB4O1xufVxuXG4ucHJvZmlsZS1jYXJkIHtcbiAgICB3aWR0aDogNTAlO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG5cbi5tYXQtY2FyZC1oZWFkZXIge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBsaWdodGdyYXk7XG59XG5cbi5tYXQtY2FyZC10aXRsZSB7XG4gICAgZm9udDogQm9sZCAxM3B4LzIwcHggUm9ib3RvO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbn1cblxuLnBhc3N3b3JkLWZvcm0ge1xuICAgIG1hcmdpbi10b3A6IDIwcHggIWltcG9ydGFudDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICAuZm9ybS1maWVsZCB7XG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICB9XG59XG5cbi8vc2xpZGluZyBidG5cbi5idG4ge1xuICAgIC8vYm9yZGVyOiAycHggc29saWQgI0U2NDI0MztcbiAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkICMyRTM2Njg7XG4gICAgbWFyZ2luOiAzMHB4IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0U2NDI0MyAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbn1cblxuLmJ0biBwIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICAgIG1hcmdpbjogYXV0bztcbn1cblxuXG4vKiBzbGlkZXJzICovXG5cbi5idG46YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMkUzNjY4O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIC8vYm9yZGVyOiAycHggc29saWQgIzJFMzY2ODtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cblxuXG4vKiBMZWZ0IFNsaWRlciAqL1xuXG4uYnRuLTI6YmVmb3JlIHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogLTIxMHB4O1xufVxuXG4uYnRuLTI6aG92ZXI6YmVmb3JlIHtcbiAgICBsZWZ0OiAwO1xufVxuXG4uYnRuLTI6aG92ZXIge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIC8vYm9yZGVyOiAycHggc29saWQgIzJFMzY2ODtcbn1cblxuLmJ0bi0xIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNFNjQyNDMgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjRTY0MjQzO1xufVxuXG4uYnRuLTEgcCB7XG4gICAgbWFyZ2luOiBhdXRvO1xufVxuXG4uY2FsbC1zdGF0cy1jYXJkLWJvcmRlciB7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZCBzb2xpZCBzb2xpZCBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDFweDtcbiAgICBib3JkZXItcmFkaXVzOiAwJTtcbiAgICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxuLmZvbnRDbGFzcyB7XG4gICAgZm9udDogQm9sZCAxMnB4LzIwcHggUm9ib3RvO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogIzcwNzA3MDtcbn1cblxuLmZpbHRlckJ1dHRvbiB7XG4gICAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RDtcbiAgICBoZWlnaHQ6IDIzcHg7XG4gICAgbGluZS1oZWlnaHQ6IDBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxcHg7XG59XG5cbi5pbmxpbmVDbGFzcyB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIGZvbnQ6IFJlZ3VsYXIgMTRweCBSb2JvdG87XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gICAgY29sb3I6IGJsYWNrO1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbnAuaW5saW5lQ2xhc3Mge1xuICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG59IiwiLm1haW4tY29udGFpbmVyIHtcbiAgbWFyZ2luOiAxMTVweCAzMHB4IDMwcHggMzBweDtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4ucHJvZmlsZS1jb250YWluZXIge1xuICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICBtYXJnaW4tdG9wOiAzMHB4O1xufVxuXG4ucHJvZmlsZS1jYXJkIHtcbiAgd2lkdGg6IDUwJTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG5cbi5tYXQtY2FyZC1oZWFkZXIge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgbGlnaHRncmF5O1xufVxuXG4ubWF0LWNhcmQtdGl0bGUge1xuICBmb250OiBCb2xkIDEzcHgvMjBweCBSb2JvdG87XG4gIGZvbnQtc2l6ZTogMTNweDtcbn1cblxuLnBhc3N3b3JkLWZvcm0ge1xuICBtYXJnaW4tdG9wOiAyMHB4ICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnBhc3N3b3JkLWZvcm0gLmZvcm0tZmllbGQge1xuICB3aWR0aDogNTAlO1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5idG4ge1xuICBib3JkZXItbGVmdDogNHB4IHNvbGlkICMyRTM2Njg7XG4gIG1hcmdpbjogMzBweCAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0U2NDI0MyAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG59XG5cbi5idG4gcCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6ICNmZmY7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgbWFyZ2luOiBhdXRvO1xufVxuXG4vKiBzbGlkZXJzICovXG4uYnRuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyRTM2Njg7XG4gIGNvbG9yOiAjZmZmO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG5cbi8qIExlZnQgU2xpZGVyICovXG4uYnRuLTI6YmVmb3JlIHtcbiAgdG9wOiAwO1xuICBsZWZ0OiAtMjEwcHg7XG59XG5cbi5idG4tMjpob3ZlcjpiZWZvcmUge1xuICBsZWZ0OiAwO1xufVxuXG4uYnRuLTI6aG92ZXIge1xuICBjb2xvcjogI2ZmZjtcbn1cblxuLmJ0bi0xIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICBjb2xvcjogI0U2NDI0MyAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCAjRTY0MjQzO1xufVxuXG4uYnRuLTEgcCB7XG4gIG1hcmdpbjogYXV0bztcbn1cblxuLmNhbGwtc3RhdHMtY2FyZC1ib3JkZXIge1xuICBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIHNvbGlkIHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLXJhZGl1czogMCU7XG4gIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4uZm9udENsYXNzIHtcbiAgZm9udDogQm9sZCAxMnB4LzIwcHggUm9ib3RvO1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjNzA3MDcwO1xufVxuXG4uZmlsdGVyQnV0dG9uIHtcbiAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0Q7XG4gIGhlaWdodDogMjNweDtcbiAgbGluZS1oZWlnaHQ6IDBweDtcbiAgbWFyZ2luLWJvdHRvbTogMXB4O1xufVxuXG4uaW5saW5lQ2xhc3Mge1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIGZvbnQ6IFJlZ3VsYXIgMTRweCBSb2JvdG87XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgY29sb3I6IGJsYWNrO1xuICBvcGFjaXR5OiAxO1xufVxuXG5wLmlubGluZUNsYXNzIHtcbiAgbWFyZ2luLXRvcDogNXB4O1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59Il19 */\"","import { Component, OnInit } from '@angular/core';\nimport { FormControl, FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from 'src/app/core/service/common-service/common.service'\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-profile',\n templateUrl: './profile.component.html',\n styleUrls: ['./profile.component.scss']\n})\n\nexport class ProfileComponent implements OnInit {\n passwordForm: FormGroup;\n submitted: boolean;\n spinner: boolean;\n wrongPass: boolean;\n diffPassword: boolean;\n userId: string;\n userInfo: any;\n passwordPattern: any;\n samePassword: boolean;\n constructor(\n private fb: FormBuilder,\n private commonService: CommonService,\n private toastr: ToastrService,\n private router: Router\n ) { }\n\n ngOnInit() {\n this.userId = localStorage.getItem('userId');\n let userInfo = JSON.parse(localStorage.getItem('userInfo'));\n this.userInfo = userInfo[0];\n this.buildForm();\n }\n\n /**\n * Name: buildForm\n * purpose: To build Form\n */\n buildForm(): void {\n this.passwordPattern = '^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%^&*()_+-=]).{8,255}$';\n this.passwordForm = this.fb.group({\n currentPassword: ['', Validators.required],\n newPassword: ['', Validators.required],\n confirmPassword: ['', Validators.required]\n });\n }\n\n /**\n * Name: hasError\n * purpose: To check if form has any error\n * @param {any} control - form control\n * @return {boolean} flag to determine if form is valid.\n */\n hasError(control: any): boolean {\n return (\n control &&\n (this.submitted || control.touched || control.dirty) && !control.valid);\n }\n\n /**\n * Name: checkPassword\n * purpose: To check user enter valid pass\n */\n checkPassword(): void {\n let f = this.passwordForm;\n if (f.value.newPassword != f.value.confirmPassword) {\n this.diffPassword = true;\n return;\n }\n if(this.passwordForm.controls.newPassword.value==this.passwordForm.controls.currentPassword.value){\n this.samePassword=true\n return;\n }else if(this.passwordForm.controls.newPassword.value!=this.passwordForm.controls.currentPassword.value){\n this.samePassword=false\n }\n this.submitted = true;\n if (f.valid) {\n this.commonService.signin(this.userId, f.value.currentPassword).subscribe(\n res => {\n if (res['responseCode'] == 0) {\n this.wrongPass = false;\n this.changePassword(f.value.currentPassword, f.value.newPassword);\n } else {\n this.wrongPass = true;\n }\n }, err => {\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n }\n\n /**\n * Name: changePassword\n * purpose: To changes user password\n * @param {string} currentPassword - The currentPassword\n * @param {string} newPassword - The newPassword to update\n */\n changePassword(currentPassword: string, newPassword: string): void {\n this.spinner = true;\n this.commonService.updatePassword(this.userId, currentPassword, newPassword).subscribe(\n res => {\n if (res['responseCode'] == 0) {\n this.spinner = false;\n this.toastr.success('Password updated successfully', \"Success\");\n this.logout();\n }\n else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: logout\n * purpose: To Sign out user\n */\n logout(): void {\n localStorage.clear();\n this.router.navigate(['/login']);\n }\n}\n","export default \".working-area {\\n margin-top: 115px;\\n}\\n\\ntable {\\n width: 100%;\\n}\\n\\n.calling-table tr {\\n cursor: pointer;\\n}\\n\\n.table-head-call {\\n background: none;\\n padding-top: 12px;\\n}\\n\\n.button-margin {\\n margin-left: 10px;\\n}\\n\\n.callList {\\n font: Bold 20px Roboto;\\n letter-spacing: 0px;\\n color: #484848;\\n opacity: 1;\\n}\\n\\n.close-con {\\n font-size: 18px;\\n cursor: pointer;\\n top: 3px;\\n right: 1px;\\n position: absolute !important;\\n z-index: 10;\\n opacity: 1;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-infix {\\n border: 1px solid lightgray;\\n border-radius: 5px;\\n background: white;\\n padding: 0;\\n height: 20px;\\n}\\n\\n.filter1 ::ng-deep .mat-select {\\n padding: 4px 0px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-trigger {\\n padding-left: 8px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-value {\\n width: 89%;\\n}\\n\\n.filter1 ::ng-deep .mat-button {\\n font-size: 12px;\\n font: white;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label-wrapper {\\n top: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-underline {\\n display: none;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label {\\n top: 0;\\n margin-top: 4px !important;\\n padding-left: 5px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-arrow-wrapper {\\n padding-bottom: 0px;\\n}\\n\\n.filter-label {\\n font: Bold 14px Roboto;\\n letter-spacing: 0px;\\n color: #3c3c3c;\\n opacity: 1;\\n margin-bottom: 5px;\\n}\\n\\n.refesh-icon {\\n float: right;\\n margin-bottom: -30px;\\n margin-right: 20px;\\n margin-top: 30px;\\n cursor: pointer;\\n}\\n\\n.coloredRow {\\n background: #ffff99;\\n}\\n\\n.coloredGreenRow {\\n background: #90ee90;\\n}\\n\\n.mat-dialog-title {\\n background-color: darkgray;\\n}\\n\\n.callList-right {\\n font-size: 11px;\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.columnHeader {\\n font: Bold 12px Roboto;\\n letter-spacing: 0px;\\n color: #333333;\\n text-transform: capitalize;\\n}\\n\\n.lost {\\n color: #e64243;\\n position: absolute;\\n left: 10px;\\n font-size: 10px;\\n top: 38%;\\n}\\n\\n.inbound {\\n color: #2e3668;\\n position: absolute;\\n left: 0px;\\n font-size: 10px;\\n top: 38%;\\n}\\n\\n.columnvalue {\\n font-size: 14px;\\n position: relative;\\n}\\n\\n.filter1 {\\n font-size: 12px;\\n}\\n\\n.filterButton {\\n color: white !important;\\n background-color: #00457D;\\n height: 20px;\\n line-height: 10px;\\n margin-bottom: 1px;\\n}\\n\\n.filterdiv {\\n align-items: center;\\n}\\n\\n.serviceDueDate {\\n width: 10% !important;\\n}\\n\\n.followUp {\\n width: 8% !important;\\n}\\n\\ntd.mat-cell,\\ntd.mat-footer-cell,\\nth.mat-header-cell {\\n padding: 10px;\\n border-style: solid none none solid;\\n border-width: 0.1px;\\n border-color: lightgray;\\n}\\n\\n.table-border.mat-table {\\n border-style: none solid solid none;\\n border-color: lightgray;\\n}\\n\\nth.mat-header-cell {\\n background-color: #d9d9d9;\\n}\\n\\n.mat-sort-header-container {\\n justify-content: center !important;\\n}\\n\\n.filter2 {\\n width: auto;\\n}\\n\\n.call-stats-card .mat-card-title {\\n margin-bottom: 0px;\\n}\\n\\n.call-stats-card .call-stats {\\n font-size: 11px;\\n color: #ffffff;\\n}\\n\\n.call-stats-card .call-stats i {\\n color: #2e3668;\\n font-size: 11px;\\n}\\n\\n.call-stats-card .call-stats-title {\\n font-size: 20px;\\n color: #484848;\\n}\\n\\n.call-stats-card1 {\\n padding-top: 0px;\\n}\\n\\n.call-stats-card-border1 {\\n border-style: solid solid none solid;\\n border-width: 1px;\\n border-radius: 0%;\\n border-color: lightgray;\\n}\\n\\n.call-stats-card-border2 {\\n border-style: solid solid solid solid;\\n border-width: 1px;\\n border-radius: 0%;\\n margin-bottom: 15px;\\n border-color: lightgray;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-group {\\n border-radius: 0px;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle {\\n background-color: #ffffff;\\n color: #5482BC;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-checked {\\n background-color: #5482BC;\\n color: #ffffff;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-label-content {\\n line-height: 30px;\\n font: Regular 14px Roboto;\\n letter-spacing: 0px;\\n}\\n\\n.toggle-btn-grp ::ng-deep .refresh-btn.mat-button {\\n min-width: auto;\\n}\\n\\n.refresh-btn {\\n background-color: #ffffff;\\n color: #e64243;\\n border: 1px solid #e64243;\\n border-radius: 0px;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-flex {\\n border: 1px solid lightgray;\\n border-radius: 3px;\\n background: white;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-label {\\n padding-left: 10px;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-infix {\\n border-top: none;\\n}\\n\\n.textboxService ::ng-deep label.mat-form-field-label {\\n margin-top: 8px !important;\\n}\\n\\n.textboxService ::ng-deep input.mat-input-element {\\n margin-top: 0.6em;\\n margin-left: 10px;\\n}\\n\\n.search-icon {\\n position: absolute;\\n right: 15px;\\n top: 15px;\\n}\\n\\n.backColor {\\n background-color: #00457D !important;\\n font-size: 12px;\\n}\\n\\n.box-size {\\n margin-left: 10px;\\n margin-top: 7px;\\n width: 28px;\\n height: 28px;\\n color: #ffffff !important;\\n}\\n\\n.box-size1 {\\n margin-left: 10px;\\n margin-top: 10px;\\n width: 22px;\\n height: 22px;\\n color: #ffffff !important;\\n}\\n\\n.backColor1 {\\n background-color: #5482BC !important;\\n font-size: 12px;\\n}\\n\\n.call-stats-value {\\n margin-left: 50px;\\n font-size: 18px;\\n}\\n\\n.call-stats-value1 {\\n margin-left: 30px;\\n font-size: 18px;\\n}\\n\\n.info-circle-size {\\n font-size: 12px !important;\\n color: #ffffff !important;\\n}\\n\\n.flex-set {\\n margin-top: 7px;\\n margin-left: 15px;\\n}\\n\\n.flex-set1 {\\n margin-top: 7px;\\n margin-left: 25px;\\n}\\n\\n.dueDateIcon {\\n height: 9px;\\n width: 11px;\\n}\\n\\n.droupdown-style {\\n width: 120px;\\n}\\n\\n.value-list1 hr {\\n border-top: 1px solid lightgrey;\\n margin: 5px 0px;\\n width: 100%;\\n}\\n\\n.value-list1 span {\\n margin-left: 5px;\\n padding-left: 5px;\\n margin-top: 3px;\\n font-size: 12px;\\n}\\n\\n.margin-left {\\n padding-left: 10px;\\n}\\n\\n.paginator ::ng-deep .mat-form-field-infix {\\n height: 18px !important;\\n padding-bottom: 0px;\\n}\\n\\n.searchfilter {\\n width: 100px;\\n height: 30px;\\n margin-left: 10px;\\n font-size: 12px;\\n border: 0;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9jb21wb25lbnQvcHJzLWNhbGxpbmctbGlzdC9wcnMtY2FsbGluZy1saXN0LmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnQvcHJzLWNhbGxpbmctbGlzdC9wcnMtY2FsbGluZy1saXN0LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksaUJBQUE7QUNDSjs7QURFQTtFQUNJLFdBQUE7QUNDSjs7QURFQTtFQUNJLGVBQUE7QUNDSjs7QURFQTtFQUNJLGdCQUFBO0VBQ0EsaUJBQUE7QUNDSjs7QURFQTtFQUNJLGlCQUFBO0FDQ0o7O0FERUE7RUFDSSxzQkFBQTtFQUNBLG1CQUFBO0VBQ0EsY0FBQTtFQUNBLFVBQUE7QUNDSjs7QURFQTtFQUNJLGVBQUE7RUFDQSxlQUFBO0VBQ0EsUUFBQTtFQUNBLFVBQUE7RUFDQSw2QkFBQTtFQUNBLFdBQUE7RUFDQSxVQUFBO0FDQ0o7O0FERUE7RUFDSSwyQkFBQTtFQUNBLGtCQUFBO0VBQ0EsaUJBQUE7RUFDQSxVQUFBO0VBQ0EsWUFBQTtBQ0NKOztBREVBO0VBQ0ksZ0JBQUE7QUNDSjs7QURFQTtFQUNJLGlCQUFBO0FDQ0o7O0FERUE7RUFDSSxVQUFBO0FDQ0o7O0FERUE7RUFDSSxlQUFBO0VBQ0EsV0FBQTtBQ0NKOztBREVBO0VBQ0ksTUFBQTtFQUNBLGNBQUE7RUFDQSxpQkFBQTtBQ0NKOztBREVBO0VBQ0ksaUJBQUE7QUNDSjs7QURFQTtFQUNJLGFBQUE7QUNDSjs7QURFQTtFQUNJLE1BQUE7RUFDQSwwQkFBQTtFQUNBLGlCQUFBO0FDQ0o7O0FERUE7RUFDSSxtQkFBQTtBQ0NKOztBREVBO0VBQ0ksc0JBQUE7RUFDQSxtQkFBQTtFQUNBLGNBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7QUNDSjs7QURFQTtFQUNJLFlBQUE7RUFDQSxvQkFBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxlQUFBO0FDQ0o7O0FERUE7RUFDSSxt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Q1BKOztBRFVBO0VBQ0ksWUFBQTtFQUNBLFlBQUE7RUFDQSxpQkFBQTtFQUNBLGVBQUE7RUFDQSxTQUFBO0FDUEoiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnQvcHJzLWNhbGxpbmctbGlzdC9wcnMtY2FsbGluZy1saXN0LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLndvcmtpbmctYXJlYSB7XG4gICAgbWFyZ2luLXRvcDogMTE1cHg7XG59XG5cbnRhYmxlIHtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLmNhbGxpbmctdGFibGUgdHIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnRhYmxlLWhlYWQtY2FsbCB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBwYWRkaW5nLXRvcDogMTJweDtcbn1cblxuLmJ1dHRvbi1tYXJnaW4ge1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuXG4uY2FsbExpc3Qge1xuICAgIGZvbnQ6IEJvbGQgMjBweCBSb2JvdG87XG4gICAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgICBjb2xvcjogIzQ4NDg0ODtcbiAgICBvcGFjaXR5OiAxO1xufVxuXG4uY2xvc2UtY29uIHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRvcDogM3B4O1xuICAgIHJpZ2h0OiAxcHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gICAgei1pbmRleDogMTA7XG4gICAgb3BhY2l0eTogMTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGhlaWdodDogMjBweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0IHtcbiAgICBwYWRkaW5nOiA0cHggMHB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gICAgcGFkZGluZy1sZWZ0OiA4cHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gICAgd2lkdGg6IDg5JTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtYnV0dG9uIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udDogd2hpdGU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gICAgdG9wOiAwO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgdG9wOiAwO1xuICAgIG1hcmdpbi10b3A6IDRweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctbGVmdDogNXB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtYXJyb3ctd3JhcHBlciB7XG4gICAgcGFkZGluZy1ib3R0b206IDBweDtcbn1cblxuLmZpbHRlci1sYWJlbCB7XG4gICAgZm9udDogQm9sZCAxNHB4IFJvYm90bztcbiAgICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICAgIGNvbG9yOiAjM2MzYzNjO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuXG4ucmVmZXNoLWljb24ge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tYm90dG9tOiAtMzBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gICAgbWFyZ2luLXRvcDogMzBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5jb2xvcmVkUm93IHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZjk5O1xufVxuXG4uY29sb3JlZEdyZWVuUm93IHtcbiAgICBiYWNrZ3JvdW5kOiAjOTBlZTkwO1xufVxuXG4ubWF0LWRpYWxvZy10aXRsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2dyYXk7XG59XG5cbi5jYWxsTGlzdC1yaWdodCB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuXG4uY29sdW1uSGVhZGVyIHtcbiAgICBmb250OiBCb2xkIDEycHggUm9ib3RvO1xuICAgIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gICAgY29sb3I6ICMzMzMzMzM7XG4gICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG59XG5cbi5sb3N0IHtcbiAgICBjb2xvcjogI2U2NDI0MztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMTBweDtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgdG9wOiAzOCU7XG59XG5cbi5pbmJvdW5kIHtcbiAgICBjb2xvcjogIzJlMzY2ODtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMHB4O1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICB0b3A6IDM4JTtcbn1cblxuLmNvbHVtbnZhbHVlIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZmlsdGVyMSB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uZmlsdGVyQnV0dG9uIHtcbiAgICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEO1xuICAgIGhlaWdodDogMjBweDtcbiAgICBsaW5lLWhlaWdodDogMTBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxcHg7XG59XG5cbi5maWx0ZXJkaXYge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5zZXJ2aWNlRHVlRGF0ZSB7XG4gICAgd2lkdGg6IDEwJSAhaW1wb3J0YW50O1xufVxuXG4uZm9sbG93VXAge1xuICAgIHdpZHRoOiA4JSAhaW1wb3J0YW50O1xufVxuXG50ZC5tYXQtY2VsbCxcbnRkLm1hdC1mb290ZXItY2VsbCxcbnRoLm1hdC1oZWFkZXItY2VsbCB7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkIG5vbmUgbm9uZSBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDAuMXB4O1xuICAgIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4udGFibGUtYm9yZGVyLm1hdC10YWJsZSB7XG4gICAgYm9yZGVyLXN0eWxlOiBub25lIHNvbGlkIHNvbGlkIG5vbmU7XG4gICAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG59XG5cbnRoLm1hdC1oZWFkZXItY2VsbCB7XG4gICAgLy9qdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbiAgICAvL3RleHQtYWxpZ246IGNlbnRlcjtcbiAgICAvL2Rpc3BsYXk6IGZsZXg7XG4gICAgLy9qdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDlkOWQ5O1xufVxuXG4ubWF0LXNvcnQtaGVhZGVyLWNvbnRhaW5lciB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcbn1cblxuLmZpbHRlcjIge1xuICAgIHdpZHRoOiBhdXRvO1xufVxuXG4uY2FsbC1zdGF0cy1jYXJkIHtcbiAgICAubWF0LWNhcmQtdGl0bGUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgfVxuICAgIC5jYWxsLXN0YXRzIHtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgaSB7XG4gICAgICAgICAgICBjb2xvcjogIzJlMzY2ODtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuY2FsbC1zdGF0cy10aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgY29sb3I6ICM0ODQ4NDg7XG4gICAgfVxufVxuXG4uY2FsbC1zdGF0cy1jYXJkMSB7XG4gICAgcGFkZGluZy10b3A6IDBweDtcbn1cblxuLmNhbGwtc3RhdHMtY2FyZC1ib3JkZXIxIHtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIG5vbmUgc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMCU7XG4gICAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG59XG5cbi5jYWxsLXN0YXRzLWNhcmQtYm9yZGVyMiB7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZCBzb2xpZCBzb2xpZCBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDFweDtcbiAgICBib3JkZXItcmFkaXVzOiAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4O1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBjb2xvcjogIzU0ODJCQztcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzU0ODJCQztcbiAgICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtbGFiZWwtY29udGVudCB7XG4gICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgZm9udDogUmVndWxhciAxNHB4IFJvYm90bztcbiAgICBsZXR0ZXItc3BhY2luZzogMHB4O1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5yZWZyZXNoLWJ0bi5tYXQtYnV0dG9uIHtcbiAgICBtaW4td2lkdGg6IGF1dG87XG59XG5cbi5yZWZyZXNoLWJ0biB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBjb2xvcjogI2U2NDI0MztcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTY0MjQzO1xuICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgIGJvcmRlci10b3A6IG5vbmU7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgbGFiZWwubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIG1hcmdpbi10b3A6IDhweCAhaW1wb3J0YW50O1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIGlucHV0Lm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgICBtYXJnaW4tdG9wOiAwLjZlbTtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbn1cblxuLnNlYXJjaC1pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDE1cHg7XG4gICAgdG9wOiAxNXB4O1xufVxuXG4uYmFja0NvbG9yIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uYm94LXNpemUge1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIG1hcmdpbi10b3A6IDdweDtcbiAgICB3aWR0aDogMjhweDtcbiAgICBoZWlnaHQ6IDI4cHg7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuLmJveC1zaXplMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICB3aWR0aDogMjJweDtcbiAgICBoZWlnaHQ6IDIycHg7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuLmJhY2tDb2xvcjEge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM1NDgyQkMgIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IDEycHg7XG59XG5cbi5jYWxsLXN0YXRzLXZhbHVlIHtcbiAgICBtYXJnaW4tbGVmdDogNTBweDtcbiAgICBmb250LXNpemU6IDE4cHg7XG59XG5cbi5jYWxsLXN0YXRzLXZhbHVlMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDMwcHg7XG4gICAgZm9udC1zaXplOiAxOHB4O1xufVxuXG4uaW5mby1jaXJjbGUtc2l6ZSB7XG4gICAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuLmZsZXgtc2V0IHtcbiAgICBtYXJnaW4tdG9wOiA3cHg7XG4gICAgbWFyZ2luLWxlZnQ6IDE1cHg7XG59XG5cbi5mbGV4LXNldDEge1xuICAgIG1hcmdpbi10b3A6IDdweDtcbiAgICBtYXJnaW4tbGVmdDogMjVweDtcbn1cblxuLmR1ZURhdGVJY29uIHtcbiAgICBoZWlnaHQ6IDlweDtcbiAgICB3aWR0aDogMTFweDtcbn1cblxuLmRyb3VwZG93bi1zdHlsZSB7XG4gICAgd2lkdGg6IDEyMHB4O1xufVxuXG4udmFsdWUtbGlzdDEge1xuICAgIGhyIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIGxpZ2h0Z3JleTtcbiAgICAgICAgbWFyZ2luOiA1cHggMHB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gICAgc3BhbiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgICAgIHBhZGRpbmctbGVmdDogNXB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAzcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICB9XG59XG5cbi5tYXJnaW4tbGVmdCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xufVxuXG4ucGFnaW5hdG9yIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgIGhlaWdodDogMThweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAwcHg7XG59XG5cbi5zZWFyY2hmaWx0ZXIge1xuICAgIHdpZHRoOiAxMDBweDtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGJvcmRlcjogMDtcbn0iLCIud29ya2luZy1hcmVhIHtcbiAgbWFyZ2luLXRvcDogMTE1cHg7XG59XG5cbnRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5jYWxsaW5nLXRhYmxlIHRyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4udGFibGUtaGVhZC1jYWxsIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgcGFkZGluZy10b3A6IDEycHg7XG59XG5cbi5idXR0b24tbWFyZ2luIHtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbi5jYWxsTGlzdCB7XG4gIGZvbnQ6IEJvbGQgMjBweCBSb2JvdG87XG4gIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gIGNvbG9yOiAjNDg0ODQ4O1xuICBvcGFjaXR5OiAxO1xufVxuXG4uY2xvc2UtY29uIHtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRvcDogM3B4O1xuICByaWdodDogMXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgei1pbmRleDogMTA7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIHBhZGRpbmc6IDA7XG4gIGhlaWdodDogMjBweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0IHtcbiAgcGFkZGluZzogNHB4IDBweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICBwYWRkaW5nLWxlZnQ6IDhweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgd2lkdGg6IDg5JTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtYnV0dG9uIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250OiB3aGl0ZTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIHtcbiAgdG9wOiAwO1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0b3A6IDA7XG4gIG1hcmdpbi10b3A6IDRweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LWFycm93LXdyYXBwZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMHB4O1xufVxuXG4uZmlsdGVyLWxhYmVsIHtcbiAgZm9udDogQm9sZCAxNHB4IFJvYm90bztcbiAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgY29sb3I6ICMzYzNjM2M7XG4gIG9wYWNpdHk6IDE7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cblxuLnJlZmVzaC1pY29uIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tYm90dG9tOiAtMzBweDtcbiAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICBtYXJnaW4tdG9wOiAzMHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5jb2xvcmVkUm93IHtcbiAgYmFja2dyb3VuZDogI2ZmZmY5OTtcbn1cblxuLmNvbG9yZWRHcmVlblJvdyB7XG4gIGJhY2tncm91bmQ6ICM5MGVlOTA7XG59XG5cbi5tYXQtZGlhbG9nLXRpdGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogZGFya2dyYXk7XG59XG5cbi5jYWxsTGlzdC1yaWdodCB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG5cbi5jb2x1bW5IZWFkZXIge1xuICBmb250OiBCb2xkIDEycHggUm9ib3RvO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICBjb2xvcjogIzMzMzMzMztcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG59XG5cbi5sb3N0IHtcbiAgY29sb3I6ICNlNjQyNDM7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMTBweDtcbiAgZm9udC1zaXplOiAxMHB4O1xuICB0b3A6IDM4JTtcbn1cblxuLmluYm91bmQge1xuICBjb2xvcjogIzJlMzY2ODtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwcHg7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgdG9wOiAzOCU7XG59XG5cbi5jb2x1bW52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZmlsdGVyMSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmZpbHRlckJ1dHRvbiB7XG4gIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEO1xuICBoZWlnaHQ6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxcHg7XG59XG5cbi5maWx0ZXJkaXYge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uc2VydmljZUR1ZURhdGUge1xuICB3aWR0aDogMTAlICFpbXBvcnRhbnQ7XG59XG5cbi5mb2xsb3dVcCB7XG4gIHdpZHRoOiA4JSAhaW1wb3J0YW50O1xufVxuXG50ZC5tYXQtY2VsbCxcbnRkLm1hdC1mb290ZXItY2VsbCxcbnRoLm1hdC1oZWFkZXItY2VsbCB7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGJvcmRlci1zdHlsZTogc29saWQgbm9uZSBub25lIHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDAuMXB4O1xuICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxuLnRhYmxlLWJvcmRlci5tYXQtdGFibGUge1xuICBib3JkZXItc3R5bGU6IG5vbmUgc29saWQgc29saWQgbm9uZTtcbiAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG59XG5cbnRoLm1hdC1oZWFkZXItY2VsbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkOWQ5ZDk7XG59XG5cbi5tYXQtc29ydC1oZWFkZXItY29udGFpbmVyIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcbn1cblxuLmZpbHRlcjIge1xuICB3aWR0aDogYXV0bztcbn1cblxuLmNhbGwtc3RhdHMtY2FyZCAubWF0LWNhcmQtdGl0bGUge1xuICBtYXJnaW4tYm90dG9tOiAwcHg7XG59XG4uY2FsbC1zdGF0cy1jYXJkIC5jYWxsLXN0YXRzIHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi5jYWxsLXN0YXRzLWNhcmQgLmNhbGwtc3RhdHMgaSB7XG4gIGNvbG9yOiAjMmUzNjY4O1xuICBmb250LXNpemU6IDExcHg7XG59XG4uY2FsbC1zdGF0cy1jYXJkIC5jYWxsLXN0YXRzLXRpdGxlIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBjb2xvcjogIzQ4NDg0ODtcbn1cblxuLmNhbGwtc3RhdHMtY2FyZDEge1xuICBwYWRkaW5nLXRvcDogMHB4O1xufVxuXG4uY2FsbC1zdGF0cy1jYXJkLWJvcmRlcjEge1xuICBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIG5vbmUgc29saWQ7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3JkZXItcmFkaXVzOiAwJTtcbiAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG59XG5cbi5jYWxsLXN0YXRzLWNhcmQtYm9yZGVyMiB7XG4gIGJvcmRlci1zdHlsZTogc29saWQgc29saWQgc29saWQgc29saWQ7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3JkZXItcmFkaXVzOiAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIHtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGNvbG9yOiAjNTQ4MkJDO1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU0ODJCQztcbiAgY29sb3I6ICNmZmZmZmY7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWxhYmVsLWNvbnRlbnQge1xuICBsaW5lLWhlaWdodDogMzBweDtcbiAgZm9udDogUmVndWxhciAxNHB4IFJvYm90bztcbiAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAucmVmcmVzaC1idG4ubWF0LWJ1dHRvbiB7XG4gIG1pbi13aWR0aDogYXV0bztcbn1cblxuLnJlZnJlc2gtYnRuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgY29sb3I6ICNlNjQyNDM7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNjQyNDM7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCBsYWJlbC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIG1hcmdpbi10b3A6IDhweCAhaW1wb3J0YW50O1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIGlucHV0Lm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgbWFyZ2luLXRvcDogMC42ZW07XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuXG4uc2VhcmNoLWljb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAxNXB4O1xuICB0b3A6IDE1cHg7XG59XG5cbi5iYWNrQ29sb3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmJveC1zaXplIHtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIG1hcmdpbi10b3A6IDdweDtcbiAgd2lkdGg6IDI4cHg7XG4gIGhlaWdodDogMjhweDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuLmJveC1zaXplMSB7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICB3aWR0aDogMjJweDtcbiAgaGVpZ2h0OiAyMnB4O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG4uYmFja0NvbG9yMSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1NDgyQkMgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uY2FsbC1zdGF0cy12YWx1ZSB7XG4gIG1hcmdpbi1sZWZ0OiA1MHB4O1xuICBmb250LXNpemU6IDE4cHg7XG59XG5cbi5jYWxsLXN0YXRzLXZhbHVlMSB7XG4gIG1hcmdpbi1sZWZ0OiAzMHB4O1xuICBmb250LXNpemU6IDE4cHg7XG59XG5cbi5pbmZvLWNpcmNsZS1zaXplIHtcbiAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbi5mbGV4LXNldCB7XG4gIG1hcmdpbi10b3A6IDdweDtcbiAgbWFyZ2luLWxlZnQ6IDE1cHg7XG59XG5cbi5mbGV4LXNldDEge1xuICBtYXJnaW4tdG9wOiA3cHg7XG4gIG1hcmdpbi1sZWZ0OiAyNXB4O1xufVxuXG4uZHVlRGF0ZUljb24ge1xuICBoZWlnaHQ6IDlweDtcbiAgd2lkdGg6IDExcHg7XG59XG5cbi5kcm91cGRvd24tc3R5bGUge1xuICB3aWR0aDogMTIwcHg7XG59XG5cbi52YWx1ZS1saXN0MSBociB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCBsaWdodGdyZXk7XG4gIG1hcmdpbjogNXB4IDBweDtcbiAgd2lkdGg6IDEwMCU7XG59XG4udmFsdWUtbGlzdDEgc3BhbiB7XG4gIG1hcmdpbi1sZWZ0OiA1cHg7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xuICBtYXJnaW4tdG9wOiAzcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLm1hcmdpbi1sZWZ0IHtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xufVxuXG4ucGFnaW5hdG9yIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBoZWlnaHQ6IDE4cHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1ib3R0b206IDBweDtcbn1cblxuLnNlYXJjaGZpbHRlciB7XG4gIHdpZHRoOiAxMDBweDtcbiAgaGVpZ2h0OiAzMHB4O1xuICBtYXJnaW4tbGVmdDogMTBweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBib3JkZXI6IDA7XG59Il19 */\"","import { Component, OnInit, ViewChild, ChangeDetectorRef } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from '../../core/service/common-service/common.service';\nimport { ListCustData } from './listCustData';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { MatDialog, MatPaginator, MatSort, MatSelect } from '@angular/material';\nimport { DatePipe } from '@angular/common';\nimport { FilterPipePipe } from '../../pipes/filter-pipe.pipe';\n\n@Component({\n selector: 'app-prs-calling-list',\n templateUrl: './prs-calling-list.component.html',\n styleUrls: ['./prs-calling-list.component.scss'],\n providers: [FilterPipePipe]\n})\nexport class PrsCallingListComponent implements OnInit {\n\n @ViewChild(MatSort, { static: true }) sort: MatSort;\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\n @ViewChild('filterSelect', { static: true }) filterSelect: MatSelect;\n\n callStats: any = {};\n spinner: boolean;\n userId: string;\n userRoles: any;\n selectedRegionValues: string[] = [];\n selectedStateValues: string[] = [];\n selectedDealerCodeValues: string[] = [];\n //selectedCallTypeValues: string;\n selectedVerticalValues: string[] = [];\n selectedLanguageValues: string[] = [];\n selectedAccountValues: string[] = [];\n uniqueRegionValue = new Set();\n uniqueStateValue = new Set();\n uniqueDealerCodeSet = new Set();\n //uniqueCallType = new Set();\n uniqueVerticalValue = new Set();\n uniqueLanguage = new Set();\n uniqueAccountType = new Set();\n callToggleStatus: boolean = true;\n selection: any;\n callFlag: any;\n callsToBeMade: number = 0;\n dataSource: any;\n selectedCol: string;\n customerData: any;\n currentDate: string;\n selectedColValues: string[] = [];\n pageSize: number;\n filteredDataSource: any;\n callsMade: number = 0;\n customersToBeCalled: string;\n callsMade1: string;\n filterMap = new Map();\n uniqueVerticalValueArray :string[] = [];\n selectedDealer: any;\n uniqueDealerCodeCopy: string[] = [];\n uniqueDealerCode: string[] = [];\n dealerCode: string[] = [];\n displayedColumns: string[] = [\n 'customerName',\n 'customerTel',\n 'accountType',\n 'callType',\n 'callStatus',\n 'dealerCode',\n 'dealerLocation',\n 'dealerCategory',\n 'custLanguage',\n 'creInput',\n 'followUpTime',\n 'remarks'\n ];\n\n //call type selection\n // uniqueCallType: any[] = [\n // { value: 1, type: '1st Month - Sales Experience' },\n // { value: 3, type: 'PRS-Post Repair Survey' },\n // { value: 4, type: '4th Month - Product Experience' },\n // { value: 9, type: '9th Month - Service Experience' }\n // ];\n\n // uniqueCallType: string[] = ['PRS-Post Repair Survey','1st Month - Sales Experience','4th Month - Product Experience','9th Month - Service Experience'];\n // //uniqueRegionValue: string[] = ['North - II','North - I','West','East - II','East - I','South - I','Central','South - II'];\n // selectedCallTypeValues: string = '1st Month - Sales Experience';\n uniqueCallType: string[] = [];\n //uniqueRegionValue: string[] = ['North - II','North - I','West','East - II','East - I','South - I','Central','South - II'];\n selectedCallTypeValues: string = '';\n selectedCallType: string;\n callTypeFlag: string;\n //selectedRegionValues: string = 'North - II';\n //regionFlag: string;\n custDataSource: string[] = [];\n roleId: string;\n filteredDataSourceCopy: any;\n filteredDataSourceLength: any;\n search: any;\n\n constructor(private router: Router,private toastr: ToastrService,private commonService: CommonService,\n private datePipe: DatePipe, private filterPipePipe: FilterPipePipe, private changeDetectorRefs: ChangeDetectorRef,) { }\n\n ngOnInit() {\n if (localStorage.getItem('userId') == null || localStorage.getItem('userId') == undefined) {\n this.router.navigate(['login']);\n }\n this.customerData = JSON.parse(localStorage.getItem('customerData'));\n this.userId = localStorage.getItem('userId');\n this.currentDate = this.datePipe.transform(new Date(), \"yyyy-MM-dd\");\n this.userRoles = localStorage.getItem('userRoles');\n\n if(this.userRoles == 'CRE') {\n this.uniqueCallType = ['PRS-Post Repair Survey'];\n this.selectedCallTypeValues = 'PRS-Post Repair Survey';\n } else {\n this.uniqueCallType = ['PRS-Post Repair Survey','1st Month - Sales Experience','4th Month - Product Experience','9th Month - Service Experience'];\n this.selectedCallTypeValues = 'PRS-Post Repair Survey';\n }\n this.commonService.countryCode=localStorage.getItem('countryCode');\n this.commonService.roleId = localStorage.getItem('roleId');\n this.roleId = localStorage.getItem('roleId');\n //this.selectedCallTypeValues.push(\"1\");\n if (localStorage.getItem('selectedRegionValues') != null || localStorage.getItem('selectedRegionValues') != undefined) {\n let selectedRegionValues = JSON.parse(localStorage.getItem('selectedRegionValues'));\n this.selectedRegionValues = selectedRegionValues;\n }\n\n if (localStorage.getItem('selectedStateValues') != null || localStorage.getItem('selectedStateValues') != undefined) {\n let selectedStateValues = JSON.parse(localStorage.getItem('selectedStateValues'));\n this.selectedStateValues = selectedStateValues;\n }\n\n if (localStorage.getItem('selectedDealerCodeValues') != null || localStorage.getItem('selectedDealerCodeValues') != undefined) {\n let selectedDealerCodeValues = JSON.parse(localStorage.getItem('selectedDealerCodeValues'));\n this.selectedDealerCodeValues = selectedDealerCodeValues;\n }\n\n if (localStorage.getItem('selectedCallTypeValues') != null || localStorage.getItem('selectedCallTypeValues') != undefined) {\n let selectedCallTypeValues = (localStorage.getItem('selectedCallTypeValues'));\n this.selectedCallTypeValues = selectedCallTypeValues;\n }\n\n if (localStorage.getItem('selectedVerticalValues') != null || localStorage.getItem('selectedVerticalValues') != undefined) {\n let selectedVerticalValues = JSON.parse(localStorage.getItem('selectedVerticalValues'));\n this.selectedVerticalValues = selectedVerticalValues;\n }\n\n if (localStorage.getItem('selectedLanguageValues') != null || localStorage.getItem('selectedLanguageValues') != undefined) {\n let selectedLanguageValues = JSON.parse(localStorage.getItem('selectedLanguageValues'));\n this.selectedLanguageValues = selectedLanguageValues;\n }\n\n if (localStorage.getItem('selectedAccountValues') != null || localStorage.getItem('selectedAccountValues') != undefined) {\n let selectedAccountValues = JSON.parse(localStorage.getItem('selectedAccountValues'));\n this.selectedAccountValues = selectedAccountValues;\n }\n\n if (localStorage.getItem('callListPageSize') != null || localStorage.getItem('callListPageSize') != undefined) {\n let pagesize = Number(localStorage.getItem('callListPageSize'));\n this.pageSize = (pagesize && pagesize != NaN) ? pagesize : 50;\n } else {\n this.pageSize = 50;\n }\n\n if ((localStorage.getItem('workshops') == null || localStorage.getItem('workshops') == undefined) && this.userRoles !='Call Center Agent') {\n this.getWorkshopDetails();\n }\n this.callTypeFlag = this.selectedCallTypeValues;\n this.getCreStats();\n this.filterValue();\n this.callListinfo();\n\n this.commonService.startInterval();\n this.commonService.followupResponse && this.commonService.followupResponse.subscribe((res) => {\n this.commonService.prsFollowupDataSource = [];\n if(res['responseCode'] == 0) {\n res['responseData'].forEach((element) => {\n this.commonService.prsFollowupDataSource.push(element);\n let callListItem = this.commonService.prsCallListResponseData.find((ele) => {return ele.customerId == element.customerId});\n let index = this.commonService.prsCallListResponseData.findIndex((ele) => {return ele.customerId == element.customerId});\n if(index != -1) {\n this.commonService.prsCallListResponseData.splice(index, 1);\n }\n });\n this.commonService.prsFollowupDataSource.forEach((val) => {\n this.commonService.prsCallListResponseData.unshift(val);\n })\n } else {\n this.commonService.prsFollowupDataSource = [];\n // this.toastr.error(res['message'], \"Error\");\n }\n }, error => {\n // this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n\n if(!this.commonService.prsCallListResponseData.length){\n this.prepairCallList('Y', this.selectedCallType)\n } else {\n let custRes = this.commonService.prsCustomerResponse;\n if(custRes) {\n let customerId = custRes['customerId'];\n this.getCallListCustCode('N', customerId);\n } else {\n this.getCustomerResponse();\n this.setCallListData('Y');\n }\n }\n }\n\n filterValue() {\n if(this.selectedCallTypeValues == '1st Month - Sales Experience') {\n this.selectedCallType = '1';\n } else if(this.selectedCallTypeValues == 'PRS-Post Repair Survey') {\n this.selectedCallType = '3';\n } else if(this.selectedCallTypeValues == '4th Month - Product Experience') {\n this.selectedCallType = '4';\n } else if(this.selectedCallTypeValues == '9th Month - Service Experience') {\n this.selectedCallType = '9';\n }\n this.commonService.prsCallType = this.selectedCallType;\n }\n\n getCallListCustCode(callDoneInd: string, custCode: string) {\n this.spinner = true;\n this.commonService.getPRSCustCallList(callDoneInd, this.selectedCallType, custCode, this.roleId, this.userId)\n .subscribe(res => {\n if (res['responseCode'] == 0) {\n res['responseData'].forEach((element) => {\n this.custDataSource.push(element);\n });\n this.spinner = false;\n } else {\n this.spinner = false;\n //this.toastr.error(res['message'], \"Error\");\n }\n this.getCustomerResponse();\n this.setCallListData('Y');\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n getCustomerResponse() {\n let custResp = this.commonService.prsCustomerResponse;\n\n if(custResp) {\n let custId = custResp['customerId'];\n let callListItem = this.commonService.prsCallListResponseData.find((element) => {return element.customerId == custId});\n let index = this.commonService.prsCallListResponseData.findIndex((element) => {return element.customerId == custId});\n\n if(this.custDataSource[0] && (this.custDataSource[0]['callStatus'] == 'Try Again'\n || this.custDataSource[0]['callStatus'] == 'Pending'\n || this.custDataSource[0]['callStatus'] == 'Pending Try-Again')) {\n if(index != -1) {\n this.commonService.prsCallListResponseData.splice(index, 1);\n }\n this.custDataSource.forEach((element) => {\n this.commonService.prsCallListResponseData.push(element);\n });\n } else if(this.custDataSource[0] && (this.custDataSource[0]['callStatus'] == 'Queued')) {\n if(index != -1) {\n this.commonService.prsCallListResponseData.splice(index, 1, this.custDataSource[0]);\n }\n } else if(this.custDataSource[0] && (this.custDataSource[0]['callStatus'] == 'Try Again Contacted'\n || this.custDataSource[0]['callStatus'] == 'Booking Confirmed'\n || this.custDataSource[0]['callStatus'] == 'No Service')) {\n if(index != -1) {\n this.commonService.prsCallListResponseData.splice(index, 1);\n }\n } else if(this.custDataSource[0] && (this.custDataSource[0]['creInput'] == 'Contact Fleet Manager')) {\n if(index != -1) {\n this.commonService.prsCallListResponseData.splice(index, 1);\n }\n this.commonService.prsCallListResponseData.unshift(this.custDataSource[0]);\n } else if(this.custDataSource[0] && (this.custDataSource[0]['creInput'] == 'Contact Driver')) {\n if(index != -1) {\n this.commonService.prsCallListResponseData.splice(index, 1);\n }\n this.commonService.prsCallListResponseData.unshift(this.custDataSource[0]);\n } else {\n if(index != -1) {\n this.commonService.prsCallListResponseData.splice(index, 1);\n }\n }\n }\n this.commonService.prsCustomerResponse = '';\n }\n\n getCallToBeMadeCallList(flag: string) {\n if(!this.commonService.prsCallListResponseData.length){\n this.prepairCallList(flag, this.selectedCallType)\n } else {\n this.setCallListData(flag);\n }\n const index = this.displayedColumns.findIndex(item => item === 'complaintId');\n if (index !== -1) {\n this.displayedColumns.splice(index, 1);\n }\n }\n\n /**\n * Name: setPageData\n * purpose: To set pagesize for table\n */\n setPageData(event) {\n let size = event.pageSize.toString();\n localStorage.setItem('callListPageSize', size);\n}\n\n/**\n * Name: getWorkshopDetails\n * purpose: To get CRE assigned workshop details\n */\n getWorkshopDetails() {\n this.spinner = true;\n this.commonService.getWorkshopDetails(this.userId)\n .subscribe(res => {\n if (res['responseCode'] == 0) {\n this.spinner = false;\n localStorage.setItem('workshops', JSON.stringify(res['responseData']));\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n}\n\n /**\n * Name: getCreStats\n * purpose: To get call count info\n */\n getCreStats(): void {\n this.spinner = true;\n this.commonService.getPrsCallStats(this.userId, this.roleId)\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n this.spinner = false;\n this.callStats = res['responseData'][0];\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: activeButton\n * purpose: To activat apply button\n */\n activeButton(): boolean {\n let flag = false;\n if(this.selectedRegionValues != null && this.selectedRegionValues.length != 0) {\n flag = true;\n } else if (this.selectedStateValues != null && this.selectedStateValues.length != 0) {\n flag = true;\n } else if(this.selectedDealerCodeValues != null && this.selectedDealerCodeValues.length != 0) {\n flag = true;\n } else if(this.selectedCallTypeValues != null) {\n flag = true;\n } else if (this.selectedVerticalValues != null && this.selectedVerticalValues.length != 0) {\n flag = true;\n } else if(this.selectedLanguageValues != null && this.selectedLanguageValues.length != 0) {\n flag = true;\n } else if(this.selectedAccountValues != null && this.selectedAccountValues.length != 0) {\n flag = true;\n }\n return flag;\n }\n\n /**\n * Name: applyfilter\n * purpose: To apply filter on call list data\n */\n applyfilter(): void {\n let key = '';\n this.filterMap = new Map();\n\n this.filterValue();\n if(this.selectedCallTypeValues != this.callTypeFlag) {\n localStorage.setItem('selectedCallTypeValues',(this.selectedCallTypeValues));\n //localStorage.setItem('selectedRegionValues',JSON.stringify(this.selectedRegionValues));\n this.callTypeFlag = this.selectedCallTypeValues;\n //this.regionFlag = this.selectedRegionValues;\n this.callTypeApply();\n } else {\n this.otherFilterApply();\n }\n }\n\n callTypeApply() {\n this.prepairCallList('Y', this.selectedCallType);\n }\n\n otherFilterApply() {\n this.filteredDataSource = this.dataSource;\n let key = '';\n if(this.selectedRegionValues != null && this.selectedRegionValues.length != 0){\n key = \"dealerRegion\";\n this.filterMap.set(key, this.selectedRegionValues);\n this.filteredDataSource = new MatTableDataSource(this.filterPipePipe.transform(this.filteredDataSource.filteredData, this.filterMap));\n }\n\n if(this.selectedStateValues != null && this.selectedStateValues.length != 0){\n key = \"dealerLocation\";\n this.filterMap.set(key, this.selectedStateValues);\n this.filteredDataSource = new MatTableDataSource(this.filterPipePipe.transform(this.filteredDataSource.filteredData, this.filterMap));\n }\n\n if(this.selectedDealerCodeValues != null && this.selectedDealerCodeValues.length != 0){\n key = \"dealerCode\";\n this.filterMap.set(key, this.selectedDealerCodeValues);\n this.filteredDataSource = new MatTableDataSource(this.filterPipePipe.transform(this.filteredDataSource.filteredData, this.filterMap));\n }\n\n if(this.selectedVerticalValues != null && this.selectedVerticalValues.length != 0){\n key = \"vertical\";\n this.filterMap.set(key, this.selectedVerticalValues);\n this.filteredDataSource = new MatTableDataSource(this.filterPipePipe.transform(this.filteredDataSource.filteredData, this.filterMap));\n }\n\n if(this.selectedLanguageValues != null && this.selectedLanguageValues.length != 0){\n key = \"custLanguage\";\n this.filterMap.set(key, this.selectedLanguageValues);\n this.filteredDataSource = new MatTableDataSource(this.filterPipePipe.transform(this.filteredDataSource.filteredData, this.filterMap));\n }\n\n if(this.selectedAccountValues != null && this.selectedAccountValues.length != 0){\n key = \"accountType\";\n this.filterMap.set(key, this.selectedAccountValues);\n this.filteredDataSource = new MatTableDataSource(this.filterPipePipe.transform(this.filteredDataSource.filteredData, this.filterMap));\n }\n //this.filterMap.set(this.selectedCol, this.selectedColValues);\n //this.filteredDataSource = new MatTableDataSource(this.filterPipePipe.transform(this.dataSource.filteredData, this.filterMap));\n this.callsToBeMade = this.filteredDataSource.filteredData.length;\n this.sort.direction = '';\n this.filteredDataSource.sort = this.sort;\n this.filteredDataSource.sortingDataAccessor = (data, header) => data[header];\n this.filteredDataSource.paginator = this.paginator;\n localStorage.setItem('selectedRegionValues',JSON.stringify(this.selectedRegionValues));\n localStorage.setItem('selectedStateValues',JSON.stringify(this.selectedStateValues));\n localStorage.setItem('selectedDealerCodeValues',JSON.stringify(this.selectedDealerCodeValues));\n //localStorage.setItem('selectedCallTypeValues',(this.selectedCallTypeValues));\n localStorage.setItem('selectedVerticalValues',JSON.stringify(this.selectedVerticalValues));\n localStorage.setItem('selectedLanguageValues',JSON.stringify(this.selectedLanguageValues));\n localStorage.setItem('selectedAccountValues',JSON.stringify(this.selectedAccountValues));\n }\n\n /**\n * Name: searchfilter\n * purpose: To apply filter on call list data\n */\n searchfilter(filterValue: string): void {\n filterValue = filterValue.trim(); // Remove whitespace\n filterValue = filterValue.toLowerCase(); // Datasource defaults to lowercase matches\n this.filteredDataSource.filter = filterValue;\n }\n\n /**\n * Name: prepairCallList\n * purpose: To get calllist details\n * @param {string} flag - type of call\n */\n prepairCallList(flag: string, callType: string): void {\n this.spinner = true;\n this.selection = new SelectionModel(true, []);\n // this.dataSource = '';\n this.commonService.prscustomercallList(flag, callType, this.userId, this.roleId)\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n if (flag == 'Y') {\n this.callFlag = flag;\n this.callToggleStatus = true;\n } else {\n this.callFlag = flag;\n this.callToggleStatus = false;\n }\n if (res['responseData'].length) {\n let response = res['responseData'];\n if(flag == 'Y') {\n this.commonService.prsCallListResponseData = response;\n }\n response.forEach(data => {\n // if ((data.accountType).toLowerCase() == \"lost\") {\n // let changeName = data.customerName.split(\" - L\")[0];\n // data.customerName = changeName;\n // }\n let inboundCustomer = data.customerName && data.customerName.includes(\"- I\"); \n let stringPosition = data.customerName.length;\n let lostString = data.customerName[stringPosition - 3] + data.customerName[stringPosition - 2] + data.customerName[stringPosition - 1]\n if (inboundCustomer && lostString == \"- I\") {\n let changeName = data.customerName.split(\" - I\")[0];\n data.customerName = changeName;\n data.isInboundCall = true;\n }\n });\n this.callsToBeMade = response.length;\n this.dataSource = new MatTableDataSource(response);\n this.filteredDataSource = this.dataSource;\n this.filteredDataSourceCopy = this.dataSource;\n this.sort.direction = '';\n this.dataSource.sort = this.sort;\n this.dataSource.sortingDataAccessor = (data, header) => data[header];\n this.dataSource.paginator = this.paginator;\n this.filterData();\n this.otherFilterApply();\n //this.callListinfo();\n this.spinner = false;\n }\n //this.callsToBeMade = res['responseData'].length;\n //init data table and shorting\n // this.dataSource = new MatTableDataSource(res['responseData']);\n // this.filteredDataSource = this.dataSource;\n // this.sort.direction = '';\n // this.dataSource.sort = this.sort;\n // this.dataSource.sortingDataAccessor = (data, header) => data[header];\n // this.dataSource.paginator = this.paginator;\n // this.filterData();\n // this.otherFilterApply();\n // if ((!this.selectedRegionValues || this.selectedRegionValues.length == 0)\n // && (!this.selectedStateValues || this.selectedStateValues.length == 0)\n // && (!this.selectedDealerCodeValues || this.selectedDealerCodeValues.length == 0)\n // //&& (this.selectedCallTypeValues)\n // && (!this.selectedVerticalValues || this.selectedVerticalValues.length == 0)\n // && (!this.selectedLanguageValues || this.selectedLanguageValues.length == 0)\n // && (!this.selectedAccountValues || this.selectedAccountValues.length == 0)) {\n // //init filtered table and shorting\n // this.filteredDataSource = new MatTableDataSource(res['responseData']);\n // this.sort.direction = '';\n // this.filteredDataSource.sort = this.sort;\n // this.filteredDataSource.sortingDataAccessor = (data, header) => data[header];\n // this.filteredDataSource.paginator = this.paginator;\n // }\n //this.spinner = false;\n //this.callsMadeCalculate(res['responseData']);\n //this.callListinfo();\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n this.callToggleStatus = true;\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n this.callToggleStatus = true;\n });\n }\n\n setCallListData(flag: string) {\n let response;\n if(flag == 'Y') {\n response = this.commonService.prsCallListResponseData;\n }\n if (flag == 'Y') {\n this.callFlag = flag;\n this.callToggleStatus = true;\n } else {\n this.callFlag = flag;\n this.callToggleStatus = false;\n }\n\n if (response.length) {\n response.forEach(data => {\n // if ((data.accountType).toLowerCase() == \"lost\") {\n // let changeName = data.customerName.split(\" - L\")[0];\n // data.customerName = changeName;\n // }\n let inboundCustomer = data.customerName.includes(\"- I\");\n let stringPosition = data.customerName.length;\n let lostString = data.customerName[stringPosition - 3] + data.customerName[stringPosition - 2] + data.customerName[stringPosition - 1]\n if (inboundCustomer && lostString == \"- I\") {\n let changeName = data.customerName.split(\" - I\")[0];\n data.customerName = changeName;\n data.isInboundCall = true;\n }\n });\n this.callsToBeMade = response.length;\n this.dataSource = new MatTableDataSource(response);\n this.filteredDataSource = this.dataSource;\n this.sort.direction = '';\n this.dataSource.sort = this.sort;\n this.dataSource.sortingDataAccessor = (data, header) => data[header];\n this.dataSource.paginator = this.paginator;\n this.filterData();\n this.otherFilterApply();\n this.callListinfo();\n this.spinner = false;\n }\n }\n\n /**\n * Name: callsMadeCalculate\n * purpose: To get call made count\n * @param {Array} callsToBeMade - list of calls\n */\n callsMadeCalculate(callsToBeMade: any) {\n this.callsMade = 0;\n callsToBeMade.forEach(element => {\n let currentDate = \"\" + this.datePipe.transform(new Date(), \"yyyy-MM-dd\");\n // let reqDate = this.datePipe.transform((element.lastCallTime), \"yyyy-MM-dd\");\n // if (currentDate == reqDate) {\n // this.callsMade++;\n // }\n });\n }\n\n /**\n * Name: callListinfo\n * purpose: To get call count info\n */\n callListinfo(): void {\n this.spinner = true;\n this.commonService.prsCallListinfo(this.userId, this.roleId)\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n this.customersToBeCalled = res['responseData'].callToBeMade;\n this.callsMade1 = res['responseData'].callMade;\n this.spinner = false;\n } else {\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n //...\n });\n }\n\n /**\n * Name: selectCustomer\n * purpose: To select customer for details\n * @param {Object} row - selected customer details\n */\n selectCustomer(row: ListCustData): void {\n localStorage.setItem('customerId', row.customerId);\n //localStorage.setItem('custNotification', row.serviceType + \", \" + row.callStatusDesc);\n localStorage.setItem(\"vin\", row.vin);\n localStorage.setItem(\"dealerCode\", row.dealerCode);\n localStorage.setItem(\"customerData\", JSON.stringify(row));\n this.router.navigate(['prs-customer360']);\n }\n\n /**\n * Name: filterData\n * purpose: To filter call list data\n */\n filterData(): void {\n this.dataSource.filteredData.forEach(element => {\n this.uniqueRegionValue.add(element.dealerRegion);\n //this.uniqueCallType.add(element.callType);\n this.uniqueStateValue.add(element.dealerLocation);\n this.uniqueDealerCodeSet.add(element.dealerCode);\n this.uniqueVerticalValue.add(element.vertical);\n this.uniqueLanguage.add(element.custLanguage);\n this.uniqueAccountType.add(element.accountType);\n });\n this.uniqueDealerCode = Array.from(this.uniqueDealerCodeSet);\n this.uniqueDealerCodeCopy = this.uniqueDealerCode;\n let verticalArray = Array.from(this.uniqueVerticalValue);\n verticalArray.forEach((element,index)=>{\n\n if(element == null){\n verticalArray.splice(index,1);\n }\n });\n this.uniqueVerticalValueArray = verticalArray;\n localStorage.setItem(\"uniqueRegionValue\", JSON.stringify((this.uniqueRegionValue)));\n localStorage.setItem(\"uniqueVerticalValue\", JSON.stringify(this.uniqueVerticalValueArray));\n localStorage.setItem(\"uniqueDealerCode\", JSON.stringify(this.uniqueDealerCode));\n\n // if ((this.selectedRegionValues != null && this.selectedRegionValues.length != 0)\n // || (this.selectedStateValues != null && this.selectedStateValues.length != 0)\n // || (this.selectedDealerCodeValues != null && this.selectedDealerCodeValues.length != 0)\n // //|| (this.selectedCallTypeValues[0] != '1')\n // || (this.selectedVerticalValues != null && this.selectedVerticalValues.length != 0)\n // || (this.selectedLanguageValues != null && this.selectedLanguageValues.length != 0)\n // || (this.selectedAccountValues != null && this.selectedAccountValues.length != 0)) {\n // //this.filterTriggered(null);\n // this.applyfilter();\n // }\n }\n\n /**\n * Name: clearFilter\n * purpose: To clear filter\n */\n clearFilter(listChange:boolean, listType: string): void {\n if(listType=='X' && this.displayedColumns.filter(item => item == 'complaintId').length == 0){\n this.displayedColumns.push('complaintId');\n }\n if(listChange) {\n this.dataSource = [];\n this.filteredDataSource = [];\n this.filterValue();\n this.prepairCallList(listType,this.selectedCallType);\n } else {\n this.filterMap.clear();\n this.selectedCol = null;\n this.selectedColValues = null;\n this.selectedRegionValues = null;\n this.selectedStateValues = null;\n this.selectedDealerCodeValues = null;\n this.selectedVerticalValues = null;\n this.selectedLanguageValues = null;\n this.selectedAccountValues = null;\n if(this.selectedCallTypeValues == 'PRS-Post Repair Survey'){\n this.filterValue();\n this.prepairCallList(listType,this.selectedCallType);\n } else {\n this.filteredDataSource = new MatTableDataSource(this.filterPipePipe.transform(this.dataSource.filteredData, this.filterMap));\n this.callsToBeMade = this.filteredDataSource.filteredData.length;\n this.sort.direction = '';\n this.filteredDataSource.sort = this.sort;\n this.filteredDataSource.sortingDataAccessor = (data, header) => data[header];\n this.filteredDataSource.paginator = this.paginator;\n }\n this.selectedCallTypeValues = 'PRS-Post Repair Survey';\n this.filteredDataSource = new MatTableDataSource(this.filterPipePipe.transform(this.dataSource.filteredData, this.filterMap));\n this.callsToBeMade = this.filteredDataSource.filteredData.length;\n this.sort.direction = '';\n this.filteredDataSource.sort = this.sort;\n this.filteredDataSource.sortingDataAccessor = (data, header) => data[header];\n this.filteredDataSource.paginator = this.paginator;\n localStorage.removeItem('selectedRegionValues');\n localStorage.removeItem('selectedStateValues');\n localStorage.removeItem('selectedDealerCodeValues');\n localStorage.removeItem('selectedCallTypeValues');\n localStorage.removeItem('selectedVerticalValues');\n localStorage.removeItem('selectedLanguageValues');\n localStorage.removeItem('selectedAccountValues');\n localStorage.removeItem('selectedCol');\n localStorage.removeItem('selectedColValues');\n }\n }\n\n /**\n * Name: refreshCallList\n * purpose: To refresh call list\n */\n refreshCallList(): void {\n this.spinner = true;\n this.commonService.prscustomercallList('Y',this.selectedCallTypeValues, this.userId, this.roleId)\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n this.dataSource = new MatTableDataSource(res['responseData']);\n this.callsToBeMade = res['responseData'].length;\n this.dataSource.sort = this.sort;\n this.dataSource.sortingDataAccessor = (data, header) => data[header];\n this.dataSource.paginator = this.paginator;\n this.callsMadeCalculate(res['responseData']);\n this.spinner = false;\n this.changeDetectorRefs.detectChanges();\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: changeColor\n * purpose: To change followup time color\n */\n changeColor(followUp:any): String {\n let currentTime = this.datePipe.transform(new Date(), \"yyyy-MM-dd HH:mm:ss \");\n\n if(followUp != null && followUp != undefined && followUp != \"\") {\n let followUpDateTime = this.datePipe.transform(followUp, \"yyyy-MM-dd HH:mm:ss\");\n if((new Date(currentTime)).getTime() > (new Date(followUpDateTime).getTime())){\n return \"red\";\n }\n }\n }\n\n onKey() : void {\n this.uniqueDealerCode = this.uniqueDealerCodeCopy;\n this.dealerCode = [];\n this.selectedDealer = this.selectedDealer.trim();\n this.dealerCode = this.uniqueDealerCode.filter(item =>\n item.toLowerCase().includes(this.selectedDealer.toLowerCase())\n );\n if(this.dealerCode.length > 0){\n this.closeInput();\n }\n this.uniqueDealerCode = [];\n this.uniqueDealerCode = this.dealerCode;\n }\n\n closeInput() : void {\n if(this.dealerCode.length == 0) {\n this.selectedDealer = '';\n this.uniqueDealerCode = this.uniqueDealerCodeCopy;\n }\n }\n\n searchfilter1(filterValue: string): void {\n this.filteredDataSource = this.filteredDataSourceCopy;\n if(filterValue != \"\") {\n filterValue = filterValue.trim(); // Remove whitespace\n filterValue = filterValue.toLowerCase(); // Datasource defaults to lowercase matches\n }\n this.filteredDataSource.filter = filterValue;\n this.filteredDataSourceLength = this.filteredDataSource.filteredData.length;\n if(filterValue == \"\") {\n this.filteredDataSource = this.filteredDataSourceCopy;\n }\n }\n}","export default \".working-area {\\n margin-bottom: 20px;\\n margin-left: 10px;\\n margin-top: 10px;\\n}\\n\\n.cust360-container {\\n margin: 115px 30px 30px 30px;\\n}\\n\\n.example-card1 {\\n display: block;\\n margin-left: auto;\\n margin-right: auto;\\n}\\n\\n.example-card1 .fontClass {\\n display: inline-block;\\n}\\n\\n.example-card1 .inlineClass {\\n display: inline-block;\\n}\\n\\n.example-card2 {\\n display: block;\\n margin-left: auto;\\n margin-right: auto;\\n border: none;\\n box-shadow: none;\\n padding: 0px;\\n}\\n\\n.survey {\\n margin-left: 15px;\\n font-size: 11px;\\n margin-bottom: 5px !important;\\n color: #707070;\\n}\\n\\n.fontClass {\\n font: Bold 12px/20px Roboto;\\n font-size: 12px;\\n color: #707070;\\n}\\n\\n.fontClassBold {\\n font-family: Bold 16px/22px Roboto;\\n color: #707070;\\n}\\n\\n.border {\\n border: 1px solid #707070;\\n font: 12px/18px Roboto;\\n color: #707070;\\n border-radius: 25px;\\n padding: 5px;\\n}\\n\\n.serv-heading {\\n width: 30%;\\n}\\n\\n.button {\\n text-align: center;\\n float: right;\\n font: Regular 16px/22px Roboto;\\n color: #ffffff;\\n border-radius: 0px;\\n}\\n\\n.recent {\\n color: #1acc04;\\n position: relative;\\n right: 15px;\\n font-size: 12px;\\n top: 0;\\n margin-bottom: 7px;\\n}\\n\\n.disabled {\\n opacity: 0.6;\\n}\\n\\n.checkalign {\\n padding-left: 15px !important;\\n padding-top: 20px !important;\\n}\\n\\n.vehicle-det-prs .checkalign {\\n padding-left: 15px !important;\\n padding-top: 20px !important;\\n}\\n\\n.vehicle-det .checkalign {\\n padding-left: 10px !important;\\n padding-top: 5px !important;\\n}\\n\\n.inlineClass {\\n display: inline;\\n font: Regular 14px Roboto;\\n font-size: 12px;\\n letter-spacing: 0px;\\n color: black;\\n opacity: 1;\\n}\\n\\np.inlineClass {\\n margin-top: 0px;\\n margin-bottom: 5px;\\n}\\n\\n.marginClass {\\n margin-left: 20px;\\n}\\n\\n.navbar {\\n padding-left: 10px;\\n padding-top: 10px;\\n font-size: 12px;\\n}\\n\\n.navbar a {\\n cursor: pointer;\\n}\\n\\n.example-radio-button {\\n font-size: 12px;\\n margin-left: 10px;\\n}\\n\\n.number-form ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 5px;\\n}\\n\\n.number-form ::ng-deep .mat-form-field-infix {\\n padding: 0.1375em 0;\\n}\\n\\n.number-form ::ng-deep .mat-form-field-underline {\\n bottom: 0.25em;\\n height: 0px;\\n}\\n\\n.number-form ::ng-deep input.mat-input-element {\\n margin-top: 0px;\\n}\\n\\n.number-form {\\n width: 100%;\\n position: relative;\\n}\\n\\n.number-row {\\n width: 100%;\\n position: relative;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-infix {\\n border: 1px solid lightgray;\\n border-radius: 5px;\\n background: white;\\n padding: 0;\\n height: 20px;\\n}\\n\\n.filter1 ::ng-deep .mat-select {\\n padding: 2px 0px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-trigger {\\n padding-left: 8px;\\n width: 100%;\\n font-size: 12px;\\n padding-bottom: 5px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-value {\\n width: 90%;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label-wrapper {\\n top: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-underline {\\n display: none;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label {\\n top: 0;\\n margin-top: 4px !important;\\n padding-left: 5px;\\n}\\n\\n.filter-label {\\n font: Bold 14px Roboto;\\n letter-spacing: 0px;\\n color: #3c3c3c;\\n opacity: 1;\\n margin-bottom: 5px;\\n font-size: 13px;\\n}\\n\\n.fontClass {\\n font: Bold 14px/16px Roboto;\\n letter-spacing: 0px;\\n font-size: 12px;\\n color: #7b7a7a;\\n opacity: 1;\\n margin-bottom: 3px !important;\\n}\\n\\n.fontClassBold {\\n font-family: Bold 16px/22px Roboto;\\n color: #000000;\\n font-size: 12px;\\n font-weight: 500;\\n}\\n\\n.fontClassBold i {\\n color: #00457d;\\n margin-right: 5px;\\n}\\n\\n.border {\\n border: 1px solid #707070;\\n font: 12px/18px Roboto;\\n color: #707070;\\n border-radius: 25px;\\n padding: 5px;\\n}\\n\\n.button {\\n text-align: center;\\n float: right;\\n font: Regular 16px/22px Roboto;\\n color: #ffffff;\\n}\\n\\n.contact {\\n width: 100% !important;\\n margin-top: 20px;\\n}\\n\\n.contact .mat-tab-group {\\n min-height: 150px;\\n}\\n\\n.contact ::ng-deep .mat-tab-label {\\n height: 20px;\\n min-width: 90px;\\n color: #5482bc;\\n border: 1px solid lightgray;\\n font-size: 11px;\\n}\\n\\n.contact ::ng-deep .mat-tab-label-active {\\n background-color: #5482bc;\\n color: #ffffff;\\n opacity: 1;\\n}\\n\\n.contact ::ng-deep .mat-tab-header {\\n border: none;\\n}\\n\\n.contact ::ng-deep .mat-tab-list .mat-ink-bar {\\n height: 0px;\\n}\\n\\n.tabrow {\\n width: 100% !important;\\n margin-top: 20px;\\n margin-bottom: 20px;\\n}\\n\\n.align {\\n padding-left: 16px;\\n padding-top: 20px;\\n}\\n\\n.table-div {\\n padding: 10px;\\n}\\n\\n.calling-table {\\n width: 100%;\\n}\\n\\n.tabrow ::ng-deep .mat-tab-label {\\n height: 35px;\\n padding: 0px 10px;\\n border-top-left-radius: 8px !important;\\n border-top-right-radius: 8px !important;\\n border-bottom-width: 1px;\\n border-color: #d3d3d3;\\n border-style: solid;\\n background-color: white;\\n margin-left: 3px;\\n color: black;\\n opacity: 1;\\n}\\n\\n.tabrow ::ng-deep .mat-tab-label-active {\\n background-color: #00457d;\\n color: #ffffff;\\n opacity: 1;\\n border-style: none;\\n}\\n\\n.tabrow ::ng-deep .mat-tab-header {\\n border: none;\\n}\\n\\n.tabrow ::ng-deep .mat-tab-list .mat-ink-bar {\\n height: 0px;\\n}\\n\\n.table {\\n font-family: \\\"Trebuchet MS\\\", Arial, Helvetica, sans-serif;\\n border-collapse: collapse;\\n width: 100%;\\n margin-top: 20px;\\n}\\n\\n.table td,\\n.table th {\\n border: 1px solid lightgray;\\n padding: 5px;\\n width: auto;\\n font-size: 12px;\\n}\\n\\n.table tr:nth-child(even) {\\n background-color: #ffffff;\\n}\\n\\n.table tr:hover {\\n background-color: #ffffff;\\n}\\n\\n.table th {\\n padding-top: 5px;\\n padding-bottom: 5px;\\n text-align: left;\\n background-color: #d3d3d3;\\n color: black;\\n}\\n\\n.btn {\\n position: relative;\\n cursor: pointer;\\n overflow: hidden;\\n background-color: #00457d !important;\\n border-radius: 5px !important;\\n height: 25px;\\n}\\n\\n.btn p {\\n text-align: center;\\n text-transform: uppercase;\\n color: #fff;\\n position: relative;\\n z-index: 1;\\n transition: all 0.3s ease;\\n margin: auto;\\n font-size: 12px;\\n line-height: 10px;\\n}\\n\\n.btn-1 {\\n background-color: #ffffff !important;\\n color: #00457d !important;\\n border: 1px solid #00457d;\\n}\\n\\n.btn-1 p {\\n margin: auto;\\n}\\n\\n.call-stats-card-border1 {\\n border-style: solid solid solid solid;\\n border-width: 1px;\\n border-radius: 0%;\\n border-color: lightgray;\\n}\\n\\n.icon-background {\\n color: #00457d;\\n height: 13px !important;\\n width: 13px !important;\\n margin-right: 8px;\\n}\\n\\n.tabrow ::ng-deep .mat-tab-label-active .mat-tab-label-content .icon-background {\\n color: #ffffff !important;\\n}\\n\\n.check-icon {\\n cursor: pointer;\\n color: #1acc04;\\n position: absolute;\\n right: 5px;\\n font-size: 12px;\\n top: 25%;\\n margin-right: 18px;\\n margin-bottom: 5px !important;\\n}\\n\\n.cancle-icon {\\n cursor: pointer;\\n color: red;\\n position: absolute;\\n right: 5px;\\n font-size: 12px;\\n top: 20%;\\n margin-bottom: 5px;\\n margin-left: 35px;\\n}\\n\\n.number-form ::ng-deep .mat-form-field-ripple {\\n height: 0px !important;\\n}\\n\\n.input-border {\\n border: 1px solid lightgray;\\n border-radius: 3px;\\n width: 75% !important;\\n height: 25px;\\n padding-left: 5px;\\n margin-left: 5px;\\n}\\n\\n.input-border-d {\\n border: 1px solid lightgray;\\n border-radius: 3px;\\n width: 70% !important;\\n height: 25px;\\n padding-left: 5px;\\n margin-left: 5px;\\n}\\n\\ntd.mat-cell,\\ntd.mat-footer-cell,\\nth.mat-header-cell {\\n padding: 5px;\\n border-style: solid none none solid;\\n border-width: 0.1px;\\n border-color: lightgray;\\n}\\n\\n.table-font.th {\\n color: black;\\n}\\n\\n.table-font.td {\\n color: #595959;\\n}\\n\\n.spinner_container {\\n background-color: rgba(33, 33, 33, 0.1);\\n position: absolute;\\n z-index: 100;\\n top: 0;\\n left: 0;\\n width: 100%;\\n min-height: 100%;\\n}\\n\\n.question {\\n font-size: 12px;\\n padding: 5px;\\n}\\n\\n.question .remark {\\n margin-left: 25px;\\n margin-top: 5px;\\n width: 70%;\\n border: 1px solid #d8d8d8;\\n padding: 4px;\\n border-radius: 3px;\\n padding-left: 10px;\\n font-size: 12px;\\n}\\n\\n.question input.remark::-webkit-input-placeholder {\\n font-size: 11px;\\n}\\n\\n.question input.remark::-moz-placeholder {\\n font-size: 11px;\\n}\\n\\n.question input.remark::-ms-input-placeholder {\\n font-size: 11px;\\n}\\n\\n.question input.remark::placeholder {\\n font-size: 11px;\\n}\\n\\n.question bar-rating {\\n margin-left: 25px;\\n}\\n\\n.question-back {\\n background-color: #f2f2f2;\\n}\\n\\n.m-t-10 {\\n margin-top: 10px;\\n}\\n\\n.m-l-25 {\\n padding-left: 25px;\\n}\\n\\n.filter1 {\\n margin-left: 25px;\\n margin-top: 5px;\\n}\\n\\n.search-card .filter1 {\\n margin-left: 0px;\\n margin-top: 0px;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-infix {\\n border: 1px solid lightgray;\\n border-radius: 2px;\\n background: white;\\n padding: 0;\\n height: 20px;\\n font-size: 12px;\\n}\\n\\n.filter1 ::ng-deep .mat-select {\\n padding: 4px 0px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-trigger {\\n padding-left: 8px;\\n width: 100%;\\n}\\n\\n.filter1 ::ng-deep .mat-select-value {\\n width: 90%;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label-wrapper {\\n top: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-underline {\\n display: none;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label {\\n top: 0;\\n margin-top: 5px !important;\\n padding-left: 5px;\\n}\\n\\n.filter-label {\\n font: Bold 14px Roboto;\\n letter-spacing: 0px;\\n color: #3c3c3c;\\n opacity: 1;\\n margin-bottom: 5px;\\n}\\n\\n.question mat-error {\\n color: #ff0000;\\n font-size: 10px;\\n margin-top: 0px !important;\\n}\\n\\n#callDialog {\\n box-shadow: 0 1px 2px 1px rgba(0, 0, 0, 0.2), 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12);\\n padding: 10px;\\n background-color: #ffffff;\\n position: fixed;\\n width: 35%;\\n height: 360px;\\n}\\n\\n.close-con {\\n float: right;\\n font-size: 18px;\\n cursor: pointer;\\n}\\n\\ntable {\\n width: 100%;\\n}\\n\\n.call-header {\\n font-family: Bold 16px/22px Roboto;\\n font-size: 12px;\\n}\\n\\n.call-header i {\\n color: #00457d;\\n}\\n\\n.rect2 {\\n width: 100%;\\n background: #eaeaea;\\n}\\n\\n.rect3 {\\n padding-top: 25px;\\n padding-right: 0px;\\n padding-left: 0px;\\n padding-bottom: 0px;\\n width: 100%;\\n font-size: 12px;\\n background: #ffffff;\\n}\\n\\n.rect3 .button {\\n float: right;\\n margin-right: 8px;\\n margin-top: 5px;\\n}\\n\\n.rect4 {\\n width: 100%;\\n font-size: 12px;\\n padding-bottom: 0px;\\n}\\n\\n.rect5 {\\n float: left;\\n width: 100%;\\n}\\n\\n.text-pp {\\n width: 100%;\\n}\\n\\n.call-popup-save {\\n float: right;\\n margin-right: 20px;\\n margin-bottom: 10px;\\n}\\n\\n.icons .fa-phone {\\n transform: rotate(135deg);\\n}\\n\\n.icons .fa-microphone-slash,\\n.icons .fa-phone {\\n font-size: 24px;\\n}\\n\\n.icons .button {\\n margin: 5px;\\n}\\n\\n.icons {\\n margin-top: 25px;\\n padding-left: 29%;\\n}\\n\\n.hang-btn {\\n color: red !important;\\n border-color: red !important;\\n}\\n\\n.classtext1 {\\n font-weight: bold;\\n}\\n\\n.timestamp {\\n font-size: 11px;\\n margin-left: 10px;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-group {\\n border-radius: 0px;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle {\\n background-color: #ffffff;\\n color: #000000;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-checked {\\n background-color: #00457d;\\n color: #ffffff;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-label-content {\\n line-height: 20px;\\n}\\n\\n.btn {\\n position: relative;\\n cursor: pointer;\\n transition: all 0.3s ease;\\n overflow: hidden;\\n background-color: #00457d !important;\\n height: 24px;\\n line-height: 10px;\\n}\\n\\n.mat-button {\\n border-radius: 0px;\\n float: right;\\n}\\n\\n.btn p {\\n text-align: center;\\n text-transform: uppercase;\\n color: #fff;\\n position: relative;\\n z-index: 1;\\n transition: all 0.3s ease;\\n margin: auto;\\n font-size: 12px;\\n}\\n\\n.btn-1 {\\n background-color: #ffffff !important;\\n color: #e64243 !important;\\n border: 1px solid #e64243;\\n}\\n\\n.btn-1 p {\\n margin: auto;\\n}\\n\\n.dropdown-pp1 .mat-form-field-infix {\\n height: 21px !important;\\n width: 100%;\\n padding-bottom: 0px !important;\\n}\\n\\n.dropdown-pp1 .mat-form-field {\\n width: 100%;\\n}\\n\\n.dropdown-pp1 .ng-star-inserted {\\n width: 99%;\\n}\\n\\n.profile-pp1 .mat-form-field-wrapper {\\n padding-bottom: 0px;\\n}\\n\\n.profile-pp1 .mat-label {\\n padding-top: 6px;\\n}\\n\\n.dropdown-border {\\n border-style: solid solid solid solid !important;\\n border-width: 1px;\\n border-radius: 5px;\\n border-color: gray;\\n height: 28px;\\n padding-left: 8px;\\n padding-top: 6px;\\n margin-top: 0px;\\n}\\n\\n.textfield-border {\\n border-style: solid solid solid solid !important;\\n border-width: 1px;\\n border-radius: 5px;\\n border-color: gray;\\n}\\n\\n#callDialog mat-error {\\n color: #ff0000;\\n font-size: 10px;\\n margin-top: -12px !important;\\n}\\n\\n.cus360Td {\\n font-size: 11px;\\n font-family: poppins;\\n}\\n\\n.error {\\n color: #ff0000;\\n font-size: 10px;\\n}\\n\\n.searchfilter {\\n width: 90%;\\n height: 30px;\\n margin-left: 10px;\\n font-size: 12px;\\n border: 0;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9jb21wb25lbnQvcHJzLWN1c3RvbWVyMzYwL3Bycy1jdXN0b21lcjM2MC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50L3Bycy1jdXN0b21lcjM2MC9wcnMtY3VzdG9tZXIzNjAuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxtQkFBQTtFQUNBLGlCQUFBO0VBQ0EsZ0JBQUE7QUNDSjs7QURFQTtFQUNJLDRCQUFBO0FDQ0o7O0FERUE7RUFDSSxjQUFBO0VBQ0EsaUJBQUE7RUFDQSxrQkFBQTtBQ0NKOztBREVBO0VBQ0kscUJBQUE7QUNDSjs7QURFQTtFQUNJLHFCQUFBO0FDQ0o7O0FERUE7RUFDSSxjQUFBO0VBQ0EsaUJBQUE7RUFDQSxrQkFBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtFQUNBLFlBQUE7QUNDSjs7QURFQTtFQUNJLGlCQUFBO0VBQ0EsZUFBQTtFQUNBLDZCQUFBO0VBQ0EsY0FBQTtBQ0NKOztBREVBO0VBQ0ksMkJBQUE7RUFDQSxlQUFBO0VBQ0EsY0FBQTtBQ0NKOztBREVBO0VBQ0ksa0NBQUE7RUFDQSxjQUFBO0FDQ0o7O0FERUE7RUFDSSx5QkFBQTtFQUNBLHNCQUFBO0VBQ0EsY0FBQTtFQUNBLG1CQUFBO0VBQ0EsWUFBQTtBQ0NKOztBREVBO0VBQ0ksVUFBQTtBQ0NKOztBREVBO0VBQ0ksa0JBQUE7RUFDQSxZQUFBO0VBQ0EsOEJBQUE7RUFDQSxjQUFBO0VBQ0Esa0JBQUE7QUNDSjs7QURFQTtFQUNJLGNBQUE7RUFDQSxrQkFBQTtFQUNBLFdBQUE7RUFDQSxlQUFBO0VBQ0EsTUFBQTtFQUNBLGtCQUFBO0FDQ0o7O0FERUE7RUFDSSxZQUFBO0FDQ0o7O0FERUE7RUFDSSw2QkFBQTtFQUNBLDRCQUFBO0FDQ0o7O0FERUE7RUFDSSw2QkFBQTtFQUNBLDRCQUFBO0FDQ0o7O0FERUE7RUFDSSw2QkFBQTtFQUNBLDJCQUFBO0FDQ0o7O0FERUE7RUFDSSxl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O0VBQ0EseUJBQUE7RUFDQSx5QkFBQTtBQ2pCSjs7QURvQkE7RUFDSSxZQUFBO0FDakJKOztBRG9CQTtFQUNJLHVCQUFBO0VBQ0EsV0FBQTtFQUNBLDhCQUFBO0FDakJKOztBRG9CQTtFQUNJLFdBQUE7QUNqQko7O0FEb0JBO0VBQ0ksVUFBQTtBQ2pCSjs7QURvQkE7RUFDSSxtQkFBQTtBQ2pCSjs7QURvQkE7RUFDSSxnQkFBQTtBQ2pCSjs7QURvQkE7RUFDSSxnREFBQTtFQUNBLGlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxrQkFBQTtFQUNBLFlBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZUFBQTtBQ2pCSjs7QURvQkE7RUFDSSxnREFBQTtFQUNBLGlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxrQkFBQTtBQ2pCSjs7QURxQkE7RUFDSSxjQUFBO0VBQ0EsZUFBQTtFQUNBLDRCQUFBO0FDbEJKOztBRHFCQTtFQUNJLGVBQUE7RUFDQSxvQkFBQTtBQ2xCSjs7QURxQkE7RUFDSSxjQUFBO0VBQ0EsZUFBQTtBQ2xCSjs7QURxQkE7RUFDSSxVQUFBO0VBQ0EsWUFBQTtFQUNBLGlCQUFBO0VBQ0EsZUFBQTtFQUNBLFNBQUE7QUNsQkoiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnQvcHJzLWN1c3RvbWVyMzYwL3Bycy1jdXN0b21lcjM2MC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi53b3JraW5nLWFyZWEge1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbn1cblxuLmN1c3QzNjAtY29udGFpbmVyIHtcbiAgICBtYXJnaW46IDExNXB4IDMwcHggMzBweCAzMHB4O1xufVxuXG4uZXhhbXBsZS1jYXJkMSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4uZXhhbXBsZS1jYXJkMSAuZm9udENsYXNzIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5leGFtcGxlLWNhcmQxIC5pbmxpbmVDbGFzcyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uZXhhbXBsZS1jYXJkMiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIHBhZGRpbmc6IDBweDtcbn1cblxuLnN1cnZleSB7XG4gICAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDVweCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjNzA3MDcwO1xufVxuXG4uZm9udENsYXNzIHtcbiAgICBmb250OiBCb2xkIDEycHgvMjBweCBSb2JvdG87XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiAjNzA3MDcwO1xufVxuXG4uZm9udENsYXNzQm9sZCB7XG4gICAgZm9udC1mYW1pbHk6IEJvbGQgMTZweC8yMnB4IFJvYm90bztcbiAgICBjb2xvcjogIzcwNzA3MDtcbn1cblxuLmJvcmRlciB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzcwNzA3MDtcbiAgICBmb250OiAxMnB4LzE4cHggUm9ib3RvO1xuICAgIGNvbG9yOiAjNzA3MDcwO1xuICAgIGJvcmRlci1yYWRpdXM6IDI1cHg7XG4gICAgcGFkZGluZzogNXB4O1xufVxuXG4uc2Vydi1oZWFkaW5nIHtcbiAgICB3aWR0aDogMzAlO1xufVxuXG4uYnV0dG9uIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGZvbnQ6IFJlZ3VsYXIgMTZweC8yMnB4IFJvYm90bztcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBib3JkZXItcmFkaXVzOiAwcHg7XG59XG5cbi5yZWNlbnQge1xuICAgIGNvbG9yOiAjMWFjYzA0O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICByaWdodDogMTVweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDdweDtcbn1cblxuLmRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAwLjY7XG59XG5cbi5jaGVja2FsaWduIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDE1cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXRvcDogMjBweCAhaW1wb3J0YW50O1xufVxuXG4udmVoaWNsZS1kZXQtcHJzIC5jaGVja2FsaWduIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDE1cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXRvcDogMjBweCAhaW1wb3J0YW50O1xufVxuXG4udmVoaWNsZS1kZXQgLmNoZWNrYWxpZ24ge1xuICAgIHBhZGRpbmctbGVmdDogMTBweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctdG9wOiA1cHggIWltcG9ydGFudDtcbn1cblxuLmlubGluZUNsYXNzIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgZm9udDogUmVndWxhciAxNHB4IFJvYm90bztcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgICBjb2xvcjogYmxhY2s7XG4gICAgb3BhY2l0eTogMTtcbn1cblxucC5pbmxpbmVDbGFzcyB7XG4gICAgbWFyZ2luLXRvcDogMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbn1cblxuLm1hcmdpbkNsYXNzIHtcbiAgICBtYXJnaW4tbGVmdDogMjBweDtcbn1cblxuLm5hdmJhciB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLm5hdmJhciBhIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5leGFtcGxlLXJhZGlvLWJ1dHRvbiB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuXG4ubnVtYmVyLWZvcm0gOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xufVxuXG4ubnVtYmVyLWZvcm0gOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgcGFkZGluZzogMC4xMzc1ZW0gMDtcbiAgICAvL2JvcmRlcjogc29saWQ7XG59XG5cbi5udW1iZXItZm9ybSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgYm90dG9tOiAwLjI1ZW07XG4gICAgaGVpZ2h0OiAwcHg7XG59XG5cbi5udW1iZXItZm9ybSA6Om5nLWRlZXAgaW5wdXQubWF0LWlucHV0LWVsZW1lbnQge1xuICAgIG1hcmdpbi10b3A6IDBweDtcbn1cblxuLm51bWJlci1mb3JtIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5udW1iZXItcm93IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi8vY3VzdG9tIG1hdC1zZWxlY3Rcbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgcGFkZGluZzogMDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgLy9mb250LXNpemU6IDEycHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdCB7XG4gICAgcGFkZGluZzogMnB4IDBweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICAgIHBhZGRpbmctbGVmdDogOHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdmFsdWUge1xuICAgIHdpZHRoOiA5MCU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gICAgdG9wOiAwO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgdG9wOiAwO1xuICAgIG1hcmdpbi10b3A6IDRweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctbGVmdDogNXB4O1xufVxuXG4uZmlsdGVyLWxhYmVsIHtcbiAgICBmb250OiBCb2xkIDE0cHggUm9ib3RvO1xuICAgIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gICAgY29sb3I6ICMzYzNjM2M7XG4gICAgb3BhY2l0eTogMTtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xufVxuXG4uZm9udENsYXNzIHtcbiAgICBmb250OiBCb2xkIDE0cHgvMTZweCBSb2JvdG87XG4gICAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6ICM3YjdhN2E7XG4gICAgb3BhY2l0eTogMTtcbiAgICBtYXJnaW4tYm90dG9tOiAzcHggIWltcG9ydGFudDtcbn1cblxuLmZvbnRDbGFzc0JvbGQge1xuICAgIGZvbnQtZmFtaWx5OiBCb2xkIDE2cHgvMjJweCBSb2JvdG87XG4gICAgY29sb3I6ICMwMDAwMDA7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgaSB7XG4gICAgICAgIGNvbG9yOiAjMDA0NTdkO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICB9XG59XG5cbi5ib3JkZXIge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM3MDcwNzA7XG4gICAgZm9udDogMTJweC8xOHB4IFJvYm90bztcbiAgICBjb2xvcjogIzcwNzA3MDtcbiAgICBib3JkZXItcmFkaXVzOiAyNXB4O1xuICAgIHBhZGRpbmc6IDVweDtcbn1cblxuLmJ1dHRvbiB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBmb250OiBSZWd1bGFyIDE2cHgvMjJweCBSb2JvdG87XG4gICAgY29sb3I6ICNmZmZmZmY7XG59XG5cbi5jb250YWN0IHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG59XG5cbi5jb250YWN0IC5tYXQtdGFiLWdyb3VwIHtcbiAgICBtaW4taGVpZ2h0OiAxNTBweDtcbn1cblxuLmNvbnRhY3QgOjpuZy1kZWVwIC5tYXQtdGFiLWxhYmVsIHtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgbWluLXdpZHRoOiA5MHB4O1xuICAgIGNvbG9yOiAjNTQ4MmJjO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgICBmb250LXNpemU6IDExcHg7XG59XG5cbi5jb250YWN0IDo6bmctZGVlcCAubWF0LXRhYi1sYWJlbC1hY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM1NDgyYmM7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgb3BhY2l0eTogMTtcbn1cblxuLmNvbnRhY3QgOjpuZy1kZWVwIC5tYXQtdGFiLWhlYWRlciB7XG4gICAgYm9yZGVyOiBub25lO1xufVxuXG4uY29udGFjdCA6Om5nLWRlZXAgLm1hdC10YWItbGlzdCAubWF0LWluay1iYXIge1xuICAgIGhlaWdodDogMHB4O1xufVxuXG4udGFicm93IHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbn1cblxuLmFsaWduIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG4gICAgcGFkZGluZy10b3A6IDIwcHg7XG59XG5cbi50YWJsZS1kaXYge1xuICAgIHBhZGRpbmc6IDEwcHg7XG59XG5cbi5jYWxsaW5nLXRhYmxlIHtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLnRhYnJvdyA6Om5nLWRlZXAgLm1hdC10YWItbGFiZWwge1xuICAgIGhlaWdodDogMzVweDtcbiAgICBwYWRkaW5nOiAwcHggMTBweDtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA4cHggIWltcG9ydGFudDtcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogOHB4ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4O1xuICAgIGJvcmRlci1jb2xvcjogI2QzZDNkMztcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIG1hcmdpbi1sZWZ0OiAzcHg7XG4gICAgY29sb3I6IGJsYWNrO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLy8gZm9udC1zaXplOiAxM3B4ICFpbXBvcnRhbnQ7O1xufVxuXG4udGFicm93IDo6bmctZGVlcCAubWF0LXRhYi1sYWJlbC1hY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N2Q7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgb3BhY2l0eTogMTtcbiAgICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG5cbi50YWJyb3cgOjpuZy1kZWVwIC5tYXQtdGFiLWhlYWRlciB7XG4gICAgYm9yZGVyOiBub25lO1xufVxuXG4udGFicm93IDo6bmctZGVlcCAubWF0LXRhYi1saXN0IC5tYXQtaW5rLWJhciB7XG4gICAgaGVpZ2h0OiAwcHg7XG59XG5cbi8vdGFibGVcbi50YWJsZSB7XG4gICAgZm9udC1mYW1pbHk6IFwiVHJlYnVjaGV0IE1TXCIsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xufVxuXG4udGFibGUgdGQsXG4udGFibGUgdGgge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgICBwYWRkaW5nOiA1cHg7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4udGFibGUgdHI6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xufVxuXG4udGFibGUgdHI6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG5cbi50YWJsZSB0aCB7XG4gICAgcGFkZGluZy10b3A6IDVweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2QzZDNkMztcbiAgICBjb2xvcjogYmxhY2s7XG59XG5cbi8vc2xpZGluZyBidG5cbi5idG4ge1xuICAgIC8vYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCAjMmUzNjY4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgLy90cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3ZCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDVweCAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogMjVweDtcbn1cblxuLmJ0biBwIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDEwcHg7XG59XG5cbi5idG4tMSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjMDA0NTdkICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzAwNDU3ZDtcbn1cblxuLmJ0bi0xIHAge1xuICAgIG1hcmdpbjogYXV0bztcbn1cblxuLmNhbGwtc3RhdHMtY2FyZC1ib3JkZXIxIHtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIHNvbGlkIHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDAlO1xuICAgIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4uaWNvbi1iYWNrZ3JvdW5kIHtcbiAgICBjb2xvcjogIzAwNDU3ZDtcbiAgICBoZWlnaHQ6IDEzcHggIWltcG9ydGFudDtcbiAgICB3aWR0aDogMTNweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogOHB4O1xufVxuXG4udGFicm93IDo6bmctZGVlcCAubWF0LXRhYi1sYWJlbC1hY3RpdmUgLm1hdC10YWItbGFiZWwtY29udGVudCAuaWNvbi1iYWNrZ3JvdW5kIHtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG4uY2hlY2staWNvbiB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGNvbG9yOiAjMWFjYzA0O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogNXB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICB0b3A6IDI1JTtcbiAgICBtYXJnaW4tcmlnaHQ6IDE4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4ICFpbXBvcnRhbnQ7XG59XG5cbi5jYW5jbGUtaWNvbiB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGNvbG9yOiByZWQ7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiA1cHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHRvcDogMjAlO1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICBtYXJnaW4tbGVmdDogMzVweDtcbn1cblxuLm51bWJlci1mb3JtIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgICBoZWlnaHQ6IDBweCAhaW1wb3J0YW50O1xufVxuXG4uaW5wdXQtYm9yZGVyIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIHdpZHRoOiA3NSUgIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDI1cHg7XG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gICAgbWFyZ2luLWxlZnQ6IDVweDtcbn1cblxuLmlucHV0LWJvcmRlci1kIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIHdpZHRoOiA3MCUgIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDI1cHg7XG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gICAgbWFyZ2luLWxlZnQ6IDVweDtcbn1cblxudGQubWF0LWNlbGwsXG50ZC5tYXQtZm9vdGVyLWNlbGwsXG50aC5tYXQtaGVhZGVyLWNlbGwge1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkIG5vbmUgbm9uZSBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDAuMXB4O1xuICAgIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4udGFibGUtZm9udC50aCB7XG4gICAgY29sb3I6IGJsYWNrO1xufVxuXG4udGFibGUtZm9udC50ZCB7XG4gICAgY29sb3I6ICM1OTU5NTk7XG59XG5cbi5zcGlubmVyX2NvbnRhaW5lciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDMzIDMzIDMzIC8gMTAlKTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMTAwO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG59XG5cbi5xdWVzdGlvbiB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICAucmVtYXJrIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDI1cHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICAgICAgd2lkdGg6IDcwJTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2Q4ZDhkODtcbiAgICAgICAgcGFkZGluZzogNHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgIH1cbiAgICBpbnB1dC5yZW1hcms6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgIH1cbiAgICBiYXItcmF0aW5nIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDI1cHg7XG4gICAgfVxufVxuXG4ucXVlc3Rpb24tYmFjayB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMjtcbn1cblxuLm0tdC0xMCB7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbn1cblxuLm0tbC0yNSB7XG4gICAgcGFkZGluZy1sZWZ0OiAyNXB4O1xufVxuXG4vL2N1c3RvbSBtYXQtc2VsZWN0XG4uZmlsdGVyMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1cHg7XG4gICAgbWFyZ2luLXRvcDogNXB4O1xufVxuXG4uc2VhcmNoLWNhcmQgLmZpbHRlcjEge1xuICAgIG1hcmdpbi1sZWZ0OiAwcHg7XG4gICAgbWFyZ2luLXRvcDogMHB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAvL3dpZHRoOiAyNDBweCAhaW1wb3J0YW50O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3Qge1xuICAgIC8vd2lkdGg6IDI0MHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogNHB4IDBweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICAgIHBhZGRpbmctbGVmdDogOHB4O1xuICAgIC8vcGFkZGluZy1ib3R0b206IDJweDtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgICB3aWR0aDogOTAlO1xuICAgIC8vcGFkZGluZy1ib3R0b206IDVweDtcbiAgICAvL21hcmdpbi1ib3R0b206IDVweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIHtcbiAgICB0b3A6IDA7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICB0b3A6IDA7XG4gICAgbWFyZ2luLXRvcDogNXB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XG59XG5cbi5maWx0ZXItbGFiZWwge1xuICAgIGZvbnQ6IEJvbGQgMTRweCBSb2JvdG87XG4gICAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgICBjb2xvcjogIzNjM2MzYztcbiAgICBvcGFjaXR5OiAxO1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbn1cblxuLnF1ZXN0aW9uIHtcbiAgICBtYXQtZXJyb3Ige1xuICAgICAgICBjb2xvcjogI2ZmMDAwMDtcbiAgICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAwcHggIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi8vY2FsbGluZyBkYWlsb2dcbiNjYWxsRGlhbG9nIHtcbiAgICBib3gtc2hhZG93OiAwIDFweCAycHggMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMCAycHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDFweCAxcHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDFweCAzcHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgd2lkdGg6IDM1JTtcbiAgICBoZWlnaHQ6IDM2MHB4O1xufVxuXG4uY2xvc2UtY29uIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxudGFibGUge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4uY2FsbC1oZWFkZXIge1xuICAgIGZvbnQtZmFtaWx5OiBCb2xkIDE2cHgvMjJweCBSb2JvdG87XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGkge1xuICAgICAgICBjb2xvcjogIzAwNDU3ZDtcbiAgICB9XG59XG5cbi5yZWN0MiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogI2VhZWFlYTtcbn1cblxuLnJlY3QzIHtcbiAgICBwYWRkaW5nLXRvcDogMjVweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwcHg7XG4gICAgcGFkZGluZy1sZWZ0OiAwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbn1cblxuLnJlY3QzIC5idXR0b24ge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICBtYXJnaW4tdG9wOiA1cHg7XG59XG5cbi5yZWN0NCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAwcHg7XG59XG5cbi5yZWN0NSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi50ZXh0LXBwIHtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLmNhbGwtcG9wdXAtc2F2ZSB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbi1yaWdodDogMjBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4uaWNvbnMgLmZhLXBob25lIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpO1xufVxuXG4uaWNvbnMgLmZhLW1pY3JvcGhvbmUtc2xhc2gsXG4uaWNvbnMgLmZhLXBob25lIHtcbiAgICBmb250LXNpemU6IDI0cHg7XG59XG5cbi5pY29ucyAuYnV0dG9uIHtcbiAgICBtYXJnaW46IDVweDtcbn1cblxuLmljb25zIHtcbiAgICBtYXJnaW4tdG9wOiAyNXB4O1xuICAgIHBhZGRpbmctbGVmdDogMjklO1xufVxuXG4uaGFuZy1idG4ge1xuICAgIGNvbG9yOiByZWQgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6IHJlZCAhaW1wb3J0YW50O1xufVxuXG4uY2xhc3N0ZXh0MSB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi50aW1lc3RhbXAge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAge1xuICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgY29sb3I6ICMwMDAwMDA7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N2Q7XG4gICAgY29sb3I6ICNmZmZmZmY7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWxhYmVsLWNvbnRlbnQge1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xufVxuXG4vL3NsaWRpbmcgYnRuXG4uYnRuIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdkICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxMHB4O1xufVxuXG4ubWF0LWJ1dHRvbiB7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4O1xuICAgIGZsb2F0OiByaWdodDtcbn1cblxuLmJ0biBwIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBmb250LXNpemU6IDEycHg7XG59XG5cbi5idG4tMSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZTY0MjQzICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2U2NDI0Mztcbn1cblxuLmJ0bi0xIHAge1xuICAgIG1hcmdpbjogYXV0bztcbn1cblxuLmRyb3Bkb3duLXBwMSAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgIGhlaWdodDogMjFweCAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmctYm90dG9tOiAwcHggIWltcG9ydGFudDtcbn1cblxuLmRyb3Bkb3duLXBwMSAubWF0LWZvcm0tZmllbGQge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4uZHJvcGRvd24tcHAxIC5uZy1zdGFyLWluc2VydGVkIHtcbiAgICB3aWR0aDogOTklO1xufVxuXG4ucHJvZmlsZS1wcDEgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICAgIHBhZGRpbmctYm90dG9tOiAwcHg7XG59XG5cbi5wcm9maWxlLXBwMSAubWF0LWxhYmVsIHtcbiAgICBwYWRkaW5nLXRvcDogNnB4O1xufVxuXG4uZHJvcGRvd24tYm9yZGVyIHtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIHNvbGlkIHNvbGlkICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGJvcmRlci1jb2xvcjogZ3JheTtcbiAgICBoZWlnaHQ6IDI4cHg7XG4gICAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gICAgcGFkZGluZy10b3A6IDZweDtcbiAgICBtYXJnaW4tdG9wOiAwcHg7XG59XG5cbi50ZXh0ZmllbGQtYm9yZGVyIHtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIHNvbGlkIHNvbGlkICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGJvcmRlci1jb2xvcjogZ3JheTtcbn1cblxuLy9tYXQtZXJyb3JcbiNjYWxsRGlhbG9nIG1hdC1lcnJvciB7XG4gICAgY29sb3I6ICNmZjAwMDA7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIG1hcmdpbi10b3A6IC0xMnB4ICFpbXBvcnRhbnQ7XG59XG5cbi5jdXMzNjBUZHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC1mYW1pbHk6IHBvcHBpbnM7XG59XG5cbi5lcnJvciB7XG4gICAgY29sb3I6ICNmZjAwMDA7XG4gICAgZm9udC1zaXplOiAxMHB4O1xufVxuXG4uc2VhcmNoZmlsdGVyIHtcbiAgICB3aWR0aDogOTAlO1xuICAgIGhlaWdodDogMzBweDtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgYm9yZGVyOiAwO1xufVxuIiwiLndvcmtpbmctYXJlYSB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuXG4uY3VzdDM2MC1jb250YWluZXIge1xuICBtYXJnaW46IDExNXB4IDMwcHggMzBweCAzMHB4O1xufVxuXG4uZXhhbXBsZS1jYXJkMSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4uZXhhbXBsZS1jYXJkMSAuZm9udENsYXNzIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uZXhhbXBsZS1jYXJkMSAuaW5saW5lQ2xhc3Mge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5leGFtcGxlLWNhcmQyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgcGFkZGluZzogMHB4O1xufVxuXG4uc3VydmV5IHtcbiAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNzA3MDcwO1xufVxuXG4uZm9udENsYXNzIHtcbiAgZm9udDogQm9sZCAxMnB4LzIwcHggUm9ib3RvO1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjNzA3MDcwO1xufVxuXG4uZm9udENsYXNzQm9sZCB7XG4gIGZvbnQtZmFtaWx5OiBCb2xkIDE2cHgvMjJweCBSb2JvdG87XG4gIGNvbG9yOiAjNzA3MDcwO1xufVxuXG4uYm9yZGVyIHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzcwNzA3MDtcbiAgZm9udDogMTJweC8xOHB4IFJvYm90bztcbiAgY29sb3I6ICM3MDcwNzA7XG4gIGJvcmRlci1yYWRpdXM6IDI1cHg7XG4gIHBhZGRpbmc6IDVweDtcbn1cblxuLnNlcnYtaGVhZGluZyB7XG4gIHdpZHRoOiAzMCU7XG59XG5cbi5idXR0b24ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZsb2F0OiByaWdodDtcbiAgZm9udDogUmVndWxhciAxNnB4LzIycHggUm9ib3RvO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xufVxuXG4ucmVjZW50IHtcbiAgY29sb3I6ICMxYWNjMDQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcmlnaHQ6IDE1cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiA3cHg7XG59XG5cbi5kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNjtcbn1cblxuLmNoZWNrYWxpZ24ge1xuICBwYWRkaW5nLWxlZnQ6IDE1cHggIWltcG9ydGFudDtcbiAgcGFkZGluZy10b3A6IDIwcHggIWltcG9ydGFudDtcbn1cblxuLnZlaGljbGUtZGV0LXBycyAuY2hlY2thbGlnbiB7XG4gIHBhZGRpbmctbGVmdDogMTVweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXRvcDogMjBweCAhaW1wb3J0YW50O1xufVxuXG4udmVoaWNsZS1kZXQgLmNoZWNrYWxpZ24ge1xuICBwYWRkaW5nLWxlZnQ6IDEwcHggIWltcG9ydGFudDtcbiAgcGFkZGluZy10b3A6IDVweCAhaW1wb3J0YW50O1xufVxuXG4uaW5saW5lQ2xhc3Mge1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIGZvbnQ6IFJlZ3VsYXIgMTRweCBSb2JvdG87XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgY29sb3I6IGJsYWNrO1xuICBvcGFjaXR5OiAxO1xufVxuXG5wLmlubGluZUNsYXNzIHtcbiAgbWFyZ2luLXRvcDogMHB4O1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG5cbi5tYXJnaW5DbGFzcyB7XG4gIG1hcmdpbi1sZWZ0OiAyMHB4O1xufVxuXG4ubmF2YmFyIHtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICBwYWRkaW5nLXRvcDogMTBweDtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4ubmF2YmFyIGEge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5leGFtcGxlLXJhZGlvLWJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbi5udW1iZXItZm9ybSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICBwYWRkaW5nLWJvdHRvbTogNXB4O1xufVxuXG4ubnVtYmVyLWZvcm0gOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIHBhZGRpbmc6IDAuMTM3NWVtIDA7XG59XG5cbi5udW1iZXItZm9ybSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGJvdHRvbTogMC4yNWVtO1xuICBoZWlnaHQ6IDBweDtcbn1cblxuLm51bWJlci1mb3JtIDo6bmctZGVlcCBpbnB1dC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gIG1hcmdpbi10b3A6IDBweDtcbn1cblxuLm51bWJlci1mb3JtIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLm51bWJlci1yb3cge1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBwYWRkaW5nOiAwO1xuICBoZWlnaHQ6IDIwcHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdCB7XG4gIHBhZGRpbmc6IDJweCAwcHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gIHdpZHRoOiAxMDAlO1xuICBmb250LXNpemU6IDEycHg7XG4gIHBhZGRpbmctYm90dG9tOiA1cHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gIHdpZHRoOiA5MCU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gIHRvcDogMDtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdG9wOiAwO1xuICBtYXJnaW4tdG9wOiA0cHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG59XG5cbi5maWx0ZXItbGFiZWwge1xuICBmb250OiBCb2xkIDE0cHggUm9ib3RvO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICBjb2xvcjogIzNjM2MzYztcbiAgb3BhY2l0eTogMTtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICBmb250LXNpemU6IDEzcHg7XG59XG5cbi5mb250Q2xhc3Mge1xuICBmb250OiBCb2xkIDE0cHgvMTZweCBSb2JvdG87XG4gIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICM3YjdhN2E7XG4gIG9wYWNpdHk6IDE7XG4gIG1hcmdpbi1ib3R0b206IDNweCAhaW1wb3J0YW50O1xufVxuXG4uZm9udENsYXNzQm9sZCB7XG4gIGZvbnQtZmFtaWx5OiBCb2xkIDE2cHgvMjJweCBSb2JvdG87XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG4uZm9udENsYXNzQm9sZCBpIHtcbiAgY29sb3I6ICMwMDQ1N2Q7XG4gIG1hcmdpbi1yaWdodDogNXB4O1xufVxuXG4uYm9yZGVyIHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzcwNzA3MDtcbiAgZm9udDogMTJweC8xOHB4IFJvYm90bztcbiAgY29sb3I6ICM3MDcwNzA7XG4gIGJvcmRlci1yYWRpdXM6IDI1cHg7XG4gIHBhZGRpbmc6IDVweDtcbn1cblxuLmJ1dHRvbiB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBmb250OiBSZWd1bGFyIDE2cHgvMjJweCBSb2JvdG87XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4uY29udGFjdCB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG59XG5cbi5jb250YWN0IC5tYXQtdGFiLWdyb3VwIHtcbiAgbWluLWhlaWdodDogMTUwcHg7XG59XG5cbi5jb250YWN0IDo6bmctZGVlcCAubWF0LXRhYi1sYWJlbCB7XG4gIGhlaWdodDogMjBweDtcbiAgbWluLXdpZHRoOiA5MHB4O1xuICBjb2xvcjogIzU0ODJiYztcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICBmb250LXNpemU6IDExcHg7XG59XG5cbi5jb250YWN0IDo6bmctZGVlcCAubWF0LXRhYi1sYWJlbC1hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTQ4MmJjO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmNvbnRhY3QgOjpuZy1kZWVwIC5tYXQtdGFiLWhlYWRlciB7XG4gIGJvcmRlcjogbm9uZTtcbn1cblxuLmNvbnRhY3QgOjpuZy1kZWVwIC5tYXQtdGFiLWxpc3QgLm1hdC1pbmstYmFyIHtcbiAgaGVpZ2h0OiAwcHg7XG59XG5cbi50YWJyb3cge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBtYXJnaW4tdG9wOiAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuXG4uYWxpZ24ge1xuICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG4gIHBhZGRpbmctdG9wOiAyMHB4O1xufVxuXG4udGFibGUtZGl2IHtcbiAgcGFkZGluZzogMTBweDtcbn1cblxuLmNhbGxpbmctdGFibGUge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLnRhYnJvdyA6Om5nLWRlZXAgLm1hdC10YWItbGFiZWwge1xuICBoZWlnaHQ6IDM1cHg7XG4gIHBhZGRpbmc6IDBweCAxMHB4O1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA4cHggIWltcG9ydGFudDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDhweCAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1jb2xvcjogI2QzZDNkMztcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIG1hcmdpbi1sZWZ0OiAzcHg7XG4gIGNvbG9yOiBibGFjaztcbiAgb3BhY2l0eTogMTtcbn1cblxuLnRhYnJvdyA6Om5nLWRlZXAgLm1hdC10YWItbGFiZWwtYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3ZDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIG9wYWNpdHk6IDE7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbn1cblxuLnRhYnJvdyA6Om5nLWRlZXAgLm1hdC10YWItaGVhZGVyIHtcbiAgYm9yZGVyOiBub25lO1xufVxuXG4udGFicm93IDo6bmctZGVlcCAubWF0LXRhYi1saXN0IC5tYXQtaW5rLWJhciB7XG4gIGhlaWdodDogMHB4O1xufVxuXG4udGFibGUge1xuICBmb250LWZhbWlseTogXCJUcmVidWNoZXQgTVNcIiwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG59XG5cbi50YWJsZSB0ZCxcbi50YWJsZSB0aCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgcGFkZGluZzogNXB4O1xuICB3aWR0aDogYXV0bztcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4udGFibGUgdHI6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbn1cblxuLnRhYmxlIHRyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbn1cblxuLnRhYmxlIHRoIHtcbiAgcGFkZGluZy10b3A6IDVweDtcbiAgcGFkZGluZy1ib3R0b206IDVweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2QzZDNkMztcbiAgY29sb3I6IGJsYWNrO1xufVxuXG4uYnRuIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N2QgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogNXB4ICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMjVweDtcbn1cblxuLmJ0biBwIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogI2ZmZjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICBtYXJnaW46IGF1dG87XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDEwcHg7XG59XG5cbi5idG4tMSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgY29sb3I6ICMwMDQ1N2QgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgIzAwNDU3ZDtcbn1cblxuLmJ0bi0xIHAge1xuICBtYXJnaW46IGF1dG87XG59XG5cbi5jYWxsLXN0YXRzLWNhcmQtYm9yZGVyMSB7XG4gIGJvcmRlci1zdHlsZTogc29saWQgc29saWQgc29saWQgc29saWQ7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3JkZXItcmFkaXVzOiAwJTtcbiAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG59XG5cbi5pY29uLWJhY2tncm91bmQge1xuICBjb2xvcjogIzAwNDU3ZDtcbiAgaGVpZ2h0OiAxM3B4ICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxM3B4ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1yaWdodDogOHB4O1xufVxuXG4udGFicm93IDo6bmctZGVlcCAubWF0LXRhYi1sYWJlbC1hY3RpdmUgLm1hdC10YWItbGFiZWwtY29udGVudCAuaWNvbi1iYWNrZ3JvdW5kIHtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuLmNoZWNrLWljb24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAjMWFjYzA0O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiA1cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgdG9wOiAyNSU7XG4gIG1hcmdpbi1yaWdodDogMThweDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4ICFpbXBvcnRhbnQ7XG59XG5cbi5jYW5jbGUtaWNvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgY29sb3I6IHJlZDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogNXB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIHRvcDogMjAlO1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gIG1hcmdpbi1sZWZ0OiAzNXB4O1xufVxuXG4ubnVtYmVyLWZvcm0gOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICBoZWlnaHQ6IDBweCAhaW1wb3J0YW50O1xufVxuXG4uaW5wdXQtYm9yZGVyIHtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIHdpZHRoOiA3NSUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAyNXB4O1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgbWFyZ2luLWxlZnQ6IDVweDtcbn1cblxuLmlucHV0LWJvcmRlci1kIHtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIHdpZHRoOiA3MCUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAyNXB4O1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgbWFyZ2luLWxlZnQ6IDVweDtcbn1cblxudGQubWF0LWNlbGwsXG50ZC5tYXQtZm9vdGVyLWNlbGwsXG50aC5tYXQtaGVhZGVyLWNlbGwge1xuICBwYWRkaW5nOiA1cHg7XG4gIGJvcmRlci1zdHlsZTogc29saWQgbm9uZSBub25lIHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDAuMXB4O1xuICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxuLnRhYmxlLWZvbnQudGgge1xuICBjb2xvcjogYmxhY2s7XG59XG5cbi50YWJsZS1mb250LnRkIHtcbiAgY29sb3I6ICM1OTU5NTk7XG59XG5cbi5zcGlubmVyX2NvbnRhaW5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzMsIDMzLCAzMywgMC4xKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDA7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG59XG5cbi5xdWVzdGlvbiB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgcGFkZGluZzogNXB4O1xufVxuLnF1ZXN0aW9uIC5yZW1hcmsge1xuICBtYXJnaW4tbGVmdDogMjVweDtcbiAgbWFyZ2luLXRvcDogNXB4O1xuICB3aWR0aDogNzAlO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZDhkOGQ4O1xuICBwYWRkaW5nOiA0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICBmb250LXNpemU6IDEycHg7XG59XG4ucXVlc3Rpb24gaW5wdXQucmVtYXJrOjpwbGFjZWhvbGRlciB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbn1cbi5xdWVzdGlvbiBiYXItcmF0aW5nIHtcbiAgbWFyZ2luLWxlZnQ6IDI1cHg7XG59XG5cbi5xdWVzdGlvbi1iYWNrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMjtcbn1cblxuLm0tdC0xMCB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG59XG5cbi5tLWwtMjUge1xuICBwYWRkaW5nLWxlZnQ6IDI1cHg7XG59XG5cbi5maWx0ZXIxIHtcbiAgbWFyZ2luLWxlZnQ6IDI1cHg7XG4gIG1hcmdpbi10b3A6IDVweDtcbn1cblxuLnNlYXJjaC1jYXJkIC5maWx0ZXIxIHtcbiAgbWFyZ2luLWxlZnQ6IDBweDtcbiAgbWFyZ2luLXRvcDogMHB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBwYWRkaW5nOiAwO1xuICBoZWlnaHQ6IDIwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0IHtcbiAgcGFkZGluZzogNHB4IDBweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gIHdpZHRoOiA5MCU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gIHRvcDogMDtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdG9wOiAwO1xuICBtYXJnaW4tdG9wOiA1cHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG59XG5cbi5maWx0ZXItbGFiZWwge1xuICBmb250OiBCb2xkIDE0cHggUm9ib3RvO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICBjb2xvcjogIzNjM2MzYztcbiAgb3BhY2l0eTogMTtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuXG4ucXVlc3Rpb24gbWF0LWVycm9yIHtcbiAgY29sb3I6ICNmZjAwMDA7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgbWFyZ2luLXRvcDogMHB4ICFpbXBvcnRhbnQ7XG59XG5cbiNjYWxsRGlhbG9nIHtcbiAgYm94LXNoYWRvdzogMCAxcHggMnB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMnB4IDFweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMCAxcHggMXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAxcHggM3B4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgcGFkZGluZzogMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB3aWR0aDogMzUlO1xuICBoZWlnaHQ6IDM2MHB4O1xufVxuXG4uY2xvc2UtY29uIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxudGFibGUge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmNhbGwtaGVhZGVyIHtcbiAgZm9udC1mYW1pbHk6IEJvbGQgMTZweC8yMnB4IFJvYm90bztcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLmNhbGwtaGVhZGVyIGkge1xuICBjb2xvcjogIzAwNDU3ZDtcbn1cblxuLnJlY3QyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICNlYWVhZWE7XG59XG5cbi5yZWN0MyB7XG4gIHBhZGRpbmctdG9wOiAyNXB4O1xuICBwYWRkaW5nLXJpZ2h0OiAwcHg7XG4gIHBhZGRpbmctbGVmdDogMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xufVxuXG4ucmVjdDMgLmJ1dHRvbiB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gIG1hcmdpbi10b3A6IDVweDtcbn1cblxuLnJlY3Q0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgcGFkZGluZy1ib3R0b206IDBweDtcbn1cblxuLnJlY3Q1IHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4udGV4dC1wcCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uY2FsbC1wb3B1cC1zYXZlIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi5pY29ucyAuZmEtcGhvbmUge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpO1xufVxuXG4uaWNvbnMgLmZhLW1pY3JvcGhvbmUtc2xhc2gsXG4uaWNvbnMgLmZhLXBob25lIHtcbiAgZm9udC1zaXplOiAyNHB4O1xufVxuXG4uaWNvbnMgLmJ1dHRvbiB7XG4gIG1hcmdpbjogNXB4O1xufVxuXG4uaWNvbnMge1xuICBtYXJnaW4tdG9wOiAyNXB4O1xuICBwYWRkaW5nLWxlZnQ6IDI5JTtcbn1cblxuLmhhbmctYnRuIHtcbiAgY29sb3I6IHJlZCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IHJlZCAhaW1wb3J0YW50O1xufVxuXG4uY2xhc3N0ZXh0MSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4udGltZXN0YW1wIHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBtYXJnaW4tbGVmdDogMTBweDtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAge1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgY29sb3I6ICMwMDAwMDA7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdkO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtbGFiZWwtY29udGVudCB7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xufVxuXG4uYnRuIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N2QgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBsaW5lLWhlaWdodDogMTBweDtcbn1cblxuLm1hdC1idXR0b24ge1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG4gIGZsb2F0OiByaWdodDtcbn1cblxuLmJ0biBwIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogI2ZmZjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICBtYXJnaW46IGF1dG87XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmJ0bi0xIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICBjb2xvcjogI2U2NDI0MyAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTY0MjQzO1xufVxuXG4uYnRuLTEgcCB7XG4gIG1hcmdpbjogYXV0bztcbn1cblxuLmRyb3Bkb3duLXBwMSAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBoZWlnaHQ6IDIxcHggIWltcG9ydGFudDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctYm90dG9tOiAwcHggIWltcG9ydGFudDtcbn1cblxuLmRyb3Bkb3duLXBwMSAubWF0LWZvcm0tZmllbGQge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmRyb3Bkb3duLXBwMSAubmctc3Rhci1pbnNlcnRlZCB7XG4gIHdpZHRoOiA5OSU7XG59XG5cbi5wcm9maWxlLXBwMSAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gIHBhZGRpbmctYm90dG9tOiAwcHg7XG59XG5cbi5wcm9maWxlLXBwMSAubWF0LWxhYmVsIHtcbiAgcGFkZGluZy10b3A6IDZweDtcbn1cblxuLmRyb3Bkb3duLWJvcmRlciB7XG4gIGJvcmRlci1zdHlsZTogc29saWQgc29saWQgc29saWQgc29saWQgIWltcG9ydGFudDtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYm9yZGVyLWNvbG9yOiBncmF5O1xuICBoZWlnaHQ6IDI4cHg7XG4gIHBhZGRpbmctbGVmdDogOHB4O1xuICBwYWRkaW5nLXRvcDogNnB4O1xuICBtYXJnaW4tdG9wOiAwcHg7XG59XG5cbi50ZXh0ZmllbGQtYm9yZGVyIHtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZCBzb2xpZCBzb2xpZCBzb2xpZCAhaW1wb3J0YW50O1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBib3JkZXItY29sb3I6IGdyYXk7XG59XG5cbiNjYWxsRGlhbG9nIG1hdC1lcnJvciB7XG4gIGNvbG9yOiAjZmYwMDAwO1xuICBmb250LXNpemU6IDEwcHg7XG4gIG1hcmdpbi10b3A6IC0xMnB4ICFpbXBvcnRhbnQ7XG59XG5cbi5jdXMzNjBUZCB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC1mYW1pbHk6IHBvcHBpbnM7XG59XG5cbi5lcnJvciB7XG4gIGNvbG9yOiAjZmYwMDAwO1xuICBmb250LXNpemU6IDEwcHg7XG59XG5cbi5zZWFyY2hmaWx0ZXIge1xuICB3aWR0aDogOTAlO1xuICBoZWlnaHQ6IDMwcHg7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGJvcmRlcjogMDtcbn0iXX0= */\"","import { Component, OnInit, ViewChild, Output, EventEmitter } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport { CommonService } from \"../../core/service/common-service/common.service\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { DatePipe } from \"@angular/common\";\nimport {\n MatDialog,\n MatSort,\n MatPaginator,\n MatTableDataSource,\n MatTabChangeEvent,\n} from \"@angular/material\";\nimport { FormControl, Validators, FormGroup } from \"@angular/forms\";\nimport { BlanketFeedbackDailogComponent } from \"../../modal/blanket-feedback-dailog/blanket-feedback-dailog.component\";\nimport { element } from 'protractor';\nimport { openPrsComplaintDialog } from \"src/app/modal/prs-complaint-dialog/prs-complaint-dialog.component\";\nimport { CallParams } from \"src/app/model/call-params.model\";\nimport { SaveCallRecordingParams } from \"src/app/model/save-call-recording-params.model\";\nimport { DialogService } from \"src/app/dialog.service\";\n\n\n@Component({\n selector: \"app-prs-customer360\",\n templateUrl: \"./prs-customer360.component.html\",\n styleUrls: [\"./prs-customer360.component.scss\"],\n})\nexport class PrsCustomer360Component implements OnInit {\n @ViewChild(MatSort, { static: true }) sort: MatSort;\n @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator;\n @ViewChild(\"RemarksPaginator\", { static: true })\n remarksPaginator: MatPaginator;\n @ViewChild(\"RemarksSort\", { static: true }) remarksSort: MatSort;\n @Output() close: EventEmitter = new EventEmitter();\n // @ViewChild('CallLogsPaginator', { static: true }) callLogsPaginator: MatPaginator;\n @ViewChild('CallLogsSort', { static: true }) callLogsSort: MatSort;\n\n cus360: any;\n vehicleDetails: any = {};\n lastServiceDetails: any = {};\n serviceDetails: any = {};\n spinner: boolean;\n vinNoList: string[] = [];\n vehicleInfoList: any[] = [];\n vehicleTypeCallInfo: any;\n vehicleServiceAndStausInfo: any;\n selectedNumber: any;\n updatedNumber: any;\n contactInfoOwner: any[] = [];\n contactInfoFleet: any[] = [];\n contactInfoDriver: any[] = [];\n updatedNumberType: string;\n secondaryNo: string;\n unableEdit: any = {};\n unableCall: boolean = false;\n workShops = [];\n selectedWorkShop: string;\n selectedVehicle: string;\n ownerSelected: boolean = true;\n fleetSelected: boolean = false;\n driverSelected: boolean = false;\n errorShow: any = {};\n customerID: string;\n userId: string;\n chassisNo: string;\n recentNumber: string;\n questions: any = [];\n selectedBlankRemarks: any;\n customerData: any;\n submitted: boolean = false;\n questionInfo = [];\n questionForm: FormGroup;\n questionType: any;\n blanketFeedback: any;\n jobCardNo: string;\n workshopCode: string;\n dropdownData: any = {\n \"14-3\": [\"Comparing with other vehicle\", \"Sales commitment\", \"Customers Perception\", \"Service Support\", \"Any Other\"],\n \"15-1\": [\"Front\", \"Rear\", \"Both\"],\n \"15-2\": [\"Faster Wear\", \"Uneven Wear\", \"Tyre Burst\", \"Any Other\"],\n \"15-6\": [\"Tata\", \"Ashok Leyland\", \"Bharat Benz\", \"Mahindra\", \"SML\"],\n \"15-4\": [\"Apollo\", \"JK\", \"Bridgestone\", \"MRF\"],\n \"16-1\": [\"Noise\", \"Not effective\", \"Heating\", \"Juddering\", \"Service related\", \"Any Other\"],\n \"17-1\": [\"Paint Quality\", \"Aesthetics\", \"Cabin comfort\", \"Any Other\"],\n \"18-1\": [\"Noise\", \"Heating\", \"Steering hard\", \"Any Other\"],\n \"19-1\": [\"Abnormal noise \", \"Vibration\", \"Harshness\", \"Breakdown related\", \"Service support related\", \"Any other\"],\n \"40-1\": [\"Availability\", \"Price\", \"Quality\", \"NA\"],\n \"40-2\": [\"Denied\", \"Information not provided\", \"NA\"],\n \"40-3\": [\"Adblue\", \"Brake\", \"Driveline\", \"Engine\", \"FE\", \"Heating\", \"Pickup\", \"Starting\", \"Tyre/Wheel\", \"Other Parts\", \"NA\"],\n \"40-4\": [\"Availability\", \"Competence\", \"Behavior (Technician, Manager, Mechanic, Worker)\", \"NA\"],\n \"40-5\": [\"High Charges\", \"Discount not provided\", \"Compensation not given\", \"NA\"]\n };\n //call response\n disableSubmitButton: boolean = true;\n formSubmitted: boolean = false;\n talked: string = \"\";\n yesResponce: string = \"\";\n noResponce: string = \"\";\n nsReason: string = \"\";\n responseDropDownData: any;\n level1info = [];\n level1Form: FormGroup;\n level2info = [];\n level2Form: FormGroup;\n defaultVin: string;\n showNoRespError: boolean = false;\n creRemark: string;\n today: any = new Date();\n cdmTrailCheckOwner: boolean = false;\n cdmTrailCheckfleet: boolean = false;\n cdmTrailCheckdriver: boolean = false;\n secondTrailCall: boolean = false;\n diasableCreateComplain: boolean = true;\n //call log table columns\n displayedRemarksColumns: string[] = [\"remark\", \"remarkDate\", \"remarkTime\"];\n\n expandedElement: any[] = [];\n rows: any = [];\n\n remarksDetails: any;\n remarksCount: number = 0;\n languageList: string[] = [];\n languageMap = new Map();\n numberOfVehicle: number;\n vin: string;\n dealerCode: string;\n vinList: string[] = [];\n chassis: string;\n selectedTab: any;\n custNameForSave: any;\n userRoles: string;\n showPrs360:boolean;\n //bookingCount: number;\n followupCount: number;\n roleId: string;\n errorCheck: boolean = false;\n errorRadio: boolean = false;\n errorRadio5: boolean = false;\n countFlag: boolean;\n showRecordingDailog: boolean = false;\n vehicleMap = new Map();\n vehicleList: string[] = [];\n vehicleListCopy: string[] = [];\n vehicle: string[] = [];\n selectedVin: string;\n selectedValue: string;\n audioSource: any = {};\n showCallDailog: boolean = false;\n showPlayBtn: boolean = true;\n callLists: any;\n callCount: number = 0;\n countryCode: String;\n squareRating: any;\n blockStatus: String = 'false';\n\n //call log table columns\n displayedCallColumns: string[] = [\n \"number\",\n \"callDate\",\n \"startTime\",\n \"duration\",\n \"recording\"\n ];\n complaintId: string=\"\";\n complaintRemarks: string=\"\";\n callTypeCode: string=\"\";\n userContactNo: string;\n\n constructor(\n private dialogService: DialogService,\n private datePipe: DatePipe,\n public dialog: MatDialog,\n private commonService: CommonService,\n private toastr: ToastrService,\n private router: Router\n ) {\n this.unableEdit[\"O\"] = {};\n this.unableEdit[\"F\"] = {};\n this.unableEdit[\"D\"] = {};\n }\n\n ngOnInit() {\n this.userInfo = JSON.parse(localStorage.getItem(\"userInfo\") || null)[0];\n this.customerData = JSON.parse(localStorage.getItem(\"customerData\") || null);\n if (\n localStorage.getItem(\"userId\") == null ||\n localStorage.getItem(\"userId\") == undefined\n ) {\n this.router.navigate([\"login\"]);\n }\n this.roleId = localStorage.getItem('roleId');\n this.countryCode = localStorage.getItem('countryCode');\n this.chassisNo = localStorage.getItem(\"vin\");\n this.userId = localStorage.getItem(\"userId\");\n this.customerID = localStorage.getItem(\"customerId\");\n this.workShops = JSON.parse(localStorage.getItem(\"workshops\")) || [];\n this.customerData = JSON.parse(localStorage.getItem(\"customerData\")) || {};\n this.callTypeCode = this.customerData.callTypeSq;\n this.userRoles = localStorage.getItem('userRoles');\n this.userContactNo = localStorage.getItem(\"userContactNo\");\n if(this.userRoles == 'CRE') {\n this.showPrs360 = false;\n } else if(this.userRoles == 'Call Center Agent'){\n this.showPrs360 = true;\n }\n let questionType = this.customerData.callType.split(\"-\");\n if (questionType[0] == \"PRS\") {\n this.questionType = \"PRS\";\n } else {\n this.questionType = \"149-\" + this.customerData.callTypeSq;\n }\n this.selectedWorkShop = this.customerData.dealerCode || \"\";\n if (!this.workShops.length) {\n this.workShops.push(this.customerData.dealerCode);\n }\n\n if(this.roleId == \"12\")\n this.disableSubmitButton=false;\n this.chassis = this.customerData.vin\n this.getCustomer360();\n this.getContactdetail();\n this.getPrsFetchQuestions();\n this.getBookingFollowupCount(this.customerID, this.vin);\n if(this.roleId == '1') {\n this.getCallList();\n }\n this.fetchBlockStatus();\n }\n\n private show360() {\n // this.showPrs360 = true;\n // this.blockStatus = false;\n this.showRecordingDailog = false;\n //this.spinner = true;\n let callNumber = \"+91\" + this.selectedNumber;\n let type = (this.ownerSelected ? 'C' : (this.fleetSelected ? 'F' : 'D'));\n\n if(type != 'C') {\n this.blockStatus = 'false';\n }\n if(this.blockStatus == 'false') {\n this.showPrs360 = true;\n this.commonService.callCustomer(this.userId, this.customerID, callNumber, type, 'PRS').subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n this.showCallDailog = true;\n //this.spinner = false;\n } else {\n //this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n //this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n } else {\n this.toastr.info(\"Customer contact number is block. Please connect to Fleet Manager or Driver.\", \"Info\");\n }\n if (localStorage.getItem('countryCode')=='IND91') {\n this.callingToUser();\n }else{\n localStorage.setItem(\"exotel_URI\",'')\n }\n }\n\n /**\n * Name: getContactdetail\n * purpose: To get customer Contact detail\n */\n getContactdetail(): void {\n //this.spinner = true;\n this.commonService.prscontactdetail(this.customerID).subscribe(\n (res) => {\n if (res[\"responseCode\"] == 0) {\n this.contactInfoOwner = res[\"responseData\"].filter(\n (contact) => contact.flag == \"O\"\n );\n this.contactInfoFleet = res[\"responseData\"].filter(\n (contact) => contact.flag == \"F\"\n );\n this.contactInfoDriver = res[\"responseData\"].filter(\n (contact) => contact.flag == \"D\"\n );\n this.selectedNumber = this.contactInfoOwner[0].contactNo;\n this.unableEdit[\"O\"][0] = true;\n this.unableEdit[\"O\"][1] = false;\n this.unableEdit[\"D\"][0] = true;\n this.unableEdit[\"D\"][1] = false;\n this.updatedNumberType = \"Primary\";\n this.unableCall = true;\n //this.spinner = false;\n } else {\n //this.spinner = false;\n }\n },\n (err) => {\n //this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n },\n ()=>{\n this.updateActiveContactNo();\n }\n );\n }\n\n /**\n * Name: checkCallStatus\n * purpose: To set contect type selection\n * @param {any} type - type of number\n */\n checkCallStatus(type: any): void {\n this.onTabChange(type)\n this.selectedTab=type && type.index;\n if (type && type.index == 0) {\n this.ownerSelected = true;\n this.fleetSelected = false;\n this.driverSelected = false;\n if (this.contactInfoOwner.length) {\n this.unableCall = true;\n this.contactInfoOwner.forEach((element, i) => {\n if (this.unableEdit[\"O\"][i] != undefined && this.unableEdit[\"O\"][i]) {\n this.selectedNumber = element.contactNo;\n }\n });\n } else {\n this.unableCall = false;\n }\n }\n\n if (type && type.index == 1) {\n this.ownerSelected = false;\n this.fleetSelected = true;\n this.driverSelected = false;\n if (this.contactInfoFleet.length) {\n this.unableCall = true;\n let numberSelected = false;\n this.contactInfoFleet.forEach((element, i) => {\n if (this.unableEdit[\"F\"][i] != undefined && this.unableEdit[\"F\"][i]) {\n this.selectedNumber = element.contactNo;\n numberSelected = true;\n }\n });\n if (!numberSelected) {\n this.selectedNumber = this.contactInfoFleet[0].contactNo;\n this.unableEdit[\"F\"][0] = true;\n }\n } else {\n this.unableCall = false;\n }\n }\n\n if (type && type.index == 2) {\n this.ownerSelected = false;\n this.fleetSelected = false;\n this.driverSelected = true;\n if (this.contactInfoDriver.length) {\n this.unableCall = true;\n let numberSelected = false;\n this.contactInfoDriver.forEach((element, i) => {\n if (this.unableEdit[\"D\"][i] != undefined && this.unableEdit[\"D\"][i]) {\n this.selectedNumber = element.contactNo;\n numberSelected = true;\n }\n });\n if (!numberSelected) {\n this.selectedNumber = this.contactInfoDriver[0].contactNo;\n this.unableEdit[\"D\"][0] = true;\n }\n } else {\n this.unableCall = false;\n }\n }\n this.trailLogCheck();\n }\n\n getCdmData(){\n let temp:any;\n this.selectedTab=this.selectedTab?this.selectedTab:0;\n\n let ab={id: 2, name: \"SHAH SAMIRKUMAR KANAIYALAL\", contactNo: \"111111111\", regNumber: null, flag: \"O\"}\n // this.contactInfoOwner.push(ab);\n let data={\n \"customerId\": this.customerID,\n \"vin\": \"\",\n \"phoneNo\": \"\",\n \"startDate\": \"\",\n \"endDate\": \"\",\n \"date\": \"\",\n \"customerName\": \"\",\n \"type\": \"T\",\n \"flag\":this.selectedTab==0?'C':this.selectedTab==1?'F':this.selectedTab==2?'D':'C'\n };\n this.commonService.fetchCdmData(data).subscribe((resp)=>{\n if(resp['responseCode']==0){\n temp=resp[\"responseData\"].filter(contact => contact.contactNo = contact.phoneNo);\n temp.forEach((trail)=>{\n if(this.selectedTab==0){\n this.contactInfoOwner.push(trail)\n this.cdmTrailCheckOwner=true\n }else if(this.selectedTab==1){\n this.contactInfoFleet.push(trail)\n this.cdmTrailCheckfleet=true\n }else if(this.selectedTab==2){\n this.contactInfoDriver.push(trail)\n this.cdmTrailCheckdriver=true\n }\n })\n this.trailLogCheck();\n }else{\n this.toastr.error(resp['message'], \"Error\");\n }\n\n }, error => {\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n // this.contactInfoOwner.push(temp[0]);\n\n }\n\n trailLogCheck(){\n if(this.selectedTab==0){\n this.secondTrailCall=this.cdmTrailCheckOwner\n // return this.cdmTrailCheckOwner\n }else if (this.selectedTab==1){\n this.secondTrailCall=this.cdmTrailCheckfleet\n // return this.cdmTrailCheckfleet\n }else if(this.selectedTab==2){\n this.secondTrailCall=this.cdmTrailCheckdriver\n // return this.cdmTrailCheckdriver\n }else{\n this.secondTrailCall=false\n }\n }\n\n /**\n * Name: updateNumber\n * @param {boolean} addNumber - type of number\n * purpose: To set customer number\n */\n updateNumber(addNumber: boolean): void {\n if (\n (this.updatedNumber && this.updatedNumber.length == 10) ||\n (addNumber && this.secondaryNo && this.secondaryNo.length == 10)\n ) {\n this.spinner = true;\n let oldNumber = this.selectedNumber;\n let newNumber = this.updatedNumber;\n if (addNumber) {\n oldNumber = this.secondaryNo;\n newNumber = this.secondaryNo;\n this.updatedNumberType = \"Secondary\";\n }\n this.commonService\n .updatePRSNumber(\n newNumber,\n oldNumber,\n this.updatedNumberType,\n this.customerID,\n this.userId\n )\n .subscribe(\n (res) => {\n if (res[\"responseCode\"] == 0) {\n this.spinner = false;\n this.selectedNumber = this.updatedNumber;\n this.toastr.success(\"New number is saved.\", \"Success\");\n this.getContactdetail();\n } else {\n this.spinner = false;\n this.toastr.error(res[\"message\"], \"Error\");\n }\n },\n (err) => {\n this.spinner = false;\n this.toastr.error(\n \"Something went wrong, Please try again.\",\n \"Error\"\n );\n }\n );\n }\n }\n\n /**\n * Name: onNumberChange\n * purpose: To get new selected number\n */\n onNumberChange(\n number: any,\n editNumber: boolean,\n index: any,\n type: string\n ): void {\n if (type == \"D\" && editNumber && number.currentTarget.value.length == 10) {\n this.updatedNumber = number.currentTarget.value;\n this.updatedNumberType = \"D\";\n this.errorShow[index] = false;\n } else if (type == \"F\" && editNumber && number.currentTarget.value.length == 10) {\n this.updatedNumber = number.currentTarget.value;\n this.updatedNumberType = \"F\";\n this.errorShow[index] = false;\n } else if (editNumber && number.currentTarget.value.length == 10) {\n this.updatedNumber = number.currentTarget.value;\n this.updatedNumberType = index == 0 ? \"Y\" : \"N\";\n this.errorShow[index] = false;\n } else if (editNumber && number.currentTarget.value.length !== 10) {\n this.errorShow[index] = true;\n } else {\n this.selectedNumber = number.value;\n this.updatedNumber = number.value;\n this.updatedNumberType = index == 0 ? \"Y\" : \"N\";\n if (type == \"O\") {\n this.contactInfoOwner.forEach((element, i) => {\n if (i == index) {\n this.unableEdit[type][i] = true;\n } else {\n this.unableEdit[type][i] = false;\n }\n });\n } else if (type == \"F\") {\n this.contactInfoFleet.forEach((element, i) => {\n if (i == index) {\n this.unableEdit[type][i] = true;\n } else {\n this.unableEdit[type][i] = false;\n }\n });\n } else if (type == \"D\") {\n this.contactInfoDriver.forEach((element, i) => {\n if (i == index) {\n this.unableEdit[type][i] = true;\n } else {\n this.unableEdit[type][i] = false;\n }\n });\n }\n }\n }\n\n /**\n * Name: sendInfoMsg\n * purpose: To send workshop addess SMS\n */\n sendInfoMsg(): void {\n this.spinner = true;\n this.commonService\n .prsSendinfo(this.customerData.customerName, this.selectedNumber)\n .subscribe(\n (res) => {\n if (res[\"responseCode\"] == 0) {\n this.spinner = false;\n } else {\n this.spinner = false;\n this.toastr.error(res[\"message\"], \"Error\");\n }\n },\n (err) => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n }\n );\n }\n\n /**\n * Name: subTabDefault\n * purpose: To set vehicle details as selected\n */\n subTabDefault(selectedVehicle: string): void {\n // this.vehicleDetails = this.cus360[\"VECHILE_INFO\"].filter((vehicle) => vehicle.chassisNo == selectedVehicle)[0];\n // this.workshopCode = this.vehicleDetails.dealerCode;\n //localStorage.setItem(\"chassisNo\", this.vehicleDetails.chassisNo);\n //this.chassisNo = this.vehicleDetails.chassisNo;\n //change the sale date format\n // this.vehicleDetails.saleDate = this.datePipe.transform(\n // this.vehicleDetails.saleDate,\n // \"dd-MM-yyyy\"\n // );\n\n let selectedVehicleCategory;\n //let vinremark;\n if(this.questionType == 'PRS'){\n //selectedVehicleCategory = selectedVehicle+\" - \"+this.workshopCode;\n selectedVehicleCategory = selectedVehicle;\n let vin = selectedVehicleCategory.split(' - ')[0];\n this.selectedVin = vin;\n //vinremark = vin;\n this.workshopCode = selectedVehicleCategory.split(' - ')[1];\n this.vehicleDetails = this.cus360[\"VECHILE_INFO\"].filter((vehicle) => ((vehicle.chassisNo == vin) && (vehicle.dealerCode == this.workshopCode)))[0];\n } else {\n this.vehicleDetails = this.cus360[\"VECHILE_INFO\"].filter((vehicle) => vehicle.chassisNo == selectedVehicle.split(' - ')[0])[0];\n this.workshopCode = this.vehicleDetails.dealerCode;\n //selectedVehicleCategory = selectedVehicle;\n selectedVehicleCategory = selectedVehicle.split(' - ')[0];\n // vinremark = selectedVehicle.split(' - ')[0];\n this.defaultVin = selectedVehicle;\n }\n\n this.getLastServiceRemark(selectedVehicle);\n }\n\n getLastServiceRemark(selectedVehicle: string): void {\n this.spinner = true;\n let vin = selectedVehicle.split(' - ')[0];\n let workshopcode = selectedVehicle.split(' - ')[1];\n this.commonService.getLastServiceRemark(this.customerData.customerId, vin, workshopcode, this.customerData.callTypeSq, this.userId, this.roleId)\n .subscribe((res) => {\n if (res[\"responseCode\"] == 0) {\n let response = res[\"responseData\"];\n\n let vinSelect = '';\n if(this.questionType == 'PRS') {\n vinSelect = selectedVehicle;\n } else {\n vinSelect = selectedVehicle.split(' - ')[0];\n }\n if (response[\"LAST_SERVICE_INFO\"] && Object.keys(response[\"LAST_SERVICE_INFO\"]).length) {\n this.lastServiceDetails = response[\"LAST_SERVICE_INFO\"][vinSelect];\n this.jobCardNo = this.lastServiceDetails.jobCardNo;\n localStorage.setItem(\"milage\", this.lastServiceDetails.milage);\n } else {\n this.lastServiceDetails = {};\n }\n\n if (response[\"Remark_Info\"] && Object.keys(response[\"Remark_Info\"]).length) {\n let remarks = response[\"Remark_Info\"][selectedVehicle.split(' - ')[0]];\n remarks.forEach((element) => {\n let date = element.remarkDate + \" \" + element.remarkTime + \" GMT+0000\";\n let d = new Date(date);\n element.remarkTime = d;\n element.remarkDate = this.datePipe.transform(d, \"dd-MM-yyyy\");\n });\n this.remarksDetails = new MatTableDataSource(remarks);\n this.sort.direction = \"\";\n this.remarksDetails.sort = this.remarksSort;\n this.remarksDetails.paginator = this.remarksPaginator;\n this.remarksCount = remarks.length;\n } else {\n this.remarksDetails = [];\n }\n this.spinner = false;\n } else {\n this.spinner = false;\n this.toastr.error(res[\"message\"], \"Error\");\n }\n })\n }\n\n /**\n * Name: getCustomer360\n * purpose: To get customer data\n */\n getCustomer360(): void {\n this.spinner = true;\n this.vehicleList = [];\n this.vin = this.questionType == \"PRS\" ? this.chassis : \"\";\n this.dealerCode = this.customerData.dealerCode || \"\";\n this.commonService\n .getprscustomerdata(this.customerData.customerId, this.vin, this.dealerCode, this.customerData.callTypeSq, this.userId, this.roleId)\n .subscribe(\n (res) => {\n if (res[\"responseCode\"] == 0) {\n this.cus360 = res[\"responseData\"];\n if (\n this.cus360[\"VECHILE_INFO\"] &&\n this.cus360[\"VECHILE_INFO\"].length &&\n this.cus360[\"VECHILE_INFO\"][0].chassisNo\n ) {\n //this.selectedVehicle = this.cus360[\"VECHILE_INFO\"][0].chassisNo;\n if(this.questionType == 'PRS') {\n let chassiItem = this.cus360[\"VECHILE_INFO\"].find((ele) => {return ele.chassisNo == this.chassis});\n let index = this.cus360[\"VECHILE_INFO\"].findIndex((ele) => {return ele.chassisNo == this.chassis});\n if(index != -1) {\n this.cus360[\"VECHILE_INFO\"].splice(index, 1);\n this.cus360[\"VECHILE_INFO\"].unshift(chassiItem);\n }\n\n this.selectedVehicle = this.cus360[\"VECHILE_INFO\"][0].chassisNo + \" - \" + this.cus360[\"VECHILE_INFO\"][0].soldBy.split(' - ')[0];\n this.defaultVin = this.cus360[\"VECHILE_INFO\"][0].chassisNo;\n this.selectedVin = this.defaultVin;\n } else {\n this.selectedVehicle = this.cus360[\"VECHILE_INFO\"][0].chassisNo + \" - \" + this.cus360[\"VECHILE_INFO\"][0].soldBy.split(' - ')[0];;\n this.defaultVin = this.selectedVehicle.split(' - ')[0];\n }\n this.vinList = this.cus360.VECHILE_INFO;\n this.numberOfVehicle = this.cus360[\"VECHILE_INFO\"].length;\n this.cus360[\"VECHILE_INFO\"].forEach((element) => {\n this.vinNoList.push(element.chassisNo);\n this.vehicleInfoList.push(element);\n let seller = element.soldBy;\n if(seller) {\n element.soldBy = seller.split(' - ')[1];\n element.dealerCode = seller.split(' - ')[0];\n //this.vehicleMap.set(element.chassisNo, element.chassisNo+\" - \"+element.dealerCode);\n this.vehicleList.push(element.chassisNo+\" - \"+element.dealerCode);\n }\n });\n this.vehicleListCopy = this.vehicleList;\n this.subTabDefault(this.vehicleList[0]);\n } else {\n this.vehicleDetails = {};\n }\n this.spinner = false;\n } else {\n this.spinner = false;\n this.toastr.error(res[\"message\"], \"Error\");\n }\n },\n (err) => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n }\n );\n }\n\n /**\n * Name: getPrsFetchQuestions\n * purpose: To get Prs Questions\n */\n getPrsFetchQuestions(): void {\n //this.spinner = true;\n this.commonService.getPrsFetchQuestions(this.questionType, this.roleId).subscribe(\n (res) => {\n if (res[\"responseCode\"] == 0) {\n this.questions = [];\n let groups = [];\n res[\"responseData\"].forEach((element) => {\n let questionGroup = [];\n let groupexist = groups.filter(\n (group) => group == element.parentId\n );\n if (Number(element.parentId) > 0 && groupexist.length == 0) {\n questionGroup = res[\"responseData\"].filter(\n (question) => question.parentId == element.parentId\n );\n this.questions.push(questionGroup);\n groups.push(element.parentId);\n } else if (groupexist.length == 0) {\n this.questions.push(element);\n }\n });\n this.createQuestionForm(this.questions);\n //this.spinner = false;\n } else {\n //this.spinner = false;\n this.toastr.error(res[\"message\"], \"Error\");\n }\n },\n (err) => {\n //this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n }\n );\n }\n\n /**\n * Name: createQuestionForm\n * purpose: To create question form\n */\n createQuestionForm(data: any) {\n this.submitted = false;\n const formDataObj = {};\n let questionIdAdded = [];\n\n for (const prop of data) {\n if (!prop.length) {\n let questionExist;\n if (prop.radioButtonType == \"Yes\") {\n questionExist = questionIdAdded.filter(\n (group) => group == prop.questionId\n );\n formDataObj[prop.questionId + \"radio\"] = new FormControl(\"\");\n this.questionInfo.push({\n label: prop.questionId + \"radio\",\n type: \"RadioButton\",\n desc: prop.questionDesc,\n id: prop.questionSequence,\n questionId: prop.questionId,\n showDesc: questionExist.length ? false : true,\n subQuestion: false,\n });\n questionIdAdded.push(prop.questionId);\n }\n\n if (prop.ratingType == \"Yes\") {\n //remarks rating\n questionExist = questionIdAdded.filter(\n (group) => group == prop.questionId\n );\n formDataObj[prop.questionId + \"rate\"] = new FormControl(\"\");\n this.questionInfo.push({\n label: prop.questionId + \"rate\",\n type: \"Rate\",\n desc: prop.questionDesc,\n id: prop.questionSequence,\n questionId: prop.questionId,\n showDesc: questionExist.length ? false : true,\n subQuestion: false,\n });\n questionIdAdded.push(prop.questionId);\n }\n\n if (prop.remarksType == \"Yes\") {\n questionExist = questionIdAdded.filter(\n (group) => group == prop.questionId\n );\n formDataObj[prop.questionId + \"text\"] = new FormControl(\"\");\n this.questionInfo.push({\n label: prop.questionId + \"text\",\n type: \"Text\",\n desc: prop.questionDesc,\n id: prop.questionSequence,\n questionId: prop.questionId,\n showDesc: questionExist.length ? false : true,\n subQuestion: false,\n });\n questionIdAdded.push(prop.questionId);\n }\n } else {\n let subQuestionInfo = [];\n prop.forEach((questionData: any, index: any) => {\n let questionExist;\n if (\n questionData.questionId == \"14-3\" ||\n questionData.questionId == \"15-1\" ||\n questionData.questionId == \"15-2\" ||\n questionData.questionId == \"15-4\" ||\n questionData.questionId == \"15-6\" ||\n questionData.questionId == \"16-1\" ||\n questionData.questionId == \"17-1\" ||\n questionData.questionId == \"18-1\" ||\n questionData.questionId == \"19-1\" ||\n questionData.questionId == \"40-1\" ||\n questionData.questionId == \"40-2\" ||\n questionData.questionId == \"40-3\" ||\n questionData.questionId == \"40-4\" ||\n questionData.questionId == \"40-5\"\n ) {\n questionExist = questionIdAdded.filter(\n (group) => group == questionData.questionId\n );\n formDataObj[questionData.questionId + \"dropdown\"] = new FormControl(\n \"\"\n );\n subQuestionInfo.push({\n label: questionData.questionId + \"dropdown\",\n type: \"Dropdown\",\n desc: questionData.questionDesc,\n id: questionData.questionSequence,\n questionId: questionData.questionId,\n showDesc: questionExist.length ? false : true,\n subQuestion: true,\n parentId: questionData.parentId,\n data: this.dropdownData[questionData.questionId],\n });\n questionIdAdded.push(questionData.questionId);\n } else {\n if (questionData.radioButtonType == \"Yes\") {\n questionExist = questionIdAdded.filter(\n (group) => group == questionData.questionId\n );\n formDataObj[questionData.questionId + \"radio\"] = new FormControl(\n \"\"\n );\n subQuestionInfo.push({\n label: questionData.questionId + \"radio\",\n type: \"RadioButton\",\n desc: questionData.questionDesc,\n id: questionData.questionSequence,\n questionId: questionData.questionId,\n parentId: questionData.parentId,\n showDesc: questionExist.length ? false : true,\n subQuestion: index == 0 ? false : true,\n });\n questionIdAdded.push(questionData.questionId);\n }\n if (questionData.ratingType == \"Yes\") {\n //remarks rating\n questionExist = questionIdAdded.filter(\n (group) => group == questionData.questionId\n );\n formDataObj[questionData.questionId + \"rate\"] = new FormControl(\n \"\"\n );\n subQuestionInfo.push({\n label: questionData.questionId + \"rate\",\n type: \"Rate\",\n desc: questionData.questionDesc,\n id: questionData.questionSequence,\n questionId: questionData.questionId,\n parentId: questionData.parentId,\n showDesc: questionExist.length ? false : true,\n subQuestion: index == 0 ? false : true,\n });\n questionIdAdded.push(questionData.questionId);\n }\n if (questionData.remarksType == \"Yes\") {\n questionExist = questionIdAdded.filter(\n (group) => group == questionData.questionId\n );\n formDataObj[questionData.questionId + \"text\"] = new FormControl(\n \"\"\n );\n subQuestionInfo.push({\n label: questionData.questionId + \"text\",\n type: \"Text\",\n desc: questionData.questionDesc,\n id: questionData.questionSequence,\n questionId: questionData.questionId,\n parentId: questionData.parentId,\n showDesc: questionExist.length ? false : true,\n subQuestion: index == 0 ? false : true,\n });\n questionIdAdded.push(questionData.questionId);\n }\n }\n });\n\n this.questionInfo.push(subQuestionInfo);\n }\n }\n this.questionForm = new FormGroup(formDataObj);\n }\n\n checkQuestionValidation(): boolean {\n let valid = true;\n // this.errorCheck = false;\n // this.errorCheck15 = false;\n if (this.questionForm !== undefined) {\n if (\n this.questionForm.value[\"14rate\"] &&\n this.questionForm.value[\"14rate\"] != null &&\n this.questionForm.value[\"14rate\"] <= 3\n ) {\n if (\n !this.questionForm.value[\"14-1text\"] ||\n !this.questionForm.value[\"14-2text\"] ||\n !this.questionForm.value[\"14-3dropdown\"] ||\n !this.questionForm.value[\"14-4text\"]\n ) {\n valid = false;\n //this.errorCheck = true;\n }\n }\n if (\n this.questionForm.value[\"15rate\"] &&\n this.questionForm.value[\"15rate\"] != null &&\n this.questionForm.value[\"15rate\"] <= 3\n ) {\n if (\n !this.questionForm.value[\"15-1dropdown\"] ||\n !this.questionForm.value[\"15-2dropdown\"] ||\n !this.questionForm.value[\"15-3radio\"] ||\n !this.questionForm.value[\"15-5text\"] ||\n !this.questionForm.value[\"15-6dropdown\"]\n ) {\n valid = false;\n }\n if(this.questionForm.value[\"15-3radio\"] == 'No' && this.questionForm.value[\"15-4dropdown\"] == ''){\n valid = false;\n }\n }\n if (\n this.questionForm.value[\"16rate\"] &&\n this.questionForm.value[\"16rate\"] != null &&\n this.questionForm.value[\"16rate\"] <= 3\n ) {\n if (!this.questionForm.value[\"16-1dropdown\"]) {\n valid = false;\n //this.errorCheck = true;\n }\n }\n if (\n this.questionForm.value[\"17rate\"] &&\n this.questionForm.value[\"17rate\"] != null &&\n this.questionForm.value[\"17rate\"] <= 3\n ) {\n if (!this.questionForm.value[\"17-1dropdown\"]) {\n valid = false;\n //this.errorCheck = true;\n }\n }\n if (\n this.questionForm.value[\"18rate\"] &&\n this.questionForm.value[\"18rate\"] != null &&\n this.questionForm.value[\"18rate\"] <= 3\n ) {\n if (!this.questionForm.value[\"18-1dropdown\"]) {\n valid = false;\n //this.errorCheck = true;\n }\n }\n if (\n this.questionForm.value[\"19rate\"] &&\n this.questionForm.value[\"19rate\"] != null &&\n this.questionForm.value[\"19rate\"] <= 3\n ) {\n if (!this.questionForm.value[\"19-1dropdown\"]) {\n valid = false;\n //this.errorCheck = true;\n }\n }\n if(\n this.questionForm.value[\"33radio\"] == 'No'\n ) {\n if(this.questionForm.value[\"33-1radio\"] == '') {\n this.errorRadio = true;\n valid = false;\n }\n }\n\n if (this.questionForm.value['31radio'] == '' || this.questionForm.value['13radio'] == '' || this.questionForm.value['20radio'] == '' || this.questionForm.value['27radio'] == '' ){\n //this.errorRadio = true;\n valid = false;\n }\n\n if (\n this.questionForm.value[\"35radio\"] == 'Yes'\n ) {\n if(this.questionForm.value[\"36radio\"] == '') {\n this.errorRadio5 = true;\n valid = false;\n }\n }\n if(this.questionForm.value[\"37text\"] == '') {\n this.errorCheck = true;\n valid = false;\n }\n if (this.questionForm.value[\"48text\"] == '') {\n this.errorCheck = true;\n valid = false;\n }\n if(\n this.questionForm.value[\"39radio\"] == 'No'\n ) {\n if(this.questionForm.value[\"39text\"] == '') {\n //this.errorRadio5 = true;\n valid = false;\n }\n }\n // for making leading reason mandatory in PRS for blanket feedback\n if (this.blanketFeedback == 'S' || this.blanketFeedback == 'D') {\n if (\n this.questionForm.value[\"40-1dropdown\"] == '' ||\n this.questionForm.value[\"40-2dropdown\"] == '' ||\n this.questionForm.value[\"40-3dropdown\"] == '' ||\n this.questionForm.value[\"40-4dropdown\"] == '' ||\n this.questionForm.value[\"40-5dropdown\"] == ''\n ) {\n valid = false;\n }\n }\n if (this.questionForm.value[\"56-2rate\"] && this.questionForm.value[\"56-2rate\"] != null && this.questionForm.value[\"56-2rate\"] <= 3) {\n if (!this.questionForm.value[\"56-2text\"]) {\n valid = false;\n //this.errorCheck = true;\n }\n }\n if (this.questionForm.value[\"57-2rate\"] && this.questionForm.value[\"57-2rate\"] != null && this.questionForm.value[\"57-2rate\"] <= 3) {\n if (!this.questionForm.value[\"57-2text\"]) {\n valid = false;\n //this.errorCheck = true;\n }\n }\n if (this.questionForm.value[\"58-2rate\"] && this.questionForm.value[\"58-2rate\"] != null && this.questionForm.value[\"58-2rate\"] <= 3) {\n if (!this.questionForm.value[\"58-2text\"]) {\n valid = false;\n //this.errorCheck = true;\n }\n }\n if (this.questionForm.value[\"59rate\"] && this.questionForm.value[\"59rate\"] != null && this.questionForm.value[\"59rate\"] <= 3) {\n if (!this.questionForm.value[\"59text\"]) {\n valid = false;\n //this.errorCheck = true;\n }\n }\n if (this.questionForm.value[\"61rate\"] && this.questionForm.value[\"61rate\"] != null && this.questionForm.value[\"61rate\"] <= 3) {\n if (!this.questionForm.value[\"61text\"]) {\n valid = false;\n //this.errorCheck = true;\n }\n }\n if (this.questionForm.value[\"62rate\"] && this.questionForm.value[\"62rate\"] != null && this.questionForm.value[\"62rate\"] <= 3) {\n if (!this.questionForm.value[\"62text\"]) {\n valid = false;\n //this.errorCheck = true;\n }\n }\n if (this.questionForm.value[\"64rate\"] && this.questionForm.value[\"64rate\"] != null && this.questionForm.value[\"64rate\"] <= 3) {\n if (!this.questionForm.value[\"64text\"]) {\n valid = false;\n //this.errorCheck = true;\n }\n }\n if (this.questionForm.value[\"65rate\"] && this.questionForm.value[\"65rate\"] != null && this.questionForm.value[\"65rate\"] <= 3) {\n if (!this.questionForm.value[\"65text\"]) {\n valid = false;\n //this.errorCheck = true;\n }\n }\n if (this.questionForm.value[\"66rate\"] && this.questionForm.value[\"66rate\"] != null && this.questionForm.value[\"66rate\"] <= 3) {\n if (!this.questionForm.value[\"66text\"]) {\n valid = false;\n //this.errorCheck = true;\n }\n }\n if (this.questionForm.value[\"67rate\"] && this.questionForm.value[\"67rate\"] != null && this.questionForm.value[\"67rate\"] <= 3) {\n if (!this.questionForm.value[\"67text\"]) {\n valid = false;\n //this.errorCheck = true;\n }\n }\n if (this.questionForm.value[\"68rate\"] && this.questionForm.value[\"68rate\"] != null && this.questionForm.value[\"68rate\"] <= 3) {\n if (!this.questionForm.value[\"68text\"]) {\n valid = false;\n //this.errorCheck = true;\n }\n }\n if (this.questionForm.value[\"69rate\"] && this.questionForm.value[\"69rate\"] != null && this.questionForm.value[\"69rate\"] <= 3) {\n if (!this.questionForm.value[\"69text\"]) {\n valid = false;\n //this.errorCheck = true;\n }\n }\n if (this.questionForm.value[\"70rate\"] && this.questionForm.value[\"70rate\"] != null && this.questionForm.value[\"70rate\"] <= 3) {\n if (!this.questionForm.value[\"70text\"]) {\n valid = false;\n //this.errorCheck = true;\n }\n }\n if (this.questionForm.value[\"73rate\"] && this.questionForm.value[\"73rate\"] != null && this.questionForm.value[\"73rate\"] <= 3) {\n if (!this.questionForm.value[\"73text\"]) {\n valid = false;\n //this.errorCheck = true;\n }\n }\n if (this.questionForm.value[\"74rate\"] && this.questionForm.value[\"74rate\"] != null && this.questionForm.value[\"74rate\"] <= 3) {\n if (!this.questionForm.value[\"74text\"]) {\n valid = false;\n //this.errorCheck = true;\n }\n }\n if (this.questionForm.value[\"75rate\"] && this.questionForm.value[\"75rate\"] != null && this.questionForm.value[\"75rate\"] <= 3) {\n if (!this.questionForm.value[\"75text\"]) {\n valid = false;\n //this.errorCheck = true;\n }\n }\n if (this.questionForm.value[\"76rate\"] && this.questionForm.value[\"76rate\"] != null && this.questionForm.value[\"76rate\"] <= 3) {\n if (!this.questionForm.value[\"76text\"]) {\n valid = false;\n //this.errorCheck = true;\n }\n }\n if (this.questionForm.value[\"77rate\"] && this.questionForm.value[\"77rate\"] != null && this.questionForm.value[\"77rate\"] <= 3) {\n if (!this.questionForm.value[\"77text\"]) {\n valid = false;\n //this.errorCheck = true;\n }\n }\n if (this.questionForm.value[\"78rate\"] && this.questionForm.value[\"78rate\"] != null && this.questionForm.value[\"78rate\"] <= 3) {\n if (!this.questionForm.value[\"78text\"]) {\n valid = false;\n //this.errorCheck = true;\n }\n }\n if (this.questionForm.value[\"80rate\"] && this.questionForm.value[\"80rate\"] != null && this.questionForm.value[\"80rate\"] <= 3) {\n if (!this.questionForm.value[\"80text\"]) {\n valid = false;\n //this.errorCheck = true;\n }\n }\n if (this.questionForm.value[\"81rate\"] && this.questionForm.value[\"81rate\"] != null && this.questionForm.value[\"81rate\"] <= 3) {\n if (!this.questionForm.value[\"81text\"]) {\n valid = false;\n //this.errorCheck = true;\n }\n }\n if (this.questionForm.value[\"82rate\"] && this.questionForm.value[\"82rate\"] != null && this.questionForm.value[\"82rate\"] <= 3) {\n if (!this.questionForm.value[\"82text\"]) {\n valid = false;\n //this.errorCheck = true;\n }\n }\n if (this.questionForm.value[\"83rate\"] && this.questionForm.value[\"83rate\"] != null && this.questionForm.value[\"83rate\"] <= 3) {\n if (!this.questionForm.value[\"83text\"]) {\n valid = false;\n //this.errorCheck = true;\n }\n }\n if (this.questionForm.value[\"84rate\"] && this.questionForm.value[\"84rate\"] != null && this.questionForm.value[\"84rate\"] <= 3) {\n if (!this.questionForm.value[\"84text\"]) {\n valid = false;\n //this.errorCheck = true;\n }\n }\n if (this.questionForm.value[\"85rate\"] && this.questionForm.value[\"85rate\"] != null && this.questionForm.value[\"85rate\"] <= 3) {\n if (!this.questionForm.value[\"85text\"]) {\n valid = false;\n //this.errorCheck = true;\n }\n }\n if (this.questionForm.value[\"87-2rate\"] && this.questionForm.value[\"87-2rate\"] != null && this.questionForm.value[\"87-2rate\"] <= 3) {\n if (!this.questionForm.value[\"87-2text\"]) {\n valid = false;\n //this.errorCheck = true;\n }\n }\n }\n this.formSubmitted = valid;\n return valid;\n }\n\n getFeedbackValue(): any {\n let idFeedback = \"\";\n let formValue = this.questionForm.value;\n this.questions.forEach((element, index) => {\n if (element.length) {\n element.forEach((subElement, subindex) => {\n if (\n subElement.questionId == \"14-3\" || subElement.questionId == \"15-1\" ||\n subElement.questionId == \"15-2\" || subElement.questionId == \"15-6\" ||\n subElement.questionId == \"16-1\" || subElement.questionId == \"17-1\" ||\n subElement.questionId == \"18-1\" || subElement.questionId == \"15-4\" ||\n subElement.questionId == \"40-1\" || subElement.questionId == \"40-2\" ||\n subElement.questionId == \"40-3\" || subElement.questionId == \"40-4\" ||\n subElement.questionId == \"40-5\" ||\n (subElement.questionId == \"19-1\" &&\n formValue[subElement.questionId + \"dropdown\"] &&\n formValue[subElement.questionId + \"dropdown\"] != null &&\n formValue[subElement.questionId + \"dropdown\"] != \"\")\n ) {\n let feedback1 = subElement.questionId + \"#\" + formValue[subElement.questionId + \"dropdown\"] + \"#\" + \"\";\n idFeedback = idFeedback == \"\" ? feedback1 : idFeedback + \";\" + feedback1;\n } else if(subElement.questionId == \"14-1\" || subElement.questionId == \"14-2\"\n || subElement.questionId == \"14-4\" || subElement.questionId == \"15-4\"\n || subElement.questionId == \"15-5\") {\n let feedback = \"\";\n if ( subElement.ratingType == \"No\" && formValue[subElement.questionId + \"text\"]) {\n feedback = subElement.questionId + \"#\" + formValue[subElement.questionId + \"text\"] + \"#\" + \"\";\n } else {\n feedback = subElement.questionId + \"#\" + \"\" + \"#\" + \"\";\n }\n idFeedback = idFeedback == \"\" ? feedback : idFeedback + \";\" + feedback;\n } else {\n let feedback = \"\";\n if (subElement.radioButtonType == \"Yes\" && formValue[subElement.questionId + \"radio\"]) {\n feedback = feedback + \"#\" + formValue[subElement.questionId + \"radio\"];\n } else if(subElement.radioButtonType == \"Yes\"){\n feedback = feedback + \"#\"+ \"\";\n }\n if (subElement.ratingType == \"Yes\" && formValue[subElement.questionId + \"rate\"]) {\n feedback = feedback + \"#\" + formValue[subElement.questionId + \"rate\"];\n } else if(subElement.ratingType == \"Yes\"){\n feedback = feedback + \"#\"+ \"\";\n }\n if ( subElement.remarksType == \"Yes\" && formValue[subElement.questionId + \"text\"]) {\n feedback = feedback + \"#\" + formValue[subElement.questionId + \"text\"];\n } else {\n feedback = feedback + \"#\" + \"\";\n }\n feedback = feedback != \"\" ? subElement.questionId + feedback : feedback;\n if (feedback != \"\") {\n if (index == 0 && subindex == 0) {\n idFeedback = feedback;\n } else {\n idFeedback = idFeedback == \"\" ? feedback : idFeedback + \";\" + feedback;\n }\n }\n }\n });\n } else {\n let feedback = \"\";\n if ( element.radioButtonType == \"Yes\" && formValue[element.questionId + \"radio\"]) {\n feedback = feedback + \"#\" + formValue[element.questionId + \"radio\"];\n } else if(element.radioButtonType == \"Yes\"){\n feedback = feedback + \"#\"+ \"\";\n }\n if ( element.ratingType == \"Yes\" && formValue[element.questionId + \"rate\"]) {\n feedback = feedback + \"#\" + formValue[element.questionId + \"rate\"];\n } else if(element.ratingType == \"Yes\"){\n feedback = feedback + \"#\"+ \"\";\n }\n if ( element.remarksType == \"Yes\" && formValue[element.questionId + \"text\"]) {\n feedback = feedback + \"#\" + formValue[element.questionId + \"text\"];\n } else {\n feedback = feedback + \"#\" + \"\";\n }\n feedback = feedback != \"\" ? element.questionId + feedback : feedback;\n if (feedback != \"\") {\n if (index == 0) {\n idFeedback = feedback;\n } else {\n idFeedback = idFeedback == \"\" ? feedback : idFeedback + \";\" + feedback;\n }\n }\n }\n });\n return idFeedback;\n }\n\n getCustomerName(type){\n if(type=='C'){\n this.contactInfoOwner.forEach((element)=>{\n if(element.contactNo==this.selectedNumber){\n this.custNameForSave=element.name\n // return this.custNameForSave\n }\n });\n }else if(type=='F'){\n this.contactInfoFleet.forEach((element)=>{\n if(element.contactNo==this.selectedNumber){\n this.custNameForSave=element.name\n // return this.custNameForSave\n }\n });\n }\n else if(type=='D'){\n this.contactInfoDriver.forEach((element)=>{\n if(element.contactNo==this.selectedNumber){\n this.custNameForSave=element.name\n // return this.custNameForSave\n }\n });\n }\n else{\n this.custNameForSave= this.customerData.customerName\n }\n }\n\n saveResponseData() {\n this.formSubmitted = true;\n if (this.checkQuestionValidation()) {\n let idFeedback = \"\";\n let vin = \"\";\n if (!this.blanketFeedback) {\n idFeedback = this.getFeedbackValue();\n }\n if (this.blanketFeedback == 'S' || this.blanketFeedback == 'D') {\n idFeedback = this.getFeedbackValue();\n }\n if(this.jobCardNo == undefined){\n this.jobCardNo = \"\";\n }\n if(this.questionType != 'PRS') {\n vin = this.selectedVehicle.split(' - ')[0];\n } else {\n vin = this.selectedVin;\n }\n let type = this.ownerSelected ? 'C' : (this.fleetSelected ? 'F' : 'D')\n this.getCustomerName(type);\n let request = {\n blanketFeedback: this.blanketFeedback || \"N\",\n callTypeInd: this.questionType || \"\",\n customerId: this.customerData.customerId || \"\",\n idFeedback: idFeedback || \"\",\n jobCardNo: this.jobCardNo,\n userId: this.userId || \"\",\n vin: vin,\n workshopCode: this.workshopCode || \"\",\n customerType: type,\n phoneNo: this.selectedNumber?this.selectedNumber:'',\n customerName: this.custNameForSave?this.custNameForSave:'',\n roleId: this.roleId,\n callTypeCode: this.customerData.callTypeCode,\n callTypeSeq: this.customerData.callTypeSq,\n dtsCreation: new Date(),\n remark: this.creRemark || \"\",\n };\n\n if (this.blanketFeedback == \"S\" || this.blanketFeedback == \"D\") {\n const dialogRef = this.dialog.open(BlanketFeedbackDailogComponent, {\n width: '550px',\n data: {}\n });\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n this.saveResponse(request);\n } else {\n this.formSubmitted = false;\n this.spinner = false;\n }\n });\n } else {\n this.saveResponse(request);\n }\n\n }\n }\n\n saveResponse(requestData: any): void {\n //this.commonService.prsCustomerResponse = '';\n if (this.customerData.callTypeSq == '3' && this.roleId == '12') {\n\n this.commonService.prsFeedbackCheck(requestData).subscribe((res) => {\n\n if (res[\"responseCode\"] == 0) {\n\n this.spinner = false;\n\n this.toastr.info(res[\"message\"], \"Success\");\n } else {\n this.spinner = false;\n this.toastr.error(res[\"message\"], \"Error\");\n }\n }, (error) => {\n this.toastr.error(error, \"Error\");\n this.spinner = false;\n })\n }\n this.commonService.prsSaveVinFeedback(requestData,this.complaintId,this.complaintRemarks).subscribe(\n (res) => {\n if (res[\"responseCode\"] == 0) {\n this.spinner = false;\n this.toastr.info(res[\"message\"], \"Success\");\n this.commonService.prsCustomerResponse = requestData;\n this.clear();\n this.formSubmitted = false;\n if(!((this.cus360.VECHILE_INFO.length - 1) > 0)) {\n this.router.navigate([\"prs-calling\"]);\n } else {\n this.chassis = this.cus360[\"VECHILE_INFO\"].filter((vehicle) => vehicle.chassisNo != this.selectedVin)[0].chassisNo;\n this.getCustomer360();\n }\n } else {\n this.formSubmitted = false;\n this.spinner = false;\n this.toastr.error(res[\"message\"], \"Error\");\n }\n },\n (error) => {\n this.formSubmitted = false;\n this.toastr.error(error, \"Error\");\n this.spinner = false;\n });\n }\n\n /**\n * Name: hasQuesDataError\n * purpose: To check if customer form has any error\n * @param {any} control - form control\n * @return {boolean} flag to determine if form is valid.\n */\n hasQuesDataError(control: any, form: any): boolean {\n let controler = form.controls[control];\n return (\n controler &&\n (this.formSubmitted || controler.touched || controler.dirty) &&\n !controler.valid\n );\n }\n\n clear() {\n this.questionForm = undefined;\n this.questionInfo = [];\n this.createQuestionForm(this.questions);\n this.blanketFeedback = \"\";\n this.formSubmitted = false;\n this.diasableCreateComplain=true;\n }\n\n /**\n * Name: prsCustomeResponse\n * purpose: To get Prs Custome Response\n * @param {string} status - call status\n */\n prsCustomeResponse(status: string): void {\n this.submitted = false;\n if (\"101\" == status) {\n this.talked = \"101\";\n this.noResponce = \"\";\n const self = this;\n this.level1Form = undefined;\n this.level1info = [];\n this.level2Form = undefined;\n this.level2info = [];\n let callType = \"4\";\n this.commonService.prsCustomeResponse(callType).subscribe(\n (res) => {\n if (res[\"responseCode\"] == 0) {\n let data = res[\"responseData\"];\n self.responseDropDownData = data;\n this.createLevel1Form(data[\"Level1\"]);\n this.getLanguage();\n } else {\n this.spinner = false;\n this.toastr.error(res[\"message\"], \"Error\");\n }\n },\n (error) => {\n this.toastr.error(error, \"Error\");\n this.spinner = false;\n }\n );\n } else {\n this.talked = \"102\";\n this.level1Form = undefined;\n this.level1info = [];\n this.level2Form = undefined;\n this.level2info = [];\n this.yesResponce = \"\";\n this.nsReason = \"\";\n }\n }\n\n /**\n * Name: createLevel1Form\n * purpose: To create Level1 Form\n * @param {any} data - form data\n */\n createLevel1Form(data: any): void {\n this.submitted = false;\n this.countFlag = false;\n const formDataObj = {};\n for (const prop of data) {\n formDataObj[prop.label] = new FormControl(\"\", [Validators.required]);\n if (prop.dataType == \"Dropdown\") {\n this.countFlag=true\n var dropDownData = [];\n prop.data.forEach((element) => {\n if ((element.key == \"202\" && this.followupCount <=9 ) || element.key == \"203\" || element.key == \"210\" || element.key == \"211\" || element.key == \"212\") {\n dropDownData.push({ value: element.key, viewValue: element.value });\n }\n });\n }\n this.level1info.push({\n label: prop.label,\n type: prop.dataType,\n data: prop.dataType === \"Dropdown\" ? dropDownData : prop.data,\n });\n }\n this.level1Form = new FormGroup(formDataObj);\n }\n\n /**\n * Name: createLevel2Form\n * purpose: To create Level2 Form\n * @param {any} data - form data\n */\n createLevel2Form(data: any): void {\n this.submitted = false;\n this.level2Form = undefined;\n this.level2info = [];\n const formDataObj = {};\n let selection = this.level1Form.controls[\"Select Reason\"].value;\n if (data[selection] && data[selection].length) {\n for (const prop of data[selection]) {\n if (prop.dataType == \"Dropdown\") {\n if (selection == \"211\") {\n formDataObj[prop.label] = new FormControl(\"\", Validators.required);\n var dropDownData = [];\n this.languageList.forEach((element) => {\n dropDownData.push({ value: this.languageMap.get(element), viewValue: element});\n });\n } else {\n formDataObj[prop.label] = new FormControl(\"\", Validators.required);\n var dropDownData = [];\n prop.data.forEach((element) => {\n dropDownData.push({ value: element.key, viewValue: element.value });\n });\n }\n } else if (prop.dataType == \"Date\") {\n formDataObj[prop.data[0].key] = new FormControl(\"\", [\n Validators.required,\n ]);\n } else if (prop.dataType == \"Number\") {\n formDataObj[prop.data[0].key] = new FormControl(\"\", [\n Validators.minLength(10),\n Validators.maxLength(10),\n ]);\n } else {\n formDataObj[prop.data[0].key] = new FormControl(\"\");\n }\n this.level2info.push({\n label: prop.label,\n type: prop.dataType,\n data: prop.dataType === \"Dropdown\" ? dropDownData : prop.data,\n });\n }\n }\n\n this.level2Form = new FormGroup(formDataObj);\n }\n\n /**\n * Name: hasDataError\n * purpose: To check if customer form has any error\n * @param {any} control - form control\n * @return {boolean} flag to determine if form is valid.\n */\n hasDataError(control: any, form: any): boolean {\n let controler = form.controls[control];\n return (\n controler &&\n (this.submitted || controler.touched || controler.dirty) &&\n !controler.valid\n );\n }\n\n checkFormValidation(): boolean {\n let valid = true;\n if (this.talked == \"102\" && this.noResponce == \"\") {\n valid = false;\n } else if (this.level1Form !== undefined && !this.level1Form.valid) {\n valid = false;\n } else if (this.level2Form !== undefined && !this.level2Form.valid) {\n valid = false;\n }\n this.submitted = valid;\n return valid;\n }\n\n /**\n * Name: createLevelWiseData\n * purpose: To create LevelWise Data\n */\n createLevelWiseData() {\n var levelResponseData = {};\n\n if (this.level1Form !== undefined) {\n let obj = {};\n Object.keys(this.level1Form.value).filter((data) => {\n obj[this.level1Form.value[data]] = this.level1Form.value[data];\n });\n levelResponseData[\"Level1\"] = obj;\n } else {\n levelResponseData[\"Level1\"] = null;\n }\n\n if (this.level2Form !== undefined) {\n if (this.level2Form.value[304] != null) {\n this.level2Form.value[303] = this.datePipe.transform(\n this.level2Form.value[304],\n \"yyyy-MM-ddTHH:mm:ssZ\",\"+0000\"\n );\n this.level2Form.value[304] = this.datePipe.transform(\n this.level2Form.value[304],\n \"yyyy-MM-dd\",\"+0000\"\n );\n }\n levelResponseData[\"Level2\"] = this.level2Form.value;\n } else {\n levelResponseData[\"Level2\"] = null;\n }\n return levelResponseData;\n }\n\n getBookingFollowupCount(customerId: string, vin: string){\n this.commonService.getBookingFollowupCount(customerId, vin, 'prs')\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n // this.bookingCount = res['responseData'].bookingCount;\n this.followupCount = res['responseData'].followUpCount;\n\n } else {\n //this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n //this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n\n }\n\n /**\n * Name: saveCallResponse\n * purpose: To save Dial Data\n */\n saveCallResponse() {\n //this.commonService.customerResponse = '';\n this.submitted = true;\n if (this.checkFormValidation()) {\n this.showNoRespError = false;\n var levelData = this.createLevelWiseData();\n this.spinner = true;\n let serviceDueDate = this.datePipe.transform(new Date(), \"yyyy-MM-dd\");\n let startTime = new Date();\n let endTime = new Date();\n let vin = \"\";\n if(this.questionType != 'PRS') {\n vin = this.selectedVehicle.split(' - ')[0];\n } else {\n vin = this.selectedVin;\n }\n endTime.setSeconds(endTime.getSeconds() + 5);\n let type=this.ownerSelected ? 'C' : (this.fleetSelected ? 'F' : 'D');\n this.getCustomerName(type)\n let request = {\n callEndTime: endTime,\n callStartTime: startTime,\n callTypeSeq: this.customerData.callTypeSq || \"\",\n customerContactInd: this.talked,\n customerId: this.customerData.customerId,\n dealerCode: this.workshopCode,\n levelData: levelData,\n remark: this.creRemark || \"\",\n responseForNo: this.noResponce || \"\",\n serviceDueDate: serviceDueDate,\n userID: this.userId,\n vin: (this.cus360[\"VECHILE_INFO\"].length > 1 && this.questionType != \"PRS\")? \"\" : vin,\n customerType: type,\n phoneNo: this.selectedNumber?this.selectedNumber:'',\n customerName: this.custNameForSave?this.custNameForSave:'',\n role:this.userRoles,\n roleId: this.roleId,\n jobCardNo: this.jobCardNo,\n };\n\n \n\n this.saveCallRecording(request);\n } else if (this.talked == \"102\" && this.noResponce == \"\") {\n this.showNoRespError = true;\n }\n }\n\n /**\n * Name: getLanguage\n * purpose: To get Languages\n */\n getLanguage() {\n // this.spinner = true;\n this.languageList = [];\n this.commonService.getLanguage().subscribe(\n (res) => {\n if (res[\"responseCode\"] == 0) {\n res[\"responseData\"].forEach(element => {\n this.languageList.push(element.languagePre)\n this.languageMap.set(element.languagePre, element.languageCode+\"#\"+element.languagePre);\n });\n //this.spinner = false;\n } else {\n //this.spinner = false;\n this.toastr.error(res[\"message\"], \"Error\");\n }\n },\n (error) => {\n this.toastr.error(error, \"Error\");\n //this.spinner = false;\n }\n );\n }\n\n onKey() : void {\n this.vehicleList = this.vehicleListCopy;\n this.vehicle = [];\n // this.selectedValue = this.selectWorkshop.controls.selectedDealer.value;\n this.selectedValue = this.selectedValue.toString();\n this.vehicle = this.vehicleList.filter(item =>\n item.toLowerCase().includes(this.selectedValue.toLowerCase())\n );\n if(this.vehicle.length > 0){\n this.closeInput();\n }\n this.vehicleList = [];\n this.vehicleList = this.vehicle;\n }\n\n closeInput() : void {\n if(this.vehicle.length == 0) {\n //this.selectedDealer = '';\n //this.selectWorkshop.controls[\"selectedDealer\"].setValue(\"\");\n this.selectedValue = \"\";\n this.vehicleList = this.vehicleListCopy;\n }\n }\n\n /**\n * Name: getCallList\n * purpose: To get customer call data\n */\n getCallList(): void {\n //this.spinner = true;\n this.commonService.callDetails(this.userId, this.customerID, 'PRS').subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n //this.spinner = false;\n \n this.callLists = new MatTableDataSource(res['responseData']);\n this.recentNumber = (res['responseData'].length && res['responseData'][0].custNo) ? res['responseData'][0].custNo.split('+91')[1] : '';\n this.sort.direction = '';\n this.callLists.sort = this.callLogsSort;\n this.callLists.paginator = this.paginator;\n this.callCount = res['responseData'].length;\n } else {\n //this.spinner = false;\n }\n }, err => {\n //this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: getCallRecording\n * purpose: To get call recording and play\n */\n recordingUrl:string = ''\n \n getCallRecording(bucketName: string, fileName: string, id: string, source: string ,element:any): void {\n\n if (element.recordingUrl) {\n this.recordingUrl = element.recordingUrl;\n }else{\n this.recordingUrl = '';\n }\n this.spinner = true;\n this.onRecordingClose();\n this.commonService.downloadAudio(bucketName, fileName, source).subscribe(res => {\n this.spinner = false;\n var binary = res['body'];\n var blob = new Blob([binary], { type: 'audio/mp4' });\n this.audioSource.id = id;\n this.audioSource.url = URL.createObjectURL(blob);\n if (this.audioSource.url) {\n this.playRecording();\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n selectBlanket(value){\n if(value == 'D'&&this.roleId==\"1\"){\n this.diasableCreateComplain = false;\n this.disableSubmitButton = true ;\n }else{\n this.diasableCreateComplain = false;\n this.disableSubmitButton = false ;\n }\n }\n changeRating(formRating) {\n const formRatingInfo = this.questionForm.get(formRating);\n if (formRatingInfo.touched) {\n this.disableSubmitButton = false;\n }\n\n if (formRatingInfo.touched && this.roleId == \"1\") {\n let lessThanThree = false;\n for (const obj in this.questionForm.value) {\n let isRating=obj.toString()\n if (isRating.includes('rate')&&this.questionForm.value[obj] && this.questionForm.value[obj] <= 3) {\n lessThanThree = true;\n }\n }\n if (lessThanThree) {\n this.diasableCreateComplain = false;\n this.disableSubmitButton = true;\n } else {\n this.diasableCreateComplain = true;\n }\n } else if (formRatingInfo.touched && this.roleId == \"12\") {\n let allOneRating = false;\n this.diasableCreateComplain = false;\n for (const obj in this.questionForm.value) {\n let isRating=obj.toString()\n if (isRating.includes('rate')&&this.questionForm.value[obj] > 1) {\n allOneRating = true\n }\n }\n if (allOneRating) {\n this.disableSubmitButton = false;\n }\n else {\n this.disableSubmitButton = true;\n }\n }\n }\n\n\n /**\n * Name: playRecording\n * purpose: To play recoding\n */\n playRecording(): void {\n this.showPlayBtn = false;\n this.showRecordingDailog = true;\n }\n\n /**\n * Name: onRecordingClose\n * purpose: To close Recording dailog\n */\n onRecordingClose() {\n this.showPlayBtn = true;\n this.showRecordingDailog = false;\n }\n\n /**\n * Name: closeDailog\n * purpose: To close Dailog\n */\n closeDailog(): void {\n this.close.emit(null);\n }\n\n openComplaintDialog() {\n this.commonService.complaintCheck(this.jobCardNo, this.roleId, this.userId, this.callTypeCode, this.customerID, this.chassisNo).subscribe(res=>{\n if(res[\"responseData\"] == \"Complaint Does Not Exists\") {\n openPrsComplaintDialog(this.dialog, this.customerData.dealerCode, this.customerID, this.vehicleDetails.chassisNo, this.vehicleDetails.registrationNo, this.jobCardNo, this.callTypeCode, this.roleId).subscribe(res=>{\n if(res.complaintId != '' && res.complaintId != null ) {\n this.complaintId = res.complaintId;\n this.complaintRemarks = res.complaintRemarks;\n this.disableSubmitButton = res.isSubmitted\n }\n });\n } else if(res[\"responseData\"] == \"Complaint Already Exists\") {\n this.toastr.info(\"complaint Already Exists\")\n }\n });\n }\n\n fetchBlockStatus() {\n this.commonService.fetchBlockStatus(this.customerID, 'prs').subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n this.blockStatus = res[\"responseData\"].blockStatus;\n //this.spinner = false;\n } else {\n //this.spinner = false;\n }\n }, err => {\n //this.spinner = false;\n // this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n\n activeTabLabel: string = 'Owner'; \n activeIndex:number = 0\n userInfo: any;\n\n\n selectedContactNumbers = {\n 'Owner': null,\n 'Fleet Manager': null,\n 'Driver': null\n };\n\n onTabChange(event: MatTabChangeEvent) {\n this.activeTabLabel = event.tab.textLabel;\n this.activeIndex = event.index;\n this.updateActiveContactNo();\n }\n\n \n\n private updateActiveContactNo() {\n let contactList;\n \n if (this.activeIndex === 0) {\n contactList = this.contactInfoOwner;\n } else if (this.activeIndex === 1) {\n contactList = this.contactInfoFleet;\n } else if (this.activeIndex === 2) {\n contactList = this.contactInfoDriver;\n }\n \n console.log(this.activeIndex);\n console.log(contactList);\n if (contactList && contactList.length > 0) {\n this.selectedContactNumbers[this.activeTabLabel] = this.selectedContactNumbers[this.activeTabLabel] || contactList[0].contactNo;\n }\n \n }\n \n onRadioChange(contactNo: string, tabLabel: string) {\n this.selectedContactNumbers[tabLabel] = contactNo;\n \n \n }\n\n\n private callingToUser(){\n let customerPhone = this.selectedContactNumbers[this.activeTabLabel];\n if(customerPhone){\n this.makeCall(customerPhone)\n }else{\n this.spinner = false;\n this.toastr.error(\"Customer Phone number can't be Empty while placing the call\")\n }\n }\n\n \n private makeCall(customerPhone:string) {\n const callParams = new CallParams(this.userInfo.contactNo, customerPhone);\n this.spinner = true\n this.commonService.createCallConnection_API(callParams).subscribe({\n next: (response) => {\n if(response.responseData.Uri) {\n localStorage.setItem(\"exotel_URI\",response.responseData.Uri)\n } else{\n localStorage.setItem(\"exotel_URI\",'')\n }\n \n if (response.responseCode==0) {\n this.toastr.success(\"Call is in progress\")\n }else{\n this.toastr.error(response.responseData)\n \n }\n \n },\n error:(error)=>{\n this.spinner = false\n this.toastr.error(\"Something went wrong\");\n this.showPrs360=false;\n \n },\n complete:()=>{\n this.spinner = false\n }\n });\n }\n\n\n private saveCallRecording(data:any){\n const URI = localStorage.getItem('exotel_URI')\n const CRE_ID = this.userInfo.userId \n const CUSTOMER_CODE = this.customerData.customerId\n const SOURCE = \"PRS\";\n console.log(\"SAVE\" , URI);\n if (URI)\n {\n this.spinner = true;\n const callRecordingParams = new SaveCallRecordingParams(CRE_ID,CUSTOMER_CODE,SOURCE,URI)\n this.commonService.saveCallRecording_API(callRecordingParams).subscribe({\n next:(response)=>{\n if (response.responseCode == 0) {\n this.toastr.success(response.message, 'Success')\n this.saveFormResponse(data);\n }\n else\n {\n this.toastr.error(response.message, 'Error');\n this.submitted = false;\n \n }\n \n }\n ,error:(error)=>{\n console.log(error);\n this.submitted = false;\n this.spinner = false;\n },\n complete:()=>{\n this.spinner = false;\n \n \n }\n })\n }else{\n this.saveFormResponse(data);\n }\n }\n\n private saveFormResponse(request: any){\n\n this.commonService.prsSaveData(request).subscribe(\n (res) => {\n if (res[\"responseCode\"] == 0) {\n this.spinner = false;\n this.toastr.info(res[\"message\"], \"Success\");\n this.router.navigate([\"prs-calling\"])\n this.commonService.prsCustomerResponse = request;\n this.submitted = false;\n this.level1Form = undefined;\n this.level1info = [];\n this.level2Form = undefined;\n this.level2info = [];\n this.creRemark = null;\n this.showNoRespError = false;\n this.yesResponce = \"\";\n this.nsReason = \"\";\n if(\"101\" == this.talked) {\n this.createLevel1Form(this.responseDropDownData&&this.responseDropDownData[\"Level1\"]);\n }\n this.router.navigate([\"prs-calling\"]);\n } else {\n this.submitted = false;\n this.spinner = false;\n this.toastr.error(res[\"message\"], \"Error\");\n }\n },\n (error) => {\n this.submitted = false;\n this.toastr.error(error, \"Error\");\n this.spinner = false;\n }\n );\n }\n\n openConfirmation() {\n if (localStorage.getItem('countryCode')=='IND91') {\n this.dialogService.openConfirmDialog().subscribe(result => {\n if (result) {\n console.log(result);\n this.show360(); \n } else {\n console.log(result);\n }\n });\n }else{\n this.show360();\n }\n \n }\n \n}","export default \".chart-container {\\n display: block;\\n margin-bottom: 0px !important;\\n padding: 0px 10px !important;\\n}\\n\\n.detail-card ::ng-deep .mat-tab-label {\\n height: 48px;\\n padding: 0 8px;\\n min-width: 95px;\\n}\\n\\n.chartjs-render-monitor {\\n max-width: 100% !important;\\n}\\n\\n.kpi {\\n background-color: #ededed;\\n padding-top: 120px;\\n padding-left: 10px;\\n padding-right: 20px;\\n padding-bottom: 20px;\\n}\\n\\n.kpi h3 {\\n text-align: center;\\n}\\n\\n.kpi-chart {\\n background: white;\\n padding: 5px;\\n}\\n\\n.kpi-chart .chart-container {\\n padding: 0px 10px;\\n}\\n\\n.kpi-chart .chartjs-render-monitor {\\n height: 60px !important;\\n}\\n\\n.kpi-chrt-head {\\n text-align: center;\\n margin: 0px;\\n}\\n\\n.kpi-chrt-head .heading-kpi {\\n font-size: 13px;\\n color: black;\\n font-weight: 500;\\n padding-top: 5px;\\n}\\n\\n.kpi-chrt-head .state {\\n font-size: 15px;\\n font-weight: 500;\\n padding-top: 10px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9jb21wb25lbnQvcHJzLWRhc2hib2FyZC9jaGFydC1wcnMtZGFzaGJvYXJkL2NoYXJ0LXBycy1kYXNoYm9hcmQuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NvbXBvbmVudC9wcnMtZGFzaGJvYXJkL2NoYXJ0LXBycy1kYXNoYm9hcmQvY2hhcnQtcHJzLWRhc2hib2FyZC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQTtFQUNJLGNBQUE7RUFDQSw2QkFBQTtFQUNBLDRCQUFBO0FDQUo7O0FER0U7RUFDRSxZQUFBO0VBQ0EsY0FBQTtFQUNBLGVBQUE7QUNBSjs7QURHRTtFQUNFLDBCQUFBO0FDQUo7O0FESUU7RUFDRSx5QkFBQTtFQUNBLGtCQUFBO0VBQ0Esa0JBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0FDREo7O0FER0k7RUFDRSxrQkFBQTtBQ0ROOztBREtFO0VBQ0UsaUJBQUE7RUFDQSxZQUFBO0FDRko7O0FESUk7RUFDRSxpQkFBQTtBQ0ZOOztBREtJO0VBQ0UsdUJBQUE7QUNITjs7QURPRTtFQUNFLGtCQUFBO0VBQ0EsV0FBQTtBQ0pKOztBRE1JO0VBQ0UsZUFBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtFQUNBLGdCQUFBO0FDSk47O0FET0k7RUFDRSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtBQ0xOIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50L3Bycy1kYXNoYm9hcmQvY2hhcnQtcHJzLWRhc2hib2FyZC9jaGFydC1wcnMtZGFzaGJvYXJkLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLy9jaGFydCBjc3Ncbi5jaGFydC1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IDBweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDBweCAxMHB4ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuZGV0YWlsLWNhcmQgOjpuZy1kZWVwIC5tYXQtdGFiLWxhYmVsIHtcbiAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgcGFkZGluZzogMCA4cHg7XG4gICAgbWluLXdpZHRoOiA5NXB4O1xuICB9XG5cbiAgLmNoYXJ0anMtcmVuZGVyLW1vbml0b3Ige1xuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLy9rcGkgY3NzXG4gIC5rcGkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZGVkZWQ7XG4gICAgcGFkZGluZy10b3A6IDEyMHB4O1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAyMHB4O1xuXG4gICAgaDMge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbiAgfVxuXG4gIC5rcGktY2hhcnQge1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIHBhZGRpbmc6IDVweDtcblxuICAgIC5jaGFydC1jb250YWluZXIge1xuICAgICAgcGFkZGluZzogMHB4IDEwcHg7XG4gICAgfVxuXG4gICAgLmNoYXJ0anMtcmVuZGVyLW1vbml0b3Ige1xuICAgICAgaGVpZ2h0OiA2MHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLmtwaS1jaHJ0LWhlYWQge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW46IDBweDtcblxuICAgIC5oZWFkaW5nLWtwaSB7XG4gICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICBjb2xvcjogYmxhY2s7XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgcGFkZGluZy10b3A6IDVweDtcbiAgICB9XG5cbiAgICAuc3RhdGUge1xuICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICAgIH1cbiAgfVxuIiwiLmNoYXJ0LWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAwcHggIWltcG9ydGFudDtcbiAgcGFkZGluZzogMHB4IDEwcHggIWltcG9ydGFudDtcbn1cblxuLmRldGFpbC1jYXJkIDo6bmctZGVlcCAubWF0LXRhYi1sYWJlbCB7XG4gIGhlaWdodDogNDhweDtcbiAgcGFkZGluZzogMCA4cHg7XG4gIG1pbi13aWR0aDogOTVweDtcbn1cblxuLmNoYXJ0anMtcmVuZGVyLW1vbml0b3Ige1xuICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cblxuLmtwaSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZGVkZWQ7XG4gIHBhZGRpbmctdG9wOiAxMjBweDtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbn1cbi5rcGkgaDMge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5rcGktY2hhcnQge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgcGFkZGluZzogNXB4O1xufVxuLmtwaS1jaGFydCAuY2hhcnQtY29udGFpbmVyIHtcbiAgcGFkZGluZzogMHB4IDEwcHg7XG59XG4ua3BpLWNoYXJ0IC5jaGFydGpzLXJlbmRlci1tb25pdG9yIHtcbiAgaGVpZ2h0OiA2MHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5rcGktY2hydC1oZWFkIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW46IDBweDtcbn1cbi5rcGktY2hydC1oZWFkIC5oZWFkaW5nLWtwaSB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgY29sb3I6IGJsYWNrO1xuICBmb250LXdlaWdodDogNTAwO1xuICBwYWRkaW5nLXRvcDogNXB4O1xufVxuLmtwaS1jaHJ0LWhlYWQgLnN0YXRlIHtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBwYWRkaW5nLXRvcDogMTBweDtcbn0iXX0= */\"","import { Component, Input, OnInit } from '@angular/core';\nimport { ChartDataSets, ChartOptions, ChartType } from 'chart.js';\nimport { Label } from 'ng2-charts';\n\n@Component({\n selector: 'app-chart-prs-dashboard',\n templateUrl: './chart-prs-dashboard.component.html',\n styleUrls: ['./chart-prs-dashboard.component.scss']\n})\nexport class ChartPrsDashboardComponent implements OnInit {\n\n @Input() chartData: ChartDataSets;\n @Input() chartHeight: any;\n @Input() chartWidth: any;\n @Input() chartLabels: Label[];\n @Input() chartOptions: ChartOptions;\n @Input() chartPlugins: any;\n @Input() chartLegend: boolean;\n @Input() chartType: ChartType;\n\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","export default \".working-area {\\n margin: 0px 0px 0px 0px !important;\\n min-height: 100vh;\\n}\\n\\n/* dashboard css */\\n\\n.dashboard {\\n padding-top: 120px;\\n padding-left: 20px;\\n padding-bottom: 20px;\\n}\\n\\n.dashboard h3 {\\n text-align: center;\\n}\\n\\n.dashboard .grth {\\n padding: 5px 5px 5px 0px;\\n}\\n\\n.p-b-8 {\\n padding-bottom: 8px;\\n}\\n\\n.p-b-3 {\\n padding-bottom: 3px;\\n}\\n\\n.p-t-5 {\\n padding-top: 5px;\\n}\\n\\n.p-t-13 {\\n padding-top: 13px;\\n}\\n\\n.m-0 {\\n margin: 0px;\\n}\\n\\nhr {\\n width: 100%;\\n opacity: 0.5;\\n margin-bottom: 15px !important;\\n}\\n\\n.detail-card {\\n margin-right: 10px;\\n background-color: #ffffff;\\n padding: 5px;\\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12);\\n}\\n\\n.detail-card .head-crd {\\n margin-top: 15px;\\n}\\n\\n.detail-card .indicator {\\n margin-left: 0px;\\n margin-top: 10px;\\n}\\n\\n.detail-card1 {\\n margin-right: 10px;\\n background-color: #ffffff;\\n padding: 5px;\\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12);\\n}\\n\\n.detail-card1 .indicator {\\n margin-left: 5px;\\n}\\n\\n.count {\\n font-size: 14px !important;\\n font-weight: bold;\\n}\\n\\n.count1 {\\n font-size: 16px !important;\\n font-weight: bold;\\n}\\n\\n.count2 {\\n font-size: 18px !important;\\n font-weight: bold;\\n}\\n\\np {\\n font-size: 11px !important;\\n margin: 3px;\\n}\\n\\n.color-red {\\n color: #e64243;\\n}\\n\\n.color-nv-blue {\\n color: #2e3668;\\n}\\n\\n.color-lg-blue {\\n color: #4834d4;\\n}\\n\\n.color-blue {\\n color: #5758bb;\\n}\\n\\n.color-lg-sky {\\n color: #57aeef;\\n}\\n\\n.color-d-sky {\\n color: #3f729d;\\n}\\n\\n.color-grn {\\n color: #54b157;\\n}\\n\\n.indicator {\\n margin-right: 10px;\\n border: 1px solid #2e3668;\\n border-radius: 50%;\\n padding: 5px;\\n font-size: 14px;\\n color: #2e3668;\\n cursor: pointer;\\n}\\n\\n.label {\\n text-align: center;\\n}\\n\\n/* chart css */\\n\\n.chart-container {\\n display: block;\\n margin-bottom: 0px !important;\\n padding: 0px 10px !important;\\n}\\n\\n.detail-card ::ng-deep .mat-tab-label {\\n height: 25px;\\n padding: 0 8px;\\n min-width: 95px;\\n font-size: 13px;\\n}\\n\\n.chartjs-render-monitor {\\n max-width: 100% !important;\\n}\\n\\n/* custom calender */\\n\\n.example-month-picker .mat-calendar-period-button {\\n pointer-events: none;\\n}\\n\\n.example-month-picker .mat-calendar-arrow {\\n display: none;\\n}\\n\\n.dateField {\\n width: 100%;\\n}\\n\\n.heading {\\n /* padding-top: 20px; */\\n}\\n\\n.heading .indicator {\\n position: relative;\\n left: 135px;\\n background: #ffffff;\\n padding: 4px;\\n bottom: 22px;\\n}\\n\\n.heading1 {\\n /* padding-top: 20px; */\\n}\\n\\n.heading1 .indicator {\\n position: relative;\\n left: 170px;\\n background: #ffffff;\\n padding: 4px;\\n bottom: 22px;\\n}\\n\\n.alert {\\n /* padding-top: 20px; */\\n font-size: 20px;\\n font-weight: bold;\\n}\\n\\n/* custom mat-select */\\n\\n#dateField ::ng-deep input.mat-input-element {\\n margin-top: 3px;\\n padding-left: 5px;\\n font-size: 14px !important;\\n}\\n\\n#dateField ::ng-deep .mat-form-field-suffix {\\n right: 0px;\\n top: 0px;\\n}\\n\\n#dateField ::ng-deep .mat-form-field {\\n font-size: 14px !important;\\n}\\n\\n#dateField ::ng-deep .mat-datepicker-toggle {\\n position: absolute;\\n right: 0px;\\n top: -16px;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-infix {\\n border: 1px solid lightgray;\\n border-radius: 2px;\\n background: white;\\n padding: 0;\\n height: 20px;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field {\\n font-size: 14px !important;\\n}\\n\\n.filter1 ::ng-deep .mat-select {\\n padding: 3px 0px;\\n font-size: 14px !important;\\n}\\n\\n.filter1 ::ng-deep .mat-select-trigger {\\n padding-left: 8px;\\n width: 100%;\\n}\\n\\n.filter1 ::ng-deep .mat-select-value {\\n width: 90%;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label-wrapper {\\n top: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-underline {\\n display: none;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label {\\n top: 0;\\n margin-top: 3px !important;\\n padding-left: 5px;\\n font-size: 14px !important;\\n}\\n\\n.filter21 ::ng-deep .mat-form-field-infix {\\n border: 1px solid lightgray;\\n border-radius: 2px;\\n background: white;\\n padding: 0;\\n height: 20px;\\n margin-left: 30px;\\n}\\n\\n.filter21 ::ng-deep .mat-form-field {\\n font-size: 14px !important;\\n}\\n\\n.filter21 ::ng-deep .mat-select {\\n padding: 3px 0px;\\n font-size: 14px !important;\\n}\\n\\n.filter21 ::ng-deep .mat-select-trigger {\\n padding-left: 8px;\\n width: 100%;\\n}\\n\\n.filter21 ::ng-deep .mat-select-value {\\n width: 90%;\\n}\\n\\n.filter21 ::ng-deep .mat-form-field-label-wrapper {\\n top: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n\\n.filter21 ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 0;\\n}\\n\\n.filter21 ::ng-deep .mat-form-field-underline {\\n display: none;\\n}\\n\\n.filter21 ::ng-deep .mat-form-field-label {\\n top: 0;\\n margin-top: 3px !important;\\n padding-left: 5px;\\n font-size: 14px !important;\\n}\\n\\n.filter3::ng-deep .mat-form-field-infix {\\n border: 1px solid lightgray;\\n border-radius: 2px;\\n background: white;\\n padding: 0;\\n height: 20px;\\n width: 120px !important;\\n margin-top: 18px;\\n}\\n\\n.filter3 ::ng-deep .mat-form-field {\\n font-size: 14px !important;\\n}\\n\\n.filter3 ::ng-deep .mat-select {\\n padding: 3px 0px;\\n font-size: 14px !important;\\n}\\n\\n.filter3 ::ng-deep .mat-select-trigger {\\n padding-left: 8px;\\n width: 100%;\\n}\\n\\n.filter3 ::ng-deep .mat-select-value {\\n width: 100%;\\n}\\n\\n.filter3 ::ng-deep .mat-form-field-label-wrapper {\\n top: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n\\n.filter3 ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 0;\\n}\\n\\n.filter3 ::ng-deep .mat-form-field-underline {\\n display: none;\\n}\\n\\n.filter3 ::ng-deep .mat-form-field-label {\\n top: 0;\\n margin-top: 3px !important;\\n padding-left: 5px;\\n font-size: 14px !important;\\n font-weight: bold !important;\\n}\\n\\n.filter4::ng-deep .mat-form-field-infix {\\n border: 1px solid lightgray;\\n border-radius: 2px;\\n background: white;\\n padding: 0;\\n height: 20px;\\n width: 160px !important;\\n margin-top: 18px;\\n}\\n\\n.filter4 ::ng-deep .mat-form-field {\\n font-size: 14px !important;\\n}\\n\\n.filter4 ::ng-deep .mat-select {\\n padding: 3px 0px;\\n font-size: 14px !important;\\n}\\n\\n.filter4 ::ng-deep .mat-select-trigger {\\n padding-left: 8px;\\n width: 100%;\\n}\\n\\n.filter4 ::ng-deep .mat-select-value {\\n width: 100%;\\n}\\n\\n.filter4 ::ng-deep .mat-form-field-label-wrapper {\\n top: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n\\n.filter4 ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 0;\\n}\\n\\n.filter4 ::ng-deep .mat-form-field-underline {\\n display: none;\\n}\\n\\n.filter4 ::ng-deep .mat-form-field-label {\\n top: 0;\\n margin-top: 3px !important;\\n padding-left: 5px;\\n font-size: 14px !important;\\n font-weight: bold !important;\\n}\\n\\n.filter-label {\\n font: Bold 14px Roboto;\\n letter-spacing: 0px;\\n color: #3c3c3c;\\n opacity: 1;\\n margin-bottom: 5px;\\n}\\n\\n.dateFilter {\\n border: 1px solid lightgray;\\n border-radius: 2px;\\n background: white;\\n padding: 0;\\n height: 20px;\\n}\\n\\n/* kpi css */\\n\\n.kpi {\\n background-color: #ededed;\\n padding-top: 105px;\\n padding-left: 20px;\\n padding-right: 20px;\\n padding-bottom: 20px;\\n /* h3 {\\n text-align: center;\\n }\\n .heading {\\n margin-bottom: 8px;\\n margin-top: 10px;\\n } */\\n}\\n\\n.kpi-chart {\\n background: white;\\n padding: 5px;\\n cursor: pointer;\\n /* .chart-container {\\n padding: 0px 10px;\\n } */\\n /* .chartjs-render-monitor {\\n height: 60px !important;\\n } */\\n}\\n\\n.kpi-chrt-head {\\n text-align: center;\\n margin: 0px;\\n /* .heading-kpi {\\n font-size: 13px;\\n color: black;\\n font-weight: 500;\\n padding-top: 5px;\\n } */\\n /* .state {\\n font-size: 15px;\\n font-weight: 500;\\n padding-top: 10px;\\n } */\\n}\\n\\n.filter-label-date {\\n font: 12px Roboto;\\n letter-spacing: 0px;\\n color: #3c3c3c;\\n opacity: 1;\\n margin-bottom: 3px;\\n padding: 1px 0px 0px;\\n}\\n\\n.filter-label-date1 {\\n font: 12px Roboto;\\n letter-spacing: 0px;\\n color: #3c3c3c;\\n opacity: 1;\\n margin-bottom: 3px;\\n padding: 1px 0px 0px;\\n margin-left: 30px;\\n}\\n\\n.searchfilter {\\n width: 200px;\\n height: 30px;\\n margin-left: 10px;\\n font-size: 12px;\\n border: 0;\\n}\\n\\n.indicator1 {\\n margin-right: 10px;\\n padding: 5px;\\n font-size: 14px;\\n color: #2e3668;\\n cursor: pointer;\\n}\\n\\n.filter-margin {\\n margin-top: 20px;\\n}\\n\\n.kpicard-filter {\\n margin-top: 13px;\\n}\\n\\n.kpicard-button {\\n margin-top: 14px;\\n padding-left: 10px;\\n}\\n\\n.calender {\\n position: relative;\\n background: white;\\n margin-right: 30px;\\n}\\n\\n.calender input {\\n width: 95%;\\n border: 1px solid lightgray !important;\\n font-size: 12px;\\n height: 18px;\\n padding-left: 5px;\\n}\\n\\n.calander-btn {\\n position: absolute;\\n right: 6px;\\n top: 2px;\\n}\\n\\n.filterButton {\\n color: white !important;\\n background-color: #00457d;\\n height: 20px;\\n line-height: 10px;\\n margin-top: 18px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9jb21wb25lbnQvcHJzLWRhc2hib2FyZC9wcnMtZGFzaGJvYXJkLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnQvcHJzLWRhc2hib2FyZC9wcnMtZGFzaGJvYXJkLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0NBQUE7RUFDQSxpQkFBQTtBQ0NGOztBREVBLGtCQUFBOztBQUNBO0VBQ0Usa0JBQUE7RUFDQSxrQkFBQTtFQUNBLG9CQUFBO0FDQ0Y7O0FEQUU7RUFDRSxrQkFBQTtBQ0VKOztBREFFO0VBQ0Usd0JBQUE7QUNFSjs7QURFQTtFQUNFLG1CQUFBO0FDQ0Y7O0FERUE7RUFDRSxtQkFBQTtBQ0NGOztBREVBO0VBQ0UsZ0JBQUE7QUNDRjs7QURFQTtFQUNFLGlCQUFBO0FDQ0Y7O0FERUE7RUFDRSxXQUFBO0FDQ0Y7O0FERUE7RUFDRSxXQUFBO0VBQ0EsWUFBQTtFQUNBLDhCQUFBO0FDQ0Y7O0FERUE7RUFDRSxrQkFBQTtFQUNBLHlCQUFBO0VBQ0EsWUFBQTtFQUNBLCtHQUFBO0FDQ0Y7O0FER0U7RUFDRSxnQkFBQTtBQ0FKOztBREVFO0VBQ0UsZ0JBQUE7RUFDQSxnQkFBQTtBQ0FKOztBRElBO0VBQ0Usa0JBQUE7RUFDQSx5QkFBQTtFQUNBLFlBQUE7RUFDQSwrR0FBQTtBQ0RGOztBRElBO0VBQ0UsZ0JBQUE7QUNERjs7QURJQTtFQUNFLDBCQUFBO0VBQ0EsaUJBQUE7QUNERjs7QURJQTtFQUNFLDBCQUFBO0VBQ0EsaUJBQUE7QUNERjs7QURJQTtFQUNFLDBCQUFBO0VBQ0EsaUJBQUE7QUNERjs7QURJQTtFQUNFLDBCQUFBO0VBQ0EsV0FBQTtBQ0RGOztBRElBO0VBQ0UsY0FBQTtBQ0RGOztBRElBO0VBQ0UsY0FBQTtBQ0RGOztBRElBO0VBQ0UsY0FBQTtBQ0RGOztBRElBO0VBQ0UsY0FBQTtBQ0RGOztBRElBO0VBQ0UsY0FBQTtBQ0RGOztBRElBO0VBQ0Us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QTtFQUNFLGdCQUFBO0VBQ0Esa0JBQUE7QUNSRjs7QURXQTtFQUNFLGtCQUFBO0VBQ0EsaUJBQUE7RUFDQSxrQkFBQTtBQ1JGOztBRFVFO0VBQ0UsVUFBQTtFQUNBLHNDQUFBO0VBRUEsZUFBQTtFQUNBLFlBQUE7RUFDQSxpQkFBQTtBQ1RKOztBRGFBO0VBQ0Usa0JBQUE7RUFDQSxVQUFBO0VBQ0EsUUFBQTtBQ1ZGOztBRGFBO0VBQ0UsdUJBQUE7RUFDQSx5QkFBQTtFQUNBLFlBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBO0FDVkYiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnQvcHJzLWRhc2hib2FyZC9wcnMtZGFzaGJvYXJkLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLndvcmtpbmctYXJlYSB7XG4gIG1hcmdpbjogMHB4IDBweCAwcHggMHB4ICFpbXBvcnRhbnQ7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xufVxuXG4vKiBkYXNoYm9hcmQgY3NzICovXG4uZGFzaGJvYXJkIHtcbiAgcGFkZGluZy10b3A6IDEyMHB4O1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAyMHB4O1xuICBoMyB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC5ncnRoIHtcbiAgICBwYWRkaW5nOiA1cHggNXB4IDVweCAwcHg7XG4gIH1cbn1cblxuLnAtYi04IHtcbiAgcGFkZGluZy1ib3R0b206IDhweDtcbn1cblxuLnAtYi0zIHtcbiAgcGFkZGluZy1ib3R0b206IDNweDtcbn1cblxuLnAtdC01IHtcbiAgcGFkZGluZy10b3A6IDVweDtcbn1cblxuLnAtdC0xMyB7XG4gIHBhZGRpbmctdG9wOiAxM3B4O1xufVxuXG4ubS0wIHtcbiAgbWFyZ2luOiAwcHg7XG59XG5cbmhyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG9wYWNpdHk6IDAuNTtcbiAgbWFyZ2luLWJvdHRvbTogMTVweCAhaW1wb3J0YW50O1xufVxuXG4uZGV0YWlsLWNhcmQge1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIHBhZGRpbmc6IDVweDtcbiAgYm94LXNoYWRvdzogMCAycHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDFweCAxcHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDFweCAzcHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4uZGV0YWlsLWNhcmQge1xuICAuaGVhZC1jcmQge1xuICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gIH1cbiAgLmluZGljYXRvciB7XG4gICAgbWFyZ2luLWxlZnQ6IDBweDtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICB9XG59XG5cbi5kZXRhaWwtY2FyZDEge1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIHBhZGRpbmc6IDVweDtcbiAgYm94LXNoYWRvdzogMCAycHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDFweCAxcHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDFweCAzcHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4uZGV0YWlsLWNhcmQxIC5pbmRpY2F0b3Ige1xuICBtYXJnaW4tbGVmdDogNXB4O1xufVxuXG4uY291bnQge1xuICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5jb3VudDEge1xuICBmb250LXNpemU6IDE2cHggIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5jb3VudDIge1xuICBmb250LXNpemU6IDE4cHggIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbnAge1xuICBmb250LXNpemU6IDExcHggIWltcG9ydGFudDtcbiAgbWFyZ2luOiAzcHg7XG59XG5cbi5jb2xvci1yZWQge1xuICBjb2xvcjogI2U2NDI0Mztcbn1cblxuLmNvbG9yLW52LWJsdWUge1xuICBjb2xvcjogIzJlMzY2ODtcbn1cblxuLmNvbG9yLWxnLWJsdWUge1xuICBjb2xvcjogIzQ4MzRkNDtcbn1cblxuLmNvbG9yLWJsdWUge1xuICBjb2xvcjogIzU3NThiYjtcbn1cblxuLmNvbG9yLWxnLXNreSB7XG4gIGNvbG9yOiAjNTdhZWVmO1xufVxuXG4uY29sb3ItZC1za3kge1xuICBjb2xvcjogIzNmNzI5ZDtcbn1cblxuLmNvbG9yLWdybiB7XG4gIGNvbG9yOiAjNTRiMTU3O1xufVxuXG4uaW5kaWNhdG9yIHtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjMmUzNjY4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHBhZGRpbmc6IDVweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBjb2xvcjogIzJlMzY2ODtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubGFiZWwge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi8qIGNoYXJ0IGNzcyAqL1xuLmNoYXJ0LWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAwcHggIWltcG9ydGFudDtcbiAgcGFkZGluZzogMHB4IDEwcHggIWltcG9ydGFudDtcbn1cblxuLmRldGFpbC1jYXJkIDo6bmctZGVlcCAubWF0LXRhYi1sYWJlbCB7XG4gIGhlaWdodDogMjVweDtcbiAgcGFkZGluZzogMCA4cHg7XG4gIG1pbi13aWR0aDogOTVweDtcbiAgZm9udC1zaXplOiAxM3B4O1xufVxuXG4uY2hhcnRqcy1yZW5kZXItbW9uaXRvciB7XG4gIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xufVxuXG4vKiBjdXN0b20gY2FsZW5kZXIgKi9cbi5leGFtcGxlLW1vbnRoLXBpY2tlciAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b24ge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmV4YW1wbGUtbW9udGgtcGlja2VyIC5tYXQtY2FsZW5kYXItYXJyb3cge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZGF0ZUZpZWxkIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5oZWFkaW5nIHtcbiAgLyogcGFkZGluZy10b3A6IDIwcHg7ICovXG4gIC8vIGZvbnQtc2l6ZTogMTZweDtcbiAgLy8gZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIC8vIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLy8gbWFyZ2luLXRvcDogMTlweDtcbiAgLmluZGljYXRvciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDEzNXB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgcGFkZGluZzogNHB4O1xuICAgIGJvdHRvbTogMjJweDtcbiAgfVxufVxuXG4uaGVhZGluZzEge1xuICAvKiBwYWRkaW5nLXRvcDogMjBweDsgKi9cbiAgLy8gZm9udC1zaXplOiAxNnB4O1xuICAvLyBmb250LXdlaWdodDogYm9sZDtcbiAgLy8gcG9zaXRpb246IHJlbGF0aXZlO1xuICAvLyBtYXJnaW4tdG9wOiAxOXB4O1xuICAuaW5kaWNhdG9yIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMTcwcHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBwYWRkaW5nOiA0cHg7XG4gICAgYm90dG9tOiAyMnB4O1xuICB9XG59XG5cbi5hbGVydCB7XG4gIC8qIHBhZGRpbmctdG9wOiAyMHB4OyAqL1xuICBmb250LXNpemU6IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKiBjdXN0b20gbWF0LXNlbGVjdCAqL1xuI2RhdGVGaWVsZCA6Om5nLWRlZXAgaW5wdXQubWF0LWlucHV0LWVsZW1lbnQge1xuICBtYXJnaW4tdG9wOiAzcHg7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xuICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcbn1cblxuI2RhdGVGaWVsZCA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCB7XG4gIHJpZ2h0OiAwcHg7XG4gIHRvcDogMHB4O1xufVxuXG4jZGF0ZUZpZWxkIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQge1xuICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcbn1cblxuI2RhdGVGaWVsZCA6Om5nLWRlZXAgLm1hdC1kYXRlcGlja2VyLXRvZ2dsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDBweDtcbiAgdG9wOiAtMTZweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgcGFkZGluZzogMDtcbiAgaGVpZ2h0OiAyMHB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkIHtcbiAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdCB7XG4gIHBhZGRpbmc6IDNweCAwcHg7XG4gIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gIHBhZGRpbmctbGVmdDogOHB4O1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgd2lkdGg6IDkwJTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIHtcbiAgdG9wOiAwO1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0b3A6IDA7XG4gIG1hcmdpbi10b3A6IDNweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5maWx0ZXIyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBwYWRkaW5nOiAwO1xuICBoZWlnaHQ6IDIwcHg7XG4gIG1hcmdpbi1sZWZ0OiAzMHB4O1xufVxuXG4uZmlsdGVyMjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZCB7XG4gIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xufVxuXG4uZmlsdGVyMjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0IHtcbiAgcGFkZGluZzogM3B4IDBweDtcbiAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5maWx0ZXIyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gIHBhZGRpbmctbGVmdDogOHB4O1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmZpbHRlcjIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gIHdpZHRoOiA5MCU7XG59XG5cbi5maWx0ZXIyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIge1xuICB0b3A6IDA7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZmlsdGVyMjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRvcDogMDtcbiAgbWFyZ2luLXRvcDogM3B4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xuICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcbn1cblxuLmZpbHRlcjM6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBwYWRkaW5nOiAwO1xuICBoZWlnaHQ6IDIwcHg7XG4gIHdpZHRoOiAxMjBweCAhaW1wb3J0YW50O1xuICBtYXJnaW4tdG9wOiAxOHB4O1xufVxuXG4uZmlsdGVyMyA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkIHtcbiAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5maWx0ZXIzIDo6bmctZGVlcCAubWF0LXNlbGVjdCB7XG4gIHBhZGRpbmc6IDNweCAwcHg7XG4gIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xufVxuXG4uZmlsdGVyMyA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gIHBhZGRpbmctbGVmdDogOHB4O1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmZpbHRlcjMgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5maWx0ZXIzIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gIHRvcDogMDtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMyA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjMgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZmlsdGVyMyA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdG9wOiAwO1xuICBtYXJnaW4tdG9wOiAzcHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogYm9sZCAhaW1wb3J0YW50O1xufVxuXG4uZmlsdGVyNDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIHBhZGRpbmc6IDA7XG4gIGhlaWdodDogMjBweDtcbiAgd2lkdGg6IDE2MHB4ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi10b3A6IDE4cHg7XG59XG5cbi5maWx0ZXI0IDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQge1xuICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcbn1cblxuLmZpbHRlcjQgOjpuZy1kZWVwIC5tYXQtc2VsZWN0IHtcbiAgcGFkZGluZzogM3B4IDBweDtcbiAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5maWx0ZXI0IDo6bmctZGVlcCAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uZmlsdGVyNCA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdmFsdWUge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmZpbHRlcjQgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIHtcbiAgdG9wOiAwO1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXI0IDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyNCA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5maWx0ZXI0IDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0b3A6IDA7XG4gIG1hcmdpbi10b3A6IDNweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkICFpbXBvcnRhbnQ7XG59XG5cbi5maWx0ZXItbGFiZWwge1xuICBmb250OiBCb2xkIDE0cHggUm9ib3RvO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICBjb2xvcjogIzNjM2MzYztcbiAgb3BhY2l0eTogMTtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuLmRhdGVGaWx0ZXIge1xuICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIHBhZGRpbmc6IDA7XG4gIGhlaWdodDogMjBweDtcbn1cblxuLyoga3BpIGNzcyAqL1xuLmtwaSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZGVkZWQ7XG4gIHBhZGRpbmctdG9wOiAxMDVweDtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgLyogaDMge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuICAgIC5oZWFkaW5nIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIH0gKi9cbn1cblxuLmtwaS1jaGFydCB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBwYWRkaW5nOiA1cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLyogLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgICAgIHBhZGRpbmc6IDBweCAxMHB4O1xuICAgIH0gKi9cbiAgLyogLmNoYXJ0anMtcmVuZGVyLW1vbml0b3Ige1xuICAgICAgICBoZWlnaHQ6IDYwcHggIWltcG9ydGFudDtcbiAgICB9ICovXG59XG5cbi5rcGktY2hydC1oZWFkIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW46IDBweDtcbiAgLyogLmhlYWRpbmcta3BpIHtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBjb2xvcjogYmxhY2s7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIHBhZGRpbmctdG9wOiA1cHg7XG4gICAgfSAqL1xuICAvKiAuc3RhdGUge1xuICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICAgIH0gKi9cbn1cblxuLmZpbHRlci1sYWJlbC1kYXRlIHtcbiAgZm9udDogMTJweCBSb2JvdG87XG4gIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gIGNvbG9yOiAjM2MzYzNjO1xuICBvcGFjaXR5OiAxO1xuICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gIHBhZGRpbmc6IDFweCAwcHggMHB4O1xufVxuXG4uZmlsdGVyLWxhYmVsLWRhdGUxIHtcbiAgZm9udDogMTJweCBSb2JvdG87XG4gIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gIGNvbG9yOiAjM2MzYzNjO1xuICBvcGFjaXR5OiAxO1xuICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gIHBhZGRpbmc6IDFweCAwcHggMHB4O1xuICBtYXJnaW4tbGVmdDogMzBweDtcbn1cblxuLnNlYXJjaGZpbHRlciB7XG4gIHdpZHRoOiAyMDBweDtcbiAgaGVpZ2h0OiAzMHB4O1xuICBtYXJnaW4tbGVmdDogMTBweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBib3JkZXI6IDA7XG59XG5cbi5pbmRpY2F0b3IxIHtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICBwYWRkaW5nOiA1cHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgY29sb3I6ICMyZTM2Njg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmZpbHRlci1tYXJnaW4ge1xuICBtYXJnaW4tdG9wOiAyMHB4O1xufVxuXG4ua3BpY2FyZC1maWx0ZXIge1xuICBtYXJnaW4tdG9wOiAxM3B4O1xufVxuXG4ua3BpY2FyZC1idXR0b24ge1xuICBtYXJnaW4tdG9wOiAxNHB4O1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG59XG5cbi5jYWxlbmRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIG1hcmdpbi1yaWdodDogMzBweDtcblxuICBpbnB1dCB7XG4gICAgd2lkdGg6IDk1JTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXkgIWltcG9ydGFudDtcbiAgICAvLyAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBoZWlnaHQ6IDE4cHg7XG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gIH1cbn1cblxuLmNhbGFuZGVyLWJ0biB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDZweDtcbiAgdG9wOiAycHg7XG59XG5cbi5maWx0ZXJCdXR0b24ge1xuICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3ZDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBsaW5lLWhlaWdodDogMTBweDtcbiAgbWFyZ2luLXRvcDogMThweDtcbn1cbiIsIi53b3JraW5nLWFyZWEge1xuICBtYXJnaW46IDBweCAwcHggMHB4IDBweCAhaW1wb3J0YW50O1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcbn1cblxuLyogZGFzaGJvYXJkIGNzcyAqL1xuLmRhc2hib2FyZCB7XG4gIHBhZGRpbmctdG9wOiAxMjBweDtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbn1cbi5kYXNoYm9hcmQgaDMge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uZGFzaGJvYXJkIC5ncnRoIHtcbiAgcGFkZGluZzogNXB4IDVweCA1cHggMHB4O1xufVxuXG4ucC1iLTgge1xuICBwYWRkaW5nLWJvdHRvbTogOHB4O1xufVxuXG4ucC1iLTMge1xuICBwYWRkaW5nLWJvdHRvbTogM3B4O1xufVxuXG4ucC10LTUge1xuICBwYWRkaW5nLXRvcDogNXB4O1xufVxuXG4ucC10LTEzIHtcbiAgcGFkZGluZy10b3A6IDEzcHg7XG59XG5cbi5tLTAge1xuICBtYXJnaW46IDBweDtcbn1cblxuaHIge1xuICB3aWR0aDogMTAwJTtcbiAgb3BhY2l0eTogMC41O1xuICBtYXJnaW4tYm90dG9tOiAxNXB4ICFpbXBvcnRhbnQ7XG59XG5cbi5kZXRhaWwtY2FyZCB7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgcGFkZGluZzogNXB4O1xuICBib3gtc2hhZG93OiAwIDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMXB4IDFweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgMXB4IDNweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5kZXRhaWwtY2FyZCAuaGVhZC1jcmQge1xuICBtYXJnaW4tdG9wOiAxNXB4O1xufVxuLmRldGFpbC1jYXJkIC5pbmRpY2F0b3Ige1xuICBtYXJnaW4tbGVmdDogMHB4O1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuXG4uZGV0YWlsLWNhcmQxIHtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBwYWRkaW5nOiA1cHg7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDFweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMCAxcHggMXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAxcHggM3B4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLmRldGFpbC1jYXJkMSAuaW5kaWNhdG9yIHtcbiAgbWFyZ2luLWxlZnQ6IDVweDtcbn1cblxuLmNvdW50IHtcbiAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uY291bnQxIHtcbiAgZm9udC1zaXplOiAxNnB4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uY291bnQyIHtcbiAgZm9udC1zaXplOiAxOHB4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG5wIHtcbiAgZm9udC1zaXplOiAxMXB4ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogM3B4O1xufVxuXG4uY29sb3ItcmVkIHtcbiAgY29sb3I6ICNlNjQyNDM7XG59XG5cbi5jb2xvci1udi1ibHVlIHtcbiAgY29sb3I6ICMyZTM2Njg7XG59XG5cbi5jb2xvci1sZy1ibHVlIHtcbiAgY29sb3I6ICM0ODM0ZDQ7XG59XG5cbi5jb2xvci1ibHVlIHtcbiAgY29sb3I6ICM1NzU4YmI7XG59XG5cbi5jb2xvci1sZy1za3kge1xuICBjb2xvcjogIzU3YWVlZjtcbn1cblxuLmNvbG9yLWQtc2t5IHtcbiAgY29sb3I6ICMzZjcyOWQ7XG59XG5cbi5jb2xvci1ncm4ge1xuICBjb2xvcjogIzU0YjE1Nztcbn1cblxuLmluZGljYXRvciB7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgIzJlMzY2ODtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBwYWRkaW5nOiA1cHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgY29sb3I6ICMyZTM2Njg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmxhYmVsIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4vKiBjaGFydCBjc3MgKi9cbi5jaGFydC1jb250YWluZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMHB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDBweCAxMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5kZXRhaWwtY2FyZCA6Om5nLWRlZXAgLm1hdC10YWItbGFiZWwge1xuICBoZWlnaHQ6IDI1cHg7XG4gIHBhZGRpbmc6IDAgOHB4O1xuICBtaW4td2lkdGg6IDk1cHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbn1cblxuLmNoYXJ0anMtcmVuZGVyLW1vbml0b3Ige1xuICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cblxuLyogY3VzdG9tIGNhbGVuZGVyICovXG4uZXhhbXBsZS1tb250aC1waWNrZXIgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5leGFtcGxlLW1vbnRoLXBpY2tlciAubWF0LWNhbGVuZGFyLWFycm93IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmRhdGVGaWVsZCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uaGVhZGluZyB7XG4gIC8qIHBhZGRpbmctdG9wOiAyMHB4OyAqL1xufVxuLmhlYWRpbmcgLmluZGljYXRvciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogMTM1cHg7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIHBhZGRpbmc6IDRweDtcbiAgYm90dG9tOiAyMnB4O1xufVxuXG4uaGVhZGluZzEge1xuICAvKiBwYWRkaW5nLXRvcDogMjBweDsgKi9cbn1cbi5oZWFkaW5nMSAuaW5kaWNhdG9yIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAxNzBweDtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgcGFkZGluZzogNHB4O1xuICBib3R0b206IDIycHg7XG59XG5cbi5hbGVydCB7XG4gIC8qIHBhZGRpbmctdG9wOiAyMHB4OyAqL1xuICBmb250LXNpemU6IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKiBjdXN0b20gbWF0LXNlbGVjdCAqL1xuI2RhdGVGaWVsZCA6Om5nLWRlZXAgaW5wdXQubWF0LWlucHV0LWVsZW1lbnQge1xuICBtYXJnaW4tdG9wOiAzcHg7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xuICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcbn1cblxuI2RhdGVGaWVsZCA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCB7XG4gIHJpZ2h0OiAwcHg7XG4gIHRvcDogMHB4O1xufVxuXG4jZGF0ZUZpZWxkIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQge1xuICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcbn1cblxuI2RhdGVGaWVsZCA6Om5nLWRlZXAgLm1hdC1kYXRlcGlja2VyLXRvZ2dsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDBweDtcbiAgdG9wOiAtMTZweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgcGFkZGluZzogMDtcbiAgaGVpZ2h0OiAyMHB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkIHtcbiAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdCB7XG4gIHBhZGRpbmc6IDNweCAwcHg7XG4gIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gIHBhZGRpbmctbGVmdDogOHB4O1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgd2lkdGg6IDkwJTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIHtcbiAgdG9wOiAwO1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0b3A6IDA7XG4gIG1hcmdpbi10b3A6IDNweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5maWx0ZXIyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBwYWRkaW5nOiAwO1xuICBoZWlnaHQ6IDIwcHg7XG4gIG1hcmdpbi1sZWZ0OiAzMHB4O1xufVxuXG4uZmlsdGVyMjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZCB7XG4gIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xufVxuXG4uZmlsdGVyMjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0IHtcbiAgcGFkZGluZzogM3B4IDBweDtcbiAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5maWx0ZXIyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gIHBhZGRpbmctbGVmdDogOHB4O1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmZpbHRlcjIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gIHdpZHRoOiA5MCU7XG59XG5cbi5maWx0ZXIyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIge1xuICB0b3A6IDA7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZmlsdGVyMjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRvcDogMDtcbiAgbWFyZ2luLXRvcDogM3B4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xuICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcbn1cblxuLmZpbHRlcjM6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBwYWRkaW5nOiAwO1xuICBoZWlnaHQ6IDIwcHg7XG4gIHdpZHRoOiAxMjBweCAhaW1wb3J0YW50O1xuICBtYXJnaW4tdG9wOiAxOHB4O1xufVxuXG4uZmlsdGVyMyA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkIHtcbiAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5maWx0ZXIzIDo6bmctZGVlcCAubWF0LXNlbGVjdCB7XG4gIHBhZGRpbmc6IDNweCAwcHg7XG4gIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xufVxuXG4uZmlsdGVyMyA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gIHBhZGRpbmctbGVmdDogOHB4O1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmZpbHRlcjMgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5maWx0ZXIzIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gIHRvcDogMDtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMyA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjMgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZmlsdGVyMyA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdG9wOiAwO1xuICBtYXJnaW4tdG9wOiAzcHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogYm9sZCAhaW1wb3J0YW50O1xufVxuXG4uZmlsdGVyNDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIHBhZGRpbmc6IDA7XG4gIGhlaWdodDogMjBweDtcbiAgd2lkdGg6IDE2MHB4ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi10b3A6IDE4cHg7XG59XG5cbi5maWx0ZXI0IDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQge1xuICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcbn1cblxuLmZpbHRlcjQgOjpuZy1kZWVwIC5tYXQtc2VsZWN0IHtcbiAgcGFkZGluZzogM3B4IDBweDtcbiAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5maWx0ZXI0IDo6bmctZGVlcCAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uZmlsdGVyNCA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdmFsdWUge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmZpbHRlcjQgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIHtcbiAgdG9wOiAwO1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXI0IDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyNCA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5maWx0ZXI0IDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0b3A6IDA7XG4gIG1hcmdpbi10b3A6IDNweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkICFpbXBvcnRhbnQ7XG59XG5cbi5maWx0ZXItbGFiZWwge1xuICBmb250OiBCb2xkIDE0cHggUm9ib3RvO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICBjb2xvcjogIzNjM2MzYztcbiAgb3BhY2l0eTogMTtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuXG4uZGF0ZUZpbHRlciB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgcGFkZGluZzogMDtcbiAgaGVpZ2h0OiAyMHB4O1xufVxuXG4vKiBrcGkgY3NzICovXG4ua3BpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VkZWRlZDtcbiAgcGFkZGluZy10b3A6IDEwNXB4O1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAyMHB4O1xuICAvKiBoMyB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG4gICAgLmhlYWRpbmcge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgfSAqL1xufVxuXG4ua3BpLWNoYXJ0IHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIHBhZGRpbmc6IDVweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICAvKiAuY2hhcnQtY29udGFpbmVyIHtcbiAgICAgICAgcGFkZGluZzogMHB4IDEwcHg7XG4gICAgfSAqL1xuICAvKiAuY2hhcnRqcy1yZW5kZXItbW9uaXRvciB7XG4gICAgICAgIGhlaWdodDogNjBweCAhaW1wb3J0YW50O1xuICAgIH0gKi9cbn1cblxuLmtwaS1jaHJ0LWhlYWQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbjogMHB4O1xuICAvKiAuaGVhZGluZy1rcGkge1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGNvbG9yOiBibGFjaztcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcbiAgICB9ICovXG4gIC8qIC5zdGF0ZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgfSAqL1xufVxuXG4uZmlsdGVyLWxhYmVsLWRhdGUge1xuICBmb250OiAxMnB4IFJvYm90bztcbiAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgY29sb3I6ICMzYzNjM2M7XG4gIG9wYWNpdHk6IDE7XG4gIG1hcmdpbi1ib3R0b206IDNweDtcbiAgcGFkZGluZzogMXB4IDBweCAwcHg7XG59XG5cbi5maWx0ZXItbGFiZWwtZGF0ZTEge1xuICBmb250OiAxMnB4IFJvYm90bztcbiAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgY29sb3I6ICMzYzNjM2M7XG4gIG9wYWNpdHk6IDE7XG4gIG1hcmdpbi1ib3R0b206IDNweDtcbiAgcGFkZGluZzogMXB4IDBweCAwcHg7XG4gIG1hcmdpbi1sZWZ0OiAzMHB4O1xufVxuXG4uc2VhcmNoZmlsdGVyIHtcbiAgd2lkdGg6IDIwMHB4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGJvcmRlcjogMDtcbn1cblxuLmluZGljYXRvcjEge1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gIHBhZGRpbmc6IDVweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBjb2xvcjogIzJlMzY2ODtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uZmlsdGVyLW1hcmdpbiB7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG59XG5cbi5rcGljYXJkLWZpbHRlciB7XG4gIG1hcmdpbi10b3A6IDEzcHg7XG59XG5cbi5rcGljYXJkLWJ1dHRvbiB7XG4gIG1hcmdpbi10b3A6IDE0cHg7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbn1cblxuLmNhbGVuZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgbWFyZ2luLXJpZ2h0OiAzMHB4O1xufVxuLmNhbGVuZGVyIGlucHV0IHtcbiAgd2lkdGg6IDk1JTtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5ICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgaGVpZ2h0OiAxOHB4O1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbn1cblxuLmNhbGFuZGVyLWJ0biB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDZweDtcbiAgdG9wOiAycHg7XG59XG5cbi5maWx0ZXJCdXR0b24ge1xuICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3ZDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBsaW5lLWhlaWdodDogMTBweDtcbiAgbWFyZ2luLXRvcDogMThweDtcbn0iXX0= */\"","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from '../../core/service/common-service/common.service'\nimport { MomentDateAdapter, MAT_MOMENT_DATE_ADAPTER_OPTIONS } from '@angular/material-moment-adapter';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE, MatOption } from '@angular/material/core';\nimport { MatDatepicker } from '@angular/material/datepicker';\nimport { DatePipe } from '@angular/common';\nimport * as _moment from 'moment';\n// tslint:disable-next-line:no-duplicate-imports\nimport { default as _rollupMoment, Moment } from 'moment';\nimport { FormControl } from '@angular/forms';\nimport { identity } from 'rxjs';\nimport { ChartDataSets, ChartOptions, ChartType } from 'chart.js';\nimport { Label } from 'ng2-charts';\n\nconst moment = _rollupMoment || _moment;\n\nexport const MY_FORMATS = {\n parse: {\n dateInput: 'MMM/YYYY',\n },\n display: {\n dateInput: 'MMM/YYYY',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n },\n};\n\n@Component({\n selector: 'app-prs-dashboard',\n templateUrl: './prs-dashboard.component.html',\n styleUrls: ['./prs-dashboard.component.scss'],\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS]\n },\n\n { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },\n ]\n})\nexport class PrsDashboardComponent implements OnInit {\n\n uniqueWorkshopCard: string[] = [];\n uniqueWorkshopCardCopy: string[] = [];\n filtersWorkshop: any = [];\n filtersCre: string[] = [];\n spinner: boolean;\n fromDate: Date = new Date();\n toDate: Date = new Date();\n selectedWorkShop: string[] = [];\n selectedDealer: any;\n uniqueWorkshop: string[] = [];\n uniqueWorkshopCopy: string[] = [];\n dealerCode: string[] = [];\n selectedCre: string[] = [];\n selectedCreCode: any;\n filtersCreCopy: string[] = [];\n creCode: string[] = [];\n userId: string;\n userInfo: any;\n selectedDashboard: any\n availableDashboard: string[] = [];\n defaultLabel: string;\n showLabel: boolean;\n showPrsLabel: boolean;\n allocated: any = {};\n attempted: any = {};\n notAttempted: any = {};\n contacted: any = {};\n notContacted: any = {};\n selectedDate: any;\n date = new FormControl(moment());\n prsRoleId: string=\"\";\n roleId: any=\"\";\n minDate: any = new Date();\n maxDate: any = new Date();\n contactedLanguageBarrier: any = {};\n contactedFollowUp: any = {};\n contactedFullFeedback: any = {};\n contactedSystemRemoved: any = {};\n contactedPartialFeedback: any = {};\n contactedNoFeedback: any = {};\n percContacted: any = {};\n percFeedback: any = {};\n updateChart: boolean;\n prsTopScore: any = {};\n percDealerSatisfied: any = {};\n percDealerDissatisfied: any = {};\n percBothDissatisfied: any = {};\n percBothSatisfied: any = {};\n dlrPrsTopScore: any = {};\n\n //horizontalBarChart1 horizontalBar start\n public horizontalBarChart1Options: ChartOptions = {\n responsive: true,\n title: { display: false },\n tooltips: {\n enabled: false,\n mode: 'single',\n position: 'nearest',\n caretSize: 2,\n bodyAlign: 'center',\n titleAlign: 'center',\n titleFontSize: 11,\n titleFontStyle: 'normal',\n bodyFontSize: 11,\n bodyFontStyle: 'normal'\n },\n scales: {\n xAxes: [{\n display: false, ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n yAxes: [{\n display: false, ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n }\n };\n public horizontalBarChart1Labels: Label[] = ['Attempted'];\n public horizontalBarChartType: ChartType = 'horizontalBar';\n public horizontalBarChartLegend = false;\n public horizontalBarChartPlugins = [];\n public horizontalBarChart1Data: ChartDataSets[] = [];\n //horizontalBarChart1 horizontalBar end\n\n //horizontalBarChart2 horizontalBar start\n public horizontalBarChart2Labels: Label[] = ['Connected'];\n public horizontalBarChart2Options: ChartOptions = {\n responsive: true,\n title: { display: false },\n tooltips: {\n enabled: false,\n mode: 'single',\n position: 'nearest',\n caretSize: 2,\n bodyAlign: 'center',\n titleAlign: 'center',\n titleFontSize: 11,\n titleFontStyle: 'normal',\n bodyFontSize: 11,\n bodyFontStyle: 'normal'\n },\n scales: {\n xAxes: [{\n display: false, ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n yAxes: [{\n display: false, ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n }\n };\n public horizontalBarChart2Data: ChartDataSets[] = [];\n //horizontalBarChart2 horizontalBar end\n\n //horizontalBarChart3 horizontalBar start\n public horizontalBarChart3Labels: Label[] = ['Feedback'];\n public horizontalBarChart3Options: ChartOptions = {\n responsive: true,\n title: { display: false },\n tooltips: {\n enabled: false,\n mode: 'single',\n position: 'nearest',\n caretSize: 2,\n bodyAlign: 'center',\n titleAlign: 'center',\n titleFontSize: 11,\n titleFontStyle: 'normal',\n bodyFontSize: 11,\n bodyFontStyle: 'normal'\n },\n scales: {\n xAxes: [{\n display: false, ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n yAxes: [{\n display: false, ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n }\n };\n public horizontalBarChart3Data: ChartDataSets[] = [];\n //horizontalBarChart3 horizontalBar end\n\n //horizontalBarChart4 horizontalBar start\n public horizontalBarChart4Options: ChartOptions = {\n responsive: true,\n title: { display: false },\n tooltips: {\n enabled: true,\n mode: 'single',\n position: 'nearest',\n caretSize: 2,\n bodyAlign: 'center',\n titleAlign: 'center',\n displayColors: false,\n titleFontSize: 11,\n titleFontStyle: 'normal',\n bodyFontSize: 11,\n bodyFontStyle: 'normal'\n },\n scales: {\n xAxes: [{\n display: false, ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n yAxes: [{\n display: true,\n gridLines: { display: false },\n scaleLabel: { display: true },\n ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n }\n };\n public horizontalBarChart4Labels: Label[] = [\n '% Dissatisfied in Dealer PRS',\n \"% Satisfied in Dealer PRS\",\n \"% Both dissatisfied\",\n \"% Both Satisfied\",\n ];\n public horizontalBarChart4Data: ChartDataSets[] = [];\n //horizontalBarChart4 horizontalBar end\n today: any=new Date();\n noResponse: any = {};\n busy: any = {};\n switchOff: any = {};\n invalid: any = {};\n others: any = {};\n updateChartCard: boolean = false;\n\n //barChart1 VerticalBar start\n public barChart1Options: ChartOptions = {\n responsive: true,\n title: {\n display: true,\n text: 'Not Contacted Reason',\n position: 'top',\n fontSize: 13\n },\n tooltips: {\n enabled: true,\n mode: 'single',\n position: 'nearest',\n caretSize: 2,\n bodyAlign: 'center',\n titleAlign: 'center',\n displayColors: false,\n titleFontSize: 11,\n titleFontStyle: 'normal',\n bodyFontSize: 11,\n bodyFontStyle: 'normal'\n },\n scales: {\n xAxes: [{\n display: true,\n gridLines: {\n display: false,\n },\n scaleLabel: {\n display: true,\n },\n ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n yAxes: [{\n display: false,\n ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n }\n };\n public barChart1Labels: Label[] = ['No Response', 'Busy', 'Switched Off', 'Invalid No.', 'Others'];\n public barChart1Type: ChartType = 'bar';\n public barChart1Legend = false;\n public barChart1Plugins = [];\n public barChart1Data: ChartDataSets[] = [];\n //barChart1 VerticalBar end\n\n public horizontalBarChart5Options: ChartOptions = {\n responsive: true,\n title: { display: false },\n tooltips: {\n enabled: true,\n mode: 'single',\n position: 'nearest',\n caretSize: 2,\n bodyAlign: 'center',\n titleAlign: 'center',\n displayColors: false,\n titleFontSize: 11,\n titleFontStyle: 'normal',\n bodyFontSize: 11,\n bodyFontStyle: 'normal'\n },\n scales: {\n xAxes: [{\n display: false, ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n yAxes: [{\n display: true,\n gridLines: { display: false },\n scaleLabel: { display: true },\n ticks: {\n beginAtZero: true,\n fontSize: 11\n }\n }],\n }\n };\n public horizontalBarChart5Labels: Label[] = [\n 'Feedback already shared',\n \"Vehicle not tested yet\",\n \"Service not done yet\",\n \"Customer Disconnect The Call (After Pick)\",\n \"Customer Not Interested\",\n \"Incorrect Contact Details\",\n \"Left the job\",\n \"Vehicle Returned to showroom\"\n ];\n public horizontalBarChart5Data: ChartDataSets[] = [];\n feedbackShared: any={};\n vehicleNotTested: any={};\n serviceNotDone: any={};\n callDisconnect: any={};\n notInterested: any={};\n wrongDetail: any={};\n leftJob: any={};\n vehicleReturn: any={};\n percCallAttempted: any={};\n\n\n constructor(private commonService: CommonService, private toastr: ToastrService, private router: Router, private datePipe : DatePipe) {\n\n\n }\n\n ngOnInit() {\n\n this.prsRoleId=\"1\";\n this.roleId=localStorage.getItem('roleId')\n\n if(this.roleId==\"1\"||this.roleId==\"15\"){\n this.selectedDashboard=\"Dealer Prs Dashboard\"\n }\n this.availableDashboard=[];\n if(this.roleId == \"1\"){\n this.showLabel=true;\n this.showPrsLabel=true;\n this.availableDashboard.push(\"SRM Dashboard\")\n }\n if(this.roleId == \"12\"){\n this.showLabel=true;\n this.availableDashboard.push(\"Dashboard\")\n }\n if(this.roleId == \"15\"){\n this.defaultLabel=\"Dealer Prs Dashboard\"\n this.availableDashboard.push(\"SRM Dashboard\",\"Call Center Prs Dashboard\");\n }\n let userInfo = JSON.parse(localStorage.getItem('userInfo')!);\n this.userInfo = userInfo[0];\n this.userId = localStorage.getItem(\"userId\")!;\n\n this.filterDashboard();\n\n }\n\n onKeyWorkshop() : void {\n this.uniqueWorkshop = this.uniqueWorkshopCopy;\n this.dealerCode = [];\n this.selectedDealer = this.selectedDealer.trim();\n this.dealerCode = this.uniqueWorkshop.filter(item =>\n item.toLowerCase().includes(this.selectedDealer.toLowerCase())\n );\n this.dealerCode.forEach(element => {\n let index = this.uniqueWorkshopCopy.findIndex((ele) => {return ele == element});\n if(index != -1) {\n this.uniqueWorkshopCopy.splice(index, 1);\n }\n this.uniqueWorkshopCopy.unshift(element);\n })\n if(this.dealerCode.length > 0) {\n this.closeInput();\n }\n this.uniqueWorkshop = [];\n this.uniqueWorkshop = this.uniqueWorkshopCopy;\n }\n\n closeInput() : void {\n if(this.dealerCode.length == 0) {\n this.selectedDealer = '';\n this.uniqueWorkshop = this.uniqueWorkshopCopy;\n }\n }\n\n onKeyCRE() : void {\n this.filtersCre = this.filtersCreCopy;\n this.creCode = [];\n this.selectedCreCode = this.selectedCreCode.trim();\n this.creCode = this.filtersCre.filter(item =>\n item.toLowerCase().includes(this.selectedCreCode.toLowerCase())\n );\n this.creCode.forEach(element => {\n let index = this.filtersCreCopy.findIndex((ele) => {return ele == element});\n if(index != -1) {\n this.filtersCreCopy.splice(index, 1);\n }\n this.filtersCreCopy.unshift(element);\n })\n if(this.creCode.length > 0) {\n this.closeInputCre();\n }\n this.filtersCre = [];\n this.filtersCre = this.filtersCreCopy;\n }\n\n closeInputCre() : void {\n if(this.creCode.length == 0) {\n this.selectedCreCode = '';\n this.filtersCre = this.filtersCreCopy;\n }\n }\n\n dashboardSelection(){\n if(this.selectedDashboard == 'SRM Dashboard'){\n this.prsRoleId='15'\n this.router.navigate(['dashboard']);\n }\n if(this.selectedDashboard == 'Call Center Prs Dashboard'){\n this.availableDashboard.pop();\n this.availableDashboard.push(\"Dealer Prs Dashboard\");\n this.defaultLabel=\"Call Center Dashboard\";\n this.prsRoleId='12';\n this.router.navigate([\"prs-dashboard\"])\n }\n if(this.selectedDashboard == 'Dealer Prs Dashboard'){\n this.availableDashboard.pop();\n this.availableDashboard.push(\"Call Center Prs Dashboard\");\n this.defaultLabel=\"Dealer Prs Dashboard\";\n this.prsRoleId='1';\n this.router.navigate([\"prs-dashboard\"])\n }\n this.reset();\n\n }\n\n reset() {\n this.selectedCre = [];\n this.selectedWorkShop = [];\n let date = moment(this.maxDate);\n this.date.setValue(date);\n this.today = new Date();\n this.toDate = new Date();\n this.fromDate = new Date();\n this.resetDashboard();\n if(this.prsRoleId=='1'||this.prsRoleId=='12')\n this.filterDashboard();\n }\n\n filterDashboard(): void {\n this.spinner = true;\n let workshopSet = new Set();\n let workshopCardSet = new Set();\n let roleId;\n if(this.prsRoleId=='12'){\n roleId='12';\n }\n else{\n roleId='15';\n }\n this.commonService.prsFilterDashboard(this.userInfo.userId,roleId).subscribe(\n res => {\n if (res[\"responseCode\"] == 0) {\n this.filtersWorkshop = [];\n this.filtersCre = [];\n res['responseData'].forEach(element => {\n let workshopCode = element.workshop.split(\" - \")[0];\n let workshop = { id: element.id, workshopCode: workshopCode, workshop: element.workshop };\n let cre = element.creId;\n this.filtersWorkshop.push(workshop);\n workshopSet.add(workshop.workshop);\n workshopCardSet.add(workshop.workshop);\n if (!this.filtersCre.includes(cre)&& cre!=null) {\n this.filtersCre.push(cre);\n }\n });\n this.selectedDate = this.datePipe.transform(this.date.value['_d'], \"MMM yy\");\n this.uniqueWorkshop = Array.from(workshopSet);\n this.uniqueWorkshopCard = Array.from(workshopCardSet);\n this.uniqueWorkshopCopy = this.uniqueWorkshop;\n this.uniqueWorkshopCardCopy = this.uniqueWorkshopCard;\n this.filtersCreCopy = this.filtersCre;\n this.getPrsDashboardLeadKpi();\n this.spinner = false;\n } else {\n this.spinner = false;\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n\n }\n\n\n resetDashboard(){\n this.allocated = {};\n this.attempted = {};\n this.notAttempted = {};\n this.contacted={};\n this.notContacted={};\n this.percContacted={};\n this.contactedLanguageBarrier={};\n this.contactedFollowUp={};\n this.contactedNoFeedback={};\n this.contactedPartialFeedback={};\n this.contactedFullFeedback={};\n this.contactedSystemRemoved={};\n this.percCallAttempted={}\n this.percFeedback={};\n this.dlrPrsTopScore={};\n this.prsTopScore={};\n this.horizontalBarChart1Data=[];\n this.horizontalBarChart2Data=[];\n this.horizontalBarChart3Data=[];\n this.resetResponseKpi();\n this.resetComparisonKpi();\n }\n\n resetComparisonKpi(){\n this.horizontalBarChart4Data=[];\n }\n\n resetResponseKpi(){\n this.barChart1Data=[];\n this.horizontalBarChart5Data = [];\n }\n\n getPrsDashboardLeadKpi(){\n this.spinner = true;\n let selectedCre = '';\n this.selectedCre.forEach((element, index) => {\n if (index == 0) {\n selectedCre = element;\n } else {\n selectedCre = selectedCre + ',' + element;\n }\n });\n let selectedWorkShop = '';\n this.selectedWorkShop.forEach((element, index) => {\n if (index == 0) {\n selectedWorkShop = element.split(\" - \")[0];\n } else {\n selectedWorkShop = selectedWorkShop + ',' + element.split(\" - \")[0];\n }\n });\n const request = {\n \"userId\": this.userInfo.userId,\n \"roleId\": this.userInfo.roleId,\n \"creId\": selectedCre || '',\n \"workshopCode\": selectedWorkShop || '',\n \"PrsRoleId\": this.prsRoleId,\n \"startDate\": this.datePipe.transform(this.fromDate, \"yyyy-MM-dd\").toString(),\n \"endDate\": this.datePipe.transform(this.toDate, \"yyyy-MM-dd\").toString()\n };\n this.resetDashboard();\n this.commonService.getPrsDashboardLeadKpi(request).subscribe(\n res => {\n if (res[\"responseCode\"] == 0) {\n this.selectedDate = this.datePipe.transform(this.date.value['_d'], \"MMM yy\");\n res[\"responseData\"].forEach(kpi => {\n if (kpi.actualVal) {\n kpi.actualVal = Math.round(kpi.actualVal * 100 + Number.EPSILON) / 100;\n }\n if (kpi.kpiCode == '001') {\n this.allocated = kpi;\n }\n if (kpi.kpiCode == '002') {\n this.attempted = kpi;\n }\n if (kpi.kpiCode == '003') {\n this.notAttempted = kpi;\n }\n if (kpi.kpiCode == '004') {\n this.contacted = kpi;\n }\n if (kpi.kpiCode == '005') {\n this.notContacted = kpi;\n }\n if (kpi.kpiCode == '006') {\n this.percCallAttempted = kpi;\n }\n if (kpi.kpiCode == '007') {\n this.percFeedback = kpi;\n }\n if (kpi.kpiCode == '008') {\n this.dlrPrsTopScore = kpi;\n }\n if (kpi.kpiCode == '009') {\n this.prsTopScore = kpi;\n }\n if (kpi.kpiCode == '010') {\n this.contactedLanguageBarrier = kpi;\n }\n if (kpi.kpiCode == '011') {\n this.contactedFollowUp = kpi;\n }\n if (kpi.kpiCode == '012') {\n this.contactedFullFeedback = kpi;\n }\n if (kpi.kpiCode == '013') {\n this.contactedPartialFeedback = kpi;\n }\n if (kpi.kpiCode == '014') {\n this.contactedNoFeedback = kpi;\n }\n if (kpi.kpiCode == '015') {\n this.contactedSystemRemoved = kpi;\n }\n if (kpi.kpiCode == '016') {\n this.percDealerDissatisfied = kpi;\n }\n if (kpi.kpiCode == '017') {\n this.percDealerSatisfied = kpi;\n }\n if (kpi.kpiCode == '018') {\n this.percBothDissatisfied = kpi;\n }\n if (kpi.kpiCode == '019') {\n this.percBothSatisfied = kpi;\n }\n if (kpi.kpiCode == '020') {\n this.percContacted = kpi;\n }\n this.spinner = false;\n });\n\n //horizontalBarChart1 start\n this.contacted.actualVal = this.contacted.actualVal || 0;\n this.notContacted.actualVal = this.notContacted.actualVal || 0;\n if (this.contacted.actualVal || this.notContacted.actualVal) {\n this.horizontalBarChart1Data = [\n {\n data: [this.contacted.actualVal],\n stack: 'a',\n label: 'Contacted',\n backgroundColor: 'rgb(46, 54, 104)',\n hoverBackgroundColor: 'rgb(46, 54, 104)',\n borderSkipped: 'chartArea',\n barPercentage: 0.5,\n barThickness: 12,\n maxBarThickness: 12,\n minBarLength: 2\n },\n {\n data: [this.notContacted.actualVal],\n stack: 'a',\n label: 'Not Contacted',\n backgroundColor: 'rgb(87, 174, 239)',\n hoverBackgroundColor: 'rgb(87, 174, 239)',\n borderSkipped: 'chartArea',\n barPercentage: 0.5,\n barThickness: 12,\n maxBarThickness: 12,\n minBarLength: 2\n }\n ];\n let max1 = this.contacted.actualVal + this.notContacted.actualVal;\n this.horizontalBarChart1Options.scales.xAxes[0].ticks.max = max1;\n this.horizontalBarChart1Options.scales.yAxes[0].ticks.max = max1;\n }\n //horizontalBarChart1 end\n\n //horizontalBarChart2 start\n this.contactedLanguageBarrier.actualVal = this.contactedLanguageBarrier.actualVal || 0;\n this.contactedFollowUp.actualVal = this.contactedFollowUp.actualVal || 0;\n this.contactedSystemRemoved.actualVal = this.contactedSystemRemoved.actualVal || 0;\n this.contactedFullFeedback.actualVal = this.contactedFullFeedback.actualVal || 0;\n this.contactedNoFeedback.actualVal = this.contactedNoFeedback.actualVal || 0;\n this.contactedPartialFeedback.actualVal = this.contactedPartialFeedback.actualVal || 0;\n let max2 = this.contactedLanguageBarrier.actualVal + this.contactedFollowUp.actualVal\n + this.contactedSystemRemoved.actualVal\n + this.contactedFullFeedback.actualVal + this.contactedNoFeedback.actualVal + this.contactedPartialFeedback.actualVal;\n if (max2) {\n this.horizontalBarChart2Options.scales.xAxes[0].ticks.max = max2;\n this.horizontalBarChart2Options.scales.yAxes[0].ticks.max = max2;\n this.horizontalBarChart2Data = [\n {\n data: [this.contactedLanguageBarrier.actualVal],\n stack: 'a',\n label: 'Language Barrier',\n backgroundColor: '#4834d4',\n hoverBackgroundColor: '#4834d4',\n borderSkipped: 'chartArea',\n barPercentage: 0.5,\n barThickness: 12,\n maxBarThickness: 12,\n minBarLength: 2\n },\n {\n data: [this.contactedFollowUp.actualVal],\n stack: 'a',\n label: 'Followup',\n backgroundColor: '#57aeef',\n hoverBackgroundColor: '#57aeef',\n borderSkipped: 'chartArea',\n barPercentage: 0.5,\n barThickness: 12,\n maxBarThickness: 12,\n minBarLength: 2\n },\n {\n data: [this.contactedSystemRemoved.actualVal],\n stack: 'a',\n label: 'System Closed',\n backgroundColor: '#5758bb',\n hoverBackgroundColor: '#5758bb',\n borderSkipped: 'chartArea',\n barPercentage: 0.5,\n barThickness: 12,\n maxBarThickness: 12,\n minBarLength: 2\n },\n {\n data: [this.contactedPartialFeedback.actualVal],\n stack: 'a',\n label: 'Partial Feedback',\n backgroundColor: '#00008B',\n hoverBackgroundColor: '#00008B',\n borderSkipped: 'chartArea',\n barPercentage: 0.5,\n barThickness: 12,\n maxBarThickness: 12,\n minBarLength: 2\n },\n {\n data: [this.contactedNoFeedback.actualVal],\n stack: 'a',\n label: 'No Feedback',\n backgroundColor: '#3f729d',\n hoverBackgroundColor: '#3f729d',\n borderSkipped: 'chartArea',\n barPercentage: 0.5,\n barThickness: 12,\n maxBarThickness: 12,\n minBarLength: 2\n },\n {\n data: [this.contactedFullFeedback.actualVal],\n stack: 'a',\n label: 'Full Feedback',\n backgroundColor: '#2e3668',\n hoverBackgroundColor: '#2e3668',\n borderSkipped: 'chartArea',\n barPercentage: 0.5,\n barThickness: 12,\n maxBarThickness: 12,\n minBarLength: 2\n }\n ];\n }\n //horizontalBarChart2 end\n\n //horizontalBarChart3 start\n this.dlrPrsTopScore.actualVal = this.dlrPrsTopScore.actualVal || 0;\n this.prsTopScore.actualVal = this.prsTopScore.actualVal || 0;\n let max3 = this.dlrPrsTopScore.actualVal + this.prsTopScore.actualVal;\n if (max3) {\n this.horizontalBarChart3Options.scales.xAxes[0].ticks.max = max3;\n this.horizontalBarChart3Options.scales.yAxes[0].ticks.max = max3;\n this.horizontalBarChart3Data = [\n {\n data: [this.dlrPrsTopScore.actualVal],\n stack: 'a',\n label: 'Active',\n backgroundColor: '#2e3668',\n hoverBackgroundColor: '#2e3668',\n borderSkipped: 'chartArea',\n barPercentage: 0.5,\n barThickness: 12,\n maxBarThickness: 12,\n minBarLength: 2\n },\n\n {\n data: [this.prsTopScore.actualVal],\n stack: 'a',\n label: 'No Service',\n backgroundColor: '#4834d4',\n hoverBackgroundColor: '#4834d4',\n borderSkipped: 'chartArea',\n barPercentage: 0.5,\n barThickness: 12,\n maxBarThickness: 12,\n minBarLength: 2\n },\n ];\n }\n //horizontalBarChart3 end\n this.getPrsDashboardResponseKpi(request);\n if(this.roleId!=\"12\"&&this.prsRoleId!=\"12\")\n this.getComparisonLead(request);\n this.updateChart = false\n\n }\n else {\n this.toastr.error(res[\"message\"])\n this.spinner = false\n this.updateChart = false\n }\n }, err => {\n this.spinner = false;\n this.updateChart = false\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n getComparisonLead(request) {\n let req=request;\n this.commonService.getPrsDashboardComparisonKpi(req).subscribe(\n res => {\n if (res[\"responseCode\"] == 0) {\n this.selectedDate = this.datePipe.transform(this.date.value['_d'], \"MMM yy\");\n res[\"responseData\"].forEach(kpi => {\n if (kpi.actualVal) {\n kpi.actualVal = Math.round(kpi.actualVal * 100 + Number.EPSILON) / 100;\n }\n if (kpi.kpiCode == '016') {\n this.percDealerDissatisfied = kpi;\n }\n if (kpi.kpiCode == '017') {\n this.percDealerSatisfied = kpi;\n }\n if (kpi.kpiCode == '018') {\n this.percBothDissatisfied = kpi;\n }\n if (kpi.kpiCode == '019') {\n this.percBothSatisfied = kpi;\n }\n this.spinner = false;\n });\n //horizontalBarChart4 start Rating Comparison\n this.percDealerDissatisfied.actualVal = this.percDealerDissatisfied.actualVal || 0;\n this.percDealerSatisfied.actualVal = this.percDealerSatisfied.actualVal || 0;\n this.percBothDissatisfied.actualVal = this.percBothDissatisfied.actualVal || 0;\n this.percBothSatisfied.actualVal = this.percBothSatisfied.actualVal || 0;\n let max4 = Math.max(this.percDealerDissatisfied.actualVal, this.percDealerSatisfied.actualVal, this.percBothDissatisfied.actualVal,\n this.percBothSatisfied.actualVal);\n if (max4) {\n this.horizontalBarChart4Options.scales.xAxes[0].ticks.max = max4 + 10;\n this.horizontalBarChart4Options.scales.yAxes[0].ticks.max = max4 + 10;\n this.horizontalBarChart4Data = [\n {\n data: [this.percDealerDissatisfied.actualVal, this.percDealerSatisfied.actualVal, this.percBothDissatisfied.actualVal,\n this.percBothSatisfied.actualVal],\n backgroundColor: 'rgb(46, 54, 104)',\n hoverBackgroundColor: 'rgb(46, 54, 104)',\n borderSkipped: 'chartArea',\n barPercentage: 0.5,\n barThickness: 10,\n }\n ];\n }\n //horizontalBarChart4 end\n this.spinner=false;\n this.updateChartCard = false;\n }\n else {\n this.toastr.error(res[\"message\"])\n this.spinner = false\n this.updateChartCard = false;\n }\n }, err => {\n this.spinner = false;\n this.updateChartCard = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n getPrsDashboardResponseKpi(request){\n let req=request;\n this.commonService.getPrsDashboardResponseKpi(req).subscribe(\n res => {\n if (res[\"responseCode\"] == 0) {\n this.selectedDate = this.datePipe.transform(this.date.value['_d'], \"MMM yy\");\n res[\"responseData\"].forEach(kpi => {\n if (kpi.actualVal) {\n kpi.actualVal = Math.round(kpi.actualVal * 100 + Number.EPSILON) / 100;\n }\n if (kpi.kpiCode == '205') {\n this.noResponse = kpi;\n }\n if (kpi.kpiCode == '206') {\n this.busy = kpi;\n }\n if (kpi.kpiCode == '207') {\n this.switchOff = kpi;\n }\n if (kpi.kpiCode == '208') {\n this.invalid = kpi;\n }\n if (kpi.kpiCode == '209') {\n this.others = kpi;\n }\n if (kpi.kpiCode == '318') {\n this.feedbackShared = kpi;\n }\n if (kpi.kpiCode == '319') {\n this.vehicleNotTested = kpi;\n }\n if (kpi.kpiCode == '320') {\n this.serviceNotDone = kpi;\n }\n if (kpi.kpiCode == '321') {\n this.callDisconnect = kpi;\n }\n if (kpi.kpiCode == '322') {\n this.notInterested = kpi;\n }\n if (kpi.kpiCode == '323') {\n this.wrongDetail = kpi;\n }\n if (kpi.kpiCode == '327') {\n this.leftJob = kpi;\n }\n if (kpi.kpiCode == '328') {\n this.vehicleReturn = kpi;\n }\n });\n //barChart1 start not connected reason\n this.noResponse.actualVal = this.noResponse.actualVal || 0;\n this.busy.actualVal = this.busy.actualVal || 0;\n this.switchOff.actualVal = this.switchOff.actualVal || 0;\n this.invalid.actualVal = this.invalid.actualVal || 0;\n this.others.actualVal = this.others.actualVal || 0;\n let maxNotConnected = Math.max(this.noResponse.actualVal, this.busy.actualVal, this.switchOff.actualVal, this.invalid.actualVal, this.others.actualVal);\n if (maxNotConnected) {\n this.barChart1Options.scales.xAxes[0].ticks.max = maxNotConnected;\n this.barChart1Options.scales.yAxes[0].ticks.max = maxNotConnected;\n this.barChart1Data = [\n {\n data: [this.noResponse.actualVal, this.busy.actualVal, this.switchOff.actualVal, this.invalid.actualVal, this.others.actualVal],\n backgroundColor: 'rgb(87, 174, 239)',\n hoverBackgroundColor: 'rgb(87, 174, 239)',\n borderSkipped: 'chartArea',\n barPercentage: 0.5,\n barThickness: 20,\n maxBarThickness: 20,\n minBarLength: 2\n }\n ];\n }\n //barChart1 end\n\n //horizontalBarChart5 start noservice booking\n this.feedbackShared.actualVal = this.feedbackShared.actualVal || 0;\n this.vehicleNotTested.actualVal = this.vehicleNotTested.actualVal || 0;\n this.serviceNotDone.actualVal = this.serviceNotDone.actualVal || 0;\n this.callDisconnect.actualVal = this.callDisconnect.actualVal || 0;\n this.notInterested.actualVal = this.notInterested.actualVal || 0;\n this.wrongDetail.actualVal = this.wrongDetail.actualVal || 0;\n this.leftJob.actualVal = this.leftJob.actualVal || 0;\n this.vehicleReturn.actualVal = this.vehicleReturn.actualVal || 0;\n let max5 = Math.max(this.feedbackShared.actualVal, this.vehicleNotTested.actualVal, this.serviceNotDone.actualVal,\n this.callDisconnect.actualVal, this.notInterested.actualVal, this.wrongDetail.actualVal,\n this.leftJob.actualVal,this.vehicleReturn.actualVal\n );\n if (max5) {\n this.horizontalBarChart5Options.scales.xAxes[0].ticks.max = max5 + 10;\n this.horizontalBarChart5Options.scales.yAxes[0].ticks.max = max5 + 10;\n this.horizontalBarChart5Data = [\n {\n data: [this.feedbackShared.actualVal, this.vehicleNotTested.actualVal, this.serviceNotDone.actualVal,\n this.callDisconnect.actualVal, this.notInterested.actualVal, this.wrongDetail.actualVal,\n this.leftJob.actualVal, this.vehicleReturn.actualVal\n ],\n backgroundColor: 'rgb(46, 54, 104)',\n hoverBackgroundColor: 'rgb(46, 54, 104)',\n borderSkipped: 'chartArea',\n barPercentage: 0.5,\n barThickness: 10,\n }\n ];\n }\n\n this.updateChartCard = false;\n this.spinner=false\n }\n else{\n this.updateChartCard = false;\n this.spinner=false\n }\n }, err => {\n this.spinner = false;\n this.updateChartCard = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n}","export default \".working-area {\\n margin-top: 115px;\\n}\\n\\n.call-stats-card-border1 {\\n border-style: solid solid solid solid;\\n border-width: 1px;\\n border-radius: 0%;\\n border-color: lightgray;\\n}\\n\\n.call-stats-card .mat-card-title {\\n margin-bottom: 0px;\\n}\\n\\n.filterdiv {\\n align-items: center;\\n}\\n\\n.filter-style {\\n width: 140px !important;\\n}\\n\\n.filter-label {\\n font: 12px Roboto;\\n letter-spacing: 0px;\\n color: #3c3c3c;\\n opacity: 1;\\n margin-bottom: 3px;\\n padding: 1px 0px 0px;\\n}\\n\\n.filter1 ::ng-deep .mat-select {\\n padding-bottom: 0px;\\n padding-top: 2px;\\n}\\n\\n.filter1 ::ng-deep .mat-button {\\n font-size: 12px;\\n font: white;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-infix {\\n border: 1px solid lightgray;\\n border-radius: 5px;\\n background: white;\\n padding-bottom: 0px;\\n font-size: 12px !important;\\n height: 21px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-trigger {\\n padding-left: 8px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-value {\\n width: 89%;\\n}\\n\\n.filter1 ::ng-deep .mat-select-arrow-wrapper {\\n padding-bottom: 0x;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label-wrapper {\\n top: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-underline {\\n display: none;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label {\\n top: 0;\\n margin-top: 6px !important;\\n padding-left: 5px;\\n}\\n\\n.filter1-input {\\n margin-top: 7px !important;\\n margin-left: 5px;\\n}\\n\\n.filter1 {\\n font-size: 12px;\\n}\\n\\n.filter2 {\\n width: auto;\\n}\\n\\n.calender {\\n position: relative;\\n background: white;\\n width: 140px;\\n margin-right: 10px !important;\\n}\\n\\n.calender input {\\n border: 1px solid lightgray !important;\\n border-radius: 5px;\\n font-size: 12px;\\n height: 24px;\\n padding-left: 5px;\\n width: 140px;\\n}\\n\\n.calander-btn {\\n position: absolute;\\n right: 0px;\\n top: 5px;\\n}\\n\\n.button-margin {\\n margin-left: 0px;\\n}\\n\\n.filterButton {\\n color: white !important;\\n background-color: #00457D;\\n height: 25px;\\n line-height: 10px;\\n margin-bottom: 1px;\\n padding-bottom: 2px;\\n}\\n\\n.example-card1 {\\n text-align: center;\\n display: block;\\n margin-left: auto;\\n margin-right: auto;\\n margin-bottom: 10px;\\n}\\n\\n.form-field label {\\n font-weight: 500;\\n margin-bottom: 0px;\\n}\\n\\n.form-field input {\\n padding-left: 7px;\\n padding-top: 3px;\\n}\\n\\n.table-border.mat-table {\\n border-style: none solid solid none;\\n border-color: lightgray;\\n}\\n\\n.columnHeader {\\n font: bold 12px Roboto;\\n letter-spacing: 0px;\\n color: #333333;\\n text-transform: capitalize;\\n}\\n\\n.columnvalue {\\n font-size: 11px !important;\\n position: relative;\\n}\\n\\n.cust-width {\\n width: 12%;\\n}\\n\\ntd.mat-cell,\\ntd.mat-footer-cell,\\nth.mat-header-cell {\\n padding: 3px;\\n border-style: solid none none solid;\\n border-width: 0.1px;\\n border-color: lightgray;\\n}\\n\\ntd.mat-cell,\\ntd.mat-footer-cell {\\n padding: 3px;\\n text-align: start;\\n}\\n\\nth.mat-header-cell {\\n padding: 3px;\\n text-align: end !important;\\n}\\n\\n.cont-width {\\n width: 107px;\\n}\\n\\n.cont-width1 {\\n width: 118px;\\n}\\n\\n.reg-width {\\n width: 130px;\\n}\\n\\n.che-width {\\n width: 110px;\\n}\\n\\n.delName-width {\\n width: 141px;\\n}\\n\\n.set-min-width-report {\\n min-width: 1425px;\\n}\\n\\n.paginator ::ng-deep .mat-form-field-infix {\\n height: 18px !important;\\n padding-bottom: 0px;\\n}\\n\\n.searchfilter {\\n width: 100px;\\n height: 30px;\\n margin-left: 10px;\\n font-size: 12px;\\n border: 0;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9jb21wb25lbnQvcHJzLXJlcG9ydGluZy9wcnMtcmVwb3J0aW5nLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnQvcHJzLXJlcG9ydGluZy9wcnMtcmVwb3J0aW5nLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksaUJBQUE7QUNDSjs7QURFQTtFQUNJLHFDQUFBO0VBQ0EsaUJBQUE7RUFDQSxpQkFBQTtFQUNBLHVCQUFBO0FDQ0o7O0FER0k7RUFDSSxrQkFBQTtBQ0FSOztBRElBO0VBQ0ksbUJBQUE7QUNESjs7QURJQTtFQUNJLHVCQUFBO0FDREo7O0FESUE7RUFDSSxpQkFBQTtFQUNBLG1CQUFBO0VBQ0EsY0FBQTtFQUNBLFVBQUE7RUFDQSxrQkFBQTtFQUNBLG9CQUFBO0FDREo7O0FESUE7RUFDSSxtQkFBQTtFQUNBLGdCQUFBO0FDREo7O0FESUE7RUFDSSxlQUFBO0VBQ0EsV0FBQTtBQ0RKOztBRElBO0VBQ0ksMkJBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0VBRUEsbUJBQUE7RUFDQSwwQkFBQTtFQUNBLFlBQUE7QUNGSjs7QURLQTtFQUNJLGlCQUFBO0FDRko7O0FES0E7RUFDSSxVQUFBO0FDRko7O0FES0E7RUFDSSxrQkFBQTtBQ0ZKOztBREtBO0VBQ0ksTUFBQTtFQUNBLGNBQUE7RUFDQSxpQkFBQTtBQ0ZKOztBREtBO0VBQ0ksaUJBQUE7QUNGSjs7QURLQTtFQUNJLGFBQUE7QUNGSjs7QURLQTtFQUNJLE1BQUE7RUFDQSwwQkFBQTtFQUNBLGlCQUFBO0FDRko7O0FES0E7RUFDSSwwQkFBQTtFQUNBLGdCQUFBO0FDRko7O0FES0E7RUFDSSxlQUFBO0FDRko7O0FES0E7RUFDSSxXQUFBO0FDRko7O0FES0E7RUFDSSxrQkFBQTtFQUNBLGlCQUFBO0VBQ0EsWUFBQTtFQUNBLDZCQUFBO0FDRko7O0FER0k7RUFDSSxzQ0FBQTtFQUNBLGtCQUFBO0VBQ0EsZUFBQTtFQUNBLFlBQUE7RUFDQSxpQkFBQTtFQUNBLFlBQUE7QUNEUjs7QURLQTtFQUNJLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLFFBQUE7QUNGSjs7QURLQTtFQUNJLGdCQUFBO0FDRko7O0FES0E7RUFDSSx1QkFBQTtFQUNBLHlCQUFBO0VBQ0EsWUFBQTtFQUNBLGlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxtQkFBQTtBQ0ZKOztBREtBO0VBQ0ksa0JBQUE7RUFDQSxjQUFBO0VBQ0EsaUJBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0FDRko7O0FETUk7RUFDSSxnQkFBQTtFQUNBLGtCQUFBO0FDSFI7O0FES0k7RUFDSSxpQkFBQTtFQUNBLGdCQUFBO0FDSFI7O0FET0E7RUFDSSxtQ0FBQTtFQUNBLHVCQUFBO0FDSko7O0FET0E7RUFDSSxzQkFBQTtFQUNBLG1CQUFBO0VBQ0EsY0FBQTtFQUNBLDBCQUFBO0FDSko7O0FEUUE7RUFDSSwwQkFBQTtFQUNBLGtCQUFBO0FDTEo7O0FEUUE7RUFDSSxVQUFBO0FDTEo7O0FEUUE7OztFQUdJLFlBQUE7RUFDQSxtQ0FBQTtFQUNBLG1CQUFBO0VBQ0EsdUJBQUE7QUNMSjs7QURRQTs7RUFFSSxZQUFBO0VBQ0EsaUJBQUE7QUNMSjs7QURRQTtFQUNJLFlBQUE7RUFDQSwwQkFBQTtBQ0xKOztBRFFBO0VBQ0ksWUFBQTtBQ0xKOztBRFFBO0VBQ0ksWUFBQTtBQ0xKOztBRFFBO0VBQ0ksWUFBQTtBQ0xKOztBRFFBO0VBQ0ksWUFBQTtBQ0xKOztBRFFBO0VBQ0ksWUFBQTtBQ0xKOztBRFFBO0VBQ0ksaUJBQUE7QUNMSjs7QURRQTtFQUNJLHVCQUFBO0VBQ0EsbUJBQUE7QUNMSjs7QURRQTtFQUNJLFlBQUE7RUFDQSxZQUFBO0VBQ0EsaUJBQUE7RUFDQSxlQUFBO0VBQ0EsU0FBQTtBQ0xKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50L3Bycy1yZXBvcnRpbmcvcHJzLXJlcG9ydGluZy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi53b3JraW5nLWFyZWEge1xuICAgIG1hcmdpbi10b3A6IDExNXB4O1xufVxuXG4uY2FsbC1zdGF0cy1jYXJkLWJvcmRlcjEge1xuICAgIGJvcmRlci1zdHlsZTogc29saWQgc29saWQgc29saWQgc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMCU7XG4gICAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG59XG5cbi5jYWxsLXN0YXRzLWNhcmQge1xuICAgIC5tYXQtY2FyZC10aXRsZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICB9XG59XG5cbi5maWx0ZXJkaXYge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5maWx0ZXItc3R5bGUge1xuICAgIHdpZHRoOiAxNDBweCAhaW1wb3J0YW50O1xufVxuXG4uZmlsdGVyLWxhYmVsIHtcbiAgICBmb250OiAxMnB4IFJvYm90bztcbiAgICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICAgIGNvbG9yOiAjM2MzYzNjO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICAgIHBhZGRpbmc6IDFweCAwcHggMHB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3Qge1xuICAgIHBhZGRpbmctYm90dG9tOiAwcHg7XG4gICAgcGFkZGluZy10b3A6IDJweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtYnV0dG9uIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udDogd2hpdGU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgLy9wYWRkaW5nLXRvcDogMnB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAwcHg7XG4gICAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAyMXB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gICAgcGFkZGluZy1sZWZ0OiA4cHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gICAgd2lkdGg6IDg5JTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LWFycm93LXdyYXBwZXIge1xuICAgIHBhZGRpbmctYm90dG9tOiAweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIHtcbiAgICB0b3A6IDA7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICB0b3A6IDA7XG4gICAgbWFyZ2luLXRvcDogNnB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XG59XG5cbi5maWx0ZXIxLWlucHV0IHtcbiAgICBtYXJnaW4tdG9wOiA3cHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xufVxuXG4uZmlsdGVyMSB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uZmlsdGVyMiB7XG4gICAgd2lkdGg6IGF1dG87XG59XG5cbi5jYWxlbmRlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIHdpZHRoOiAxNDBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHggIWltcG9ydGFudDtcbiAgICBpbnB1dCB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheSAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgICAgICAgd2lkdGg6IDE0MHB4O1xuICAgIH1cbn1cblxuLmNhbGFuZGVyLWJ0biB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAwcHg7XG4gICAgdG9wOiA1cHg7XG59XG5cbi5idXR0b24tbWFyZ2luIHtcbiAgICBtYXJnaW4tbGVmdDogMHB4O1xufVxuXG4uZmlsdGVyQnV0dG9uIHtcbiAgICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEO1xuICAgIGhlaWdodDogMjVweDtcbiAgICBsaW5lLWhlaWdodDogMTBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDJweDtcbn1cblxuLmV4YW1wbGUtY2FyZDEge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLmZvcm0tZmllbGQge1xuICAgIGxhYmVsIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIH1cbiAgICBpbnB1dCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogN3B4O1xuICAgICAgICBwYWRkaW5nLXRvcDogM3B4O1xuICAgIH1cbn1cblxuLnRhYmxlLWJvcmRlci5tYXQtdGFibGUge1xuICAgIGJvcmRlci1zdHlsZTogbm9uZSBzb2xpZCBzb2xpZCBub25lO1xuICAgIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4uY29sdW1uSGVhZGVyIHtcbiAgICBmb250OiBib2xkIDEycHggUm9ib3RvO1xuICAgIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gICAgY29sb3I6ICMzMzMzMzM7XG4gICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gICAgLy9taW4td2lkdGg6IDExMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5jb2x1bW52YWx1ZSB7XG4gICAgZm9udC1zaXplOiAxMXB4ICFpbXBvcnRhbnQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uY3VzdC13aWR0aCB7XG4gICAgd2lkdGg6IDEyJTtcbn1cblxudGQubWF0LWNlbGwsXG50ZC5tYXQtZm9vdGVyLWNlbGwsXG50aC5tYXQtaGVhZGVyLWNlbGwge1xuICAgIHBhZGRpbmc6IDNweDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkIG5vbmUgbm9uZSBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDAuMXB4O1xuICAgIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG50ZC5tYXQtY2VsbCxcbnRkLm1hdC1mb290ZXItY2VsbCB7XG4gICAgcGFkZGluZzogM3B4O1xuICAgIHRleHQtYWxpZ246IHN0YXJ0O1xufVxuXG50aC5tYXQtaGVhZGVyLWNlbGwge1xuICAgIHBhZGRpbmc6IDNweDtcbiAgICB0ZXh0LWFsaWduOiBlbmQgIWltcG9ydGFudDtcbn1cblxuLmNvbnQtd2lkdGgge1xuICAgIHdpZHRoOiAxMDdweDtcbn1cblxuLmNvbnQtd2lkdGgxIHtcbiAgICB3aWR0aDogMTE4cHg7XG59XG5cbi5yZWctd2lkdGgge1xuICAgIHdpZHRoOiAxMzBweDtcbn1cblxuLmNoZS13aWR0aCB7XG4gICAgd2lkdGg6IDExMHB4O1xufVxuXG4uZGVsTmFtZS13aWR0aCB7XG4gICAgd2lkdGg6IDE0MXB4O1xufVxuXG4uc2V0LW1pbi13aWR0aC1yZXBvcnQge1xuICAgIG1pbi13aWR0aDogMTQyNXB4O1xufVxuXG4ucGFnaW5hdG9yIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgIGhlaWdodDogMThweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAwcHg7XG59XG5cbi5zZWFyY2hmaWx0ZXIge1xuICAgIHdpZHRoOiAxMDBweDtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGJvcmRlcjogMDtcbn1cbiIsIi53b3JraW5nLWFyZWEge1xuICBtYXJnaW4tdG9wOiAxMTVweDtcbn1cblxuLmNhbGwtc3RhdHMtY2FyZC1ib3JkZXIxIHtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZCBzb2xpZCBzb2xpZCBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1yYWRpdXM6IDAlO1xuICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxuLmNhbGwtc3RhdHMtY2FyZCAubWF0LWNhcmQtdGl0bGUge1xuICBtYXJnaW4tYm90dG9tOiAwcHg7XG59XG5cbi5maWx0ZXJkaXYge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uZmlsdGVyLXN0eWxlIHtcbiAgd2lkdGg6IDE0MHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5maWx0ZXItbGFiZWwge1xuICBmb250OiAxMnB4IFJvYm90bztcbiAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgY29sb3I6ICMzYzNjM2M7XG4gIG9wYWNpdHk6IDE7XG4gIG1hcmdpbi1ib3R0b206IDNweDtcbiAgcGFkZGluZzogMXB4IDBweCAwcHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdCB7XG4gIHBhZGRpbmctYm90dG9tOiAwcHg7XG4gIHBhZGRpbmctdG9wOiAycHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udDogd2hpdGU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIHBhZGRpbmctYm90dG9tOiAwcHg7XG4gIGZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDIxcHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gIHdpZHRoOiA4OSU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC1hcnJvdy13cmFwcGVyIHtcbiAgcGFkZGluZy1ib3R0b206IDB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIge1xuICB0b3A6IDA7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRvcDogMDtcbiAgbWFyZ2luLXRvcDogNnB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xufVxuXG4uZmlsdGVyMS1pbnB1dCB7XG4gIG1hcmdpbi10b3A6IDdweCAhaW1wb3J0YW50O1xuICBtYXJnaW4tbGVmdDogNXB4O1xufVxuXG4uZmlsdGVyMSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmZpbHRlcjIge1xuICB3aWR0aDogYXV0bztcbn1cblxuLmNhbGVuZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgd2lkdGg6IDE0MHB4O1xuICBtYXJnaW4tcmlnaHQ6IDEwcHggIWltcG9ydGFudDtcbn1cbi5jYWxlbmRlciBpbnB1dCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgd2lkdGg6IDE0MHB4O1xufVxuXG4uY2FsYW5kZXItYnRuIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMHB4O1xuICB0b3A6IDVweDtcbn1cblxuLmJ1dHRvbi1tYXJnaW4ge1xuICBtYXJnaW4tbGVmdDogMHB4O1xufVxuXG4uZmlsdGVyQnV0dG9uIHtcbiAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0Q7XG4gIGhlaWdodDogMjVweDtcbiAgbGluZS1oZWlnaHQ6IDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDFweDtcbiAgcGFkZGluZy1ib3R0b206IDJweDtcbn1cblxuLmV4YW1wbGUtY2FyZDEge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4uZm9ybS1maWVsZCBsYWJlbCB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIG1hcmdpbi1ib3R0b206IDBweDtcbn1cbi5mb3JtLWZpZWxkIGlucHV0IHtcbiAgcGFkZGluZy1sZWZ0OiA3cHg7XG4gIHBhZGRpbmctdG9wOiAzcHg7XG59XG5cbi50YWJsZS1ib3JkZXIubWF0LXRhYmxlIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lIHNvbGlkIHNvbGlkIG5vbmU7XG4gIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4uY29sdW1uSGVhZGVyIHtcbiAgZm9udDogYm9sZCAxMnB4IFJvYm90bztcbiAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xufVxuXG4uY29sdW1udmFsdWUge1xuICBmb250LXNpemU6IDExcHggIWltcG9ydGFudDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uY3VzdC13aWR0aCB7XG4gIHdpZHRoOiAxMiU7XG59XG5cbnRkLm1hdC1jZWxsLFxudGQubWF0LWZvb3Rlci1jZWxsLFxudGgubWF0LWhlYWRlci1jZWxsIHtcbiAgcGFkZGluZzogM3B4O1xuICBib3JkZXItc3R5bGU6IHNvbGlkIG5vbmUgbm9uZSBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAwLjFweDtcbiAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG59XG5cbnRkLm1hdC1jZWxsLFxudGQubWF0LWZvb3Rlci1jZWxsIHtcbiAgcGFkZGluZzogM3B4O1xuICB0ZXh0LWFsaWduOiBzdGFydDtcbn1cblxudGgubWF0LWhlYWRlci1jZWxsIHtcbiAgcGFkZGluZzogM3B4O1xuICB0ZXh0LWFsaWduOiBlbmQgIWltcG9ydGFudDtcbn1cblxuLmNvbnQtd2lkdGgge1xuICB3aWR0aDogMTA3cHg7XG59XG5cbi5jb250LXdpZHRoMSB7XG4gIHdpZHRoOiAxMThweDtcbn1cblxuLnJlZy13aWR0aCB7XG4gIHdpZHRoOiAxMzBweDtcbn1cblxuLmNoZS13aWR0aCB7XG4gIHdpZHRoOiAxMTBweDtcbn1cblxuLmRlbE5hbWUtd2lkdGgge1xuICB3aWR0aDogMTQxcHg7XG59XG5cbi5zZXQtbWluLXdpZHRoLXJlcG9ydCB7XG4gIG1pbi13aWR0aDogMTQyNXB4O1xufVxuXG4ucGFnaW5hdG9yIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBoZWlnaHQ6IDE4cHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1ib3R0b206IDBweDtcbn1cblxuLnNlYXJjaGZpbHRlciB7XG4gIHdpZHRoOiAxMDBweDtcbiAgaGVpZ2h0OiAzMHB4O1xuICBtYXJnaW4tbGVmdDogMTBweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBib3JkZXI6IDA7XG59Il19 */\"","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { DateTimeAdapter, OWL_DATE_TIME_FORMATS, OWL_DATE_TIME_LOCALE } from 'ng-pick-datetime';\nimport { MomentDateTimeAdapter } from 'ng-pick-datetime-moment';\nimport { Router } from '@angular/router';\nimport { DatePipe } from '@angular/common';\nimport { CommonService } from '../../core/service/common-service/common.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { MatTableDataSource, MatSort, MatPaginator, MatSelect, MatOption } from '@angular/material';\nimport { kpiCustData } from './kpiCustData';\nimport { FilterPipePipe } from '../../pipes/filter-pipe.pipe';\nimport { FormControl, FormBuilder, FormGroup } from '@angular/forms';\nimport { WorkshopData } from '../uam/workshopData';\n\nexport const MY_CUSTOM_FORMATS = {\n parseInput: 'LL LT',\n fullPickerInput: 'DD-MM-YYYY LT',\n datePickerInput: 'DD-MM-YYYY',\n timePickerInput: 'LT',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n};\n\n@Component({\n selector: 'app-prs-reporting',\n templateUrl: './prs-reporting.component.html',\n styleUrls: ['./prs-reporting.component.scss'],\n providers: [\n { provide: DateTimeAdapter, useClass: MomentDateTimeAdapter, deps: [OWL_DATE_TIME_LOCALE] },\n { provide: OWL_DATE_TIME_FORMATS, useValue: MY_CUSTOM_FORMATS },\n FilterPipePipe\n ],\n})\nexport class PrsReportingComponent implements OnInit {\n\n @ViewChild(MatSort, { static: true }) sort: MatSort;\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\n @ViewChild('allSelected', { static: true }) private allSelected: MatOption;\n @ViewChild('allSelectedVertical', { static: true }) private allSelectedVertical: MatOption;\n\n displayedColumns: string[] = [\n 'customerName',\n 'customerNo',\n 'accountType',\n 'callType',\n 'registrationNo',\n 'chassisNo',\n 'vehicleModel',\n 'dealerCode',\n 'dealerName',\n 'leadGenerationDate',\n 'lastContacted',\n 'leadStatus'\n ];\n\n spinner: boolean;\n userId: string;\n userInfo: any;\n today: Date = new Date();\n toDate: Date = new Date();\n fromDate: Date = new Date();\n uniqueRegionValue: string[] = [];\n uniqueVerticalValue: string[] = [];\n uniqueDealerCode: string[] = [];\n uniqueReportTypeValue: string[] = [];\n selectedRegionValues: string[] = [];\n selectedVerticalValues: string[] = [];\n selectedDealerCodeValues: string[] = [];\n selectedReportTypeValues: string;\n wsCodeFilter:string;\n region: string;\n vartical: string;\n dataGridDataSource: any;\n reportTypeMap = new Map();\n selectRegion: FormGroup;\n selectVertical: FormGroup;\n regionType: string;\n dataGrideFlag: boolean;\n selectedDealer: any;\n uniqueDealerCodeCopy: string[] = [];\n dealerCode: string[] = [];\n roleId: string;\n uniqueRegion: string[] = [];\n acessType: string;\n uniquePRSReportTypeValue: string[] = [];\n maxDate: Date = new Date();\n prsDataGridSize: number = 0;\n\n constructor(\n private router: Router,\n private datePipe: DatePipe,\n private commonService: CommonService,\n private toastr: ToastrService,\n private filterPipePipe: FilterPipePipe,\n private fb1: FormBuilder,\n private fb2: FormBuilder\n ) { }\n\n ngOnInit() {\n\n this.userId = localStorage.getItem('userId');\n this.userInfo = JSON.parse(localStorage.getItem('userInfo'));\n this.commonService.roleId = localStorage.getItem('roleId');\n this.roleId = localStorage.getItem('roleId');\n if (localStorage.getItem('userId') == null || localStorage.getItem('userId') == undefined) {\n this.router.navigate(['login']);\n }\n\n if (localStorage.getItem('uniqueRegionValue') != null || localStorage.getItem('uniqueRegionValue') != undefined) {\n this.uniqueRegionValue = JSON.parse(localStorage.getItem(\"uniqueRegionValue\"));\n }\n\n if (localStorage.getItem('uniqueVerticalValue') != null || localStorage.getItem('uniqueVerticalValue') != undefined) {\n this.uniqueVerticalValue = JSON.parse(localStorage.getItem(\"uniqueVerticalValue\"));\n }\n\n this.selectRegion = this.fb1.group({\n regionType: ['']\n });\n\n this.selectVertical = this.fb2.group({\n verticalType: ['']\n });\n\n this.uniquePRSReportTypeValue = ['Dealer PRS', 'PRS Call Center'];\n if(this.roleId == '1') {\n this.acessType = 'Dealer PRS';\n } else if(this.roleId == '12') {\n this.acessType = 'PRS Call Center';\n } else if(this.roleId == '15') {\n this.acessType = 'PRS Call Center';\n } else if(this.roleId == '4') {\n this.acessType = 'Dealer PRS';\n } else if(this.roleId == '5') {\n this.acessType = 'Dealer PRS';\n } else if(this.roleId == '6') {\n this.acessType = 'Dealer PRS';\n } else if(this.roleId == '7') {\n this.acessType = 'Dealer PRS';\n }\n\n this.reportTypeFilterValues();\n this.filterValues();\n // if(this.roleId != '15'){\n // this.getDataGrid(false);\n // }\n\n // if(!this.uniqueRegionValue.length || !this.uniqueVerticalValue.length) {\n // this.filterValues();\n // }\n }\n\n /**\n * Name: filterValues\n * purpose: To get filter values\n */\n reportTypeFilterValues(): void {\n this.uniqueReportTypeValue = [];\n this.selectedReportTypeValues = '';\n this.commonService.reportTypeFilter()\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n if (res['responseData'].length) {\n if(this.roleId == '12') {\n res['responseData'].forEach(element => {\n this.uniqueReportTypeValue.push(element.callTypeSeqDesc);\n this.reportTypeMap.set(element.callTypeSeqDesc, element.callTypeSeq);\n });\n } else if(this.roleId == '1' || this.roleId == '5' || this.roleId == '4'\n || this.roleId == '6' || this.roleId == '7') {\n this.uniqueReportTypeValue.push('PRS');\n this.reportTypeMap.set('PRS', '3');\n this.selectedReportTypeValues = 'PRS';\n }\n if(this.roleId == '15' && this.acessType == 'PRS Call Center') {\n res['responseData'].forEach(element => {\n this.uniqueReportTypeValue.push(element.callTypeSeqDesc);\n this.reportTypeMap.set(element.callTypeSeqDesc, element.callTypeSeq);\n });\n } else if(this.roleId == '15' && this.acessType == 'Dealer PRS') {\n this.uniqueReportTypeValue.push('PRS');\n this.reportTypeMap.set('PRS', '3');\n this.selectedReportTypeValues = 'PRS';\n }\n }\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: filterValues\n * purpose: To get filter values\n */\n filterValues(): void {\n this.commonService.prsReportFilter(this.userId, this.roleId)\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n if (res['responseData'].length) {\n let uniqueRegionValue = res['responseData'].filter(data=> data.flag=='R');\n if(uniqueRegionValue.length) {\n this.uniqueRegionValue = [];\n uniqueRegionValue.forEach(data => {\n this.uniqueRegionValue.push((data.code).toString());\n });\n }\n this.uniqueRegion = this.uniqueRegionValue;\n\n let uniqueVerticalValue = res['responseData'].filter(data=> data.flag=='V');\n if(uniqueVerticalValue.length) {\n this.uniqueVerticalValue = [];\n uniqueVerticalValue.forEach(data => {\n this.uniqueVerticalValue.push(data.code);\n });\n this.uniqueVerticalValue.forEach((element,index)=>{\n if(element == null){\n this.uniqueVerticalValue.splice(index,1);\n }\n });\n }\n\n let uniqueDealerCode = res['responseData'].filter(data=> data.flag=='W');\n if(uniqueDealerCode.length) {\n this.uniqueDealerCode = [];\n uniqueDealerCode.forEach(data => {\n this.uniqueDealerCode.push(data.code);\n });\n this.uniqueDealerCodeCopy = this.uniqueDealerCode;\n }\n }\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n}\n\n /**\n * Name: getDataGrid\n * purpose: To prepare call list for dataGrid\n */\n getDataGrid(event: any) {\n this.dataGrideFlag = event;\n //this.spinner = true;\n this.dataGridDataSource = '';\n let region = '';\n let vartical = '';\n if(this.selectRegion.value.regionType != \"\") {\n this.selectRegion.value.regionType.forEach((element,index) => {\n if(element == \"0\"){\n this.selectRegion.value.regionType.splice(index,1);\n }\n });\n region = this.selectRegion.value.regionType.toString();\n }\n if(this.selectVertical.value.verticalType != \"\" && !this.selectVertical){\n this.selectVertical.value.verticalType.forEach((element,index)=>{\n if(element == \"0\"){\n this.selectVertical.value.verticalType.splice(index,1);\n }\n });\n vartical = this.selectVertical.value.verticalType.toString();\n }\n let dealerCode = this.selectedDealerCodeValues.toString();\n let fdate = this.datePipe.transform(this.fromDate, \"yyyy-MM-dd\");\n let tdate = this.datePipe.transform(this.toDate, \"yyyy-MM-dd\");\n let reportType = '';\n if(this.selectedReportTypeValues != '' && this.selectedReportTypeValues != undefined){\n reportType = this.reportTypeMap.get(this.selectedReportTypeValues);\n }\n //this.getDataGridExcelReport(region, vartical, dealerCode, fdate, tdate, reportType);\n this.commonService.getPRSDattaGrid(region, vartical, dealerCode, fdate, tdate, reportType, this.userId, this.roleId)\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n if (res['responseData'].length) {\n this.dataGridDataSource = new MatTableDataSource(res['responseData']);\n this.prsDataGridSize = this.dataGridDataSource.length;\n //this.sort.direction = '';\n this.dataGridDataSource.sort = this.sort;\n this.dataGridDataSource.paginator = this.paginator;\n }\n this.spinner = false;\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: searchfilter\n * purpose: To apply filter on datagrid\n */\n searchfilter(filterValue: string): void {\n filterValue = filterValue.trim(); // Remove whitespace\n filterValue = filterValue.toLowerCase(); // Datasource defaults to lowercase matches\n this.dataGridDataSource.filter = filterValue;\n }\n\n /**\n * Name: activeButton\n * purpose: To activat Export Excel and Raw Data Report button\n */\n activeButton(): boolean {\n let flag = false;\n if (this.selectedReportTypeValues != null && this.selectedReportTypeValues != undefined && this.selectedReportTypeValues != '') {\n flag = true;\n }\n return flag;\n }\n\n /**\n * Name: getRowDataExcelReport\n * purpose: To export Row Data report as excel\n */\n getRowDataExcelReport(){\n this.spinner = true;\n let region = '';\n let vartical = '';\n if(this.selectRegion.value.regionType != \"\"){\n this.selectRegion.value.regionType.forEach((element,index)=>{\n if(element == \"0\"){\n this.selectRegion.value.regionType.splice(index,1);\n }\n });\n region = this.selectRegion.value.regionType.toString();\n }\n if(this.selectVertical.value.verticalType != \"\" && !this.selectVertical){\n this.selectVertical.value.verticalType.forEach((element,index)=>{\n if(element == \"0\"){\n this.selectVertical.value.verticalType.splice(index,1);\n }\n });\n vartical = this.selectVertical.value.verticalType.toString();\n }\n let dealerCode = this.selectedDealerCodeValues.toString();\n let fdate = this.datePipe.transform(this.fromDate, \"yyyy-MM-dd\");\n let tdate = this.datePipe.transform(this.toDate, \"yyyy-MM-dd\");\n let reportType = this.reportTypeMap.get(this.selectedReportTypeValues);\n let fileName = \"Report on Calling Data From \" + fdate + \" To \" + tdate;\n let roleID = '';\n if(this.roleId == '15' && this.acessType == 'PRS Call Center') {\n roleID = '12';\n } else {\n roleID = this.roleId;\n }\n this.commonService.getRowDataExcelReport(region, vartical, dealerCode, fdate, tdate, reportType, this.userId, roleID)\n .subscribe(fileData => {\n if (fileData) {\n const blob: any = new Blob([fileData], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\n let link = document.createElement(\"a\");\n if (link.download !== undefined) {\n let url = URL.createObjectURL(blob);\n link.setAttribute(\"href\", url);\n link.setAttribute(\"download\", fileName);\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n this.spinner = false;\n }\n } else {\n this.spinner = false;\n }\n }, err => {\n this.spinner = false;\n });\n }\n\n /**\n * Name: getPRSRowDataExcelReport\n * purpose: To export Row Data report as excel\n */\n getPRSRowDataExcelReport(){\n this.spinner = true;\n let region = '';\n let vartical = '';\n if(this.selectRegion.value.regionType != \"\"){\n this.selectRegion.value.regionType.forEach((element,index)=>{\n if(element == \"0\"){\n this.selectRegion.value.regionType.splice(index,1);\n }\n });\n region = this.selectRegion.value.regionType.toString();\n }\n if(this.selectVertical.value.verticalType != \"\" && !this.selectVertical){\n this.selectVertical.value.verticalType.forEach((element,index)=>{\n if(element == \"0\"){\n this.selectVertical.value.verticalType.splice(index,1);\n }\n });\n vartical = this.selectVertical.value.verticalType.toString();\n }\n let dealerCode = this.selectedDealerCodeValues.toString();\n let fdate = this.datePipe.transform(this.fromDate, \"yyyy-MM-dd\");\n let tdate = this.datePipe.transform(this.toDate, \"yyyy-MM-dd\");\n let reportType = this.reportTypeMap.get(this.selectedReportTypeValues);\n let fileName = \"Report on Calling Data From \" + fdate + \" To \" + tdate;\n if(tdate <= '2023-01-31') {\n this.commonService.getPRSRowDataExcelReport(region, vartical, dealerCode, fdate, tdate, reportType, this.userId, this.roleId)\n .subscribe(fileData => {\n if (fileData) {\n const blob: any = new Blob([fileData], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\n let link = document.createElement(\"a\");\n if (link.download !== undefined) {\n let url = URL.createObjectURL(blob);\n link.setAttribute(\"href\", url);\n link.setAttribute(\"download\", fileName);\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n this.spinner = false;\n }\n } else {\n this.spinner = false;\n }\n }, err => {\n this.spinner = false;\n });\n } else if(fdate > '2023-01-31') {\n this.commonService.getNewPRSRowDataExcelReport(region, vartical, dealerCode, fdate, tdate, reportType, this.userId, this.roleId)\n .subscribe(fileData => {\n if (fileData) {\n const blob: any = new Blob([fileData], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\n let link = document.createElement(\"a\");\n if (link.download !== undefined) {\n let url = URL.createObjectURL(blob);\n link.setAttribute(\"href\", url);\n link.setAttribute(\"download\", fileName);\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n this.spinner = false;\n }\n } else {\n this.spinner = false;\n }\n }, err => {\n this.spinner = false;\n\n });\n\n }\n else{\n this.toastr.error(\"Please Select Date before 31-01-2023\")\n this.spinner = false;\n }\n}\n\n /**\n * Name: getExportExcelReport\n * purpose: To export report as excel\n */\n getExportExcelReport(): void {\n this.spinner = true;\n let region = '';\n let vartical = '';\n if(this.selectRegion.value.regionType != \"\"){\n this.selectRegion.value.regionType.forEach((element,index)=>{\n if(element == \"0\"){\n this.selectRegion.value.regionType.splice(index,1);\n }\n });\n region = this.selectRegion.value.regionType.toString();\n }\n if(this.selectVertical.value.verticalType != \"\" && !this.selectVertical){\n this.selectVertical.value.verticalType.forEach((element,index)=>{\n if(element == \"0\"){\n this.selectVertical.value.verticalType.splice(index,1);\n }\n });\n vartical = this.selectVertical.value.verticalType.toString();\n }\n let dealerCode = this.selectedDealerCodeValues.toString();\n let fdate = this.datePipe.transform(this.fromDate, \"yyyy-MM-dd\");\n let tdate = this.datePipe.transform(this.toDate, \"yyyy-MM-dd\");\n let reportType = this.reportTypeMap.get(this.selectedReportTypeValues);\n let fileName = \"SRM_Data Status Report_From_\" + fdate + \"_To_\" + tdate;\n let roleID = '';\n if(this.roleId == '15' && this.acessType == 'PRS Call Center') {\n roleID = '12';\n } else {\n roleID = this.roleId;\n }\n this.commonService.getExportExcelReport(region, vartical, dealerCode, fdate, tdate, reportType, this.userId, roleID)\n .subscribe(fileData => {\n if (fileData) {\n const blob: any = new Blob([fileData], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\n let link = document.createElement(\"a\");\n if (link.download !== undefined) {\n let url = URL.createObjectURL(blob);\n link.setAttribute(\"href\", url);\n link.setAttribute(\"download\", fileName);\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n this.spinner = false;\n }\n } else {\n this.spinner = false;\n }\n }, err => {\n this.spinner = false;\n });\n }\n\n /**\n * Name: getPRSExportExcelReport\n * purpose: To export prs report as excel\n */\n getPRSExportExcelReport(): void {\n this.spinner = true;\n let region = '';\n let vertical = '';\n let workshop = '';\n if(this.selectRegion.value.regionType != \"\"){\n this.selectRegion.value.regionType.forEach((element,index)=>{\n if(element == \"0\"){\n this.selectRegion.value.regionType.splice(index,1);\n }\n });\n region = this.selectRegion.value.regionType.toString();\n }\n if(this.selectVertical.value.verticalType != \"\" && !this.selectVertical){\n this.selectVertical.value.verticalType.forEach((element,index)=>{\n if(element == \"0\"){\n this.selectVertical.value.verticalType.splice(index,1);\n }\n });\n vertical = this.selectVertical.value.verticalType.toString();\n }\n let dealerCode = this.selectedDealerCodeValues.toString();\n let startDate = this.datePipe.transform(this.fromDate, \"yyyy-MM-dd\");\n let endDate = this.datePipe.transform(this.toDate, \"yyyy-MM-dd\");\n let fileName = \"SRM_Data Status Report_From_\" + startDate + \"_To_\" + endDate;\n this.spinner = false;\n if(endDate <= '2023-01-31') {\n this.commonService.getPRSExportExcelReport(region, vertical, dealerCode, startDate, endDate, this.userId, this.roleId)\n .subscribe(fileData => {\n if (fileData) {\n const blob: any = new Blob([fileData], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\n let link = document.createElement(\"a\");\n if (link.download !== undefined) {\n let url = URL.createObjectURL(blob);\n link.setAttribute(\"href\", url);\n link.setAttribute(\"download\", fileName);\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n this.spinner = false;\n }\n } else {\n this.spinner = false;\n }\n }, err => {\n this.spinner = false;\n });\n }\n else if(startDate > '2023-01-31'){\n this.commonService.getNewPRSExportExcelReport(region, vertical, dealerCode, startDate, endDate, this.userId, this.roleId)\n .subscribe(fileData => {\n if (fileData) {\n const blob: any = new Blob([fileData], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\n let link = document.createElement(\"a\");\n if (link.download !== undefined) {\n let url = URL.createObjectURL(blob);\n link.setAttribute(\"href\", url);\n link.setAttribute(\"download\", fileName);\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n this.spinner = false;\n }\n } else {\n this.spinner = false;\n }\n }, err => {\n this.spinner = false;\n });\n }else{\n this.toastr.error(\"Please Select Date before 31-01-2023\");\n this.spinner = false;\n }\n\n}\n\n /**\n * Name: filterTriggered\n * @param {Event} event - region filter data\n * purpose: To set dealer code filter values\n */\n filterTriggered(event: any): void {\n this.dataGrideFlag = true;\n this.uniqueDealerCode = [];\n this.selectedDealerCodeValues = [];\n let value;\n if(this.selectRegion.value.regionType == \"0\") {\n value = '';\n } else {\n value = this.selectRegion.value.regionType.toString();\n }\n this.commonService.getdealerCode(value)\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n if (res['responseData'].length) {\n res['responseData'].forEach(element => {\n this.uniqueDealerCode.push(element.workshopCode);\n });\n this.uniqueDealerCodeCopy = this.uniqueDealerCode;\n this.spinner = false;\n }\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: toggleAllSelection\n * purpose: To select/remove all data in workshop drop down\n */\n toggleAllSelectionVertical(): void {\n if (this.allSelectedVertical.selected) {\n this.selectVertical.controls.verticalType.patchValue([...this.uniqueVerticalValue, 0]);\n } else {\n this.selectVertical.controls.verticalType.patchValue([]);\n }\n }\n\n tosslePerOneVertical() {\n if (this.allSelectedVertical.selected) {\n this.allSelectedVertical.deselect();\n return false;\n }\n\n if (this.selectVertical.controls.verticalType.value.length == this.uniqueVerticalValue.length) {\n this.allSelectedVertical.select();\n }\n }\n\n /**\n * Name: toggleAllSelection\n * purpose: To select/remove all data in workshop drop down\n */\n toggleAllSelectionRegion(): void {\n if (this.allSelected.selected) {\n this.selectRegion.controls.regionType.patchValue([...this.uniqueRegionValue,0]);\n } else {\n this.selectRegion.controls.regionType.patchValue([]);\n }\n }\n\n tosslePerOneRegion() {\n if (this.allSelected.selected) {\n this.allSelected.deselect();\n return false;\n }\n\n if (this.selectRegion.controls.regionType.value.length == this.uniqueRegionValue.length) {\n this.allSelected.select();\n }\n }\n\n /**\n * Name: getDataGridExcelReport\n * purpose: To export data grid report as excel\n */\n getDataGridExcelReport(): void {\n this.spinner = true;\n let region = '';\n let vartical = '';\n if(this.selectRegion.value.regionType != \"\"){\n this.selectRegion.value.regionType.forEach((element,index)=>{\n if(element == \"0\"){\n this.selectRegion.value.regionType.splice(index,1);\n }\n });\n region = this.selectRegion.value.regionType.toString();\n }\n if(this.selectVertical.value.verticalType != \"\" && !this.selectVertical){\n this.selectVertical.value.verticalType.forEach((element,index)=>{\n if(element == \"0\"){\n this.selectVertical.value.verticalType.splice(index,1);\n }\n });\n vartical = this.selectVertical.value.verticalType.toString();\n }\n let dealerCode = this.selectedDealerCodeValues.toString();\n let fdate = this.datePipe.transform(this.fromDate, \"yyyy-MM-dd\");\n let tdate = this.datePipe.transform(this.toDate, \"yyyy-MM-dd\");\n let reportType = '';\n if(this.selectedReportTypeValues != '' && this.selectedReportTypeValues != undefined){\n reportType = this.reportTypeMap.get(this.selectedReportTypeValues);\n }\n let fileName = \"Data Grid Report_From_\" + fdate + \"_To_\" + tdate;\n //this.spinner = false;\n this.commonService.getDataGridExcelReport(region, vartical, dealerCode, fdate, tdate, reportType, this.userId, this.roleId)\n .subscribe(fileData => {\n if (fileData) {\n const blob: any = new Blob([fileData], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\n let link = document.createElement(\"a\");\n if (link.download !== undefined) {\n let url = URL.createObjectURL(blob);\n link.setAttribute(\"href\", url);\n link.setAttribute(\"download\", fileName);\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n this.spinner = false;\n }\n } else {\n this.spinner = false;\n }\n }, err => {\n this.spinner = false;\n });\n }\n\n /**\n * Name: clearFilter\n * purpose: To clear filter\n */\n clearFilter(): void {\n //this.selectVertical\n this.selectRegion.setValue({regionType:''});\n this.selectVertical.setValue({verticalType:''});\n this.selectedDealerCodeValues = [];\n if(this.roleId != '1') {\n this.selectedReportTypeValues = '';\n }\n this.today = new Date();\n this.toDate = new Date();\n this.fromDate = new Date();\n this.getDataGrid(false);\n this.activeButton();\n }\n\n /**\n * Name: activeGridButton\n * purpose: To activat Data Grid Report button\n */\n activeGridButton(): boolean {\n //this.dataGrideFlag = false;\n // if (this.selectedReportTypeValues != null && this.selectedReportTypeValues != undefined && this.selectedReportTypeValues != '') {\n // flag = true;\n // }\n return this.dataGrideFlag;\n }\n\n filterTest(event: any){\n this.dataGrideFlag = true;\n }\n\n onKey() : void {\n this.uniqueDealerCode = this.uniqueDealerCodeCopy;\n this.dealerCode = [];\n this.selectedDealer = this.selectedDealer.trim();\n this.dealerCode = this.uniqueDealerCode.filter(item =>\n item.toLowerCase().includes(this.selectedDealer.toLowerCase())\n );\n if(this.dealerCode.length > 0){\n this.closeInput();\n }\n this.uniqueDealerCode = [];\n this.uniqueDealerCode = this.dealerCode;\n }\n\n closeInput() : void {\n if(this.dealerCode.length == 0) {\n this.selectedDealer = '';\n this.uniqueDealerCode = this.uniqueDealerCodeCopy;\n }\n }\n\n /**\n * Name: getRowLeadDataExcelReport\n * purpose: To export Lead Raw Data report as excel\n */\n getRowLeadDataExcelReport(){\n this.spinner = true;\n let region = '';\n let vartical = '';\n if(this.selectRegion.value.regionType != \"\"){\n this.selectRegion.value.regionType.forEach((element,index)=>{\n if(element == \"0\"){\n this.selectRegion.value.regionType.splice(index,1);\n }\n });\n region = this.selectRegion.value.regionType.toString();\n }\n if(this.selectVertical.value.verticalType != \"\" && !this.selectVertical){\n this.selectVertical.value.verticalType.forEach((element,index)=>{\n if(element == \"0\"){\n this.selectVertical.value.verticalType.splice(index,1);\n }\n });\n vartical = this.selectVertical.value.verticalType.toString();\n }\n let dealerCode = this.selectedDealerCodeValues.toString();\n let fdate = this.datePipe.transform(this.fromDate, \"yyyy-MM-dd\");\n let tdate = this.datePipe.transform(this.toDate, \"yyyy-MM-dd\");\n let reportType = this.reportTypeMap.get(this.selectedReportTypeValues);\n let fileName = \"Lead level Report at List generation Date From \" + fdate + \" To \" + tdate;\n let roleID = '';\n if(this.roleId == '15' && this.acessType == 'PRS Call Center') {\n roleID = '12';\n } else {\n roleID = this.roleId;\n }\n this.commonService.getRowLeadDataExcelReport(region, vartical, dealerCode, fdate, tdate, reportType, roleID)\n .subscribe(fileData => {\n if (fileData) {\n const blob: any = new Blob([fileData], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\n let link = document.createElement(\"a\");\n if (link.download !== undefined) {\n let url = URL.createObjectURL(blob);\n link.setAttribute(\"href\", url);\n link.setAttribute(\"download\", fileName);\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n this.spinner = false;\n }\n } else {\n this.spinner = false;\n }\n }, err => {\n this.spinner = false;\n });\n }\n\n\n /**\n * Name: getPRSRowLeadDataExcelReport\n * purpose: To export PRS Lead Raw Data report as excel\n */\n getPRSRowLeadDataExcelReport() {\n this.spinner = true;\n let region = '';\n let vartical = '';\n if(this.selectRegion.value.regionType != \"\"){\n this.selectRegion.value.regionType.forEach((element,index)=>{\n if(element == \"0\"){\n this.selectRegion.value.regionType.splice(index,1);\n }\n });\n region = this.selectRegion.value.regionType.toString();\n }\n if(this.selectVertical.value.verticalType != \"\" && !this.selectVertical){\n this.selectVertical.value.verticalType.forEach((element,index)=>{\n if(element == \"0\"){\n this.selectVertical.value.verticalType.splice(index,1);\n }\n });\n vartical = this.selectVertical.value.verticalType.toString();\n }\n let dealerCode = this.selectedDealerCodeValues.toString();\n let fdate = this.datePipe.transform(this.fromDate, \"yyyy-MM-dd\");\n let tdate = this.datePipe.transform(this.toDate, \"yyyy-MM-dd\");\n let reportType = this.reportTypeMap.get(this.selectedReportTypeValues);\n let fileName = \"Lead level Report at List generation Date From \" + fdate + \" To \" + tdate;\n if(tdate <= '2023-01-31') {\n this.commonService.getPRSRowLeadDataExcelReport(region, vartical, dealerCode, fdate, tdate, reportType, this.userId, this.roleId)\n .subscribe(fileData => {\n if (fileData) {\n const blob: any = new Blob([fileData], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\n let link = document.createElement(\"a\");\n if (link.download !== undefined) {\n let url = URL.createObjectURL(blob);\n link.setAttribute(\"href\", url);\n link.setAttribute(\"download\", fileName);\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n this.spinner = false;\n }\n } else {\n this.spinner = false;\n }\n }, err => {\n this.spinner = false;\n });\n } else if(fdate > '2023-01-31') {\n this.commonService.getNewPRSRowLeadDataExcelReport(region, vartical, dealerCode, fdate, tdate, reportType, this.userId, this.roleId)\n .subscribe(fileData => {\n if (fileData) {\n const blob: any = new Blob([fileData], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\n let link = document.createElement(\"a\");\n if (link.download !== undefined) {\n let url = URL.createObjectURL(blob);\n link.setAttribute(\"href\", url);\n link.setAttribute(\"download\", fileName);\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n this.spinner = false;\n }\n } else {\n this.spinner = false;\n }\n }, err => {\n this.spinner = false;\n });\n } else {\n this.toastr.error(\"Please Select Date before 31-01-2023\");\n this.spinner = false;\n }\n }\n\n dateFilterTriggered(event: any): void {\n this.today = new Date();\n if((new Date(new Date(event.source.value).getTime()+(1000*60*60*24*30))).getTime() >= this.today.getTime()){\n this.today = new Date();\n if((new Date(new Date(event.source.value).getTime()+(1000*60*60*24*30))).getTime() >= this.today.getTime()){\n this.toDate = new Date();\n } else {\n this.toDate = new Date(new Date(event.source.value).getTime()+(1000*60*60*24*30));\n }\n } else {\n this.today = new Date(new Date(event.source.value).getTime()+(1000*60*60*24*30));\n this.toDate = new Date(new Date(event.source.value).getTime()+(1000*60*60*24*30));\n }\n }\n\n /**\n * Name: setPageData\n * purpose: To set pagesize for table\n */\n setPageData(event) {\n let size = event.pageSize.toString();\n localStorage.setItem('prsDataGridPageSize', size);\n }\n}","export default \".example-card1 {\\n text-align: center;\\n display: block;\\n margin-left: auto;\\n margin-right: auto;\\n margin-bottom: 10px;\\n}\\n\\n.example-card2 {\\n display: block;\\n margin-left: auto;\\n margin-right: auto;\\n border: none;\\n box-shadow: none;\\n padding: 0px;\\n}\\n\\n.working-area {\\n margin-top: 115px;\\n}\\n\\n.kpi-search-date {\\n padding-right: 30px;\\n padding-left: 15px;\\n}\\n\\n.kpi-search-button {\\n width: 160px;\\n margin-left: 10px;\\n}\\n\\ntable {\\n width: 100%;\\n border-collapse: collapse;\\n margin-top: 20px;\\n}\\n\\n.table td,\\n.table th {\\n border: 1px solid #e0e0e0;\\n padding: 9px;\\n}\\n\\ntd.mat-cell,\\ntd.mat-footer-cell,\\nth.mat-header-cell {\\n padding: 3px;\\n text-align: start;\\n}\\n\\n.cust-width {\\n width: 12%;\\n}\\n\\n.due-width {\\n width: 5%;\\n}\\n\\n.due-width1 {\\n width: 3%;\\n}\\n\\n.model-width {\\n width: 12%;\\n}\\n\\n.set-width {\\n width: 6%;\\n}\\n\\n.contact-width {\\n width: 5%;\\n}\\n\\n.chassis-width {\\n width: 8%;\\n}\\n\\n.servic-width {\\n width: 1%;\\n}\\n\\n.dataGridHeader {\\n font-weight: bold;\\n font-size: inherit;\\n}\\n\\n.table-head-call .mat-button-toggle-group {\\n margin: 10px;\\n}\\n\\n.columnHeader {\\n font: bold 12px Roboto;\\n letter-spacing: 0px;\\n color: #333333;\\n text-transform: capitalize;\\n}\\n\\n.columnvalue {\\n font-size: 11px !important;\\n position: relative;\\n}\\n\\ntd.mat-cell,\\ntd.mat-footer-cell,\\nth.mat-header-cell {\\n padding: 3px;\\n border-style: solid none none solid;\\n border-width: 0.1px;\\n border-color: lightgray;\\n}\\n\\n.callList-right {\\n font-size: 13px;\\n color: rgba(0, 0, 0, 0.54);\\n font-weight: bold;\\n padding-left: 8px;\\n}\\n\\n.mat-form-field-infix {\\n height: 15px !important;\\n}\\n\\n.form-field label {\\n font-weight: 500;\\n margin-bottom: 5px;\\n}\\n\\n.form-field input {\\n padding: 6px;\\n}\\n\\n.m-t-20 {\\n margin-top: 20px;\\n}\\n\\n.m-l-20 {\\n margin-left: 20px;\\n}\\n\\n.calender {\\n position: relative;\\n background: white;\\n}\\n\\n.calender input {\\n width: 180px;\\n border: 1px solid lightgray !important;\\n border-radius: 5px;\\n font-size: 12px;\\n height: 22px;\\n padding-left: 5px;\\n}\\n\\n.calander-btn {\\n position: absolute;\\n right: 7px;\\n top: 4px;\\n}\\n\\n.btn {\\n border-left: 4px solid #2e3668;\\n border-radius: 0px;\\n position: relative;\\n cursor: pointer;\\n transition: all 0.3s ease;\\n overflow: hidden;\\n background-color: #e64243 !important;\\n}\\n\\n.btn p {\\n text-align: center;\\n text-transform: uppercase;\\n color: #fff;\\n position: relative;\\n z-index: 1;\\n transition: all 0.3s ease;\\n margin: auto;\\n}\\n\\n/* sliders */\\n\\n.btn:before {\\n content: \\\"\\\";\\n width: 100%;\\n height: 100%;\\n background-color: #2e3668;\\n color: #fff;\\n position: absolute;\\n transition: all 0.3s ease;\\n}\\n\\n/* Left Slider */\\n\\n.btn-2:before {\\n top: 0;\\n left: -250px;\\n}\\n\\n.btn-2:hover:before {\\n left: 0;\\n}\\n\\n.btn-2:hover {\\n color: #fff;\\n}\\n\\n.btn-1 {\\n background-color: #ffffff !important;\\n color: #e64243 !important;\\n border: 1px solid #e64243;\\n}\\n\\n.btn-1 p {\\n margin: auto;\\n}\\n\\n.filter-label {\\n font: 12px Roboto;\\n letter-spacing: 0px;\\n color: #3c3c3c;\\n opacity: 1;\\n margin-bottom: 3px;\\n padding: 1px 0px 0px;\\n}\\n\\n.filter1 ::ng-deep .mat-select {\\n padding: 3px 0px;\\n}\\n\\n.filter1 ::ng-deep .mat-button {\\n font-size: 12px;\\n font: white;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-infix {\\n border: 1px solid lightgray;\\n border-radius: 5px;\\n background: white;\\n padding: 0;\\n font-size: 12px !important;\\n height: 24px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-trigger {\\n padding-left: 8px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-value {\\n width: 89%;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label-wrapper {\\n top: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-underline {\\n display: none;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label {\\n top: 0;\\n margin-top: 6px !important;\\n padding-left: 5px;\\n}\\n\\n.filter1-input {\\n margin-top: 7px !important;\\n margin-left: 5px;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-flex {\\n border: 1px solid #2e3668;\\n border-radius: 3px;\\n background: white;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-label {\\n padding-left: 10px;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-infix {\\n border-top: none;\\n}\\n\\n.textboxService ::ng-deep label.mat-form-field-label {\\n margin-top: 8px !important;\\n}\\n\\n.textboxService ::ng-deep input.mat-input-element {\\n margin-top: 0.6em;\\n margin-left: 10px;\\n}\\n\\n.form-field1 {\\n margin-top: 5px;\\n}\\n\\n.search-icon {\\n position: absolute;\\n right: 15px;\\n top: 8px;\\n}\\n\\n.filter2 {\\n width: auto;\\n}\\n\\n.grid-button {\\n position: absolute;\\n}\\n\\n.lost {\\n color: #e64243;\\n position: initial;\\n left: 10px;\\n font-size: 10px;\\n top: 38%;\\n}\\n\\n.close-con {\\n font-size: 18px;\\n cursor: pointer;\\n top: 3px;\\n right: 1px;\\n position: absolute !important;\\n z-index: 10;\\n opacity: 1;\\n}\\n\\n.call-stats-card-border {\\n border-style: solid solid solid solid;\\n border-width: 1px;\\n border-radius: 0%;\\n border-color: lightgray;\\n}\\n\\n.call-stats-card-border1 {\\n border-style: solid solid solid solid;\\n border-width: 1px;\\n border-radius: 0%;\\n border-color: lightgray;\\n}\\n\\n.call-stats-card .mat-card-title {\\n margin-bottom: 0px;\\n}\\n\\n.filterdiv {\\n align-items: center;\\n}\\n\\n.filterdiv1 {\\n align-items: center;\\n margin-right: 475px;\\n}\\n\\n.button-margin {\\n margin-left: 10px;\\n}\\n\\n.filterButton {\\n color: white !important;\\n background-color: #00457D;\\n height: 26px;\\n line-height: 10px;\\n margin-bottom: 1px;\\n}\\n\\n.table-border.mat-table {\\n border-style: none solid solid none;\\n border-color: lightgray;\\n}\\n\\n.convo-stus {\\n width: 1%;\\n}\\n\\n.paginator ::ng-deep .mat-form-field-infix {\\n height: 18px !important;\\n padding-bottom: 0px;\\n}\\n\\n.searchfilter {\\n height: 30px;\\n margin-left: 10px;\\n font-size: 12px;\\n border: 0;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9jb21wb25lbnQvcmVwb3J0aW5nL3JlcG9ydGluZy5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50L3JlcG9ydGluZy9yZXBvcnRpbmcuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxrQkFBQTtFQUVBLGNBQUE7RUFDQSxpQkFBQTtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7QUNBSjs7QURHQTtFQUNJLGNBQUE7RUFDQSxpQkFBQTtFQUNBLGtCQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VBQ0EsWUFBQTtBQ0FKOztBREdBO0VBQ0ksaUJBQUE7QUNBSjs7QURHQTtFQUNJLG1CQUFBO0VBQ0Esa0JBQUE7QUNBSjs7QURHQTtFQUNJLFlBQUE7RUFDQSxpQkFBQTtBQ0FKOztBREdBO0VBQ0ksV0FBQTtFQUNBLHlCQUFBO0VBQ0EsZ0JBQUE7QUNBSjs7QURHQTs7RUFFSSx5QkFBQTtFQUNBLFlBQUE7QUNBSjs7QURHQTs7O0VBR0ksWUFBQTtFQUNBLGlCQUFBO0FDQUo7O0FER0E7RUFDSSxVQUFBO0FDQUo7O0FER0E7RUFDSSxTQUFBO0FDQUo7O0FER0E7RUFDSSxTQUFBO0FDQUo7O0FER0E7RUFDSSxVQUFBO0FDQUo7O0FER0E7RUFDSSxTQUFBO0FDQUo7O0FER0E7RUFDSSxTQUFBO0FDQUo7O0FER0E7RUFDSSxTQUFBO0FDQUo7O0FER0E7RUFDSSxTQUFBO0FDQUo7O0FER0E7RUFDSSxpQkFBQTtFQUNBLGtCQUFBO0FDQUo7O0FER0E7RUFDSSxZQUFBO0FDQUo7O0FER0E7RUFDSSxzQkFBQTtFQUVBLG1CQUFBO0VBQ0EsY0FBQTtFQUNBLDBCQUFBO0FDREo7O0FES0E7RUFDSSwwQkFBQTtFQUNBLGtCQUFBO0FDRko7O0FES0E7OztFQUdJLFlBQUE7RUFDQSxtQ0FBQTtFQUNBLG1CQUFBO0VBQ0EsdUJBQUE7QUNGSjs7QURLQTtFQUNJLGVBQUE7RUFDQSwwQkFBQTtFQUNB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LG1DQUFBO0VBQ0EsdUJBQUE7QUNmSjs7QURrQkE7RUFDSSxTQUFBO0FDZko7O0FEa0JBO0VBQ0ksdUJBQUE7RUFDQSxtQkFBQTtBQ2ZKOztBRGtCQTtFQUVJLFlBQUE7RUFDQSxpQkFBQTtFQUNBLGVBQUE7RUFDQSxTQUFBO0FDaEJKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50L3JlcG9ydGluZy9yZXBvcnRpbmcuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZXhhbXBsZS1jYXJkMSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIC8vd2lkdGg6IDgwJTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLmV4YW1wbGUtY2FyZDIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBwYWRkaW5nOiAwcHg7XG59XG5cbi53b3JraW5nLWFyZWEge1xuICAgIG1hcmdpbi10b3A6IDExNXB4O1xufVxuXG4ua3BpLXNlYXJjaC1kYXRlIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzMHB4O1xuICAgIHBhZGRpbmctbGVmdDogMTVweDtcbn1cblxuLmtwaS1zZWFyY2gtYnV0dG9uIHtcbiAgICB3aWR0aDogMTYwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbnRhYmxlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG59XG5cbi50YWJsZSB0ZCxcbi50YWJsZSB0aCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2UwZTBlMDtcbiAgICBwYWRkaW5nOiA5cHg7XG59XG5cbnRkLm1hdC1jZWxsLFxudGQubWF0LWZvb3Rlci1jZWxsLFxudGgubWF0LWhlYWRlci1jZWxsIHtcbiAgICBwYWRkaW5nOiAzcHg7XG4gICAgdGV4dC1hbGlnbjogc3RhcnQ7XG59XG5cbi5jdXN0LXdpZHRoIHtcbiAgICB3aWR0aDogMTIlO1xufVxuXG4uZHVlLXdpZHRoIHtcbiAgICB3aWR0aDogNSU7XG59XG5cbi5kdWUtd2lkdGgxIHtcbiAgICB3aWR0aDogMyU7XG59XG5cbi5tb2RlbC13aWR0aCB7XG4gICAgd2lkdGg6IDEyJTtcbn1cblxuLnNldC13aWR0aCB7XG4gICAgd2lkdGg6IDYlO1xufVxuXG4uY29udGFjdC13aWR0aCB7XG4gICAgd2lkdGg6IDUlO1xufVxuXG4uY2hhc3Npcy13aWR0aCB7XG4gICAgd2lkdGg6IDglO1xufVxuXG4uc2VydmljLXdpZHRoIHtcbiAgICB3aWR0aDogMSU7XG59XG5cbi5kYXRhR3JpZEhlYWRlciB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xufVxuXG4udGFibGUtaGVhZC1jYWxsIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gICAgbWFyZ2luOiAxMHB4O1xufVxuXG4uY29sdW1uSGVhZGVyIHtcbiAgICBmb250OiBib2xkIDEycHggUm9ib3RvO1xuICAgIC8vZm9udC1zaXplOiBpbmhlcml0O1xuICAgIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gICAgY29sb3I6ICMzMzMzMzM7XG4gICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gICAgLy9vcGFjaXR5OiAxO1xufVxuXG4uY29sdW1udmFsdWUge1xuICAgIGZvbnQtc2l6ZTogMTFweCAhaW1wb3J0YW50O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxudGQubWF0LWNlbGwsXG50ZC5tYXQtZm9vdGVyLWNlbGwsXG50aC5tYXQtaGVhZGVyLWNlbGwge1xuICAgIHBhZGRpbmc6IDNweDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkIG5vbmUgbm9uZSBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDAuMXB4O1xuICAgIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4uY2FsbExpc3QtcmlnaHQge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICBoZWlnaHQ6IDE1cHggIWltcG9ydGFudDtcbn1cblxuLmZvcm0tZmllbGQge1xuICAgIGxhYmVsIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIH1cbiAgICBpbnB1dCB7XG4gICAgICAgIHBhZGRpbmc6IDZweDtcbiAgICB9XG59XG5cbi5tLXQtMjAge1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG59XG5cbi5tLWwtMjAge1xuICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xufVxuXG4uY2FsZW5kZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBpbnB1dCB7XG4gICAgICAgIHdpZHRoOiAxODBweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5ICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBoZWlnaHQ6IDIycHg7XG4gICAgICAgIHBhZGRpbmctbGVmdDogNXB4O1xuICAgIH1cbn1cblxuLmNhbGFuZGVyLWJ0biB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiA3cHg7XG4gICAgdG9wOiA0cHg7XG59XG5cbi8vc2xpZGluZyBidG5cbi5idG4ge1xuICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgIzJlMzY2ODtcbiAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U2NDI0MyAhaW1wb3J0YW50O1xufVxuXG4uYnRuIHAge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gICAgbWFyZ2luOiBhdXRvO1xufVxuXG5cbi8qIHNsaWRlcnMgKi9cblxuLmJ0bjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyZTM2Njg7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG5cblxuLyogTGVmdCBTbGlkZXIgKi9cblxuLmJ0bi0yOmJlZm9yZSB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IC0yNTBweDtcbn1cblxuLmJ0bi0yOmhvdmVyOmJlZm9yZSB7XG4gICAgbGVmdDogMDtcbn1cblxuLmJ0bi0yOmhvdmVyIHtcbiAgICBjb2xvcjogI2ZmZjtcbn1cblxuLmJ0bi0xIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNlNjQyNDMgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTY0MjQzO1xufVxuXG4uYnRuLTEgcCB7XG4gICAgbWFyZ2luOiBhdXRvO1xufVxuXG4uZmlsdGVyLWxhYmVsIHtcbiAgICBmb250OiAxMnB4IFJvYm90bztcbiAgICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICAgIGNvbG9yOiAjM2MzYzNjO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICAgIHBhZGRpbmc6IDFweCAwcHggMHB4O1xufVxuXG4vLyAuZmlsdGVyMSB7XG4vLyAgICAgZm9udC1zaXplOiAxNHB4O1xuLy8gfVxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0IHtcbiAgICBwYWRkaW5nOiAzcHggMHB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1idXR0b24ge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250OiB3aGl0ZTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogMjRweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICAgIHBhZGRpbmctbGVmdDogOHB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdmFsdWUge1xuICAgIHdpZHRoOiA4OSU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gICAgdG9wOiAwO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgdG9wOiAwO1xuICAgIG1hcmdpbi10b3A6IDZweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctbGVmdDogNXB4O1xufVxuXG4uZmlsdGVyMS1pbnB1dCB7XG4gICAgbWFyZ2luLXRvcDogN3B4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDVweDtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzJlMzY2ODtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICBib3JkZXItdG9wOiBub25lO1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIGxhYmVsLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICBtYXJnaW4tdG9wOiA4cHggIWltcG9ydGFudDtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCBpbnB1dC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gICAgbWFyZ2luLXRvcDogMC42ZW07XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbi5mb3JtLWZpZWxkMSB7XG4gICAgbWFyZ2luLXRvcDogNXB4O1xufVxuXG4uc2VhcmNoLWljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMTVweDtcbiAgICB0b3A6IDhweDtcbn1cblxuLmZpbHRlcjIge1xuICAgIHdpZHRoOiBhdXRvO1xufVxuXG4uZ3JpZC1idXR0b24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLmxvc3Qge1xuICAgIGNvbG9yOiAjZTY0MjQzO1xuICAgIHBvc2l0aW9uOiBpbml0aWFsO1xuICAgIGxlZnQ6IDEwcHg7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIHRvcDogMzglO1xufVxuXG4uY2xvc2UtY29uIHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRvcDogM3B4O1xuICAgIHJpZ2h0OiAxcHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gICAgei1pbmRleDogMTA7XG4gICAgb3BhY2l0eTogMTtcbn1cblxuLmNhbGwtc3RhdHMtY2FyZC1ib3JkZXIge1xuICAgIGJvcmRlci1zdHlsZTogc29saWQgc29saWQgc29saWQgc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMCU7XG4gICAgLy8gbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxuLmNhbGwtc3RhdHMtY2FyZC1ib3JkZXIxIHtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIHNvbGlkIHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDAlO1xuICAgIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4uY2FsbC1zdGF0cy1jYXJkIHtcbiAgICAubWF0LWNhcmQtdGl0bGUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgfVxufVxuXG4uZmlsdGVyZGl2IHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uZmlsdGVyZGl2MSB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtYXJnaW4tcmlnaHQ6IDQ3NXB4O1xufVxuXG4uYnV0dG9uLW1hcmdpbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbi5maWx0ZXJCdXR0b24ge1xuICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0Q7XG4gICAgaGVpZ2h0OiAyNnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDFweDtcbn1cblxuLnRhYmxlLWJvcmRlci5tYXQtdGFibGUge1xuICAgIGJvcmRlci1zdHlsZTogbm9uZSBzb2xpZCBzb2xpZCBub25lO1xuICAgIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4uY29udm8tc3R1cyB7XG4gICAgd2lkdGg6IDElO1xufVxuXG4ucGFnaW5hdG9yIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgIGhlaWdodDogMThweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAwcHg7XG59XG5cbi5zZWFyY2hmaWx0ZXIge1xuICAgIC8vd2lkdGg6IDEwMHB4O1xuICAgIGhlaWdodDogMzBweDtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgYm9yZGVyOiAwO1xufSIsIi5leGFtcGxlLWNhcmQxIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLmV4YW1wbGUtY2FyZDIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xuICBwYWRkaW5nOiAwcHg7XG59XG5cbi53b3JraW5nLWFyZWEge1xuICBtYXJnaW4tdG9wOiAxMTVweDtcbn1cblxuLmtwaS1zZWFyY2gtZGF0ZSB7XG4gIHBhZGRpbmctcmlnaHQ6IDMwcHg7XG4gIHBhZGRpbmctbGVmdDogMTVweDtcbn1cblxuLmtwaS1zZWFyY2gtYnV0dG9uIHtcbiAgd2lkdGg6IDE2MHB4O1xuICBtYXJnaW4tbGVmdDogMTBweDtcbn1cblxudGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgbWFyZ2luLXRvcDogMjBweDtcbn1cblxuLnRhYmxlIHRkLFxuLnRhYmxlIHRoIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2UwZTBlMDtcbiAgcGFkZGluZzogOXB4O1xufVxuXG50ZC5tYXQtY2VsbCxcbnRkLm1hdC1mb290ZXItY2VsbCxcbnRoLm1hdC1oZWFkZXItY2VsbCB7XG4gIHBhZGRpbmc6IDNweDtcbiAgdGV4dC1hbGlnbjogc3RhcnQ7XG59XG5cbi5jdXN0LXdpZHRoIHtcbiAgd2lkdGg6IDEyJTtcbn1cblxuLmR1ZS13aWR0aCB7XG4gIHdpZHRoOiA1JTtcbn1cblxuLmR1ZS13aWR0aDEge1xuICB3aWR0aDogMyU7XG59XG5cbi5tb2RlbC13aWR0aCB7XG4gIHdpZHRoOiAxMiU7XG59XG5cbi5zZXQtd2lkdGgge1xuICB3aWR0aDogNiU7XG59XG5cbi5jb250YWN0LXdpZHRoIHtcbiAgd2lkdGg6IDUlO1xufVxuXG4uY2hhc3Npcy13aWR0aCB7XG4gIHdpZHRoOiA4JTtcbn1cblxuLnNlcnZpYy13aWR0aCB7XG4gIHdpZHRoOiAxJTtcbn1cblxuLmRhdGFHcmlkSGVhZGVyIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbn1cblxuLnRhYmxlLWhlYWQtY2FsbCAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAge1xuICBtYXJnaW46IDEwcHg7XG59XG5cbi5jb2x1bW5IZWFkZXIge1xuICBmb250OiBib2xkIDEycHggUm9ib3RvO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICBjb2xvcjogIzMzMzMzMztcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG59XG5cbi5jb2x1bW52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogMTFweCAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbnRkLm1hdC1jZWxsLFxudGQubWF0LWZvb3Rlci1jZWxsLFxudGgubWF0LWhlYWRlci1jZWxsIHtcbiAgcGFkZGluZzogM3B4O1xuICBib3JkZXItc3R5bGU6IHNvbGlkIG5vbmUgbm9uZSBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAwLjFweDtcbiAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG59XG5cbi5jYWxsTGlzdC1yaWdodCB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nLWxlZnQ6IDhweDtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgaGVpZ2h0OiAxNXB4ICFpbXBvcnRhbnQ7XG59XG5cbi5mb3JtLWZpZWxkIGxhYmVsIHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuLmZvcm0tZmllbGQgaW5wdXQge1xuICBwYWRkaW5nOiA2cHg7XG59XG5cbi5tLXQtMjAge1xuICBtYXJnaW4tdG9wOiAyMHB4O1xufVxuXG4ubS1sLTIwIHtcbiAgbWFyZ2luLWxlZnQ6IDIwcHg7XG59XG5cbi5jYWxlbmRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG4uY2FsZW5kZXIgaW5wdXQge1xuICB3aWR0aDogMTgwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgaGVpZ2h0OiAyMnB4O1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbn1cblxuLmNhbGFuZGVyLWJ0biB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDdweDtcbiAgdG9wOiA0cHg7XG59XG5cbi5idG4ge1xuICBib3JkZXItbGVmdDogNHB4IHNvbGlkICMyZTM2Njg7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNjQyNDMgIWltcG9ydGFudDtcbn1cblxuLmJ0biBwIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogI2ZmZjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICBtYXJnaW46IGF1dG87XG59XG5cbi8qIHNsaWRlcnMgKi9cbi5idG46YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJlMzY2ODtcbiAgY29sb3I6ICNmZmY7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cblxuLyogTGVmdCBTbGlkZXIgKi9cbi5idG4tMjpiZWZvcmUge1xuICB0b3A6IDA7XG4gIGxlZnQ6IC0yNTBweDtcbn1cblxuLmJ0bi0yOmhvdmVyOmJlZm9yZSB7XG4gIGxlZnQ6IDA7XG59XG5cbi5idG4tMjpob3ZlciB7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG4uYnRuLTEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZTY0MjQzICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNjQyNDM7XG59XG5cbi5idG4tMSBwIHtcbiAgbWFyZ2luOiBhdXRvO1xufVxuXG4uZmlsdGVyLWxhYmVsIHtcbiAgZm9udDogMTJweCBSb2JvdG87XG4gIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gIGNvbG9yOiAjM2MzYzNjO1xuICBvcGFjaXR5OiAxO1xuICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gIHBhZGRpbmc6IDFweCAwcHggMHB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3Qge1xuICBwYWRkaW5nOiAzcHggMHB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1idXR0b24ge1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQ6IHdoaXRlO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBwYWRkaW5nOiAwO1xuICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAyNHB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gIHBhZGRpbmctbGVmdDogOHB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdmFsdWUge1xuICB3aWR0aDogODklO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIge1xuICB0b3A6IDA7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRvcDogMDtcbiAgbWFyZ2luLXRvcDogNnB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xufVxuXG4uZmlsdGVyMS1pbnB1dCB7XG4gIG1hcmdpbi10b3A6IDdweCAhaW1wb3J0YW50O1xuICBtYXJnaW4tbGVmdDogNXB4O1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzJlMzY2ODtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCBsYWJlbC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIG1hcmdpbi10b3A6IDhweCAhaW1wb3J0YW50O1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIGlucHV0Lm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgbWFyZ2luLXRvcDogMC42ZW07XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuXG4uZm9ybS1maWVsZDEge1xuICBtYXJnaW4tdG9wOiA1cHg7XG59XG5cbi5zZWFyY2gtaWNvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDE1cHg7XG4gIHRvcDogOHB4O1xufVxuXG4uZmlsdGVyMiB7XG4gIHdpZHRoOiBhdXRvO1xufVxuXG4uZ3JpZC1idXR0b24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbi5sb3N0IHtcbiAgY29sb3I6ICNlNjQyNDM7XG4gIHBvc2l0aW9uOiBpbml0aWFsO1xuICBsZWZ0OiAxMHB4O1xuICBmb250LXNpemU6IDEwcHg7XG4gIHRvcDogMzglO1xufVxuXG4uY2xvc2UtY29uIHtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRvcDogM3B4O1xuICByaWdodDogMXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgei1pbmRleDogMTA7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5jYWxsLXN0YXRzLWNhcmQtYm9yZGVyIHtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZCBzb2xpZCBzb2xpZCBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1yYWRpdXM6IDAlO1xuICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxuLmNhbGwtc3RhdHMtY2FyZC1ib3JkZXIxIHtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZCBzb2xpZCBzb2xpZCBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1yYWRpdXM6IDAlO1xuICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxuLmNhbGwtc3RhdHMtY2FyZCAubWF0LWNhcmQtdGl0bGUge1xuICBtYXJnaW4tYm90dG9tOiAwcHg7XG59XG5cbi5maWx0ZXJkaXYge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uZmlsdGVyZGl2MSB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbi1yaWdodDogNDc1cHg7XG59XG5cbi5idXR0b24tbWFyZ2luIHtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbi5maWx0ZXJCdXR0b24ge1xuICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RDtcbiAgaGVpZ2h0OiAyNnB4O1xuICBsaW5lLWhlaWdodDogMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMXB4O1xufVxuXG4udGFibGUtYm9yZGVyLm1hdC10YWJsZSB7XG4gIGJvcmRlci1zdHlsZTogbm9uZSBzb2xpZCBzb2xpZCBub25lO1xuICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxuLmNvbnZvLXN0dXMge1xuICB3aWR0aDogMSU7XG59XG5cbi5wYWdpbmF0b3IgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIGhlaWdodDogMThweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWJvdHRvbTogMHB4O1xufVxuXG4uc2VhcmNoZmlsdGVyIHtcbiAgaGVpZ2h0OiAzMHB4O1xuICBtYXJnaW4tbGVmdDogMTBweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBib3JkZXI6IDA7XG59Il19 */\"","import { Component, ViewChild } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { CommonService } from '../../core/service/common-service/common.service';\nimport { Router } from '@angular/router';\nimport { MatTableDataSource, MatSort, MatPaginator, MatSelect, MatOption } from '@angular/material';\nimport { DatePipe } from '@angular/common';\nimport { FormControl, FormBuilder, FormGroup } from '@angular/forms';\nimport { kpiCustData } from './kpiCustData';\nimport * as _moment from 'moment';\nimport { DateTimeAdapter, OWL_DATE_TIME_FORMATS, OWL_DATE_TIME_LOCALE } from 'ng-pick-datetime';\nimport { MomentDateTimeAdapter } from 'ng-pick-datetime-moment';\nimport { ToastrService } from 'ngx-toastr';\n\nconst moment = (_moment as any).default ? (_moment as any).default : _moment;\n\nexport const MY_CUSTOM_FORMATS = {\n parseInput: 'LL LT',\n fullPickerInput: 'DD-MM-YYYY LT',\n datePickerInput: 'DD-MM-YYYY',\n timePickerInput: 'LT',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n};\n\n@Component({\n selector: 'app-reporting',\n templateUrl: './reporting.component.html',\n styleUrls: ['./reporting.component.scss'],\n providers: [\n { provide: DateTimeAdapter, useClass: MomentDateTimeAdapter, deps: [OWL_DATE_TIME_LOCALE] },\n { provide: OWL_DATE_TIME_FORMATS, useValue: MY_CUSTOM_FORMATS }\n ],\n})\n\nexport class ReportingComponent {\n\n @ViewChild(MatSort, { static: true }) sort: MatSort;\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\n @ViewChild('filterSelect', { static: true }) filterSelect: MatSelect;\n @ViewChild('allSelected', { static: true }) private allSelected: MatOption;\n\n searchValue: FormControl = new FormControl();\n\n displayedColumns: string[] = [\n 'bookingId',\n 'customerName',\n 'inbound',\n 'duaDate',\n 'workshopName',\n 'serviceType',\n 'subProcess',\n 'contactNo',\n 'registrationNo',\n 'chassisNo',\n 'modelDescription',\n 'leadGenerationDate',\n 'noOfAttempts',\n 'noOfContact',\n 'lastContacted',\n 'noOfBooking',\n 'lastBooking',\n 'bayNo',\n 'leadStatus',\n 'conversionStatus',\n 'cstAppBookingId',\n 'sourceId',\n 'appStatus'\n ];\n\n selectWorkshop: FormGroup;\n dataSource: any;\n today: Date = new Date();\n toDate: Date = new Date();\n fromDate: Date = new Date();\n toDatenew: Date = new Date();\n fromDatenew: Date = new Date();\n toDateUsr: Date = new Date();\n fromDateUsr: Date = new Date();\n spinner: boolean;\n userId: string;\n userInfo: any;\n filterValues: string[] = [];\n workshopcodeFilter: string;\n workshopFilter: string;\n workshopcode: string;\n splitworkshopcode: string[] = [];\n selectedFilter: string[] = [];\n HideGrid: boolean = true;\n dataGridArray: kpiCustData[] = [];\n wsCodeFilter: string;\n clear: boolean;\n maxDate: Date = new Date();\n selectedReportType: string;\n reportTypeValues: any[] = ['ALL', 'Booking'];\n filterValuesCopy: string[] = [];\n selectedDealer:any;\n dealerCode: string[] = [];\n userRole: any;\n smeRole: boolean = true;\n panRole: boolean = true;\n rsmRole: boolean = true;\n otherRole: boolean = true;\n dataGridSize: number = 0;\n\n constructor(private datePipe: DatePipe, private toastr: ToastrService,\n public dialog: MatDialog, private commonService: CommonService,\n private router: Router, private fb: FormBuilder) { }\n\n ngOnInit() {\n this.userId = localStorage.getItem('userId');\n this.userInfo = JSON.parse(localStorage.getItem('userInfo'));\n this.userRole=localStorage.getItem('userRoles');\n let days=this.getDays();\n if(days==30)\n this.fromDateUsr= moment().add(-30,'d').set({hours:0, minutes:0, seconds:0 , milliseconds:0})\n else\n this.fromDateUsr= moment().add(-31,'d').set({hours:0, minutes:0, seconds:0 , milliseconds:0})\n this.toDateUsr.setDate(this.today.getDate() + 15);\n if (this.userRole == \"SME\") {\n this.smeRole = false;\n } else if (this.userRole == \"Pan India\") {\n this.panRole = false;\n } else if (this.userRole == \"Regional Service Manager\") {\n this.rsmRole = false;\n } else {\n this.otherRole = false;\n }\n if (localStorage.getItem('userId') == null || localStorage.getItem('userId') == undefined) {\n this.router.navigate(['login']);\n }\n this.selectWorkshop = this.fb.group({\n workshopCodeType: new FormControl(this.filterValues),\n selectedDealer: ['']\n });\n if(this.userRole==\"CRE\" || this.userRole== \"Pan India\"){\n this.selectedReportType = this.reportTypeValues[0];\n }\n else{\n this.selectedReportType=\"\"\n }\n //this.selectedFilter = this.filterValues;\n //this.minDate.setDate(this.toDate.getDate()-30);\n this.workshopCodeFilter();\n }\n\n /**\n * Name: getDays\n * purpose: to get number of Days in previous month\n */\n getDays(){\n let month =this.today.getMonth();\n let year = this.today.getFullYear();\n return new Date(year, month, 0).getDate();\n\n }\n\n /**\n * Name: getprocessreport\n * purpose: To export report as excel\n */\n getprocessreport(): void {\n this.spinner = true;\n let fdate = this.datePipe.transform(this.fromDate, \"yyyy-MM-dd\");\n let tdate = this.datePipe.transform(this.toDate, \"yyyy-MM-dd\");\n let fileName = \"SRM_Data Status Report_From_\" + fdate + \"_To_\" + tdate;\n let roleId = this.userInfo['0'].roleId || '1';\n this.applyfilter();\n this.commonService.getprocessreport(fdate, tdate, this.userId, roleId, this.wsCodeFilter)\n .subscribe(fileData => {\n if (fileData) {\n const blob: any = new Blob([fileData], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\n let link = document.createElement(\"a\");\n if (link.download !== undefined) {\n let url = URL.createObjectURL(blob);\n link.setAttribute(\"href\", url);\n link.setAttribute(\"download\", fileName);\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n this.spinner = false;\n }\n } else {\n this.spinner = false;\n }\n }, err => {\n this.spinner = false;\n });\n }\n\n /**\n * Name: getLostCustomerProcessReport\n * purpose: To export report as excel\n */\n getLostCustomerProcessReport(): void {\n this.spinner = true;\n let fdate = this.datePipe.transform(this.fromDate, \"yyyy-MM-dd\");\n let tdate = this.datePipe.transform(this.toDate, \"yyyy-MM-dd\");\n let fileName = \"LCRM_data_status_report_from_\" + fdate + \"_to_\" + tdate;\n let roleId = this.userInfo['0'].roleId || '1';\n this.applyfilter();\n this.commonService.getLostCustomerProcessReport(fdate, tdate, this.userId, roleId, this.wsCodeFilter)\n .subscribe(fileData => {\n if (fileData) {\n const blob: any = new Blob([fileData], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\n let link = document.createElement(\"a\");\n if (link.download !== undefined) {\n let url = URL.createObjectURL(blob);\n link.setAttribute(\"href\", url);\n link.setAttribute(\"download\", fileName);\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n this.spinner = false;\n }\n } else {\n this.spinner = false;\n }\n }, err => {\n this.spinner = false;\n });\n }\n/**\n * Name: getVisitFormReport\n * purpose: To export vist form report as excel\n */\n getVisitFormReport(){\n this.spinner = true;\n let fdate = this.datePipe.transform(this.fromDate, \"yyyy-MM-dd\");\n let tdate = this.datePipe.transform(this.toDate, \"yyyy-MM-dd\");\n let fileName = \"Vist_Form_status_report_from_\" + fdate + \"_to_\" + tdate;\n let roleId = this.userInfo['0'].roleId || '1';\n this.applyfilter();\n this.commonService.getLostVisitFormReport(fdate, tdate, this.userId, roleId, this.wsCodeFilter)\n .subscribe(fileData => {\n if (fileData) {\n const blob: any = new Blob([fileData], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\n let link = document.createElement(\"a\");\n if (link.download !== undefined) {\n let url = URL.createObjectURL(blob);\n link.setAttribute(\"href\", url);\n link.setAttribute(\"download\", fileName);\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n this.spinner = false;\n }\n } else {\n this.spinner = false;\n }\n }, err => {\n this.spinner = false;\n });\n\n }\n\n /**\n * Name: prepairCallList\n * purpose: To prepare call list for dataGrid\n */\n prepairCallList(): void {\n this.spinner = true;\n let startdate = this.datePipe.transform(this.fromDate, \"yyyy-MM-dd\");\n let enddate = this.datePipe.transform(this.toDate, \"yyyy-MM-dd\");\n let roleId = this.userInfo['0'].roleId || '1';\n let reportTyp = \"\";\n if(this.selectedReportType != \"ALL\"&& this.userRole==\"CRE\") {\n reportTyp = \"B\"\n } else {\n reportTyp=\"\"\n }\n this.applyfilter();\n this.commonService.dataGrid(this.userId, roleId, startdate, enddate, this.wsCodeFilter, reportTyp)\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n if (res['responseData'].length) {\n this.HideGrid = false;\n this.dataSource = new MatTableDataSource(res['responseData']['gridEntityList']);\n this.dataSource.sort = this.sort;\n this.dataSource.paginator = this.paginator;\n this.spinner = false;\n }\n } else {\n this.spinner = false;\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: workshopCodeFilter\n * purpose: To get workshop code filter\n */\n workshopCodeFilter(): void {\n this.filterValues = [];\n this.workshopcodeFilter;\n this.splitworkshopcode = [];\n this.workshopFilter;\n this.workshopcode;\n let roleId = this.userInfo['0'].roleId || '1';\n this.commonService.workshopFilter(this.userId, roleId)\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n if (res['responseData'].length) {\n res['responseData'].forEach(data => {\n this.workshopcodeFilter = data.workshop;\n this.workshopcode = (this.workshopcodeFilter.split(\" \", 1)).toString();\n this.splitworkshopcode.push(this.workshopcode);\n this.filterValues.push(this.workshopcodeFilter);\n });\n //this.selectedFilter = this.filterValues;\n this.workshopFilter = this.splitworkshopcode.toString();\n this.filterValuesCopy = this.filterValues;\n //this.prepairCallList();\n }\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n tosslePerOne(all){\n if (this.allSelected.selected) {\n this.allSelected.deselect();\n return false;\n }\n if(this.selectWorkshop.controls.workshopCodeType.value.length==this.filterValues.length)\n this.allSelected.select();\n }\n\n /**\n * Name: toggleAllSelection\n * purpose: To select/remove all data in workshop drop down\n */\n toggleAllSelection(): void {\n if (this.allSelected.selected) {\n this.selectWorkshop.controls.workshopCodeType.patchValue([...this.filterValues,0]);\n } else {\n this.selectWorkshop.controls.workshopCodeType.patchValue([]);\n }\n }\n\n /**\n * Name: searchfilter\n * purpose: To apply filter on datagrid\n */\n searchfilter(filterValue: string): void {\n filterValue = filterValue.trim(); // Remove whitespace\n filterValue = filterValue.toLowerCase(); // Datasource defaults to lowercase matches\n this.dataSource.filter = filterValue;\n }\n\n /**\n * Name: apply\n * purpose: To apply filter on datagrid\n */\n apply(): void {\n this.spinner = true;\n this.dataSource = '';\n let startdate = this.datePipe.transform(this.fromDate, \"yyyy-MM-dd\");\n let enddate = this.datePipe.transform(this.toDate, \"yyyy-MM-dd\");\n let roleId = this.userInfo['0'].roleId || '1';\n let reportTyp = \"\";\n if(this.selectedReportType != \"ALL\" && this.userRole==\"CRE\") {\n reportTyp = \"B\"\n } else {\n reportTyp=\"\"\n }\n this.applyfilter();\n this.commonService.dataGrid(this.userId, roleId, startdate, enddate, this.wsCodeFilter, reportTyp)\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n this.dataSource = new MatTableDataSource(res['responseData']['gridEntityList']);\n this.dataGridSize = this.dataSource.length;\n // this.sort.direction = '';\n this.dataSource.sort = this.sort;\n this.dataSource.paginator = this.paginator;\n this.spinner = false;\n } else {\n this.spinner = false;\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: applyfilter\n * purpose: To select and apply the selected workshopcode\n */\n applyfilter() {\n this.wsCodeFilter = '';\n this.selectedFilter;\n this.workshopFilter;\n if (this.selectedFilter != null) {\n let splitCode = [];\n this.selectedFilter.forEach((data) => {\n if(data != '0') {\n //data.split(\" - \")[0];\n splitCode.push(data.split(\" - \")[0]).toString();\n }\n });\n this.wsCodeFilter = splitCode.toString();\n } else {\n this.wsCodeFilter = this.selectedFilter.toString();\n }\n //this.wsCodeFilter = this.selectedFilter.toString();\n }\n\n /**\n * Name: clearSearch\n * purpose: To clear search value from search box\n */\n clearSearch() {\n this.dataGridArray = [];\n this.dataSource = '';\n this.searchValue.setValue('');\n this.searchValue.enable();\n this.HideGrid = true;\n this.prepairCallList();\n }\n\n filterTriggered(event: any): void {\n this.today = new Date();\n if((new Date(new Date(event.source.value).getTime()+(1000*60*60*24*15))).getTime() >= this.today.getTime()){\n this.today = new Date();\n if((new Date(new Date(event.source.value).getTime()+(1000*60*60*24*15))).getTime() >= this.today.getTime()){\n this.toDate = new Date();\n } else {\n this.toDate = new Date(new Date(event.source.value).getTime()+(1000*60*60*24*15));\n }\n } else {\n this.today = new Date(new Date(event.source.value).getTime()+(1000*60*60*24*15));\n this.toDate = new Date(new Date(event.source.value).getTime()+(1000*60*60*24*15));\n }\n }\n\n /**\n * Name: activeButton\n * purpose: To activat Booking Excel Report button\n */\n activeButton(): boolean {\n let flag = false;\n if (this.selectedReportType != undefined && this.selectedReportType != 'ALL') {\n flag = true;\n }\n return flag;\n }\n\n /**\n * Name: getBookingReport\n * purpose: To export report as excel\n */\n getBookingReport(): void {\n this.spinner = true;\n let startdate = this.datePipe.transform(this.fromDate, \"yyyy-MM-dd\");\n let enddate = this.datePipe.transform(this.toDate, \"yyyy-MM-dd\");\n let roleId = this.userInfo['0'].roleId || '1';\n let reportTyp = \"\";\n if(this.selectedReportType != \"ALL\"&& this.userRole==\"CRE\") {\n reportTyp = \"B\"\n } else {\n reportTyp=\"\"\n }\n let fileName = \"Booking Status Report_From_\" + startdate + \"_To_\" + enddate;\n this.applyfilter();\n this.commonService.getBookingReport(this.userId, roleId, startdate, enddate, this.wsCodeFilter, reportTyp)\n .subscribe(fileData => {\n if (fileData) {\n const blob: any = new Blob([fileData], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\n let link = document.createElement(\"a\");\n if (link.download !== undefined) {\n let url = URL.createObjectURL(blob);\n link.setAttribute(\"href\", url);\n link.setAttribute(\"download\", fileName);\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n this.spinner = false;\n }\n } else {\n this.spinner = false;\n }\n }, err => {\n this.spinner = false;\n });\n }\n\n onKey() : void {\n this.filterValues = this.filterValuesCopy;\n this.dealerCode = [];\n this.selectedDealer = this.selectWorkshop.controls.selectedDealer.value;\n this.selectedDealer = this.selectedDealer.toString();\n this.dealerCode = this.filterValues.filter(item =>\n item.toLowerCase().includes(this.selectedDealer.toLowerCase())\n );\n if(this.dealerCode.length > 0){\n this.closeInput();\n }\n this.filterValues = [];\n this.filterValues = this.dealerCode;\n }\n\n closeInput() : void {\n if(this.dealerCode.length == 0) {\n //this.selectedDealer = '';\n this.selectWorkshop.controls[\"selectedDealer\"].setValue(\"\");\n this.filterValues = this.filterValuesCopy;\n }\n }\n\n dateFilterTriggered(event: any): void {\n this.today = new Date();\n if(event.source.value == 'Booking') {\n this.today = new Date(new Date().getTime()+(1000*60*60*24*30));\n } else {\n this.today = new Date();\n this.toDate = new Date();\n }\n }\n\n /**\n * Name: setPageData\n * purpose: To set pagesize for table\n */\n setPageData(event) {\n let size = event.pageSize.toString();\n localStorage.setItem('dataGridPageSize', size);\n }\n\n getSrmUpcomingServiceReport(): void {\n this.spinner = true;\n let fdate = this.datePipe.transform(this.fromDatenew, \"yyyy-MM-dd\");\n let tdate = this.datePipe.transform(this.toDatenew, \"yyyy-MM-dd\");\n let fileName = \"SRM_Upcoming_Service_report_from_\" + fdate + \"_to_\" + tdate;\n let roleId = this.userInfo['0'].roleId || '1';\n this.applyfilter();\n this.commonService.getSrmUpcomingServiceReport(fdate, tdate)\n .subscribe(fileData => {\n if (fileData) {\n const blob: any = new Blob([fileData], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\n let link = document.createElement(\"a\");\n if (link.download !== undefined) {\n let url = URL.createObjectURL(blob);\n link.setAttribute(\"href\", url);\n link.setAttribute(\"download\", fileName);\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n this.spinner = false;\n }\n } else {\n this.spinner = false;\n }\n }, err => {\n this.spinner = false;\n });\n }\n\n}","export default \".working-area {\\n margin-bottom: 20px;\\n margin-left: 10px;\\n margin-top: 10px;\\n}\\n\\n.cust360-container {\\n margin: 115px 30px 30px 30px;\\n}\\n\\n.example-card1 {\\n display: block;\\n margin-left: auto;\\n margin-right: auto;\\n}\\n\\n.example-card1 .fontClass {\\n display: inline-block;\\n}\\n\\n.example-card1 .inlineClass {\\n display: inline-block;\\n}\\n\\n.example-card2 {\\n display: block;\\n margin-left: auto;\\n margin-right: auto;\\n border: none;\\n box-shadow: none;\\n padding: 0px;\\n}\\n\\n.survey {\\n margin-left: 15px;\\n font-size: 11px;\\n margin-bottom: 5px !important;\\n color: #707070;\\n}\\n\\n.fontClass {\\n font: Bold 12px/20px Roboto;\\n font-size: 12px;\\n color: #707070;\\n}\\n\\n.fontClassBold {\\n font-family: Bold 16px/22px Roboto;\\n color: #707070;\\n}\\n\\n.border {\\n border: 1px solid #707070;\\n font: 12px/18px Roboto;\\n color: #707070;\\n border-radius: 25px;\\n padding: 5px;\\n}\\n\\n.serv-heading {\\n width: 30%;\\n}\\n\\n.button {\\n text-align: center;\\n float: right;\\n font: Regular 16px/22px Roboto;\\n color: #ffffff;\\n border-radius: 0px;\\n cursor: pointer;\\n}\\n\\n.recent {\\n color: #1acc04;\\n position: relative;\\n right: 15px;\\n font-size: 12px;\\n top: 0;\\n margin-bottom: 7px;\\n}\\n\\n.disabled {\\n opacity: 0.6;\\n}\\n\\n.checkalign {\\n padding-left: 15px !important;\\n padding-top: 20px !important;\\n}\\n\\n.vehicle-det-prs .checkalign {\\n padding-left: 15px !important;\\n padding-top: 20px !important;\\n}\\n\\n.vehicle-det .checkalign {\\n padding-left: 10px !important;\\n padding-top: 5px !important;\\n}\\n\\n.inlineClass {\\n display: inline;\\n font: Regular 14px Roboto;\\n font-size: 12px;\\n letter-spacing: 0px;\\n color: black;\\n opacity: 1;\\n}\\n\\np.inlineClass {\\n margin-top: 0px;\\n margin-bottom: 5px;\\n}\\n\\n.marginClass {\\n margin-left: 20px;\\n}\\n\\n.navbar {\\n padding-left: 10px;\\n padding-top: 10px;\\n font-size: 12px;\\n}\\n\\n.navbar a {\\n cursor: pointer;\\n}\\n\\n.example-radio-button {\\n font-size: 12px;\\n margin-left: 10px;\\n}\\n\\n.number-form ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 5px;\\n}\\n\\n.number-form ::ng-deep .mat-form-field-infix {\\n padding: 0.1375em 0;\\n}\\n\\n.number-form ::ng-deep .mat-form-field-underline {\\n bottom: 0.25em;\\n height: 0px;\\n}\\n\\n.number-form ::ng-deep input.mat-input-element {\\n margin-top: 0px;\\n}\\n\\n.number-form {\\n width: 100%;\\n position: relative;\\n}\\n\\n.number-row {\\n width: 100%;\\n position: relative;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-infix {\\n border: 1px solid lightgray;\\n border-radius: 5px;\\n background: white;\\n padding: 0;\\n height: 20px;\\n}\\n\\n.filter1 ::ng-deep .mat-select {\\n padding: 2px 0px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-trigger {\\n padding-left: 8px;\\n width: 100%;\\n font-size: 12px;\\n padding-bottom: 5px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-value {\\n width: 90%;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label-wrapper {\\n top: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-underline {\\n display: none;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label {\\n top: 0;\\n margin-top: 4px !important;\\n padding-left: 5px;\\n}\\n\\n.filter-label {\\n font: Bold 14px Roboto;\\n letter-spacing: 0px;\\n color: #3c3c3c;\\n opacity: 1;\\n margin-bottom: 5px;\\n font-size: 13px;\\n}\\n\\n.fontClass {\\n font: Bold 14px/16px Roboto;\\n letter-spacing: 0px;\\n font-size: 12px;\\n color: #7b7a7a;\\n opacity: 1;\\n margin-bottom: 3px !important;\\n}\\n\\n.fontClassBold {\\n font-family: Bold 16px/22px Roboto;\\n color: #000000;\\n font-size: 12px;\\n font-weight: 500;\\n}\\n\\n.fontClassBold i {\\n color: #00457d;\\n margin-right: 5px;\\n}\\n\\n.border {\\n border: 1px solid #707070;\\n font: 12px/18px Roboto;\\n color: #707070;\\n border-radius: 25px;\\n padding: 5px;\\n}\\n\\n.button {\\n text-align: center;\\n float: right;\\n font: Regular 16px/22px Roboto;\\n color: #ffffff;\\n}\\n\\n.contact {\\n width: 100% !important;\\n margin-top: 20px;\\n}\\n\\n.contact .mat-tab-group {\\n min-height: 150px;\\n}\\n\\n.contact ::ng-deep .mat-tab-label {\\n height: 20px;\\n min-width: 90px;\\n color: #5482bc;\\n border: 1px solid lightgray;\\n font-size: 11px;\\n}\\n\\n.contact ::ng-deep .mat-tab-label-active {\\n background-color: #5482bc;\\n color: #ffffff;\\n opacity: 1;\\n}\\n\\n.contact ::ng-deep .mat-tab-header {\\n border: none;\\n}\\n\\n.contact ::ng-deep .mat-tab-list .mat-ink-bar {\\n height: 0px;\\n}\\n\\n.tabrow {\\n width: 100% !important;\\n margin-top: 20px;\\n margin-bottom: 20px;\\n}\\n\\n.align {\\n padding-left: 16px;\\n padding-top: 20px;\\n}\\n\\n.table-div {\\n padding: 10px;\\n}\\n\\n.calling-table {\\n width: 100%;\\n}\\n\\n.tabrow ::ng-deep .mat-tab-label {\\n height: 35px;\\n padding: 0px 10px;\\n border-top-left-radius: 8px !important;\\n border-top-right-radius: 8px !important;\\n border-bottom-width: 1px;\\n border-color: #d3d3d3;\\n border-style: solid;\\n background-color: white;\\n margin-left: 3px;\\n color: black;\\n opacity: 1;\\n}\\n\\n.tabrow ::ng-deep .mat-tab-label-active {\\n background-color: #00457d;\\n color: #ffffff;\\n opacity: 1;\\n border-style: none;\\n}\\n\\n.tabrow ::ng-deep .mat-tab-header {\\n border: none;\\n}\\n\\n.tabrow ::ng-deep .mat-tab-list .mat-ink-bar {\\n height: 0px;\\n}\\n\\n.table {\\n font-family: \\\"Trebuchet MS\\\", Arial, Helvetica, sans-serif;\\n border-collapse: collapse;\\n width: 100%;\\n margin-top: 20px;\\n}\\n\\n.table td,\\n.table th {\\n border: 1px solid lightgray;\\n padding: 5px;\\n width: auto;\\n font-size: 12px;\\n}\\n\\n.table tr:nth-child(even) {\\n background-color: #ffffff;\\n}\\n\\n.table tr:hover {\\n background-color: #ffffff;\\n}\\n\\n.table th {\\n padding-top: 5px;\\n padding-bottom: 5px;\\n text-align: left;\\n background-color: #d3d3d3;\\n color: black;\\n}\\n\\n.btn {\\n position: relative;\\n cursor: pointer;\\n overflow: hidden;\\n background-color: #00457d !important;\\n border-radius: 5px !important;\\n height: 25px;\\n}\\n\\n.btn p {\\n text-align: center;\\n text-transform: uppercase;\\n color: #fff;\\n position: relative;\\n z-index: 1;\\n transition: all 0.3s ease;\\n margin: auto;\\n font-size: 12px;\\n line-height: 10px;\\n}\\n\\n.btn-1 {\\n background-color: #ffffff !important;\\n color: #00457d !important;\\n border: 1px solid #00457d;\\n}\\n\\n.btn-1 p {\\n margin: auto;\\n}\\n\\n.call-stats-card-border1 {\\n border-style: solid solid solid solid;\\n border-width: 1px;\\n border-radius: 0%;\\n border-color: lightgray;\\n}\\n\\n.icon-background {\\n color: #00457d;\\n height: 13px !important;\\n width: 13px !important;\\n margin-right: 8px;\\n}\\n\\n.tabrow ::ng-deep .mat-tab-label-active .mat-tab-label-content .icon-background {\\n color: #ffffff !important;\\n}\\n\\n.check-icon {\\n cursor: pointer;\\n color: #1acc04;\\n position: absolute;\\n right: 5px;\\n font-size: 12px;\\n top: 25%;\\n margin-right: 18px;\\n margin-bottom: 5px !important;\\n}\\n\\n.cancle-icon {\\n cursor: pointer;\\n color: red;\\n position: absolute;\\n right: 5px;\\n font-size: 12px;\\n top: 20%;\\n margin-bottom: 5px;\\n margin-left: 35px;\\n}\\n\\n.number-form ::ng-deep .mat-form-field-ripple {\\n height: 0px !important;\\n}\\n\\n.input-border {\\n border: 1px solid lightgray;\\n border-radius: 3px;\\n width: 75% !important;\\n height: 25px;\\n padding-left: 5px;\\n margin-left: 5px;\\n}\\n\\n.input-border-d {\\n border: 1px solid lightgray;\\n border-radius: 3px;\\n width: 70% !important;\\n height: 25px;\\n padding-left: 5px;\\n margin-left: 5px;\\n}\\n\\ntd.mat-cell,\\ntd.mat-footer-cell,\\nth.mat-header-cell {\\n padding: 5px;\\n border-style: solid none none solid;\\n border-width: 0.1px;\\n border-color: lightgray;\\n}\\n\\n.table-font.th {\\n color: black;\\n}\\n\\n.table-font.td {\\n color: #595959;\\n}\\n\\n.spinner_container {\\n background-color: rgba(33, 33, 33, 0.1);\\n position: absolute;\\n z-index: 100;\\n top: 0;\\n left: 0;\\n width: 100%;\\n min-height: 100%;\\n}\\n\\n.question {\\n font-size: 12px;\\n padding: 5px;\\n}\\n\\n.question .remark {\\n margin-left: 25px;\\n margin-top: 5px;\\n width: 70%;\\n border: 1px solid #d8d8d8;\\n padding: 4px;\\n border-radius: 3px;\\n padding-left: 10px;\\n font-size: 12px;\\n}\\n\\n.question input.remark::-webkit-input-placeholder {\\n font-size: 11px;\\n}\\n\\n.question input.remark::-moz-placeholder {\\n font-size: 11px;\\n}\\n\\n.question input.remark::-ms-input-placeholder {\\n font-size: 11px;\\n}\\n\\n.question input.remark::placeholder {\\n font-size: 11px;\\n}\\n\\n.question bar-rating {\\n margin-left: 25px;\\n}\\n\\n.question-back {\\n background-color: #f2f2f2;\\n}\\n\\n.m-t-10 {\\n margin-top: 10px;\\n}\\n\\n.m-l-25 {\\n padding-left: 25px;\\n}\\n\\n.filter1 {\\n margin-left: 0px;\\n margin-top: 5px;\\n}\\n\\n.search-card .filter1 {\\n margin-left: 0px;\\n margin-top: 0px;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-infix {\\n border: 1px solid lightgray;\\n border-radius: 2px;\\n background: white;\\n padding: 0;\\n height: 20px;\\n font-size: 12px;\\n}\\n\\n.filter1 ::ng-deep .mat-select {\\n padding: 4px 0px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-trigger {\\n padding-left: 8px;\\n width: 100%;\\n}\\n\\n.filter1 ::ng-deep .mat-select-value {\\n width: 90%;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label-wrapper {\\n top: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-underline {\\n display: none;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label {\\n top: 0;\\n margin-top: 5px !important;\\n padding-left: 5px;\\n}\\n\\n.question mat-error {\\n color: #ff0000;\\n font-size: 10px;\\n margin-top: 0px !important;\\n}\\n\\n#callDialog {\\n box-shadow: 0 1px 2px 1px rgba(0, 0, 0, 0.2), 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12);\\n padding: 10px;\\n background-color: #ffffff;\\n position: fixed;\\n width: 35%;\\n height: 360px;\\n}\\n\\n.close-con {\\n float: right;\\n font-size: 18px;\\n cursor: pointer;\\n}\\n\\ntable {\\n width: 100%;\\n}\\n\\n.call-header {\\n font-family: Bold 16px/22px Roboto;\\n font-size: 12px;\\n}\\n\\n.call-header i {\\n color: #00457d;\\n}\\n\\n.rect2 {\\n width: 100%;\\n background: #eaeaea;\\n}\\n\\n.rect3 {\\n padding-top: 25px;\\n padding-right: 0px;\\n padding-left: 0px;\\n padding-bottom: 0px;\\n width: 100%;\\n font-size: 12px;\\n background: #ffffff;\\n}\\n\\n.rect3 .button {\\n float: right;\\n margin-right: 8px;\\n margin-top: 5px;\\n}\\n\\n.rect4 {\\n width: 100%;\\n font-size: 12px;\\n padding-bottom: 0px;\\n}\\n\\n.rect5 {\\n float: left;\\n width: 100%;\\n}\\n\\n.text-pp {\\n width: 100%;\\n}\\n\\n.call-popup-save {\\n float: right;\\n margin-right: 20px;\\n margin-bottom: 10px;\\n}\\n\\n.icons .fa-phone {\\n transform: rotate(135deg);\\n}\\n\\n.icons .fa-microphone-slash,\\n.icons .fa-phone {\\n font-size: 24px;\\n}\\n\\n.icons .button {\\n margin: 5px;\\n}\\n\\n.icons {\\n margin-top: 25px;\\n padding-left: 29%;\\n}\\n\\n.hang-btn {\\n color: red !important;\\n border-color: red !important;\\n}\\n\\n.classtext1 {\\n font-weight: bold;\\n}\\n\\n.timestamp {\\n font-size: 11px;\\n margin-left: 10px;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-group {\\n border-radius: 0px;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle {\\n background-color: #ffffff;\\n color: #000000;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-checked {\\n background-color: #00457d;\\n color: #ffffff;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-label-content {\\n line-height: 20px;\\n}\\n\\n.btn {\\n position: relative;\\n cursor: pointer;\\n transition: all 0.3s ease;\\n overflow: hidden;\\n background-color: #00457d !important;\\n height: 24px;\\n line-height: 10px;\\n}\\n\\n.mat-button {\\n border-radius: 0px;\\n float: right;\\n}\\n\\n.btn p {\\n text-align: center;\\n text-transform: uppercase;\\n color: #fff;\\n position: relative;\\n z-index: 1;\\n transition: all 0.3s ease;\\n margin: auto;\\n font-size: 12px;\\n}\\n\\n.btn-1 {\\n background-color: #ffffff !important;\\n color: #e64243 !important;\\n border: 1px solid #e64243;\\n}\\n\\n.btn-1 p {\\n margin: auto;\\n}\\n\\n.dropdown-pp1 .mat-form-field-infix {\\n height: 21px !important;\\n width: 100%;\\n padding-bottom: 0px !important;\\n}\\n\\n.dropdown-pp1 .mat-form-field {\\n width: 100%;\\n}\\n\\n.dropdown-pp1 .ng-star-inserted {\\n width: 99%;\\n}\\n\\n.profile-pp1 .mat-form-field-wrapper {\\n padding-bottom: 0px;\\n}\\n\\n.profile-pp1 .mat-label {\\n padding-top: 6px;\\n}\\n\\n.dropdown-border {\\n border-style: solid solid solid solid !important;\\n border-width: 1px;\\n border-radius: 5px;\\n border-color: gray;\\n height: 28px;\\n padding-left: 8px;\\n padding-top: 6px;\\n margin-top: 0px;\\n}\\n\\n.textfield-border {\\n border-style: solid solid solid solid !important;\\n border-width: 1px;\\n border-radius: 5px;\\n border-color: gray;\\n}\\n\\n#callDialog mat-error {\\n color: #ff0000;\\n font-size: 10px;\\n margin-top: -12px !important;\\n}\\n\\n.question {\\n font-size: 12px;\\n padding: 5px;\\n}\\n\\n.question .remark {\\n margin-left: 25px;\\n margin-top: 5px;\\n width: 70%;\\n border: 1px solid #d8d8d8;\\n padding: 4px;\\n border-radius: 3px;\\n padding-left: 10px;\\n font-size: 12px;\\n}\\n\\n.question input.remark::-webkit-input-placeholder {\\n font-size: 11px;\\n}\\n\\n.question input.remark::-moz-placeholder {\\n font-size: 11px;\\n}\\n\\n.question input.remark::-ms-input-placeholder {\\n font-size: 11px;\\n}\\n\\n.question input.remark::placeholder {\\n font-size: 11px;\\n}\\n\\n.question bar-rating {\\n margin-left: 25px;\\n}\\n\\n.matCard-border {\\n border: 1px solid #707070;\\n}\\n\\n.dataview {\\n width: 27%;\\n margin-left: 25px;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-group {\\n border-radius: 0px;\\n margin-bottom: 10px;\\n width: 55%;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle {\\n background-color: #ffffff;\\n color: #00457D;\\n font-size: 12px;\\n width: 50%;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-checked {\\n background-color: #00457D;\\n color: #ffffff;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-label-content {\\n line-height: 22px;\\n}\\n\\n.serv-desc {\\n width: 70%;\\n font-weight: 400;\\n}\\n\\n.serv-desc small {\\n margin-right: 10px;\\n float: right;\\n}\\n\\n.cus360Td {\\n font-size: 11px;\\n font-family: poppins;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9jb21wb25lbnQvc29mdC1jdXN0b21lcjM2MC9zb2Z0LWN1c3RvbWVyMzYwLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnQvc29mdC1jdXN0b21lcjM2MC9zb2Z0LWN1c3RvbWVyMzYwLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksbUJBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBO0FDQ0o7O0FERUE7RUFDSSw0QkFBQTtBQ0NKOztBREVBO0VBQ0ksY0FBQTtFQUNBLGlCQUFBO0VBQ0Esa0JBQUE7QUNDSjs7QURFQTtFQUNJLHFCQUFBO0FDQ0o7O0FERUE7RUFDSSxxQkFBQTtBQ0NKOztBREVBO0VBQ0ksY0FBQTtFQUNBLGlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSxZQUFBO0FDQ0o7O0FERUE7RUFDSSxpQkFBQTtFQUNBLGVBQUE7RUFDQSw2QkFBQTtFQUNBLGNBQUE7QUNDSjs7QURFQTtFQUNJLDJCQUFBO0VBQ0EsZUFBQTtFQUNBLGNBQUE7QUNDSjs7QURFQTtFQUNJLGtDQUFBO0VBQ0EsY0FBQTtBQ0NKOztBREVBO0VBQ0kseUJBQUE7RUFDQSxzQkFBQTtFQUNBLGNBQUE7RUFDQSxtQkFBQTtFQUNBLFlBQUE7QUNDSjs7QURFQTtFQUNJLFVBQUE7QUNDSjs7QURFQTtFQUNJLGtCQUFBO0VBQ0EsWUFBQTtFQUNBLDhCQUFBO0VBQ0EsY0FBQTtFQUNBLGtCQUFBO0VBQ0EsZUFBQTtBQ0NKOztBREVBO0VBQ0ksY0FBQTtFQUNBLGtCQUFBO0VBQ0EsV0FBQTtFQUNBLGVBQUE7RUFDQSxNQUFBO0VBQ0Esa0JBQUE7QUNDSjs7QURFQTtFQUNJLFlBQUE7QUNDSjs7QURFQTtFQUNJLDZCQUFBO0VBQ0EsNEJBQUE7QUNDSjs7QURFQTtFQUNJLDZCQUFBO0VBQ0EsNEJBQUE7QUNDSjs7QURFQTtFQUNJLDZCQUFBO0VBQ0EsMkJBQUE7QUND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IiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50L3NvZnQtY3VzdG9tZXIzNjAvc29mdC1jdXN0b21lcjM2MC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi53b3JraW5nLWFyZWEge1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbn1cblxuLmN1c3QzNjAtY29udGFpbmVyIHtcbiAgICBtYXJnaW46IDExNXB4IDMwcHggMzBweCAzMHB4O1xufVxuXG4uZXhhbXBsZS1jYXJkMSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4uZXhhbXBsZS1jYXJkMSAuZm9udENsYXNzIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5leGFtcGxlLWNhcmQxIC5pbmxpbmVDbGFzcyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uZXhhbXBsZS1jYXJkMiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIHBhZGRpbmc6IDBweDtcbn1cblxuLnN1cnZleSB7XG4gICAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDVweCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjNzA3MDcwO1xufVxuXG4uZm9udENsYXNzIHtcbiAgICBmb250OiBCb2xkIDEycHgvMjBweCBSb2JvdG87XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiAjNzA3MDcwO1xufVxuXG4uZm9udENsYXNzQm9sZCB7XG4gICAgZm9udC1mYW1pbHk6IEJvbGQgMTZweC8yMnB4IFJvYm90bztcbiAgICBjb2xvcjogIzcwNzA3MDtcbn1cblxuLmJvcmRlciB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzcwNzA3MDtcbiAgICBmb250OiAxMnB4LzE4cHggUm9ib3RvO1xuICAgIGNvbG9yOiAjNzA3MDcwO1xuICAgIGJvcmRlci1yYWRpdXM6IDI1cHg7XG4gICAgcGFkZGluZzogNXB4O1xufVxuXG4uc2Vydi1oZWFkaW5nIHtcbiAgICB3aWR0aDogMzAlO1xufVxuXG4uYnV0dG9uIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGZvbnQ6IFJlZ3VsYXIgMTZweC8yMnB4IFJvYm90bztcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ucmVjZW50IHtcbiAgICBjb2xvcjogIzFhY2MwNDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcmlnaHQ6IDE1cHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiA3cHg7XG59XG5cbi5kaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogMC42O1xufVxuXG4uY2hlY2thbGlnbiB7XG4gICAgcGFkZGluZy1sZWZ0OiAxNXB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy10b3A6IDIwcHggIWltcG9ydGFudDtcbn1cblxuLnZlaGljbGUtZGV0LXBycyAuY2hlY2thbGlnbiB7XG4gICAgcGFkZGluZy1sZWZ0OiAxNXB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy10b3A6IDIwcHggIWltcG9ydGFudDtcbn1cblxuLnZlaGljbGUtZGV0IC5jaGVja2FsaWduIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXRvcDogNXB4ICFpbXBvcnRhbnQ7XG59XG5cbi5pbmxpbmVDbGFzcyB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIGZvbnQ6IFJlZ3VsYXIgMTRweCBSb2JvdG87XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gICAgY29sb3I6IGJsYWNrO1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbnAuaW5saW5lQ2xhc3Mge1xuICAgIG1hcmdpbi10b3A6IDBweDtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG5cbi5tYXJnaW5DbGFzcyB7XG4gICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG59XG5cbi5uYXZiYXIge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICBwYWRkaW5nLXRvcDogMTBweDtcbiAgICBmb250LXNpemU6IDEycHg7XG59XG5cbi5uYXZiYXIgYSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uZXhhbXBsZS1yYWRpby1idXR0b24ge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbn1cblxuLm51bWJlci1mb3JtIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gICAgcGFkZGluZy1ib3R0b206IDVweDtcbn1cblxuLm51bWJlci1mb3JtIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgIHBhZGRpbmc6IDAuMTM3NWVtIDA7XG4gICAgLy9ib3JkZXI6IHNvbGlkO1xufVxuXG4ubnVtYmVyLWZvcm0gOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgIGJvdHRvbTogMC4yNWVtO1xuICAgIGhlaWdodDogMHB4O1xufVxuXG4ubnVtYmVyLWZvcm0gOjpuZy1kZWVwIGlucHV0Lm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgICBtYXJnaW4tdG9wOiAwcHg7XG59XG5cbi5udW1iZXItZm9ybSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ubnVtYmVyLXJvdyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vL2N1c3RvbSBtYXQtc2VsZWN0XG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIC8vZm9udC1zaXplOiAxMnB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3Qge1xuICAgIHBhZGRpbmc6IDJweCAwcHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgcGFkZGluZy1ib3R0b206IDVweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgICB3aWR0aDogOTAlO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIge1xuICAgIHRvcDogMDtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIHRvcDogMDtcbiAgICBtYXJnaW4tdG9wOiA0cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbn1cblxuLmZpbHRlci1sYWJlbCB7XG4gICAgZm9udDogQm9sZCAxNHB4IFJvYm90bztcbiAgICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICAgIGNvbG9yOiAjM2MzYzNjO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbn1cblxuLmZvbnRDbGFzcyB7XG4gICAgZm9udDogQm9sZCAxNHB4LzE2cHggUm9ib3RvO1xuICAgIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiAjN2I3YTdhO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgbWFyZ2luLWJvdHRvbTogM3B4ICFpbXBvcnRhbnQ7XG59XG5cbi5mb250Q2xhc3NCb2xkIHtcbiAgICBmb250LWZhbWlseTogQm9sZCAxNnB4LzIycHggUm9ib3RvO1xuICAgIGNvbG9yOiAjMDAwMDAwO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGkge1xuICAgICAgICBjb2xvcjogIzAwNDU3ZDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgfVxufVxuXG4uYm9yZGVyIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjNzA3MDcwO1xuICAgIGZvbnQ6IDEycHgvMThweCBSb2JvdG87XG4gICAgY29sb3I6ICM3MDcwNzA7XG4gICAgYm9yZGVyLXJhZGl1czogMjVweDtcbiAgICBwYWRkaW5nOiA1cHg7XG59XG5cbi5idXR0b24ge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgZm9udDogUmVndWxhciAxNnB4LzIycHggUm9ib3RvO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4uY29udGFjdCB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xufVxuXG4uY29udGFjdCAubWF0LXRhYi1ncm91cCB7XG4gICAgbWluLWhlaWdodDogMTUwcHg7XG59XG5cbi5jb250YWN0IDo6bmctZGVlcCAubWF0LXRhYi1sYWJlbCB7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIG1pbi13aWR0aDogOTBweDtcbiAgICBjb2xvcjogIzU0ODJiYztcbiAgICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gICAgZm9udC1zaXplOiAxMXB4O1xufVxuXG4uY29udGFjdCA6Om5nLWRlZXAgLm1hdC10YWItbGFiZWwtYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTQ4MmJjO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi5jb250YWN0IDo6bmctZGVlcCAubWF0LXRhYi1oZWFkZXIge1xuICAgIGJvcmRlcjogbm9uZTtcbn1cblxuLmNvbnRhY3QgOjpuZy1kZWVwIC5tYXQtdGFiLWxpc3QgLm1hdC1pbmstYmFyIHtcbiAgICBoZWlnaHQ6IDBweDtcbn1cblxuLnRhYnJvdyB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cbi5hbGlnbiB7XG4gICAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICAgIHBhZGRpbmctdG9wOiAyMHB4O1xufVxuXG4udGFibGUtZGl2IHtcbiAgICBwYWRkaW5nOiAxMHB4O1xufVxuXG4uY2FsbGluZy10YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi50YWJyb3cgOjpuZy1kZWVwIC5tYXQtdGFiLWxhYmVsIHtcbiAgICBoZWlnaHQ6IDM1cHg7XG4gICAgcGFkZGluZzogMHB4IDEwcHg7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogOHB4ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDhweCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDtcbiAgICBib3JkZXItY29sb3I6ICNkM2QzZDM7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBtYXJnaW4tbGVmdDogM3B4O1xuICAgIGNvbG9yOiBibGFjaztcbiAgICBvcGFjaXR5OiAxO1xuICAgIC8vIGZvbnQtc2l6ZTogMTNweCAhaW1wb3J0YW50Oztcbn1cblxuLnRhYnJvdyA6Om5nLWRlZXAgLm1hdC10YWItbGFiZWwtYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdkO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgYm9yZGVyLXN0eWxlOiBub25lO1xufVxuXG4udGFicm93IDo6bmctZGVlcCAubWF0LXRhYi1oZWFkZXIge1xuICAgIGJvcmRlcjogbm9uZTtcbn1cblxuLnRhYnJvdyA6Om5nLWRlZXAgLm1hdC10YWItbGlzdCAubWF0LWluay1iYXIge1xuICAgIGhlaWdodDogMHB4O1xufVxuXG4vL3RhYmxlXG4udGFibGUge1xuICAgIGZvbnQtZmFtaWx5OiBcIlRyZWJ1Y2hldCBNU1wiLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbn1cblxuLnRhYmxlIHRkLFxuLnRhYmxlIHRoIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gICAgcGFkZGluZzogNXB4O1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLnRhYmxlIHRyOm50aC1jaGlsZChldmVuKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbn1cblxuLnRhYmxlIHRyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xufVxuXG4udGFibGUgdGgge1xuICAgIHBhZGRpbmctdG9wOiA1cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDVweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkM2QzZDM7XG4gICAgY29sb3I6IGJsYWNrO1xufVxuXG4vL3NsaWRpbmcgYnRuXG4uYnRuIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3ZCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDVweCAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogMjVweDtcbn1cblxuLmJ0biBwIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDEwcHg7XG59XG5cbi5idG4tMSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjMDA0NTdkICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzAwNDU3ZDtcbn1cblxuLmJ0bi0xIHAge1xuICAgIG1hcmdpbjogYXV0bztcbn1cblxuLmNhbGwtc3RhdHMtY2FyZC1ib3JkZXIxIHtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIHNvbGlkIHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDAlO1xuICAgIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4uaWNvbi1iYWNrZ3JvdW5kIHtcbiAgICBjb2xvcjogIzAwNDU3ZDtcbiAgICBoZWlnaHQ6IDEzcHggIWltcG9ydGFudDtcbiAgICB3aWR0aDogMTNweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogOHB4O1xufVxuXG4udGFicm93IDo6bmctZGVlcCAubWF0LXRhYi1sYWJlbC1hY3RpdmUgLm1hdC10YWItbGFiZWwtY29udGVudCAuaWNvbi1iYWNrZ3JvdW5kIHtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG4uY2hlY2staWNvbiB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGNvbG9yOiAjMWFjYzA0O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogNXB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICB0b3A6IDI1JTtcbiAgICBtYXJnaW4tcmlnaHQ6IDE4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4ICFpbXBvcnRhbnQ7XG59XG5cbi5jYW5jbGUtaWNvbiB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGNvbG9yOiByZWQ7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiA1cHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHRvcDogMjAlO1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICBtYXJnaW4tbGVmdDogMzVweDtcbn1cblxuLm51bWJlci1mb3JtIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgICBoZWlnaHQ6IDBweCAhaW1wb3J0YW50O1xufVxuXG4uaW5wdXQtYm9yZGVyIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIHdpZHRoOiA3NSUgIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDI1cHg7XG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gICAgbWFyZ2luLWxlZnQ6IDVweDtcbn1cblxuLmlucHV0LWJvcmRlci1kIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIHdpZHRoOiA3MCUgIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDI1cHg7XG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gICAgbWFyZ2luLWxlZnQ6IDVweDtcbn1cblxudGQubWF0LWNlbGwsXG50ZC5tYXQtZm9vdGVyLWNlbGwsXG50aC5tYXQtaGVhZGVyLWNlbGwge1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkIG5vbmUgbm9uZSBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDAuMXB4O1xuICAgIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4udGFibGUtZm9udC50aCB7XG4gICAgY29sb3I6IGJsYWNrO1xufVxuXG4udGFibGUtZm9udC50ZCB7XG4gICAgY29sb3I6ICM1OTU5NTk7XG59XG5cbi5zcGlubmVyX2NvbnRhaW5lciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDMzIDMzIDMzIC8gMTAlKTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMTAwO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG59XG5cbi5xdWVzdGlvbiB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICAucmVtYXJrIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDI1cHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICAgICAgd2lkdGg6IDcwJTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2Q4ZDhkODtcbiAgICAgICAgcGFkZGluZzogNHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgIH1cbiAgICBpbnB1dC5yZW1hcms6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgIH1cbiAgICBiYXItcmF0aW5nIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDI1cHg7XG4gICAgfVxufVxuXG4ucXVlc3Rpb24tYmFjayB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMjtcbn1cblxuLm0tdC0xMCB7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbn1cblxuLm0tbC0yNSB7XG4gICAgcGFkZGluZy1sZWZ0OiAyNXB4O1xufVxuXG4vL2N1c3RvbSBtYXQtc2VsZWN0XG4uZmlsdGVyMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDBweDtcbiAgICBtYXJnaW4tdG9wOiA1cHg7XG59XG5cbi5zZWFyY2gtY2FyZCAuZmlsdGVyMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDBweDtcbiAgICBtYXJnaW4tdG9wOiAwcHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgcGFkZGluZzogMDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIC8vd2lkdGg6IDI0MHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdCB7XG4gICAgLy93aWR0aDogMjQwcHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiA0cHggMHB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gICAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gICAgLy9wYWRkaW5nLWJvdHRvbTogMnB4O1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdmFsdWUge1xuICAgIHdpZHRoOiA5MCU7XG4gICAgLy9wYWRkaW5nLWJvdHRvbTogNXB4O1xuICAgIC8vbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIge1xuICAgIHRvcDogMDtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIHRvcDogMDtcbiAgICBtYXJnaW4tdG9wOiA1cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbn1cblxuLy8gLmZpbHRlci1sYWJlbCB7XG4vLyAgICAgZm9udDogQm9sZCAxNHB4IFJvYm90bztcbi8vICAgICBsZXR0ZXItc3BhY2luZzogMHB4O1xuLy8gICAgIGNvbG9yOiAjM2MzYzNjO1xuLy8gICAgIG9wYWNpdHk6IDE7XG4vLyAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuLy8gfVxuXG4ucXVlc3Rpb24ge1xuICAgIG1hdC1lcnJvciB7XG4gICAgICAgIGNvbG9yOiAjZmYwMDAwO1xuICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDBweCAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLy9jYWxsaW5nIGRhaWxvZ1xuI2NhbGxEaWFsb2cge1xuICAgIGJveC1zaGFkb3c6IDAgMXB4IDJweCAxcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMXB4IDFweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgMXB4IDNweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB3aWR0aDogMzUlO1xuICAgIGhlaWdodDogMzYwcHg7XG59XG5cbi5jbG9zZS1jb24ge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG50YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5jYWxsLWhlYWRlciB7XG4gICAgZm9udC1mYW1pbHk6IEJvbGQgMTZweC8yMnB4IFJvYm90bztcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgaSB7XG4gICAgICAgIGNvbG9yOiAjMDA0NTdkO1xuICAgIH1cbn1cblxuLnJlY3QyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiAjZWFlYWVhO1xufVxuXG4ucmVjdDMge1xuICAgIHBhZGRpbmctdG9wOiAyNXB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDBweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xufVxuXG4ucmVjdDMgLmJ1dHRvbiB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIG1hcmdpbi10b3A6IDVweDtcbn1cblxuLnJlY3Q0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgcGFkZGluZy1ib3R0b206IDBweDtcbn1cblxuLnJlY3Q1IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLnRleHQtcHAge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4uY2FsbC1wb3B1cC1zYXZlIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi5pY29ucyAuZmEtcGhvbmUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDEzNWRlZyk7XG59XG5cbi5pY29ucyAuZmEtbWljcm9waG9uZS1zbGFzaCxcbi5pY29ucyAuZmEtcGhvbmUge1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbn1cblxuLmljb25zIC5idXR0b24ge1xuICAgIG1hcmdpbjogNXB4O1xufVxuXG4uaWNvbnMge1xuICAgIG1hcmdpbi10b3A6IDI1cHg7XG4gICAgcGFkZGluZy1sZWZ0OiAyOSU7XG59XG5cbi5oYW5nLWJ0biB7XG4gICAgY29sb3I6IHJlZCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogcmVkICFpbXBvcnRhbnQ7XG59XG5cbi5jbGFzc3RleHQxIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLnRpbWVzdGFtcCB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4O1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBjb2xvcjogIzAwMDAwMDtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3ZDtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtbGFiZWwtY29udGVudCB7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG59XG5cbi8vc2xpZGluZyBidG5cbi5idG4ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N2QgIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEwcHg7XG59XG5cbi5tYXQtYnV0dG9uIHtcbiAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4uYnRuIHAge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmJ0bi0xIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNlNjQyNDMgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTY0MjQzO1xufVxuXG4uYnRuLTEgcCB7XG4gICAgbWFyZ2luOiBhdXRvO1xufVxuXG4uZHJvcGRvd24tcHAxIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgaGVpZ2h0OiAyMXB4ICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZy1ib3R0b206IDBweCAhaW1wb3J0YW50O1xufVxuXG4uZHJvcGRvd24tcHAxIC5tYXQtZm9ybS1maWVsZCB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5kcm9wZG93bi1wcDEgLm5nLXN0YXItaW5zZXJ0ZWQge1xuICAgIHdpZHRoOiA5OSU7XG59XG5cbi5wcm9maWxlLXBwMSAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gICAgcGFkZGluZy1ib3R0b206IDBweDtcbn1cblxuLnByb2ZpbGUtcHAxIC5tYXQtbGFiZWwge1xuICAgIHBhZGRpbmctdG9wOiA2cHg7XG59XG5cbi5kcm9wZG93bi1ib3JkZXIge1xuICAgIGJvcmRlci1zdHlsZTogc29saWQgc29saWQgc29saWQgc29saWQgIWltcG9ydGFudDtcbiAgICBib3JkZXItd2lkdGg6IDFweDtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgYm9yZGVyLWNvbG9yOiBncmF5O1xuICAgIGhlaWdodDogMjhweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgICBwYWRkaW5nLXRvcDogNnB4O1xuICAgIG1hcmdpbi10b3A6IDBweDtcbn1cblxuLnRleHRmaWVsZC1ib3JkZXIge1xuICAgIGJvcmRlci1zdHlsZTogc29saWQgc29saWQgc29saWQgc29saWQgIWltcG9ydGFudDtcbiAgICBib3JkZXItd2lkdGg6IDFweDtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgYm9yZGVyLWNvbG9yOiBncmF5O1xufVxuXG4vL21hdC1lcnJvclxuI2NhbGxEaWFsb2cgbWF0LWVycm9yIHtcbiAgICBjb2xvcjogI2ZmMDAwMDtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgbWFyZ2luLXRvcDogLTEycHggIWltcG9ydGFudDtcbn1cblxuLnF1ZXN0aW9uIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgcGFkZGluZzogNXB4O1xuICAgIC5yZW1hcmsge1xuICAgICAgICBtYXJnaW4tbGVmdDogMjVweDtcbiAgICAgICAgbWFyZ2luLXRvcDogNXB4O1xuICAgICAgICB3aWR0aDogNzAlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZDhkOGQ4O1xuICAgICAgICBwYWRkaW5nOiA0cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgfVxuICAgIGlucHV0LnJlbWFyazo6cGxhY2Vob2xkZXIge1xuICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgfVxuICAgIGJhci1yYXRpbmcge1xuICAgICAgICBtYXJnaW4tbGVmdDogMjVweDtcbiAgICB9XG59XG5cbi5tYXRDYXJkLWJvcmRlciB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzcwNzA3MDtcbiAgICAvLyBmb250OiAxMnB4LzE4cHggUm9ib3RvO1xuICAgIC8vIGNvbG9yOiAjNzA3MDcwO1xuICAgIC8vYm9yZGVyLXJhZGl1czogMjVweDtcbn1cblxuLmRhdGF2aWV3IHtcbiAgICB3aWR0aDogMjclO1xuICAgIG1hcmdpbi1sZWZ0OiAyNXB4O1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgd2lkdGg6IDU1JTtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgY29sb3I6ICMwMDQ1N0Q7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHdpZHRoOiA1MCU7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0Q7XG4gICAgY29sb3I6ICNmZmZmZmY7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWxhYmVsLWNvbnRlbnQge1xuICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xufVxuXG4uc2Vydi1kZXNjIHtcbiAgICB3aWR0aDogNzAlO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgc21hbGwge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG59XG5cbi5jdXMzNjBUZHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC1mYW1pbHk6IHBvcHBpbnM7XG59XG4iLCIud29ya2luZy1hcmVhIHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG59XG5cbi5jdXN0MzYwLWNvbnRhaW5lciB7XG4gIG1hcmdpbjogMTE1cHggMzBweCAzMHB4IDMwcHg7XG59XG5cbi5leGFtcGxlLWNhcmQxIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbi5leGFtcGxlLWNhcmQxIC5mb250Q2xhc3Mge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5leGFtcGxlLWNhcmQxIC5pbmxpbmVDbGFzcyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLmV4YW1wbGUtY2FyZDIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xuICBwYWRkaW5nOiAwcHg7XG59XG5cbi5zdXJ2ZXkge1xuICBtYXJnaW4tbGVmdDogMTVweDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBtYXJnaW4tYm90dG9tOiA1cHggIWltcG9ydGFudDtcbiAgY29sb3I6ICM3MDcwNzA7XG59XG5cbi5mb250Q2xhc3Mge1xuICBmb250OiBCb2xkIDEycHgvMjBweCBSb2JvdG87XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICM3MDcwNzA7XG59XG5cbi5mb250Q2xhc3NCb2xkIHtcbiAgZm9udC1mYW1pbHk6IEJvbGQgMTZweC8yMnB4IFJvYm90bztcbiAgY29sb3I6ICM3MDcwNzA7XG59XG5cbi5ib3JkZXIge1xuICBib3JkZXI6IDFweCBzb2xpZCAjNzA3MDcwO1xuICBmb250OiAxMnB4LzE4cHggUm9ib3RvO1xuICBjb2xvcjogIzcwNzA3MDtcbiAgYm9yZGVyLXJhZGl1czogMjVweDtcbiAgcGFkZGluZzogNXB4O1xufVxuXG4uc2Vydi1oZWFkaW5nIHtcbiAgd2lkdGg6IDMwJTtcbn1cblxuLmJ1dHRvbiB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBmb250OiBSZWd1bGFyIDE2cHgvMjJweCBSb2JvdG87XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnJlY2VudCB7XG4gIGNvbG9yOiAjMWFjYzA0O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHJpZ2h0OiAxNXB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIHRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogN3B4O1xufVxuXG4uZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjY7XG59XG5cbi5jaGVja2FsaWduIHtcbiAgcGFkZGluZy1sZWZ0OiAxNXB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctdG9wOiAyMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi52ZWhpY2xlLWRldC1wcnMgLmNoZWNrYWxpZ24ge1xuICBwYWRkaW5nLWxlZnQ6IDE1cHggIWltcG9ydGFudDtcbiAgcGFkZGluZy10b3A6IDIwcHggIWltcG9ydGFudDtcbn1cblxuLnZlaGljbGUtZGV0IC5jaGVja2FsaWduIHtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctdG9wOiA1cHggIWltcG9ydGFudDtcbn1cblxuLmlubGluZUNsYXNzIHtcbiAgZGlzcGxheTogaW5saW5lO1xuICBmb250OiBSZWd1bGFyIDE0cHggUm9ib3RvO1xuICBmb250LXNpemU6IDEycHg7XG4gIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gIGNvbG9yOiBibGFjaztcbiAgb3BhY2l0eTogMTtcbn1cblxucC5pbmxpbmVDbGFzcyB7XG4gIG1hcmdpbi10b3A6IDBweDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuXG4ubWFyZ2luQ2xhc3Mge1xuICBtYXJnaW4tbGVmdDogMjBweDtcbn1cblxuLm5hdmJhciB7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbiAgcGFkZGluZy10b3A6IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLm5hdmJhciBhIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uZXhhbXBsZS1yYWRpby1idXR0b24ge1xuICBmb250LXNpemU6IDEycHg7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuXG4ubnVtYmVyLWZvcm0gOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgcGFkZGluZy1ib3R0b206IDVweDtcbn1cblxuLm51bWJlci1mb3JtIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBwYWRkaW5nOiAwLjEzNzVlbSAwO1xufVxuXG4ubnVtYmVyLWZvcm0gOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBib3R0b206IDAuMjVlbTtcbiAgaGVpZ2h0OiAwcHg7XG59XG5cbi5udW1iZXItZm9ybSA6Om5nLWRlZXAgaW5wdXQubWF0LWlucHV0LWVsZW1lbnQge1xuICBtYXJnaW4tdG9wOiAwcHg7XG59XG5cbi5udW1iZXItZm9ybSB7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5udW1iZXItcm93IHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgcGFkZGluZzogMDtcbiAgaGVpZ2h0OiAyMHB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3Qge1xuICBwYWRkaW5nOiAycHggMHB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gIHBhZGRpbmctbGVmdDogOHB4O1xuICB3aWR0aDogMTAwJTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBwYWRkaW5nLWJvdHRvbTogNXB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdmFsdWUge1xuICB3aWR0aDogOTAlO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIge1xuICB0b3A6IDA7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRvcDogMDtcbiAgbWFyZ2luLXRvcDogNHB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xufVxuXG4uZmlsdGVyLWxhYmVsIHtcbiAgZm9udDogQm9sZCAxNHB4IFJvYm90bztcbiAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgY29sb3I6ICMzYzNjM2M7XG4gIG9wYWNpdHk6IDE7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbiAgZm9udC1zaXplOiAxM3B4O1xufVxuXG4uZm9udENsYXNzIHtcbiAgZm9udDogQm9sZCAxNHB4LzE2cHggUm9ib3RvO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjN2I3YTdhO1xuICBvcGFjaXR5OiAxO1xuICBtYXJnaW4tYm90dG9tOiAzcHggIWltcG9ydGFudDtcbn1cblxuLmZvbnRDbGFzc0JvbGQge1xuICBmb250LWZhbWlseTogQm9sZCAxNnB4LzIycHggUm9ib3RvO1xuICBjb2xvcjogIzAwMDAwMDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuLmZvbnRDbGFzc0JvbGQgaSB7XG4gIGNvbG9yOiAjMDA0NTdkO1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cblxuLmJvcmRlciB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM3MDcwNzA7XG4gIGZvbnQ6IDEycHgvMThweCBSb2JvdG87XG4gIGNvbG9yOiAjNzA3MDcwO1xuICBib3JkZXItcmFkaXVzOiAyNXB4O1xuICBwYWRkaW5nOiA1cHg7XG59XG5cbi5idXR0b24ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZsb2F0OiByaWdodDtcbiAgZm9udDogUmVndWxhciAxNnB4LzIycHggUm9ib3RvO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLmNvbnRhY3Qge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBtYXJnaW4tdG9wOiAyMHB4O1xufVxuXG4uY29udGFjdCAubWF0LXRhYi1ncm91cCB7XG4gIG1pbi1oZWlnaHQ6IDE1MHB4O1xufVxuXG4uY29udGFjdCA6Om5nLWRlZXAgLm1hdC10YWItbGFiZWwge1xuICBoZWlnaHQ6IDIwcHg7XG4gIG1pbi13aWR0aDogOTBweDtcbiAgY29sb3I6ICM1NDgyYmM7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgZm9udC1zaXplOiAxMXB4O1xufVxuXG4uY29udGFjdCA6Om5nLWRlZXAgLm1hdC10YWItbGFiZWwtYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU0ODJiYztcbiAgY29sb3I6ICNmZmZmZmY7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5jb250YWN0IDo6bmctZGVlcCAubWF0LXRhYi1oZWFkZXIge1xuICBib3JkZXI6IG5vbmU7XG59XG5cbi5jb250YWN0IDo6bmctZGVlcCAubWF0LXRhYi1saXN0IC5tYXQtaW5rLWJhciB7XG4gIGhlaWdodDogMHB4O1xufVxuXG4udGFicm93IHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgbWFyZ2luLXRvcDogMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbn1cblxuLmFsaWduIHtcbiAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICBwYWRkaW5nLXRvcDogMjBweDtcbn1cblxuLnRhYmxlLWRpdiB7XG4gIHBhZGRpbmc6IDEwcHg7XG59XG5cbi5jYWxsaW5nLXRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi50YWJyb3cgOjpuZy1kZWVwIC5tYXQtdGFiLWxhYmVsIHtcbiAgaGVpZ2h0OiAzNXB4O1xuICBwYWRkaW5nOiAwcHggMTBweDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogOHB4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA4cHggIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4O1xuICBib3JkZXItY29sb3I6ICNkM2QzZDM7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBtYXJnaW4tbGVmdDogM3B4O1xuICBjb2xvcjogYmxhY2s7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi50YWJyb3cgOjpuZy1kZWVwIC5tYXQtdGFiLWxhYmVsLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N2Q7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBvcGFjaXR5OiAxO1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG5cbi50YWJyb3cgOjpuZy1kZWVwIC5tYXQtdGFiLWhlYWRlciB7XG4gIGJvcmRlcjogbm9uZTtcbn1cblxuLnRhYnJvdyA6Om5nLWRlZXAgLm1hdC10YWItbGlzdCAubWF0LWluay1iYXIge1xuICBoZWlnaHQ6IDBweDtcbn1cblxuLnRhYmxlIHtcbiAgZm9udC1mYW1pbHk6IFwiVHJlYnVjaGV0IE1TXCIsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tdG9wOiAyMHB4O1xufVxuXG4udGFibGUgdGQsXG4udGFibGUgdGgge1xuICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gIHBhZGRpbmc6IDVweDtcbiAgd2lkdGg6IGF1dG87XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLnRhYmxlIHRyOm50aC1jaGlsZChldmVuKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG5cbi50YWJsZSB0cjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG5cbi50YWJsZSB0aCB7XG4gIHBhZGRpbmctdG9wOiA1cHg7XG4gIHBhZGRpbmctYm90dG9tOiA1cHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkM2QzZDM7XG4gIGNvbG9yOiBibGFjaztcbn1cblxuLmJ0biB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdkICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDVweCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDI1cHg7XG59XG5cbi5idG4gcCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6ICNmZmY7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgbWFyZ2luOiBhdXRvO1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxMHB4O1xufVxuXG4uYnRuLTEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMDA0NTdkICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMwMDQ1N2Q7XG59XG5cbi5idG4tMSBwIHtcbiAgbWFyZ2luOiBhdXRvO1xufVxuXG4uY2FsbC1zdGF0cy1jYXJkLWJvcmRlcjEge1xuICBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIHNvbGlkIHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLXJhZGl1czogMCU7XG4gIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4uaWNvbi1iYWNrZ3JvdW5kIHtcbiAgY29sb3I6ICMwMDQ1N2Q7XG4gIGhlaWdodDogMTNweCAhaW1wb3J0YW50O1xuICB3aWR0aDogMTNweCAhaW1wb3J0YW50O1xuICBtYXJnaW4tcmlnaHQ6IDhweDtcbn1cblxuLnRhYnJvdyA6Om5nLWRlZXAgLm1hdC10YWItbGFiZWwtYWN0aXZlIC5tYXQtdGFiLWxhYmVsLWNvbnRlbnQgLmljb24tYmFja2dyb3VuZCB7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbi5jaGVjay1pY29uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogIzFhY2MwNDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogNXB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIHRvcDogMjUlO1xuICBtYXJnaW4tcmlnaHQ6IDE4cHg7XG4gIG1hcmdpbi1ib3R0b206IDVweCAhaW1wb3J0YW50O1xufVxuXG4uY2FuY2xlLWljb24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiByZWQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDVweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICB0b3A6IDIwJTtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICBtYXJnaW4tbGVmdDogMzVweDtcbn1cblxuLm51bWJlci1mb3JtIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgaGVpZ2h0OiAwcHggIWltcG9ydGFudDtcbn1cblxuLmlucHV0LWJvcmRlciB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICB3aWR0aDogNzUlICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMjVweDtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gIG1hcmdpbi1sZWZ0OiA1cHg7XG59XG5cbi5pbnB1dC1ib3JkZXItZCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICB3aWR0aDogNzAlICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMjVweDtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gIG1hcmdpbi1sZWZ0OiA1cHg7XG59XG5cbnRkLm1hdC1jZWxsLFxudGQubWF0LWZvb3Rlci1jZWxsLFxudGgubWF0LWhlYWRlci1jZWxsIHtcbiAgcGFkZGluZzogNXB4O1xuICBib3JkZXItc3R5bGU6IHNvbGlkIG5vbmUgbm9uZSBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAwLjFweDtcbiAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG59XG5cbi50YWJsZS1mb250LnRoIHtcbiAgY29sb3I6IGJsYWNrO1xufVxuXG4udGFibGUtZm9udC50ZCB7XG4gIGNvbG9yOiAjNTk1OTU5O1xufVxuXG4uc3Bpbm5lcl9jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDMzLCAzMywgMzMsIDAuMSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTAwO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiAxMDAlO1xufVxuXG4ucXVlc3Rpb24ge1xuICBmb250LXNpemU6IDEycHg7XG4gIHBhZGRpbmc6IDVweDtcbn1cbi5xdWVzdGlvbiAucmVtYXJrIHtcbiAgbWFyZ2luLWxlZnQ6IDI1cHg7XG4gIG1hcmdpbi10b3A6IDVweDtcbiAgd2lkdGg6IDcwJTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2Q4ZDhkODtcbiAgcGFkZGluZzogNHB4O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLnF1ZXN0aW9uIGlucHV0LnJlbWFyazo6cGxhY2Vob2xkZXIge1xuICBmb250LXNpemU6IDExcHg7XG59XG4ucXVlc3Rpb24gYmFyLXJhdGluZyB7XG4gIG1hcmdpbi1sZWZ0OiAyNXB4O1xufVxuXG4ucXVlc3Rpb24tYmFjayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmYyZjI7XG59XG5cbi5tLXQtMTAge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuXG4ubS1sLTI1IHtcbiAgcGFkZGluZy1sZWZ0OiAyNXB4O1xufVxuXG4uZmlsdGVyMSB7XG4gIG1hcmdpbi1sZWZ0OiAwcHg7XG4gIG1hcmdpbi10b3A6IDVweDtcbn1cblxuLnNlYXJjaC1jYXJkIC5maWx0ZXIxIHtcbiAgbWFyZ2luLWxlZnQ6IDBweDtcbiAgbWFyZ2luLXRvcDogMHB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBwYWRkaW5nOiAwO1xuICBoZWlnaHQ6IDIwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0IHtcbiAgcGFkZGluZzogNHB4IDBweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gIHdpZHRoOiA5MCU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gIHRvcDogMDtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdG9wOiAwO1xuICBtYXJnaW4tdG9wOiA1cHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG59XG5cbi5xdWVzdGlvbiBtYXQtZXJyb3Ige1xuICBjb2xvcjogI2ZmMDAwMDtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBtYXJnaW4tdG9wOiAwcHggIWltcG9ydGFudDtcbn1cblxuI2NhbGxEaWFsb2cge1xuICBib3gtc2hhZG93OiAwIDFweCAycHggMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMCAycHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDFweCAxcHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDFweCAzcHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBwYWRkaW5nOiAxMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHdpZHRoOiAzNSU7XG4gIGhlaWdodDogMzYwcHg7XG59XG5cbi5jbG9zZS1jb24ge1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG50YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uY2FsbC1oZWFkZXIge1xuICBmb250LWZhbWlseTogQm9sZCAxNnB4LzIycHggUm9ib3RvO1xuICBmb250LXNpemU6IDEycHg7XG59XG4uY2FsbC1oZWFkZXIgaSB7XG4gIGNvbG9yOiAjMDA0NTdkO1xufVxuXG4ucmVjdDIge1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogI2VhZWFlYTtcbn1cblxuLnJlY3QzIHtcbiAgcGFkZGluZy10b3A6IDI1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDBweDtcbiAgcGFkZGluZy1sZWZ0OiAwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBmb250LXNpemU6IDEycHg7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG59XG5cbi5yZWN0MyAuYnV0dG9uIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgbWFyZ2luLXRvcDogNXB4O1xufVxuXG4ucmVjdDQge1xuICB3aWR0aDogMTAwJTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBwYWRkaW5nLWJvdHRvbTogMHB4O1xufVxuXG4ucmVjdDUge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi50ZXh0LXBwIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5jYWxsLXBvcHVwLXNhdmUge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi1yaWdodDogMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLmljb25zIC5mYS1waG9uZSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDEzNWRlZyk7XG59XG5cbi5pY29ucyAuZmEtbWljcm9waG9uZS1zbGFzaCxcbi5pY29ucyAuZmEtcGhvbmUge1xuICBmb250LXNpemU6IDI0cHg7XG59XG5cbi5pY29ucyAuYnV0dG9uIHtcbiAgbWFyZ2luOiA1cHg7XG59XG5cbi5pY29ucyB7XG4gIG1hcmdpbi10b3A6IDI1cHg7XG4gIHBhZGRpbmctbGVmdDogMjklO1xufVxuXG4uaGFuZy1idG4ge1xuICBjb2xvcjogcmVkICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogcmVkICFpbXBvcnRhbnQ7XG59XG5cbi5jbGFzc3RleHQxIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi50aW1lc3RhbXAge1xuICBmb250LXNpemU6IDExcHg7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBjb2xvcjogIzAwMDAwMDtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N2Q7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZS1sYWJlbC1jb250ZW50IHtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG59XG5cbi5idG4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3ZCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDI0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxMHB4O1xufVxuXG4ubWF0LWJ1dHRvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4uYnRuIHAge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiAjZmZmO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIG1hcmdpbjogYXV0bztcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uYnRuLTEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZTY0MjQzICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNjQyNDM7XG59XG5cbi5idG4tMSBwIHtcbiAgbWFyZ2luOiBhdXRvO1xufVxuXG4uZHJvcGRvd24tcHAxIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIGhlaWdodDogMjFweCAhaW1wb3J0YW50O1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy1ib3R0b206IDBweCAhaW1wb3J0YW50O1xufVxuXG4uZHJvcGRvd24tcHAxIC5tYXQtZm9ybS1maWVsZCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uZHJvcGRvd24tcHAxIC5uZy1zdGFyLWluc2VydGVkIHtcbiAgd2lkdGg6IDk5JTtcbn1cblxuLnByb2ZpbGUtcHAxIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgcGFkZGluZy1ib3R0b206IDBweDtcbn1cblxuLnByb2ZpbGUtcHAxIC5tYXQtbGFiZWwge1xuICBwYWRkaW5nLXRvcDogNnB4O1xufVxuXG4uZHJvcGRvd24tYm9yZGVyIHtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZCBzb2xpZCBzb2xpZCBzb2xpZCAhaW1wb3J0YW50O1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBib3JkZXItY29sb3I6IGdyYXk7XG4gIGhlaWdodDogMjhweDtcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gIHBhZGRpbmctdG9wOiA2cHg7XG4gIG1hcmdpbi10b3A6IDBweDtcbn1cblxuLnRleHRmaWVsZC1ib3JkZXIge1xuICBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIHNvbGlkIHNvbGlkICFpbXBvcnRhbnQ7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJvcmRlci1jb2xvcjogZ3JheTtcbn1cblxuI2NhbGxEaWFsb2cgbWF0LWVycm9yIHtcbiAgY29sb3I6ICNmZjAwMDA7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgbWFyZ2luLXRvcDogLTEycHggIWltcG9ydGFudDtcbn1cblxuLnF1ZXN0aW9uIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBwYWRkaW5nOiA1cHg7XG59XG4ucXVlc3Rpb24gLnJlbWFyayB7XG4gIG1hcmdpbi1sZWZ0OiAyNXB4O1xuICBtYXJnaW4tdG9wOiA1cHg7XG4gIHdpZHRoOiA3MCU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkOGQ4ZDg7XG4gIHBhZGRpbmc6IDRweDtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5xdWVzdGlvbiBpbnB1dC5yZW1hcms6OnBsYWNlaG9sZGVyIHtcbiAgZm9udC1zaXplOiAxMXB4O1xufVxuLnF1ZXN0aW9uIGJhci1yYXRpbmcge1xuICBtYXJnaW4tbGVmdDogMjVweDtcbn1cblxuLm1hdENhcmQtYm9yZGVyIHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzcwNzA3MDtcbn1cblxuLmRhdGF2aWV3IHtcbiAgd2lkdGg6IDI3JTtcbiAgbWFyZ2luLWxlZnQ6IDI1cHg7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIHtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICB3aWR0aDogNTUlO1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGNvbG9yOiAjMDA0NTdEO1xuICBmb250LXNpemU6IDEycHg7XG4gIHdpZHRoOiA1MCU7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtbGFiZWwtY29udGVudCB7XG4gIGxpbmUtaGVpZ2h0OiAyMnB4O1xufVxuXG4uc2Vydi1kZXNjIHtcbiAgd2lkdGg6IDcwJTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cbi5zZXJ2LWRlc2Mgc21hbGwge1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gIGZsb2F0OiByaWdodDtcbn1cblxuLmN1czM2MFRkIHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LWZhbWlseTogcG9wcGlucztcbn0iXX0= */\"","import { Component, OnInit, ViewChild } from \"@angular/core\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { CommonService } from \"../../core/service/common-service/common.service\";\nimport { MatDialog, MatSort, MatPaginator, MatTableDataSource, MatTabChangeEvent} from \"@angular/material\";\nimport { Router } from \"@angular/router\";\nimport { DatePipe } from \"@angular/common\";\nimport { FormControl, Validators, FormGroup } from \"@angular/forms\";\nimport { element } from 'protractor';\nimport { CallParams } from \"src/app/model/call-params.model\";\nimport { DialogService } from \"src/app/dialog.service\";\n\n@Component({\n selector: \"app-soft-customer360\",\n templateUrl: \"./soft-customer360.component.html\",\n styleUrls: [\"./soft-customer360.component.scss\"],\n})\nexport class SoftCustomer360Component implements OnInit {\n @ViewChild(MatSort, { static: true }) sort: MatSort;\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\n @ViewChild(\"CallLogsPaginator\", { static: false })\n callLogsPaginator: MatPaginator;\n @ViewChild(\"CallLogsSort\", { static: true }) callLogsSort: MatSort;\n @ViewChild(\"RemarksPaginator\", { static: true })\n remarksPaginator: MatPaginator;\n @ViewChild(\"RemarksSort\", { static: true }) remarksSort: MatSort;\n @ViewChild(\"ServiceHistoryPaginator\", { static: true })\n serviceHistoryPaginator: MatPaginator;\n @ViewChild(\"ServiceHistorySort\", { static: true })\n serviceHistorySort: MatSort;\n @ViewChild(\"ContractSort\", { static: true }) contractSort: MatSort;\n @ViewChild(\"ContractPaginator\", { static: true }) contractPaginator: MatPaginator;\n\n cus360: any;\n vehicleDetails: any = {};\n amcDetails: any = {};\n lastServiceDetails: any = {};\n serviceDetails: any = {};\n faultDetails: any = [];\n callVisible: boolean;\n spinner: boolean;\n vinNoList: string[] = [];\n vehicleInfoList: any[] = [];\n vehicleTypeCallInfo: any;\n vehicleServiceAndStausInfo: any;\n dataSource: any;\n selectedNumber: any;\n updatedNumber: any;\n contactInfoOwner: any[] = [];\n contactInfoFleet: any[] = [];\n contactInfoDriver: any[] = [];\n updatedNumberType: string;\n secondaryNo: string;\n unableEdit: any = {};\n unableCall: boolean = false;\n workShops = [];\n selectedWorkShop: string;\n audioSource: any = {};\n selectedVehicle: string;\n HideServiceHistory: boolean = true;\n historyToggleStatus: boolean = false;\n showCallDailog: boolean = false;\n showRecordingDailog: boolean = false;\n showPlayBtn: boolean = true;\n paused: boolean = false;\n ownerSelected: boolean = true;\n fleetSelected: boolean = false;\n driverSelected: boolean = false;\n errorShow: any = {};\n customerID: string;\n userId: string;\n chassisNo: string;\n recentNumber: string;\n bookingCount: any;\n followupCount: any;\n customerData: any;\n custCallSeqResponse: any;\n callTypeSq: any;\n selectedVin: any;\n questionType: any;\n amcQuestions: any = [];\n amcReQuestions: any = [];\n ewQuestions: any = [];\n irQuestions: any = [];\n AMCQuestionForm: FormGroup;\n amcRQuestionForm : FormGroup;\n ewQuestionForm: FormGroup;\n irQuestionForm: FormGroup;\n userRolesId: string;\n submitted: boolean = false;\n amcQuestionInfo = [];\n amcRQuestionInfo = [];\n ewQuestionInfo = [];\n irQuestionInfo = [];\n amcNewOffering: string;\n amcRenewal: string;\n extendedWarranty: string;\n insuranceRenewal: string;\n formSubmitted: boolean = false;\n amctextFlag: boolean = false;\n amcdropdownFlag: boolean = false;\n amcdateFlag: boolean = false;\n amcradioFlag: boolean = false;\n amcRetextFlag: boolean = false;\n amcRedropdownFlag: boolean = false;\n amcRedateFlag: boolean = false;\n amcReradioFlag: boolean = false;\n irtextFlag: boolean = false;\n irdropdownFlag: boolean = false;\n irdateFlag: boolean = false;\n irradioFlag: boolean = false;\n ewtextFlag: boolean = false;\n ewdropdownFlag: boolean = false;\n ewdateFlag: boolean = false;\n ewradioFlag: boolean = false;\n chassis: string;\n showField: boolean = true;\n amcSelectedQuestionStatus: any[] = [];\n amcReSelectedQuestionStatus: any[] = [];\n irSelectedQuestionStatus: any[] = [];\n ewSelectedQuestionStatus: any[] = [];\n amcSelectedQuestionCurrentStatus: any[] = [];\n amcReSelectedQuestionCurrentStatus: any[] = [];\n irSelectedQuestionCurrentStatus: any[] = [];\n ewSelectedQuestionCurrentStatus: any[] = [];\n selectedQuestionValue: any;\n amcInProgress: string = '';\n amcReInProgress: string = '';\n irInProgress: string = '';\n ewInProgress: string = '';\n inProgressQuestionId: string;\n amcAutofilledResponse: any[] = [];\n amcReAutofilledResponse: any[] = [];\n ewAutofilledResponse: any[] = [];\n irAutofilledResponse: any[] = [];\n availableOfferings: any[] = [];\n today: Date = new Date();\n dropdownData: any = {\n \"2\": [\"CONSTRUCTION\", \"CONTAINER\", \"MINING- ORE TRANSPORTATION\", \"REFER VAN\", \"AUTO PARTS\", \"AUTO CARRIER-2 WHEELER & CAR CARRIER\",\n \"POULTRY\", \"LPG CYLINDER\", \"COURIER/PARCEL\", \"PACKERS & MOVERS\", \"CONSTRUCTION MATERIAL\", \"CEMENT\", \"STEEL\", \"FOOD GRAINS\", \"GARMENTS/TEXTILE\",\n \"TANKER\", \"BULKER\", \"RMC\", \"PERISHABLE GOODS/MEDICINES/ MEAT/FISH\", \"MINING- OVERBURDEN\", \"MINING- ORE TRANSPORTATION\", \"LOGISTICS\", \"E-COMMERCE\",\n \"FUEL DISPENSER\", \"WASTE MANAGEMENT\", \"WHITE GOODS\", \"Fire safety\", \"CNG Cascade\",],\n \"6\": [\"LC Smart\", \"LC Smart+\", \"LCC Smart\", \"LCC Smart XL\", \"LCP\", \"LCP Smart\", \"LCP +\"],\n \"7\": [\"CONSTRUCTION\", \"CONTAINER\", \"MINING- ORE TRANSPORTATION\", \"REFER VAN\", \"AUTO PARTS\", \"AUTO CARRIER-2 WHEELER & CAR CARRIER\",\n \"POULTRY\", \"LPG CYLINDER\", \"COURIER/PARCEL\", \"PACKERS & MOVERS\", \"CONSTRUCTION MATERIAL\", \"CEMENT\", \"STEEL\", \"FOOD GRAINS\", \"GARMENTS/TEXTILE\",\n \"TANKER\", \"BULKER\", \"RMC\", \"PERISHABLE GOODS/MEDICINES/ MEAT/FISH\", \"MINING- OVERBURDEN\", \"MINING- ORE TRANSPORTATION\", \"LOGISTICS\", \"E-COMMERCE\",\n \"FUEL DISPENSER\", \"WASTE MANAGEMENT\", \"WHITE GOODS\", \"Fire safety\", \"CNG Cascade\",],\n \"35\": [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\"],\n \"11\": [\"Monthly\", \"Quarterly\", \"Half Yearly\", \"Yearly\", \"One-time\"],\n \"12\": [\"Cheques\", \"NEFT\", \"Online Payment\"],\n \"14\": [\"Lead Status\", \"Current lead status\"],\n \"14-1\": [\"Hot\", \"Warm\", \"Cold\"],\n \"14-2\": [\"In process\", \"Loss\", \"Deal Closed\"],\n \"14-2-1\": [\"Requirement gathering\", \"price negotiation\", \"Quotation given\"],\n \"33\": [\"Cheques\", \"NEFT\", \"Online Payment\"],\n \"36\": [\"Lead Status\", \"Current lead status\"],\n \"36-1\": [\"Hot\", \"Warm\", \"Cold\"],\n \"36-2\": [\"In process\", \"Loss\", \"Deal Closed\"],\n \"36-2-1\": [\"Requirement gathering\", \"price negotiation\", \"Quotation given\"],\n \"26\": [\"Cheques\", \"NEFT\", \"Online Payment\"],\n \"37\": [\"Lead Status\", \"Current lead status\"],\n \"37-1\": [\"Hot\", \"Warm\", \"Cold\"],\n \"37-2\": [\"In process\", \"Loss\", \"Deal Closed\"],\n \"37-2-1\": [\"Requirement gathering\", \"price negotiation\", \"Quotation given\"]\n }\n\n //service history table columns\n displayedColumns: string[] = [\n \"jcNo\",\n \"servNo\",\n \"dealerLoc\",\n \"jbcardDate\",\n \"mileage\",\n \"failureDate\",\n \"billDate\",\n \"insdate\",\n \"mechanic\",\n \"serviceAdv\",\n \"serviceAdvNo\",\n ];\n\n //call log table columns\n displayedCallColumns: string[] = [\n \"number\",\n \"callDate\",\n \"startTime\",\n \"duration\",\n \"recording\",\n ];\n\n //call log table columns\n displayedContractColumns: string[] = [\n \"startDate\",\n \"endDate\",\n \"contractName\",\n \"contractNumber\",\n \"productName\",\n ];\n\n //call log table columns\n displayedRemarksColumns: string[] = [\"remark\", \"remarkDate\", \"remarkTime\"];\n\n displayedFaultColumns: string[] = [\n \"faultCaseId\",\n \"rulesDesc\",\n \"faultListDate\",\n \"faultFertCode\",\n \"faultServiceDueDate\",\n \"faultBookingDate\",\n ];\n\n dataSource1: any[];\n expandedElement: any[] = [];\n rows: any = [];\n\n callLists: any;\n callCount: number = 0;\n contractCount: number = 0;\n contractList: any;\n remarksDetails: any;\n historyDetails: any;\n remarksCount: number = 0;\n historyCount: number = 0;\n private audio: HTMLMediaElement;\n\n selectedTab: any;\n cdmTrailCheckOwner:boolean=false;\n cdmTrailCheckfleet:boolean=false;\n cdmTrailCheckdriver:boolean=false;\n secondTrailCall:boolean=false;\n calledNo: string;\n cusType: string;\n customerName: any;\n custNameForSave: any;\n\n constructor(\n private dialogService: DialogService,\n private datePipe: DatePipe,\n public dialog: MatDialog,\n private commonService: CommonService,\n private toastr: ToastrService,\n private router: Router\n ) {\n this.unableEdit[\"O\"] = {};\n this.unableEdit[\"F\"] = {};\n this.unableEdit[\"D\"] = {};\n }\n\n ngOnInit() {\n this.callVisible = true;\n this.chassisNo = localStorage.getItem(\"chassisNo\");\n this.userId = localStorage.getItem(\"userId\");\n this.customerID = localStorage.getItem(\"customerId\");\n this.workShops = JSON.parse(localStorage.getItem(\"workshops\"));\n this.customerData = JSON.parse(localStorage.getItem(\"customerData\")) || {};\n this.userRolesId = JSON.parse(localStorage.getItem(\"userInfo\"))[0].roleId;\n this.userInfo = JSON.parse(localStorage.getItem(\"userInfo\"))[0];\n this.selectedWorkShop =\n this.workShops && this.workShops.length\n ? this.workShops[0].workshopCode\n : \"\";\n this.callTypeSq = this.customerData.callTypeSq;\n\n if (localStorage.getItem(\"userId\") == null || localStorage.getItem(\"userId\") == undefined) {\n this.router.navigate([\"login\"]);\n }\n\n this.getCustomer360();\n this.getCallDetails();\n this.getContactdetail();\n //this.getAmcFetchQuestions();\n \n \n }\n\n /**\n * Name: getCallRecording\n * purpose: To get call recording and play\n */\n recordingUrl:string = ''\n getCallRecording(bucketName: string, fileName: string, id: string, source: string ,element:any): void {\nconsole.log(element);\n\n this.spinner = true;\n this.onRecordingClose();\n \n if (element.recordingUrl) {\n this.recordingUrl = element.recordingUrl;\n }else{\n this.recordingUrl = '';\n }\n \n this.commonService.downloadAudio(bucketName, fileName, source).subscribe(\n (res) => {\n this.spinner = false;\n var binary = res[\"body\"];\n var blob = new Blob([binary], { type: \"audio/mp4\" });\n this.audioSource.id = id;\n this.audioSource.url = URL.createObjectURL(blob);\n if (this.audioSource.url) {\n this.playRecording();\n }\n },\n (err) => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n }\n );\n }\n /**\n * Name: playRecording\n * purpose: To play recoding\n */\n playRecording(): void {\n this.showPlayBtn = false;\n this.showRecordingDailog = true;\n }\n\n /**\n * Name: onRecordingClose\n * purpose: To close Recording dailog\n */\n onRecordingClose() {\n this.showPlayBtn = true;\n this.showRecordingDailog = false;\n }\n\n /**\n * Name: getContactdetail\n * purpose: To get customer Contact detail\n */\n getContactdetail(): void {\n this.spinner = true;\n this.commonService.amcContactdetail(this.customerID).subscribe(\n (res) => {\n if (res[\"responseCode\"] == 0) {\n this.contactInfoOwner = res[\"responseData\"].filter(\n (contact) => contact.flag == \"O\"\n );\n this.contactInfoFleet = res[\"responseData\"].filter(\n (contact) => contact.flag == \"F\"\n );\n this.contactInfoDriver = res[\"responseData\"].filter(\n (contact) => contact.flag == \"D\"\n );\n this.selectedNumber = this.contactInfoOwner[0].contactNo;\n this.unableEdit[\"O\"][0] = true;\n this.unableEdit[\"O\"][1] = false;\n this.unableEdit[\"D\"][0] = true;\n this.unableEdit[\"D\"][1] = false;\n this.updatedNumberType = \"Primary\";\n this.unableCall = true;\n this.spinner = false;\n } else {\n this.spinner = false;\n }\n },\n (err) => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n },\n ()=>{\n this.updateActiveContactNo();\n }\n );\n }\n\n getCdmData(){\n let temp:any;\n this.selectedTab=this.selectedTab?this.selectedTab:0;\n\n let ab={id: 2, name: \"SHAH SAMIRKUMAR KANAIYALAL\", contactNo: \"111111111\", regNumber: null, flag: \"O\"}\n // this.contactInfoOwner.push(ab);\n let data={\n \"customerId\": this.customerID,\n \"vin\": \"\",\n \"phoneNo\": \"\",\n \"startDate\": \"\",\n \"endDate\": \"\",\n \"date\": \"\",\n \"customerName\": \"\",\n \"type\": \"T\",\n \"flag\":this.selectedTab==0?'C':this.selectedTab==1?'F':this.selectedTab==2?'D':'C'\n };\n this.commonService.fetchCdmData(data).subscribe((resp)=>{\n if(resp['responseCode']==0){\n temp=resp[\"responseData\"].filter(contact => contact.contactNo = contact.phoneNo);\n temp.forEach((trail)=>{\n if(this.selectedTab==0){\n this.contactInfoOwner.push(trail)\n this.cdmTrailCheckOwner=true\n }else if(this.selectedTab==1){\n this.contactInfoFleet.push(trail)\n this.cdmTrailCheckfleet=true\n }else if(this.selectedTab==2){\n this.contactInfoDriver.push(trail)\n this.cdmTrailCheckdriver=true\n }\n })\n this.trailLogCheck();\n }else{\n this.toastr.error(resp['message'], \"Error\");\n }\n\n }, error => {\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n // this.contactInfoOwner.push(temp[0]);\n\n }\n\n trailLogCheck(){\n if(this.selectedTab==0){\n this.secondTrailCall=this.cdmTrailCheckOwner\n // return this.cdmTrailCheckOwner\n }else if (this.selectedTab==1){\n this.secondTrailCall=this.cdmTrailCheckfleet\n // return this.cdmTrailCheckfleet\n }else if(this.selectedTab==2){\n this.secondTrailCall=this.cdmTrailCheckdriver\n // return this.cdmTrailCheckdriver\n }else{\n this.secondTrailCall=false\n }\n }\n\n /**\n * Name: checkCallStatus\n * purpose: To set contect type selection\n * @param {any} type - type of number\n */\n checkCallStatus(type: any): void {\n this.onTabChange(type);\n this.selectedTab=type && type.index;\n if (type && type.index == 0) {\n this.ownerSelected = true;\n this.fleetSelected = false;\n this.driverSelected = false;\n if (this.contactInfoOwner.length) {\n this.unableCall = true;\n this.contactInfoOwner.forEach((element, i) => {\n if (this.unableEdit[\"O\"][i] != undefined && this.unableEdit[\"O\"][i]) {\n this.selectedNumber = element.contactNo;\n }\n });\n } else {\n this.unableCall = false;\n }\n }\n\n if (type && type.index == 1) {\n this.ownerSelected = false;\n this.fleetSelected = true;\n this.driverSelected = false;\n if (this.contactInfoFleet.length) {\n this.unableCall = true;\n let numberSelected = false;\n this.contactInfoFleet.forEach((element, i) => {\n if (this.unableEdit[\"F\"][i] != undefined && this.unableEdit[\"F\"][i]) {\n this.selectedNumber = element.contactNo;\n numberSelected = true;\n }\n });\n if (!numberSelected) {\n this.selectedNumber = this.contactInfoFleet[0].contactNo;\n this.unableEdit[\"F\"][0] = true;\n }\n } else {\n this.unableCall = false;\n }\n }\n\n if (type && type.index == 2) {\n this.ownerSelected = false;\n this.fleetSelected = false;\n this.driverSelected = true;\n if (this.contactInfoDriver.length) {\n this.unableCall = true;\n let numberSelected = false;\n this.contactInfoDriver.forEach((element, i) => {\n if (this.unableEdit[\"D\"][i] != undefined && this.unableEdit[\"D\"][i]) {\n this.selectedNumber = element.contactNo;\n numberSelected = true;\n }\n });\n if (!numberSelected) {\n this.selectedNumber = this.contactInfoDriver[0].contactNo;\n this.unableEdit[\"D\"][0] = true;\n }\n } else {\n this.unableCall = false;\n }\n\n }\n this.trailLogCheck();\n }\n\n getCustomerName(type) {\n if(type=='C'){\n this.contactInfoOwner.forEach((element)=>{\n if(element.contactNo==this.selectedNumber){\n this.custNameForSave=element.name\n // return this.custNameForSave\n }\n });\n }else if(type=='F'){\n this.contactInfoFleet.forEach((element)=>{\n if(element.contactNo==this.selectedNumber){\n this.custNameForSave=element.name\n // return this.custNameForSave\n }\n });\n }\n else if(type=='D'){\n this.contactInfoDriver.forEach((element)=>{\n if(element.contactNo==this.selectedNumber){\n this.custNameForSave=element.name\n // return this.custNameForSave\n }\n });\n }\n else{\n this.custNameForSave= this.cus360[\"CUSTOMER_INFO\"].custName\n // return this.cus360[\"CUSTOMER_INFO\"].custName\n }\n }\n\n /**\n * Name: callUser\n * purpose: To call user\n */\n private callUser(): void {\n this.showRecordingDailog = false;\n this.spinner = true;\n let callNumber = \"+91\" + this.selectedNumber;\n let type = this.ownerSelected ? \"C\" : this.fleetSelected ? \"F\" : \"D\";\n this.calledNo=this.selectedNumber;\n this.cusType=type;\n this.getCustomerName(this.cusType);\n this.customerName=this.custNameForSave\n \n this.commonService.callCustomer(this.userId, this.customerID, callNumber, type, '').subscribe((res) => {\n if (res[\"responseCode\"] == 0) {\n this.showCallDailog = true;\n this.spinner = false;\n } else {\n this.spinner = false;\n this.toastr.error(res[\"message\"], \"Error\");\n }\n },(err) => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n \n if (localStorage.getItem('countryCode')=='IND91') {\n this.callingToUser();\n }else{\n localStorage.setItem(\"exotel_URI\",'')\n }\n \n }\n\n /**\n * Name: onClose\n * purpose: To close call dailog\n */\n onClose() {\n this.showCallDailog = false;\n this.getContactdetail();\n }\n\n /**\n * Name: updateNumber\n * @param {boolean} addNumber - type of number\n * purpose: To set customer number\n */\n updateNumber(addNumber: boolean): void {\n if (\n (this.updatedNumber && this.updatedNumber.length == 10) ||\n (addNumber && this.secondaryNo && this.secondaryNo.length == 10)\n ) {\n this.spinner = true;\n let oldNumber = this.selectedNumber;\n let newNumber = this.updatedNumber;\n if (addNumber) {\n oldNumber = this.secondaryNo;\n newNumber = this.secondaryNo;\n this.updatedNumberType = \"Secondary\";\n }\n this.commonService\n .amcUpdateNumber(\n newNumber,\n oldNumber,\n this.updatedNumberType,\n this.customerID,\n this.userId\n )\n .subscribe(\n (res) => {\n if (res[\"responseCode\"] == 0) {\n this.spinner = false;\n this.selectedNumber = this.updatedNumber;\n this.toastr.success(\"New number is saved.\", \"Success\");\n this.getContactdetail();\n } else {\n this.spinner = false;\n this.toastr.error(res[\"message\"], \"Error\");\n }\n },\n (err) => {\n this.spinner = false;\n this.toastr.error(\n \"Something went wrong, Please try again.\",\n \"Error\"\n );\n }\n );\n }\n }\n\n /**\n * Name: onNumberChange\n * purpose: To get new selected number\n */\n onNumberChange(\n number: any,\n editNumber: boolean,\n index: any,\n type: string\n ): void {\n \n if (type == \"D\" && editNumber && number.currentTarget.value.length == 10) {\n this.updatedNumber = number.currentTarget.value;\n this.updatedNumberType = \"D\";\n this.errorShow[index] = false;\n } else if (editNumber && number.currentTarget.value.length == 10) {\n this.updatedNumber = number.currentTarget.value;\n this.updatedNumberType = index == 0 ? \"Y\" : \"N\";\n this.errorShow[index] = false;\n } else if (editNumber && number.currentTarget.value.length !== 10) {\n this.errorShow[index] = true;\n } else {\n this.selectedNumber = number.value;\n this.updatedNumber = number.value;\n this.updatedNumberType = index == 0 ? \"Y\" : \"N\";\n if (type == \"O\") {\n this.contactInfoOwner.forEach((element, i) => {\n if (i == index) {\n this.unableEdit[type][i] = true;\n } else {\n this.unableEdit[type][i] = false;\n }\n });\n } else if (type == \"F\") {\n this.contactInfoFleet.forEach((element, i) => {\n if (i == index) {\n this.unableEdit[type][i] = true;\n } else {\n this.unableEdit[type][i] = false;\n }\n });\n } else if (type == \"D\") {\n this.contactInfoDriver.forEach((element, i) => {\n if (i == index) {\n this.unableEdit[type][i] = true;\n } else {\n this.unableEdit[type][i] = false;\n }\n });\n }\n }\n }\n\n /**\n * Name: sendWorkshopMsg\n * purpose: To send workshop addess SMS\n */\n sendWorkshopMsg(): void {\n this.spinner = true;\n let data = {\n contactNo: this.selectedNumber,\n custName: this.cus360[\"CUSTOMER_INFO\"].custName,\n };\n this.workShops.forEach((workshop) => {\n if (workshop.workshopCode == this.selectedWorkShop) {\n data[\"wSAddress\"] = workshop.workshopAddress || \"\";\n data[\"wSManager\"] = workshop.contactNo || \"\";\n data[\"wSName\"] = workshop.workshopName || \"\";\n }\n });\n this.commonService.sendLocationSMS(data).subscribe(\n (res) => {\n if (res[\"responseCode\"] == 0) {\n this.spinner = false;\n } else {\n this.spinner = false;\n this.toastr.error(res[\"message\"], \"Error\");\n }\n },\n (err) => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n }\n );\n }\n\n /**\n * Name: getCustomer360\n * purpose: To get customer data\n */\n getCustomer360(): void {\n this.spinner = true;\n //let dealerCode = this.customerData.dealerCode || \"\";\n let callTypeSeq = this.customerData.callTypeSq || \"\";\n\n this.commonService.getamccustomerdata(this.userId, this.customerID, this.selectedWorkShop, callTypeSeq, this.userRolesId).subscribe(\n (res) => {\n if (res[\"responseCode\"] == 0) {\n this.cus360 = res[\"responseData\"];\n if (\n this.cus360[\"VECHILE_INFO\"] &&\n this.cus360[\"VECHILE_INFO\"].length &&\n this.cus360[\"VECHILE_INFO\"][0].vin6Bits\n ) {\n //this.selectedVehicle = this.cus360[\"VECHILE_INFO\"][0].chassisNo;\n this.selectedVehicle = this.cus360[\"VECHILE_INFO\"][0].vin6Bits;\n this.cus360[\"VECHILE_INFO\"].forEach((element) => {\n this.vinNoList.push(element.chassisNo);\n this.vehicleInfoList.push(element);\n });\n this.subTabDefault(this.selectedVehicle);\n } else {\n this.vehicleDetails = {};\n }\n this.spinner = false;\n } else {\n this.spinner = false;\n this.toastr.error(res[\"message\"], \"Error\");\n }\n },\n (err) => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n }\n );\n }\n\n /**\n * Name: getHistory\n * purpose: To get service history\n */\n getHistory(showHistory: boolean): void {\n if (showHistory) {\n this.spinner = true;\n this.commonService.history(this.selectedVin).subscribe(\n res => {\n if (res[\"responseCode\"] == 0) {\n this.HideServiceHistory = false;\n this.dataSource1 = res[\"responseData\"];\n this.historyDetails= new MatTableDataSource(this.dataSource1);\n this.sort.direction = '';\n this.historyDetails.sort = this.serviceHistorySort;\n this.historyDetails.paginator = this.serviceHistoryPaginator;\n this.historyCount = this.dataSource1.length;\n this.spinner = false;\n } else {\n this.toastr.info(res[\"message\"]);\n this.historyDetails = [];\n this.spinner = false;\n this.historyToggleStatus = false;\n }\n }, err => {\n this.spinner = false;\n this.historyToggleStatus = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n } else {\n this.HideServiceHistory = true;\n }\n }\n\n /**\n * Name: getCallList\n * purpose: To get customer call data\n */\n getCallDetails(): void {\n this.spinner = true;\n this.commonService.callDetails(this.userId, this.customerID,'AMC').subscribe(\n (res) => {\n if (res[\"responseCode\"] == 0) {\n this.spinner = false;\n \n this.callLists = new MatTableDataSource(res[\"responseData\"]);\n this.recentNumber =\n res[\"responseData\"].length && res[\"responseData\"][0].custNo\n ? res[\"responseData\"][0].custNo.split(\"+91\")[1]\n : \"\";\n this.sort.direction = \"\";\n this.callLists.sort = this.callLogsSort;\n this.callLists.paginator = this.callLogsPaginator;\n this.callCount = res[\"responseData\"].length;\n } else {\n this.spinner = false;\n }\n },\n (err) => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n }\n );\n }\n\n /**\n * Name: subTabDefault\n * purpose: To set vehicle details as selected\n */\n subTabDefault(selectedVehicle: string): void {\n this.vehicleDetails = this.cus360[\"VECHILE_INFO\"].filter((vehicle) => vehicle.vin6Bits == selectedVehicle)[0];\n this.selectedVin = this.vehicleDetails.chassisNo;\n this.fetchCustCallSeq(this.vehicleDetails.chassisNo);\n\n //set the vehicle call Info\n if (this.cus360[\"SERVICE_INFO\"] && Object.keys(this.cus360[\"SERVICE_INFO\"]).length && this.cus360[\"SERVICE_INFO\"][selectedVehicle]) {\n this.serviceDetails = this.cus360[\"SERVICE_INFO\"][selectedVehicle];\n\n localStorage.setItem(\"serviceInfo\",JSON.stringify(this.cus360[\"SERVICE_INFO\"]));\n\n //set the vehicle call Info\n this.vehicleServiceAndStausInfo = this.serviceDetails.campaignId ? this.serviceDetails.serviceType : this.serviceDetails.serviceType + \", \" + this.serviceDetails.callStatus;\n this.vehicleTypeCallInfo = this.serviceDetails.callType;\n } else {\n this.serviceDetails = {};\n }\n\n if (this.cus360[\"LAST_SERVICE_INFO\"] && Object.keys(this.cus360[\"LAST_SERVICE_INFO\"]).length && this.cus360[\"LAST_SERVICE_INFO\"][selectedVehicle]) {\n this.lastServiceDetails = this.cus360[\"LAST_SERVICE_INFO\"][selectedVehicle];\n localStorage.setItem(\"milage\", this.lastServiceDetails.milage);\n this.lastServiceDetails.invoiceDate = this.datePipe.transform(\n this.lastServiceDetails.invoiceDate,\n \"yyyy-MM-dd\"\n );\n } else {\n this.lastServiceDetails = {};\n }\n\n if (this.cus360[\"Remark_Info\"] && Object.keys(this.cus360[\"Remark_Info\"]).length && this.cus360[\"Remark_Info\"][selectedVehicle]) {\n let remarks = this.cus360[\"Remark_Info\"][selectedVehicle];\n // remarks.forEach(element => {\n // let date = element.remarkTime;\n // let d = new Date(date);\n // element.remarkTime = d;\n // element.remarkDate = this.datePipe.transform(element.remarkDate, \"yyyy-MM-dd\");\n // });\n this.remarksDetails = new MatTableDataSource(remarks);\n this.sort.direction = '';\n this.remarksDetails.sort = this.remarksSort;\n this.remarksDetails.paginator = this.remarksPaginator;\n this.remarksCount = remarks.length;\n } else {\n this.remarksDetails = [];\n }\n\n if (this.cus360[\"CONTRACT_DETAIL\"] && Object.keys(this.cus360[\"CONTRACT_DETAIL\"]).length && this.cus360[\"CONTRACT_DETAIL\"][selectedVehicle]) {\n let contracts = this.cus360[\"CONTRACT_DETAIL\"][selectedVehicle];\n this.contractList = new MatTableDataSource(contracts);\n this.sort.direction = \"\";\n this.contractList.sort = this.contractSort;\n this.contractList.paginator = this.contractPaginator;\n this.contractCount = contracts.length;\n } else {\n this.contractList = [];\n }\n }\n\n /**\n * Name: fetchCustCallSeq\n * purpose: To get customer call data\n */\n fetchCustCallSeq(vin : string): void {\n this.spinner = true;\n this.commonService.fetchCustCallSeq(this.customerID, vin, this.userRolesId, this.userId).subscribe(\n (res) => {\n if (res[\"responseCode\"] == 0) {\n this.spinner = false;\n this.custCallSeqResponse = res[\"responseData\"];\n this.amcNewOffering = this.custCallSeqResponse.amcNewOffering;\n this.amcRenewal = this.custCallSeqResponse.amcRenewal;\n this.extendedWarranty = this.custCallSeqResponse.extendedWarranty;\n this.insuranceRenewal = this.custCallSeqResponse.insuranceRenewal;\n this.availableOfferings = this.custCallSeqResponse.availableOfferings;\n this.amcAutofilledResponse = this.custCallSeqResponse.amcAutofillQuestion;\n this.amcReAutofilledResponse = this.custCallSeqResponse.amcReAutofillQuestion;\n this.ewAutofilledResponse = this.custCallSeqResponse.ewAutofillQuestion;\n this.irAutofilledResponse = this.custCallSeqResponse.irAutofillQuestion;\n if(this.amcNewOffering == \"YES\"){\n this.getAmcFetchQuestions(\"1\")\n }\n if(this.amcRenewal == \"YES\"){\n this.getAmcFetchQuestions(\"2\")\n }\n if(this.extendedWarranty == \"YES\"){\n this.getAmcFetchQuestions(\"4\")\n }\n if(this.insuranceRenewal == \"YES\"){\n this.getAmcFetchQuestions(\"3\")\n }\n } else {\n this.spinner = false;\n }\n },\n (err) => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n }\n );\n }\n\n /**\n * Name: getAutoFilledQuestions\n * purpose: To get Auto Filled Questions\n */\n getAutoFilledQuestions(category: string, vin: string): void {\n this.spinner = true;\n this.commonService.getAutoFilledQuestions(this.customerID, category, this.userId, vin).subscribe(\n (res) => {\n if (res[\"responseCode\"] == 0) {\n this.spinner = false;\n if(category == \"1\") {\n this.amcAutofilledResponse = res[\"responseData\"];\n }\n if(category == \"2\") {\n this.amcReAutofilledResponse = res[\"responseData\"];\n }\n if(category == \"3\") {\n this.irAutofilledResponse = res[\"responseData\"];\n }\n if(category == \"4\") {\n this.ewAutofilledResponse = res[\"responseData\"];\n }\n } else {\n this.spinner = false;\n }\n },\n (err) => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n }\n );\n }\n\n /**\n * Name: getAmcFetchQuestions\n * purpose: To get Amc Questions\n */\n getAmcFetchQuestions(val : string): void {\n this.spinner = true;\n this.commonService.getAmcFetchQuestions(this.userId, val, this.userRolesId).subscribe(\n (res) => {\n if (res[\"responseCode\"] == 0) {\n let groups = [];\n if(val == \"1\") {\n this.amcQuestions = [];\n this.amcQuestionInfo = [];\n res[\"responseData\"].forEach((element) => {\n let questionGroup = [];\n let groupexist = groups.filter(\n (group) => group == element.parentId\n );\n if (Number(element.parentId) > 0 && groupexist.length == 0) {\n questionGroup = res[\"responseData\"].filter(\n (question) => question.parentId == element.parentId\n );\n this.amcQuestions.push(questionGroup);\n groups.push(element.parentId);\n } else if (groupexist.length == 0) {\n this.amcQuestions.push(element);\n }\n });\n this.createAmcQuestionForm(this.amcQuestions);\n }\n if(val == \"2\") {\n this.amcReQuestions = [];\n this.amcRQuestionInfo = [];\n res[\"responseData\"].forEach((element) => {\n let questionGroup = [];\n let groupexist = groups.filter(\n (group) => group == element.parentId\n );\n if (Number(element.parentId) > 0 && groupexist.length == 0) {\n questionGroup = res[\"responseData\"].filter(\n (question) => question.parentId == element.parentId\n );\n this.amcReQuestions.push(questionGroup);\n groups.push(element.parentId);\n } else if (groupexist.length == 0) {\n this.amcReQuestions.push(element);\n }\n });\n this.createAMCRQuestionForm(this.amcReQuestions);\n }\n if(val == \"4\") {\n this.ewQuestions = [];\n this.ewQuestionInfo = [];\n res[\"responseData\"].forEach((element) => {\n let questionGroup = [];\n let groupexist = groups.filter(\n (group) => group == element.parentId\n );\n if (Number(element.parentId) > 0 && groupexist.length == 0) {\n questionGroup = res[\"responseData\"].filter(\n (question) => question.parentId == element.parentId\n );\n this.ewQuestions.push(questionGroup);\n groups.push(element.parentId);\n } else if (groupexist.length == 0) {\n this.ewQuestions.push(element);\n }\n });\n this.createEWQuestionForm(this.ewQuestions);\n }\n if(val == \"3\") {\n this.irQuestions = [];\n this.irQuestionInfo = [];\n res[\"responseData\"].forEach((element) => {\n let questionGroup = [];\n let groupexist = groups.filter(\n (group) => group == element.parentId\n );\n if (Number(element.parentId) > 0 && groupexist.length == 0) {\n questionGroup = res[\"responseData\"].filter(\n (question) => question.parentId == element.parentId\n );\n this.irQuestions.push(questionGroup);\n groups.push(element.parentId);\n } else if (groupexist.length == 0) {\n this.irQuestions.push(element);\n }\n });\n this.createIRQuestionForm(this.irQuestions);\n }\n //this.createQuestionForm(this.questions);\n this.spinner = false;\n } else {\n this.spinner = false;\n this.toastr.error(res[\"message\"], \"Error\");\n }\n },\n (err) => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n }\n );\n }\n\n /**\n * Name: createQuestionForm\n * purpose: To create question form\n */\n createAmcQuestionForm(data: any) {\n this.submitted = false;\n const formDataObj = {};\n let questionIdAdded = [];\n for (const prop of data) {\n let response = '';\n let remark = '';\n this.amcAutofilledResponse.forEach((element) => {\n if(element.questionDesc == prop.questionDesc) {\n response = element.questionResponse;\n remark = element.remarks;\n }\n })\n if (!prop.length) {\n this.showField = true;\n if(prop.questionDesc == 'In process' || prop.questionDesc == 'Loss'\n || prop.questionDesc == 'Deal Closed') {\n this.showField = false;\n }\n let questionExist;\n if (prop.radioButtonType == \"Yes\") {\n questionExist = questionIdAdded.filter(\n (group) => group == prop.questionId\n );\n formDataObj[prop.questionId + \"radio\"] = new FormControl(response);\n this.amcQuestionInfo.push({\n label: prop.questionId + \"radio\",\n type: \"RadioButton\",\n desc: prop.questionDesc,\n id: prop.questionSequence,\n questionId: prop.questionId,\n showDesc: questionExist.length ? false : true,\n subQuestion: false,\n parentId: prop.parentId,\n showField: this.showField\n });\n questionIdAdded.push(prop.questionId);\n }\n\n if (prop.dropdownType == \"Yes\") {\n questionExist = questionIdAdded.filter(\n (group) => group == prop.questionId\n );\n formDataObj[prop.questionId + \"dropdown\"] = new FormControl(response);\n this.amcQuestionInfo.push({\n label: prop.questionId + \"dropdown\",\n type: \"Dropdown\",\n desc: prop.questionDesc,\n id: prop.questionSequence,\n questionId: prop.questionId,\n showDesc: questionExist.length ? false : true,\n subQuestion: true,\n parentId: prop.parentId,\n data: this.dropdownData[prop.questionId],\n showField: this.showField\n });\n questionIdAdded.push(prop.questionId);\n }\n\n if (prop.remarksType == \"Yes\") {\n questionExist = questionIdAdded.filter(\n (group) => group == prop.questionId\n );\n formDataObj[prop.questionId + \"text\"] = new FormControl(remark);\n this.amcQuestionInfo.push({\n label: prop.questionId + \"text\",\n type: \"Text\",\n desc: prop.questionDesc,\n id: prop.questionSequence,\n questionId: prop.questionId,\n showDesc: questionExist.length ? false : true,\n subQuestion: false,\n parentId: prop.parentId,\n showField: this.showField\n });\n questionIdAdded.push(prop.questionId);\n }\n\n if (prop.dateType == \"Yes\") {\n questionExist = questionIdAdded.filter(\n (group) => group == prop.questionId\n );\n formDataObj[prop.questionId + \"date\"] = new FormControl(response);\n this.amcQuestionInfo.push({\n label: prop.questionId + \"date\",\n type: \"Date\",\n desc: prop.questionDesc,\n id: prop.questionSequence,\n questionId: prop.questionId,\n showDesc: questionExist.length ? false : true,\n subQuestion: false,\n parentId: prop.parentId,\n showField: this.showField\n });\n questionIdAdded.push(prop.questionId);\n }\n\n if (prop.questionId == \"14\") {\n questionExist = questionIdAdded.filter(\n (group) => group == prop.questionId\n );\n formDataObj[prop.questionId + \"dropdown\"] = new FormControl(response);\n this.amcQuestionInfo.push({\n label: prop.questionId + \"dropdown\",\n type: \"Dropdown\",\n desc: prop.questionDesc,\n id: prop.questionSequence,\n questionId: prop.questionId,\n showDesc: questionExist.length ? false : true,\n subQuestion: true,\n parentId: prop.parentId,\n data: this.dropdownData[prop.questionId],\n showField: this.showField\n });\n questionIdAdded.push(prop.questionId);\n }\n }\n }\n this.AMCQuestionForm = new FormGroup(formDataObj);\n }\n\n /**\n * Name: createQuestionForm\n * purpose: To create question form\n */\n createAMCRQuestionForm(data: any) {\n this.submitted = false;\n const formDataObj = {};\n let questionIdAdded = [];\n for (const prop of data) {\n let response = '';\n let remark = '';\n this.amcReAutofilledResponse.forEach((element) => {\n if(element.questionDesc == prop.questionDesc) {\n response = element.questionResponse;\n remark = element.remarks;\n }\n })\n if (!prop.length) {\n this.showField = true;\n if(prop.questionDesc == 'In process' || prop.questionDesc == 'Loss'\n || prop.questionDesc == 'Deal Closed') {\n this.showField = false;\n }\n let questionExist;\n if (prop.radioButtonType == \"Yes\") {\n questionExist = questionIdAdded.filter(\n (group) => group == prop.questionId\n );\n formDataObj[prop.questionId + \"radio\"] = new FormControl(response);\n this.amcRQuestionInfo.push({\n label: prop.questionId + \"radio\",\n type: \"RadioButton\",\n desc: prop.questionDesc,\n id: prop.questionSequence,\n questionId: prop.questionId,\n showDesc: questionExist.length ? false : true,\n subQuestion: false,\n showField: this.showField\n });\n questionIdAdded.push(prop.questionId);\n }\n\n if (prop.dropdownType == \"Yes\") {\n questionExist = questionIdAdded.filter(\n (group) => group == prop.questionId\n );\n formDataObj[prop.questionId + \"dropdown\"] = new FormControl(response);\n this.amcRQuestionInfo.push({\n label: prop.questionId + \"dropdown\",\n type: \"Dropdown\",\n desc: prop.questionDesc,\n id: prop.questionSequence,\n questionId: prop.questionId,\n showDesc: questionExist.length ? false : true,\n subQuestion: true,\n parentId: prop.parentId,\n data: this.dropdownData[prop.questionId],\n showField: this.showField\n });\n questionIdAdded.push(prop.questionId);\n }\n\n if (prop.remarksType == \"Yes\") {\n questionExist = questionIdAdded.filter(\n (group) => group == prop.questionId\n );\n formDataObj[prop.questionId + \"text\"] = new FormControl(remark);\n this.amcRQuestionInfo.push({\n label: prop.questionId + \"text\",\n type: \"Text\",\n desc: prop.questionDesc,\n id: prop.questionSequence,\n questionId: prop.questionId,\n showDesc: questionExist.length ? false : true,\n subQuestion: false,\n showField: this.showField\n });\n questionIdAdded.push(prop.questionId);\n }\n\n if (prop.dateType == \"Yes\") {\n questionExist = questionIdAdded.filter(\n (group) => group == prop.questionId\n );\n formDataObj[prop.questionId + \"date\"] = new FormControl(response);\n this.amcRQuestionInfo.push({\n label: prop.questionId + \"date\",\n type: \"Date\",\n desc: prop.questionDesc,\n id: prop.questionSequence,\n questionId: prop.questionId,\n showDesc: questionExist.length ? false : true,\n subQuestion: false,\n showField: this.showField\n });\n questionIdAdded.push(prop.questionId);\n }\n\n if (prop.questionId == \"14\") {\n questionExist = questionIdAdded.filter(\n (group) => group == prop.questionId\n );\n formDataObj[prop.questionId + \"dropdown\"] = new FormControl(response);\n this.amcRQuestionInfo.push({\n label: prop.questionId + \"dropdown\",\n type: \"Dropdown\",\n desc: prop.questionDesc,\n id: prop.questionSequence,\n questionId: prop.questionId,\n showDesc: questionExist.length ? false : true,\n subQuestion: true,\n parentId: prop.parentId,\n data: this.dropdownData[prop.questionId],\n showField: this.showField\n });\n questionIdAdded.push(prop.questionId);\n }\n }\n }\n this.amcRQuestionForm = new FormGroup(formDataObj);\n }\n\n /**\n * Name: createQuestionForm\n * purpose: To create question form\n */\n createEWQuestionForm(data: any) {\n this.submitted = false;\n const formDataObj = {};\n let questionIdAdded = [];\n for (const prop of data) {\n let response = '';\n let remark = '';\n this.ewAutofilledResponse.forEach((element) => {\n if(element.questionDesc == prop.questionDesc) {\n response = element.questionResponse;\n remark = element.remarks;\n }\n })\n if (!prop.length) {\n this.showField = true;\n if(prop.questionDesc == 'In process' || prop.questionDesc == 'Loss'\n || prop.questionDesc == 'Deal Closed') {\n this.showField = false;\n }\n let questionExist;\n if (prop.radioButtonType == \"Yes\") {\n questionExist = questionIdAdded.filter(\n (group) => group == prop.questionId\n );\n formDataObj[prop.questionId + \"radio\"] = new FormControl(response);\n this.ewQuestionInfo.push({\n label: prop.questionId + \"radio\",\n type: \"RadioButton\",\n desc: prop.questionDesc,\n id: prop.questionSequence,\n questionId: prop.questionId,\n showDesc: questionExist.length ? false : true,\n subQuestion: false,\n showField: this.showField\n });\n questionIdAdded.push(prop.questionId);\n }\n\n if (prop.dropdownType == \"Yes\") {\n questionExist = questionIdAdded.filter(\n (group) => group == prop.questionId\n );\n formDataObj[prop.questionId + \"dropdown\"] = new FormControl(response);\n this.ewQuestionInfo.push({\n label: prop.questionId + \"dropdown\",\n type: \"Dropdown\",\n desc: prop.questionDesc,\n id: prop.questionSequence,\n questionId: prop.questionId,\n showDesc: questionExist.length ? false : true,\n subQuestion: true,\n parentId: prop.parentId,\n data: this.dropdownData[prop.questionId],\n showField: this.showField\n });\n questionIdAdded.push(prop.questionId);\n }\n\n if (prop.remarksType == \"Yes\") {\n questionExist = questionIdAdded.filter(\n (group) => group == prop.questionId\n );\n formDataObj[prop.questionId + \"text\"] = new FormControl(remark);\n this.ewQuestionInfo.push({\n label: prop.questionId + \"text\",\n type: \"Text\",\n desc: prop.questionDesc,\n id: prop.questionSequence,\n questionId: prop.questionId,\n showDesc: questionExist.length ? false : true,\n subQuestion: false,\n showField: this.showField\n });\n questionIdAdded.push(prop.questionId);\n }\n\n if (prop.dateType == \"Yes\") {\n questionExist = questionIdAdded.filter(\n (group) => group == prop.questionId\n );\n formDataObj[prop.questionId + \"date\"] = new FormControl(response);\n this.ewQuestionInfo.push({\n label: prop.questionId + \"date\",\n type: \"Date\",\n desc: prop.questionDesc,\n id: prop.questionSequence,\n questionId: prop.questionId,\n showDesc: questionExist.length ? false : true,\n subQuestion: false,\n showField: this.showField\n });\n questionIdAdded.push(prop.questionId);\n }\n\n if (prop.questionId == \"37\") {\n questionExist = questionIdAdded.filter(\n (group) => group == prop.questionId\n );\n formDataObj[prop.questionId + \"dropdown\"] = new FormControl(response);\n this.ewQuestionInfo.push({\n label: prop.questionId + \"dropdown\",\n type: \"Dropdown\",\n desc: prop.questionDesc,\n id: prop.questionSequence,\n questionId: prop.questionId,\n showDesc: questionExist.length ? false : true,\n subQuestion: true,\n parentId: prop.parentId,\n data: this.dropdownData[prop.questionId],\n showField: this.showField\n });\n questionIdAdded.push(prop.questionId);\n }\n }\n }\n this.ewQuestionForm = new FormGroup(formDataObj);\n }\n\n /**\n * Name: createQuestionForm\n * purpose: To create question form\n */\n createIRQuestionForm(data: any) {\n this.submitted = false;\n const formDataObj = {};\n let questionIdAdded = [];\n for (const prop of data) {\n let response = '';\n let remark = '';\n this.irAutofilledResponse.forEach((element) => {\n if(element.questionDesc == prop.questionDesc) {\n response = element.questionResponse;\n remark = element.remarks;\n }\n })\n if (!prop.length) {\n this.showField = true;\n if(prop.questionDesc == 'In process' || prop.questionDesc == 'Loss'\n || prop.questionDesc == 'Deal Closed') {\n this.showField = false;\n }\n let questionExist;\n if (prop.radioButtonType == \"Yes\") {\n questionExist = questionIdAdded.filter(\n (group) => group == prop.questionId\n );\n formDataObj[prop.questionId + \"radio\"] = new FormControl(response);\n this.irQuestionInfo.push({\n label: prop.questionId + \"radio\",\n type: \"RadioButton\",\n desc: prop.questionDesc,\n id: prop.questionSequence,\n questionId: prop.questionId,\n showDesc: questionExist.length ? false : true,\n subQuestion: false,\n showField: this.showField\n });\n questionIdAdded.push(prop.questionId);\n }\n\n if (prop.dropdownType == \"Yes\") {\n questionExist = questionIdAdded.filter(\n (group) => group == prop.questionId\n );\n formDataObj[prop.questionId + \"dropdown\"] = new FormControl(response);\n this.irQuestionInfo.push({\n label: prop.questionId + \"dropdown\",\n type: \"Dropdown\",\n desc: prop.questionDesc,\n id: prop.questionSequence,\n questionId: prop.questionId,\n showDesc: questionExist.length ? false : true,\n subQuestion: true,\n parentId: prop.parentId,\n data: this.dropdownData[prop.questionId],\n showField: this.showField\n });\n questionIdAdded.push(prop.questionId);\n }\n\n if (prop.remarksType == \"Yes\") {\n questionExist = questionIdAdded.filter(\n (group) => group == prop.questionId\n );\n formDataObj[prop.questionId + \"text\"] = new FormControl(remark);\n this.irQuestionInfo.push({\n label: prop.questionId + \"text\",\n type: \"Text\",\n desc: prop.questionDesc,\n id: prop.questionSequence,\n questionId: prop.questionId,\n showDesc: questionExist.length ? false : true,\n subQuestion: false,\n showField: this.showField\n });\n questionIdAdded.push(prop.questionId);\n }\n\n if (prop.dateType == \"Yes\") {\n questionExist = questionIdAdded.filter(\n (group) => group == prop.questionId\n );\n formDataObj[prop.questionId + \"date\"] = new FormControl(response);\n this.irQuestionInfo.push({\n label: prop.questionId + \"date\",\n type: \"Date\",\n desc: prop.questionDesc,\n id: prop.questionSequence,\n questionId: prop.questionId,\n showDesc: questionExist.length ? false : true,\n subQuestion: false,\n showField: this.showField\n });\n questionIdAdded.push(prop.questionId);\n }\n\n if (prop.questionId == \"37\") {\n questionExist = questionIdAdded.filter(\n (group) => group == prop.questionId\n );\n formDataObj[prop.questionId + \"dropdown\"] = new FormControl(response);\n this.irQuestionInfo.push({\n label: prop.questionId + \"dropdown\",\n type: \"Dropdown\",\n desc: prop.questionDesc,\n id: prop.questionSequence,\n questionId: prop.questionId,\n showDesc: questionExist.length ? false : true,\n subQuestion: true,\n parentId: prop.parentId,\n data: this.dropdownData[prop.questionId],\n showField: this.showField\n });\n questionIdAdded.push(prop.questionId);\n }\n }\n }\n this.irQuestionForm = new FormGroup(formDataObj);\n }\n\n checkQuestionValidation(): boolean {\n let valid = true;\n if (this.AMCQuestionForm !== undefined) {\n this.amcradioFlag = false;\n this.amctextFlag = false;\n this.amcdropdownFlag = false;\n if(this.userRolesId == \"1\") {\n if(this.AMCQuestionForm.value[\"1radio\"] == \"\") {\n valid = false;\n this.amcradioFlag = true;\n } else if(this.AMCQuestionForm.value[\"1radio\"] == \"Yes\") {\n if(this.AMCQuestionForm.value[\"2dropdown\"] == \"\") {\n this.amcdropdownFlag = true;\n valid = false;\n }\n if(this.AMCQuestionForm.value[\"3text\"] == \"\") {\n this.amctextFlag = true;\n valid = false;\n }\n if(this.AMCQuestionForm.value[\"4radio\"] == \"\"){\n this.amcradioFlag = true;\n } else if( this.AMCQuestionForm.value[\"4radio\"] == \"Yes\") {\n if(this.AMCQuestionForm.value[\"4text\"] == \"\"){\n this.amctextFlag = true;\n valid = false;\n }\n } else {\n this.amctextFlag = false;\n }\n }\n } else if(this.userRolesId == \"2\") {\n if (this.AMCQuestionForm.value[\"6dropdown\"] == \"\" || this.AMCQuestionForm.value[\"7dropdown\"] == \"\"\n || this.AMCQuestionForm.value[\"35dropdown\"] == \"\" || this.AMCQuestionForm.value[\"11dropdown\"] == \"\"\n || this.AMCQuestionForm.value[\"12dropdown\"] == \"\" || this.AMCQuestionForm.value[\"14-1dropdown\"] == \"\") {\n this.amcdropdownFlag = true;\n valid = false;\n }\n if(this.AMCQuestionForm.value[\"14-2dropdown\"] == \"\") {\n this.amcdropdownFlag = true;\n valid = false;\n } else if(this.AMCQuestionForm.value[\"14-2dropdown\"] == \"In progress\") {\n if(this.AMCQuestionForm.value[\"14-2-1dropdown\"] == \"\") {\n this.amcdropdownFlag = true;\n valid = false;\n }\n } else if(this.AMCQuestionForm.value[\"14-2dropdown\"] == \"Loss\") {\n if(this.AMCQuestionForm.value[\"14-2-2text\"] == \"\") {\n this.amctextFlag = true;\n valid = false;\n }\n } else if(this.AMCQuestionForm.value[\"14-2dropdown\"] == \"Deal Closed\") {\n if(this.AMCQuestionForm.value[\"14-2-3text\"] == \"\") {\n this.amctextFlag = true;\n valid = false;\n }\n }\n if (this.AMCQuestionForm.value[\"8text\"] == \"\") {\n this.amctextFlag = true;\n valid = false;\n }\n if (this.AMCQuestionForm.value[\"9radio\"] == \"\") {\n this.amcradioFlag = true;\n valid = false;\n } else if (this.AMCQuestionForm.value[\"9radio\"] == \"Yes\") {\n if(this.AMCQuestionForm.value[\"9text\"] == \"\") {\n this.amctextFlag = true;\n valid = false;\n }\n } else {\n this.amctextFlag = false;\n }\n if (this.AMCQuestionForm.value[\"10date\"] == \"\") {\n this.amcdateFlag = true;\n valid = false;\n }\n }\n }\n if (this.amcRQuestionForm !== undefined) {\n this.amcReradioFlag = false;\n this.amcRetextFlag = false;\n this.amcRedropdownFlag = false;\n if(this.userRolesId == \"1\") {\n if(this.amcRQuestionForm.value[\"1radio\"] == \"\") {\n valid = false;\n this.amcReradioFlag = true;\n } else if(this.amcRQuestionForm.value[\"1radio\"] == \"Yes\") {\n if(this.amcRQuestionForm.value[\"2dropdown\"] == \"\") {\n this.amcRedropdownFlag = true;\n valid = false;\n }\n if(this.amcRQuestionForm.value[\"3text\"] == \"\") {\n this.amcRetextFlag = true;\n valid = false;\n }\n if(this.amcRQuestionForm.value[\"4radio\"] == \"\"){\n this.amcReradioFlag = true;\n } else if( this.amcRQuestionForm.value[\"4radio\"] == \"Yes\") {\n if(this.amcRQuestionForm.value[\"4text\"] == \"\"){\n this.amcRetextFlag = true;\n valid = false;\n }\n } else {\n this.amcRetextFlag = false;\n }\n }\n } else if(this.userRolesId == \"2\") {\n if (this.amcRQuestionForm.value[\"6dropdown\"] == \"\" || this.amcRQuestionForm.value[\"7dropdown\"] == \"\"\n || this.amcRQuestionForm.value[\"35dropdown\"] == \"\" || this.amcRQuestionForm.value[\"11dropdown\"] == \"\"\n || this.amcRQuestionForm.value[\"12dropdown\"] == \"\") {\n this.amcRedropdownFlag = true;\n valid = false;\n }\n if(this.amcRQuestionForm.value[\"14-1dropdown\"] == \"\") {\n this.amcRedropdownFlag = true;\n valid = false;\n }\n if(this.amcRQuestionForm.value[\"14-2dropdown\"] == \"\") {\n this.amcRedropdownFlag = true;\n valid = false;\n } else if(this.amcRQuestionForm.value[\"14-2dropdown\"] == \"In progress\") {\n if(this.amcRQuestionForm.value[\"14-2-1dropdown\"] == \"\") {\n this.amcRedropdownFlag = true;\n valid = false;\n }\n } else if(this.amcRQuestionForm.value[\"14-2dropdown\"] == \"Loss\") {\n if(this.amcRQuestionForm.value[\"14-2-2text\"] == \"\") {\n this.amcRetextFlag = true;\n valid = false;\n }\n } else if(this.amcRQuestionForm.value[\"14-2dropdown\"] == \"Deal Closed\") {\n if(this.amcRQuestionForm.value[\"14-2-3text\"] == \"\") {\n this.amcRetextFlag = true;\n valid = false;\n }\n }\n if (this.amcRQuestionForm.value[\"8text\"] == \"\") {\n this.amcRetextFlag = true;\n valid = false;\n }\n if (this.amcRQuestionForm.value[\"9radio\"] == \"\") {\n this.amcReradioFlag = true;\n valid = false;\n } else if (this.amcRQuestionForm.value[\"9radio\"] == \"Yes\") {\n if(this.amcRQuestionForm.value[\"9text\"] == \"\") {\n this.amcRetextFlag = true;\n valid = false;\n }\n } else {\n this.amcRetextFlag = false;\n }\n if (this.amcRQuestionForm.value[\"10date\"] == \"\") {\n this.amcRedateFlag = true;\n valid = false;\n }\n }\n }\n if (this.ewQuestionForm !== undefined) {\n this.ewradioFlag = false;\n this.ewtextFlag = false;\n this.ewdropdownFlag = false;\n if(this.userRolesId == \"1\") {\n if(this.ewQuestionForm.value[\"15radio\"] == \"\") {\n valid = false;\n this.ewradioFlag = true;\n } else if(this.ewQuestionForm.value[\"15radio\"] == \"Yes\") {\n if(this.ewQuestionForm.value[\"17text\"] == \"\") {\n this.ewtextFlag = true;\n valid = false;\n }\n if(this.ewQuestionForm.value[\"18radio\"] == \"\"){\n this.ewradioFlag = true;\n valid = false;\n } else if(this.ewQuestionForm.value[\"18radio\"] == \"Yes\") {\n if(this.ewQuestionForm.value[\"18text\"] == \"\"){\n this.ewtextFlag = true;\n valid = false;\n }\n } else {\n this.ewtextFlag = false;\n }\n }\n } else if(this.userRolesId == \"2\") {\n if(this.ewQuestionForm.value[\"23radio\"] == \"\") {\n this.ewradioFlag = true;\n valid = false;\n } else if(this.ewQuestionForm.value[\"23radio\"] == \"Yes\") {\n if(this.ewQuestionForm.value[\"23text\"] == \"\") {\n this.ewtextFlag = true;\n valid = false;\n }\n } else {\n this.ewtextFlag = false;\n }\n if (this.ewQuestionForm.value[\"24date\"] == \"\") {\n this.ewdateFlag = true;\n valid = false;\n }\n if (this.ewQuestionForm.value[\"26dropdown\"] == \"\" || this.ewQuestionForm.value[\"28dropdown\"] == \"\"\n || this.ewQuestionForm.value[\"37-1dropdown\"] == \"\") {\n this.ewdropdownFlag = true;\n valid = false;\n }\n if (this.ewQuestionForm.value[\"22text\"] == \"\") {\n this.ewtextFlag = true;\n valid = false;\n }\n if(this.ewQuestionForm.value[\"37-2dropdown\"] == \"\") {\n this.ewdropdownFlag = true;\n valid = false;\n } else if(this.ewQuestionForm.value[\"37-2dropdown\"] == \"In progress\") {\n if(this.ewQuestionForm.value[\"37-2-1dropdown\"] == \"\") {\n this.ewdropdownFlag = true;\n valid = false;\n }\n } else if(this.ewQuestionForm.value[\"37-2dropdown\"] == \"Loss\") {\n if(this.ewQuestionForm.value[\"37-2-2text\"] == \"\") {\n this.ewtextFlag = true;\n valid = false;\n }\n } else if(this.ewQuestionForm.value[\"37-2dropdown\"] == \"Deal Closed\") {\n if(this.ewQuestionForm.value[\"37-2-3text\"] == \"\") {\n this.ewtextFlag = true;\n valid = false;\n }\n }\n }\n }\n if (this.irQuestionForm !== undefined) {\n this.irradioFlag = false;\n this.irtextFlag = false;\n this.irdropdownFlag = false;\n if(this.userRolesId == \"1\") {\n if(this.irQuestionForm.value[\"29radio\"] == \"\") {\n valid = false;\n this.irradioFlag = true;\n } else if(this.irQuestionForm.value[\"29radio\"] == \"Yes\") {\n if(this.irQuestionForm.value[\"30radio\"] == \"\"){\n this.irradioFlag = true;\n valid = false;\n } else if(this.irQuestionForm.value[\"30radio\"] == \"Yes\") {\n if(this.irQuestionForm.value[\"30text\"] == \"\"){\n this.irtextFlag = true;\n valid = false;\n }\n } else {\n this.irtextFlag = false;\n }\n }\n } else if(this.userRolesId == \"2\") {\n if(this.irQuestionForm.value[\"31radio\"] == \"\") {\n this.irradioFlag = true;\n valid = false;\n } else if(this.irQuestionForm.value[\"31radio\"] == \"Yes\") {\n if(this.irQuestionForm.value[\"31text\"] == \"\") {\n this.irtextFlag = true;\n valid = false;\n }\n } else {\n this.irtextFlag = false;\n }\n if (this.irQuestionForm.value[\"32date\"] == \"\") {\n this.irdateFlag = true;\n valid = false;\n }\n if (this.irQuestionForm.value[\"33dropdown\"] == \"\" || this.irQuestionForm.value[\"36-1dropdown\"] == \"\") {\n this.irdropdownFlag = true;\n valid = false;\n }\n if(this.AMCQuestionForm.value[\"36-2dropdown\"] == \"\") {\n this.amcdropdownFlag = true;\n valid = false;\n } else if(this.AMCQuestionForm.value[\"36-2dropdown\"] == \"In progress\") {\n if(this.AMCQuestionForm.value[\"36-2-1dropdown\"] == \"\") {\n this.amcdropdownFlag = true;\n valid = false;\n }\n } else if(this.AMCQuestionForm.value[\"36-2dropdown\"] == \"Loss\") {\n if(this.AMCQuestionForm.value[\"36-2-2text\"] == \"\") {\n this.amctextFlag = true;\n valid = false;\n }\n } else if(this.AMCQuestionForm.value[\"36-2dropdown\"] == \"Deal Closed\") {\n if(this.AMCQuestionForm.value[\"36-2-3text\"] == \"\") {\n this.amctextFlag = true;\n valid = false;\n }\n }\n }\n }\n this.formSubmitted = valid;\n return valid;\n }\n\n getAmcFeedbackValue(questions: any, questionValue: any) {\n let idFeedback = \"\";\n let formValue = questions.value;\n questionValue.forEach((element, index) => {\n let feedback = \"\";\n if ( element.radioButtonType == \"Yes\" && formValue[element.questionId + \"radio\"]) {\n feedback = feedback + \"#\" + formValue[element.questionId + \"radio\"];\n } else if(element.radioButtonType == \"Yes\"){\n feedback = feedback + \"#\"+ \"\";\n }\n if ( element.dropdownType == \"Yes\" && formValue[element.questionId + \"dropdown\"]) {\n feedback = feedback + \"#\" + formValue[element.questionId + \"dropdown\"];\n } else if(element.dropdownType == \"Yes\") {\n feedback = feedback + \"#\"+ \"\";\n }\n if ( element.dateType == \"Yes\" && formValue[element.questionId + \"date\"]) {\n feedback = feedback + \"#\" + formValue[element.questionId + \"date\"];\n } else if(element.dateType == \"Yes\") {\n feedback = feedback + \"#\"+ \"\";\n }\n if ( element.remarksType == \"Yes\" && formValue[element.questionId + \"text\"]) {\n if(element.questionId == \"3\" || element.questionId == \"8\" || element.questionId == \"13\"\n || element.questionId == \"17\" || element.questionId == \"22\" || element.questionId == \"28\"\n || element.questionId == \"34\") {\n feedback = feedback + \"#\" + formValue[element.questionId + \"text\"] + \"#\";\n } else if(element.questionId != \"14-2-2\" && element.questionId != \"14-2-3\" && element.questionId != \"36-2-2\"\n && element.questionId != \"36-2-3\" && element.questionId != \"37-2-2\" && element.questionId != \"37-2-3\") {\n feedback = feedback + \"#\" + formValue[element.questionId + \"text\"];\n }\n } else if(element.questionId != \"14-2-2\" && element.questionId != \"14-2-3\" && element.questionId != \"36-2-2\"\n && element.questionId != \"36-2-3\" && element.questionId != \"37-2-2\" && element.questionId != \"37-2-3\") {\n feedback = feedback + \"#\"+ \"\";\n }\n if ( element.remarksType == \"Yes\" && formValue[element.questionId + \"text\"]) {\n if(element.questionId == \"14-2-2\" || element.questionId == \"14-2-3\" || element.questionId == \"36-2-2\"\n || element.questionId == \"36-2-3\" || element.questionId == \"37-2-2\" || element.questionId == \"37-2-3\") {\n feedback = feedback + \"#\" + formValue[element.questionId + \"text\"] + \"#\";\n }\n } else if(element.remarksType == \"Yes\") {\n if(element.questionId == \"14-2-2\" || element.questionId == \"14-2-3\" || element.questionId == \"36-2-2\"\n || element.questionId == \"36-2-3\" || element.questionId == \"37-2-2\" || element.questionId == \"37-2-3\") {\n feedback = feedback + \"#\" + formValue[element.questionId + \"text\"] + \"#\";\n }\n }\n feedback = feedback != \"\" ? element.questionId + feedback : feedback;\n if (feedback != \"\") {\n if (index == 0) {\n idFeedback = feedback;\n } else {\n idFeedback = idFeedback == \"\" ? feedback : idFeedback + \";\" + feedback;\n }\n }\n });\n return idFeedback;\n }\n\n\n saveResponseData() {\n this.formSubmitted = true;\n if (this.checkQuestionValidation()) {\n let amcFeedback = \"\";\n let amcReFeedback = \"\";\n let ewFeedback = \"\";\n let irFeedback = \"\";\n if( this.amcNewOffering == \"YES\") {\n amcFeedback = this.getAmcFeedbackValue(this.AMCQuestionForm, this.amcQuestions);\n }\n if( this.amcRenewal == \"YES\") {\n amcReFeedback = this.getAmcFeedbackValue(this.amcRQuestionForm, this.amcReQuestions);\n }\n if( this.extendedWarranty == \"YES\") {\n ewFeedback = this.getAmcFeedbackValue(this.ewQuestionForm, this.ewQuestions);\n }\n if( this.insuranceRenewal == \"YES\") {\n irFeedback = this.getAmcFeedbackValue(this.irQuestionForm, this.irQuestions);\n }\n this.getCustomerName(this.cusType);\n let request = {\n userId: this.userId || \"\",\n customerId: this.customerData.customerId || \"\",\n vin: this.selectedVin,\n workshopCode: this.selectedWorkShop || \"\",\n amcFeedback: amcFeedback,\n amcReFeedback: amcReFeedback,\n ewFeedback: ewFeedback,\n irFeedback: irFeedback,\n amcNewOffering: this.amcNewOffering,\n amcRenewal: this.amcRenewal,\n insuranceRenewal: this.insuranceRenewal,\n extendedWarranty: this.extendedWarranty,\n customerType: this.ownerSelected ? \"C\" : this.fleetSelected ? \"F\" : \"D\",\n phoneNo: this.selectedNumber?this.selectedNumber:'',\n customerName:this.custNameForSave?this.custNameForSave:''\n // this.custNameForSave?this.custNameForSave:this.cus360[\"CUSTOMER_INFO\"].custName\n };\n this.saveResponse(request);\n\n //Test\n }\n }\n\n saveResponse(requestData: any): void {\n //this.commonService.prsCustomerResponse = '';\n this.commonService.amcSaveVinFeedback(requestData).subscribe(\n (res) => {\n if (res[\"responseCode\"] == 0) {\n this.spinner = false;\n this.toastr.info(res[\"message\"], \"Success\");\n //this.commonService.prsCustomerResponse = requestData;\n this.clear();\n this.formSubmitted = false;\n if(!((this.cus360.VECHILE_INFO.length - 1) > 0)) {\n this.router.navigate([\"soft-calling\"]);\n } else {\n this.chassis = this.cus360[\"VECHILE_INFO\"].filter((vehicle) => vehicle.chassisNo != this.selectedVehicle)[0].chassisNo;\n this.getCustomer360();\n }\n } else {\n this.formSubmitted = false;\n this.spinner = false;\n this.toastr.error(res[\"message\"], \"Error\");\n }\n },\n (error) => {\n this.formSubmitted = false;\n this.toastr.error(error, \"Error\");\n this.spinner = false;\n }\n );\n }\n\n clear() {\n this.AMCQuestionForm = undefined;\n this.amcRQuestionForm = undefined;\n this.ewQuestionForm = undefined;\n this.irQuestionForm = undefined;\n this.amcQuestionInfo = [];\n this.amcRQuestionInfo = [];\n this.ewQuestionInfo = [];\n this.irQuestionInfo = [];\n this.amcInProgress = '';\n this.amcReInProgress = '';\n this.irInProgress = '';\n this.ewInProgress = '';\n this.createAmcQuestionForm(this.amcQuestions);\n this.createAMCRQuestionForm(this.amcReQuestions);\n this.createEWQuestionForm(this.ewQuestions);\n this.createIRQuestionForm(this.irQuestions);\n this.formSubmitted = false;\n }\n\n // amcSelectStatus(event : any) {\n // this.amcInProgress = '';\n // this.amcSelectedQuestionCurrentStatus = [];\n // this.amcSelectedQuestionStatus = [];\n // this.amcQuestionInfo.forEach((element) => {\n // if(element.desc == event) {\n // this.amcSelectedQuestionStatus = element;\n // }\n // });\n // }\n\n amcSelectCurrentStatus(event : any) {\n this.amcSelectedQuestionCurrentStatus = [];\n //this.amcInProgress = event;\n // this.amcQuestionInfo.forEach((element) => {\n // if(element.desc == event) {\n // //this.amcSelectedQuestionCurrentStatus = element;\n // // questionExist = questionIdAdded.filter(\n // // (group) => group == prop.questionId\n // // );\n // //formDataObj[prop.questionId + \"dropdown\"] = new FormControl(response);\n // // this.amcSelectedQuestionCurrentStatus.push({\n // // label: element.questionId + \"dropdown\",\n // // type: \"Dropdown\",\n // // desc: element.questionDesc,\n // // id: element.questionSequence,\n // // questionId: element.questionId,\n // // showDesc: true,\n // // subQuestion: true,\n // // parentId: element.parentId,\n // // data: this.dropdownData[element.questionId],\n // // showField: this.showField\n // // });\n // }\n // });\n }\n\n // amcReSelectStatus(event : any) {\n // this.amcReInProgress = '';\n // this.amcReSelectedQuestionCurrentStatus = [];\n // this.amcReSelectedQuestionStatus = [];\n // this.amcRQuestionInfo.forEach((element) => {\n // if(element.desc == event) {\n // this.amcReSelectedQuestionStatus = element;\n // }\n // });\n // }\n\n amcReSelectCurrentStatus(event : any) {\n this.amcReSelectedQuestionCurrentStatus = [];\n //this.amcReInProgress = event;\n this.amcRQuestionInfo.forEach((element) => {\n if(element.desc == event) {\n this.amcReSelectedQuestionCurrentStatus = element;\n }\n });\n }\n\n // irSelectStatus(event : any) {\n // this.irInProgress = '';\n // this.irSelectedQuestionCurrentStatus = [];\n // this.irSelectedQuestionStatus = [];\n // this.irQuestionInfo.forEach((element) => {\n // if(element.desc == event) {\n // this.irSelectedQuestionStatus = element;\n // }\n // });\n // }\n\n irSelectCurrentStatus(event : any) {\n this.irSelectedQuestionCurrentStatus = [];\n //this.irInProgress = event;\n this.irQuestionInfo.forEach((element) => {\n if(element.desc == event) {\n this.irSelectedQuestionCurrentStatus = element;\n }\n });\n }\n\n // ewSelectStatus(event : any) {\n // this.ewInProgress = '';\n // this.ewSelectedQuestionCurrentStatus = [];\n // this.ewSelectedQuestionStatus = [];\n // this.ewQuestionInfo.forEach((element) => {\n // if(element.desc == event) {\n // this.ewSelectedQuestionStatus = element;\n // }\n // });\n // }\n \n ewSelectCurrentStatus(event: any) {\n this.ewSelectedQuestionCurrentStatus = [];\n //this.ewInProgress = event;\n this.ewQuestionInfo.forEach((element) => {\n if(element.desc == event) {\n this.ewSelectedQuestionCurrentStatus = element;\n }\n });\n }\n\n\n\n activeTabLabel: string = 'Owner'; \n activeIndex:number = 0\n userInfo: any;\n\n\n selectedContactNumbers = {\n 'Owner': null,\n 'Fleet Manager': null,\n 'Driver': null\n };\n\n onTabChange(event: MatTabChangeEvent) {\n this.activeTabLabel = event.tab.textLabel;\n this.activeIndex = event.index;\n this.updateActiveContactNo();\n }\n\n \n\n private updateActiveContactNo() {\n let contactList;\n \n if (this.activeIndex === 0) {\n contactList = this.contactInfoOwner;\n } else if (this.activeIndex === 1) {\n contactList = this.contactInfoFleet;\n } else if (this.activeIndex === 2) {\n contactList = this.contactInfoDriver;\n }\n \n console.log(this.activeIndex);\n console.log(contactList);\n if (contactList && contactList.length > 0) {\n this.selectedContactNumbers[this.activeTabLabel] = this.selectedContactNumbers[this.activeTabLabel] || contactList[0].contactNo;\n }\n \n }\n \n onRadioChange(contactNo: string, tabLabel: string) {\n this.selectedContactNumbers[tabLabel] = contactNo;\n \n \n }\n\n\n private callingToUser(){\n let customerPhone = this.selectedContactNumbers[this.activeTabLabel];\n if(customerPhone){\n this.makeCall(customerPhone)\n }else{\n this.spinner = false;\n this.toastr.error(\"Customer Phone number can't be Empty while placing the call\")\n }\n }\n\n \n private makeCall(customerPhone:string) {\n const callParams = new CallParams(this.userInfo.contactNo, customerPhone);\n this.spinner = true\n this.commonService.createCallConnection_API(callParams).subscribe({\n next: (response) => {\n if(response.responseData.Uri) {\n localStorage.setItem(\"exotel_URI\",response.responseData.Uri)\n } else{\n localStorage.setItem(\"exotel_URI\",'')\n }\n \n if (response.responseCode==0) {\n this.toastr.success(\"Call is in progress\")\n \n }else{\n this.toastr.error(response.responseData)\n }\n \n },\n error:(error)=>{\n this.spinner = false\n this.toastr.error(\"Something went wrong\");\n \n },\n complete:()=>{\n this.spinner = false\n }\n });\n }\n\n \n openConfirmation() {\n if (localStorage.getItem('countryCode')=='IND91') {\n this.dialogService.openConfirmDialog().subscribe(result => {\n if (result) {\n console.log(result);\n this.callUser(); \n } else {\n console.log(result);\n }\n });\n }else{\n this.callUser();\n }\n \n }\n\n \n}\n\n\n\n","export default \".working-area {\\n margin-top: 115px;\\n}\\n\\n.call-stats-card-border1 {\\n border-style: solid solid solid solid;\\n border-width: 1px;\\n border-radius: 0%;\\n border-color: lightgray;\\n}\\n\\n.call-stats-card .mat-card-title {\\n margin-bottom: 0px;\\n}\\n\\n.filterdiv {\\n align-items: center;\\n}\\n\\n.filter-style {\\n width: 135px !important;\\n}\\n\\n.filter-label {\\n font: 12px Roboto;\\n letter-spacing: 0px;\\n color: #3c3c3c;\\n opacity: 1;\\n margin-bottom: 3px;\\n padding: 1px 0px 0px;\\n}\\n\\n.filter1 ::ng-deep .mat-select {\\n padding-bottom: 0px;\\n padding-top: 2px;\\n}\\n\\n.filter1 ::ng-deep .mat-button {\\n font-size: 12px;\\n font: white;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-infix {\\n border: 1px solid lightgray;\\n border-radius: 5px;\\n background: white;\\n padding-bottom: 0px;\\n font-size: 12px !important;\\n height: 21px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-trigger {\\n padding-left: 8px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-value {\\n width: 89%;\\n}\\n\\n.filter1 ::ng-deep .mat-select-arrow-wrapper {\\n padding-bottom: 0x;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label-wrapper {\\n top: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-underline {\\n display: none;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label {\\n top: 0;\\n margin-top: 6px !important;\\n padding-left: 5px;\\n}\\n\\n.filter1-input {\\n margin-top: 7px !important;\\n margin-left: 5px;\\n}\\n\\n.filter1 {\\n font-size: 12px;\\n}\\n\\n.filter2 {\\n width: auto;\\n}\\n\\n.calender {\\n position: relative;\\n background: white;\\n width: 140px;\\n margin-right: 10px !important;\\n}\\n\\n.calender input {\\n border: 1px solid lightgray !important;\\n border-radius: 5px;\\n font-size: 12px;\\n height: 24px;\\n padding-left: 5px;\\n width: 140px;\\n}\\n\\n.calander-btn {\\n position: absolute;\\n right: 0px;\\n top: 5px;\\n}\\n\\n.button-margin {\\n margin-left: 10px;\\n}\\n\\n.filterButton {\\n color: white !important;\\n background-color: #00457D;\\n height: 25px;\\n line-height: 10px;\\n margin-bottom: 1px;\\n padding-bottom: 2px;\\n}\\n\\n.example-card1 {\\n text-align: center;\\n display: block;\\n margin-left: auto;\\n margin-right: auto;\\n margin-bottom: 10px;\\n}\\n\\n.form-field label {\\n font-weight: 500;\\n margin-bottom: 0px;\\n}\\n\\n.form-field input {\\n padding-left: 7px;\\n padding-top: 3px;\\n}\\n\\n.table-border.mat-table {\\n border-style: none solid solid none;\\n border-color: lightgray;\\n}\\n\\n.columnHeader {\\n font: bold 12px Roboto;\\n letter-spacing: 0px;\\n color: #333333;\\n text-transform: capitalize;\\n}\\n\\n.columnvalue {\\n font-size: 11px !important;\\n position: relative;\\n}\\n\\n.cust-width {\\n width: 12%;\\n}\\n\\ntd.mat-cell,\\ntd.mat-footer-cell,\\nth.mat-header-cell {\\n padding: 3px;\\n border-style: solid none none solid;\\n border-width: 0.1px;\\n border-color: lightgray;\\n}\\n\\ntd.mat-cell,\\ntd.mat-footer-cell {\\n padding: 3px;\\n text-align: start;\\n}\\n\\nth.mat-header-cell {\\n padding: 3px;\\n text-align: end !important;\\n}\\n\\n.cont-width {\\n width: 107px;\\n}\\n\\n.reg-width {\\n width: 130px;\\n}\\n\\n.che-width {\\n width: 110px;\\n}\\n\\n.delName-width {\\n width: 141px;\\n}\\n\\n.set-min-width-report {\\n min-width: 1425px;\\n}\\n\\n.paginator ::ng-deep .mat-form-field-infix {\\n height: 18px !important;\\n padding-bottom: 0px;\\n}\\n\\n.searchfilter {\\n height: 30px;\\n margin-left: 10px;\\n font-size: 12px;\\n border: 0;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9jb21wb25lbnQvc29mdC1vZmZlcmluZy1yZXBvcnRpbmcvc29mdC1vZmZlcmluZy1yZXBvcnRpbmcuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NvbXBvbmVudC9zb2Z0LW9mZmVyaW5nLXJlcG9ydGluZy9zb2Z0LW9mZmVyaW5nLXJlcG9ydGluZy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLGlCQUFBO0FDQ0o7O0FERUE7RUFDSSxxQ0FBQTtFQUNBLGlCQUFBO0VBQ0EsaUJBQUE7RUFDQSx1QkFBQTtBQ0NKOztBREdJO0VBQ0ksa0JBQUE7QUNBUjs7QURJQTtFQUNJLG1CQUFBO0FDREo7O0FESUE7RUFDSSx1QkFBQTtBQ0RKOztBRElBO0VBQ0ksaUJBQUE7RUFDQSxtQkFBQTtFQUNBLGNBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7RUFDQSxvQkFBQTtBQ0RKOztBRElBO0VBQ0ksbUJBQUE7RUFDQSxnQkFBQTtBQ0RKOztBRElBO0VBQ0ksZUFBQTtFQUNBLFdBQUE7QUNESjs7QURJQTtFQUNJLDJCQUFBO0VBQ0Esa0JBQUE7RUFDQSxpQkFBQTtFQUVBLG1CQUFBO0VBQ0EsMEJBQUE7RUFDQSxZQUFBO0FDRko7O0FES0E7RUFDSSxpQkFBQTtBQ0ZKOztBREtBO0VBQ0ksVUFBQTtBQ0ZKOztBREtBO0VBQ0ksa0JBQUE7QUNGSjs7QURLQTtFQUNJLE1BQUE7RUFDQSxjQUFBO0VBQ0EsaUJBQUE7QUNGSjs7QURLQTtFQUNJLGlCQUFBO0FDRko7O0FES0E7RUFDSSxhQUFBO0FDRko7O0FES0E7RUFDSSxNQUFBO0VBQ0EsMEJBQUE7RUFDQSxpQkFBQTtBQ0ZKOztBREtBO0VBQ0ksMEJBQUE7RUFDQSxnQkFBQTtBQ0ZKOztBREtBO0VBQ0ksZUFBQTtBQ0ZKOztBREtBO0VBQ0ksV0FBQTtBQ0ZKOztBREtBO0VBQ0ksa0JBQUE7RUFDQSxpQkFBQTtFQUNBLFlBQUE7RUFDQSw2QkFBQTtBQ0ZKOztBREdJO0VBQ0ksc0NBQUE7RUFDQSxrQkFBQTtFQUNBLGVBQUE7RUFDQSxZQUFBO0VBQ0EsaUJBQUE7RUFDQSxZQUFBO0FDRFI7O0FES0E7RUFDSSxrQkFBQTtFQUNBLFVBQUE7RUFDQSxRQUFBO0FDRko7O0FES0E7RUFDSSxpQkFBQTtBQ0ZKOztBREtBO0VBQ0ksdUJBQUE7RUFDQSx5QkFBQTtFQUNBLFlBQUE7RUFDQSxpQkFBQTtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7QUNGSjs7QURLQTtFQUNJLGtCQUFBO0VBQ0EsY0FBQTtFQUNBLGlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxtQkFBQTtBQ0ZKOztBRE1JO0VBQ0ksZ0JBQUE7RUFDQSxrQkFBQTtBQ0hSOztBREtJO0VBQ0ksaUJBQUE7RUFDQSxnQkFBQTtBQ0hSOztBRE9BO0VBQ0ksbUNBQUE7RUFDQSx1QkFBQTtBQ0pKOztBRE9BO0VBQ0ksc0JBQUE7RUFDQSxtQkFBQTtFQUNBLGNBQUE7RUFDQSwwQkFBQTtBQ0pKOztBRFFBO0VBQ0ksMEJBQUE7RUFDQSxrQkFBQTtBQ0xKOztBRFFBO0VBQ0ksVUFBQTtBQ0xKOztBRFFBOzs7RUFHSSxZQUFBO0VBQ0EsbUNBQUE7RUFDQSxtQkFBQTtFQUNBLHVCQUFBO0FDTEo7O0FEUUE7O0VBRUksWUFBQTtFQUNBLGlCQUFBO0FDTEo7O0FEUUE7RUFDSSxZQUFBO0VBQ0EsMEJBQUE7QUNMSjs7QURRQTtFQUNJLFlBQUE7QUNMSjs7QURRQTtFQUNJLFlBQUE7QUNMSjs7QURRQTtFQUNJLFlBQUE7QUNMSjs7QURRQTtFQUNJLFlBQUE7QUNMSjs7QURRQTtFQUNJLGlCQUFBO0FDTEo7O0FEUUE7RUFDSSx1QkFBQTtFQUNBLG1CQUFBO0FDTEo7O0FEUUE7RUFFSSxZQUFBO0VBQ0EsaUJBQUE7RUFDQSxlQUFBO0VBQ0EsU0FBQTtBQ05KIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50L3NvZnQtb2ZmZXJpbmctcmVwb3J0aW5nL3NvZnQtb2ZmZXJpbmctcmVwb3J0aW5nLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLndvcmtpbmctYXJlYSB7XG4gICAgbWFyZ2luLXRvcDogMTE1cHg7XG59XG5cbi5jYWxsLXN0YXRzLWNhcmQtYm9yZGVyMSB7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZCBzb2xpZCBzb2xpZCBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDFweDtcbiAgICBib3JkZXItcmFkaXVzOiAwJTtcbiAgICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxuLmNhbGwtc3RhdHMtY2FyZCB7XG4gICAgLm1hdC1jYXJkLXRpdGxlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIH1cbn1cblxuLmZpbHRlcmRpdiB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLmZpbHRlci1zdHlsZSB7XG4gICAgd2lkdGg6IDEzNXB4ICFpbXBvcnRhbnQ7XG59XG5cbi5maWx0ZXItbGFiZWwge1xuICAgIGZvbnQ6IDEycHggUm9ib3RvO1xuICAgIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gICAgY29sb3I6ICMzYzNjM2M7XG4gICAgb3BhY2l0eTogMTtcbiAgICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gICAgcGFkZGluZzogMXB4IDBweCAwcHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdCB7XG4gICAgcGFkZGluZy1ib3R0b206IDBweDtcbiAgICBwYWRkaW5nLXRvcDogMnB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1idXR0b24ge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250OiB3aGl0ZTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAvL3BhZGRpbmctdG9wOiAycHg7XG4gICAgcGFkZGluZy1ib3R0b206IDBweDtcbiAgICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDIxcHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgICB3aWR0aDogODklO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtYXJyb3ctd3JhcHBlciB7XG4gICAgcGFkZGluZy1ib3R0b206IDB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIge1xuICAgIHRvcDogMDtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIHRvcDogMDtcbiAgICBtYXJnaW4tdG9wOiA2cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbn1cblxuLmZpbHRlcjEtaW5wdXQge1xuICAgIG1hcmdpbi10b3A6IDdweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG59XG5cbi5maWx0ZXIxIHtcbiAgICBmb250LXNpemU6IDEycHg7XG59XG5cbi5maWx0ZXIyIHtcbiAgICB3aWR0aDogYXV0bztcbn1cblxuLmNhbGVuZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgd2lkdGg6IDE0MHB4O1xuICAgIG1hcmdpbi1yaWdodDogMTBweCAhaW1wb3J0YW50O1xuICAgIGlucHV0IHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5ICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgIHBhZGRpbmctbGVmdDogNXB4O1xuICAgICAgICB3aWR0aDogMTQwcHg7XG4gICAgfVxufVxuXG4uY2FsYW5kZXItYnRuIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDBweDtcbiAgICB0b3A6IDVweDtcbn1cblxuLmJ1dHRvbi1tYXJnaW4ge1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuXG4uZmlsdGVyQnV0dG9uIHtcbiAgICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEO1xuICAgIGhlaWdodDogMjVweDtcbiAgICBsaW5lLWhlaWdodDogMTBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDJweDtcbn1cblxuLmV4YW1wbGUtY2FyZDEge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLmZvcm0tZmllbGQge1xuICAgIGxhYmVsIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIH1cbiAgICBpbnB1dCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogN3B4O1xuICAgICAgICBwYWRkaW5nLXRvcDogM3B4O1xuICAgIH1cbn1cblxuLnRhYmxlLWJvcmRlci5tYXQtdGFibGUge1xuICAgIGJvcmRlci1zdHlsZTogbm9uZSBzb2xpZCBzb2xpZCBub25lO1xuICAgIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4uY29sdW1uSGVhZGVyIHtcbiAgICBmb250OiBib2xkIDEycHggUm9ib3RvO1xuICAgIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gICAgY29sb3I6ICMzMzMzMzM7XG4gICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gICAgLy9taW4td2lkdGg6IDExMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5jb2x1bW52YWx1ZSB7XG4gICAgZm9udC1zaXplOiAxMXB4ICFpbXBvcnRhbnQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uY3VzdC13aWR0aCB7XG4gICAgd2lkdGg6IDEyJTtcbn1cblxudGQubWF0LWNlbGwsXG50ZC5tYXQtZm9vdGVyLWNlbGwsXG50aC5tYXQtaGVhZGVyLWNlbGwge1xuICAgIHBhZGRpbmc6IDNweDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkIG5vbmUgbm9uZSBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDAuMXB4O1xuICAgIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG50ZC5tYXQtY2VsbCxcbnRkLm1hdC1mb290ZXItY2VsbCB7XG4gICAgcGFkZGluZzogM3B4O1xuICAgIHRleHQtYWxpZ246IHN0YXJ0O1xufVxuXG50aC5tYXQtaGVhZGVyLWNlbGwge1xuICAgIHBhZGRpbmc6IDNweDtcbiAgICB0ZXh0LWFsaWduOiBlbmQgIWltcG9ydGFudDtcbn1cblxuLmNvbnQtd2lkdGgge1xuICAgIHdpZHRoOiAxMDdweDtcbn1cblxuLnJlZy13aWR0aCB7XG4gICAgd2lkdGg6IDEzMHB4O1xufVxuXG4uY2hlLXdpZHRoIHtcbiAgICB3aWR0aDogMTEwcHg7XG59XG5cbi5kZWxOYW1lLXdpZHRoIHtcbiAgICB3aWR0aDogMTQxcHg7XG59XG5cbi5zZXQtbWluLXdpZHRoLXJlcG9ydCB7XG4gICAgbWluLXdpZHRoOiAxNDI1cHg7XG59XG5cbi5wYWdpbmF0b3IgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgaGVpZ2h0OiAxOHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDBweDtcbn1cblxuLnNlYXJjaGZpbHRlciB7XG4gICAgLy93aWR0aDogMTAwcHg7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBib3JkZXI6IDA7XG59IiwiLndvcmtpbmctYXJlYSB7XG4gIG1hcmdpbi10b3A6IDExNXB4O1xufVxuXG4uY2FsbC1zdGF0cy1jYXJkLWJvcmRlcjEge1xuICBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIHNvbGlkIHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLXJhZGl1czogMCU7XG4gIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4uY2FsbC1zdGF0cy1jYXJkIC5tYXQtY2FyZC10aXRsZSB7XG4gIG1hcmdpbi1ib3R0b206IDBweDtcbn1cblxuLmZpbHRlcmRpdiB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5maWx0ZXItc3R5bGUge1xuICB3aWR0aDogMTM1cHggIWltcG9ydGFudDtcbn1cblxuLmZpbHRlci1sYWJlbCB7XG4gIGZvbnQ6IDEycHggUm9ib3RvO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICBjb2xvcjogIzNjM2MzYztcbiAgb3BhY2l0eTogMTtcbiAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICBwYWRkaW5nOiAxcHggMHB4IDBweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0IHtcbiAgcGFkZGluZy1ib3R0b206IDBweDtcbiAgcGFkZGluZy10b3A6IDJweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtYnV0dG9uIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250OiB3aGl0ZTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgcGFkZGluZy1ib3R0b206IDBweDtcbiAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMjFweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICBwYWRkaW5nLWxlZnQ6IDhweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgd2lkdGg6IDg5JTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LWFycm93LXdyYXBwZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gIHRvcDogMDtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdG9wOiAwO1xuICBtYXJnaW4tdG9wOiA2cHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG59XG5cbi5maWx0ZXIxLWlucHV0IHtcbiAgbWFyZ2luLXRvcDogN3B4ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1sZWZ0OiA1cHg7XG59XG5cbi5maWx0ZXIxIHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uZmlsdGVyMiB7XG4gIHdpZHRoOiBhdXRvO1xufVxuXG4uY2FsZW5kZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICB3aWR0aDogMTQwcHg7XG4gIG1hcmdpbi1yaWdodDogMTBweCAhaW1wb3J0YW50O1xufVxuLmNhbGVuZGVyIGlucHV0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBoZWlnaHQ6IDI0cHg7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xuICB3aWR0aDogMTQwcHg7XG59XG5cbi5jYWxhbmRlci1idG4ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwcHg7XG4gIHRvcDogNXB4O1xufVxuXG4uYnV0dG9uLW1hcmdpbiB7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuXG4uZmlsdGVyQnV0dG9uIHtcbiAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0Q7XG4gIGhlaWdodDogMjVweDtcbiAgbGluZS1oZWlnaHQ6IDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDFweDtcbiAgcGFkZGluZy1ib3R0b206IDJweDtcbn1cblxuLmV4YW1wbGUtY2FyZDEge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4uZm9ybS1maWVsZCBsYWJlbCB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIG1hcmdpbi1ib3R0b206IDBweDtcbn1cbi5mb3JtLWZpZWxkIGlucHV0IHtcbiAgcGFkZGluZy1sZWZ0OiA3cHg7XG4gIHBhZGRpbmctdG9wOiAzcHg7XG59XG5cbi50YWJsZS1ib3JkZXIubWF0LXRhYmxlIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lIHNvbGlkIHNvbGlkIG5vbmU7XG4gIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4uY29sdW1uSGVhZGVyIHtcbiAgZm9udDogYm9sZCAxMnB4IFJvYm90bztcbiAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xufVxuXG4uY29sdW1udmFsdWUge1xuICBmb250LXNpemU6IDExcHggIWltcG9ydGFudDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uY3VzdC13aWR0aCB7XG4gIHdpZHRoOiAxMiU7XG59XG5cbnRkLm1hdC1jZWxsLFxudGQubWF0LWZvb3Rlci1jZWxsLFxudGgubWF0LWhlYWRlci1jZWxsIHtcbiAgcGFkZGluZzogM3B4O1xuICBib3JkZXItc3R5bGU6IHNvbGlkIG5vbmUgbm9uZSBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAwLjFweDtcbiAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG59XG5cbnRkLm1hdC1jZWxsLFxudGQubWF0LWZvb3Rlci1jZWxsIHtcbiAgcGFkZGluZzogM3B4O1xuICB0ZXh0LWFsaWduOiBzdGFydDtcbn1cblxudGgubWF0LWhlYWRlci1jZWxsIHtcbiAgcGFkZGluZzogM3B4O1xuICB0ZXh0LWFsaWduOiBlbmQgIWltcG9ydGFudDtcbn1cblxuLmNvbnQtd2lkdGgge1xuICB3aWR0aDogMTA3cHg7XG59XG5cbi5yZWctd2lkdGgge1xuICB3aWR0aDogMTMwcHg7XG59XG5cbi5jaGUtd2lkdGgge1xuICB3aWR0aDogMTEwcHg7XG59XG5cbi5kZWxOYW1lLXdpZHRoIHtcbiAgd2lkdGg6IDE0MXB4O1xufVxuXG4uc2V0LW1pbi13aWR0aC1yZXBvcnQge1xuICBtaW4td2lkdGg6IDE0MjVweDtcbn1cblxuLnBhZ2luYXRvciA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgaGVpZ2h0OiAxOHB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctYm90dG9tOiAwcHg7XG59XG5cbi5zZWFyY2hmaWx0ZXIge1xuICBoZWlnaHQ6IDMwcHg7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGJvcmRlcjogMDtcbn0iXX0= */\"","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { DateTimeAdapter, OWL_DATE_TIME_FORMATS, OWL_DATE_TIME_LOCALE } from 'ng-pick-datetime';\nimport { MomentDateTimeAdapter } from 'ng-pick-datetime-moment';\nimport { FilterPipePipe } from '../../pipes/filter-pipe.pipe';\nimport { MatTableDataSource, MatSort, MatPaginator, MatSelect, MatOption } from '@angular/material';\nimport { Router } from '@angular/router';\nimport { DatePipe } from '@angular/common';\nimport { CommonService } from '../../core/service/common-service/common.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { kpiCustData } from './kpiCustData';\nimport { FormControl, FormBuilder, FormGroup } from '@angular/forms';\nimport * as _moment from 'moment';\n\nconst moment = (_moment as any).default ? (_moment as any).default : _moment;\n\nexport const MY_CUSTOM_FORMATS = {\n parseInput: 'LL LT',\n fullPickerInput: 'DD-MM-YYYY LT',\n datePickerInput: 'DD-MM-YYYY',\n timePickerInput: 'LT',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n};\n\n@Component({\n selector: 'app-soft-offering-reporting',\n templateUrl: './soft-offering-reporting.component.html',\n styleUrls: ['./soft-offering-reporting.component.scss'],\n providers: [\n { provide: DateTimeAdapter, useClass: MomentDateTimeAdapter, deps: [OWL_DATE_TIME_LOCALE] },\n { provide: OWL_DATE_TIME_FORMATS, useValue: MY_CUSTOM_FORMATS },\n FilterPipePipe\n ],\n})\nexport class SoftOfferingReportingComponent implements OnInit {\n\n @ViewChild(MatSort, { static: true }) sort: MatSort;\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\n\n displayedColumns: string[] = [\n 'customerName',\n 'contactNo',\n 'accountType',\n 'softProductType',\n 'registrationNo',\n 'chassisNo',\n 'dealerCode',\n 'dealerName',\n 'leadGenerationDate',\n 'lastContacted',\n 'leadStatus',\n 'lastCallBy',\n ];\n\n spinner: boolean;\n userId: string;\n userInfo: any;\n today: Date = new Date();\n toDate: Date = new Date();\n fromDate: Date = new Date();\n dataGridDataSource: any;\n selectWorkshop: FormGroup;\n filterValues: string[] = [];\n selectedFilter: string;\n workshopcodeFilter: string;\n splitworkshopcode: string[] = [];\n workshopFilter: string;\n workshopcode: string;\n filterValuesCopy: string[] = [];\n wsCodeFilter: string;\n dataSource: any;\n maxDate: Date = new Date();\n selectedDealer:any;\n dealerCode: string[] = [];\n selectedProductType: string;\n userRolesId: string;\n showPipelineDataReport: boolean = false\n productTypeValues: any[] = [\n { value: '1', viewValue: 'AMC'},\n { value: '2', viewValue: 'AMC Renewal'},\n { value: '3', viewValue: 'Insurance'},\n { value: '4', viewValue: 'Extended Warranty'}\n ];\n\n constructor(\n private router: Router,\n private datePipe: DatePipe,\n private commonService: CommonService,\n private toastr: ToastrService,\n private filterPipePipe: FilterPipePipe,\n private fb: FormBuilder) { }\n\n ngOnInit() {\n\n this.userId = localStorage.getItem('userId');\n this.userInfo = JSON.parse(localStorage.getItem('userInfo'));\n if (localStorage.getItem('userId') == null || localStorage.getItem('userId') == undefined) {\n this.router.navigate(['login']);\n }\n this.userRolesId = JSON.parse(localStorage.getItem(\"userInfo\"))[0].roleId;\n this.selectWorkshop = this.fb.group({\n workshopCodeType: new FormControl(this.filterValues),\n selectedDealer: ['']\n });\n\n if(this.userRolesId == \"15\"){\n this.showPipelineDataReport = true;\n }\n\n this.workshopCodeFilter();\n }\n\n /**\n * Name: workshopCodeFilter\n * purpose: To get workshop code filter\n */\n workshopCodeFilter(): void {\n this.filterValues = [];\n this.workshopcodeFilter;\n this.splitworkshopcode = [];\n this.workshopFilter;\n this.workshopcode;\n let roleId = this.userInfo['0'].roleId || '1';\n this.commonService.workshopFilter(this.userId, roleId)\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n if (res['responseData'].length) {\n res['responseData'].forEach(data => {\n this.workshopcodeFilter = data.workshop;\n this.workshopcode = (this.workshopcodeFilter.split(\" \", 1)).toString();\n this.splitworkshopcode.push(this.workshopcode);\n this.filterValues.push(this.workshopcodeFilter);\n });\n this.selectedFilter = this.filterValues[0];\n this.workshopFilter = this.splitworkshopcode.toString();\n this.filterValuesCopy = this.filterValues;\n this.prepairCallList();\n }\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: prepairCallList\n * purpose: To prepare call list for dataGrid\n */\n prepairCallList(): void {\n // this.spinner = true;\n // let startdate = this.datePipe.transform(this.fromDate, \"yyyy-MM-dd\");\n // let enddate = this.datePipe.transform(this.toDate, \"yyyy-MM-dd\");\n // this.applyfilter();\n // this.commonService.amcDataGrid(startdate, enddate, this.wsCodeFilter)\n // .subscribe(res => {\n // if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n // if (res['responseData'].length) {\n // this.dataSource = new MatTableDataSource(res['responseData']);\n // this.dataSource.sort = this.sort;\n // this.dataSource.paginator = this.paginator;\n // this.spinner = false;\n // }\n // } else {\n // this.spinner = false;\n // }\n // }, err => {\n // this.spinner = false;\n // this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n // });\n }\n\n /**\n * Name: apply\n * purpose: To apply filter on datagrid\n */\n apply(): void {\n // this.spinner = true;\n // this.dataSource = '';\n // let startdate = this.datePipe.transform(this.fromDate, \"yyyy-MM-dd\");\n // let enddate = this.datePipe.transform(this.toDate, \"yyyy-MM-dd\");\n // this.applyfilter();\n // this.commonService.amcDataGrid(startdate, enddate, this.wsCodeFilter)\n // .subscribe(res => {\n // if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n // this.dataSource = new MatTableDataSource(res['responseData']);\n // this.sort.direction = '';\n // this.dataSource.sort = this.sort;\n // this.dataSource.paginator = this.paginator;\n // this.spinner = false;\n // } else {\n // this.spinner = false;\n // }\n // }, err => {\n // this.spinner = false;\n // this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n // });\n }\n\n /**\n * Name: applyfilter\n * purpose: To select and apply the selected workshopcode\n */\n applyfilter() {\n this.wsCodeFilter = '';\n this.selectedFilter;\n this.workshopFilter;\n if (this.selectedFilter != null) {\n let splitCode = [];\n //this.selectedFilter.forEach(data => {\n //if(data != '0'){\n splitCode.push((this.selectedFilter.split(\" \", 1)).toString());\n //}\n //});\n this.wsCodeFilter = splitCode.toString();\n } else {\n this.wsCodeFilter = this.selectedFilter;\n }\n //this.wsCodeFilter = this.selectedFilter;\n }\n\n filterTriggered(event: any): void {\n this.today = new Date();\n if((new Date(new Date(event.source.value).getTime()+(1000*60*60*24*30))).getTime() >= this.today.getTime()){\n this.today = new Date();\n if((new Date(new Date(event.source.value).getTime()+(1000*60*60*24*30))).getTime() >= this.today.getTime()){\n this.toDate = new Date();\n } else {\n this.toDate = new Date(new Date(event.source.value).getTime()+(1000*60*60*24*30));\n }\n } else {\n this.today = new Date(new Date(event.source.value).getTime()+(1000*60*60*24*30));\n this.toDate = new Date(new Date(event.source.value).getTime()+(1000*60*60*24*30));\n }\n }\n\n onKey() : void {\n this.filterValues = this.filterValuesCopy;\n this.dealerCode = [];\n this.selectedDealer = this.selectWorkshop.controls.selectedDealer.value;\n this.selectedDealer = this.selectedDealer.toString();\n this.dealerCode = this.filterValues.filter(item =>\n item.toLowerCase().includes(this.selectedDealer.toLowerCase())\n );\n if(this.dealerCode.length > 0){\n this.closeInput();\n }\n this.filterValues = [];\n this.filterValues = this.dealerCode;\n }\n\n closeInput() : void {\n if(this.dealerCode.length == 0) {\n //this.selectedDealer = '';\n this.selectWorkshop.controls[\"selectedDealer\"].setValue(\"\");\n this.filterValues = this.filterValuesCopy;\n }\n }\n\n /**\n * Name: searchfilter\n * purpose: To apply filter on datagrid\n */\n searchfilter(filterValue: string): void {\n filterValue = filterValue.trim(); // Remove whitespace\n filterValue = filterValue.toLowerCase(); // Datasource defaults to lowercase matches\n this.dataGridDataSource.filter = filterValue;\n }\n\n /**\n * Name: activeButton\n * purpose: To activat Booking Excel Report button\n */\n activeButton(): boolean {\n let flag = false;\n if (this.selectedProductType != undefined && this.selectedProductType != null && this.selectedProductType != '') {\n flag = true;\n }\n return flag;\n }\n\n /**\n * Name: getDataReport\n * purpose: To export report as excel\n */\n getDataReport(): void {\n this.spinner = true;\n let startdate = this.datePipe.transform(this.fromDate, \"yyyy-MM-dd\");\n let enddate = this.datePipe.transform(this.toDate, \"yyyy-MM-dd\");\n let fileName = \"Summary_From_\" + startdate + \"_To_\" + enddate;\n //this.applyfilter();\n let request ={\n fromDate : startdate,\n toDate : enddate,\n userId : this.userId,\n userRoleId : this.userRolesId\n }\n this.commonService.getAMCDataReport(request)\n .subscribe(fileData => {\n if (fileData) {\n const blob: any = new Blob([fileData], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\n let link = document.createElement(\"a\");\n if (link.download !== undefined) {\n let url = URL.createObjectURL(blob);\n link.setAttribute(\"href\", url);\n link.setAttribute(\"download\", fileName);\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n this.spinner = false;\n }\n } else {\n this.spinner = false;\n }\n }, err => {\n this.spinner = false;\n\n });\n }\n\n /**\n * Name: getLeadLevelReport\n * purpose: To export report as excel\n */\n getLeadLevelReport(): void {\n this.spinner = true;\n let startdate = this.datePipe.transform(this.fromDate, \"yyyy-MM-dd\");\n let enddate = this.datePipe.transform(this.toDate, \"yyyy-MM-dd\");\n let fileName = \"Lead_Level_Report_From_\" + startdate + \"_To_\" + enddate;\n //this.applyfilter();\n this.commonService.getAMCLeadLevelReport(startdate, enddate, this.selectedProductType, this.userId, this.userRolesId)\n .subscribe(fileData => {\n if (fileData) {\n const blob: any = new Blob([fileData], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\n let link = document.createElement(\"a\");\n if (link.download !== undefined) {\n let url = URL.createObjectURL(blob);\n link.setAttribute(\"href\", url);\n link.setAttribute(\"download\", fileName);\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n this.spinner = false;\n }\n } else {\n this.spinner = false;\n }\n }, err => {\n this.spinner = false;\n\n });\n }\n\n /**\n * Name: getPipelineRegionwiseReport\n * purpose: To get piprline region wise data\n */\n getPipelineRegionwiseReport(): void{\n this.spinner = true;\n let startdate = this.datePipe.transform(this.fromDate, \"yyyy-MM-dd\");\n let enddate = this.datePipe.transform(this.toDate, \"yyyy-MM-dd\");\n let fileName = \"Pipeline_Data_Report_From_\" + startdate + \"_To_\" + enddate;\n //this.applyfilter();\n this.commonService.getPipelineRegionWiseDataReport(startdate, enddate, this.userId, this.userRolesId)\n .subscribe(fileData => {\n if (fileData) {\n const blob: any = new Blob([fileData], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\n let link = document.createElement(\"a\");\n if (link.download !== undefined) {\n let url = URL.createObjectURL(blob);\n link.setAttribute(\"href\", url);\n link.setAttribute(\"download\", fileName);\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n this.spinner = false;\n }\n } else {\n this.spinner = false;\n }\n }, err => {\n this.spinner = false;\n });\n }\n}\n","export default \".working-area {\\n margin-top: 115px;\\n}\\n\\ntable {\\n width: 100%;\\n}\\n\\n.calling-table tr {\\n cursor: pointer;\\n}\\n\\n.table-head-call {\\n background: none;\\n padding-top: 12px;\\n}\\n\\n.button-margin {\\n margin-left: 10px;\\n}\\n\\n.callList {\\n font: Bold 20px Roboto;\\n letter-spacing: 0px;\\n color: #484848;\\n opacity: 1;\\n}\\n\\n.close-con {\\n font-size: 18px;\\n cursor: pointer;\\n top: 3px;\\n right: 1px;\\n position: absolute !important;\\n z-index: 10;\\n opacity: 1;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-infix {\\n border: 1px solid lightgray;\\n border-radius: 5px;\\n background: white;\\n padding: 0;\\n height: 20px;\\n}\\n\\n.filter1 ::ng-deep .mat-select {\\n padding: 4px 0px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-trigger {\\n padding-left: 8px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-value {\\n width: 90% !important;\\n}\\n\\n.filter1 ::ng-deep .mat-button {\\n font-size: 12px;\\n font: white;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label-wrapper {\\n top: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-underline {\\n display: none;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label {\\n top: 0;\\n margin-top: 4px !important;\\n padding-left: 5px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-arrow-wrapper {\\n padding-bottom: 0px;\\n}\\n\\n.filter-label {\\n font: Bold 14px Roboto;\\n letter-spacing: 0px;\\n color: #3c3c3c;\\n opacity: 1;\\n margin-bottom: 5px;\\n}\\n\\n.refesh-icon {\\n float: right;\\n margin-bottom: -30px;\\n margin-right: 20px;\\n margin-top: 30px;\\n cursor: pointer;\\n}\\n\\n.coloredRow {\\n background: #ffff99;\\n}\\n\\n.coloredGreenRow {\\n background: #90ee90;\\n}\\n\\n.mat-dialog-title {\\n background-color: darkgray;\\n}\\n\\n.callList-right {\\n font-size: 11px;\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.columnHeader {\\n font: Bold 12px Roboto;\\n letter-spacing: 0px;\\n color: #333333;\\n text-transform: capitalize;\\n}\\n\\n.lost {\\n color: #e64243;\\n position: absolute;\\n left: 10px;\\n font-size: 10px;\\n top: 38%;\\n}\\n\\n.inbound {\\n color: #2e3668;\\n position: absolute;\\n left: 0px;\\n font-size: 10px;\\n top: 38%;\\n}\\n\\n.columnvalue {\\n font-size: 14px;\\n position: relative;\\n}\\n\\n.filter1 {\\n font-size: 12px;\\n}\\n\\n.filterButton {\\n color: white !important;\\n background-color: #00457D;\\n height: 20px;\\n line-height: 10px;\\n margin-bottom: 1px;\\n}\\n\\n.filterdiv {\\n align-items: center;\\n}\\n\\n.serviceDueDate {\\n width: 10% !important;\\n}\\n\\n.followUp {\\n width: 8% !important;\\n}\\n\\ntd.mat-cell,\\ntd.mat-footer-cell,\\nth.mat-header-cell {\\n padding: 10px;\\n border-style: solid none none solid;\\n border-width: 0.1px;\\n border-color: lightgray;\\n}\\n\\n.table-border.mat-table {\\n border-style: none solid solid none;\\n border-color: lightgray;\\n}\\n\\nth.mat-header-cell {\\n background-color: #d9d9d9;\\n}\\n\\n.mat-sort-header-container {\\n justify-content: center !important;\\n}\\n\\n.filter2 {\\n width: auto;\\n}\\n\\n.call-stats-card .mat-card-title {\\n margin-bottom: 0px;\\n}\\n\\n.call-stats-card .call-stats {\\n font-size: 11px;\\n color: #ffffff;\\n}\\n\\n.call-stats-card .call-stats i {\\n color: #2e3668;\\n font-size: 11px;\\n}\\n\\n.call-stats-card .call-stats-title {\\n font-size: 20px;\\n color: #484848;\\n}\\n\\n.call-stats-card1 {\\n padding-top: 0px;\\n}\\n\\n.call-stats-card-border1 {\\n border-style: solid solid none solid;\\n border-width: 1px;\\n border-radius: 0%;\\n border-color: lightgray;\\n}\\n\\n.call-stats-card-border2 {\\n border-style: solid solid solid solid;\\n border-width: 1px;\\n border-radius: 0%;\\n margin-bottom: 15px;\\n border-color: lightgray;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-group {\\n border-radius: 0px;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle {\\n background-color: #ffffff;\\n color: #5482BC;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-checked {\\n background-color: #5482BC;\\n color: #ffffff;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-label-content {\\n line-height: 30px;\\n font: Regular 14px Roboto;\\n letter-spacing: 0px;\\n}\\n\\n.toggle-btn-grp ::ng-deep .refresh-btn.mat-button {\\n min-width: auto;\\n}\\n\\n.refresh-btn {\\n background-color: #ffffff;\\n color: #e64243;\\n border: 1px solid #e64243;\\n border-radius: 0px;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-flex {\\n border: 1px solid lightgray;\\n border-radius: 3px;\\n background: white;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-label {\\n padding-left: 10px;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-infix {\\n border-top: none;\\n}\\n\\n.textboxService ::ng-deep label.mat-form-field-label {\\n margin-top: 8px !important;\\n}\\n\\n.textboxService ::ng-deep input.mat-input-element {\\n margin-top: 0.6em;\\n margin-left: 10px;\\n}\\n\\n.search-icon {\\n position: absolute;\\n right: 15px;\\n top: 15px;\\n}\\n\\n.backColor {\\n background-color: #00457D !important;\\n font-size: 12px;\\n}\\n\\n.box-size {\\n margin-left: 10px;\\n margin-top: 7px;\\n width: 28px;\\n height: 28px;\\n color: #ffffff !important;\\n}\\n\\n.box-size1 {\\n margin-left: 10px;\\n margin-top: 10px;\\n width: 22px;\\n height: 22px;\\n color: #ffffff !important;\\n}\\n\\n.backColor1 {\\n background-color: #5482BC !important;\\n font-size: 12px;\\n}\\n\\n.call-stats-value {\\n margin-left: 50px;\\n font-size: 18px;\\n}\\n\\n.call-stats-value1 {\\n margin-left: 30px;\\n font-size: 18px;\\n}\\n\\n.info-circle-size {\\n font-size: 12px !important;\\n color: #ffffff !important;\\n}\\n\\n.flex-set {\\n margin-top: 7px;\\n margin-left: 15px;\\n}\\n\\n.flex-set1 {\\n margin-top: 7px;\\n margin-left: 25px;\\n}\\n\\n.dueDateIcon {\\n height: 9px;\\n width: 11px;\\n}\\n\\n.droupdown-style {\\n width: 200px;\\n}\\n\\n.value-list1 hr {\\n border-top: 1px solid lightgrey;\\n margin: 5px 0px;\\n width: 100%;\\n}\\n\\n.value-list1 span {\\n margin-left: 5px;\\n padding-left: 5px;\\n margin-top: 3px;\\n font-size: 12px;\\n}\\n\\n.margin-left {\\n padding-left: 10px;\\n}\\n\\n.paginator ::ng-deep .mat-form-field-infix {\\n height: 18px !important;\\n padding-bottom: 0px;\\n}\\n\\n.followUp {\\n width: 9% !important;\\n}\\n\\n.lastCall {\\n width: 9% !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9jb21wb25lbnQvc29mdC1vZmZlcmluZ3Mvc29mdC1vZmZlcmluZ3MuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NvbXBvbmVudC9zb2Z0LW9mZmVyaW5ncy9zb2Z0LW9mZmVyaW5ncy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLGlCQUFBO0FDQ0o7O0FERUE7RUFDSSxXQUFBO0FDQ0o7O0FERUE7RUFDSSxlQUFBO0FDQ0o7O0FERUE7RUFDSSxnQkFBQTtFQUNBLGlCQUFBO0FDQ0o7O0FERUE7RUFDSSxpQkFBQTtBQ0NKOztBREVBO0VBQ0ksc0JBQUE7RUFDQSxtQkFBQTtFQUNBLGNBQUE7RUFDQSxVQUFBO0FDQ0o7O0FERUE7RUFDSSxlQUFBO0VBQ0EsZUFBQTtFQUNBLFFBQUE7RUFDQSxVQUFBO0VBQ0EsNkJBQUE7RUFDQSxXQUFBO0VBQ0EsVUFBQTtBQ0NKOztBREVBO0VBQ0ksMkJBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0VBQ0EsVUFBQTtFQUNBLFlBQUE7QUNDSjs7QURFQTtFQUNJLGdCQUFBO0FDQ0o7O0FER0E7RUFDSSxpQkFBQTtBQ0FKOztBREdBO0VBQ0kscUJBQUE7QUNBSjs7QURHQTtFQUNJLGVBQUE7RUFDQSxXQUFBO0FDQUo7O0FER0E7RUFDSSxNQUFBO0VBQ0EsY0FBQTtFQUNBLGlCQUFBO0FDQUo7O0FER0E7RUFDSSxpQkFBQTtBQ0FKOztBREdBO0VBQ0ksYUFBQTtBQ0FKOztBREdBO0VBQ0ksTUFBQTtFQUNBLDBCQUFBO0VBQ0EsaUJBQUE7QUNBSjs7QURHQTtFQUNJLG1CQUFBO0FDQUo7O0FER0E7RUFDSSxzQkFBQTtFQUNBLG1CQUFBO0VBQ0EsY0FBQTtFQUNBLFVBQUE7RUFDQSxrQkFBQTtBQ0FKOztBREdBO0VBQ0ksWUFBQTtFQUNBLG9CQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQkFBQTtFQUNBLGVBQUE7QUNBSjs7QURHQTtFQUNJLG1CQUFBO0FD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V0E7RUFDSSxvQkFBQTtBQ1JKOztBRFdBO0VBQ0ksb0JBQUE7QUNSSiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudC9zb2Z0LW9mZmVyaW5ncy9zb2Z0LW9mZmVyaW5ncy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi53b3JraW5nLWFyZWEge1xuICAgIG1hcmdpbi10b3A6IDExNXB4O1xufVxuXG50YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5jYWxsaW5nLXRhYmxlIHRyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi50YWJsZS1oZWFkLWNhbGwge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgcGFkZGluZy10b3A6IDEycHg7XG59XG5cbi5idXR0b24tbWFyZ2luIHtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbn1cblxuLmNhbGxMaXN0IHtcbiAgICBmb250OiBCb2xkIDIwcHggUm9ib3RvO1xuICAgIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gICAgY29sb3I6ICM0ODQ4NDg7XG4gICAgb3BhY2l0eTogMTtcbn1cblxuLmNsb3NlLWNvbiB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0b3A6IDNweDtcbiAgICByaWdodDogMXB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICAgIHotaW5kZXg6IDEwO1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgcGFkZGluZzogMDtcbiAgICBoZWlnaHQ6IDIwcHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdCB7XG4gICAgcGFkZGluZzogNHB4IDBweDtcbiAgICAvL3dpZHRoOiA5MCUgIWltcG9ydGFudDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICAgIHBhZGRpbmctbGVmdDogOHB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdmFsdWUge1xuICAgIHdpZHRoOiA5MCUgIWltcG9ydGFudDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtYnV0dG9uIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udDogd2hpdGU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gICAgdG9wOiAwO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgdG9wOiAwO1xuICAgIG1hcmdpbi10b3A6IDRweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctbGVmdDogNXB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtYXJyb3ctd3JhcHBlciB7XG4gICAgcGFkZGluZy1ib3R0b206IDBweDtcbn1cblxuLmZpbHRlci1sYWJlbCB7XG4gICAgZm9udDogQm9sZCAxNHB4IFJvYm90bztcbiAgICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICAgIGNvbG9yOiAjM2MzYzNjO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuXG4ucmVmZXNoLWljb24ge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tYm90dG9tOiAtMzBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gICAgbWFyZ2luLXRvcDogMzBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5jb2xvcmVkUm93IHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZjk5O1xufVxuXG4uY29sb3JlZEdyZWVuUm93IHtcbiAgICBiYWNrZ3JvdW5kOiAjOTBlZTkwO1xufVxuXG4ubWF0LWRpYWxvZy10aXRsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2dyYXk7XG59XG5cbi5jYWxsTGlzdC1yaWdodCB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuXG4uY29sdW1uSGVhZGVyIHtcbiAgICBmb250OiBCb2xkIDEycHggUm9ib3RvO1xuICAgIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gICAgY29sb3I6ICMzMzMzMzM7XG4gICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG59XG5cbi5sb3N0IHtcbiAgICBjb2xvcjogI2U2NDI0MztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMTBweDtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgdG9wOiAzOCU7XG59XG5cbi5pbmJvdW5kIHtcbiAgICBjb2xvcjogIzJlMzY2ODtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMHB4O1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICB0b3A6IDM4JTtcbn1cblxuLmNvbHVtbnZhbHVlIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZmlsdGVyMSB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uZmlsdGVyQnV0dG9uIHtcbiAgICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEO1xuICAgIGhlaWdodDogMjBweDtcbiAgICBsaW5lLWhlaWdodDogMTBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxcHg7XG59XG5cbi5maWx0ZXJkaXYge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5zZXJ2aWNlRHVlRGF0ZSB7XG4gICAgd2lkdGg6IDEwJSAhaW1wb3J0YW50O1xufVxuXG4uZm9sbG93VXAge1xuICAgIHdpZHRoOiA4JSAhaW1wb3J0YW50O1xufVxuXG50ZC5tYXQtY2VsbCxcbnRkLm1hdC1mb290ZXItY2VsbCxcbnRoLm1hdC1oZWFkZXItY2VsbCB7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkIG5vbmUgbm9uZSBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDAuMXB4O1xuICAgIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4udGFibGUtYm9yZGVyLm1hdC10YWJsZSB7XG4gICAgYm9yZGVyLXN0eWxlOiBub25lIHNvbGlkIHNvbGlkIG5vbmU7XG4gICAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG59XG5cbnRoLm1hdC1oZWFkZXItY2VsbCB7XG4gICAgLy9qdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbiAgICAvL3RleHQtYWxpZ246IGNlbnRlcjtcbiAgICAvL2Rpc3BsYXk6IGZsZXg7XG4gICAgLy9qdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDlkOWQ5O1xufVxuXG4ubWF0LXNvcnQtaGVhZGVyLWNvbnRhaW5lciB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcbn1cblxuLmZpbHRlcjIge1xuICAgIHdpZHRoOiBhdXRvO1xufVxuXG4uY2FsbC1zdGF0cy1jYXJkIHtcbiAgICAubWF0LWNhcmQtdGl0bGUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgfVxuICAgIC5jYWxsLXN0YXRzIHtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgaSB7XG4gICAgICAgICAgICBjb2xvcjogIzJlMzY2ODtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuY2FsbC1zdGF0cy10aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgY29sb3I6ICM0ODQ4NDg7XG4gICAgfVxufVxuXG4uY2FsbC1zdGF0cy1jYXJkMSB7XG4gICAgcGFkZGluZy10b3A6IDBweDtcbn1cblxuLmNhbGwtc3RhdHMtY2FyZC1ib3JkZXIxIHtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIG5vbmUgc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMCU7XG4gICAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG59XG5cbi5jYWxsLXN0YXRzLWNhcmQtYm9yZGVyMiB7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZCBzb2xpZCBzb2xpZCBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDFweDtcbiAgICBib3JkZXItcmFkaXVzOiAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4O1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBjb2xvcjogIzU0ODJCQztcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzU0ODJCQztcbiAgICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtbGFiZWwtY29udGVudCB7XG4gICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgZm9udDogUmVndWxhciAxNHB4IFJvYm90bztcbiAgICBsZXR0ZXItc3BhY2luZzogMHB4O1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5yZWZyZXNoLWJ0bi5tYXQtYnV0dG9uIHtcbiAgICBtaW4td2lkdGg6IGF1dG87XG59XG5cbi5yZWZyZXNoLWJ0biB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBjb2xvcjogI2U2NDI0MztcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTY0MjQzO1xuICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgIGJvcmRlci10b3A6IG5vbmU7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgbGFiZWwubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIG1hcmdpbi10b3A6IDhweCAhaW1wb3J0YW50O1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIGlucHV0Lm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgICBtYXJnaW4tdG9wOiAwLjZlbTtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbn1cblxuLnNlYXJjaC1pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDE1cHg7XG4gICAgdG9wOiAxNXB4O1xufVxuXG4uYmFja0NvbG9yIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uYm94LXNpemUge1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIG1hcmdpbi10b3A6IDdweDtcbiAgICB3aWR0aDogMjhweDtcbiAgICBoZWlnaHQ6IDI4cHg7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuLmJveC1zaXplMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICB3aWR0aDogMjJweDtcbiAgICBoZWlnaHQ6IDIycHg7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuLmJhY2tDb2xvcjEge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM1NDgyQkMgIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IDEycHg7XG59XG5cbi5jYWxsLXN0YXRzLXZhbHVlIHtcbiAgICBtYXJnaW4tbGVmdDogNTBweDtcbiAgICBmb250LXNpemU6IDE4cHg7XG59XG5cbi5jYWxsLXN0YXRzLXZhbHVlMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDMwcHg7XG4gICAgZm9udC1zaXplOiAxOHB4O1xufVxuXG4uaW5mby1jaXJjbGUtc2l6ZSB7XG4gICAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuLmZsZXgtc2V0IHtcbiAgICBtYXJnaW4tdG9wOiA3cHg7XG4gICAgbWFyZ2luLWxlZnQ6IDE1cHg7XG59XG5cbi5mbGV4LXNldDEge1xuICAgIG1hcmdpbi10b3A6IDdweDtcbiAgICBtYXJnaW4tbGVmdDogMjVweDtcbn1cblxuLmR1ZURhdGVJY29uIHtcbiAgICBoZWlnaHQ6IDlweDtcbiAgICB3aWR0aDogMTFweDtcbn1cblxuLmRyb3VwZG93bi1zdHlsZSB7XG4gICAgd2lkdGg6IDIwMHB4O1xufVxuXG4udmFsdWUtbGlzdDEge1xuICAgIGhyIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIGxpZ2h0Z3JleTtcbiAgICAgICAgbWFyZ2luOiA1cHggMHB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gICAgc3BhbiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgICAgIHBhZGRpbmctbGVmdDogNXB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAzcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICB9XG59XG5cbi5tYXJnaW4tbGVmdCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xufVxuXG4ucGFnaW5hdG9yIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgIGhlaWdodDogMThweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAwcHg7XG59XG5cbi5mb2xsb3dVcCB7XG4gICAgd2lkdGg6IDklICFpbXBvcnRhbnQ7XG59XG5cbi5sYXN0Q2FsbCB7XG4gICAgd2lkdGg6IDklICFpbXBvcnRhbnQ7XG59IiwiLndvcmtpbmctYXJlYSB7XG4gIG1hcmdpbi10b3A6IDExNXB4O1xufVxuXG50YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uY2FsbGluZy10YWJsZSB0ciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnRhYmxlLWhlYWQtY2FsbCB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIHBhZGRpbmctdG9wOiAxMnB4O1xufVxuXG4uYnV0dG9uLW1hcmdpbiB7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuXG4uY2FsbExpc3Qge1xuICBmb250OiBCb2xkIDIwcHggUm9ib3RvO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICBjb2xvcjogIzQ4NDg0ODtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmNsb3NlLWNvbiB7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0b3A6IDNweDtcbiAgcmlnaHQ6IDFweDtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHotaW5kZXg6IDEwO1xuICBvcGFjaXR5OiAxO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBwYWRkaW5nOiAwO1xuICBoZWlnaHQ6IDIwcHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdCB7XG4gIHBhZGRpbmc6IDRweCAwcHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gIHdpZHRoOiA5MCUgIWltcG9ydGFudDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtYnV0dG9uIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250OiB3aGl0ZTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIHtcbiAgdG9wOiAwO1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0b3A6IDA7XG4gIG1hcmdpbi10b3A6IDRweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LWFycm93LXdyYXBwZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMHB4O1xufVxuXG4uZmlsdGVyLWxhYmVsIHtcbiAgZm9udDogQm9sZCAxNHB4IFJvYm90bztcbiAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgY29sb3I6ICMzYzNjM2M7XG4gIG9wYWNpdHk6IDE7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cblxuLnJlZmVzaC1pY29uIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tYm90dG9tOiAtMzBweDtcbiAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICBtYXJnaW4tdG9wOiAzMHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5jb2xvcmVkUm93IHtcbiAgYmFja2dyb3VuZDogI2ZmZmY5OTtcbn1cblxuLmNvbG9yZWRHcmVlblJvdyB7XG4gIGJhY2tncm91bmQ6ICM5MGVlOTA7XG59XG5cbi5tYXQtZGlhbG9nLXRpdGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogZGFya2dyYXk7XG59XG5cbi5jYWxsTGlzdC1yaWdodCB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG5cbi5jb2x1bW5IZWFkZXIge1xuICBmb250OiBCb2xkIDEycHggUm9ib3RvO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICBjb2xvcjogIzMzMzMzMztcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG59XG5cbi5sb3N0IHtcbiAgY29sb3I6ICNlNjQyNDM7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMTBweDtcbiAgZm9udC1zaXplOiAxMHB4O1xuICB0b3A6IDM4JTtcbn1cblxuLmluYm91bmQge1xuICBjb2xvcjogIzJlMzY2ODtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwcHg7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgdG9wOiAzOCU7XG59XG5cbi5jb2x1bW52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZmlsdGVyMSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmZpbHRlckJ1dHRvbiB7XG4gIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEO1xuICBoZWlnaHQ6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxcHg7XG59XG5cbi5maWx0ZXJkaXYge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uc2VydmljZUR1ZURhdGUge1xuICB3aWR0aDogMTAlICFpbXBvcnRhbnQ7XG59XG5cbi5mb2xsb3dVcCB7XG4gIHdpZHRoOiA4JSAhaW1wb3J0YW50O1xufVxuXG50ZC5tYXQtY2VsbCxcbnRkLm1hdC1mb290ZXItY2VsbCxcbnRoLm1hdC1oZWFkZXItY2VsbCB7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGJvcmRlci1zdHlsZTogc29saWQgbm9uZSBub25lIHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDAuMXB4O1xuICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxuLnRhYmxlLWJvcmRlci5tYXQtdGFibGUge1xuICBib3JkZXItc3R5bGU6IG5vbmUgc29saWQgc29saWQgbm9uZTtcbiAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG59XG5cbnRoLm1hdC1oZWFkZXItY2VsbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkOWQ5ZDk7XG59XG5cbi5tYXQtc29ydC1oZWFkZXItY29udGFpbmVyIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcbn1cblxuLmZpbHRlcjIge1xuICB3aWR0aDogYXV0bztcbn1cblxuLmNhbGwtc3RhdHMtY2FyZCAubWF0LWNhcmQtdGl0bGUge1xuICBtYXJnaW4tYm90dG9tOiAwcHg7XG59XG4uY2FsbC1zdGF0cy1jYXJkIC5jYWxsLXN0YXRzIHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi5jYWxsLXN0YXRzLWNhcmQgLmNhbGwtc3RhdHMgaSB7XG4gIGNvbG9yOiAjMmUzNjY4O1xuICBmb250LXNpemU6IDExcHg7XG59XG4uY2FsbC1zdGF0cy1jYXJkIC5jYWxsLXN0YXRzLXRpdGxlIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBjb2xvcjogIzQ4NDg0ODtcbn1cblxuLmNhbGwtc3RhdHMtY2FyZDEge1xuICBwYWRkaW5nLXRvcDogMHB4O1xufVxuXG4uY2FsbC1zdGF0cy1jYXJkLWJvcmRlcjEge1xuICBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIG5vbmUgc29saWQ7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3JkZXItcmFkaXVzOiAwJTtcbiAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG59XG5cbi5jYWxsLXN0YXRzLWNhcmQtYm9yZGVyMiB7XG4gIGJvcmRlci1zdHlsZTogc29saWQgc29saWQgc29saWQgc29saWQ7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3JkZXItcmFkaXVzOiAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIHtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGNvbG9yOiAjNTQ4MkJDO1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU0ODJCQztcbiAgY29sb3I6ICNmZmZmZmY7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWxhYmVsLWNvbnRlbnQge1xuICBsaW5lLWhlaWdodDogMzBweDtcbiAgZm9udDogUmVndWxhciAxNHB4IFJvYm90bztcbiAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAucmVmcmVzaC1idG4ubWF0LWJ1dHRvbiB7XG4gIG1pbi13aWR0aDogYXV0bztcbn1cblxuLnJlZnJlc2gtYnRuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgY29sb3I6ICNlNjQyNDM7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNjQyNDM7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCBsYWJlbC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIG1hcmdpbi10b3A6IDhweCAhaW1wb3J0YW50O1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIGlucHV0Lm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgbWFyZ2luLXRvcDogMC42ZW07XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuXG4uc2VhcmNoLWljb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAxNXB4O1xuICB0b3A6IDE1cHg7XG59XG5cbi5iYWNrQ29sb3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmJveC1zaXplIHtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIG1hcmdpbi10b3A6IDdweDtcbiAgd2lkdGg6IDI4cHg7XG4gIGhlaWdodDogMjhweDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuLmJveC1zaXplMSB7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICB3aWR0aDogMjJweDtcbiAgaGVpZ2h0OiAyMnB4O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG4uYmFja0NvbG9yMSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1NDgyQkMgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uY2FsbC1zdGF0cy12YWx1ZSB7XG4gIG1hcmdpbi1sZWZ0OiA1MHB4O1xuICBmb250LXNpemU6IDE4cHg7XG59XG5cbi5jYWxsLXN0YXRzLXZhbHVlMSB7XG4gIG1hcmdpbi1sZWZ0OiAzMHB4O1xuICBmb250LXNpemU6IDE4cHg7XG59XG5cbi5pbmZvLWNpcmNsZS1zaXplIHtcbiAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbi5mbGV4LXNldCB7XG4gIG1hcmdpbi10b3A6IDdweDtcbiAgbWFyZ2luLWxlZnQ6IDE1cHg7XG59XG5cbi5mbGV4LXNldDEge1xuICBtYXJnaW4tdG9wOiA3cHg7XG4gIG1hcmdpbi1sZWZ0OiAyNXB4O1xufVxuXG4uZHVlRGF0ZUljb24ge1xuICBoZWlnaHQ6IDlweDtcbiAgd2lkdGg6IDExcHg7XG59XG5cbi5kcm91cGRvd24tc3R5bGUge1xuICB3aWR0aDogMjAwcHg7XG59XG5cbi52YWx1ZS1saXN0MSBociB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCBsaWdodGdyZXk7XG4gIG1hcmdpbjogNXB4IDBweDtcbiAgd2lkdGg6IDEwMCU7XG59XG4udmFsdWUtbGlzdDEgc3BhbiB7XG4gIG1hcmdpbi1sZWZ0OiA1cHg7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xuICBtYXJnaW4tdG9wOiAzcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLm1hcmdpbi1sZWZ0IHtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xufVxuXG4ucGFnaW5hdG9yIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBoZWlnaHQ6IDE4cHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1ib3R0b206IDBweDtcbn1cblxuLmZvbGxvd1VwIHtcbiAgd2lkdGg6IDklICFpbXBvcnRhbnQ7XG59XG5cbi5sYXN0Q2FsbCB7XG4gIHdpZHRoOiA5JSAhaW1wb3J0YW50O1xufSJdfQ== */\"","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\nimport { DatePipe } from '@angular/common';\nimport { MatDialog, MatPaginator, MatSort, MatSelect } from '@angular/material';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { CommonService } from '../../core/service/common-service/common.service';\nimport { FilterPipePipe } from '../../pipes/filter-pipe.pipe';\nimport { ListCustData } from './listCustData';\n\n@Component({\n selector: 'app-soft-offerings',\n templateUrl: './soft-offerings.component.html',\n styleUrls: ['./soft-offerings.component.scss'],\n providers: [FilterPipePipe]\n})\nexport class SoftOfferingsComponent implements OnInit {\n\n @ViewChild(MatSort, { static: true }) sort: MatSort;\n @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator;\n\n customerData: any;\n currentDate: string;\n spinner: boolean;\n userId: string;\n userRoles: any;\n selectedCallTypeValues: string[] = [];\n selectedCallStateValues: string[] = [];\n uniqueCallType = new Set();\n uniqueCallState = new Set();\n pageSize: number;\n filterMap = new Map();\n dataSource: any;\n filteredDataSource: any;\n callsToBeMade: number = 0;\n callsMade: number = 0;\n callToggleStatus: boolean = true;\n selection: any;\n callFlag: any;\n customersToBeCalled: string;\n callsMade1: string;\n userRoleId: string;\n listFlag: string;\n displayedColumns: string[] = [\n 'customerName',\n 'callType',\n 'callStatus',\n 'lastCallTime',\n 'creInput',\n 'followUpTime',\n 'remarks'\n ];\n\n constructor(private router: Router,private toastr: ToastrService,private commonService: CommonService,\n private datePipe: DatePipe, private filterPipePipe: FilterPipePipe) { }\n\n ngOnInit() {\n\n if (localStorage.getItem('userId') == null || localStorage.getItem('userId') == undefined) {\n this.router.navigate(['login']);\n }\n this.customerData = JSON.parse(localStorage.getItem('customerData'));\n this.userId = localStorage.getItem('userId');\n this.currentDate = this.datePipe.transform(new Date(), \"yyyy-MM-dd\");\n this.userRoles = localStorage.getItem('userRoles');\n\n this.userRoleId = JSON.parse(localStorage.getItem(\"userInfo\"))[0].roleId;\n if (localStorage.getItem('selectedCallTypeValues') != null || localStorage.getItem('selectedCallTypeValues') != undefined) {\n let selectedCallTypeValues = JSON.parse(localStorage.getItem('selectedCallTypeValues'));\n this.selectedCallTypeValues = selectedCallTypeValues;\n }\n\n if (localStorage.getItem('selectedCallStateValues') != null || localStorage.getItem('selectedCallStateValues') != undefined) {\n let selectedCallStateValues = JSON.parse(localStorage.getItem('selectedCallStateValues'));\n this.selectedCallStateValues = selectedCallStateValues;\n }\n\n if (localStorage.getItem('callListPageSize') != null || localStorage.getItem('callListPageSize') != undefined) {\n let pagesize = Number(localStorage.getItem('callListPageSize'));\n // this.pageSize = (pagesize && pagesize != NaN) ? pagesize : 50;\n } else {\n this.pageSize = 50;\n }\n\n // if ((localStorage.getItem('workshops') == null || localStorage.getItem('workshops') == undefined) && this.userRoles !='Call Center Agent') {\n // this.getWorkshopDetails();\n // }\n //this.getCreStats();\n if(this.userRoleId == '2') {\n this.listFlag = 'Z';\n setTimeout(() => this.amcpairCallList('Z', this.userId, this.userRoleId), 1000);\n } else {\n this.listFlag = 'Y';\n setTimeout(() => this.amcpairCallList('Y', this.userId, this.userRoleId), 1000);\n }\n\n }\n\n /**\n * Name: setPageData\n * purpose: To set pagesize for table\n */\n setPageData(event) {\n let size = event.pageSize.toString();\n localStorage.setItem('callListPageSize', size);\n}\n\n/**\n * Name: getWorkshopDetails\n * purpose: To get CRE assigned workshop details\n */\n getWorkshopDetails() {\n this.spinner = true;\n this.commonService.getWorkshopDetails(this.userId)\n .subscribe(res => {\n if (res['responseCode'] == 0) {\n this.spinner = false;\n localStorage.setItem('workshops', JSON.stringify(res['responseData']));\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: activeButton\n * purpose: To activat apply button\n */\n activeButton(): boolean {\n let flag = false;\n if(this.selectedCallTypeValues != null && this.selectedCallTypeValues.length != 0) {\n flag = true;\n } else if (this.selectedCallStateValues != null && this.selectedCallStateValues.length != 0) {\n flag = true;\n }\n return flag;\n }\n\n /**\n * Name: applyfilter\n * purpose: To apply filter on call list data\n */\n applyfilter(): void {\n let key = '';\n this.filterMap = new Map();\n this.filteredDataSource = this.dataSource;\n\n if(this.selectedCallTypeValues != null && this.selectedCallTypeValues.length != 0){\n key = \"callType\";\n this.filterMap.set(key, this.selectedCallTypeValues);\n this.filteredDataSource = new MatTableDataSource(this.filterPipePipe.transform(this.filteredDataSource.filteredData, this.filterMap));\n }\n\n if(this.selectedCallStateValues != null && this.selectedCallStateValues.length != 0){\n key = \"callStatus\";\n this.filterMap.set(key, this.selectedCallStateValues);\n this.filteredDataSource = new MatTableDataSource(this.filterPipePipe.transform(this.filteredDataSource.filteredData, this.filterMap));\n }\n\n //this.filterMap.set(this.selectedCol, this.selectedColValues);\n //this.filteredDataSource = new MatTableDataSource(this.filterPipePipe.transform(this.dataSource.filteredData, this.filterMap));\n this.callsToBeMade = this.filteredDataSource.filteredData.length;\n this.sort.direction = '';\n this.filteredDataSource.sort = this.sort;\n this.filteredDataSource.sortingDataAccessor = (data, header) => data[header];\n this.filteredDataSource.paginator = this.paginator;\n localStorage.setItem('selectedCallTypeValues',JSON.stringify(this.selectedCallTypeValues));\n localStorage.setItem('selectedCallStateValues',JSON.stringify(this.selectedCallStateValues));\n //localStorage.setItem('selectedCol', this.selectedCol);\n //localStorage.setItem('selectedColValues', JSON.stringify(this.selectedColValues));\n }\n\n /**\n * Name: searchfilter\n * purpose: To apply filter on call list data\n */\n searchfilter(filterValue: string): void {\n filterValue = filterValue.trim(); // Remove whitespace\n filterValue = filterValue.toLowerCase(); // Datasource defaults to lowercase matches\n this.filteredDataSource.filter = filterValue;\n }\n\n /**\n * Name: amcpairCallList\n * purpose: To get calllist details\n * @param {string} flag - type of call\n * @param {string} creId - User Id\n * @param {any} userRoleId - User Id\n */\n amcpairCallList(flag: string, creId: string, userRoleId: string): void {\n this.spinner = true;\n this.selection = new SelectionModel(true, []);\n\n this.commonService.amccustomercallList(flag, creId, userRoleId)\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n if (flag == 'Y' || flag == 'Z') {\n this.callFlag = flag;\n this.callToggleStatus = true;\n } else {\n this.callFlag = flag;\n this.callToggleStatus = false;\n }\n\n if (res['responseData'].length) {\n res['responseData'].forEach(data => {\n // if ((data.accountType).toLowerCase() == \"lost\") {\n // let changeName = data.customerName.split(\" - L\")[0];\n // data.customerName = changeName;\n // }\n let inboundCustomer = data.customerName.includes(\"- I\");\n let stringPosition = data.customerName.length;\n let lostString = data.customerName[stringPosition - 3] + data.customerName[stringPosition - 2] + data.customerName[stringPosition - 1]\n if (inboundCustomer && lostString == \"- I\") {\n let changeName = data.customerName.split(\" - I\")[0];\n data.customerName = changeName;\n data.isInboundCall = true;\n }\n });\n }\n this.callsToBeMade = res['responseData'].length;\n //init data table and shorting\n this.dataSource = new MatTableDataSource(res['responseData']);\n //this.sort.direction = '';\n this.dataSource.sort = this.sort;\n this.dataSource.sortingDataAccessor = (data, header) => data[header];\n this.dataSource.paginator = this.paginator;\n this.filterData();\n if ((this.selectedCallTypeValues != null && this.selectedCallTypeValues.length == 0)\n && (this.selectedCallStateValues != null && this.selectedCallStateValues.length == 0)) {\n //init filtered table and shorting\n this.filteredDataSource = new MatTableDataSource(res['responseData']);\n //this.sort.direction = '';\n this.filteredDataSource.sort = this.sort;\n this.filteredDataSource.sortingDataAccessor = (data, header) => data[header];\n this.filteredDataSource.paginator = this.paginator;\n }\n this.spinner = false;\n this.callsMadeCalculate(res['responseData']);\n this.callListinfo();\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n this.callToggleStatus = true;\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n this.callToggleStatus = true;\n });\n }\n\n /**\n * Name: callsMadeCalculate\n * purpose: To get call made count\n * @param {Array} callsToBeMade - list of calls\n */\n callsMadeCalculate(callsToBeMade: any) {\n this.callsMade = 0;\n callsToBeMade.forEach(element => {\n let currentDate = \"\" + this.datePipe.transform(new Date(), \"yyyy-MM-dd\");\n // let reqDate = this.datePipe.transform((element.lastCallTime), \"yyyy-MM-dd\");\n // if (currentDate == reqDate) {\n // this.callsMade++;\n // }\n });\n }\n\n /**\n * Name: callListinfo\n * purpose: To get call count info\n */\n callListinfo(): void {\n this.spinner = true;\n this.commonService.amcCallListinfo(this.userId, this.userRoleId)\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n this.customersToBeCalled = res['responseData'].callToBeMade;\n this.callsMade1 = res['responseData'].callMade;\n this.spinner = false;\n } else {\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n //...\n });\n }\n\n /**\n * Name: selectCustomer\n * purpose: To select customer for details\n * @param {Object} row - selected customer details\n */\n selectCustomer(row: ListCustData): void {\n localStorage.setItem('customerId', row.customerId);\n //localStorage.setItem('custNotification', row.serviceType + \", \" + row.callStatusDesc);\n //localStorage.setItem(\"vin\", row.vin);\n //localStorage.setItem(\"dealerCode\", row.dealerCode);\n localStorage.setItem(\"customerData\", JSON.stringify(row));\n this.router.navigate(['soft-customer360']);\n }\n\n /**\n * Name: filterData\n * purpose: To filter call list data\n */\n filterData(): void {\n this.dataSource.filteredData.forEach(element => {\n this.uniqueCallType.add(element.callType);\n this.uniqueCallState.add(element.callStatus);\n });\n\n if ((this.selectedCallTypeValues != null && this.selectedCallTypeValues.length != 0)\n || (this.selectedCallStateValues != null && this.selectedCallStateValues.length != 0)) {\n //this.filterTriggered(null);\n this.applyfilter();\n }\n }\n\n /**\n * Name: clearFilter\n * purpose: To clear filter\n */\n clearFilter(listChange:boolean, listType: any): void {\n if(listType != 'X') {\n if(this.userRoleId == '2') {\n listType = 'Z';\n } else {\n listType = 'Y'\n }\n }\n if(listChange) {\n this.dataSource = [];\n this.filteredDataSource = [];\n this.amcpairCallList(listType, this.userId, this.userRoleId);\n } else {\n this.filterMap.clear();\n this.selectedCallTypeValues = null;\n this.selectedCallStateValues = null;\n this.filteredDataSource = new MatTableDataSource(this.filterPipePipe.transform(this.dataSource.filteredData, this.filterMap));\n this.callsToBeMade = this.filteredDataSource.filteredData.length;\n this.sort.direction = '';\n this.filteredDataSource.sort = this.sort;\n this.filteredDataSource.sortingDataAccessor = (data, header) => data[header];\n this.filteredDataSource.paginator = this.paginator;\n localStorage.removeItem('selectedCallTypeValues');\n localStorage.removeItem('selectedCallStateValues');\n }\n }\n\n /**\n * Name: changeColor\n * purpose: To change followup time color\n */\n changeColor(followUp:any): String {\n let currentTime = this.datePipe.transform(new Date(), \"yyyy-MM-dd HH:mm:ss \");\n\n if(followUp != null && followUp != undefined && followUp != \"\") {\n let followUpDateTime = this.datePipe.transform(followUp, \"yyyy-MM-dd HH:mm:ss\");\n if((new Date(currentTime)).getTime() > (new Date(followUpDateTime).getTime())){\n return \"red\";\n }\n }\n }\n}","export default \".working-area {\\n margin-top: 160px;\\n}\\n\\n.contact {\\n margin-top: 20px;\\n width: 100% !important;\\n}\\n\\n.hide-element {\\n display: none;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-infix {\\n border: 1px solid lightgray;\\n border-radius: 2px;\\n background: white;\\n padding: 0;\\n height: 30px;\\n}\\n\\n.table-head-call .mat-button-toggle-group {\\n margin: 10px;\\n}\\n\\n.filter1 ::ng-deep .mat-select {\\n padding: 8px 0px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-trigger {\\n padding-left: 8px;\\n width: 100%;\\n}\\n\\n.columnvalue {\\n font-size: 14px;\\n text-align: left;\\n}\\n\\n.label {\\n font-weight: 500;\\n margin-bottom: 5px !important;\\n text-align: left;\\n}\\n\\n.columnHeader {\\n font: 14px Roboto;\\n font-weight: 500 !important;\\n letter-spacing: 0px;\\n color: #333333;\\n text-transform: capitalize;\\n opacity: 1;\\n /* position: relative !important; */\\n}\\n\\n::ng-deep .mat-checkbox-checked.mat-accent .mat-checkbox-background,\\n.mat-checkbox-indeterminate.mat-accent .mat-checkbox-background {\\n background-color: grey;\\n}\\n\\n.columnvalue {\\n font-size: 14px;\\n position: relative;\\n}\\n\\n.end-button {\\n color: white;\\n background-color: #2e3668;\\n border-radius: 0;\\n margin-top: 10px;\\n}\\n\\n.sub-title {\\n font: Bold 16px Roboto;\\n}\\n\\n.calling-table tr {\\n cursor: pointer;\\n}\\n\\n.form-field-inp {\\n padding: 5px;\\n border: 1px solid lightgray;\\n width: auto;\\n}\\n\\n.filter1 ::ng-deep .mat-select-value {\\n width: 90%;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label-wrapper {\\n top: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n\\n.cre-search-bar button {\\n margin-top: 10px;\\n}\\n\\n.search-input {\\n width: 90%;\\n}\\n\\n.search-input input {\\n width: 100%;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-underline {\\n display: none;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label {\\n top: 0;\\n margin-top: 8px !important;\\n padding-left: 5px;\\n}\\n\\n.info-action {\\n text-align: end;\\n}\\n\\n.filter-label {\\n letter-spacing: 0px;\\n color: #3c3c3c;\\n opacity: 1;\\n margin-bottom: 5px;\\n}\\n\\n.form-field {\\n margin-bottom: 10px;\\n}\\n\\n.work {\\n display: flex;\\n flex-direction: row;\\n justify-content: flex-start;\\n flex-wrap: wrap;\\n}\\n\\n.search-card {\\n box-shadow: none;\\n background-color: transparent;\\n}\\n\\n.mat-card-cvr {\\n width: 100%;\\n text-align: center;\\n}\\n\\n.m-l-10 {\\n margin-left: 10px !important;\\n}\\n\\n.btn {\\n position: relative;\\n cursor: pointer;\\n overflow: hidden;\\n background-color: #00457d !important;\\n border-radius: 5px !important;\\n height: 30px;\\n}\\n\\n.btn p {\\n text-align: center;\\n text-transform: uppercase;\\n color: #fff;\\n position: relative;\\n z-index: 1;\\n transition: all 0.3s ease;\\n margin: auto;\\n font-size: 12px;\\n line-height: 10px;\\n}\\n\\n.btn-1 {\\n background-color: #ffffff !important;\\n color: #00457d !important;\\n border: 1px solid #00457d;\\n}\\n\\n.btn-1 p {\\n margin: auto;\\n}\\n\\n.disabled {\\n opacity: 0.6;\\n}\\n\\n.color {\\n min-width: 150px;\\n background-color: #e64243;\\n border: 1px solid #e64243;\\n margin-left: 172px;\\n color: white;\\n}\\n\\n.check {\\n min-width: 150px;\\n background-color: #e64243;\\n border: 1px solid #e64243;\\n color: white;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-flex {\\n border: 1px solid lightgray;\\n border-radius: 3px;\\n background: white;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-label {\\n padding-left: 10px;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-infix {\\n border-top: none;\\n}\\n\\n.textboxService ::ng-deep label.mat-form-field-label {\\n margin-top: 8px !important;\\n}\\n\\n.textboxService ::ng-deep input.mat-input-element {\\n margin-top: 0.6em;\\n margin-left: 10px;\\n}\\n\\n.col {\\n margin-top: 10px;\\n}\\n\\n.example-card1 {\\n text-align: center;\\n width: 60%;\\n display: block;\\n margin-left: auto;\\n margin-right: auto;\\n margin-bottom: 10px;\\n}\\n\\n.mat-form-field-infix {\\n height: 15px !important;\\n}\\n\\n.m-t-20 {\\n margin-top: 20px;\\n}\\n\\n.m-l-20 {\\n margin-left: 20px;\\n}\\n\\n.action-btn {\\n width: 94%;\\n margin: 0 auto;\\n margin-top: 10px;\\n margin-bottom: 20px;\\n}\\n\\n.searchfilter {\\n width: 380px;\\n height: 30px;\\n margin-left: 10px;\\n font-size: 12px;\\n border: 0;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9jb21wb25lbnQvdWFtL3VhbS5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50L3VhbS91YW0uY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxpQkFBQTtBQ0NGOztBREVBO0VBQ0UsZ0JBQUE7RUFDQSxzQkFBQTtBQ0NGOztBREVBO0VBQ0UsYUFBQTtBQ0NGOztBREVBO0VBQ0UsMkJBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0VBQ0EsVUFBQTtFQUNBLFlBQUE7QUNDRjs7QURFQTtFQUNFLFlBQUE7QUNDRjs7QURFQTtFQUNFLGdCQUFBO0FDQ0Y7O0FERUE7RUFDRSxpQkFBQTtFQUNBLFdBQUE7QUNDRjs7QURFQTtFQUNFLGVBQUE7RUFDQSxnQkFBQTtBQ0NGOztBREVBO0VBQ0UsZ0JBQUE7RUFDQSw2QkFBQTtFQUNBLGdCQUFBO0FDQ0Y7O0FERUE7RUFDRSxpQkFBQTtFQUNBLDJCQUFBO0VBQ0EsbUJBQUE7RUFDQSxjQUFBO0VBQ0EsMEJBQUE7RUFDQSxVQUFBO0VBQ0EsbUNBQUE7QUNDRjs7QURFQTs7RUFFRSxzQkFBQTtBQ0NGOztBREVBO0VBQ0UsZUFBQTtFQUNBLGtCQUFBO0FDQ0Y7O0FERUE7RUFDRSxZQUFBO0VBQ0EseUJBQUE7RUFDQSxnQkFBQTtFQUNBLGdCQUFBO0FDQ0Y7O0FERUE7RUFDRSxzQkFBQTtBQ0NGOztBREVBO0VBQ0UsZUFBQTtBQ0NGOztBREVBO0VBQ0UsWUFBQTtFQUNBLDJCQUFBO0VBQ0EsV0FBQTtBQ0NGOztBREVBO0VBQ0UsVUFBQTtBQ0NGOztBREVBO0VBQ0UsTUFBQTtFQUNBLGNBQUE7RUFDQSxpQkFBQTtBQ0NGOztBREVBO0VBQ0UsZ0JBQUE7QUNDRjs7QURFQTtFQUNFLFVBQUE7QUNDRjs7QURDRTtFQUNFLFdBQUE7QUNDSjs7QURHQTtFQUNFLGlCQUFBO0FDQUY7O0FER0E7RUFDRSxhQUFBO0FDQUY7O0FER0E7RUFDRSxNQUFBO0VBQ0EsMEJBQUE7RUFDQSxpQkFBQTtBQ0FGOztBREdBO0VBQ0UsZUFBQTtBQ0FGOztBREdBO0VBQ0UsbUJBQUE7RUFDQSxjQUFBO0VBQ0EsVUFBQTtFQUNBLGtCQUFBO0FDQUY7O0FER0E7RUFDRSxtQkFBQTtBQ0FGOztBREdBO0VBQ0UsYUFBQTtFQUNBLG1CQUFBO0VBQ0EsMkJBQUE7RUFDQSxlQUFBO0FDQUY7O0FER0E7RUFDRSxnQkFBQTtFQUNBLDZCQUFBO0FDQUY7O0FER0E7RUFDRSxXQUFBO0VBQ0Esa0JBQUE7QUNBRjs7QURHQTtFQUNFLDRCQUFBO0FDQUY7O0FER0E7RUFDRSxrQkFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLG9DQUFBO0VBQ0EsNkJBQUE7RUFDQSxZQUFBO0FDQUY7O0FER0E7RUFDRSxrQkFBQTtFQUNBLHlCQUFBO0VBQ0EsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLHlCQUFBO0VBQ0EsWUFBQTtFQUNBLGVBQUE7RUFDQSxpQkFBQTtBQ0FGOztBREdBO0VBQ0Usb0NBQUE7RUFDQSx5QkFBQTtFQUNBLHlCQUFBO0FDQUY7O0FER0E7RUFDRSxZQUFBO0FDQUY7O0FER0E7RUFDRSxZQUFBO0FDQUY7O0FER0E7RUFDRSxnQkFBQTtFQUNBLHlCQUFBO0VBQ0EseUJBQUE7RUFDQSxrQkFBQTtFQUNBLFlBQUE7QUNBRjs7QURHQTtFQUNFLGdCQUFBO0VBQ0EseUJBQUE7RUFDQSx5QkFBQTtFQUNBLFlBQUE7QUNBRjs7QURHQTtFQUNFLDJCQUFBO0VBQ0Esa0JBQUE7RUFDQSxpQkFBQTtBQ0FGOztBREdBO0VBQ0Usa0JBQUE7QUNBRjs7QURHQTtFQUNFLGdCQUFBO0FDQUY7O0FER0E7RUFDRSwwQkFBQTtBQ0FGOztBREdBO0VBQ0UsaUJBQUE7RUFDQSxpQkFBQTtBQ0FGOztBREdBO0VBQ0UsZ0JBQUE7QUNBRjs7QURHQTtFQUNFLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLGNBQUE7RUFDQSxpQkFBQTtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7QUNBRjs7QURHQTtFQUNFLHVCQUFBO0FDQUY7O0FER0E7RUFDRSxnQkFBQTtBQ0FGOztBREdBO0VBQ0UsaUJBQUE7QUNBRjs7QURHQTtFQUNFLFVBQUE7RUFDQSxjQUFBO0VBQ0EsZ0JBQUE7RUFDQSxtQkFBQTtBQ0FGOztBREdBO0VBQ0UsWUFBQTtFQUNBLFlBQUE7RUFDQSxpQkFBQTtFQUNBLGVBQUE7RUFDQSxTQUFBO0FDQUYiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnQvdWFtL3VhbS5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi53b3JraW5nLWFyZWEge1xuICBtYXJnaW4tdG9wOiAxNjBweDtcbn1cblxuLmNvbnRhY3Qge1xuICBtYXJnaW4tdG9wOiAyMHB4O1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xufVxuXG4uaGlkZS1lbGVtZW50IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgcGFkZGluZzogMDtcbiAgaGVpZ2h0OiAzMHB4O1xufVxuXG4udGFibGUtaGVhZC1jYWxsIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gIG1hcmdpbjogMTBweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0IHtcbiAgcGFkZGluZzogOHB4IDBweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5jb2x1bW52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLmxhYmVsIHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4ICFpbXBvcnRhbnQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5jb2x1bW5IZWFkZXIge1xuICBmb250OiAxNHB4IFJvYm90bztcbiAgZm9udC13ZWlnaHQ6IDUwMCAhaW1wb3J0YW50O1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICBjb2xvcjogIzMzMzMzMztcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gIG9wYWNpdHk6IDE7XG4gIC8qIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50OyAqL1xufVxuXG46Om5nLWRlZXAgLm1hdC1jaGVja2JveC1jaGVja2VkLm1hdC1hY2NlbnQgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kLFxuLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1hY2NlbnQgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogZ3JleTtcbn1cblxuLmNvbHVtbnZhbHVlIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5lbmQtYnV0dG9uIHtcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmUzNjY4O1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuXG4uc3ViLXRpdGxlIHtcbiAgZm9udDogQm9sZCAxNnB4IFJvYm90bztcbn1cblxuLmNhbGxpbmctdGFibGUgdHIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5mb3JtLWZpZWxkLWlucCB7XG4gIHBhZGRpbmc6IDVweDtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICB3aWR0aDogYXV0bztcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgd2lkdGg6IDkwJTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIHtcbiAgdG9wOiAwO1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5jcmUtc2VhcmNoLWJhciBidXR0b257XG4gIG1hcmdpbi10b3A6IDEwcHg7XG59XG5cbi5zZWFyY2gtaW5wdXQge1xuICB3aWR0aDogOTAlO1xuXG4gIGlucHV0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdG9wOiAwO1xuICBtYXJnaW4tdG9wOiA4cHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG59XG5cbi5pbmZvLWFjdGlvbiB7XG4gIHRleHQtYWxpZ246IGVuZDtcbn1cblxuLmZpbHRlci1sYWJlbCB7XG4gIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gIGNvbG9yOiAjM2MzYzNjO1xuICBvcGFjaXR5OiAxO1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG5cbi5mb3JtLWZpZWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLndvcmsge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLnNlYXJjaC1jYXJkIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5tYXQtY2FyZC1jdnIge1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubS1sLTEwIHtcbiAgbWFyZ2luLWxlZnQ6IDEwcHggIWltcG9ydGFudDtcbn1cblxuLmJ0biB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdkICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDVweCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDMwcHg7XG59XG5cbi5idG4gcCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6ICNmZmY7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgbWFyZ2luOiBhdXRvO1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxMHB4O1xufVxuXG4uYnRuLTEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMDA0NTdkICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMwMDQ1N2Q7XG59XG5cbi5idG4tMSBwIHtcbiAgbWFyZ2luOiBhdXRvO1xufVxuXG4uZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjY7XG59XG5cbi5jb2xvciB7XG4gIG1pbi13aWR0aDogMTUwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNjQyNDM7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNjQyNDM7XG4gIG1hcmdpbi1sZWZ0OiAxNzJweDtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4uY2hlY2sge1xuICBtaW4td2lkdGg6IDE1MHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTY0MjQzO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTY0MjQzO1xuICBjb2xvcjogd2hpdGU7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWZsZXgge1xuICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgbGFiZWwubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBtYXJnaW4tdG9wOiA4cHggIWltcG9ydGFudDtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCBpbnB1dC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gIG1hcmdpbi10b3A6IDAuNmVtO1xuICBtYXJnaW4tbGVmdDogMTBweDtcbn1cblxuLmNvbCB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG59XG5cbi5leGFtcGxlLWNhcmQxIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogNjAlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgaGVpZ2h0OiAxNXB4ICFpbXBvcnRhbnQ7XG59XG5cbi5tLXQtMjAge1xuICBtYXJnaW4tdG9wOiAyMHB4O1xufVxuXG4ubS1sLTIwIHtcbiAgbWFyZ2luLWxlZnQ6IDIwcHg7XG59XG5cbi5hY3Rpb24tYnRuIHtcbiAgd2lkdGg6IDk0JTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cbi5zZWFyY2hmaWx0ZXIge1xuICB3aWR0aDogMzgwcHg7XG4gIGhlaWdodDogMzBweDtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgYm9yZGVyOiAwO1xufSIsIi53b3JraW5nLWFyZWEge1xuICBtYXJnaW4tdG9wOiAxNjBweDtcbn1cblxuLmNvbnRhY3Qge1xuICBtYXJnaW4tdG9wOiAyMHB4O1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xufVxuXG4uaGlkZS1lbGVtZW50IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgcGFkZGluZzogMDtcbiAgaGVpZ2h0OiAzMHB4O1xufVxuXG4udGFibGUtaGVhZC1jYWxsIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gIG1hcmdpbjogMTBweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0IHtcbiAgcGFkZGluZzogOHB4IDBweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5jb2x1bW52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLmxhYmVsIHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4ICFpbXBvcnRhbnQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5jb2x1bW5IZWFkZXIge1xuICBmb250OiAxNHB4IFJvYm90bztcbiAgZm9udC13ZWlnaHQ6IDUwMCAhaW1wb3J0YW50O1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICBjb2xvcjogIzMzMzMzMztcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gIG9wYWNpdHk6IDE7XG4gIC8qIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50OyAqL1xufVxuXG46Om5nLWRlZXAgLm1hdC1jaGVja2JveC1jaGVja2VkLm1hdC1hY2NlbnQgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kLFxuLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1hY2NlbnQgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogZ3JleTtcbn1cblxuLmNvbHVtbnZhbHVlIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5lbmQtYnV0dG9uIHtcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmUzNjY4O1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuXG4uc3ViLXRpdGxlIHtcbiAgZm9udDogQm9sZCAxNnB4IFJvYm90bztcbn1cblxuLmNhbGxpbmctdGFibGUgdHIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5mb3JtLWZpZWxkLWlucCB7XG4gIHBhZGRpbmc6IDVweDtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICB3aWR0aDogYXV0bztcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgd2lkdGg6IDkwJTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIHtcbiAgdG9wOiAwO1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5jcmUtc2VhcmNoLWJhciBidXR0b24ge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuXG4uc2VhcmNoLWlucHV0IHtcbiAgd2lkdGg6IDkwJTtcbn1cbi5zZWFyY2gtaW5wdXQgaW5wdXQge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRvcDogMDtcbiAgbWFyZ2luLXRvcDogOHB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xufVxuXG4uaW5mby1hY3Rpb24ge1xuICB0ZXh0LWFsaWduOiBlbmQ7XG59XG5cbi5maWx0ZXItbGFiZWwge1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICBjb2xvcjogIzNjM2MzYztcbiAgb3BhY2l0eTogMTtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuXG4uZm9ybS1maWVsZCB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi53b3JrIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cbi5zZWFyY2gtY2FyZCB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4ubWF0LWNhcmQtY3ZyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm0tbC0xMCB7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5idG4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3ZCAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA1cHggIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAzMHB4O1xufVxuXG4uYnRuIHAge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiAjZmZmO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIG1hcmdpbjogYXV0bztcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMTBweDtcbn1cblxuLmJ0bi0xIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICBjb2xvcjogIzAwNDU3ZCAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCAjMDA0NTdkO1xufVxuXG4uYnRuLTEgcCB7XG4gIG1hcmdpbjogYXV0bztcbn1cblxuLmRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC42O1xufVxuXG4uY29sb3Ige1xuICBtaW4td2lkdGg6IDE1MHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTY0MjQzO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTY0MjQzO1xuICBtYXJnaW4tbGVmdDogMTcycHg7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLmNoZWNrIHtcbiAgbWluLXdpZHRoOiAxNTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2NDI0MztcbiAgYm9yZGVyOiAxcHggc29saWQgI2U2NDI0MztcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBib3JkZXItdG9wOiBub25lO1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIGxhYmVsLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgbWFyZ2luLXRvcDogOHB4ICFpbXBvcnRhbnQ7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgaW5wdXQubWF0LWlucHV0LWVsZW1lbnQge1xuICBtYXJnaW4tdG9wOiAwLjZlbTtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbi5jb2wge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuXG4uZXhhbXBsZS1jYXJkMSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDYwJTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIGhlaWdodDogMTVweCAhaW1wb3J0YW50O1xufVxuXG4ubS10LTIwIHtcbiAgbWFyZ2luLXRvcDogMjBweDtcbn1cblxuLm0tbC0yMCB7XG4gIG1hcmdpbi1sZWZ0OiAyMHB4O1xufVxuXG4uYWN0aW9uLWJ0biB7XG4gIHdpZHRoOiA5NCU7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuXG4uc2VhcmNoZmlsdGVyIHtcbiAgd2lkdGg6IDM4MHB4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGJvcmRlcjogMDtcbn0iXX0= */\"","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { CommonService } from '../../core/service/common-service/common.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { WorkshopData } from './workshopData';\nimport { MatPaginator, MatSort, MatTableDataSource, MatOption } from '@angular/material';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { element } from 'protractor';\n\n\nexport interface PeriodicElement {\n Checked: boolean;\n WorkshopName: string;\n WorkshopCode: number;\n WorkshopAddress: string;\n}\n\n@Component({\n selector: 'app-uam',\n templateUrl: './uam.component.html',\n styleUrls: ['./uam.component.scss']\n})\n\nexport class UamComponent implements OnInit {\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\n @ViewChild(MatSort, { static: true }) sort: MatSort;\n @ViewChild('allSelected', { static: true }) private allSelected: MatOption;\n\n uamForm: FormGroup;\n spinner: boolean;\n userId: string;\n displayedColumns: string[] = ['Select', 'WorkshopCode', 'WorkshopName', 'WorkshopAddress'];\n searchUserID: string;\n workshopLength: number = 0;\n sizePage: number;\n userDetails: any;\n submitted: boolean = false;\n checkDetails: any;\n userName: string = '';\n emailId: string = '';\n contactNumber: string = '';\n defaultDropDown = [];\n dealerCompany = [];\n roleValue: any;\n dataSource: any;\n selection: any;\n verticalValue: any;\n cardShow: boolean = false;\n checkboxState: boolean = false;\n regionValue: any;\n dealerCompanyValue = [];\n selectedRole: any = '';\n selectedVertical: string = '';\n selectedRegion: string = '';\n selectedDealerCompany: string;\n selectedWorkshopCode: any[] = [];\n selectedWorkshop: any[] = [];\n selectedDealer:any;\n delearCompanyList: string[] = [];\n delearCompanyListCopy: string[] = [];\n dealerCode: string[] = [];\n\n status: any[] = [\n { filterId: 'true', filterData: 'Active' },\n { filterId: 'false', filterData: 'Inactive' },\n ];\n\n constructor(private commonService: CommonService, private toastr: ToastrService, private fb: FormBuilder, ) { }\n\n ngOnInit() {\n this.userId = localStorage.getItem('userId');\n this.getDefaultDropDown();\n if (localStorage.getItem('workshopPageSize') != null || localStorage.getItem('workshopPageSize') != undefined) {\n let sizePage = Number(localStorage.getItem('workshopPageSize'));\n this.sizePage = (sizePage && sizePage != NaN) ? sizePage : 10;\n } else {\n this.sizePage = 10;\n }\n\n this.buildUamForm();\n }\n\n /**\n * Name: buildUamForm\n * purpose: To create uam data form\n */\n buildUamForm(): void {\n this.uamForm = this.fb.group({\n userName: [this.userName, Validators.required],\n userEmail: [this.emailId, [Validators.required, Validators.email]],\n userNumber: [this.contactNumber, [Validators.minLength(10), Validators.maxLength(10)]],\n userStatus: [this.status],\n userRole: [this.selectedRole],\n userVertical: [this.selectedVertical],\n userRegion: [this.selectedRegion],\n userDealerCompany: [''],\n selectedDealer:['']\n });\n }\n\n /**\n * Name: hasUamDataError\n * purpose: To check if uam form has any error\n * @param {any} control - form control\n * @return {boolean} flag to determine if form is valid.\n */\n hasUamDataError(control: any): boolean {\n return (\n control &&\n (this.submitted || control.touched || control.dirty) &&\n !control.valid\n );\n }\n\n /**\n * Name: getUserDetails\n * purpose: To get cre uam data form\n */\n getUserDetails(): void {\n this.spinner = true;\n this.commonService.getDetails(this.userId, this.searchUserID)\n .subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n this.checkDetails = res['responseData'];\n this.userName = res['responseData'].userdetails.username;\n this.emailId = res['responseData'].userdetails.emailId;\n this.contactNumber = res['responseData'].userdetails.contactNo;\n this.selectedRole = res['responseData'].role[0].filterId;\n this.status = res['responseData'].userdetails.status;\n this.selectedVertical = res['responseData'].vertical[0].filterId;\n this.selectedRegion = (res['responseData'].region.length != 0 ? res['responseData'].region[0].filterId : '');\n this.selectedDealerCompany = (res['responseData'].dealerCompany.length ? res['responseData'].dealerCompany[0].filterId : '');\n this.selectedWorkshopCode = [];\n if (res['responseData'].workShopDetails) {\n res['responseData'].workShopDetails.forEach(element => {\n element.checked = true;\n this.selectedWorkshopCode.push(element.workshopCode);\n });\n }\n\n this.selectedWorkshop = res['responseData'].workShopDetails;\n this.dataSource = new MatTableDataSource(res['responseData'].workShopDetails);\n const initialSelection = res['responseData'].workShopDetails;\n const allowMultiSelect = true;\n this.selection = new SelectionModel(allowMultiSelect, initialSelection);\n this.workshopLength = res['responseData'].workShopDetails && res['responseData'].workShopDetails.length ? res['responseData'].workShopDetails.length : 0;\n this.dataSource.paginator = this.paginator;\n\n this.buildUamForm();\n this.cardShow = true;\n } else {\n this.clear(false);\n this.buildUamForm();\n this.cardShow = true;\n this.toastr.info(res['message'], \"Info\");\n }\n this.spinner = false;\n }, err => {\n this.clear(true);\n this.spinner = false;\n this.cardShow = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /** Whether the number of selected elements matches the total number of rows. */\n isAllSelected() {\n if (this.dataSource && this.dataSource.data) {\n const numSelected = this.selection.selected.length;\n const numRows = this.dataSource.data.length;\n return numSelected === numRows;\n }\n }\n\n /** Selects all rows if they are not all selected; otherwise clear selection. */\n masterToggle() {\n if (this.dataSource && this.dataSource.data) {\n if (this.isAllSelected()) {\n this.dataSource.data.forEach(row => {\n this.selectedWorkshopCode = this.selectedWorkshopCode.filter(item => item != row.workshopCode);\n });\n this.selection.clear();\n } else {\n this.dataSource.data.forEach(row => {\n this.selection.select(row);\n let checkSelection = this.selectedWorkshopCode.indexOf(row.workshopCode);\n if (checkSelection < 0) {\n this.selectedWorkshopCode.push(row.workshopCode);\n }\n });\n }\n }\n }\n\n /**\n * Name: onChange\n * @param {any} element - checkbox element data\n * purpose: To select workshop code\n */\n onChange(element: any): void {\n let checkSelection = this.selection.selected.filter(item => item.workshopCode == element.workshopCode);\n\n if (checkSelection.length) {\n this.selectedWorkshopCode.push(element.workshopCode);\n } else {\n this.selectedWorkshopCode = this.selectedWorkshopCode.filter(item => item != element.workshopCode);\n }\n }\n\n /**\n * Name: clear\n * @param {boolean} searchClear - search clear flag\n * purpose: To clear form data\n */\n clear(searchClear: boolean) {\n if (searchClear) {\n this.searchUserID = '';\n this.cardShow = false;\n }\n this.userName = '';\n this.emailId = '';\n this.contactNumber = '';\n this.selectedRole = '';\n this.selectedVertical = '';\n this.selectedRegion = '';\n this.selectedDealerCompany = '';\n this.dataSource = '';\n this.status = [\n { filterId: 'true', filterData: 'Active' },\n { filterId: 'false', filterData: 'Inactive' },\n ];\n if (this.uamForm) {\n this.uamForm.reset();\n }\n this.selectedWorkshopCode = [];\n this.selectedWorkshop = [];\n this.workshopLength = 0;\n }\n\n /**\n * Name: getDefaultDropDown\n * purpose: To get Default DropDown data\n */\n getDefaultDropDown(): void {\n this.commonService.getDefaultDropDown(this.userId)\n .subscribe(res => {\n if (res['responseCode'] == 0) {\n this.defaultDropDown = res;\n this.roleValue = this.defaultDropDown['responseData'].role;\n this.verticalValue = this.defaultDropDown['responseData'].vertical;\n this.regionValue = this.defaultDropDown['responseData'].region;\n this.dealerCompanyValue = this.defaultDropDown['responseData'].dealerCompany;\n this.dealerCompanyValue.forEach(element => {\n this.delearCompanyList.push(element.filterId);\n })\n this.delearCompanyListCopy = this.delearCompanyList;\n } else {\n this.toastr.error(res['message'], \"Error\");\n }\n this.spinner = false;\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: selectDropDown\n * @param {string} region - selected region\n * purpose: To get dealer company data\n */\n selectDropDown(region: string): void {\n this.delearCompanyList = [];\n this.spinner = true;\n this.commonService.getDealerCompany(this.userId, region).subscribe(res => {\n if (res['responseCode'] == 0) {\n this.uamForm.controls['userDealerCompany'].setValue(\"\");\n this.dealerCompany = res;\n this.dealerCompanyValue = this.dealerCompany['responseData'];\n this.dealerCompanyValue.forEach(element => {\n this.delearCompanyList.push(element.filterId);\n });\n this.delearCompanyListCopy = this.delearCompanyList;\n } else {\n this.toastr.error(res['message'], \"Error\");\n }\n this.spinner = false;\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: saveUserData\n * purpose: To save updated info\n */\n saveUserData(): void {\n this.spinner = true;\n let f = this.uamForm;\n this.submitted = true;\n if (f.valid) {\n const userJson: any = {};\n userJson.userId = this.searchUserID;\n userJson.username = f.value.userName || '';\n userJson.email = f.value.userEmail || '';\n userJson.contactNo = f.value.userNumber || '';\n userJson.workshopCode = '';\n\n //this.selectedWorkshopCode = f.value.userDealerCompany;\n this.selectedWorkshopCode.forEach((element, index) => {\n if (index == 0) {\n userJson.workshopCode = element;\n } else if(element != 0) {\n userJson.workshopCode = userJson.workshopCode + \"#\" + element;\n }\n });\n\n userJson.isActive = f.value.userStatus || '';\n if (userJson.isActive == true) {\n userJson.isActive = \"Y\"\n } else {\n userJson.isActive = \"N\"\n }\n userJson.role = f.value.userRole || '';\n userJson.veticalId = f.value.userVertical || '';\n this.commonService.saveUserData(userJson).subscribe(data => {\n if (data['responseCode'] == 0) {\n this.toastr.success(data['message'], \"Success\");\n this.clear(true);\n } else {\n this.toastr.error(data['message'], \"Error\");\n }\n this.spinner = false;\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n }\n\n /**\n * Name: tosslePerOne\n * purpose: To select/remove all data in workshop drop down\n */\n tosslePerOne() {\n if (this.allSelected.selected) {\n this.allSelected.deselect();\n return false;\n }\n\n if (this.uamForm.controls.userDealerCompany.value.length == this.delearCompanyList.length) {\n this.allSelected.select();\n }\n }\n\n /**\n * Name: toggleAllSelection\n * purpose: To select/remove all data in workshop drop down\n */\n toggleAllSelection(): void {\n if (this.allSelected.selected) {\n this.uamForm.controls.userDealerCompany.patchValue([...this.delearCompanyList, 0]);\n } else {\n this.uamForm.controls.userDealerCompany.patchValue([]);\n }\n }\n\n /**\n * Name: getExportExcel\n * purpose: To download excel report\n */\n getExportExcel(): void {\n this.spinner = true;\n let time = new Date().getTime();\n let fileName = \"VECV_Service Reminder Module_User_Role_Master_\" + time;\n this.commonService.getExportExcel()\n .subscribe(fileData => {\n this.spinner = false;\n if (fileData) {\n const blob: any = new Blob([fileData], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\n let link = document.createElement(\"a\");\n if (link.download !== undefined) {\n let url = URL.createObjectURL(blob);\n link.setAttribute(\"href\", url);\n link.setAttribute(\"download\", fileName);\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n }\n }, err => {\n this.spinner = false;\n });\n }\n\n /**\n * Name: getWorkshopDetails\n * @param {string} selectedRegion - selected region\n * @param {string} selectedDealerCompany - selected region\n * purpose: To get dealer workshop data\n */\n getWorkshopDetails(selectedRegion: string, selectedDealerCompany: string): void {\n if (this.allSelected.selected || !selectedDealerCompany) {\n this.selectedDealerCompany = 'ALL';\n } else {\n this.selectedDealerCompany = selectedDealerCompany;\n }\n\n if (!selectedRegion) {\n selectedRegion = 'ALL';\n }\n\n this.commonService.getWorkshop(this.userId, selectedRegion, this.selectedDealerCompany)\n .subscribe(res => {\n if (res['responseCode'] == 0) {\n let selectedSection = [];\n res['responseData'].forEach(element => {\n element.checked = false;\n this.selectedWorkshop.forEach(workshopData => {\n if (element.workshopCode == workshopData.workshopCode) {\n element.checked = true;\n }\n });\n\n this.selectedWorkshopCode.forEach(workshopCode => {\n if (element.workshopCode == workshopCode) {\n element.checked = true;\n selectedSection.push(element);\n }\n });\n });\n\n this.dataSource = new MatTableDataSource(res['responseData']);\n const initialSelection = selectedSection;\n const allowMultiSelect = true;\n this.selection = new SelectionModel(allowMultiSelect, initialSelection);\n this.sort.direction = '';\n this.dataSource.sort = this.sort;\n this.workshopLength = res['responseData'].length;\n this.dataSource.paginator = this.paginator;\n } else {\n this.toastr.error(res['message'], \"Error\");\n }\n this.spinner = false;\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n onKey() : void {\n this.delearCompanyList = this.delearCompanyListCopy;\n this.dealerCode = [];\n this.selectedDealer = this.uamForm.controls.selectedDealer.value;\n this.selectedDealer = this.selectedDealer.toString();\n this.dealerCode = this.delearCompanyList.filter(item =>\n item.includes(this.selectedDealer.toLowerCase())\n );\n if(this.dealerCode.length > 0){\n this.closeInput();\n }\n this.delearCompanyList = [];\n this.delearCompanyList = this.dealerCode;\n }\n\n closeInput() : void {\n if(this.dealerCode.length == 0) {\n //this.selectedDealer = '';\n this.uamForm.controls['selectedDealer'].setValue(\"\");\n this.delearCompanyList = this.delearCompanyListCopy;\n }\n }\n}\n","export default \".working-area {\\n margin-top: 115px;\\n}\\n\\ntable {\\n width: 100%;\\n}\\n\\n.calling-table tr {\\n cursor: pointer;\\n}\\n\\n.table-head-call {\\n background: none;\\n padding-top: 12px;\\n}\\n\\n.button-margin {\\n margin-left: 10px;\\n}\\n\\n.callList {\\n font: Bold 20px Roboto;\\n letter-spacing: 0px;\\n color: #484848;\\n opacity: 1;\\n}\\n\\n.close-con {\\n font-size: 18px;\\n cursor: pointer;\\n top: 3px;\\n right: 1px;\\n position: absolute !important;\\n z-index: 10;\\n opacity: 1;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-infix {\\n border: 1px solid lightgray;\\n border-radius: 5px;\\n background: white;\\n padding: 0;\\n height: 20px;\\n}\\n\\n.filter1 ::ng-deep .mat-select {\\n padding: 3px 0px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-trigger {\\n padding-left: 8px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-value {\\n width: 89%;\\n}\\n\\n.filter1 ::ng-deep .mat-button {\\n font-size: 12px;\\n font: white;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label-wrapper {\\n top: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-underline {\\n display: none;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label {\\n top: 0;\\n margin-top: 4px !important;\\n padding-left: 5px;\\n}\\n\\n.filter-label {\\n font: Bold 14px Roboto;\\n letter-spacing: 0px;\\n color: #3c3c3c;\\n opacity: 1;\\n margin-bottom: 5px;\\n}\\n\\n.refesh-icon {\\n float: right;\\n margin-bottom: -30px;\\n margin-right: 20px;\\n margin-top: 30px;\\n cursor: pointer;\\n}\\n\\n.coloredRow {\\n background: #ffff99;\\n}\\n\\n.coloredGreenRow {\\n background: #90ee90;\\n}\\n\\n.mat-dialog-title {\\n background-color: darkgray;\\n}\\n\\n.callList-right {\\n font-size: 11px;\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.columnHeader {\\n font: Bold 12px Roboto;\\n letter-spacing: 0px;\\n color: #333333;\\n text-transform: capitalize;\\n}\\n\\n.lost {\\n color: #e64243;\\n position: absolute;\\n left: 10px;\\n font-size: 10px;\\n top: 38%;\\n}\\n\\n.inbound {\\n color: #2e3668;\\n position: absolute;\\n left: 0px;\\n font-size: 10px;\\n top: 38%;\\n}\\n\\n.columnvalue {\\n font-size: 14px;\\n position: relative;\\n}\\n\\n.filter1 {\\n font-size: 12px;\\n}\\n\\n.filterButton {\\n color: white !important;\\n background-color: #00457D;\\n height: 20px;\\n line-height: 10px;\\n margin-bottom: 1px;\\n}\\n\\n.filterdiv {\\n align-items: center;\\n}\\n\\n.serviceDueDate {\\n width: 10% !important;\\n}\\n\\n.followUp {\\n width: 9% !important;\\n}\\n\\ntd.mat-cell,\\ntd.mat-footer-cell,\\nth.mat-header-cell {\\n padding: 3px;\\n border-style: solid none none solid;\\n border-width: 0.1px;\\n border-color: lightgray;\\n}\\n\\n.table-border.mat-table {\\n border-style: none solid solid none;\\n border-color: lightgray;\\n}\\n\\nth.mat-header-cell {\\n background-color: #d9d9d9;\\n}\\n\\n.filter2 {\\n width: auto;\\n text-transform: capitalize;\\n}\\n\\n.call-stats-card {\\n .mat-card-title {\\n margin-bottom: 0px;\\n }\\n .call-stats {\\n font-size: 11px;\\n color: #ffffff;\\n i {\\n color: #2e3668;\\n font-size: 11px;\\n }\\n }\\n .call-stats-title {\\n font-size: 20px;\\n color: #484848;\\n }\\n}\\n\\n.call-stats-card1 {\\n padding-top: 0px;\\n}\\n\\n.call-stats-card-border1 {\\n border-style: solid solid none solid;\\n border-width: 1px;\\n border-radius: 0%;\\n border-color: lightgray;\\n}\\n\\n.call-stats-card-border2 {\\n border-style: solid solid solid solid;\\n border-width: 1px;\\n border-radius: 0%;\\n margin-bottom: 15px;\\n border-color: lightgray;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-group {\\n border-radius: 0px;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle {\\n background-color: #ffffff;\\n color: #5482BC;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-checked {\\n background-color: #5482BC;\\n color: #ffffff;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-label-content {\\n line-height: 30px;\\n font: Regular 14px Roboto;\\n letter-spacing: 0px;\\n}\\n\\n.toggle-btn-grp ::ng-deep .refresh-btn.mat-button {\\n min-width: auto;\\n}\\n\\n.refresh-btn {\\n background-color: #ffffff;\\n color: #e64243;\\n border: 1px solid #e64243;\\n border-radius: 0px;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-flex {\\n border: 1px solid lightgray;\\n border-radius: 3px;\\n background: white;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-label {\\n padding-left: 10px;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-infix {\\n border-top: none;\\n}\\n\\n.textboxService ::ng-deep label.mat-form-field-label {\\n margin-top: 8px !important;\\n}\\n\\n.textboxService ::ng-deep input.mat-input-element {\\n margin-top: 0.6em;\\n margin-left: 10px;\\n}\\n\\n.search-icon {\\n position: absolute;\\n right: 15px;\\n top: 15px;\\n}\\n\\n.backColor {\\n background-color: #00457D !important;\\n font-size: 12px;\\n}\\n\\n.box-size {\\n margin-left: 10px;\\n margin-top: 7px;\\n width: 28px;\\n height: 28px;\\n color: #ffffff !important;\\n}\\n\\n.backColor1 {\\n background-color: #5482BC !important;\\n font-size: 12px;\\n}\\n\\n.call-stats-value {\\n margin-left: 50px;\\n font-size: 18px;\\n}\\n\\n.call-stats-value1 {\\n margin-left: 30px;\\n font-size: 18px;\\n}\\n\\n.info-circle-size {\\n font-size: 12px !important;\\n color: #ffffff !important;\\n}\\n\\n.flex-set {\\n margin-top: 7px;\\n margin-left: 62px;\\n //text-align: center;\\n}\\n\\n.flex-set1 {\\n margin-top: 7px;\\n margin-left: 73px;\\n}\\n\\n.dueDateIcon {\\n height: 9px;\\n width: 11px;\\n}\\n\\n.filter3 {\\n width: 200px;\\n margin-right: 30px;\\n font-size: 12px;\\n}\\n\\n.paginator ::ng-deep .mat-form-field-infix {\\n height: 18px !important;\\n padding-bottom: 0px;\\n}\\n\\n.filter-label {\\n font: 12px Roboto;\\n letter-spacing: 0px;\\n color: #3c3c3c;\\n opacity: 1;\\n margin-bottom: 3px;\\n padding: 1px 0px 0px;\\n}\\n\\n.calender {\\n position: relative;\\n background: white;\\n input {\\n width: 180px;\\n border: 1px solid lightgray !important;\\n border-radius: 5px;\\n font-size: 12px;\\n height: 22px;\\n padding-left: 5px;\\n }\\n}\\n\\n.calander-btn {\\n position: absolute;\\n right: 7px;\\n top: 4px;\\n}\\n\\n.form-field {\\n label {\\n font-weight: 500;\\n margin-bottom: 5px;\\n }\\n input {\\n padding: 6px;\\n }\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50L3dvcmtzaG9wLW1hbmFnZXItY2FsbGluZy1saXN0L3dvcmtzaG9wLW1hbmFnZXItY2FsbGluZy1saXN0LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxXQUFXO0FBQ2Y7O0FBRUE7SUFDSSxlQUFlO0FBQ25COztBQUVBO0lBQ0ksZ0JBQWdCO0lBQ2hCLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLHNCQUFzQjtJQUN0QixtQkFBbUI7SUFDbkIsY0FBYztJQUNkLFVBQVU7QUFDZDs7QUFFQTtJQUNJLGVBQWU7SUFDZixlQUFlO0lBQ2YsUUFBUTtJQUNSLFVBQVU7SUFDViw2QkFBNkI7SUFDN0IsV0FBVztJQUNYLFVBQVU7QUFDZDs7QUFFQTtJQUNJLDJCQUEyQjtJQUMzQixrQkFBa0I7SUFDbEIsaUJBQWlCO0lBQ2pCLFVBQVU7SUFDVixZQUFZO0FBQ2hCOztBQUVBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0ksVUFBVTtBQUNkOztBQUVBO0lBQ0ksZUFBZTtJQUNmLFdBQVc7QUFDZjs7QUFFQTtJQUNJLE1BQU07SUFDTixjQUFjO0lBQ2QsaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0ksaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0ksYUFBYTtBQUNqQjs7QUFFQTtJQUNJLE1BQU07SUFDTiwwQkFBMEI7SUFDMUIsaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0ksc0JBQXNCO0lBQ3RCLG1CQUFtQjtJQUNuQixjQUFjO0lBQ2QsVUFBVTtJQUNWLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLFlBQVk7SUFDWixvQkFBb0I7SUFDcEIsa0JBQWtCO0lBQ2xCLGdCQUFnQjtJQUNoQixlQUFlO0FBQ25COztBQUVBO0lBQ0ksbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksbUJBQW1C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Q25CLGNBQWM7SUFDZCxVQUFVO0lBQ1Ysa0JBQWtCO0lBQ2xCLG9CQUFvQjtBQUN4Qjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixpQkFBaUI7SUFDakI7UUFDSSxZQUFZO1FBQ1osc0NBQXNDO1FBQ3RDLGtCQUFrQjtRQUNsQixlQUFlO1FBQ2YsWUFBWTtRQUNaLGlCQUFpQjtJQUNyQjtBQUNKOztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLFVBQVU7SUFDVixRQUFRO0FBQ1o7O0FBRUE7SUFDSTtRQUNJLGdCQUFnQjtRQUNoQixrQkFBa0I7SUFDdEI7SUFDQTtRQUNJLFlBQVk7SUFDaEI7QUFDSiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudC93b3Jrc2hvcC1tYW5hZ2VyLWNhbGxpbmctbGlzdC93b3Jrc2hvcC1tYW5hZ2VyLWNhbGxpbmctbGlzdC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLndvcmtpbmctYXJlYSB7XG4gICAgbWFyZ2luLXRvcDogMTE1cHg7XG59XG5cbnRhYmxlIHtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLmNhbGxpbmctdGFibGUgdHIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnRhYmxlLWhlYWQtY2FsbCB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBwYWRkaW5nLXRvcDogMTJweDtcbn1cblxuLmJ1dHRvbi1tYXJnaW4ge1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuXG4uY2FsbExpc3Qge1xuICAgIGZvbnQ6IEJvbGQgMjBweCBSb2JvdG87XG4gICAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgICBjb2xvcjogIzQ4NDg0ODtcbiAgICBvcGFjaXR5OiAxO1xufVxuXG4uY2xvc2UtY29uIHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRvcDogM3B4O1xuICAgIHJpZ2h0OiAxcHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gICAgei1pbmRleDogMTA7XG4gICAgb3BhY2l0eTogMTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGhlaWdodDogMjBweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0IHtcbiAgICBwYWRkaW5nOiAzcHggMHB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gICAgcGFkZGluZy1sZWZ0OiA4cHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gICAgd2lkdGg6IDg5JTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtYnV0dG9uIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udDogd2hpdGU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gICAgdG9wOiAwO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgdG9wOiAwO1xuICAgIG1hcmdpbi10b3A6IDRweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctbGVmdDogNXB4O1xufVxuXG4uZmlsdGVyLWxhYmVsIHtcbiAgICBmb250OiBCb2xkIDE0cHggUm9ib3RvO1xuICAgIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gICAgY29sb3I6ICMzYzNjM2M7XG4gICAgb3BhY2l0eTogMTtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG5cbi5yZWZlc2gtaWNvbiB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbi1ib3R0b206IC0zMHB4O1xuICAgIG1hcmdpbi1yaWdodDogMjBweDtcbiAgICBtYXJnaW4tdG9wOiAzMHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmNvbG9yZWRSb3cge1xuICAgIGJhY2tncm91bmQ6ICNmZmZmOTk7XG59XG5cbi5jb2xvcmVkR3JlZW5Sb3cge1xuICAgIGJhY2tncm91bmQ6ICM5MGVlOTA7XG59XG5cbi5tYXQtZGlhbG9nLXRpdGxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZ3JheTtcbn1cblxuLmNhbGxMaXN0LXJpZ2h0IHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG5cbi5jb2x1bW5IZWFkZXIge1xuICAgIGZvbnQ6IEJvbGQgMTJweCBSb2JvdG87XG4gICAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgICBjb2xvcjogIzMzMzMzMztcbiAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbn1cblxuLmxvc3Qge1xuICAgIGNvbG9yOiAjZTY0MjQzO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICB0b3A6IDM4JTtcbn1cblxuLmluYm91bmQge1xuICAgIGNvbG9yOiAjMmUzNjY4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwcHg7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIHRvcDogMzglO1xufVxuXG4uY29sdW1udmFsdWUge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5maWx0ZXIxIHtcbiAgICBmb250LXNpemU6IDEycHg7XG59XG5cbi5maWx0ZXJCdXR0b24ge1xuICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0Q7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDFweDtcbn1cblxuLmZpbHRlcmRpdiB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLnNlcnZpY2VEdWVEYXRlIHtcbiAgICB3aWR0aDogMTAlICFpbXBvcnRhbnQ7XG59XG5cbi5mb2xsb3dVcCB7XG4gICAgd2lkdGg6IDklICFpbXBvcnRhbnQ7XG59XG5cbnRkLm1hdC1jZWxsLFxudGQubWF0LWZvb3Rlci1jZWxsLFxudGgubWF0LWhlYWRlci1jZWxsIHtcbiAgICBwYWRkaW5nOiAzcHg7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZCBub25lIG5vbmUgc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAwLjFweDtcbiAgICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxuLnRhYmxlLWJvcmRlci5tYXQtdGFibGUge1xuICAgIGJvcmRlci1zdHlsZTogbm9uZSBzb2xpZCBzb2xpZCBub25lO1xuICAgIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG50aC5tYXQtaGVhZGVyLWNlbGwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkOWQ5ZDk7XG59XG5cbi5maWx0ZXIyIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbn1cblxuLmNhbGwtc3RhdHMtY2FyZCB7XG4gICAgLm1hdC1jYXJkLXRpdGxlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIH1cbiAgICAuY2FsbC1zdGF0cyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIGkge1xuICAgICAgICAgICAgY29sb3I6ICMyZTM2Njg7XG4gICAgICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmNhbGwtc3RhdHMtdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgIGNvbG9yOiAjNDg0ODQ4O1xuICAgIH1cbn1cblxuLmNhbGwtc3RhdHMtY2FyZDEge1xuICAgIHBhZGRpbmctdG9wOiAwcHg7XG59XG5cbi5jYWxsLXN0YXRzLWNhcmQtYm9yZGVyMSB7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZCBzb2xpZCBub25lIHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDAlO1xuICAgIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4uY2FsbC1zdGF0cy1jYXJkLWJvcmRlcjIge1xuICAgIGJvcmRlci1zdHlsZTogc29saWQgc29saWQgc29saWQgc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAge1xuICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgY29sb3I6ICM1NDgyQkM7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM1NDgyQkM7XG4gICAgY29sb3I6ICNmZmZmZmY7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWxhYmVsLWNvbnRlbnQge1xuICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgIGZvbnQ6IFJlZ3VsYXIgMTRweCBSb2JvdG87XG4gICAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAucmVmcmVzaC1idG4ubWF0LWJ1dHRvbiB7XG4gICAgbWluLXdpZHRoOiBhdXRvO1xufVxuXG4ucmVmcmVzaC1idG4ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgY29sb3I6ICNlNjQyNDM7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2U2NDI0MztcbiAgICBib3JkZXItcmFkaXVzOiAwcHg7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWZsZXgge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICBib3JkZXItdG9wOiBub25lO1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIGxhYmVsLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICBtYXJnaW4tdG9wOiA4cHggIWltcG9ydGFudDtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCBpbnB1dC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gICAgbWFyZ2luLXRvcDogMC42ZW07XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbi5zZWFyY2gtaWNvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAxNXB4O1xuICAgIHRvcDogMTVweDtcbn1cblxuLmJhY2tDb2xvciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RCAhaW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmJveC1zaXplIHtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICBtYXJnaW4tdG9wOiA3cHg7XG4gICAgd2lkdGg6IDI4cHg7XG4gICAgaGVpZ2h0OiAyOHB4O1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbi5iYWNrQ29sb3IxIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTQ4MkJDICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uY2FsbC1zdGF0cy12YWx1ZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwcHg7XG4gICAgZm9udC1zaXplOiAxOHB4O1xufVxuXG4uY2FsbC1zdGF0cy12YWx1ZTEge1xuICAgIG1hcmdpbi1sZWZ0OiAzMHB4O1xuICAgIGZvbnQtc2l6ZTogMThweDtcbn1cblxuLmluZm8tY2lyY2xlLXNpemUge1xuICAgIGZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbi5mbGV4LXNldCB7XG4gICAgbWFyZ2luLXRvcDogN3B4O1xuICAgIG1hcmdpbi1sZWZ0OiA2MnB4O1xuICAgIC8vdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uZmxleC1zZXQxIHtcbiAgICBtYXJnaW4tdG9wOiA3cHg7XG4gICAgbWFyZ2luLWxlZnQ6IDczcHg7XG59XG5cbi5kdWVEYXRlSWNvbiB7XG4gICAgaGVpZ2h0OiA5cHg7XG4gICAgd2lkdGg6IDExcHg7XG59XG5cbi5maWx0ZXIzIHtcbiAgICB3aWR0aDogMjAwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAzMHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLnBhZ2luYXRvciA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICBoZWlnaHQ6IDE4cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMHB4O1xufVxuXG4uZmlsdGVyLWxhYmVsIHtcbiAgICBmb250OiAxMnB4IFJvYm90bztcbiAgICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICAgIGNvbG9yOiAjM2MzYzNjO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICAgIHBhZGRpbmc6IDFweCAwcHggMHB4O1xufVxuXG4uY2FsZW5kZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBpbnB1dCB7XG4gICAgICAgIHdpZHRoOiAxODBweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5ICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBoZWlnaHQ6IDIycHg7XG4gICAgICAgIHBhZGRpbmctbGVmdDogNXB4O1xuICAgIH1cbn1cblxuLmNhbGFuZGVyLWJ0biB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiA3cHg7XG4gICAgdG9wOiA0cHg7XG59XG5cbi5mb3JtLWZpZWxkIHtcbiAgICBsYWJlbCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICB9XG4gICAgaW5wdXQge1xuICAgICAgICBwYWRkaW5nOiA2cHg7XG4gICAgfVxufVxuIl19 */\"","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { CommonService } from '../../core/service/common-service/common.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { wmCallList } from './wmCallList';\nimport { MatSort } from '@angular/material/sort';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatDialog, MatDialogConfig } from '@angular/material';\nimport { openLostCustomerLeadUpdateDialog } from 'src/app/modal/lost-customer-lead-update-dialog/lost-customer-lead-update-dialog.component';\n\n\n@Component({\n\tselector: 'app-workshop-manager-calling-list',\n\ttemplateUrl: './workshop-manager-calling-list.component.html',\n\tstyleUrls: [ './workshop-manager-calling-list.component.css' ]\n})\nexport class WorkshopManagerCallingListComponent implements OnInit {\n\t@ViewChild(MatSort, { static: true })\n\tsort: MatSort;\n\t@ViewChild(MatPaginator, { static: true })\n\tpaginator: MatPaginator;\n\n\tdisplayedColumns: string[] = [\n\t\t'customerName',\n\t\t'vin',\n\t\t'callType',\n\t\t'callStatus',\n\t\t'leadClosureResponse',\n\t\t'leadRemovalDate',\n\t\t'custTel',\n\t\t'disengageReason',\n\t\t'proposal',\n\t\t'visitProposal'\n\t];\n\n\tspinner: boolean;\n\tdataSource: any;\n\tuserId: string;\n\tuserInfo: any;\n\tcountryCode: string;\n\tlistSize: number = 0;\n\tuniqueRequest = new Set();\n\tuniqueSourceId = new Set();\n\tcustomerCode: any;\n\tvin: any;\n\tleadStatus: any;\n\tshowLeadDailog: any=false;\n\tpageSize: number\n\n\tconstructor(private commonService: CommonService, private toastr: ToastrService, public dialog: MatDialog) {}\n\n\tngOnInit() {\n\t\tthis.userId = localStorage.getItem('userId');\n\t\tthis.countryCode = localStorage.getItem('countryCode');\n\t\tthis.applyfilter();\n\n\t\tif (localStorage.getItem('WMcallListPageSize') != null || localStorage.getItem('WMcallListPageSize') != undefined) {\n\t\t\tlet pagesize = Number(localStorage.getItem('callListPageSize'));\n\t\t\tthis.pageSize = (pagesize && pagesize != NaN) ? pagesize : 50;\n\t\t } else {\n\t\t\tthis.pageSize = 50;\n\t\t }\n\t}\n\n\t/**\n * Name: searchfilter\n * purpose: To apply filter on datagrid\n */\n\tsearchfilter(filterValue: string): void {\n\t\tfilterValue = filterValue.trim(); // Remove whitespace\n\t\tfilterValue = filterValue.toLowerCase(); // Datasource defaults to lowercase matches\n\t\tthis.dataSource.filter = filterValue;\n\t}\n\n\t/**\n * Name: applyfilter\n * purpose: To apply filter on call list data\n */\n\tapplyfilter(): void {\n\t\tthis.spinner = true;\n\t\tthis.dataSource = '';\n\n\t\tthis.commonService.fetchWmCloseLeads(this.userId).subscribe(\n\t\t\t(res) => {\n\t\t\t\tif (res['responseCode'] == 0 && res['responseData'] != undefined) {\n\t\t\t\t\tlet response = res['responseData'];\n\t\t\t\t\tthis.listSize = response.length;\n\t\t\t\t\t//init data table and shorting\n\t\t\t\t\tthis.dataSource = new MatTableDataSource(response);\n\t\t\t\t\tthis.sort.direction = '';\n\t\t\t\t\tthis.dataSource.sort = this.sort;\n\t\t\t\t\tthis.dataSource.sortingDataAccessor = (data, header) => data[header];\n\t\t\t\t\tthis.dataSource.paginator = this.paginator;\n\t\t\t\t\tthis.filterData();\n\t\t\t\t\tthis.spinner = false;\n\t\t\t\t} else {\n\t\t\t\t\tthis.spinner = false;\n\t\t\t\t\tthis.toastr.error(res['message'], 'Error');\n\t\t\t\t\t// this.callToggleStatus = true;\n\t\t\t\t}\n\t\t\t},\n\t\t\t(err) => {\n\t\t\t\tthis.spinner = false;\n\t\t\t\tthis.toastr.error('Something went wrong, Please try again.', 'Error');\n\t\t\t\t// this.callToggleStatus = true;\n\t\t\t}\n\t\t);\n\t}\n\n\t/**\n * Name: filterData\n * purpose: To filter call list data\n */\n\tfilterData(): void {\n\t\tthis.dataSource.filteredData.forEach((element) => {\n\t\t\tthis.uniqueRequest.add(element.requestStatus);\n\t\t\tthis.uniqueSourceId.add(element.sourceId);\n\t\t});\n\t}\n\n\tselectCustomer(row) {\n\t\tthis.customerCode = row.customerCode;\n\t\tthis.vin = row.vin;\n\t\tthis.showLeadDailog=true;\n\t\topenLostCustomerLeadUpdateDialog(this.dialog, this.customerCode).subscribe(val=>{\n if(val == -1){\n\t\t\tthis.applyfilter();\n\t\t}\n\t\t});\n\t}\n\n\t/**\n * Name: setPageData\n * purpose: To set pagesize for table\n */\n\tsetPageData(event) {\n\t\tlet size = event.pageSize.toString();\n\t\tlocalStorage.setItem('WMcallListPageSize', size);\n\t }\n}\n\n\n","export default \".working-area {\\n margin-top: 115px;\\n}\\n\\ntable {\\n width: 100%;\\n}\\n\\n.calling-table tr {\\n cursor: pointer;\\n}\\n\\n.table-head-call {\\n background: none;\\n padding-top: 12px;\\n}\\n\\n.button-margin {\\n margin-left: 10px;\\n}\\n\\n.callList {\\n font: Bold 20px Roboto;\\n letter-spacing: 0px;\\n color: #484848;\\n opacity: 1;\\n}\\n\\n.close-con {\\n font-size: 18px;\\n cursor: pointer;\\n top: 3px;\\n right: 1px;\\n position: absolute !important;\\n z-index: 10;\\n opacity: 1;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-infix {\\n border: 1px solid lightgray;\\n border-radius: 5px;\\n background: white;\\n padding: 0;\\n height: 20px;\\n}\\n\\n.filter1 ::ng-deep .mat-select {\\n padding: 3px 0px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-trigger {\\n padding-left: 8px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-value {\\n width: 89%;\\n}\\n\\n.filter1 ::ng-deep .mat-button {\\n font-size: 12px;\\n font: white;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label-wrapper {\\n top: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-underline {\\n display: none;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label {\\n top: 0;\\n margin-top: 4px !important;\\n padding-left: 5px;\\n}\\n\\n.filter-label {\\n font: Bold 14px Roboto;\\n letter-spacing: 0px;\\n color: #3c3c3c;\\n opacity: 1;\\n margin-bottom: 5px;\\n}\\n\\n.refesh-icon {\\n float: right;\\n margin-bottom: -30px;\\n margin-right: 20px;\\n margin-top: 30px;\\n cursor: pointer;\\n}\\n\\n.coloredRow {\\n background: #ffff99;\\n}\\n\\n.coloredGreenRow {\\n background: #90ee90;\\n}\\n\\n.mat-dialog-title {\\n background-color: darkgray;\\n}\\n\\n.callList-right {\\n font-size: 11px;\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.columnHeader {\\n font: Bold 12px Roboto;\\n letter-spacing: 0px;\\n color: #333333;\\n text-transform: capitalize;\\n}\\n\\n.lost {\\n color: #e64243;\\n position: absolute;\\n left: 10px;\\n font-size: 10px;\\n top: 38%;\\n}\\n\\n.inbound {\\n color: #2e3668;\\n position: absolute;\\n left: 0px;\\n font-size: 10px;\\n top: 38%;\\n}\\n\\n.columnvalue {\\n font-size: 14px;\\n position: relative;\\n}\\n\\n.filter1 {\\n font-size: 12px;\\n}\\n\\n.filterButton {\\n color: white !important;\\n background-color: #00457D;\\n height: 20px;\\n line-height: 10px;\\n margin-bottom: 1px;\\n}\\n\\n.filterdiv {\\n align-items: center;\\n}\\n\\n.serviceDueDate {\\n width: 10% !important;\\n}\\n\\n.followUp {\\n width: 9% !important;\\n}\\n\\ntd.mat-cell,\\ntd.mat-footer-cell,\\nth.mat-header-cell {\\n padding: 3px;\\n border-style: solid none none solid;\\n border-width: 0.1px;\\n border-color: lightgray;\\n}\\n\\n.table-border.mat-table {\\n border-style: none solid solid none;\\n border-color: lightgray;\\n}\\n\\nth.mat-header-cell {\\n background-color: #d9d9d9;\\n}\\n\\n.filter2 {\\n width: auto;\\n text-transform: capitalize;\\n}\\n\\n.call-stats-card .mat-card-title {\\n margin-bottom: 0px;\\n}\\n\\n.call-stats-card .call-stats {\\n font-size: 11px;\\n color: #ffffff;\\n}\\n\\n.call-stats-card .call-stats i {\\n color: #2e3668;\\n font-size: 11px;\\n}\\n\\n.call-stats-card .call-stats-title {\\n font-size: 20px;\\n color: #484848;\\n}\\n\\n.call-stats-card1 {\\n padding-top: 0px;\\n}\\n\\n.call-stats-card-border1 {\\n border-style: solid solid none solid;\\n border-width: 1px;\\n border-radius: 0%;\\n border-color: lightgray;\\n}\\n\\n.call-stats-card-border2 {\\n border-style: solid solid solid solid;\\n border-width: 1px;\\n border-radius: 0%;\\n margin-bottom: 15px;\\n border-color: lightgray;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-group {\\n border-radius: 0px;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle {\\n background-color: #ffffff;\\n color: #5482BC;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-checked {\\n background-color: #5482BC;\\n color: #ffffff;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-label-content {\\n line-height: 30px;\\n font: Regular 14px Roboto;\\n letter-spacing: 0px;\\n}\\n\\n.toggle-btn-grp ::ng-deep .refresh-btn.mat-button {\\n min-width: auto;\\n}\\n\\n.refresh-btn {\\n background-color: #ffffff;\\n color: #e64243;\\n border: 1px solid #e64243;\\n border-radius: 0px;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-flex {\\n border: 1px solid lightgray;\\n border-radius: 3px;\\n background: white;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-label {\\n padding-left: 10px;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-infix {\\n border-top: none;\\n}\\n\\n.textboxService ::ng-deep label.mat-form-field-label {\\n margin-top: 8px !important;\\n}\\n\\n.textboxService ::ng-deep input.mat-input-element {\\n margin-top: 0.6em;\\n margin-left: 10px;\\n}\\n\\n.search-icon {\\n position: absolute;\\n right: 15px;\\n top: 15px;\\n}\\n\\n.backColor {\\n background-color: #00457D !important;\\n font-size: 12px;\\n}\\n\\n.box-size {\\n margin-left: 10px;\\n margin-top: 7px;\\n width: 28px;\\n height: 28px;\\n color: #ffffff !important;\\n}\\n\\n.backColor1 {\\n background-color: #5482BC !important;\\n font-size: 12px;\\n}\\n\\n.call-stats-value {\\n margin-left: 50px;\\n font-size: 18px;\\n}\\n\\n.call-stats-value1 {\\n margin-left: 30px;\\n font-size: 18px;\\n}\\n\\n.info-circle-size {\\n font-size: 12px !important;\\n color: #ffffff !important;\\n}\\n\\n.flex-set {\\n margin-top: 7px;\\n margin-left: 62px;\\n}\\n\\n.flex-set1 {\\n margin-top: 7px;\\n margin-left: 73px;\\n}\\n\\n.dueDateIcon {\\n height: 9px;\\n width: 11px;\\n}\\n\\n.filter3 {\\n width: 200px;\\n margin-right: 30px;\\n font-size: 12px;\\n}\\n\\n.paginator ::ng-deep .mat-form-field-infix {\\n height: 18px !important;\\n padding-bottom: 0px;\\n}\\n\\n.filter-label {\\n font: 12px Roboto;\\n letter-spacing: 0px;\\n color: #3c3c3c;\\n opacity: 1;\\n margin-bottom: 3px;\\n padding: 1px 0px 0px;\\n}\\n\\n.calender {\\n position: relative;\\n background: white;\\n}\\n\\n.calender input {\\n width: 180px;\\n border: 1px solid lightgray !important;\\n border-radius: 5px;\\n font-size: 12px;\\n height: 22px;\\n padding-left: 5px;\\n}\\n\\n.calander-btn {\\n position: absolute;\\n right: 7px;\\n top: 4px;\\n}\\n\\n.form-field label {\\n font-weight: 500;\\n margin-bottom: 5px;\\n}\\n\\n.form-field input {\\n padding: 6px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9jb21wb25lbnQvd29ya3Nob3AtcmVhc3NpZ25tZW50L3dvcmtzaG9wLXJlYXNzaWdubWVudC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50L3dvcmtzaG9wLXJlYXNzaWdubWVudC93b3Jrc2hvcC1yZWFzc2lnbm1lbnQuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxpQkFBQTtBQ0NKOztBREVBO0VBQ0ksV0FBQTtBQ0NKOztBREVBO0VBQ0ksZUFBQTtBQ0NKOztBREVBO0VBQ0ksZ0JBQUE7RUFDQSxpQkFBQTtBQ0NKOztBREVBO0VBQ0ksaUJBQUE7QUNDSjs7QURFQTtFQUNJLHNCQUFBO0VBQ0EsbUJBQUE7RUFDQSxjQUFBO0VBQ0EsVUFBQTtBQ0NKOztBREVBO0VBQ0ksZUFBQTtFQUNBLGVBQUE7RUFDQSxRQUFBO0VBQ0EsVUFBQTtFQUNBLDZCQUFBO0VBQ0EsV0FBQTtFQUNBLFVBQUE7QUNDSjs7QURFQTtFQUNJLDJCQUFBO0VBQ0Esa0JBQUE7RUFDQSxpQkFBQTtFQUNBLFVBQUE7RUFDQSxZQUFBO0FDQ0o7O0FERUE7RUFDSSxnQkFBQTtBQ0NKOztBREVBO0VBQ0ksaUJBQUE7QUNDSjs7QURFQTtFQUNJLFVBQUE7QUNDSjs7QURFQTtFQUNJLGVBQUE7RUFDQSxXQUFBO0FDQ0o7O0FERUE7RUFDSSxNQUFBO0VBQ0EsY0FBQTtFQUNBLGlCQUFBO0FDQ0o7O0FERUE7RUFDSSxpQkFBQTtBQ0NKOztBREVBO0VBQ0ksYUFBQTtBQ0NKOztBREVBO0VBQ0ksTUFBQTtFQUNBLDBCQUFBO0VBQ0EsaUJBQUE7QUNDSjs7QURFQTtFQUNJLHNCQUFBO0VBQ0EsbUJBQUE7RUFDQSxjQUFBO0VBQ0EsVUFBQTtFQUNBLGtCQUFBO0FDQ0o7O0FERUE7RUFDSSxZQUFBO0VBQ0Esb0JBQUE7RUFDQSxrQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZUFBQTtBQ0NKOztBREVBO0VBQ0ksbUJB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QSxpQkFBQTtBQ0RSOztBREtBO0VBQ0ksa0JBQUE7RUFDQSxVQUFBO0VBQ0EsUUFBQTtBQ0ZKOztBRE1JO0VBQ0ksZ0JBQUE7RUFDQSxrQkFBQTtBQ0hSOztBREtJO0VBQ0ksWUFBQTtBQ0hSIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50L3dvcmtzaG9wLXJlYXNzaWdubWVudC93b3Jrc2hvcC1yZWFzc2lnbm1lbnQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIud29ya2luZy1hcmVhIHtcbiAgICBtYXJnaW4tdG9wOiAxMTVweDtcbn1cblxudGFibGUge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4uY2FsbGluZy10YWJsZSB0ciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4udGFibGUtaGVhZC1jYWxsIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIHBhZGRpbmctdG9wOiAxMnB4O1xufVxuXG4uYnV0dG9uLW1hcmdpbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbi5jYWxsTGlzdCB7XG4gICAgZm9udDogQm9sZCAyMHB4IFJvYm90bztcbiAgICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICAgIGNvbG9yOiAjNDg0ODQ4O1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi5jbG9zZS1jb24ge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdG9wOiAzcHg7XG4gICAgcmlnaHQ6IDFweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgICB6LWluZGV4OiAxMDtcbiAgICBvcGFjaXR5OiAxO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgaGVpZ2h0OiAyMHB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3Qge1xuICAgIHBhZGRpbmc6IDNweCAwcHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgICB3aWR0aDogODklO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1idXR0b24ge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250OiB3aGl0ZTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIHtcbiAgICB0b3A6IDA7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICB0b3A6IDA7XG4gICAgbWFyZ2luLXRvcDogNHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XG59XG5cbi5maWx0ZXItbGFiZWwge1xuICAgIGZvbnQ6IEJvbGQgMTRweCBSb2JvdG87XG4gICAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgICBjb2xvcjogIzNjM2MzYztcbiAgICBvcGFjaXR5OiAxO1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbn1cblxuLnJlZmVzaC1pY29uIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLWJvdHRvbTogLTMwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uY29sb3JlZFJvdyB7XG4gICAgYmFja2dyb3VuZDogI2ZmZmY5OTtcbn1cblxuLmNvbG9yZWRHcmVlblJvdyB7XG4gICAgYmFja2dyb3VuZDogIzkwZWU5MDtcbn1cblxuLm1hdC1kaWFsb2ctdGl0bGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtncmF5O1xufVxuXG4uY2FsbExpc3QtcmlnaHQge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cblxuLmNvbHVtbkhlYWRlciB7XG4gICAgZm9udDogQm9sZCAxMnB4IFJvYm90bztcbiAgICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xufVxuXG4ubG9zdCB7XG4gICAgY29sb3I6ICNlNjQyNDM7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDEwcHg7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIHRvcDogMzglO1xufVxuXG4uaW5ib3VuZCB7XG4gICAgY29sb3I6ICMyZTM2Njg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDBweDtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgdG9wOiAzOCU7XG59XG5cbi5jb2x1bW52YWx1ZSB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmZpbHRlcjEge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmZpbHRlckJ1dHRvbiB7XG4gICAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDEwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMXB4O1xufVxuXG4uZmlsdGVyZGl2IHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uc2VydmljZUR1ZURhdGUge1xuICAgIHdpZHRoOiAxMCUgIWltcG9ydGFudDtcbn1cblxuLmZvbGxvd1VwIHtcbiAgICB3aWR0aDogOSUgIWltcG9ydGFudDtcbn1cblxudGQubWF0LWNlbGwsXG50ZC5tYXQtZm9vdGVyLWNlbGwsXG50aC5tYXQtaGVhZGVyLWNlbGwge1xuICAgIHBhZGRpbmc6IDNweDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkIG5vbmUgbm9uZSBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDAuMXB4O1xuICAgIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4udGFibGUtYm9yZGVyLm1hdC10YWJsZSB7XG4gICAgYm9yZGVyLXN0eWxlOiBub25lIHNvbGlkIHNvbGlkIG5vbmU7XG4gICAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG59XG5cbnRoLm1hdC1oZWFkZXItY2VsbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Q5ZDlkOTtcbn1cblxuLmZpbHRlcjIge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xufVxuXG4uY2FsbC1zdGF0cy1jYXJkIHtcbiAgICAubWF0LWNhcmQtdGl0bGUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgfVxuICAgIC5jYWxsLXN0YXRzIHtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgaSB7XG4gICAgICAgICAgICBjb2xvcjogIzJlMzY2ODtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuY2FsbC1zdGF0cy10aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgY29sb3I6ICM0ODQ4NDg7XG4gICAgfVxufVxuXG4uY2FsbC1zdGF0cy1jYXJkMSB7XG4gICAgcGFkZGluZy10b3A6IDBweDtcbn1cblxuLmNhbGwtc3RhdHMtY2FyZC1ib3JkZXIxIHtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIG5vbmUgc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMCU7XG4gICAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG59XG5cbi5jYWxsLXN0YXRzLWNhcmQtYm9yZGVyMiB7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZCBzb2xpZCBzb2xpZCBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDFweDtcbiAgICBib3JkZXItcmFkaXVzOiAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4O1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBjb2xvcjogIzU0ODJCQztcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzU0ODJCQztcbiAgICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtbGFiZWwtY29udGVudCB7XG4gICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgZm9udDogUmVndWxhciAxNHB4IFJvYm90bztcbiAgICBsZXR0ZXItc3BhY2luZzogMHB4O1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5yZWZyZXNoLWJ0bi5tYXQtYnV0dG9uIHtcbiAgICBtaW4td2lkdGg6IGF1dG87XG59XG5cbi5yZWZyZXNoLWJ0biB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBjb2xvcjogI2U2NDI0MztcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTY0MjQzO1xuICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgIGJvcmRlci10b3A6IG5vbmU7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgbGFiZWwubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIG1hcmdpbi10b3A6IDhweCAhaW1wb3J0YW50O1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIGlucHV0Lm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgICBtYXJnaW4tdG9wOiAwLjZlbTtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbn1cblxuLnNlYXJjaC1pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDE1cHg7XG4gICAgdG9wOiAxNXB4O1xufVxuXG4uYmFja0NvbG9yIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uYm94LXNpemUge1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIG1hcmdpbi10b3A6IDdweDtcbiAgICB3aWR0aDogMjhweDtcbiAgICBoZWlnaHQ6IDI4cHg7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuLmJhY2tDb2xvcjEge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM1NDgyQkMgIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IDEycHg7XG59XG5cbi5jYWxsLXN0YXRzLXZhbHVlIHtcbiAgICBtYXJnaW4tbGVmdDogNTBweDtcbiAgICBmb250LXNpemU6IDE4cHg7XG59XG5cbi5jYWxsLXN0YXRzLXZhbHVlMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDMwcHg7XG4gICAgZm9udC1zaXplOiAxOHB4O1xufVxuXG4uaW5mby1jaXJjbGUtc2l6ZSB7XG4gICAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuLmZsZXgtc2V0IHtcbiAgICBtYXJnaW4tdG9wOiA3cHg7XG4gICAgbWFyZ2luLWxlZnQ6IDYycHg7XG4gICAgLy90ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5mbGV4LXNldDEge1xuICAgIG1hcmdpbi10b3A6IDdweDtcbiAgICBtYXJnaW4tbGVmdDogNzNweDtcbn1cblxuLmR1ZURhdGVJY29uIHtcbiAgICBoZWlnaHQ6IDlweDtcbiAgICB3aWR0aDogMTFweDtcbn1cblxuLmZpbHRlcjMge1xuICAgIHdpZHRoOiAyMDBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDMwcHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4ucGFnaW5hdG9yIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgIGhlaWdodDogMThweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAwcHg7XG59XG5cbi5maWx0ZXItbGFiZWwge1xuICAgIGZvbnQ6IDEycHggUm9ib3RvO1xuICAgIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gICAgY29sb3I6ICMzYzNjM2M7XG4gICAgb3BhY2l0eTogMTtcbiAgICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gICAgcGFkZGluZzogMXB4IDBweCAwcHg7XG59XG5cbi5jYWxlbmRlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIGlucHV0IHtcbiAgICAgICAgd2lkdGg6IDE4MHB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXkgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGhlaWdodDogMjJweDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gICAgfVxufVxuXG4uY2FsYW5kZXItYnRuIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDdweDtcbiAgICB0b3A6IDRweDtcbn1cblxuLmZvcm0tZmllbGQge1xuICAgIGxhYmVsIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIH1cbiAgICBpbnB1dCB7XG4gICAgICAgIHBhZGRpbmc6IDZweDtcbiAgICB9XG59XG4iLCIud29ya2luZy1hcmVhIHtcbiAgbWFyZ2luLXRvcDogMTE1cHg7XG59XG5cbnRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5jYWxsaW5nLXRhYmxlIHRyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4udGFibGUtaGVhZC1jYWxsIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgcGFkZGluZy10b3A6IDEycHg7XG59XG5cbi5idXR0b24tbWFyZ2luIHtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbi5jYWxsTGlzdCB7XG4gIGZvbnQ6IEJvbGQgMjBweCBSb2JvdG87XG4gIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gIGNvbG9yOiAjNDg0ODQ4O1xuICBvcGFjaXR5OiAxO1xufVxuXG4uY2xvc2UtY29uIHtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRvcDogM3B4O1xuICByaWdodDogMXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgei1pbmRleDogMTA7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIHBhZGRpbmc6IDA7XG4gIGhlaWdodDogMjBweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0IHtcbiAgcGFkZGluZzogM3B4IDBweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICBwYWRkaW5nLWxlZnQ6IDhweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgd2lkdGg6IDg5JTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtYnV0dG9uIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250OiB3aGl0ZTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIHtcbiAgdG9wOiAwO1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0b3A6IDA7XG4gIG1hcmdpbi10b3A6IDRweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbn1cblxuLmZpbHRlci1sYWJlbCB7XG4gIGZvbnQ6IEJvbGQgMTRweCBSb2JvdG87XG4gIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gIGNvbG9yOiAjM2MzYzNjO1xuICBvcGFjaXR5OiAxO1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG5cbi5yZWZlc2gtaWNvbiB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLWJvdHRvbTogLTMwcHg7XG4gIG1hcmdpbi1yaWdodDogMjBweDtcbiAgbWFyZ2luLXRvcDogMzBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uY29sb3JlZFJvdyB7XG4gIGJhY2tncm91bmQ6ICNmZmZmOTk7XG59XG5cbi5jb2xvcmVkR3JlZW5Sb3cge1xuICBiYWNrZ3JvdW5kOiAjOTBlZTkwO1xufVxuXG4ubWF0LWRpYWxvZy10aXRsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IGRhcmtncmF5O1xufVxuXG4uY2FsbExpc3QtcmlnaHQge1xuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuXG4uY29sdW1uSGVhZGVyIHtcbiAgZm9udDogQm9sZCAxMnB4IFJvYm90bztcbiAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xufVxuXG4ubG9zdCB7XG4gIGNvbG9yOiAjZTY0MjQzO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgdG9wOiAzOCU7XG59XG5cbi5pbmJvdW5kIHtcbiAgY29sb3I6ICMyZTM2Njg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMHB4O1xuICBmb250LXNpemU6IDEwcHg7XG4gIHRvcDogMzglO1xufVxuXG4uY29sdW1udmFsdWUge1xuICBmb250LXNpemU6IDE0cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmZpbHRlcjEge1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5maWx0ZXJCdXR0b24ge1xuICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBsaW5lLWhlaWdodDogMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMXB4O1xufVxuXG4uZmlsdGVyZGl2IHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLnNlcnZpY2VEdWVEYXRlIHtcbiAgd2lkdGg6IDEwJSAhaW1wb3J0YW50O1xufVxuXG4uZm9sbG93VXAge1xuICB3aWR0aDogOSUgIWltcG9ydGFudDtcbn1cblxudGQubWF0LWNlbGwsXG50ZC5tYXQtZm9vdGVyLWNlbGwsXG50aC5tYXQtaGVhZGVyLWNlbGwge1xuICBwYWRkaW5nOiAzcHg7XG4gIGJvcmRlci1zdHlsZTogc29saWQgbm9uZSBub25lIHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDAuMXB4O1xuICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxuLnRhYmxlLWJvcmRlci5tYXQtdGFibGUge1xuICBib3JkZXItc3R5bGU6IG5vbmUgc29saWQgc29saWQgbm9uZTtcbiAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG59XG5cbnRoLm1hdC1oZWFkZXItY2VsbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkOWQ5ZDk7XG59XG5cbi5maWx0ZXIyIHtcbiAgd2lkdGg6IGF1dG87XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xufVxuXG4uY2FsbC1zdGF0cy1jYXJkIC5tYXQtY2FyZC10aXRsZSB7XG4gIG1hcmdpbi1ib3R0b206IDBweDtcbn1cbi5jYWxsLXN0YXRzLWNhcmQgLmNhbGwtc3RhdHMge1xuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLmNhbGwtc3RhdHMtY2FyZCAuY2FsbC1zdGF0cyBpIHtcbiAgY29sb3I6ICMyZTM2Njg7XG4gIGZvbnQtc2l6ZTogMTFweDtcbn1cbi5jYWxsLXN0YXRzLWNhcmQgLmNhbGwtc3RhdHMtdGl0bGUge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGNvbG9yOiAjNDg0ODQ4O1xufVxuXG4uY2FsbC1zdGF0cy1jYXJkMSB7XG4gIHBhZGRpbmctdG9wOiAwcHg7XG59XG5cbi5jYWxsLXN0YXRzLWNhcmQtYm9yZGVyMSB7XG4gIGJvcmRlci1zdHlsZTogc29saWQgc29saWQgbm9uZSBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1yYWRpdXM6IDAlO1xuICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxuLmNhbGwtc3RhdHMtY2FyZC1ib3JkZXIyIHtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZCBzb2xpZCBzb2xpZCBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1yYWRpdXM6IDAlO1xuICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAge1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgY29sb3I6ICM1NDgyQkM7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTQ4MkJDO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtbGFiZWwtY29udGVudCB7XG4gIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICBmb250OiBSZWd1bGFyIDE0cHggUm9ib3RvO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5yZWZyZXNoLWJ0bi5tYXQtYnV0dG9uIHtcbiAgbWluLXdpZHRoOiBhdXRvO1xufVxuXG4ucmVmcmVzaC1idG4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBjb2xvcjogI2U2NDI0MztcbiAgYm9yZGVyOiAxcHggc29saWQgI2U2NDI0MztcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBib3JkZXItdG9wOiBub25lO1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIGxhYmVsLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgbWFyZ2luLXRvcDogOHB4ICFpbXBvcnRhbnQ7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgaW5wdXQubWF0LWlucHV0LWVsZW1lbnQge1xuICBtYXJnaW4tdG9wOiAwLjZlbTtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbi5zZWFyY2gtaWNvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDE1cHg7XG4gIHRvcDogMTVweDtcbn1cblxuLmJhY2tDb2xvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0QgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uYm94LXNpemUge1xuICBtYXJnaW4tbGVmdDogMTBweDtcbiAgbWFyZ2luLXRvcDogN3B4O1xuICB3aWR0aDogMjhweDtcbiAgaGVpZ2h0OiAyOHB4O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG4uYmFja0NvbG9yMSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1NDgyQkMgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uY2FsbC1zdGF0cy12YWx1ZSB7XG4gIG1hcmdpbi1sZWZ0OiA1MHB4O1xuICBmb250LXNpemU6IDE4cHg7XG59XG5cbi5jYWxsLXN0YXRzLXZhbHVlMSB7XG4gIG1hcmdpbi1sZWZ0OiAzMHB4O1xuICBmb250LXNpemU6IDE4cHg7XG59XG5cbi5pbmZvLWNpcmNsZS1zaXplIHtcbiAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbi5mbGV4LXNldCB7XG4gIG1hcmdpbi10b3A6IDdweDtcbiAgbWFyZ2luLWxlZnQ6IDYycHg7XG59XG5cbi5mbGV4LXNldDEge1xuICBtYXJnaW4tdG9wOiA3cHg7XG4gIG1hcmdpbi1sZWZ0OiA3M3B4O1xufVxuXG4uZHVlRGF0ZUljb24ge1xuICBoZWlnaHQ6IDlweDtcbiAgd2lkdGg6IDExcHg7XG59XG5cbi5maWx0ZXIzIHtcbiAgd2lkdGg6IDIwMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDMwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLnBhZ2luYXRvciA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgaGVpZ2h0OiAxOHB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctYm90dG9tOiAwcHg7XG59XG5cbi5maWx0ZXItbGFiZWwge1xuICBmb250OiAxMnB4IFJvYm90bztcbiAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgY29sb3I6ICMzYzNjM2M7XG4gIG9wYWNpdHk6IDE7XG4gIG1hcmdpbi1ib3R0b206IDNweDtcbiAgcGFkZGluZzogMXB4IDBweCAwcHg7XG59XG5cbi5jYWxlbmRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG4uY2FsZW5kZXIgaW5wdXQge1xuICB3aWR0aDogMTgwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgaGVpZ2h0OiAyMnB4O1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbn1cblxuLmNhbGFuZGVyLWJ0biB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDdweDtcbiAgdG9wOiA0cHg7XG59XG5cbi5mb3JtLWZpZWxkIGxhYmVsIHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuLmZvcm0tZmllbGQgaW5wdXQge1xuICBwYWRkaW5nOiA2cHg7XG59Il19 */\"","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { CommonService } from '../../core/service/common-service/common.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { MatTableDataSource } from '@angular/material/table';\n\nimport { MatSort } from '@angular/material/sort';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatDialog, MatDialogConfig } from '@angular/material';\nimport { openWorkshopReassignmentDialog } from '../../modal/workshop-reassignment-dialog/workshop-reassignment-dialog.component';\nimport { wrCallList } from './wrCallList';\n\n\n\n\n@Component({\n\tselector: 'app-workshop-reassignment',\n\ttemplateUrl: './workshop-reassignment.component.html',\n\tstyleUrls: [ './workshop-reassignment.component.scss' ]\n})\nexport class WorkshopReassignmentComponent implements OnInit {\n\t@ViewChild(MatSort, { static: true })\n\tsort: MatSort;\n\t@ViewChild(MatPaginator, { static: true })\n\tpaginator: MatPaginator;\n\n\tdisplayedColumns: string[] = [\n\t\t'customerName',\n\t\t'vin',\n\t\t'contactNumber',\n\t\t'leadGenerationDate',\n\t\t'previousWorkshop',\n\t\t'SMERemarks',\n\t\t'reassignmentStatus',\n\t];\n\n\tspinner: boolean;\n\tdataSource: any;\n\tpageSize: number;\n\tfilteredDataSource: any;\n\tuniqueRequest = new Set();\n\tuniqueSourceId = new Set();\n\tlistSize: number = 0;\n\n constructor(private commonService: CommonService, private toastr: ToastrService, public dialog: MatDialog)\n {\n\n\t}\n\n\tngOnInit() {\n\t\tif (localStorage.getItem('wrcallListPageSize') != null || localStorage.getItem('wrcallListPageSize') != undefined) {\n\t\t\tlet pagesize = Number(localStorage.getItem('wrcallListPageSize'));\n\t\t\tthis.pageSize = (pagesize && !Number.isNaN(pagesize)) ? pagesize : 50;\n\t\t } else {\n\t\t\tthis.pageSize = 50;\n\t\t }\n\t\tthis.workshopReassignmentList();\n\n\t}\n\n\tworkshopReassignmentList(){\n\t\tthis.spinner = true;\n\t\tthis.dataSource = '';\n\n\t\tthis.commonService.workshopReassignmentList().subscribe(res => {\n\t\t\tif (res['responseCode'] == 0 && res['responseData'] != undefined) {\n\t\t\t this.listSize = res['responseData'].length;\n\t\t\t this.dataSource = new MatTableDataSource(res['responseData']);\n\t\t\t this.sort.direction='';\n\t\t\t this.dataSource.sort = this.sort;\n\t\t\t this.dataSource.sortingDataAccessor = (data, header) => data[header];\n\t\t\t this.dataSource.paginator = this.paginator;\n\t\t\t this.spinner = false;\n\t\t } else {\n\t\t\t this.spinner = false;\n\t\t\t this.toastr.error(res['message'], 'Error');\n\t\t\t // this.callToggleStatus = true;\n\t\t }\n\t },\n\t (err) => {\n\t\t this.spinner = false;\n\t\t this.toastr.error('Something went wrong, Please try again.', 'Error');\n\t\t // this.callToggleStatus = true;\n\t }\n\t );\n\t}\n\n\t/**\n * Name: searchfilter\n * purpose: To apply filter on datagrid\n */\n\tsearchfilter(filterValue: string): void {\n\t\tfilterValue = filterValue.trim(); // Remove whitespace\n\t\tfilterValue = filterValue.toLowerCase(); // Datasource defaults to lowercase matches\n\t\tthis.dataSource.filter = filterValue;\n\t}\n\n\t /**\n * Name: setPageData\n * purpose: To set pagesize for table\n */\n\tsetPageData(event) {\n\t\tlet size = event.pageSize.toString();\n\t\tlocalStorage.setItem('wrcallListPageSize', size);\n\t}\n\n selectCustomer(row:any){\n\t\topenWorkshopReassignmentDialog(this.dialog,row.customerName,row.customerTelephone,row.nearestWorkshop,row.chassisNumber,row.customerCode).subscribe(val=>{\n\t\t\tif(val == -1){\n\t\t\t\tthis.ngOnInit();\n\t\t\t}\n\t\t});\n\t}\n\n}\n","import { CanActivate, RouterStateSnapshot, ActivatedRouteSnapshot } from '@angular/router';\nimport { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { AuthService } from './authentication.service';\n\n@Injectable()\nexport class AuthGuardService implements CanActivate {\n constructor(private router: Router, private auth: AuthService) { }\n /**\n * Name: canActivate\n * purpose: To check route auth status\n */\n canActivate(next: ActivatedRouteSnapshot,\n state: RouterStateSnapshot): boolean {\n let url: string = state.url;\n const userRoles = localStorage.getItem('userRoles');\n const uamAccess = localStorage.getItem('uamAccess');\n if (!this.auth.isAuthenticated()) {\n this.router.navigate(['login']);\n return false;\n } else if (userRoles == 'CRE') {\n if (uamAccess) {\n return true;\n } else if (url != \"/uam\") {\n return true;\n } else {\n this.router.navigate(['calling']);\n return false;\n }\n } else if(url == '/market-reporting'){\n return true;\n } else if(url == '/prs-dashboard'){\n return true;\n }\n else if(url == '/doorstep-dashboard'){\n return true;\n }\n else if(url == '/soft-calling' || url == '/soft-reporting' || url == '/soft-customer360'){\n return true;\n } else if (uamAccess && url == \"/uam\") {\n return true;\n } else if (userRoles == \"Call Center Agent\") {\n if (url == '/prs-calling' || url == '/prs-customer360' || url == '/prs-reporting' || url == '/profile' || url == '/workshop-reassignment') {\n return true;\n } else {\n this.router.navigate(['prs-calling']);\n return false;\n }\n } else if (userRoles == \"Team Leader\" || userRoles == \"Manager\") {\n if (url == '/prs-reporting' || url == '/profile') {\n return true;\n } else {\n this.router.navigate(['prs-reporting']);\n return false;\n }\n } else if (userRoles == \"Vecv SRM User\") {\n if (url == '/cdm-calling' || url == '/profile') {\n return true;\n } else {\n this.router.navigate(['cdm-calling']);\n return false;\n }\n } else if (userRoles == \"SME\") {\n if (url == '/lost-customer' || url == '/lost-customer360' || url == '/reporting' || url=='/doorstep-calling-list' || url=='/doorstep-customer360' || url=='/doorstep-dashboard') {\n return true;\n } else {\n this.router.navigate(['lost-customer']);\n return false;\n }\n }\n else if (userRoles == \"Workshop Manager\") {\n if (url == '/workshop-manager-calling' || url == '/pipeline-management' || url == '/pipeline-search' || url == '/dashboard') {\n return true;\n } else {\n this.router.navigate(['workshop-manager-calling']);\n return false;\n }\n }\n else if (userRoles == \"DSPM\") {\n if (url == '/pipeline-management' || url == '/pipeline-search' || url == '/soft-calling' || url == '/soft-reporting' || url == '/soft-customer360') {\n return true;\n }else {\n this.router.navigate(['soft-calling']);\n return false;\n }\n }\n else if (url == '/reporting' || url == '/dashboard' || url == '/profile' || url == '/cdm-calling' || url == '/cdm-customer360') {\n return true;\n } else if (url == '/prs-reporting') {\n return true;\n } else if (url == '/inboundCall') {\n return true;\n } else if(url == '/pipeline-management' || url == '/pipeline-search'){\n return true;\n } else {\n\n if (userRoles =='Pan India' ) {\n return true;\n }\n this.router.navigate(['dashboard']);\n return false;\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class AuthService {\n constructor() { }\n\n /**\n * Checks is the user is authenticated.\n * @return {boolean} True if the user is authenticated.\n */\n isAuthenticated(): boolean {\n const userId = localStorage.getItem('userId');\n if (userId) { // Check whetherwe have userId for authentication\n return true;\n } else {\n return false;\n }\n }\n}\n","\nimport { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { environment } from '../../../../environments/environment';\nimport { Observable, observable } from 'rxjs';\nimport { resolve } from 'dns';\nimport { promise } from 'protractor';\nimport { catchError } from 'rxjs/operators';\nimport { CallParams } from 'src/app/model/call-params.model';\nimport { SaveCallRecordingParams } from 'src/app/model/save-call-recording-params.model';\n\n@Injectable()\nexport class CommonService {\n\n callListResponseData = [];\n prsCallListResponseData = [];\n customerResponse = '';\n prsCustomerResponse: any = '';\n interval;\n followupDataSource = [];\n prsFollowupDataSource = [];\n workedCallListData = [];\n userId :any;\n userRole :any;\n roleId :any = localStorage.getItem('roleId');\n refreshTokenCheck: number;\n checkFlag : boolean = true;\n\n countryCode: string;\n followupResponse: Observable;\n prsCallType = '';\n //customerData = JSON.parse(localStorage.getItem('customerData'));\n\n startInterval() {\n this.userRole = localStorage.getItem('userRoles');\n let loginTime = JSON.parse(localStorage.getItem('LoginTime'));\n let mint = loginTime + (30 * 60 * 1000);\n this.followupResponse = new Observable((observable) => {\n this.interval = setInterval(() => {\n if (this.userRole == \"CRE\") {\n this.getFollowUpCallList(this.userId, 'N').subscribe(res => {\n observable.next(res);\n })\n } else if (this.userRole == \"Call Center Agent\") {\n this.getPRSFollowUpCallList(this.prsCallType, this.roleId, this.userId).subscribe(res => {\n observable.next(res);\n })\n }\n }, (30 * 60 * 1000))\n })\n }\n // return new Promise((resolve, reject) => {\n // this.interval = setInterval(()=>{\n // mint = mint + 1000;\n // this.getFollowUpCallList(this.userId, 'N').subscribe(res => {\n // return new Promise((resolve, reject) => {\n // if(res['responseCode'] == 1 ) {\n // resolve(res);\n // } else {\n // reject(\"No Data Found\");\n // }\n // this.followupResponse = res;\n // })\n // });\n // }, mint);\n // if(this.followupResponse) {\n // resolve(this.followupResponse);\n // // } else {\n // // reject(\"Dta not found 2\");\n // }\n // })\n // }\n\n stopInterval() {\n clearInterval(this.interval);\n }\n\n public uri: string;\n public trailUri: string;\n constructor(private http: HttpClient) {\n this.uri = environment.baseUrl;\n //this.trailUri = environment.baseUrlTrailing;\n }\n\n\n /**\n * Name: signin\n * purpose: To Sign in user\n * @param {string} userId - The username who is signing in\n * @param {string} currentPassword - The currentPassword\n * @param {string} newPassword - The newPassword to update\n * @return {Observable} response.\n */\n updatePassword(userId: string, currentPassword: string, newPassword: string): Observable {\n const requestUrl = this.uri + 'auth/update-password';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n userId: userId,\n oldPassword: currentPassword,\n newPassword: newPassword\n })\n };\n return this.http.get(requestUrl, httpOptions);\n }\n\n refreshtoken(): Observable {\n const requestUrl = this.uri + 'auth/get-refresh-token';\n const httpOptions = {\n headers: new HttpHeaders({\n userId: this.userId,\n medium : 'web'\n }),\n };\n return this.http.get(requestUrl, httpOptions);\n }\n\n /**\n * Name: getDetails\n * purpose: To get uam search data\n * @param {string} userId - The username who is signing in\n * @param {string} searchUserId - The search user name\n * @return {Observable} response.\n */\n getDetails(userId: string, searchUserId: string): Observable {\n const requestUrl = this.uri + 'auth/getUAMSearchUser';\n const httpOptions = {\n headers: new HttpHeaders({\n userId: userId,\n searchUserId: searchUserId\n })\n };\n return this.http.get(requestUrl, httpOptions);\n }\n\n /**\n * Name: getDefaultDropDown\n * purpose: To get uam Default DropDown\n * @param {string} userId - The username who is signing in\n * @return {Observable} response.\n */\n getDefaultDropDown(userId: string): Observable {\n const requestUrl = this.uri + 'auth/getUAMDefaultDropDownData';\n const httpOptions = {\n headers: new HttpHeaders({\n userId: userId,\n })\n };\n return this.http.get(requestUrl, httpOptions);\n }\n\n /**\n * Name: getWorkshop\n * purpose: To get uam Workshop\n * @param {string} userId - The username who is signing in\n * @param {string} region - region\n * @param {string} dealerCompany - dealerCompany\n * @return {Observable} response.\n */\n getWorkshop(userId: string, region: string, dealerCompany: string): Observable {\n const requestUrl = this.uri + 'auth/getUAMWorkShop';\n const httpOptions = {\n headers: new HttpHeaders({\n userId: userId,\n region: region,\n dealerCompany: dealerCompany\n })\n };\n return this.http.get(requestUrl, httpOptions);\n }\n\n /**\n * Name: getDealerCompany\n * purpose: To get uam dealer company\n * @param {string} userId - The username who is signing in\n * @param {string} selectedRegion - region\n * @return {Observable} response.\n */\n getDealerCompany(userId: string, selectedRegion: string): Observable {\n const requestUrl = this.uri + 'auth/getUAMSearchDealerCompany';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n userId: userId,\n region: selectedRegion\n })\n };\n return this.http.get(requestUrl, httpOptions);\n }\n\n /**\n * Name: getExportExcel\n * purpose: To export report as excel\n * @return {Observable} response binary data object.\n */\n getExportExcel(): Observable {\n let request = this.uri + 'auth/getUAMExcel';\n return this.http.get(request, { responseType: 'blob' as 'blob' });\n }\n\n /**\n * Name: saveUserData\n * purpose: To save uam customer details and response\n * @param {object} userData - uam customer details\n * @return {Observable} response flag and status.\n */\n saveUserData(userData: any): Observable {\n const request = this.uri + 'auth/saveUserData';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n })\n };\n return this.http.post(request, userData, httpOptions);\n }\n\n /**\n * Name: signin\n * purpose: To Sign in user\n * @param {string} username - The username who is signing in\n * @param {string} password - The password to signin\n * @return {Observable} response if the user is authenticated.\n */\n signin(username: string, password: string): Observable {\n const requestUrl = this.uri + 'auth/login';\n const request = {\n userId: username,\n password: password\n }\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n medium : 'web'\n })\n };\n return this.http.post(requestUrl, request, httpOptions);\n }\n\n /**\n * Name: getUserDetails\n * purpose: To get sign in user data\n * @param {string} userId - The userId who is signing in\n * @return {Observable} response user info\n */\n getUserDetails(userId: string, roleId: string): Observable {\n const requestUrl = this.uri + 'auth/getUserDetails';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n userId: userId,\n roleId: roleId\n })\n };\n return this.http.get(requestUrl, httpOptions);\n }\n\n /**\n * Name: getWorkshopDetails\n * purpose: To get workshop details\n * @param {string} userId - The userId who is signing in\n * @return {Observable} response workshop list\n */\n getWorkshopDetails(userId: string): Observable {\n const requestUrl = this.uri + 'auth/getWorkshopDetails';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n userId: userId\n })\n };\n return this.http.get(requestUrl, httpOptions);\n }\n\n /**\n * Name: customercallList\n * purpose: To get customer list\n * @param {string} dealerCode - dealer code\n * @param {string} flag - type of call status to fatch customer list\n * @return {Observable} response customer list.\n */\n customercallList(dealerCode: string, flag: string): Observable {\n const request = this.uri + 'callList/customercallList';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n dealerCode: dealerCode,\n listType: flag,\n countryCode: this.countryCode\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: generatetoken\n * purpose: To generate token\n * @param {string} userID - userid for who we are generating token\n * @return {Observable} response token.\n */\n generatetoken(userID: string): Observable {\n const request = this.uri + 'api/generatetoken';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n userID: userID\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: updateNumber\n * purpose: To set customer number status\n * @param {string} number - customer number\n * @param {string} contactNoOld - customer number\n * @param {string} type - customer number type\n * @param {string} custId - customer id\n * @param {string} userId - userId id\n * @return {Observable} response status.\n */\n updateNumber(number: string, contactNoOld: string, type: string, custId: string, userId: string, oldName: string, newName: string): Observable {\n const request = this.uri + 'callManagement/update-contact';\n\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n contactNoNew: number,\n contactNoOld: contactNoOld,\n custId: custId,\n userId: userId,\n isPrimary: type,\n oldDriverName: oldName,\n newDriverName: newName\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: callDetails\n * purpose: To get call list\n * @param {string} creCode - CRE id\n * @param {string} custId - customer id\n * @return {Observable} response status.\n */\n callDetails(creCode: string, custId: string, source: string): Observable {\n const request = this.uri + 'callManagement/fetch-call-Logs';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n creCode: creCode,\n custId: custId,\n source: source\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: callCustomer\n * purpose: To get call list\n * @param {string} userId - userId\n * @param {string} custId - custId\n * @param {string} contactNo - contactNo\n * @param {string} isPrimary - isPrimary\n * @return {Observable} response status.\n */\n callCustomer(creId: string, custId: string, contactNo: string, isPrimary: string, source: string): Observable {\n const request = this.uri + 'callManagement/send-notification';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n creId: creId,\n custId: custId,\n custNo: contactNo,\n custType: isPrimary,\n source: source\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: downloadAudio\n * purpose: To get call list\n * @param {string} bucketName - bucketName\n * @param {string} fileName - fileName we want to hear\n * @return {Observable} response blob file.\n */\n downloadAudio(bucketName: string, fileName: string, source: string): Observable {\n const request = this.uri + 'callManagement/download-audio?bucketName=' + bucketName + '&file=' + fileName + '&source=' + source;\n return this.http.get(request, { responseType: \"blob\", observe: 'response' });\n }\n\n /**\n * Name: callListinfo\n * purpose: To get call list counts\n * @param {string} dealerCode - dealer code\n * @return {Observable} response call count and list info.\n */\n callListinfo(dealerCode: string): Observable {\n const request = this.uri + 'callList/callListinfo';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n dealerCode: dealerCode,\n countryCode: this.countryCode\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: convertDateToString\n * purpose: To get convert date to string\n * @param {date} realDate - date to be changed\n * @return {string} date in string conversion.\n */\n convertDateToString(realDate: Date): string {\n let date = realDate.getDate();\n let month = realDate.getMonth() + 1;\n let year = realDate.getFullYear();\n return year + \"-\" + month + \"-\" + date;\n }\n\n /**\n * Name: customer360\n * purpose: To get customer details\n * @param {string} customerID - customer id whom details to be get\n * @param {string} dealerCode - login dealer's code\n * @return {Observable} response customer details.\n */\n customer360(customerID: string, dealerCode: string): Observable {\n const request = this.uri + 'customer360/customer360';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n customerID: customerID,\n dealerCode: dealerCode\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: history\n * purpose: To get history details for VECHILE\n * @param {string} chassisNo - chassisNo of VECHILE\n * @return {Observable} response VECHILE history details.\n */\n history(chassisNo: string): Observable {\n const request = this.uri + 'customer360/getservicehistory';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n vin: chassisNo\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: kpiCall\n * purpose: To get kpi-call details\n * @param {string} userId - cre userid\n * @param {string} from - start date\n * @param {string} to - end date\n * @return {Observable} response kpi list.\n */\n kpiCall(userId: string, from: string, to: string): Observable {\n const request = this.uri + 'reports/getcrereport';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n userId: userId,\n fromDate: from,\n toDate: to\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: dataGrid\n * purpose: To get dataGrid details\n * @param {string} userId - cre userid\n * @param {string} roleId - roleid\n * @param {string} startDate - start date\n * @param {string} endDate - end date\n * @param {string} workshopFilter - workshop code\n * @return {Observable} response kpi list.\n */\n dataGrid(userId: string, roleId: string, startDate: string, endDate: string, workshopFilter: string, reportType: string): Observable {\n const request = this.uri + 'reports/getDataGrid';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n userId: userId,\n roleId: roleId,\n startDate: startDate,\n endDate: endDate,\n workshopFilter: workshopFilter,\n reportType: reportType,\n countryCode: this.countryCode\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: workshopFilter\n * purpose: To get workshopFilter details\n * @param {string} userId - cre userid\n * @param {string} roleId - cre roleid\n * @return {Observable} response kpi list.\n */\n workshopFilter(userId: string, roleId: string): Observable {\n const request = this.uri + 'reports/workshopFilter';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n userId: userId,\n roleId: roleId\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: getcrereportexcel\n * purpose: To export report as excel\n * @param {string} fileType - type of file-fresh or all data\n * @param {string} from - start date\n * @param {string} to - end date\n * @param {string} userId creid\n * @return {Observable} response binary data object.\n */\n getcrereportexcel(fileType: string, from: string, to: string, userId: string): Observable {\n let request = this.uri + 'reports/getcrereportexcel';\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n userId: userId,\n fromDate: from,\n toDate: to,\n fileType: fileType\n });\n return this.http.get(request, { headers, responseType: 'blob' as 'blob' });\n }\n\n /**\n * Name: getprocessreport\n * purpose: To export report as excel\n * @param {string} from - start date\n * @param {string} to - end date\n * @param {string} userId creid\n * @param {string} roleId - cre roleId\n * @param {string} workshopCode - WorkshopCode\n * @return {Observable} response binary data object.\n */\n getprocessreport(from: string, to: string, userId: string, roleId: string, workshopCode: string): Observable {\n let request = this.uri + 'reports/getprocessreport';\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n userId: userId,\n roleId: roleId,\n fromDate: from,\n toDate: to,\n workshopFilter: workshopCode,\n countryCode: this.countryCode\n });\n return this.http.get(request, { headers, responseType: 'blob' as 'blob' });\n }\n\n /**\n * Name: callreminder\n * purpose: To scheduled call reminder\n * @param {string} dealerCode - dealer Code\n * @return {Observable} response flag and status.\n */\n callreminder(dealerCode: string): Observable {\n const request = this.uri + 'callList/callreminder';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n dealerCode: dealerCode\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: savedata\n *\n * purpose: To save customer details and response\n * @param {object} custData - customer details\n * @return {Observable} response flag and status.\n */\n savedata(custData: any): Observable {\n const request = this.uri + 'customer360/savedata';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n countryCode: this.countryCode,\n })\n };\n return this.http.post(request, custData, httpOptions);\n }\n\n /**\n * Name: getDropdownData\n * purpose: To get dropdown data for customer response\n * @param {number} callType - type of response\n * @return {Observable} response data object for response dropdown.\n */\n getDropdownData(callType: number): Observable {\n const request = this.uri + 'customer360/customeresponse';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n callType: callType && callType.toString(),\n countryCode: this.countryCode\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: getUsers\n * purpose: To search customer\n * @param {string} searchText - customer details\n * @param {string} type - type of input\n * @return {Observable} response data object for response auto dropdown.\n */\n getCustomers(searchText: string, type: string, userId: string): Observable {\n const request = this.uri + 'inboundCall/search-customer';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n value: searchText,\n flag: type,\n userId: userId\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: getChassis\n * purpose: To get dropdown data for customer response\n * @param {string} searchText - customer details\n * @return {Observable} response data object for response auto dropdown.\n */\n getChassis(searchText: string): Observable {\n const request = this.uri + 'inboundCall/get-chassic-no';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n number: searchText,\n countryCode:this.countryCode\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: searchContact\n * purpose: To get dropdown data for customer response\n * @param {string} searchText - customer details\n * @return {Observable} response data object for response auto dropdown.\n */\n searchContact(searchText: string): Observable {\n const request = this.uri + 'inboundCall/search-contact';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n number: searchText\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: searchFleet\n * purpose: To get fleet data for selected customer\n * @param {string} customerCode - customer code\n * @return {Observable} response data object for response auto dropdown.\n */\n searchFleet(customerCode: string): Observable {\n const request = this.uri + 'inboundCall/search-fleet';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n custCode: customerCode\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: searchVin\n * purpose: To get dropdown data for customer response\n * @param {string} customerCode - customer code\n * @param {string} creId - creId\n * @return {Observable} response data object for response auto dropdown.\n */\n searchVin(customerCode: string, creId: string, vin: string): Observable {\n const request = this.uri + 'inboundCall/search-vin';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n custCode: customerCode,\n creId: creId,\n vin: vin\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: saveInboundCustomer\n * purpose: To save customer details and response\n * @param {object} custData - customer details\n * @return {Observable} response flag and status.\n */\n saveInboundCustomer(custData: any): Observable {\n const request = this.uri + 'inboundCall/save-customer-details';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n creId: custData.creId,\n custCode: custData.custCode,\n custContactNo: custData.custContactNo,\n fleetContactNo: custData.fleetContactNo,\n fleetName: custData.fleetName,\n userId: custData.userId\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: saveServiceData\n * purpose: To save vehicle service details and response\n * @param {object} serviceData - customer details\n * @return {Observable} response flag and status.\n */\n saveServiceData(serviceData: any): Observable {\n const request = this.uri + 'inboundCall/save-service-data';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n countryCode: this.countryCode\n })\n };\n return this.http.post(request, serviceData, httpOptions);\n }\n\n /**\n * Name: getcustomerdata\n * purpose: To get customer details\n * @param {string} customerID - customer id whom details to be get\n * @param {string} dealerCode - login dealer's code\n * @return {Observable} response customer details.\n */\n getcustomerdata(customerID: string, dealerCode: string, vin: string): Observable {\n const request = this.uri + 'customer360/getcustomerdata';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n customerID: customerID,\n dealerCode: dealerCode,\n vin: vin,\n countryCode: this.countryCode\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: sendLocationSMS\n * purpose: To send workshop address sms\n * @param {any} data - customer data and workshop data\n * @return {Observable} response.\n */\n sendLocationSMS(data: any): Observable {\n const request = this.uri + 'customer360/sendLocationSMS';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n contactNo: data.contactNo,\n custName: data.custName,\n wSAddress: data.wSAddress,\n wSManager: data.wSManager,\n wSName: data.wSName\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: sendBookingSMS\n * purpose: To send booking sms\n * @param {any} data - customer data and booking data\n * @return {Observable} response.\n */\n sendBookingSMS(data: any): Observable {\n const request = this.uri + 'customer360/sendBookingSMS';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n bkStatus: data.bkStatus,\n bkTime: data.bkTime,\n bkdate: data.bkdate,\n contactNo: data.contactNo,\n custName: data.custName,\n regNo: data.regNo,\n vin: data.vin,\n wSAddress: data.wSAddress,\n wSManager: data.wSManager\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: contactdetail\n * purpose: To get customer contact detail\n * @param {string} customerID - customer id whom details to be get\n * @return {Observable} response customer details.\n */\n contactdetail(customerID: string): Observable {\n const request = this.uri + 'customer360/contactdetail';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n custCode: customerID\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: contactdetail\n * purpose: To get customer contact detail\n * @param {string} creID - customer id whom details to be get\n * @return {Observable} response customer details.\n */\n getCreCallStats(creID: string): Observable {\n const request = this.uri + 'callList/callstats';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n creId: creID,\n countryCode: this.countryCode\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: getDashboardKpiCard\n * purpose: To get DashboardKpiCard\n * @param {any} req - req details to be get\n * @return {Observable} response customer details.\n */\n getDashboardKpiCard(req: any): Observable {\n const requestUrl = this.uri + 'reports/getDashboardKpiCard';\n const request = {\n \"userId\": req.userId,\n \"roleId\": req.roleId,\n \"creId\": req.creId,\n \"workshopCode\": req.workshopCode,\n \"service\": req.service,\n \"month\": req.month,\n \"year\": req.year\n };\n\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n countryCode: this.countryCode\n })\n };\n return this.http.post(requestUrl, request, httpOptions);\n }\n\n /**\n * Name: getDashboardResponseKpi\n * purpose: To get getDashboardResponseKpi\n * @param {any} req - req details to be get\n * @return {Observable} response customer details.\n */\n getDashboardResponseKpi(req: any): Observable {\n const requestUrl = this.uri + 'reports/getDashboardResponseKpi';\n const request = {\n \"userId\": req.userId,\n \"roleId\": req.roleId,\n \"creId\": req.creId,\n \"workshopCode\": req.workshopCode,\n \"service\": req.service,\n \"startDate\": req.startDate,\n \"endDate\": req.endDate\n };\n\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n countryCode: this.countryCode\n })\n };\n return this.http.post(requestUrl, request, httpOptions);\n }\n\n /**\n * Name: getDashboardServiceKpi\n * purpose: To get getDashboardServiceKpi\n * @param {any} req - req details to be get\n * @return {Observable} response customer details.\n */\n getDashboardServiceKpi(req: any): Observable {\n const requestUrl = this.uri + 'reports/getDashboardServiceKpi';\n const request = {\n \"userId\": req.userId,\n \"roleId\": req.roleId,\n \"creId\": req.creId,\n \"workshopCode\": req.workshopCode,\n \"service\": req.service,\n \"startDate\": req.startDate,\n \"endDate\": req.endDate\n };\n\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n countryCode: this.countryCode\n })\n };\n return this.http.post(requestUrl, request, httpOptions);\n }\n\n /**\n * Name: getDashboardKpi\n * purpose: To get getDashboardKpi\n * @param {any} req - req details to be get\n * @return {Observable} response customer details.\n */\n getDashboardKpi(req: any): Observable {\n const requestUrl = this.uri + 'reports/getDashboardKpi';\n const request = {\n \"userId\": req.userId,\n \"roleId\": req.roleId,\n \"creId\": req.creId,\n \"workshopCode\": req.workshopCode,\n \"service\": req.service,\n \"startDate\": req.startDate,\n \"endDate\": req.endDate\n };\n\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n countryCode: this.countryCode\n })\n };\n return this.http.post(requestUrl, request, httpOptions);\n }\n\n /**\n * Name: filterDashboard\n * purpose: To get filter Dashboard\n * @param {any} userInfo - userInfo whom details to be get\n * @return {Observable} response filter details.\n */\n filterDashboard(userInfo: any): Observable {\n const request = this.uri + 'reports/filterDashboard';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n userId: userInfo.userId,\n roleId: userInfo.roleId,\n countryCode: this.countryCode\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: periodFilter\n * purpose: To get periodFilter Dashboard\n * @param {any} userInfo - userInfo whom details to be get\n * @return {Observable} response filter details.\n */\n periodFilter(userInfo: any): Observable {\n const request = this.uri + 'reports/periodFilter';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n userId: userInfo.userId,\n roleId: userInfo.roleId,\n countryCode: this.countryCode\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: getBayVisibility\n * purpose: To get getBayVisibility\n * @param {any} workshopCode - workshopCode whom details to be get\n * @param {any} date - date\n * @return {Observable} response bay Visibility.\n */\n getBayVisibility(workshopCode: any, date: any): Observable {\n const request = this.uri + 'customer360/getBayVisibility';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n workshopCode: workshopCode,\n selectedDate: date\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: getWorkshopBay\n * purpose: To get getWorkshopBay\n * @param {string} creId - creId\n * @return {Observable} response list of bay\n */\n getWorkshopBay(creId: string): Observable {\n const request = this.uri + 'customer360/getWorkshopBay';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n creId: creId\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: getFertPrice\n * purpose: To get getFertPrice\n * @param {any} workshopCode - workshopCode whom details to be get\n * @param {any} fartCode - fartCode\n * @return {Observable} response bay Visibility.\n */\n getFertPrice(workshopCode: any, fartCode: any): Observable {\n const request = this.uri + 'customer360/getFertPrice';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n plant: workshopCode,\n fertCode: fartCode\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: getprscustomerdata\n * purpose: To get customer details\n * @param {string} customerID - customer id whom details to be get\n * @param {string} vin - vehicle vin No\n * @param {string} workshopCode - workshopCode\n * @param {string} callTypeSeq - callTypeSeq\n * @return {Observable} response customer details.\n */\n getprscustomerdata(customerID: string, vin: string, workshopCode: string, callTypeSeq: string, userId: string, roleId: string): Observable {\n const request = this.uri + 'customer360/getprscustomerdata';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n customerID: customerID,\n vin: vin,\n workshopCode: workshopCode,\n callTypeSeq: callTypeSeq,\n userId: userId,\n roleId: roleId,\n countryCode: this.countryCode\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: getprscustomerdata\n * purpose: To get customer details\n * @param {string} customerID - customer id whom details to be get\n * @param {string} vin - vehicle vin No\n * @param {string} workshopCode - workshopCode\n * @param {string} callTypeSeq - callTypeSeq\n * @return {Observable} response customer details.\n */\n getLastServiceRemark(customerID: string, vin: string, workshopCode: string, callTypeSeq: string, userId: string, roleId: string): Observable {\n const request = this.uri + 'customer360/getprslastservice&remarks';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n customerID: customerID,\n vin: vin,\n workshopCode: workshopCode,\n callTypeSeq: callTypeSeq,\n userId: userId,\n roleId: roleId\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: prscontactdetail\n * purpose: To get customer contact detail\n * @param {string} customerID - customer id whom details to be get\n * @return {Observable} response customer details.\n */\n prscontactdetail(customerID: string): Observable {\n const request = this.uri + 'customer360/prs-contact-detail';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n custCode: customerID\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: prscustomercallList\n * purpose: To get customer list\n * @param {string} flag - type of call status to fatch customer list\n * @return {Observable} response customer list.\n */\n prscustomercallList(flag: string, callType: string, userId: string, roleId: string): Observable {\n const request = this.uri + 'callList/prscustomercallList';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n listType: flag,\n callType: callType,\n userId: userId,\n countryCode: this.countryCode,\n roleId: roleId\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: prsCustomeResponse\n * purpose: To get prs Custome Response\n * @param {string} callType - type of response\n * @return {Observable} response lvl data for response.\n */\n prsCustomeResponse(callType: string): Observable {\n const request = this.uri + 'customer360/prs-customeresponse';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n callType: callType\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: contactdetail\n * purpose: To get customer contact detail\n * @param {string} userId - customer id whom details to be get\n * @return {Observable} response customer details.\n */\n getPrsCallStats(userId: string, roleId: string): Observable {\n const request = this.uri + 'callList/prscallstats';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n userId: userId,\n countryCode: this.countryCode,\n roleId: roleId\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: getPrsFetchQuestions\n * purpose: To get Prs Questions\n * @param {string} category - questions category\n * @return {Observable} response customer details.\n */\n getPrsFetchQuestions(category: string, roleId: string): Observable {\n const request = this.uri + 'customer360/prs-fetch-questions';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n category: category,\n countryCode: this.countryCode,\n roleId: roleId\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: updatePRSNumber\n * purpose: To set customer number status\n * @param {string} number - customer number\n * @param {string} contactNoOld - customer number\n * @param {string} type - customer number type\n * @param {string} custId - customer id\n * @param {string} userId - userId id\n * @return {Observable} response status.\n */\n updatePRSNumber(number: string, contactNoOld: string, type: string, custId: string, userId: string): Observable {\n const request = this.uri + 'customer360/prs-update-contact';\n\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n contactNoNew: number,\n contactNoOld: contactNoOld,\n custId: custId,\n userId: userId,\n isPrimary: type\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: reportTypeFilter\n * purpose: To get reportTypeFilter details\n * @return {Observable} response report type list.\n */\n reportTypeFilter(): Observable {\n const request = this.uri + 'reports/prs-getReportTypes';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: prsReportFilter\n * purpose: To get prsReportFilter details\n * @return {Observable} response report filter list.\n */\n prsReportFilter(userId: string, roleId: string): Observable {\n const request = this.uri + 'reports/prs-fetch-regional-vertical-detail';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n userId: userId,\n roleId: roleId,\n countryCode: this.countryCode\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: getPRSDattaGrid\n * purpose: To get data grid details\n * @param {string} region - region\n * @param {string} verticle - verticle\n * * @param {string} workshopCode - WorkshopCode\n * @param {string} from - start date\n * @param {string} to - end date\n * @param {string} reportType - reportType\n * @return {Observable} response binary data object.\n */\n getPRSDattaGrid(region: string, verticle: string, workshopCode: string, from: string, to: string, reportType: string, userId: string, roleId: string): Observable {\n let request = this.uri + 'reports/prs-getDataGrid';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n region: region,\n vertical: verticle,\n workshopCode: workshopCode,\n dateFrom: from,\n dateTo: to,\n reportType: reportType,\n userId: userId,\n roleId: roleId,\n countryCode: this.countryCode\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: getRowDataExcelReport\n * purpose: To get data grid details\n * @param {string} region - region\n * @param {string} verticle - verticle\n * @param {string} dealerCode - dealerCode\n * @param {string} from - start date\n * @param {string} to - end date\n * @param {string} reportType - reportType\n * @return {Observable} response binary data object.\n */\n getRowDataExcelReport(region: string, verticle: string, dealerCode: string, from: string, to: string, reportType: string, userId: string, roleId: string): Observable {\n let request = this.uri + 'reports/getrawreport';\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n region: region,\n vertical: verticle,\n dealerCode: dealerCode,\n fromDate: from,\n toDate: to,\n reportType: reportType,\n userId: userId,\n roleId: roleId,\n countryCode: this.countryCode\n });\n return this.http.get(request, { headers, responseType: 'blob' as 'blob' });\n }\n\n /**\n * Name: getPRSRowDataExcelReport\n * purpose: To get data grid details\n * @param {string} region - region\n * @param {string} verticle - verticle\n * @param {string} dealerCode - dealerCode\n * @param {string} from - start date\n * @param {string} to - end date\n * @param {string} reportType - reportType\n * @return {Observable} response binary data object.\n */\n getPRSRowDataExcelReport(region: string, verticle: string, dealerCode: string, from: string, to: string, reportType: string, userId: string, roleId: string): Observable {\n let request = this.uri + 'reports/rawDataReportDealerPRS';\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n region: region,\n vertical: verticle,\n dealerCode: dealerCode,\n dateFrom: from,\n dateTo: to,\n reportType: reportType,\n creId: userId,\n roleId: roleId,\n countryCode: this.countryCode\n });\n return this.http.get(request, { headers, responseType: 'blob' as 'blob' });\n }\n\n /**\n * Name: getExportExcelReport\n * purpose: To get data grid details\n * @param {string} region - region\n * @param {string} verticle - verticle\n * @param {string} dealerCode - dealerCode\n * @param {string} from - start date\n * @param {string} to - end date\n * @param {string} reportType - reportType\n * @return {Observable} response binary data object.\n */\n getExportExcelReport(region: string, verticle: string, dealerCode: string, from: string, to: string, reportType: string, userId: string, roleId: string): Observable {\n let request = this.uri + 'reports/getreport';\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n region: region,\n vertical: verticle,\n dealerCode: dealerCode,\n fromDate: from,\n toDate: to,\n reportType: reportType,\n userId: userId,\n roleId: roleId,\n countryCode: this.countryCode\n });\n return this.http.get(request, { headers, responseType: 'blob' as 'blob' });\n }\n\n /**\n * Name: getPRSExportExcelReport\n * purpose: To get prs export excel\n * @param region\n * @param vertical\n * @param workshop\n * @param startDate\n * @param endDate\n * @param userId\n * @param roleId\n */\n getPRSExportExcelReport(region: string, vertical: string, workshop: string, startDate: string, endDate: string, userId: string, roleId: string): Observable {\n let request = this.uri + 'reports/detailedDataReportDealerPRS';\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n regionFilter: region,\n verticalFilter: vertical,\n workshopFilter: workshop,\n startDate: startDate,\n endDate: endDate,\n userId: userId,\n roleId: roleId,\n countryCode: this.countryCode\n });\n return this.http.get(request, { headers, responseType: 'blob' as 'blob' });\n }\n\n /**\n * Name: prsSaveVinFeedback\n * purpose: To save prsSaveVinFeedback\n * @param {any} req - req details to be get\n * @return {Observable} response customer remark flag.\n */\n prsSaveVinFeedback(req: any,complaintId:any,complaintRemarks:any): Observable {\n const requestUrl = this.uri + 'customer360/prs-save-vin-feedback';\n const request = {\n \"userId\": req.userId,\n \"blanketFeedback\": req.blanketFeedback || \"F,D,N\",\n \"callTypeInd\": req.callTypeInd,\n \"custCode\": req.customerId,\n \"idFeedback\": req.idFeedback,\n \"complaintId\":complaintId,\n \"complaintRemarks\":complaintRemarks,\n \"jobCardNo\": req.jobCardNo,\n \"vin\": req.vin,\n \"workshopCode\": req.workshopCode,\n \"customerType\": req.customerType,\n \"phoneNo\": req.phoneNo,\n \"customerName\": req.customerName,\n };\n\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n countryCode: this.countryCode,\n roleId: req.roleId\n })\n };\n return this.http.post(requestUrl, request, httpOptions);\n }\n\n /**\n * Name: prsFeedbackCheck\n * purpose: To check PRS Feedback\n * @param req\n */\n prsFeedbackCheck(req: any): Observable {\n const requestUrl = this.uri + 'customer360/prsCallCentreFeedbackCheck';\n const request = {\n \"customerCode\": req.customerId,\n \"vin\": req.vin,\n \"jcNumber\": req.jobCardNo,\n \"callTypeCode\": req.callTypeCode,\n \"callTypeSeq\": req.callTypeSeq,\n \"workshopCode\": req.workshopCode,\n \"userId\": req.userId,\n \"dtsCreation\": req.dtsCreation,\n \"remark\": req.remark,\n \"blanketFeedback\": req.blanketFeedback || \"F,D,N\",\n \"countryCode\": this.countryCode,\n \"roleId\": req.roleId\n };\n\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n }).set('Cache-Control', 'no-cache')\n .set('Pragma', 'no-cache'),\n };\n\n return this.http.post(requestUrl, request, httpOptions);\n }\n\n /**\n * Name: prsSaveData\n * purpose: To save prsSaveData\n * @param {any} req - req details to be get\n * @return {Observable} response customer remark flag.\n */\n prsSaveData(req: any): Observable {\n const requestUrl = this.uri + 'customer360/prs-savedata';\n const request = {\n \"callEndTime\": req.callEndTime,\n \"callStartTime\": req.callStartTime,\n \"callTypeSeq\": req.callTypeSeq,\n \"customerContactInd\": req.customerContactInd,\n \"customerId\": req.customerId,\n \"dealerCode\": req.dealerCode,\n \"levelData\": req.levelData,\n \"remark\": req.remark,\n \"responseForNo\": req.responseForNo,\n \"serviceDueDate\": req.serviceDueDate,\n \"userID\": req.userID,\n \"vin\": req.vin,\n \"customerType\": req.customerType,\n \"phoneNo\": req.phoneNo,\n \"customerName\": req.customerName,\n \"role\":req.role,\n \"jobCardNo\": req.jobCardNo\n };\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n countryCode:this.countryCode,\n roleId: req.roleId\n })\n };\n return this.http.post(requestUrl, request, httpOptions);\n }\n\n /**\n * Name: prsSendinfo\n * purpose: To send info sms\n * @param {string} customerName - customer customerName whom details to be get\n * @param {string} number - customer number whom details to be get\n * @return {Observable} response flag.\n */\n prsSendinfo(customerName: string, number: string): Observable {\n const request = this.uri + 'customer360/prs-sendinfo';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n name: customerName,\n number: number\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: prsCallListinfo\n * purpose: To get call list counts\n * @param {string} userId - UserId\n * @return {Observable} response call count and list info.\n */\n prsCallListinfo(userId: string, roleId: string): Observable {\n const request = this.uri + 'callList/prscallListinfo';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n userId: userId,\n countryCode: this.countryCode,\n roleId: roleId\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: forgotPassword\n * purpose: To Forgot Password\n * @param {string} username - The username who is signing in\n * @param {string} email - The email\n * @return {Observable} response if the user is authenticated.\n */\n forgotPassword(username: string, email: string): Observable {\n const requestUrl = this.uri + 'auth/forgot-password';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n userId: username,\n email: email,\n //roleId: this.roleId\n })\n };\n return this.http.get(requestUrl, httpOptions);\n }\n\n /**\n * Name: amccustomercallList\n * purpose: To get customer list\n * @param {string} flag - type of call status to fatch customer list\n * @return {Observable} response customer list.\n */\n amccustomercallList(flag: string, userId: string, userRoleId: string): Observable {\n const request = this.uri + 'callList/amccustomercallList';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n listType: flag,\n userId: userId,\n userRoleId: userRoleId\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: amcCallListinfo\n * purpose: To get call list counts\n * @param {string} userId - UserId\n * @param {string} userRoleId - userRoleId\n * @return {Observable} response call count and list info.\n */\n amcCallListinfo(userId: string, userRoleId:string): Observable {\n const request = this.uri + 'callList/amccallListinfo';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n userId: userId,\n userRoleId: userRoleId\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: getdealerCode\n * purpose: To get dealer list\n * @param {string} region - type of region to fatch dealer list\n * @return {Observable} response dealer list.\n */\n getdealerCode(region: string): Observable {\n const request = this.uri + 'reports/prs-getDealer';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n region: region\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: getamccustomerdata\n * purpose: To get customer details\n * @param {string} userID - Id of the user\n * @param {string} customerId - customer id whom details to be get\n * @param {string} workshopCode - workshop Code whom details to be get\n * @param {string} callTypeSeq - call Type\n * @return {Observable} response customer details.\n */\n getamccustomerdata(userId: string, customerId: string, workshopCode: string, callTypeSeq: string, userRoleId: string): Observable {\n const request = this.uri + 'customer360/getamccustomerdata';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n creId: userId,\n custCode: customerId,\n workshopCode: workshopCode,\n callTypeSeq: callTypeSeq,\n userRoleId: userRoleId\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: amcContactdetail\n * purpose: To get customer contact detail\n * @param {string} customerID - customer id whom details to be get\n * @return {Observable} response customer details.\n */\n amcContactdetail(customerID: string): Observable {\n const request = this.uri + 'customer360/amc-contact-detail';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n custCode: customerID\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: amcUpdateNumber\n * purpose: To set customer number status\n * @param {string} number - customer number\n * @param {string} contactNoOld - customer number\n * @param {string} type - customer number type\n * @param {string} custId - customer id\n * @param {string} userId - userId id\n * @return {Observable} response status.\n */\n amcUpdateNumber(number: string, contactNoOld: string, type: string, custId: string, userId: string): Observable {\n const request = this.uri + 'customer360/amc-update-contact';\n\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n contactNoNew: number,\n contactNoOld: contactNoOld,\n custId: custId,\n userId: userId,\n isPrimary: type\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: getBookingFollowupCount\n * purpose: To get Booking & Followup Count\n * @param {string} customerID - customer id whom details to be get\n * @param {string} vin - vehicle vin No\n * @return {Observable} response count.\n */\n getBookingFollowupCount(customerID: string, vin: string, module: string): Observable {\n const request = this.uri + 'customer360/getBookingFollowupCount';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n custCode: customerID,\n vin: vin,\n module: module\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: dataGrid\n * purpose: To get dataGrid details\n * @param {string} userId - cre userid\n * @param {string} roleId - roleid\n * @param {string} startDate - start date\n * @param {string} endDate - end date\n * @param {string} workshopFilter - workshop code\n * @return {Observable} response kpi list.\n */\n getBookingReport(userId: string, roleId: string, startDate: string, endDate: string, workshopFilter: string, reportType: string): Observable {\n let request = this.uri + 'reports/getbookingreport';\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n userId: userId,\n roleId: roleId,\n startDate: startDate,\n endDate: endDate,\n workshopFilter: workshopFilter,\n reportType: reportType,\n countryCode: this.countryCode\n });\n return this.http.get(request, { headers, responseType: 'blob' as 'blob' });\n }\n\n /**\n * Name: getDataGridExcelReport\n * purpose: To get data grid details\n * @param {string} region - region\n * @param {string} verticle - verticle\n * @param {string} dealerCode - dealerCode\n * @param {string} from - start date\n * @param {string} to - end date\n * @param {string} reportType - reportType\n * @return {Observable} response binary data object.\n */\n getDataGridExcelReport(region: string, verticle: string, dealerCode: string, from: string, to: string, reportType: string, userId: string, roleId: string): Observable {\n let request = this.uri + 'reports/getDataGridExcel';\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n region: region,\n vertical: verticle,\n dealerCode: dealerCode,\n fromDate: from,\n toDate: to,\n reportType: reportType,\n userId: userId,\n roleId: roleId,\n countryCode: this.countryCode\n });\n return this.http.get(request, { headers, responseType: 'blob' as 'blob' });\n }\n\n /**\n * Name: getRegionValue\n * purpose: To get region details\n * @return {Observable} response region list\n */\n getRegionValue(): Observable {\n const requestUrl = this.uri + 'reports/ms-getWorkshopRegions';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n })\n };\n return this.http.get(requestUrl, httpOptions);\n }\n\n /**\n * Name: getLeadExcelReport\n * purpose: To get Lead Excel Report\n * @return {Observable} response binary data object.\n */\n getLeadExcelReport(req: any): Observable {\n const requestURl = this.uri + 'reports/getMSLeadReport';\n const request = {\n \"region\": req.region,\n \"workshopCode\": req.workshopCode,\n \"serviceTypeCode\": req.serviceTypeCode,\n \"startDate\": req.startDate,\n \"endDate\": req.endDate,\n \"vehicalAge\": req.vehicalAge,\n \"lostCust\": req.lostCust,\n \"userId\": req.userId\n };\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n });\n return this.http.post(requestURl, request, { headers, responseType: 'blob' as 'blob' });\n }\n\n /**\n * Name: getMarketShareReport\n * purpose: To get Market Share Report\n * @param {string} region - region\n * @param {string} workshopCode - workshopCode\n * @param {string} serviceTypeCode - serviceTypeCode\n * @param {string} startDate - start date\n * @param {string} endDate - end date\n * @param {string} vehicalAge - vehicalAge\n * @param {string} lostCust - lostCust\n * @param {string} userId - userId\n * @return {Observable} response binary data object.\n */\n getMarketShareReport(req: any): Observable {\n const requestURl = this.uri + 'reports/fetchMSReportData';\n const request = {\n \"region\": req.region,\n \"workshopCode\": req.workshopCode,\n \"serviceTypeCode\": req.serviceTypeCode,\n \"startDate\": req.startDate,\n \"endDate\": req.endDate,\n \"vehicalAge\": req.vehicalAge,\n \"lostCust\": req.lostCust,\n \"userId\": req.userId\n };\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n });\n return this.http.post(requestURl, request, { headers, responseType: 'blob' as 'blob' });\n }\n\n /**\n * Name: getMSDealerCode\n * purpose: To get dealer list\n * @param {string} region - type of region to fatch dealer list\n * @return {Observable} response dealer list.\n */\n getMSDealerCode(region: string): Observable {\n const request = this.uri + 'reports/ms-getDealer';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n region: region\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: fetchNotification\n * purpose: To fetch notification detail\n * @param {string} userId - USER id\n * @return {Observable} response status.\n */\n fetchNotification(userId: string): Observable {\n const request = this.uri + 'callManagement/fetchNotification';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n userId: userId\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: updateNotification\n * purpose: To update notification status\n * @param {string} userId - USER id\n * @return {Observable} response status.\n */\n updateNotification(userId: string): Observable {\n const request = this.uri + 'callManagement/updateNotification';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n userId: userId\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: getDashboardReport\n * purpose: To export report as excel\n * @param {string} startDate - start date\n * @param {string} endDate - end date\n * @param {string} userId userId\n * @param {string} roleId - cre roleId\n * @param {string} creid creid\n * @param {string} serviceType serviceType\n * @param {string} workshopFilter - WorkshopCode\n * @return {Observable} response binary data object.\n */\n getDashboardReport(userId: string, roleId: string, creId: string, startDate: string, endDate: string, serviceType: string, workshopFilter: string): Observable {\n let request = this.uri + 'reports/getdashboardreport';\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n userId: userId,\n roleId: roleId,\n creId: creId,\n startDate: startDate,\n endDate: endDate,\n workshopCode: workshopFilter,\n serviceType: serviceType,\n\t countryCode: this.countryCode\n });\n return this.http.get(request, { headers, responseType: 'blob' as 'blob' });\n }\n\n /**\n * Name: getLanguage\n * purpose: To get language details\n * @return {Observable} response language list\n */\n getLanguage(): Observable {\n const requestUrl = this.uri + 'customer360/getlanguage';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n })\n };\n return this.http.get(requestUrl, httpOptions);\n }\n\n /**\n * Name: getRowLeadDataExcelReport\n * purpose: To get lead raw data Report\n * @param {string} region - region\n * @param {string} verticle - verticle\n * @param {string} dealerCode - dealerCode\n * @param {string} from - start date\n * @param {string} to - end date\n * @param {string} reportType - reportType\n * @return {Observable} response binary data object.\n */\n getRowLeadDataExcelReport(region: string, verticle: string, dealerCode: string, from: string, to: string, reportType: string, roleId: string): Observable {\n let request = this.uri + 'reports/getleadrawreport';\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n region: region,\n vertical: verticle,\n dealerCode: dealerCode,\n fromDate: from,\n toDate: to,\n reportType: reportType,\n roleId: roleId,\n countryCode: this.countryCode\n });\n return this.http.get(request, { headers, responseType: 'blob' as 'blob' });\n }\n\n /**\n * Name: getPRSRowLeadDataExcelReport\n * purpose: To get prs lead raw data Report\n * @param region\n * @param vertical\n * @param dealerCode\n * @param from\n * @param to\n * @param reportType\n * @param userId\n * @param roleId\n */\n getPRSRowLeadDataExcelReport(region: string, vertical: string, dealerCode: string, from: string, to: string, reportType: string, userId: string, roleId: string): Observable {\n let request = this.uri + 'reports/leadRawReportDealerPRS';\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n region: region,\n vertical: vertical,\n dealerCode: dealerCode,\n dateFrom: from,\n dateTo: to,\n reportType: reportType,\n creId: userId,\n roleId: roleId,\n countryCode: this.countryCode\n });\n return this.http.get(request, { headers, responseType: 'blob' as 'blob' });\n }\n\n /**\n * Name: getDropdownData\n * purpose: To get dropdown data for customer response\n * @param {number} callType - type of response\n * @return {Observable} response data object for response dropdown.\n */\n getAMCDropdownData(callType: number): Observable {\n const request = this.uri + 'customer360/amc-customeresponse';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n callType: callType && callType.toString()\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: getAMCDataReport\n * purpose: To export report as excel\n * @param {string} from - start date\n * @param {string} to - end date\n * @param {string} selectedProductType selectedProductType\n * @return {Observable} response binary data object.\n */\n getAMCDataReport(req: any): Observable {\n let requestURl = this.uri + 'reports/getAMCDataReport';\n const request = {\n \"fromDate\": req.fromDate,\n \"toDate\": req.toDate,\n \"userId\": req.userId,\n \"userRoleId\": req.userRoleId\n };\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n });\n return this.http.post(requestURl, request, { headers, responseType: 'blob' as 'blob' });\n }\n\n /**\n * Name: getAMCLeadLevelReport\n * purpose: To export report as excel\n * @param {string} from - start date\n * @param {string} to - end date\n * @param {string} userId creid\n * @param {string} roleId - cre roleId\n * @param {string} workshopCode - WorkshopCode\n * @return {Observable} response binary data object.\n */\n getAMCLeadLevelReport(from: string, to: string, selectedProductType: string, userId: string, userRolesId: string): Observable {\n let request = this.uri + 'reports/getAMCLeadLevelReport';\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n fromDate: from,\n toDate: to,\n reportType: selectedProductType,\n userId: userId,\n userRoleId: userRolesId\n });\n return this.http.get(request, { headers, responseType: 'blob' as 'blob' });\n }\n\n /**\n * Name: callDetails\n * purpose: To get call list\n * @param {string} custCode - custCode\n * @param {string} vin - vin\n * @return {Observable} response status.\n */\n fetchCustCallSeq(custCode: string, vin: string, userRoleId: string, userId: string): Observable {\n const request = this.uri + 'customer360/amc-fetch-cust-call-seq';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n custCode: custCode,\n vin: vin,\n userRole: userRoleId,\n userId: userId\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: amcSaveData\n *\n * purpose: To save customer details and response\n * @param {object} custData - customer details\n * @return {Observable} response flag and status.\n */\n amcSaveData(req: any): Observable {\n const requestUrl = this.uri + 'customer360/amc-savedata';\n const request = {\n \"custCde\": req.customerId,\n \"vin\": req.vin,\n \"callTypeSaq\": req.callTypeSeq,\n \"callStartTime\": req.callStartTime,\n \"callEndTime\": req.callEndTime,\n \"custCntctInd\": req.customerContactInd,\n \"responseForNo\": req.responseForNo,\n \"workShop\": req.workShop,\n \"levelData\": req.levelData,\n \"remarks\": req.remark,\n \"userId\": req.userId,\n \"amcNewOffering\": req.amcNewOffering,\n \"amcRenewal\": req.amcRenewal,\n \"insuranceRenewal\": req.insuranceRenewal,\n \"extendedWarranty\": req.extendedWarranty,\n \"customerType\": req.customerType,\n \"phoneNo\": req.phoneNo,\n \"customerName\": req.customerName,\n \"role\": req.role,\n \"userRoleId\": req.userRoleId\n };\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n })\n };\n return this.http.post(requestUrl, request, httpOptions);\n }\n\n /**\n * Name: getAmcFetchQuestions\n * purpose: To get Amc Questions\n * @param {string} userId - userId\n * @param {string} category - questions category\n * @param {string} roleId - roleId\n * @return {Observable} response customer details.\n */\n getAmcFetchQuestions(userId: string, category: string, roleId: string): Observable {\n const request = this.uri + 'customer360/amc-fetch-questions';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n userId: userId,\n category: category,\n roleId: roleId\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: amcSaveVinFeedback\n * purpose: To save amcSaveVinFeedback\n * @param {any} req - req details to be get\n * @return {Observable} response customer remark flag.\n */\n amcSaveVinFeedback(req: any): Observable {\n const requestUrl = this.uri + 'customer360/amc-save-vin-feedback';\n const request = {\n \"userId\": req.userId,\n \"custCode\": req.customerId,\n \"vin\": req.vin,\n \"workshopCode\": req.workshopCode,\n \"amcFeedback\": req.amcFeedback,\n \"amcReFeedback\": req.amcReFeedback,\n \"ewFeedback\": req.ewFeedback,\n \"irFeedback\": req.irFeedback,\n \"amcNewOffering\": req.amcNewOffering,\n \"amcRenewal\": req.amcRenewal,\n \"insuranceRenewal\": req.insuranceRenewal,\n \"extendedWarranty\": req.extendedWarranty,\n \"customerType\": req.customerType,\n \"phoneNo\": req.phoneNo,\n \"customerName\": req.customerName,\n };\n\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n })\n };\n return this.http.post(requestUrl, request, httpOptions);\n }\n\n /**\n * Name: getAutoFilledQuestions\n * purpose: To get Auto filled Questions\n * @param {string} userId - userId\n * @param {string} category - questions category\n * @param {string} customerId - customerId\n * @return {Observable} response customer details.\n */\n getAutoFilledQuestions(customerId: string, category: string, userId: string, vin: string): Observable {\n const request = this.uri + 'customer360/amc-fetch-autofill-question';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n custCode: customerId,\n category: category,\n userId: userId,\n vin: vin,\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: getWorkshopAppointmentFlag\n * purpose: To get Workshop Appointment Falg\n * @param {string} workshopCode - workshopCode\n * @param {string} countryCode - countryCode\n * @return {Observable} response Workshop Appointment Falg details.\n */\n getWorkshopAppointmentFlag(workshopCode: string): Observable {\n const request = this.uri + 'customer360/getWorkshopAppointmentFlag';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n workshopCode: workshopCode,\n countryCode: this.countryCode\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: getcustCallList\n * purpose: To get call list based on customerId\n * @return {Observable} response call list\n */\n getCustCallList(creId: string, callDoneInd: string, custCode: string): Observable {\n const requestUrl = this.uri + 'callList/custCallList';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n creId: creId,\n callDoneInd: callDoneInd,\n custCode: custCode,\n countryCode: this.countryCode\n })\n };\n return this.http.get(requestUrl, httpOptions);\n }\n\n /**\n * Name: getFollowUpCallList\n * purpose: To get follow up call list based on creId\n * @return {Observable} response follow up call list\n */\n getFollowUpCallList(creId: string, callDoneInd: string): Observable {\n const requestUrl = this.uri + 'callList/followupcallList';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n creId: creId,\n callDoneInd: callDoneInd,\n countryCode: this.countryCode\n })\n };\n return this.http.get(requestUrl, httpOptions);\n }\n\n /**\n * Name: getcustCallList\n * purpose: To get call list based on customerId\n * @return {Observable} response call list\n */\n getPRSCustCallList(callDoneInd: string, callType: string, custCode: string, roleId: string, userId: string): Observable {\n const requestUrl = this.uri + 'callList/prsCustCallList';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n callDoneInd: callDoneInd,\n callType: callType,\n custCode: custCode,\n countryCode: this.countryCode,\n roleId: roleId,\n userId: userId\n })\n };\n return this.http.get(requestUrl, httpOptions);\n }\n\n /**\n * Name: getFollowUpCallList\n * purpose: To get follow up call list based on creId\n * @return {Observable} response follow up call list\n */\n getPRSFollowUpCallList(callType: string, roleId: string, userId: string): Observable {\n const requestUrl = this.uri + 'callList/prsFollowupcallList';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n callType: callType,\n countryCode: this.countryCode,\n roleId: roleId,\n userId: userId\n })\n };\n return this.http.get(requestUrl, httpOptions);\n }\n\n /**\n * Name: getUserDetails\n * purpose: To get sign in user data\n * @param {string} userId - The userId who is signing in\n * @return {Observable} response user info\n */\n getSigninCheck(userId: string): Observable {\n const requestUrl = this.uri + 'auth/getSigninCheck';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n userId: userId\n })\n };\n return this.http.get(requestUrl, httpOptions);\n }\n\n /**\n * Name: getSigninUpdate\n * purpose: To save uam customer details and response\n * @param {object} userData - uam customer details\n * @return {Observable} response flag and status.\n */\n getSigninUpdate(userId: string, flag: string, count: string): Observable {\n const request = this.uri + 'auth/getSigninUpdate';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n userId: userId,\n flag: flag,\n count: count\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: getCDMStats\n * purpose: To get states value\n * @param {string} creID - customer id whom details to be get\n * @return {Observable} response customer details.\n */\n getCDMStats(creID: string, role: string): Observable {\n const request = this.uri + 'customer360/fetchStatusCount';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n userId: creID,\n role: role\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: cdmCallList\n * purpose: To get customer list\n * @param {string} dealerCode - dealer code\n * @param {string} flag - type of call status to fatch customer list\n * @return {Observable} response customer list.\n */\n cdmCallList(userId: string, role: string, req: any): Observable {\n const requestUrl = this.uri + 'customer360/fetchCdmData';\n const request = {\n \"invalidType\" : req.invalidType,\n \"status\" : req.status,\n \"startDate\" : req.startDate,\n \"endDate\" : req.endDate,\n \"sourceId\" : req.sourceId,\n \"type\" : req.type\n };\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n userId : userId,\n role : role\n })\n };\n return this.http.post(requestUrl, request, httpOptions);\n }\n\n /**\n * Name: getCustomerDetail\n * purpose: To get Customer Detail\n * @param {string} custId - customer id whom details to be get\n * @return {Observable} response customer details.\n */\n getCustomerDetail(custId: string, ticketId: string, userId: string, role: string): Observable {\n const request = this.uri + 'customer360/fetchCDMCustomerData';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n userId: userId,\n role: role,\n custId: custId,\n ticketId: ticketId,\n countryCode: this.countryCode\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: cdmCallList\n * purpose: To get customer list\n * @param {string} dealerCode - dealer code\n * @param {string} flag - type of call status to fatch customer list\n * @return {Observable} response customer list.\n */\n saveCdmActualData(userId: string, role: string, req: any): Observable {\n const requestUrl = this.uri + 'customer360/saveCdmActualData';\n const httpOptions = {\n headers: new HttpHeaders({\n userId: userId,\n role: role,\n model: req.model\n })\n };\n return this.http.post(requestUrl, req.file, httpOptions);\n }\n\n /**\n * Name: updateCdmStatus\n * purpose: To get customer list\n * @param {string} dealerCode - dealer code\n * @param {string} flag - type of call status to fatch customer list\n * @return {Observable} response customer list.\n */\n updateCdmStatus(userId: string, role: string, req: any): Observable {\n const requestUrl = this.uri + 'customer360/updateCdmStatus';\n const httpOptions = {\n headers: new HttpHeaders({\n userId: userId,\n role: role,\n model: req.model\n })\n };\n return this.http.post(requestUrl, req.file, httpOptions);\n }\n\n /**\n * Name: getCustomerDetail\n * purpose: To get Customer Detail\n * @param {string} custId - customer id whom details to be get\n * @return {Observable} response customer details.\n */\n fetchCdmDBData(custId: string, ticketId: string, userId: string, role: string): Observable {\n const request = this.uri + 'customer360/fetchCdmDBData';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n userId: userId,\n role: role,\n custId: custId,\n ticketId: ticketId\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: getCustomerDetail\n * purpose: To get Customer Detail\n * @param {string} file - customer id whom details to be get\n * @return {Observable} response customer details.\n */\n downloadFile(file: string): Observable {\n let request = this.uri + 'customer360/download-file';\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n file: file\n });\n return this.http.get(request, { headers, responseType: 'blob' as 'blob' });\n }\n\n /**\n * Name: updateCdmStatus\n * purpose: To get customer list\n * @param {string} dealerCode - dealer code\n * @param {string} flag - type of call status to fatch customer list\n * @return {Observable} response customer list.\n */\n createNewTicket(userId: string, role: string, req: any): Observable {\n const requestUrl = this.uri + 'customer360/saveCdmData';\n const httpOptions = {\n headers: new HttpHeaders({\n userId: userId,\n role: role,\n model:req.model\n })\n };\n return this.http.post(requestUrl, req.file, httpOptions);\n }\n\n /**\n * Name: getCustomerDetail\n * purpose: To get Customer Detail\n * @param {string} custId - customer id whom details to be get\n * @return {Observable} response customer details.\n */\n fetchLogs(custId: string, ticketId: string, userId: string, role: string): Observable {\n const request = this.uri + 'customer360/fetchLogs';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n userId: userId,\n role: role,\n custId: custId,\n ticketId: ticketId\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: callAPI\n * purpose: To call customer\n * @param {string} userId - userId\n * @param {string} userContactNo - userContactNo\n * @return {Observable} response blob file.\n */\n callAPI(userId: string, userContactNo: string, customerContactNo: string): Observable {\n const request = this.uri + 'callManagement/callRecordURL';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n creId: userId,\n creContactNo: userContactNo,\n customerContactNo: customerContactNo\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n saveCustomerDetails(moduleName: string, transId: any, customerID: string, callNumber: any, userContactNo: string, creId: string) {\n const request = this.uri + 'callManagement/saveCustDetail';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n module: moduleName,\n callId: transId,\n customerId: customerID,\n customerNo: callNumber,\n creNo: userContactNo,\n creId: creId\n }).set('Cache-Control', 'no-cache')\n .set('Pragma', 'no-cache'),\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: getNewRowDataExcelReport\n * purpose: To get data grid details after 31st dec 2022\n * @param {string} region - region\n * @param {string} verticle - verticle\n * @param {string} dealerCode - dealerCode\n * @param {string} from - start date\n * @param {string} to - end date\n * @param {string} reportType - reportType\n * @return {Observable} response binary data object.\n */\n getNewPRSRowDataExcelReport(region: string, verticle: string, dealerCode: string, from: string, to: string, reportType: string, userId: string, roleId: string): Observable {\n let request = this.uri + 'reports/newRawDataReportDealerPRS';\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n region: region,\n vertical: verticle,\n dealerCode: dealerCode,\n dateFrom: from,\n dateTo: to,\n reportType: reportType,\n creId: userId,\n roleId: roleId,\n countryCode: this.countryCode\n });\n return this.http.get(request, { headers, responseType: 'blob' as 'blob' });\n }\n\n /**\n * Name: getNewPRSExportExcelReport\n * purpose: To get prs export excel afte 31st dec 2022\n * @param region\n * @param vertical\n * @param workshop\n * @param startDate\n * @param endDate\n * @param userId\n * @param roleId\n */\n getNewPRSExportExcelReport(region: string, vertical: string, workshop: string, startDate: string, endDate: string, userId: string, roleId: string): Observable {\n let request = this.uri + 'reports/newDetailedDataReportDealerPRS';\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n regionFilter: region,\n verticalFilter: vertical,\n workshopFilter: workshop,\n startDate: startDate,\n endDate: endDate,\n userId: userId,\n roleId: roleId,\n countryCode: this.countryCode\n }).set('Cache-Control', 'no-cache')\n .set('Pragma', 'no-cache');\n return this.http.get(request, { headers, responseType: 'blob' as 'blob' });\n }\n\n fetchCdmData(Data) {\n // const request = 'http://169.38.80.10:30066/cdm/fetchData';\n const request = this.uri + 'customer360/fetchData';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n 'clientId': 'Service App',\n 'clientSecret': 'CDMClientKey'\n })\n };\n return this.http.post(request, Data, httpOptions);\n }\n\n /**\n * Name: getOperationalDashboardReport\n * purpose: To export Operational Dashboard Report as excel\n * @param {string} userId creid\n * @return {Observable} response binary data object.\n */\n getOperationalDashboardReport(userId: string): Observable {\n let request = this.uri + 'reports/operationalDashboardReport';\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n userId: userId\n });\n return this.http.get(request, { headers, responseType: 'blob' as 'blob' });\n }\n\n /**\n * Name: getNewPRSRowLeadDataExcelReport\n * purpose: To get prs lead raw data Report after 31 dec 2022\n * @param region\n * @param vertical\n * @param dealerCode\n * @param from\n * @param to\n * @param reportType\n * @param userId\n * @param roleId\n */\n getNewPRSRowLeadDataExcelReport(region: string, vertical: string, dealerCode: string, from: string, to: string, reportType: string, userId: string, roleId: string): Observable {\n let request = this.uri + 'reports/newLeadRawReportDealerPRS';\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n region: region,\n vertical: vertical,\n dealerCode: dealerCode,\n dateFrom: from,\n dateTo: to,\n reportType: reportType,\n creId: userId,\n roleId: roleId,\n countryCode: this.countryCode\n })\n return this.http.get(request, { headers, responseType: 'blob' as 'blob' });\n }\n\n /**\n * Name: getLostCustomerProcessReport()\n * purpose: To export report as excel\n * @param {string} from - start date\n * @param {string} to - end date\n * @param {string} userId creid\n * @param {string} roleId - cre roleId\n * @param {string} workshopCode - WorkshopCode\n * @return {Observable} response binary data object.\n */\n getLostCustomerProcessReport(from: string, to: string, userId: string, roleId: string, workshopCode: string): Observable {\n let request = this.uri + 'reports/getLostCustomerProcessReport';\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n userId: userId,\n roleId: roleId,\n fromDate: from,\n toDate: to,\n workshopFilter: workshopCode,\n countryCode: this.countryCode\n }).set('Cache-Control', 'no-cache')\n .set('Pragma', 'no-cache');\n return this.http.get(request, { headers, responseType: 'blob' as 'blob' });\n }\n\n /**\n * Name: LostCustomerList\n * purpose: To get customer contact detail\n * @param {string} creID - customer id whom details to be get\n * @return {Observable} response customer details.\n */\n getLostCreCallStats(smeId: string): Observable {\n const request = this.uri + 'callList/lostcustCallStats';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n creId: smeId,\n countryCode: this.countryCode\n }).set('Cache-Control', 'no-cache')\n .set('Pragma', 'no-cache'),\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: lostCallListinfo\n * purpose: To get call list counts\n * @param {string} dealerCode - dealer code\n * @return {Observable} response call count and list info.\n */\n lostCallListinfo(smeId: string): Observable {\n const request = this.uri + 'callList/lostCustCallsCount';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n creId: smeId,\n countryCode: this.countryCode\n }).set('Cache-Control', 'no-cache')\n .set('Pragma', 'no-cache'),\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: LostcustomercallList\n * purpose: To get customer list\n * @param {string} dealerCode - dealer code\n * @param {string} flag - type of call status to fatch customer list\n * @return {Observable} response customer list.\n */\n lostCustomerCallList(smeId: string, flag: string): Observable {\n const request = this.uri + 'callList/lostcustProposalCallList';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n creId: smeId,\n callDoneInd: flag,\n countryCode: this.countryCode\n }).set('Cache-Control', 'no-cache')\n .set('Pragma', 'no-cache'),\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: LostcustomercallList\n * purpose: To get customer list\n * @param {string} dealerCode - dealer code\n * @param {string} flag - type of call status to fatch customer list\n * @return {Observable} response customer list.\n */\n lostCustomerVisitCallList(smeId: string, flag: string): Observable {\n const request = this.uri + 'callList/lostcustVisitingCallList';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n creId: smeId,\n callDoneInd: flag,\n countryCode: this.countryCode\n }).set('Cache-Control', 'no-cache')\n .set('Pragma', 'no-cache'),\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: visitCallListinfo\n * purpose: To get call list counts\n * @param {string} dealerCode - dealer code\n * @return {Observable} response call count and list info.\n */\n visitCallListinfo(smeId: string): Observable {\n const request = this.uri + 'callList/visitCustCallCount';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n creId: smeId,\n countryCode: this.countryCode\n }).set('Cache-Control', 'no-cache')\n .set('Pragma', 'no-cache'),\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: getcustomerdata\n * purpose: To get customer details\n * @param {string} customerID - customer id whom details to be get\n * @param {string} dealerCode - login dealer's codeF\n * @return {Observable} response customer details.\n */\n getLostcustomerdata(customerID: string, dealerCode: string, vin: string): Observable {\n const request = this.uri + 'customer360/getlostcustomerdata';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n customerID: customerID,\n dealerCode: dealerCode,\n vin: vin,\n countryCode:this.countryCode\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n getLostDropdownData(callType: number): Observable {\n const request = this.uri + 'customer360/lostcustomeresponse';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n callType: callType && callType.toString(),\n countryCode:this.countryCode\n }).set('Cache-Control', 'no-cache')\n .set('Pragma', 'no-cache'),\n };\n return this.http.get(request, httpOptions);\n }\n\n getLostBookingFollowupCount(customerID: string, vin: string, module: string): Observable {\n const request = this.uri + 'customer360/getlostcustomerBookingFollowupCount';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n custCode: customerID,\n vin: vin,\n module: module\n }).set('Cache-Control', 'no-cache')\n .set('Pragma', 'no-cache'),\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: getAutoFillVisitReport\n * purpose: To auto fill visit report in lost customer module\n */\n getAutoFillVisitReport():Observable {\n const request = this.uri + 'customer360/getAutofillVisitReport';\n const httpOptions={\n headers:new HttpHeaders({\n vin: localStorage.getItem('chassisNo'),\n custcode:localStorage.getItem('customerId'),\n countryCode:this.countryCode\n }).set('Cache-Control','no-cache')\n .set('Pragma','no-cache'),\n };\n return this.http.get(request,httpOptions);\n }\n\n /**\n * Name: saveVisitReportForm\n * purpose: To save visit report in lost customer module\n */\n saveVisitReportForm(totalFleetCount:string, newProposal:string, newVehicle:string, softOff:string, remark:string, workshopVisit:string, attachmentName:string, file:any){\n const request = this.uri + 'customer360/saveAutofillVisitReport';\n const httpOptions = {\n headers: new HttpHeaders({\n vin:localStorage.getItem('chassisNo'),\n customerId:localStorage.getItem('customerId'),\n countryCode:this.countryCode,\n totalFleetCount:totalFleetCount,\n newProposal:newProposal,\n newVehicle:newVehicle,\n softOff:softOff,\n remark:remark,\n workshopVisit:workshopVisit,\n visitPhoto:attachmentName\n }),\n };\n return this.http.post(request, file, httpOptions);\n }\n\n /**\n * Name: saveLostCustomerData\n * purpose: To save lost customer details and response\n * @param {object} custData - customer details\n * @return {Observable} response flag and status.\n */\n saveLostCustomerData(custData: any): Observable {\n const request = this.uri + 'customer360/savelostcustomerdata';\n const httpOptions = {\n headers: new HttpHeaders({\n countryCode: this.countryCode,\n 'Content-Type': 'application/json',\n }).set('Cache-Control', 'no-cache')\n .set('Pragma', 'no-cache'),\n };\n return this.http.post(request, custData, httpOptions);\n }\n\n getCustomerProfile(customerCode:string){\n const request=this.uri + 'customer360/customerVehicleProfile';\n const httpOptions ={\n headers:new HttpHeaders({\n customerCode:customerCode,\n countryCode:this.countryCode\n }),\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: fetchWmCloseLeads\n * purpose: To fetch WM leads\n * @param {any} req - req details to be get\n * @return {Observable} response customer details.\n */\n fetchWmCloseLeads(userId: string) {\n const request = this.uri + 'customer360/fetchWmCloseLeads';\n const httpOptions ={\n headers: new HttpHeaders({\n userId: userId,\n countryCode:this.countryCode\n }),\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: updateLeadStatus\n * purpose: To update lead status WM lead update .\n */\n updateLeadStatus(customerCode: string, vin: string, leadStatus: string, remarks: string, userId: string) {\n const request = this.uri + 'customer360/wmLeadStatusUpdate';\n const httpOptions ={\n headers: new HttpHeaders({\n customerCode: customerCode,\n vin: vin,\n status: leadStatus,\n remarks: remarks,\n userId: userId,\n countryCode: this.countryCode\n }),\n };\n return this.http.get(request, httpOptions);\n }\n\n saveComplaintDialog(customerId: string, preferredLanguage: string, vehRegNo: string, vehicleType: string, chassisNo: string, dealerCode: string, complaintRemarks: string, category1: string, category2:string, category3: string, source: string, additionalRemarks: string){\n const requestUrl = this.uri + 'customer360/getComplaintId';\n const request = {\n \"CustomerId\" :customerId,\n \"Language\" :preferredLanguage,\n \"VehicleRegNo\" :vehRegNo ,\n \"VehicleType\" :vehicleType ,\n \"VehicleChassisNo\" : chassisNo,\n \"DealerScode\" : dealerCode,\n \"ComplaintDescription\" :complaintRemarks,\n \"Category1\" : category1,\n \"Category2\" : category2,\n \"Category3\" : category3,\n \"Source\" :source ,\n \"ComplaintRemark\" : additionalRemarks ,\n };\n\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n }).set('Cache-Control', 'no-cache')\n .set('Pragma', 'no-cache'),\n };\n return this.http.post(requestUrl,request, httpOptions);\n }\n\n complaintCheck(JCnumber: string, userRoleId: string, userId:string, callTypeCode: string,customerCode: string, vin: string) {\n const request = this.uri + 'customer360/CustomerComplaintCheck';\n const httpOptions ={\n headers: new HttpHeaders({\n customerCode: customerCode,\n JCnumber:JCnumber,\n vin: vin,\n callTypeCode: callTypeCode,\n userRoleId: userRoleId,\n userId: userId\n }),\n };\n return this.http.get(request, httpOptions);\n }\n\n saveComplaint( JCnumber: string, userRoleId: string, userId:string, callTypeCode: string, complaintId:string,customerCode: string, vin: string) {\n const request = this.uri + 'customer360/saveComplaint';\n const httpOptions ={\n headers: new HttpHeaders({\n customerCode: customerCode,\n JCnumber: JCnumber,\n vin: vin,\n complaintId: complaintId,\n callTypeCode: callTypeCode,\n userRoleId: userRoleId,\n userId: userId\n }),\n };\n return this.http.get(request, httpOptions);\n }\n\n complainUpdateCallList(customerId: string, chassisNo: string, JCnumber: string, callTypeCode: string, dealerCode: string, roleId: string){\n const request = this.uri + 'customer360/complainUpdateCallList';\n const httpOptions = {\n headers: new HttpHeaders({\n customerCode: customerId,\n vin: chassisNo,\n JCnumber: JCnumber,\n callTypeCode: callTypeCode,\n userId: dealerCode,\n userRoleId: roleId,\n countryCode: this.countryCode\n }),\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: prsFilterDashboard\n * purpose: To filter dashboard for prs\n */\n prsFilterDashboard(userId: any, roleId:any): Observable {\n const request = this.uri + 'reports/getPrsDashboardFilter';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n userId: userId,\n roleId: roleId,\n countryCode: this.countryCode\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: getprsDashboardResponseKpi\n * purpose: To get getPrsDashboardResponseKpi\n * @param {any} req - req details to be get\n * @return {Observable} response customer details.\n */\n\n getPrsDashboardResponseKpi(req: any): Observable {\n const requestUrl = this.uri + 'reports/getPrsDashboardResponseKpi';\n const request = {\n \"userId\": req.userId,\n \"roleId\": req.roleId,\n \"creId\": req.creId,\n \"workshopCode\": req.workshopCode,\n \"startDate\": req.startDate,\n \"endDate\": req.endDate,\n \"PrsRoleId\": req.PrsRoleId,\n \"callTypeSeq\": \"3\",\n \"countryCode\": this.countryCode\n };\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n })\n };\n return this.http.post(requestUrl,request, httpOptions);\n }\n\n getPrsDashboardComparisonKpi(req: any): Observable {\n const requestUrl = this.uri + 'reports/getPrsDashboardComparisonKpi';\n const request = {\n \"userId\": req.userId,\n \"roleId\": req.roleId,\n \"creId\": req.creId,\n \"workshopCode\": req.workshopCode,\n \"startDate\": req.startDate,\n \"endDate\": req.endDate,\n \"PrsRoleId\": req.PrsRoleId,\n \"callTypeSeq\": \"3\",\n \"countryCode\": this.countryCode\n };\n\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n }).set('Cache-Control', 'no-cache')\n .set('Pragma', 'no-cache'),\n };\n return this.http.post(requestUrl,request, httpOptions);\n }\n\n /**\n * Name: getDashboardKpi\n * purpose: To get getDashboardKpi\n * @param {any} req - req details to be get\n * @return {Observable} response customer details.\n */\n getPrsDashboardLeadKpi(req: any): Observable {\n const requestUrl = this.uri + 'reports/getPrsDashboardLeadKpi';\n const request = {\n \"userId\": req.userId,\n \"roleId\": req.roleId,\n \"creId\": req.creId,\n \"workshopCode\": req.workshopCode,\n \"startDate\": req.startDate,\n \"endDate\": req.endDate,\n \"PrsRoleId\": req.PrsRoleId,\n \"callTypeSeq\": \"3\",\n \"countryCode\": this.countryCode\n };\n\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n }).set('Cache-Control', 'no-cache')\n .set('Pragma', 'no-cache'),\n };\n return this.http.post(requestUrl,request, httpOptions);\n }\n\n /**\n * Name: workshopReassignmentList\n * purpose: To show reassignment list to call center agent\n */\n workshopReassignmentList(){\n const requestUrl = this.uri + 'customer360/LostCustWorkshopReassignmentList';\n const httpOptions = {\n headers: new HttpHeaders({\n countryCode: this.countryCode\n }),\n };\n return this.http.get(requestUrl, httpOptions);\n }\n\n /**\n * Name: lcWorkshopReassignmentVehicleDetails\n * purpose: To get vehicle details for reassignment to call center agent\n */\n lcWorkshopReassignmentVehicleDetails(customerCode:any){\n const requestUrl = this.uri + 'customer360/LCworkshopReassignmentVehicleDetails';\n const httpOptions = {\n headers: new HttpHeaders({\n countryCode: this.countryCode,\n customerCode:customerCode\n }),\n };\n return this.http.get(requestUrl, httpOptions);\n }\n\n /**\n * Name: LostCustWorkshopDetailsFilter\n * purpose: To get workshop details for reassignment to call center agent\n */\n LostCustWorkshopDetailsFilter(){\n const requestUrl = this.uri + 'customer360/LostCustWorkshopDetails';\n const httpOptions = {\n headers: new HttpHeaders({\n countryCode: this.countryCode,\n }),\n };\n return this.http.get(requestUrl, httpOptions);\n }\n\n /**\n * Name: saveWorkshopReassignment\n * purpose: To save workshop reassignment .\n */\n saveWorkshopReassignment(custData: any ){\n const requestUrl = this.uri + 'customer360/saveWorkshopReassignment';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n }).set('Cache-Control', 'no-cache')\n .set('Pragma', 'no-cache'),\n };\n return this.http.post(requestUrl,custData, httpOptions);\n }\n /**\n * Name: LCWorkshopManagerLeadsVehicleDetails\n * purpose: To get vehicle details for WM lead update .\n * @param {string} customerCode - customer code\n * @return {Observable} response object of vehicle details.\n */\n LCWorkshopManagerLeadsVehicleDetails(customerCode : string){\n const request= this.uri + 'customer360/LCWorkshopManagerLeadsVehicleDetails';\n const httpOptions = {\n headers: new HttpHeaders({\n customerCode: customerCode,\n countryCode: this.countryCode,\n }).set('Cache-Control', 'no-cache')\n .set('Pragma', 'no-cache')\n };\n return this.http.get(request,httpOptions);\n }\n\n /**\n * Name: getLostVisitFormReport\n * purpose: To download report of visit form .\n * @param {string} from - start date\n * @param {string} to - end date\n * @param {string} userId Userid\n * @param {string} roleId - cre roleId\n * @param {string} workshopCode - WorkshopCode\n * @return {Observable} response binary data object.\n */\n getLostVisitFormReport(from : string, to: string, userId: string, roleId: string, workshopCode: string) {\n let request = this.uri + 'reports/getLostSmeVisitReport';\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n userId: userId,\n roleId: roleId,\n fromDate: from,\n toDate: to,\n workshopFilter: workshopCode,\n countryCode: this.countryCode\n }).set('Cache-Control', 'no-cache')\n .set('Pragma', 'no-cache');\n return this.http.get(request, { headers, responseType: 'blob' as 'blob' });\n }\n\n /**\n * Name: LostCustomerVisitReportCheck\n * purpose: To check report of visit form .\n * @param {string} customerCode - start date\n * @param {string} vin - end date\n * @param {string} userId- userId\n * @return {Observable} response messagge abou visit report status.\n */\n LostCustomerVisitReportCheck(customerCode: string, vin: string, userId: string){\n const request= this.uri + 'reports/LostCustomerVisitReportCheck';\n const httpOptions = {\n headers: new HttpHeaders({\n customerCode: customerCode,\n vin: vin,\n userId: userId\n }).set('Cache-Control', 'no-cache')\n .set('Pragma', 'no-cache')\n };\n return this.http.get(request,httpOptions);\n }\n\n /**\n * Name: fetchBlockStatus\n * purpose: To get block owner number detail\n * @param {string} custCode - customer Code\n * @param {string} module - module\n * @return {Observable} response status.\n */\n fetchBlockStatus(custCode: string, module: string): Observable {\n const request = this.uri + 'customer360/fetchBlockStatus';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n custCode: custCode,\n module: module\n }).set('Cache-Control', 'no-cache')\n .set('Pragma', 'no-cache'),\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: prscustomercallListSearch\n * purpose: To get customer list\n * @param {string} flag - type of call status to fatch customer list\n * @return {Observable} response customer list.\n */\n prscustomercallListSearch(flag: string, callType: string, userId: string, roleId: string, vin: string): Observable {\n const request = this.uri + 'callList/prsSearchRecord';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n listType: flag,\n callType: callType,\n userId: userId,\n countryCode: this.countryCode,\n roleId: roleId,\n vin: vin\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: pipelineCustomerCallList\n * purpose: To get customer list\n * @param {string} flag - type of call status to fatch customer list\n * @return {Observable} response customer list.\n */\n pipelineCustomerCallList(creId: string): Observable {\n const request = this.uri + 'callList/pipeline-customerCallList';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n creId: creId,\n countryCode: this.countryCode\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: getPipelineDataReport\n * purpose: To download report of pipeline management .\n * @param {string} from - start date\n * @param {string} to - end date\n * @return {Observable} response binary data object.\n */\n getPipelineDataReport(fromDate: string, toDate: string, userId: string) {\n const request = this.uri + 'reports/getPipelineDataReport';\n const headers = new HttpHeaders({\n fromDate: fromDate,\n toDate: toDate,\n userId: userId\n }).set('Cache-Control', 'no-cache')\n .set('Pragma', 'no-cache');\n return this.http.get(request, { headers, responseType: 'blob' as 'blob' });\n }\n\n /**\n * Name: customerNameSuggestionFilter\n * purpose: To suggest names for search in pipeline management .\n * @return {Observable} response array data object.\n */\n customerNameSuggestionFilter() {\n const request = this.uri + 'callList/CustomerNameSuggestion';\n const httpOptions = {\n headers: new HttpHeaders({\n countryCode: this.countryCode,\n 'Content-Type': 'application/json',\n }).set('Cache-Control', 'no-cache')\n .set('Pragma', 'no-cache'),\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: pipelineSearchFilter\n * purpose: To filter data for search in pipeline management .\n * @return {Observable} response array data object.\n */\n pipelineSearchFilter(custCode: string, custMobile: string, regNo: string, custName: string, vin: string, startDate: string, endDate: string, model: string) {\n const request = this.uri + 'callList/getSearchCustomerData';\n const httpOptions = {\n headers: new HttpHeaders({\n custCode: custCode,\n custMobile: custMobile,\n regNo: regNo,\n custName: custName,\n vin: vin,\n startDate: startDate,\n endDate: endDate,\n model: model,\n countryCode: this.countryCode,\n 'Content-Type': 'application/json',\n }).set('Cache-Control', 'no-cache')\n .set('Pragma', 'no-cache'),\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: enquiryDialogFilter\n * purpose: To filter data for enquiry in pipeline management .\n * @return {Observable} response array data object.\n */\n enquiryDialogFilter() {\n const request = this.uri + 'callList/enquiryDropdowns';\n return this.http.get(request);\n }\n\n /**\n * Name: updatePipelineLeadStatus\n * purpose: To update lead status\n * @param {string} custData - customer data\n * @return {Observable} response message\n */\n updatePipelineLeadStatus(custData: any): Observable {\n const request = this.uri + 'callList/pipelineUpdateEnquiry';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n }).set('Cache-Control', 'no-cache')\n .set('Pragma', 'no-cache'),\n };\n return this.http.post(request, custData, httpOptions);\n }\n\n /**\n * Name: createPipelineEnquiry\n * purpose: To create pipeline enquiry\n * @param {string} custData - customer data\n * @return {Observable} response message\n */\n createPipelineEnquiry(custData: any): Observable {\n const request = this.uri + 'callList/pipelineCreateEnquiry';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n }).set('Cache-Control', 'no-cache')\n .set('Pragma', 'no-cache'),\n };\n return this.http.post(request, custData, httpOptions);\n }\n\n /**\n * Name: getModelSuggestionFilter()\n * purpose: To show suggestion for model to user .\n * @return {Observable} Array of vehicle models.\n */\n getModelSuggestionFilter() {\n const request = this.uri + 'callList/getVehicleModelSuggestion';\n const httpOptions = {\n headers: new HttpHeaders({\n countryCode: this.countryCode,\n 'Content-Type': 'application/json',\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n getSrmUpcomingServiceReport(from: string, to: string): Observable {\n let request = this.uri + 'reports/getSrmUpcomingServiceReport';\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n startDate: from,\n endDate: to,\n }).set('Cache-Control', 'no-cache')\n .set('Pragma', 'no-cache');\n return this.http.get(request, { headers, responseType: 'blob' as 'blob' });\n }\n\n /**\n * Name:getPipelineRegionWiseDataReport()\n * purpose: To export report as excel\n * @param {string} from - start date\n * @param {string} to - end date\n * @param {string} userId creid\n * @param {string} userRoleId - cre roleId\n * @return {Observable} response binary data object.\n */\n getPipelineRegionWiseDataReport(from: string, to: string, userId: string, userRoleId: string): Observable{\n let request = this.uri + 'reports/getPipelineRegionWiseDataReport';\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n userId: userId,\n userRoleId: userRoleId,\n fromDate: from,\n toDate: to,\n }).set('Cache-Control', 'no-cache')\n .set('Pragma', 'no-cache');\n return this.http.get(request, { headers, responseType: 'blob' as 'blob' });\n }\n\n /**\n * Name: getDoorstepCustomerVinDetails\n * purpose: To get vin data for Doorstep customer\n * @param {string} customerCode - customer code\n * @param {string} creId - creId\n * @param {string} vin - vin\n * @return {Observable} response data object for response auto dropdown.\n */\n getDoorstepCustomerVinDetails(customerCode: string, creId: string, vin: string): Observable {\n const request = this.uri + 'customer360/getDoorStepCustomerVinDetails-inbound';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n creId: creId,\n customerCode: customerCode,\n vin: vin\n }).set('Cache-Control', 'no-cache')\n .set('Pragma', 'no-cache'),\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: saveDoorstepServiceData\n * purpose: To save vehicle service details and response for doorstep\n * @param {object} serviceData - customer details\n * @return {Observable} response flag and status.\n */\n saveDoorstepServiceData(serviceData: any): Observable {\n const request = this.uri + 'inboundCall/saveDoorstepServiceData';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n countryCode: this.countryCode\n }).set('Cache-Control', 'no-cache')\n .set('Pragma', 'no-cache'),\n };\n return this.http.post(request, serviceData, httpOptions);\n }\n\n\n doorStepCustomerCallList(dealerCode: string, flag: string): Observable {\n const request = this.uri + 'callList/doorStepCustomerCallList';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n smeId: dealerCode,\n callDoneInd: flag,\n countryCode: this.countryCode\n }).set('Cache-Control', 'no-cache')\n .set('Pragma', 'no-cache'),\n };\n return this.http.get(request, httpOptions);\n }\n\n doorStepCallsCount(dealerCode: string): Observable {\n const request = this.uri + 'callList/doorStepCallsCount';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n smeId: dealerCode,\n countryCode: this.countryCode\n }).set('Cache-Control', 'no-cache')\n .set('Pragma', 'no-cache'),\n };\n return this.http.get(request, httpOptions);\n }\n\n\n doorStepCustomerDetails(customerID: string, dealerCode: string, vin: string): Observable {\n const request = this.uri + 'customer360/getDoorStepCustomerData';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n customerCode: customerID,\n smeId: dealerCode,\n vin: vin,\n countryCode: this.countryCode\n }).set('Cache-Control', 'no-cache')\n .set('Pragma', 'no-cache'),\n };\n return this.http.get(request, httpOptions);\n }\n\n doorStepUpdateContact(number: string, contactNoOld: string, type: string, custId: string, userId: string, oldName: string, newName: string): Observable {\n const request = this.uri + 'customer360/doorStepUpdateContact';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n contactNoNew: number,\n contactNoOld: contactNoOld,\n custId: custId,\n userId: userId,\n type: type,\n oldDriverName: oldName,\n newDriverName: newName\n }).set('Cache-Control', 'no-cache')\n .set('Pragma', 'no-cache'),\n };\n return this.http.get(request, httpOptions);\n }\n\n doorStepContactDetails(customerID: string): Observable {\n const request = this.uri + 'customer360/doorStepContactDetails';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n customerCode: customerID\n }).set('Cache-Control', 'no-cache')\n .set('Pragma', 'no-cache'),\n };\n return this.http.get(request, httpOptions);\n }\n\n doorStepCallStats(smeID: string): Observable {\n const request = this.uri + 'callList/doorStepCallStats';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n smeId: smeID,\n countryCode: this.countryCode\n }).set('Cache-Control', 'no-cache')\n .set('Pragma', 'no-cache'),\n };\n return this.http.get(request, httpOptions);\n }\n\n getDoorStepCustomerResponse(callType: number): Observable {\n const request = this.uri + 'customer360/getDoorStepCustomerResponse';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n countryCode: this.countryCode,\n callType: callType && callType.toString(),\n }).set('Cache-Control', 'no-cache')\n .set('Pragma', 'no-cache'),\n };\n return this.http.get(request, httpOptions);\n }\n\n saveDoorStepData(custData: any): Observable {\n const request = this.uri + 'customer360/saveDoorStepData';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n countryCode: this.countryCode,\n }).set('Cache-Control', 'no-cache')\n .set('Pragma', 'no-cache'),\n };\n return this.http.post(request, custData, httpOptions);\n }\n\n /**\n * Name: periodFilter\n * purpose: To get periodFilter Dashboard\n * @param {any} userInfo - userInfo whom details to be get\n * @return {Observable} response filter details.\n */\n doorStepPeriodFilter(userInfo: any): Observable {\n const request = this.uri + 'reports/doorStepPeriodFilter';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n userId: userInfo.userId,\n roleId: userInfo.roleId,\n countryCode: this.countryCode\n }).set('Cache-Control', 'no-cache')\n .set('Pragma', 'no-cache'),\n };\n return this.http.get(request, httpOptions);\n }\n\n doorstepFilterDashboard(userInfo: any): Observable {\n const request = this.uri + 'reports/doorStepFilterDashboard';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n userId: userInfo.userId,\n roleId: userInfo.roleId,\n countryCode: this.countryCode\n }).set('Cache-Control', 'no-cache')\n .set('Pragma', 'no-cache'),\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: getDashboardKpi\n * purpose: To get getDashboardKpi\n * @param {any} req - req details to be get\n * @return {Observable} response customer details.\n */\n getDoorStepDashboardKpi(req: any): Observable {\n const requestUrl = this.uri + 'reports/getDoorStepDashboardKpi';\n const request = {\n \"userId\": req.userId,\n \"roleId\": req.roleId,\n \"smeId\": req.creId,\n \"workshopCode\": req.workshopCode,\n \"service\": req.service,\n \"startDate\": req.startDate,\n \"endDate\": req.endDate\n };\n\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n countryCode: this.countryCode\n }).set('Cache-Control', 'no-cache')\n .set('Pragma', 'no-cache'),\n };\n return this.http.post(requestUrl, request, httpOptions);\n }\n\n /**\n * Name: getDashboardKpiCard\n * purpose: To get DashboardKpiCard\n * @param {any} req - req details to be get\n * @return {Observable} response customer details.\n */\n getDoorStepDashboardKpiCard(req: any): Observable {\n const requestUrl = this.uri + 'reports/getDoorStepDashboardKpiCard';\n const request = {\n \"userId\": req.userId,\n \"roleId\": req.roleId,\n \"smeId\": req.creId,\n \"workshopCode\": req.workshopCode,\n \"service\": req.service,\n \"month\": req.month,\n \"year\": req.year\n };\n\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n countryCode: this.countryCode\n }).set('Cache-Control', 'no-cache')\n .set('Pragma', 'no-cache'),\n };\n return this.http.post(requestUrl, request, httpOptions);\n }\n\n /**\n * Name: getDoorStepDashboardResponseKpi\n * purpose: To get getDoorStepDashboardResponseKpi\n * @param {any} req - req details to be get\n * @return {Observable} response customer details.\n */\n getDoorStepDashboardResponseKpi(req: any): Observable {\n const requestUrl = this.uri + 'reports/getDoorStepDashboardResponseKpi';\n const request = {\n \"userId\": req.userId,\n \"roleId\": req.roleId,\n \"smeId\": req.creId,\n \"workshopCode\": req.workshopCode,\n \"service\": req.service,\n \"startDate\": req.startDate,\n \"endDate\": req.endDate\n };\n\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n countryCode: this.countryCode\n }).set('Cache-Control', 'no-cache')\n .set('Pragma', 'no-cache'),\n };\n return this.http.post(requestUrl, request, httpOptions);\n }\n\n /**\n * Name: getDoorStepDashboardServiceKpi \n * purpose: To get getDoorStepDashboardServiceKpi \n * @param {any} req - req details to be get\n * @return {Observable} response customer details.\n */\n getDoorStepDashboardServiceKpi(req: any): Observable {\n const requestUrl = this.uri + 'reports/getDoorStepDashboardServiceKpi';\n const request = {\n \"userId\": req.userId,\n \"roleId\": req.roleId,\n \"smeId\": req.creId,\n \"workshopCode\": req.workshopCode,\n //\"service\": req.service,\n \"startDate\": req.startDate,\n \"endDate\": req.endDate\n };\n\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n countryCode: this.countryCode\n }).set('Cache-Control', 'no-cache')\n .set('Pragma', 'no-cache'),\n };\n return this.http.post(requestUrl, request, httpOptions);\n }\n\n /**\n * Name: getDoorstepDashboardReport\n * purpose: To export report as excel\n * @param {string} startDate - start date\n * @param {string} endDate - end date\n * @param {string} userId userId\n * @param {string} roleId - cre roleId\n * @param {string} creid creid\n * @param {string} serviceType serviceType\n * @param {string} workshopFilter - WorkshopCode\n * @return {Observable} response binary data object.\n */\n getDoorstepDashboardReport(userId: string, roleId: string, smeId: string, startDate: string, endDate: string, serviceType: string, workshopFilter: string): Observable {\n let request = this.uri + 'reports/getDoorStepDashboardReport';\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n countryCode: this.countryCode,\n userId: userId,\n roleId: roleId,\n smeId: smeId,\n workshopCode: workshopFilter,\n startDate: startDate,\n endDate: endDate,\n serviceType: serviceType,\n }).set('Cache-Control', 'no-cache')\n .set('Pragma', 'no-cache');\n return this.http.get(request, { headers, responseType: 'blob' as 'blob' });\n }\n\n\n\n /**\n * Name: getDoorstepProcessReport()\n * purpose: To export report as excel\n * @param {string} from - start date\n * @param {string} to - end date\n * @param {string} userId creid\n * @param {string} roleId - cre roleId\n * @param {string} workshopCode - WorkshopCode\n * @return {Observable} response binary data object.\n */\n getDoorstepProcessReport(from: string, to: string, userId: string, roleId: string, workshopCode: string): Observable {\n let request = this.uri + 'reports/getDoorStepDetailedProcessReport';\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n userId: userId,\n roleId: roleId,\n fromDate: from,\n toDate: to,\n workshopFilter: workshopCode,\n countryCode: this.countryCode\n }).set('Cache-Control', 'no-cache')\n .set('Pragma', 'no-cache');\n return this.http.get(request, { headers, responseType: 'blob' as 'blob' });\n }\n\n /**\n * Name: callRecordURL\n * purpose: To call customer\n * @param {string} androidId - androidId\n * @param {string} contactNo - contactNo\n * @return {Observable} response blob file.\n */\n callRecordURL(contactNo: string, androidId: string): Observable {\n const request = this.uri + 'customer360/callRecordURL';\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n contactNo: contactNo,\n androidId: androidId\n })\n };\n return this.http.get(request, httpOptions);\n }\n\n /**\n * Name: postPBBCall()\n * purpose: To create new post body building\n * @param {any} data - req details to be get\n * @return {Observable} response binary data object.\n */\ncreateMaster(data): Observable {\n return this.http.post(this.uri + 'callList/pbbcallconfig', data);\n}\n\n/**\n* Name: Get master by Fert Code\n* purpose: To get a master using the fert code.\n* @param {string} fertCode - FertCode required\n* @return {Observable} response binary data object.\n*/\ngetMasterByFertCode(fertCode: string): Observable {\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n 'fertCode': fertCode, \n })\n };\n return this.http.get(this.uri + 'callList/pbbcallconfig', httpOptions);\n}\n\n/**\n* Name: Get master by id\n* purpose: To find data for search in Post Body Building .\n* @return {Observable} response array data object.\n*/\ngetMasterById(id: number): Observable {\n return this.http.get(`${this.uri}callList/pbbcallconfig/${id}`);\n}\n\n/**\n* Name: Update master by id\n* purpose: To get FertCode master for PBBI\n* @param {string} fertCode - Get FertCode\n* @return {Observable} response.\n*/\nupdateMaster(data, id: number): Observable {\n return this.http.put(this.uri + `callList/pbbcallconfig/${id}`, data);\n}\n\n/**\n* Name: Find masters based on different properties\n* purpose: To Find masters based on different properties\n* @param {number} id - Get FertCode\n* @return {Observable} response.\n*/\nfindMasters(params, page: number, pageSize: number, search: any): Observable {\n return this.http.get(this.uri + `callList/pbbcallconfig/find?page=${page}&pageSize=${pageSize}&search=${search}`, {params});\n}\n\n/**\n* Name: Download masters\n* purpose: To put ID from Master for PBBI\n* @param {number} id - Get FertCode\n* @return {Observable} response.\n*/\ndownloadMasters(): Observable {\n return this.http.get(this.uri + 'callList/pbbcallconfig/download', { responseType: 'blob' as 'json' });\n}\n\n/**\n* Name: Create master by CSV\n* purpose: To put ID from Master for PBBI\n* @param {number} id - Get FertCode\n* @return {Observable} response.\n*/\ncreateMasterByCsv(file: File): Observable {\n let formData: FormData = new FormData();\n formData.append('file', file, file.name);\n return this.http.post(this.uri + 'callList/pbbcallconfig/csv', formData);\n}\n\nprivate generateQueryString(params: any): string {\n let queryString = '?';\n for (const key in params) {\n if (params.hasOwnProperty(key) && params[key] !== undefined && params[key] !== null) {\n queryString += `${key}=${params[key]}&`;\n }\n }\n return queryString.slice(0, -1); \n}\n\n\ncreateCallConnection_API(params:CallParams){\n return this.http.post(`${this.uri}callManagement/exotel/call${this.generateQueryString(params)}`,'');\n}\nsaveCallRecording_API(params:SaveCallRecordingParams){\n return this.http.post(`${this.uri}callManagement/exotel/save-call-record${this.generateQueryString(params)}`,'');\n}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { CommonService } from '../common-service/common.service';\n\n\n@Injectable()\nexport class BasicAuthInterceptor implements HttpInterceptor {\n refrestokencheck: boolean;\n constructor(\n private commonService: CommonService,\n ) { }\n\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\n // add authorization header with basic auth credentials if available\n this.commonService.countryCode = localStorage.getItem('countryCode');\n this.commonService.userId = localStorage.getItem('userId');\n this.commonService.userRole = localStorage.getItem('userRoles');\n this.commonService.roleId = localStorage.getItem('roleId');\n\n const AuthToken = localStorage.getItem('token')\n const currentTime : number = (new Date).getTime();\n const expirationTime : number = parseInt(localStorage.getItem('expirationTime'));\n\n const val = expirationTime - currentTime;\n var minutes = Math.floor(val / 60000);\n var seconds = ((val % 60000) / 1000).toFixed(0);\n\n if(minutes <= 10 && this.commonService.checkFlag) {\n\t\t\tthis.commonService.checkFlag = false;\n this.commonService.refreshtoken().subscribe((resp)=>{\n let temp = resp['responseData'];\n localStorage.setItem('token', temp.refreshToken);\n localStorage.setItem(\"expirationTime\", temp.expirationTime);\n this.commonService.checkFlag = true;\n },(err) => {\n this.commonService.checkFlag = true;\n });\n }\n\n if (AuthToken != null && AuthToken != undefined) {\n request = request.clone({\n setHeaders: {\n Authorization: 'Bearer ' + AuthToken\n }\n });\n }\n return next.handle(request);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { Router } from '@angular/router';\nimport { CommonService } from \"../../../core/service/common-service/common.service\";\nimport { ToastrService } from \"ngx-toastr\";\n\n\n@Injectable()\nexport class ErrorInterceptor implements HttpInterceptor {\n constructor(private router: Router,\n private commonService: CommonService,\n private toastr: ToastrService) { }\n\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\n return next.handle(request).pipe(catchError(err => {\n if (err.status === 401) {\n let userId = localStorage.getItem(\"userId\");\n this.getSigninUpdate(userId, 'N', '0');\n // auto logout if 401 response returned from api\n localStorage.clear();\n this.router.navigate(['/login']);\n location.reload(true);\n }\n\n const error = err.error && err.error.message || err.statusText;\n return throwError(error);\n }))\n }\n\n getSigninUpdate(user: string, flag: string, count: string): void {\n this.commonService.getSigninUpdate(user, flag, count).subscribe(res => {\n if (res['responseCode'] == 0) {\n } else {\n //this.spinner = false;\n //this.toastr.error(res['message'], \"Error\");\n }\n }, error => {\n //this.spinner = false;\n this.toastr.error(error, \"Error\");\n });\n }\n}\n","\nimport { Injectable } from '@angular/core';\nimport { CommonService } from '../common-service/common.service';\nimport { map } from 'rxjs/operators';\nimport { debounceTime } from 'rxjs/internal/operators/debounceTime';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class UserService {\n\n constructor(private commonService: CommonService) {\n }\n\n /**\n * Name: searchCustomer\n * purpose: To serach customer\n * @param {string} searchText - customer details\n * @param {string} type - customer search type\n * @return {Observable} response data.\n */\n searchCustomer(searchText: string, type: string, userId: string): Observable {\n var listOfCustomers = this.commonService.getCustomers(searchText, type, userId).pipe(debounceTime(500), map((data: any) => {\n return (\n data.length != 0 ? data as any[] : [{ \"Customer\": \"No Record Found\" } as any]\n );\n }\n ));\n return listOfCustomers;\n }\n\n /**\n * Name: searchChassis\n * purpose: To search customer with vin no.\n * @param {string} searchText - customer details\n * @return {Observable} response data.\n */\n searchChassis(searchText: string): Observable {\n var listOfCustomers = this.commonService.getChassis(searchText).pipe(debounceTime(500), map((data: any) => {\n return (\n data.length != 0 ? data as any[] : [{ \"Customer\": \"No Record Found\" } as any]\n );\n }\n ));\n return listOfCustomers;\n }\n\n /**\n * Name: searchContact\n * purpose: To search customer with number\n * @param {string} searchText - customer details\n * @return {Observable} response data.\n */\n searchContact(searchText: string): Observable {\n var listOfCustomers = this.commonService.searchContact(searchText).pipe(debounceTime(500), map((data: any) => {\n return (\n data.length != 0 ? data as any[] : [{ \"Customer\": \"No Record Found\" } as any]\n );\n }\n ));\n return listOfCustomers;\n }\n\n /**\n * Name: getFleetDetail\n * purpose: To get customer fleet details\n * @param {string} customerCode - customer code\n * @return {Observable} response data.\n */\n getFleetDetail(customerCode: string): Observable {\n var listOfCustomers = this.commonService.searchFleet(customerCode).pipe(debounceTime(500), map((data: any) => {\n return (\n data.length != 0 ? data as any[] : [{ \"Customer\": \"No Record Found\" } as any]\n );\n }\n ));\n return listOfCustomers;\n }\n\n /**\n * Name: getServiceDetail\n * purpose: To get vehicle service info\n * @param {string} customerCode - customer code\n * @param {string} creId - cre code\n * @return {Observable} response data.\n */\n getServiceDetail(customerCode: string, creId: string, vin: string): Observable {\n var listOfCustomers = this.commonService.searchVin(customerCode, creId, vin).pipe(debounceTime(500), map((data: any) => {\n return (\n data.length != 0 ? data as any[] : [{ \"Customer\": \"No Record Found\" } as any]\n );\n }\n ));\n return listOfCustomers;\n }\n\n /**\n * Name: getDoorstepServiceDetail\n * purpose: To get vehicle service info\n * @param {string} customerCode - customer code\n * @param {string} creId - cre code\n * @return {Observable} response data.\n */\n getDoorstepServiceDetail(customerCode: string, creId: string, vin: string): Observable {\n var listOfCustomers = this.commonService.getDoorstepCustomerVinDetails(customerCode, creId, vin).pipe(debounceTime(500), map((data: any) => {\n return (\n data.length != 0 ? data as any[] : [{ \"Customer\": \"No Record Found\" } as any]\n );\n }\n ));\n return listOfCustomers;\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { ConfirmDialogComponent } from './modal/confirm-dialog/confirm-dialog.component';\nimport { MatDialog } from '@angular/material';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DialogService {\n\n\n constructor(private dialog: MatDialog) { }\n\n\n openConfirmDialog() {\n return this.dialog.open(ConfirmDialogComponent, {\n width: '300px',\n disableClose: true\n }).afterClosed();\n }\n}\n","import { Directive, HostListener, ElementRef } from '@angular/core';\n\n@Directive({\n selector: '[alphabetOnly]'\n})\n\nexport class AlphabetOnlyDirective {\n private navigationKeys = [\n 'Backspace',\n 'Delete',\n 'Tab',\n 'Escape',\n 'Enter',\n 'Home',\n 'End',\n 'ArrowLeft',\n 'ArrowRight',\n 'Clear',\n 'Copy',\n 'Paste'\n ];\n key;\n inputElement: HTMLElement;\n\n constructor(public el: ElementRef) {\n this.inputElement = el.nativeElement;\n }\n\n @HostListener('keydown', ['$event'])\n onKeyDown(e: KeyboardEvent) {\n if (\n this.navigationKeys.indexOf(e.key) > -1 || // Allow: navigation keys: backspace, delete, arrows etc.\n (e.key === 'a' && e.ctrlKey === true) || // Allow: Ctrl+A\n (e.key === 'c' && e.ctrlKey === true) || // Allow: Ctrl+C\n (e.key === 'v' && e.ctrlKey === true) || // Allow: Ctrl+V\n (e.key === 'x' && e.ctrlKey === true) || // Allow: Ctrl+X\n (e.key === 'a' && e.metaKey === true) || // Allow: Cmd+A (Mac)\n (e.key === 'c' && e.metaKey === true) || // Allow: Cmd+C (Mac)\n (e.key === 'v' && e.metaKey === true) || // Allow: Cmd+V (Mac)\n (e.key === 'x' && e.metaKey === true) // Allow: Cmd+X (Mac)\n ) {\n // let it happen, don't do anything\n return;\n }\n // Ensure that it is a char and stop the keypress\n if ((e.keyCode >= 15 && e.keyCode <= 64 && e.keyCode != 32) || (e.keyCode >= 123) || (e.keyCode >= 96 && e.keyCode <= 105)) {\n e.preventDefault();\n }\n }\n\n @HostListener('paste', ['$event'])\n onPaste(event: ClipboardEvent) {\n event.preventDefault();\n const pastedInput: string = event.clipboardData.getData('text/plain');\n document.execCommand(\n 'insertText',\n false,\n pastedInput.replace(/^([a-zA-Z]*(?=[^a-zA-Z]))./g, '')\n );\n }\n\n @HostListener('drop', ['$event'])\n onDrop(event: DragEvent) {\n event.preventDefault();\n const textData = event.dataTransfer.getData('text');\n this.inputElement.focus();\n document.execCommand(\n 'insertText',\n false,\n textData.replace(/^([a-zA-Z]*(?=[^a-zA-Z]))./g, '')\n );\n }\n}\n","export default \".tooltip-conatiner {\\n border: 1px solid lightgrey;\\n border-radius: 2px;\\n padding: 8px;\\n background: linear-gradient(#ffffff 0px 100%);\\n font-weight: 500;\\n color: #484848;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9kaXJlY3RpdmUvY3VzdG9tLXRvb2wtdGlwL2N1c3RvbS10b29sLXRpcC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvZGlyZWN0aXZlL2N1c3RvbS10b29sLXRpcC9jdXN0b20tdG9vbC10aXAuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSwyQkFBQTtFQUNBLGtCQUFBO0VBQ0EsWUFBQTtFQUNBLDZDQUFBO0VBQ0EsZ0JBQUE7RUFDQSxjQUFBO0FDQ0YiLCJmaWxlIjoic3JjL2FwcC9kaXJlY3RpdmUvY3VzdG9tLXRvb2wtdGlwL2N1c3RvbS10b29sLXRpcC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi50b29sdGlwLWNvbmF0aW5lciB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JleTtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBwYWRkaW5nOiA4cHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgjZmZmZmZmIDBweCAxMDAlKTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6ICM0ODQ4NDg7XG59XG5cblxuIiwiLnRvb2x0aXAtY29uYXRpbmVyIHtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmV5O1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIHBhZGRpbmc6IDhweDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCNmZmZmZmYgMHB4IDEwMCUpO1xuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogIzQ4NDg0ODtcbn0iXX0= */\"","import { Component, OnInit, Input, TemplateRef } from '@angular/core';\n\n/**\n * This component will be used to show custom tooltip\n * \n * This component will be rendered using OverlayModule of angular material\n * This component will be rendered by directive on an Overlay\n * \n * CONSUMER will not be using this component directly\n * This component will be hosted in an overlay by ToolTipRenderer directive\n * This component exposes two properties. These two properties will be filled by ToolTipRenderer directive\n * 1. text - This is a simple string which is to be shown in the tooltip; This will be injected in the ToolTipRenderer directive\n * by the consumer\n * 2. contentTemplate - This gives finer control on the content to be shwon in the tooltip\n * \n * NOTE - ONLY one should be specified; If BOTH are specified then \"template\" will be rendered and \"text\" will be ignored\n */\n@Component({\n selector: 'app-custom-tool-tip',\n templateUrl: './custom-tool-tip.component.html',\n styleUrls: ['./custom-tool-tip.component.scss']\n})\nexport class CustomToolTipComponent implements OnInit {\n\n /**\n * This is simple text which is to be shown in the tooltip\n */\n @Input() text: string;\n\n /**\n * This provides finer control on the content to be visible on the tooltip\n * This template will be injected in McToolTipRenderer directive in the consumer template\n * \n * content.....\n * \n */\n @Input() contentTemplate: TemplateRef;\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}","import { Directive, Input, TemplateRef, ElementRef, OnInit, HostListener, ComponentRef, OnDestroy } from '@angular/core';\nimport { Overlay, OverlayPositionBuilder, OverlayRef } from '@angular/cdk/overlay';\nimport { CustomToolTipComponent } from './custom-tool-tip.directive';\nimport { ComponentPortal } from '@angular/cdk/portal';\n\n@Directive({\n selector: '[customToolTip]'\n})\nexport class ToolTipRendererDirective {\n\n /**\n * This will be used to show tooltip or not\n * This can be used to show the tooltip conditionally\n */\n @Input() showToolTip: boolean = true;\n\n //If this is specified then specified text will be showin in the tooltip\n @Input(`customToolTip`) text: string;\n\n //If this is specified then specified template will be rendered in the tooltip\n @Input() contentTemplate: TemplateRef;\n\n private _overlayRef: OverlayRef;\n\n constructor(private _overlay: Overlay,\n private _overlayPositionBuilder: OverlayPositionBuilder,\n private _elementRef: ElementRef) { }\n\n /**\n * Init life cycle event handler\n */\n ngOnInit() {\n\n if (!this.showToolTip) {\n return;\n }\n\n const positionStrategy = this._overlayPositionBuilder\n .flexibleConnectedTo(this._elementRef)\n .withPositions([{\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n offsetY: 5,\n }]);\n\n this._overlayRef = this._overlay.create({ positionStrategy });\n\n }\n\n /**\n * This method will be called whenever mouse enters in the Host element\n * i.e. where this directive is applied\n * This method will show the tooltip by instantiating the McToolTipComponent and attaching to the overlay\n */\n @HostListener('mouseenter')\n show() {\n\n //attach the component if it has not already attached to the overlay\n if (this._overlayRef && !this._overlayRef.hasAttached()) {\n const tooltipRef: ComponentRef = this._overlayRef.attach(new ComponentPortal(CustomToolTipComponent));\n tooltipRef.instance.text = this.text;\n tooltipRef.instance.contentTemplate = this.contentTemplate;\n }\n }\n\n /**\n * This method will be called when mouse goes out of the host element\n * i.e. where this directive is applied\n * This method will close the tooltip by detaching the overlay from the view\n */\n @HostListener('mouseleave')\n hide() {\n this.closeToolTip();\n }\n\n /**\n * Destroy lifecycle event handler\n * This method will make sure to close the tooltip\n * It will be needed in case when app is navigating to different page\n * and user is still seeing the tooltip; In that case we do not want to hang around the\n * tooltip after the page [on which tooltip visible] is destroyed\n */\n ngOnDestroy() {\n this.closeToolTip();\n }\n\n /**\n * This method will close the tooltip by detaching the component from the overlay\n */\n private closeToolTip() {\n if (this._overlayRef) {\n this._overlayRef.detach();\n }\n }\n\n}","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\n\n@Directive({\n selector: '[digitOnly]'\n})\nexport class DigitsOnlyDirective {\n private decimalCounter = 0;\n private navigationKeys = [\n 'Backspace',\n 'Delete',\n 'Tab',\n 'Escape',\n 'Enter',\n 'Home',\n 'End',\n 'ArrowLeft',\n 'ArrowRight',\n 'Clear',\n 'Copy',\n 'Paste'\n ];\n @Input() decimal?= false;\n inputElement: HTMLElement;\n\n constructor(public el: ElementRef) {\n this.inputElement = el.nativeElement;\n }\n\n @HostListener('keydown', ['$event'])\n onKeyDown(e: KeyboardEvent) {\n if (\n (e.keyCode != 13 && this.navigationKeys.indexOf(e.key) > -1) || // Allow: navigation keys: backspace, delete, arrows etc.\n (e.key === 'a' && e.ctrlKey === true) || // Allow: Ctrl+A\n (e.key === 'c' && e.ctrlKey === true) || // Allow: Ctrl+C\n (e.key === 'v' && e.ctrlKey === true) || // Allow: Ctrl+V\n (e.key === 'x' && e.ctrlKey === true) || // Allow: Ctrl+X\n (e.key === 'a' && e.metaKey === true) || // Allow: Cmd+A (Mac)\n (e.key === 'c' && e.metaKey === true) || // Allow: Cmd+C (Mac)\n (e.key === 'v' && e.metaKey === true) || // Allow: Cmd+V (Mac)\n (e.key === 'x' && e.metaKey === true) || // Allow: Cmd+X (Mac)\n (this.decimal && e.key === '.' && this.decimalCounter < 1) // Allow: only one decimal point\n ) {\n // let it happen, don't do anything\n return;\n }\n // Ensure that it is a number and stop the keypress\n if (e.keyCode == 13 || e.key === ' ' || isNaN(Number(e.key))) {\n e.preventDefault();\n }\n }\n\n @HostListener('keyup', ['$event'])\n onKeyUp(e: KeyboardEvent) {\n if (!this.decimal) {\n return;\n } else {\n this.decimalCounter = this.el.nativeElement.value.split('.').length - 1;\n }\n }\n\n @HostListener('paste', ['$event'])\n onPaste(event: ClipboardEvent) {\n event.preventDefault();\n const pastedInput: string = event.clipboardData.getData('text/plain');\n\n if (!this.decimal) {\n document.execCommand(\n 'insertText',\n false,\n pastedInput.replace(/[^0-9]/g, '')\n );\n } else if (this.isValidDecimal(pastedInput)) {\n document.execCommand(\n 'insertText',\n false,\n pastedInput.replace(/[^0-9.]/g, '')\n );\n }\n }\n\n @HostListener('drop', ['$event'])\n onDrop(event: DragEvent) {\n event.preventDefault();\n const textData = event.dataTransfer.getData('text');\n this.inputElement.focus();\n\n if (!this.decimal) {\n document.execCommand(\n 'insertText',\n false,\n textData.replace(/[^0-9]/g, '')\n );\n } else if (this.isValidDecimal(textData)) {\n document.execCommand(\n 'insertText',\n false,\n textData.replace(/[^0-9.]/g, '')\n );\n }\n }\n\n isValidDecimal(string: string): boolean {\n return string.split('.').length <= 2;\n }\n}\n","export default \".imageVolvo {\\n width: 40%;\\n height: auto;\\n float: left;\\n padding: 5px;\\n padding-left: 20PX;\\n}\\n\\n.header-container {\\n background: #ffffff;\\n position: fixed;\\n top: 0px;\\n z-index: 100;\\n width: 100%;\\n}\\n\\n.textService {\\n font: 22px Roboto;\\n letter-spacing: 0px;\\n color: #484848;\\n opacity: 1;\\n}\\n\\n.textboxService {\\n width: 100%;\\n opacity: 1;\\n padding-left: 10px;\\n float: left;\\n}\\n\\n.userImage {\\n float: left;\\n width: 15px;\\n height: 15px;\\n border-radius: 50%;\\n margin: 0px 10px;\\n color: black;\\n}\\n\\n.profile-bar {\\n background-color: #d9d9d9;\\n border-radius: 5px;\\n height: 24px;\\n margin-right: 10px;\\n}\\n\\n.userName {\\n float: left;\\n margin: 9px;\\n text-align: left;\\n font: 24px Roboto;\\n letter-spacing: 0;\\n color: #707070;\\n opacity: 1;\\n}\\n\\n.profile-dd {\\n float: left;\\n width: 125px;\\n}\\n\\n.profile-dd .mat-form-field-wrapper {\\n padding: 0px !important;\\n}\\n\\n.profile-dd ::ng-deep .mat-select-arrow {\\n color: #e64243;\\n}\\n\\n.profile-dd ::ng-deep .mat-form-field-label {\\n color: black;\\n top: 1.2em;\\n}\\n\\n.profile-dd ::ng-deep .mat-form-field-infix {\\n margin-top: 0px;\\n padding: 0;\\n}\\n\\n.profile-dd ::ng-deep .mat-select-trigger {\\n height: 2em;\\n}\\n\\n.mat-button-toggle-checked {\\n background: greenyellow !important;\\n}\\n\\n.mat-tab-nav-bar {\\n background-color: #00457D;\\n height: 40px;\\n}\\n\\n.mat-tab-nav-bar a {\\n color: white;\\n font-size: 14px;\\n padding-bottom: 8px;\\n}\\n\\n.icon-style {\\n margin-right: 3px;\\n width: 20px;\\n height: 20px;\\n}\\n\\n.logout-icon {\\n margin-right: 10px;\\n cursor: pointer;\\n width: 20px;\\n height: 20px;\\n}\\n\\n.profile-button {\\n color: black;\\n text-decoration: underline;\\n padding-left: 3px;\\n padding-right: 15px;\\n font-size: 12px;\\n text-align: center;\\n cursor: pointer;\\n width: auto;\\n}\\n\\n.notification-icon {\\n margin-right: 10px;\\n cursor: pointer;\\n}\\n\\n.badge {\\n position: relative;\\n top: -11px;\\n left: -1px;\\n font-size: 12px;\\n}\\n\\n.calling-table {\\n padding-top: 0px;\\n padding-bottom: 0px;\\n}\\n\\n.nav__notifications__list__item {\\n font-size: 12px;\\n contain: strict;\\n height: 50px;\\n width: 400px;\\n box-sizing: border-box;\\n color: #1b1b1b;\\n display: flex;\\n justify-content: space-around;\\n align-items: center;\\n transition: opacity 250ms cubic-bezier(0.3, 0, 0.7, 1);\\n background: #e7e7e7;\\n opacity: 1;\\n margin-bottom: 2px;\\n margin-left: 2px;\\n margin-right: 2px;\\n position: inherit;\\n padding-top: 5px;\\n padding-left: 5px;\\n padding-right: 2px;\\n}\\n\\n.menu ::ng-deep .mat-menu-content {\\n padding-top: 0px !important;\\n padding-bottom: 0px !important;\\n}\\n\\n::ng-deep .mat-menu-panel {\\n max-width: 334px !important;\\n max-height: 100% !important;\\n}\\n\\n::ng-deep .mat-menu-item {\\n border: 1px solid #ece8e8 !important;\\n}\\n\\n.mat-menu-panel {\\n min-width: 112px;\\n max-width: 334px !important;\\n overflow: auto;\\n -webkit-overflow-scrolling: touch;\\n /* max-height: calc(100vh - 48px); */\\n border-radius: 4px;\\n outline: 0;\\n /* min-height: 64px; */\\n max-height: 55% !important;\\n}\\n\\n.displaySpinner {\\n display: flex;\\n justify-content: center;\\n margin-top: 35px;\\n}\\n\\n.breakup-wrapper {\\n font-family: Montserrat-Medium;\\n font-size: 20px;\\n display: flex;\\n margin-left: 8px;\\n}\\n\\n.pop-up-view {\\n position: relative;\\n margin-left: 8px;\\n}\\n\\n.breakup-popup {\\n box-shadow: 0 1px 6px 0 rgba(87, 87, 87, 0.53);\\n background-color: #ffffff;\\n position: absolute;\\n top: 38px;\\n right: -18px;\\n min-width: 315px;\\n z-index: 1;\\n border-radius: 10px;\\n padding-left: 10px;\\n max-height: 500px;\\n min-height: 100px;\\n}\\n\\n.add-benifits {\\n font-size: 14px;\\n font-family: Montserrat-Bold;\\n color: #343434;\\n}\\n\\n.benefits-sub-list {\\n margin-top: 24px;\\n}\\n\\n.add-benifits {\\n margin-bottom: 10px;\\n}\\n\\n.breakup-popup .base-plan {\\n font-family: Montserrat-SemiBold;\\n font-size: 15px;\\n color: #343434;\\n padding-right: 28px;\\n}\\n\\n.breakup-popup .benefits-sub .lable {\\n font-size: 14px;\\n font-family: \\\"Montserrat-Regular\\\";\\n color: #343434;\\n}\\n\\n.breakup-popup .amout {\\n font-size: 16px;\\n color: #343434;\\n}\\n\\n.popup-content {\\n pointer-events: all;\\n margin-top: 20px;\\n overflow: auto;\\n max-width: 307px;\\n max-height: 467px;\\n}\\n\\n.close-icon {\\n font-size: 20px;\\n float: right;\\n padding-right: 5px;\\n margin-top: 3px;\\n}\\n\\n.pointer {\\n cursor: pointer !important;\\n}\\n\\n.breakup-popup:after {\\n content: \\\"\\\";\\n position: absolute;\\n top: -9px;\\n right: 34px;\\n height: 20px;\\n width: 20px;\\n transform: rotate(135deg);\\n background: inherit;\\n box-shadow: -4px 4px 4px -4px rgba(0, 0, 0, 0.2);\\n z-index: -1;\\n border: inherit;\\n border-width: 0 4px 4px 0;\\n cursor: pointer;\\n}\\n\\n.benefits-list {\\n padding: 10px 0;\\n border-bottom: 1px solid #cfcfcf;\\n display: flex;\\n font-family: \\\"Montserrat-SemiBold\\\";\\n font-size: 15px;\\n font-weight: 400;\\n justify-content: space-between;\\n align-items: center;\\n color: red;\\n}\\n\\n.benefits-list .lable {\\n font-size: 14px;\\n}\\n\\n.benefits-list .lable span {\\n font-size: 20px;\\n font-weight: 400;\\n color: #8e8e8e;\\n font-family: \\\"Montserrat-Medium\\\";\\n}\\n\\n.benefits-list .info {\\n display: flex;\\n}\\n\\n.benefits-list .remove-click {\\n margin-left: 10px;\\n}\\n\\n.sticky-with-close .benefits-list .amout {\\n padding-right: 28px;\\n}\\n\\n.benefits-sub {\\n display: flex;\\n justify-content: space-between;\\n padding: 0 0 5px;\\n align-items: center;\\n}\\n\\n.benefits-sub .lable {\\n font-size: 12px;\\n font-family: \\\"Montserrat-Regular\\\";\\n}\\n\\n.benefits-sub .info {\\n display: flex;\\n}\\n\\n.benefits-sub .remove-click {\\n margin-left: 10px;\\n}\\n\\n.benefits-sub-list .h1 {\\n margin: 20px 0 15px;\\n}\\n\\n.benefits-sub.remove-list {\\n display: none;\\n}\\n\\n.sticky-with-close .benefits-sub .amout {\\n padding-right: 0;\\n}\\n\\n.sticky-down-arrow {\\n width: 60px;\\n height: 34px;\\n border-radius: 30px 30px 0 0;\\n background: #fff;\\n position: absolute;\\n top: -30px;\\n left: 0;\\n right: 0;\\n margin: 0 auto;\\n box-shadow: 0px -3px 11px -3px rgba(151, 151, 151, 0.53);\\n}\\n\\n.sticky-down-arrow img {\\n position: absolute;\\n bottom: 2px;\\n left: 0;\\n right: 0;\\n margin: 0 auto;\\n}\\n\\n.filterButton {\\n color: white !important;\\n background-color: #00457D;\\n height: 26px;\\n line-height: 10px;\\n margin-bottom: 1px;\\n}\\n\\n.image {\\n width: 120px;\\n height: 30px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9sYXlvdXQvY29tcG9uZW50L2hlYWRlci9oZWFkZXIuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2xheW91dC9jb21wb25lbnQvaGVhZGVyL2hlYWRlci5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLFVBQUE7RUFDQSxZQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxrQkFBQTtBQ0NKOztBREVBO0VBQ0ksbUJBQUE7RUFDQSxlQUFBO0VBQ0EsUUFBQTtFQUNBLFlBQUE7RUFDQSxXQUFBO0FDQ0o7O0FERUE7RUFDSSxpQkFBQTtFQUNBLG1CQUFBO0VBQ0EsY0FBQTtFQUNBLFVBQUE7QUNDSjs7QURHQTtFQUNJLFdBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7RUFDQSxXQUFBO0FDQUo7O0FER0E7RUFDSSxXQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxrQkFBQTtFQUNBLGdCQUFBO0VBQ0EsWUFBQTtBQ0FKOztBREdBO0VBRUkseUJBQUE7RUFDQSxrQkFBQTtFQUNBLFlBQUE7RUFHQSxrQkFBQTtBQ0hKOztBRE1BO0VBQ0ksV0FBQTtFQUNBLFdBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0VBQ0EsaUJBQUE7RUFDQSxjQUFBO0VBQ0EsVUFBQTtBQ0hKOztBRE1BO0VBQ0ksV0FBQTtFQUNBLFlBQUE7QUNISjs7QURNQTtFQUNJLHVCQUFBO0FDSEo7O0FETUE7RUFDSSxjQUFBO0FDSEo7O0FETUE7RUFFSSxZQUFBO0VBQ0EsVUFBQTtBQ0pKOztBRE9BO0VBQ0ksZUFBQTtFQUNBLFVBQUE7QUNKSjs7QURPQTtFQUNJLFdBQUE7QUNKSjs7QURPQTtFQUNJLGtDQUFBO0FDSko7O0FET0E7RUFDSSx5QkFBQTtFQUNBLFlBQUE7QUNKSjs7QURPQTtFQUNJLFlBQUE7RUFDQSxlQUFBO0VBQ0EsbUJBQUE7QUNKSjs7QURPQTtFQUNJLGlCQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7QUNKSjs7QURRQTtFQUNJLGtCQUFBO0VBQ0EsZUFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0FDTEo7O0FEUUE7RUFDSSxZQUFBO0VBQ0EsMEJBQUE7RUFDQSxpQkFBQTtFQUNBLG1CQUFBO0VBQ0EsZUFBQTtFQUNBLGtCQUFBO0VBQ0EsZUFBQTtFQUNBLFdBQUE7QUNMSjs7QURRQTtFQUNJLGtCQUFBO0VBQ0EsZUFBQTtBQ0xKOztBRFFBO0VBQ0ksa0JBQUE7RUFDQSxVQUFBO0VBQ0EsVUFBQTtFQUNBLGVBQUE7QUNMSjs7QURRQTtFQUNJLGdCQUFBO0VBQ0EsbUJBQUE7QUNMSjs7QURTQTtFQUNJLGVBQUE7RUFDQSxlQUFBO0VBQ0EsWUFBQTtFQUNBLFlBQUE7RUFDQSxzQkFBQTtFQUNBLGNBQUE7RUFDQSxhQUFBO0VBQ0EsNkJBQUE7RUFDQSxtQkFBQTtFQUNBLHNEQUFBO0VBQ0EsbUJBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0VBQ0EsaUJBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0VBQ0Esa0JBQUE7QUNOSjs7QURTQTtFQUNFLDJCQUFBO0VBQ0EsOEJBQUE7QUNORjs7QURRQTtFQUNJLDJCQUFBO0VBQ0EsMkJBQUE7QUNMSjs7QURPQztFQUNJLG9DQUFBO0FDSkw7O0FEUUE7RUFDRSxnQkFBQTtFQUNBLDJCQUFBO0VBQ0EsY0FBQTtFQUNBLGlDQUFBO0VBQ0Esb0NBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7RUFDQSxzQkFBQTtFQUNBLDBCQUFBO0FDTEY7O0FEUUE7RUFBZ0IsYUFBQTtFQUFjLHVCQUFBO0VBQXdCLGdCQUFBO0FDRnREOztBREdBO0VBQW1CLDhCQUFBO0VBQWdDLGVBQUE7RUFBaUIsYUFBQTtFQUFlLGdCQUFBO0FDSW5GOztBREhBO0VBQWUsa0JBQUE7RUFBb0IsZ0JBQUE7QUNRbkM7O0FEUEE7RUFBaUIsOENBQUE7RUFBZ0QseUJBQUE7RUFBMkIsa0JBQUE7RUFBb0IsU0FBQTtFQUFXLFlBQUE7RUFBYyxnQkFBQTtFQUFrQixVQUFBO0VBQVksbUJBQUE7RUFBcUIsa0JBQUE7RUFBb0IsaUJBQUE7RUFBbUIsaUJBQUE7QUNxQm5POztBRHBCQTtFQUFnQixlQUFBO0VBQWlCLDRCQUFBO0VBQThCLGNBQUE7QUMwQi9EOztBRHpCQTtFQUFxQixnQkFBQTtBQzZCckI7O0FENUJBO0VBQWdCLG1CQUFBO0FDZ0NoQjs7QUQvQkE7RUFBNEIsZ0NBQUE7RUFBa0MsZUFBQTtFQUFpQixjQUFBO0VBQWdCLG1CQUFBO0FDc0MvRjs7QURyQ0E7RUFBc0MsZUFBQTtFQUFpQixpQ0FBQTtFQUFtQyxjQUFBO0FDMkMxRjs7QUQxQ0E7RUFBd0IsZUFBQTtFQUFpQixjQUFBO0FDK0N6Qzs7QUQ5Q0E7RUFDRSxtQkFBQTtFQUNBLGdCQUFBO0VBQ0UsY0FBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7QUNpREo7O0FEL0NBO0VBQ0ksZUFBQTtFQUNBLFlBQUE7RUFDQSxrQkFBQTtFQUNBLGVBQUE7QUNrREo7O0FEaERBO0VBQ0ksMEJBQUE7QUNtREo7O0FEakRBO0VBQXVCLFdBQUE7RUFBYSxrQkFBQTtFQUFvQixTQUFBO0VBQVcsV0FBQTtFQUFhLFlBQUE7RUFBYyxXQUFBO0VBQWEseUJBQUE7RUFBMkIsbUJBQUE7RUFBcUIsZ0RBQUE7RUFBa0QsV0FBQTtFQUFhLGVBQUE7RUFBaUIseUJBQUE7RUFBMkIsZUFBQTtBQ2lFdFE7O0FEaEVBO0VBQ0ksZUFBQTtFQUNBLGdDQUFBO0VBQ0EsYUFBQTtFQUNBLGtDQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0EsOEJBQUE7RUFDQSxtQkFBQTtFQUNBLFVBQUE7QUNtRUo7O0FEL0RFO0VBQ0UsZUFBQTtBQ2tFSjs7QUQvREU7RUFDRSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxjQUFBO0VBQ0EsZ0NBQUE7QUNrRUo7O0FEL0RFO0VBQ0UsYUFBQTtBQ2tFSjs7QUQvREU7RUFDRSxpQkFBQTtBQ2tFSjs7QUQvREU7RUFDRSxtQkFBQTtBQ2tFSjs7QUQvREU7RUFDRSxhQUFBO0VBQ0EsOEJBQUE7RUFDQSxnQkFBQTtFQUNBLG1CQUFBO0FDa0VKOztBRC9ERTtFQUNFLGVBQUE7RUFDQSxpQ0FBQTtBQ2tFSjs7QUQvREU7RUFDRSxhQUFBO0FDa0VKOztBRC9ERTtFQUNFLGlCQUFBO0FDa0VKOztBRC9ERTtFQUNFLG1CQUFBO0FDa0VKOztBRC9ERTtFQUNFLGFBQUE7QUNrRUo7O0FEL0RFO0VBQ0UsZ0JBQUE7QUNrRUo7O0FEL0RFO0VBQ0UsV0FBQTtFQUNBLFlBQUE7RUFDQSw0QkFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBO0VBQ0EsT0FBQTtFQUNBLFFBQUE7RUFDQSxjQUFBO0VBQ0Esd0RBQUE7QUNrRUo7O0FEL0RFO0VBQ0Usa0JBQUE7RUFDQSxXQUFBO0VBQ0EsT0FBQTtFQUNBLFFBQUE7RUFDQSxjQUFBO0FDa0VKOztBRC9ERTtFQUNFLHVCQUFBO0VBQ0EseUJBQUE7RUFDQSxZQUFBO0VBQ0EsaUJBQUE7RUFDQSxrQkFBQTtBQ2tFSjs7QURoRUU7RUFDRSxZQUFBO0VBQ0EsWUFBQTtBQ21FSiIsImZpbGUiOiJzcmMvYXBwL2xheW91dC9jb21wb25lbnQvaGVhZGVyL2hlYWRlci5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5pbWFnZVZvbHZvIHtcbiAgICB3aWR0aDogNDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwYWRkaW5nOiA1cHg7XG4gICAgcGFkZGluZy1sZWZ0OiAyMFBYO1xufVxuXG4uaGVhZGVyLWNvbnRhaW5lciB7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwcHg7XG4gICAgei1pbmRleDogMTAwO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4udGV4dFNlcnZpY2Uge1xuICAgIGZvbnQ6IDIycHggUm9ib3RvO1xuICAgIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gICAgY29sb3I6ICM0ODQ4NDg7XG4gICAgb3BhY2l0eTogMTtcbiAgICAvL21hcmdpbi1yaWdodDogMTAwcHg7XG59XG5cbi50ZXh0Ym94U2VydmljZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3BhY2l0eTogMTtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgZmxvYXQ6IGxlZnQ7XG59XG5cbi51c2VySW1hZ2Uge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxNXB4O1xuICAgIGhlaWdodDogMTVweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgbWFyZ2luOiAwcHggMTBweDtcbiAgICBjb2xvcjogYmxhY2s7XG59XG5cbi5wcm9maWxlLWJhciB7XG4gICAgLy9ib3JkZXI6IDFweCBzb2xpZCAjZTY0MjQzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkOWQ5ZDk7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGhlaWdodDogMjRweDtcbiAgICAvL29wYWNpdHk6IDE7XG4gICAgLy9mbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG59XG5cbi51c2VyTmFtZSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luOiA5cHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBmb250OiAyNHB4IFJvYm90bztcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBjb2xvcjogIzcwNzA3MDtcbiAgICBvcGFjaXR5OiAxO1xufVxuXG4ucHJvZmlsZS1kZCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDEyNXB4O1xufVxuXG4ucHJvZmlsZS1kZCAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gICAgcGFkZGluZzogMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5wcm9maWxlLWRkIDo6bmctZGVlcCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgY29sb3I6ICNlNjQyNDM7XG59XG5cbi5wcm9maWxlLWRkIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIC8vdGV4dC11bmRlcmxpbmUtcG9zaXRpb246IGluaXRpYWw7XG4gICAgY29sb3I6IGJsYWNrO1xuICAgIHRvcDogMS4yZW07XG59XG5cbi5wcm9maWxlLWRkIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgIG1hcmdpbi10b3A6IDBweDtcbiAgICBwYWRkaW5nOiAwO1xufVxuXG4ucHJvZmlsZS1kZCA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gICAgaGVpZ2h0OiAyZW07XG59XG5cbi5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkIHtcbiAgICBiYWNrZ3JvdW5kOiBncmVlbnllbGxvdyAhaW1wb3J0YW50O1xufVxuXG4ubWF0LXRhYi1uYXYtYmFyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEO1xuICAgIGhlaWdodDogNDBweDtcbn1cblxuLm1hdC10YWItbmF2LWJhciBhIHtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA4cHg7XG59XG5cbi5pY29uLXN0eWxlIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDNweDtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgLy9jb2xvcjogYmxhY2sgIWltcG9ydGFudDtcbn1cblxuLmxvZ291dC1pY29uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbn1cblxuLnByb2ZpbGUtYnV0dG9uIHtcbiAgICBjb2xvcjogYmxhY2s7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgcGFkZGluZy1sZWZ0OiAzcHg7XG4gICAgcGFkZGluZy1yaWdodDogMTVweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB3aWR0aDogYXV0bztcbn1cblxuLm5vdGlmaWNhdGlvbi1pY29uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uYmFkZ2Uge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC0xMXB4O1xuICAgIGxlZnQ6IC0xcHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uY2FsbGluZy10YWJsZSB7XG4gICAgcGFkZGluZy10b3A6IDBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMHB4O1xufVxuXG4kdHJhbnM6IGN1YmljLWJlemllcigwLjMsMCwwLjcsMSk7XG4ubmF2X19ub3RpZmljYXRpb25zX19saXN0X19pdGVtIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29udGFpbjogc3RyaWN0O1xuICAgIGhlaWdodDogNTBweDtcbiAgICB3aWR0aDogNDAwcHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBjb2xvcjogIzFiMWIxYjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAyNTBtcyAkdHJhbnM7XG4gICAgYmFja2dyb3VuZDogI2U3ZTdlNztcbiAgICBvcGFjaXR5OiAxO1xuICAgIG1hcmdpbi1ib3R0b206IDJweDtcbiAgICBtYXJnaW4tbGVmdDogMnB4O1xuICAgIG1hcmdpbi1yaWdodDogMnB4O1xuICAgIHBvc2l0aW9uOiBpbmhlcml0O1xuICAgIHBhZGRpbmctdG9wOiA1cHg7XG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gICAgcGFkZGluZy1yaWdodDogMnB4O1xuICB9XG5cbi5tZW51IDo6bmctZGVlcCAubWF0LW1lbnUtY29udGVudCB7XG4gIHBhZGRpbmctdG9wOiAwcHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1ib3R0b206IDBweCAhaW1wb3J0YW50O1xufVxuOjpuZy1kZWVwIC5tYXQtbWVudS1wYW5lbHtcbiAgICBtYXgtd2lkdGg6IDMzNHB4ICFpbXBvcnRhbnQ7XG4gICAgbWF4LWhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xufVxuIDo6bmctZGVlcCAubWF0LW1lbnUtaXRlbXtcbiAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiKDIzNiwgMjMyLCAyMzIpICFpbXBvcnRhbnQ7XG4gfVxuXG5cbi5tYXQtbWVudS1wYW5lbCB7XG4gIG1pbi13aWR0aDogMTEycHg7XG4gIG1heC13aWR0aDogMzM0cHggIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgLyogbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDQ4cHgpOyAqL1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIG91dGxpbmU6IDA7XG4gIC8qIG1pbi1oZWlnaHQ6IDY0cHg7ICovXG4gIG1heC1oZWlnaHQ6IDU1JSAhaW1wb3J0YW50O1xuXG59XG4uZGlzcGxheVNwaW5uZXJ7ZGlzcGxheTogZmxleDtqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjttYXJnaW4tdG9wOjM1cHh9XG4uYnJlYWt1cC13cmFwcGVyIHsgZm9udC1mYW1pbHk6IE1vbnRzZXJyYXQtTWVkaXVtOyBmb250LXNpemU6IDIwcHg7IGRpc3BsYXk6IGZsZXg7IG1hcmdpbi1sZWZ0OjhweDsgfVxuLnBvcC11cC12aWV3IHsgcG9zaXRpb246IHJlbGF0aXZlOyBtYXJnaW4tbGVmdDogOHB4IH1cbi5icmVha3VwLXBvcHVwIHsgYm94LXNoYWRvdzogMCAxcHggNnB4IDAgcmdiYSg4NywgODcsIDg3LCAwLjUzKTsgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDM4cHg7IHJpZ2h0OiAtMThweDsgbWluLXdpZHRoOiAzMTVweDsgei1pbmRleDogMTsgYm9yZGVyLXJhZGl1czogMTBweDsgcGFkZGluZy1sZWZ0OiAxMHB4IDttYXgtaGVpZ2h0OiA1MDBweDsgbWluLWhlaWdodDogMTAwcHg7fVxuLmFkZC1iZW5pZml0cyB7IGZvbnQtc2l6ZTogMTRweDsgZm9udC1mYW1pbHk6IE1vbnRzZXJyYXQtQm9sZDsgY29sb3I6ICMzNDM0MzQ7IH1cbi5iZW5lZml0cy1zdWItbGlzdCB7IG1hcmdpbi10b3A6IDI0cHg7IH1cbi5hZGQtYmVuaWZpdHMgeyBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG4uYnJlYWt1cC1wb3B1cCAuYmFzZS1wbGFuIHsgZm9udC1mYW1pbHk6IE1vbnRzZXJyYXQtU2VtaUJvbGQ7IGZvbnQtc2l6ZTogMTVweDsgY29sb3I6ICMzNDM0MzQ7IHBhZGRpbmctcmlnaHQ6IDI4cHg7IH1cbi5icmVha3VwLXBvcHVwIC5iZW5lZml0cy1zdWIgLmxhYmxlIHsgZm9udC1zaXplOiAxNHB4OyBmb250LWZhbWlseTogJ01vbnRzZXJyYXQtUmVndWxhcic7IGNvbG9yOiAjMzQzNDM0OyB9XG4uYnJlYWt1cC1wb3B1cCAuYW1vdXQgeyBmb250LXNpemU6IDE2cHg7IGNvbG9yOiAjMzQzNDM0OyB9XG4ucG9wdXAtY29udGVudHtcbiAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgbWFyZ2luLXRvcDoyMHB4IDtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBtYXgtd2lkdGg6IDMwN3B4O1xuICAgIG1heC1oZWlnaHQ6IDQ2N3B4O1xufVxuLmNsb3NlLWljb257XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7XG4gICAgbWFyZ2luLXRvcDogM3B4O1xufVxuLnBvaW50ZXJ7XG4gICAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XG59XG4uYnJlYWt1cC1wb3B1cDphZnRlciB7IGNvbnRlbnQ6IFwiXCI7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAtOXB4OyByaWdodDogMzRweDsgaGVpZ2h0OiAyMHB4OyB3aWR0aDogMjBweDsgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKTsgYmFja2dyb3VuZDogaW5oZXJpdDsgYm94LXNoYWRvdzogLTRweCA0cHggNHB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpOyB6LWluZGV4OiAtMTsgYm9yZGVyOiBpbmhlcml0OyBib3JkZXItd2lkdGg6IDAgNHB4IDRweCAwOyBjdXJzb3I6IHBvaW50ZXI7IH1cbi5iZW5lZml0cy1saXN0IHtcbiAgICBwYWRkaW5nOiAxMHB4IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjZmNmY2Y7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmb250LWZhbWlseTogXCJNb250c2VycmF0LVNlbWlCb2xkXCI7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgY29sb3I6cmVkO1xuICB9XG5cblxuICAuYmVuZWZpdHMtbGlzdCAubGFibGUge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgfVxuXG4gIC5iZW5lZml0cy1saXN0IC5sYWJsZSBzcGFuIHtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBjb2xvcjogIzhlOGU4ZTtcbiAgICBmb250LWZhbWlseTogXCJNb250c2VycmF0LU1lZGl1bVwiO1xuICB9XG5cbiAgLmJlbmVmaXRzLWxpc3QgLmluZm8ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cblxuICAuYmVuZWZpdHMtbGlzdCAucmVtb3ZlLWNsaWNrIHtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgfVxuXG4gIC5zdGlja3ktd2l0aC1jbG9zZSAuYmVuZWZpdHMtbGlzdCAuYW1vdXQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDI4cHg7XG4gIH1cblxuICAuYmVuZWZpdHMtc3ViIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBwYWRkaW5nOiAwIDAgNXB4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cblxuICAuYmVuZWZpdHMtc3ViIC5sYWJsZSB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtZmFtaWx5OiBcIk1vbnRzZXJyYXQtUmVndWxhclwiO1xuICB9XG5cbiAgLmJlbmVmaXRzLXN1YiAuaW5mbyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxuXG4gIC5iZW5lZml0cy1zdWIgLnJlbW92ZS1jbGljayB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIH1cblxuICAuYmVuZWZpdHMtc3ViLWxpc3QgLmgxIHtcbiAgICBtYXJnaW46IDIwcHggMCAxNXB4O1xuICB9XG5cbiAgLmJlbmVmaXRzLXN1Yi5yZW1vdmUtbGlzdCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5zdGlja3ktd2l0aC1jbG9zZSAuYmVuZWZpdHMtc3ViIC5hbW91dCB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgfVxuXG4gIC5zdGlja3ktZG93bi1hcnJvdyB7XG4gICAgd2lkdGg6IDYwcHg7XG4gICAgaGVpZ2h0OiAzNHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDMwcHggMzBweCAwIDA7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtMzBweDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIGJveC1zaGFkb3c6IDBweCAtM3B4IDExcHggLTNweCByZ2JhKDE1MSwgMTUxLCAxNTEsIDAuNTMpO1xuICB9XG5cbiAgLnN0aWNreS1kb3duLWFycm93IGltZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMnB4O1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gIH1cblxuICAuZmlsdGVyQnV0dG9uIHtcbiAgICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEO1xuICAgIGhlaWdodDogMjZweDtcbiAgICBsaW5lLWhlaWdodDogMTBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxcHg7XG4gIH1cbiAgLmltYWdlIHtcbiAgICB3aWR0aDogMTIwcHg7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICB9XG4iLCIuaW1hZ2VWb2x2byB7XG4gIHdpZHRoOiA0MCU7XG4gIGhlaWdodDogYXV0bztcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmc6IDVweDtcbiAgcGFkZGluZy1sZWZ0OiAyMFBYO1xufVxuXG4uaGVhZGVyLWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwcHg7XG4gIHotaW5kZXg6IDEwMDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi50ZXh0U2VydmljZSB7XG4gIGZvbnQ6IDIycHggUm9ib3RvO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICBjb2xvcjogIzQ4NDg0ODtcbiAgb3BhY2l0eTogMTtcbn1cblxuLnRleHRib3hTZXJ2aWNlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG9wYWNpdHk6IDE7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbiAgZmxvYXQ6IGxlZnQ7XG59XG5cbi51c2VySW1hZ2Uge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDE1cHg7XG4gIGhlaWdodDogMTVweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBtYXJnaW46IDBweCAxMHB4O1xuICBjb2xvcjogYmxhY2s7XG59XG5cbi5wcm9maWxlLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkOWQ5ZDk7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG59XG5cbi51c2VyTmFtZSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW46IDlweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udDogMjRweCBSb2JvdG87XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBjb2xvcjogIzcwNzA3MDtcbiAgb3BhY2l0eTogMTtcbn1cblxuLnByb2ZpbGUtZGQge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDEyNXB4O1xufVxuXG4ucHJvZmlsZS1kZCAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gIHBhZGRpbmc6IDBweCAhaW1wb3J0YW50O1xufVxuXG4ucHJvZmlsZS1kZCA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogI2U2NDI0Mztcbn1cblxuLnByb2ZpbGUtZGQgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiBibGFjaztcbiAgdG9wOiAxLjJlbTtcbn1cblxuLnByb2ZpbGUtZGQgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIG1hcmdpbi10b3A6IDBweDtcbiAgcGFkZGluZzogMDtcbn1cblxuLnByb2ZpbGUtZGQgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICBoZWlnaHQ6IDJlbTtcbn1cblxuLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICBiYWNrZ3JvdW5kOiBncmVlbnllbGxvdyAhaW1wb3J0YW50O1xufVxuXG4ubWF0LXRhYi1uYXYtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RDtcbiAgaGVpZ2h0OiA0MHB4O1xufVxuXG4ubWF0LXRhYi1uYXYtYmFyIGEge1xuICBjb2xvcjogd2hpdGU7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgcGFkZGluZy1ib3R0b206IDhweDtcbn1cblxuLmljb24tc3R5bGUge1xuICBtYXJnaW4tcmlnaHQ6IDNweDtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbn1cblxuLmxvZ291dC1pY29uIHtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG59XG5cbi5wcm9maWxlLWJ1dHRvbiB7XG4gIGNvbG9yOiBibGFjaztcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIHBhZGRpbmctbGVmdDogM3B4O1xuICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB3aWR0aDogYXV0bztcbn1cblxuLm5vdGlmaWNhdGlvbi1pY29uIHtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5iYWRnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAtMTFweDtcbiAgbGVmdDogLTFweDtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uY2FsbGluZy10YWJsZSB7XG4gIHBhZGRpbmctdG9wOiAwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAwcHg7XG59XG5cbi5uYXZfX25vdGlmaWNhdGlvbnNfX2xpc3RfX2l0ZW0ge1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbnRhaW46IHN0cmljdDtcbiAgaGVpZ2h0OiA1MHB4O1xuICB3aWR0aDogNDAwcHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGNvbG9yOiAjMWIxYjFiO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAyNTBtcyBjdWJpYy1iZXppZXIoMC4zLCAwLCAwLjcsIDEpO1xuICBiYWNrZ3JvdW5kOiAjZTdlN2U3O1xuICBvcGFjaXR5OiAxO1xuICBtYXJnaW4tYm90dG9tOiAycHg7XG4gIG1hcmdpbi1sZWZ0OiAycHg7XG4gIG1hcmdpbi1yaWdodDogMnB4O1xuICBwb3NpdGlvbjogaW5oZXJpdDtcbiAgcGFkZGluZy10b3A6IDVweDtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDJweDtcbn1cblxuLm1lbnUgOjpuZy1kZWVwIC5tYXQtbWVudS1jb250ZW50IHtcbiAgcGFkZGluZy10b3A6IDBweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWJvdHRvbTogMHB4ICFpbXBvcnRhbnQ7XG59XG5cbjo6bmctZGVlcCAubWF0LW1lbnUtcGFuZWwge1xuICBtYXgtd2lkdGg6IDMzNHB4ICFpbXBvcnRhbnQ7XG4gIG1heC1oZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbn1cblxuOjpuZy1kZWVwIC5tYXQtbWVudS1pdGVtIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2VjZThlOCAhaW1wb3J0YW50O1xufVxuXG4ubWF0LW1lbnUtcGFuZWwge1xuICBtaW4td2lkdGg6IDExMnB4O1xuICBtYXgtd2lkdGg6IDMzNHB4ICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiBhdXRvO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIC8qIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSA0OHB4KTsgKi9cbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBvdXRsaW5lOiAwO1xuICAvKiBtaW4taGVpZ2h0OiA2NHB4OyAqL1xuICBtYXgtaGVpZ2h0OiA1NSUgIWltcG9ydGFudDtcbn1cblxuLmRpc3BsYXlTcGlubmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IDM1cHg7XG59XG5cbi5icmVha3VwLXdyYXBwZXIge1xuICBmb250LWZhbWlseTogTW9udHNlcnJhdC1NZWRpdW07XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luLWxlZnQ6IDhweDtcbn1cblxuLnBvcC11cC12aWV3IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tbGVmdDogOHB4O1xufVxuXG4uYnJlYWt1cC1wb3B1cCB7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDZweCAwIHJnYmEoODcsIDg3LCA4NywgMC41Myk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAzOHB4O1xuICByaWdodDogLTE4cHg7XG4gIG1pbi13aWR0aDogMzE1cHg7XG4gIHotaW5kZXg6IDE7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbiAgbWF4LWhlaWdodDogNTAwcHg7XG4gIG1pbi1oZWlnaHQ6IDEwMHB4O1xufVxuXG4uYWRkLWJlbmlmaXRzIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LWZhbWlseTogTW9udHNlcnJhdC1Cb2xkO1xuICBjb2xvcjogIzM0MzQzNDtcbn1cblxuLmJlbmVmaXRzLXN1Yi1saXN0IHtcbiAgbWFyZ2luLXRvcDogMjRweDtcbn1cblxuLmFkZC1iZW5pZml0cyB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi5icmVha3VwLXBvcHVwIC5iYXNlLXBsYW4ge1xuICBmb250LWZhbWlseTogTW9udHNlcnJhdC1TZW1pQm9sZDtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBjb2xvcjogIzM0MzQzNDtcbiAgcGFkZGluZy1yaWdodDogMjhweDtcbn1cblxuLmJyZWFrdXAtcG9wdXAgLmJlbmVmaXRzLXN1YiAubGFibGUge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtZmFtaWx5OiBcIk1vbnRzZXJyYXQtUmVndWxhclwiO1xuICBjb2xvcjogIzM0MzQzNDtcbn1cblxuLmJyZWFrdXAtcG9wdXAgLmFtb3V0IHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBjb2xvcjogIzM0MzQzNDtcbn1cblxuLnBvcHVwLWNvbnRlbnQge1xuICBwb2ludGVyLWV2ZW50czogYWxsO1xuICBtYXJnaW4tdG9wOiAyMHB4O1xuICBvdmVyZmxvdzogYXV0bztcbiAgbWF4LXdpZHRoOiAzMDdweDtcbiAgbWF4LWhlaWdodDogNDY3cHg7XG59XG5cbi5jbG9zZS1pY29uIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBmbG9hdDogcmlnaHQ7XG4gIHBhZGRpbmctcmlnaHQ6IDVweDtcbiAgbWFyZ2luLXRvcDogM3B4O1xufVxuXG4ucG9pbnRlciB7XG4gIGN1cnNvcjogcG9pbnRlciAhaW1wb3J0YW50O1xufVxuXG4uYnJlYWt1cC1wb3B1cDphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtOXB4O1xuICByaWdodDogMzRweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICB3aWR0aDogMjBweDtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKTtcbiAgYmFja2dyb3VuZDogaW5oZXJpdDtcbiAgYm94LXNoYWRvdzogLTRweCA0cHggNHB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuICB6LWluZGV4OiAtMTtcbiAgYm9yZGVyOiBpbmhlcml0O1xuICBib3JkZXItd2lkdGg6IDAgNHB4IDRweCAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5iZW5lZml0cy1saXN0IHtcbiAgcGFkZGluZzogMTBweCAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NmY2ZjZjtcbiAgZGlzcGxheTogZmxleDtcbiAgZm9udC1mYW1pbHk6IFwiTW9udHNlcnJhdC1TZW1pQm9sZFwiO1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgY29sb3I6IHJlZDtcbn1cblxuLmJlbmVmaXRzLWxpc3QgLmxhYmxlIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4uYmVuZWZpdHMtbGlzdCAubGFibGUgc3BhbiB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgY29sb3I6ICM4ZThlOGU7XG4gIGZvbnQtZmFtaWx5OiBcIk1vbnRzZXJyYXQtTWVkaXVtXCI7XG59XG5cbi5iZW5lZml0cy1saXN0IC5pbmZvIHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLmJlbmVmaXRzLWxpc3QgLnJlbW92ZS1jbGljayB7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuXG4uc3RpY2t5LXdpdGgtY2xvc2UgLmJlbmVmaXRzLWxpc3QgLmFtb3V0IHtcbiAgcGFkZGluZy1yaWdodDogMjhweDtcbn1cblxuLmJlbmVmaXRzLXN1YiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAwIDVweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLmJlbmVmaXRzLXN1YiAubGFibGUge1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtZmFtaWx5OiBcIk1vbnRzZXJyYXQtUmVndWxhclwiO1xufVxuXG4uYmVuZWZpdHMtc3ViIC5pbmZvIHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLmJlbmVmaXRzLXN1YiAucmVtb3ZlLWNsaWNrIHtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbi5iZW5lZml0cy1zdWItbGlzdCAuaDEge1xuICBtYXJnaW46IDIwcHggMCAxNXB4O1xufVxuXG4uYmVuZWZpdHMtc3ViLnJlbW92ZS1saXN0IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnN0aWNreS13aXRoLWNsb3NlIC5iZW5lZml0cy1zdWIgLmFtb3V0IHtcbiAgcGFkZGluZy1yaWdodDogMDtcbn1cblxuLnN0aWNreS1kb3duLWFycm93IHtcbiAgd2lkdGg6IDYwcHg7XG4gIGhlaWdodDogMzRweDtcbiAgYm9yZGVyLXJhZGl1czogMzBweCAzMHB4IDAgMDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0zMHB4O1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIGJveC1zaGFkb3c6IDBweCAtM3B4IDExcHggLTNweCByZ2JhKDE1MSwgMTUxLCAxNTEsIDAuNTMpO1xufVxuXG4uc3RpY2t5LWRvd24tYXJyb3cgaW1nIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDJweDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG4uZmlsdGVyQnV0dG9uIHtcbiAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0Q7XG4gIGhlaWdodDogMjZweDtcbiAgbGluZS1oZWlnaHQ6IDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDFweDtcbn1cblxuLmltYWdlIHtcbiAgd2lkdGg6IDEyMHB4O1xuICBoZWlnaHQ6IDMwcHg7XG59Il19 */\"","import { Component, OnInit, ViewChild } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { CommonService } from \"../../../core/service/common-service/common.service\";\nimport { interval, Subscription } from \"rxjs\";\nimport { MatMenuTrigger } from \"@angular/material\";\nimport { IndentStyle } from \"typescript\";\n\n@Component({\n selector: \"app-header\",\n templateUrl: \"./header.component.html\",\n styleUrls: [\"./header.component.scss\"],\n})\nexport class HeaderComponent implements OnInit {\n @ViewChild(\"notification\", { static: true }) trigger: MatMenuTrigger;\n\n userName: String;\n public uamAccess: String = \"false\";\n userRoles: string;\n navLinks: Array = [];\n dropdown1:Array=[];\n spinner: boolean;\n userId: string;\n notificationList: any;\n message: string[] = [];\n count: number = 0;\n //intervalId: any;\n now: Date = new Date();\n subscription: Subscription;\n intervalId: number;\n showNotifications: boolean;\n countryCode: string;\n roleId: string ;\n constructor(\n private router: Router,\n private commonService: CommonService,\n private toastr: ToastrService\n ) {}\n\n ngOnInit() {\n\n this.roleId = localStorage.getItem(\"roleId\");\n this.userName = localStorage.getItem(\"userName\");\n this.userRoles = localStorage.getItem(\"userRoles\");\n this.uamAccess = localStorage.getItem(\"uamAccess\");\n this.userId = localStorage.getItem(\"userId\");\n this.countryCode = localStorage.getItem('countryCode');\n if(this.userRoles === \"SME\" && this.countryCode === \"IND91\") {\n this.navLinks.push({\n id: \"lost-customer\",\n routerLink: \"/lost-customer\",\n icon: \"eicher/assets/img/calling-list.png\",\n name: \"Lost Customer\",\n })\n this.navLinks.push({\n id: \"reporting\",\n routerLink: \"/reporting\",\n icon: \"eicher/assets/img/reporting.png\",\n name: \"Reporting\",\n });\n this.navLinks.push({\n id: \"doorstep\",\n routerLink: \"/doorstep-calling-list\",\n icon: \"eicher/assets/img/calling-list.png\",\n name: \"Doorstep\",\n });\n this.navLinks.push({\n id: \"doorstep-dashboard\",\n routerLink: \"/doorstep-dashboard\",\n icon: \"eicher/assets/img/dashboard.png\",\n name: \"Dashboard\",\n })\n }\n if (this.userRoles == \"CRE\" && this.countryCode != \"BNG88\") {\n this.navLinks = [\n {\n id: \"callList\",\n routerLink: \"/calling\",\n icon: \"/eicher/assets/img/calling-list.png\",\n name: \"Calling List\",\n },\n {\n id: \"inboundCall\",\n routerLink: \"/inboundCall\",\n icon: \"/eicher/assets/img/inbound call.png\",\n name: \"Inbound Call\",\n },\n\n {\n id: \"prs-callList\",\n routerLink: \"/prs-calling\",\n icon: \"/eicher/assets/img/calling-list.png\",\n name: \"PRS Calling List\",\n },\n {\n id: \"prs-reporting\",\n routerLink: \"/prs-reporting\",\n icon: \"/eicher/assets/img/reporting.png\",\n name: \"PRS Reporting\",\n }\n ];\n this.dropdown1=[\n {\n id: \"soft-calling\",\n routerLink: \"/soft-calling\",\n icon: \"/eicher/assets/img/calling-list.png\",\n name: \"Soft Offering\",\n }\n ];\n }\n\n if (this.userRoles == \"Call Center Agent\" && this.countryCode != \"BNG88\") {\n this.navLinks.push({\n id: \"prs-callList\",\n routerLink: \"/prs-calling\",\n icon: \"/eicher/assets/img/calling-list.png\",\n name: \"Calling List\",\n });\n this.navLinks.push({\n id: \"prs-reporting\",\n routerLink: \"/prs-reporting\",\n icon: \"/eicher/assets/img/reporting.png\",\n name: \"Reporting\",\n });\n this.navLinks.push({\n id: \"workshop-reassignment\",\n routerLink: \"/workshop-reassignment\",\n icon: \"/eicher/assets/img/calling-list.png\",\n name: \"Workshop Reassignment\",\n });\n } else if (this.userRoles == \"Team Leader\" || this.userRoles == \"Manager\") {\n this.navLinks.push({\n id: \"prs-reporting\",\n routerLink: \"/prs-reporting\",\n icon: \"/eicher/assets/img/reporting.png\",\n name: \"Reporting\",\n });\n } else if (this.userRoles == \"Workshop Manager\") {\n this.navLinks.push({\n id: \"workshop-manager-calling\",\n routerLink: \"/workshop-manager-calling\",\n icon: \"/eicher/assets/img/calling-list.png\",\n name: \"Lost Customer\",\n });\n this.dropdown1.push({\n id: \"soft-calling\",\n routerLink: \"/soft-calling\",\n icon: \"/eicher/assets/img/calling-list.png\",\n name: \"Soft Offering\",\n });\n this.navLinks.push({\n id: \"soft-reporting\",\n routerLink: \"/soft-reporting\",\n icon: \"/eicher/assets/img/reporting.png\",\n name: \"Soft Offering Reporting\",\n });\n this.navLinks.push({\n id: \"dashboard\",\n routerLink: \"/dashboard\",\n icon: \"/eicher/assets/img/dashboard.png\",\n name: \"Dashboard\",\n });\n } else if (this.countryCode != \"BNG88\") {\n if(this.countryCode!=\"IND91\" || (this.userRoles != \"SME\" && this.userRoles != \"DSPM\")){\n this.navLinks.push({\n id: \"reporting\",\n routerLink: \"/reporting\",\n icon: \"/eicher/assets/img/reporting.png\",\n name: \"Reporting\",\n });\n this.navLinks.push({\n id: \"soft-reporting\",\n routerLink: \"/soft-reporting\",\n icon: \"/eicher/assets/img/reporting.png\",\n name: \"Soft Offering Reporting\",\n });\n this.navLinks.push({\n id: \"dashboard\",\n routerLink: \"/dashboard\",\n icon: \"/eicher/assets/img/dashboard.png\",\n name: \"Dashboard\",\n });\n }\n }\n\n if (this.countryCode != \"BNG88\" && this.userRoles != \"CRE\" && this.userRoles != \"Call Center Agent\" && this.userRoles != \"SME\" && this.userRoles != \"DSPM\") {\n this.navLinks.push({\n id: \"market-reporting\",\n routerLink: \"/market-reporting\",\n icon: \"/eicher/assets/img/reporting.png\",\n name: \"Market Share Reporting\",\n });\n }\n\n if ((this.userRoles == \"CRE\" || this.userRoles == \"Vecv SRM User\" || this.userRoles == \"Pan India\") && this.countryCode != \"BNG88\") {\n this.navLinks.push({\n id: \"cdm-calling\",\n routerLink: \"/cdm-calling\",\n icon: \"/eicher/assets/img/calling-list.png\",\n name: \"Service Request\",\n });\n }\n\n if ((this.userRoles == \"Vecv SRM User\") && this.countryCode == \"BNG88\") {\n this.navLinks.push({\n id: \"cdm-calling\",\n routerLink: \"/cdm-calling\",\n icon: \"/eicher/assets/img/calling-list.png\",\n name: \"Service Request\",\n });\n }\n\n if(this.userRoles == \"CRE\" && this.countryCode == \"BNG88\"){\n this.navLinks = [\n {\n id: \"callList\",\n routerLink: \"/calling\",\n icon: \"/eicher/assets/img/calling-list.png\",\n name: \"Calling List\",\n },\n {\n id: \"inboundCall\",\n routerLink: \"/inboundCall\",\n icon: \"/eicher/assets/img/inbound call.png\",\n name: \"Inbound Call\",\n },\n {\n id: \"reporting\",\n routerLink: \"/reporting\",\n icon: \"/eicher/assets/img/reporting.png\",\n name: \"Reporting\",\n },\n {\n id: \"dashboard\",\n routerLink: \"/dashboard\",\n icon: \"/eicher/assets/img/dashboard.png\",\n name: \"Dashboard\",\n }\n ];\n } else if(this.userRoles == \"Call Center Agent\" && this.countryCode == \"BNG88\") {\n this.navLinks.push({\n id: \"prs-callList\",\n routerLink: \"/prs-calling\",\n icon: \"/eicher/assets/img/calling-list.png\",\n name: \"Calling List\",\n });\n this.navLinks.push({\n id: \"prs-reporting\",\n routerLink: \"/prs-reporting\",\n icon: \"/eicher/assets/img/reporting.png\",\n name: \"Reporting\",\n });\n }\n\n if (this.userRoles == \"Pan India\" || this.userRoles == \"Channel Service Manager\" || this.userRoles == \"Area Service Manager\" || this.userRoles == \"Regional Service Manager\") {\n this.navLinks.push({\n id: \"prs-reporting\",\n routerLink: \"/prs-reporting\",\n icon: \"/eicher/assets/img/reporting.png\",\n name: \"PRS Reporting\",\n });\n this.navLinks.push({\n id: \"inboundCall\",\n routerLink: \"/inboundCall\",\n icon: \"/eicher/assets/img/inbound call.png\",\n name: \"Inbound Call\",\n });\n }\n if (this.userRoles == \"Regional Service Manager\"|| this.userRoles == \"Channel Service Manager\" || this.userRoles == \"Service Marketing Manager\" ) {\n this.dropdown1.push({\n id: \"soft-calling\",\n routerLink: \"/soft-calling\",\n icon: \"/eicher/assets/img/calling-list.png\",\n name: \"Soft Offering\",\n });\n }\n\n if(this.userRoles === \"DSPM\" && this.countryCode === \"IND91\") {\n this.dropdown1.push({\n id: \"soft-calling\",\n routerLink: \"/soft-calling\",\n icon: \"/eicher/assets/img/calling-list.png\",\n name: \"Soft Offering\",\n });\n\n this.navLinks.push({\n id: \"soft-reporting\",\n routerLink: \"/soft-reporting\",\n icon: \"/eicher/assets/img/reporting.png\",\n name: \"Soft Offering Reporting\",\n });\n }\n\n if (this.userRoles == \"Dealer Principle\") {\n this.navLinks.push({\n id: \"prs-reporting\",\n routerLink: \"/prs-reporting\",\n icon: \"/eicher/assets/img/reporting.png\",\n name: \"PRS Reporting\",\n });\n }\n\n if (this.uamAccess == \"true\" && this.userRoles != \"Call Center Agent\") {\n if(this.userId == 'ssharma118') {\n this.navLinks.push({\n id: \"admin\",\n routerLink: \"/admin\",\n icon: \"/eicher/assets/img/reporting.png\",\n name: \"Fert Master\",\n });\n }\n this.navLinks.push({\n id: \"uam\",\n routerLink: \"/uam\",\n icon: \"/eicher/assets/img/inbound call.png\",\n name: \"UAM\",\n });\n }\n this.notification();\n let source = interval(300000);\n this.subscription = source.subscribe((val) => this.notification());\n }\n\n /**\n * Name: logout\n * purpose: To Sign out user\n */\n logout() {\n localStorage.clear();\n this.commonService.stopInterval();\n this.commonService.callListResponseData = [];\n this.commonService.prsCallListResponseData = [];\n this.getSigninUpdate(this.userId, 'N', '0');\n this.router.navigate([\"/login\"]);\n }\n\n /**\n * Name: profile\n * purpose: To open profile section\n */\n profile() {\n this.router.navigate([\"/profile\"]);\n }\n\n saveHeader( navOption: string){\n localStorage.setItem(\"navOption\",navOption);\n }\n\n openSoft(){\n this.router.navigate([\"/soft-calling\"]);\n }\n\n notification() {\n this.message = [];\n this.count = 0;\n this.spinner = true;\n this.commonService.fetchNotification(this.userId).subscribe(\n (res) => {\n if (res[\"responseCode\"] == 0) {\n this.spinner = false;\n this.notificationList = res[\"responseData\"];\n this.notificationList.forEach((element) => {\n this.message.push(element.message);\n if (element.status == \"N\") {\n this.count++;\n }\n });\n // if(this.message.length){\n // this.trigger.openMenu();\n // }\n } else {\n this.spinner = false;\n }\n },\n (err) => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Schedular Error\");\n }\n );\n }\n\n updateNotification(event?): any {\n event.stopPropagation();\n event.preventDefault();\n\n this.spinner = true;\n this.commonService.updateNotification(this.userId).subscribe(\n (res) => {\n if (res[\"responseCode\"] == 0) {\n this.spinner = false;\n this.showNotifications = this.showNotifications ? false : true;\n this.notification();\n } else {\n this.spinner = false;\n }\n },\n (err) => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n }\n );\n }\n\n ngOnDestroy() {\n this.subscription && this.subscription.unsubscribe();\n }\n\n displayMenu() {\n this.showNotifications = this.showNotifications ? false : true;\n // alert(this.showNotifications);\n }\n changeColor(): string {\n if (this.count != 0) {\n return \"red\";\n }\n }\n\n getSigninUpdate(user: string, flag: string, count: string): void {\n this.commonService.getSigninUpdate(user, flag, count).subscribe(res => {\n if (res['responseCode'] == 0) {\n //console.log(res['responseData'].message);\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, error => {\n this.spinner = false;\n this.toastr.error(error, \"Error\");\n });\n }\n\n /**\n * Name: getOperationalDashboardReport\n * purpose: To export Operational Dashboard Report as excel\n */\n getOperationalDashboardReport(): void {\n this.spinner = true;\n let fileName = \"SRM_Data Status Report_From_\";\n this.commonService.getOperationalDashboardReport(this.userId)\n .subscribe(fileData => {\n if (fileData) {\n const blob: any = new Blob([fileData], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\n let link = document.createElement(\"a\");\n if (link.download !== undefined) {\n let url = URL.createObjectURL(blob);\n link.setAttribute(\"href\", url);\n link.setAttribute(\"download\", fileName);\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n this.spinner = false;\n }\n } else {\n this.spinner = false;\n }\n }, err => {\n this.spinner = false;\n\n });\n }\n}","export default \".p-0 {\\n padding: 0%;\\n}\\n\\n.m-0 {\\n margin: 0%;\\n}\\n\\n.content {\\n padding-top: 60px;\\n padding-left: 244px;\\n /* Safari prior 6.1 */\\n transition: padding 0.6s;\\n height: 100vh;\\n overflow: hidden;\\n}\\n\\n.content .page-empty {\\n padding-top: 0;\\n}\\n\\n.content.pageSidebarMinified {\\n padding-left: 90px;\\n /* Safari prior 6.1 */\\n transition: padding 0.6s;\\n}\\n\\n.content.pageWithoutSidebar {\\n padding-left: 0;\\n /* Safari prior 6.1 */\\n transition: padding 0.6s;\\n}\\n\\n.content.pageWithoutSidebar .toast {\\n width: 100%;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9sYXlvdXQvY29tcG9uZW50L21haW4tbGF5b3V0L21haW4tbGF5b3V0LmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9sYXlvdXQvY29tcG9uZW50L21haW4tbGF5b3V0L21haW4tbGF5b3V0LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksV0FBQTtBQ0NKOztBREVBO0VBQ0ksVUFBQTtBQ0NKOztBREVBO0VBQ0ksaUJBQUE7RUFDQSxtQkFBQTtFQUNrQyxxQkFBQTtFQUNsQyx3QkFBQTtFQUNBLGFBQUE7RUFDQSxnQkFBQTtBQ0VKOztBRENBO0VBQ0ksY0FBQTtBQ0VKOztBRENBO0VBQ0ksa0JBQUE7RUFDa0MscUJBQUE7RUFDbEMsd0JBQUE7QUNHSjs7QURBQTtFQUNJLGVBQUE7RUFDa0MscUJBQUE7RUFDbEMsd0JBQUE7QUNJSjs7QUREQTtFQUNJLFdBQUE7QUNJSiIsImZpbGUiOiJzcmMvYXBwL2xheW91dC9jb21wb25lbnQvbWFpbi1sYXlvdXQvbWFpbi1sYXlvdXQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIucC0wIHtcbiAgICBwYWRkaW5nOiAwJTtcbn1cblxuLm0tMCB7XG4gICAgbWFyZ2luOiAwJTtcbn1cblxuLmNvbnRlbnQge1xuICAgIHBhZGRpbmctdG9wOiA2MHB4O1xuICAgIHBhZGRpbmctbGVmdDogMjQ0cHg7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBwYWRkaW5nIDAuNnM7IC8qIFNhZmFyaSBwcmlvciA2LjEgKi9cbiAgICB0cmFuc2l0aW9uOiBwYWRkaW5nIDAuNnM7XG4gICAgaGVpZ2h0OiAxMDB2aDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uY29udGVudCAucGFnZS1lbXB0eXtcbiAgICBwYWRkaW5nLXRvcDogMDtcbn1cblxuLmNvbnRlbnQucGFnZVNpZGViYXJNaW5pZmllZCB7XG4gICAgcGFkZGluZy1sZWZ0OiA5MHB4O1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogcGFkZGluZyAwLjZzOyAvKiBTYWZhcmkgcHJpb3IgNi4xICovXG4gICAgdHJhbnNpdGlvbjogcGFkZGluZyAwLjZzO1xufVxuXG4uY29udGVudC5wYWdlV2l0aG91dFNpZGViYXIge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IHBhZGRpbmcgMC42czsgLyogU2FmYXJpIHByaW9yIDYuMSAqL1xuICAgIHRyYW5zaXRpb246IHBhZGRpbmcgMC42cztcbn1cblxuLmNvbnRlbnQucGFnZVdpdGhvdXRTaWRlYmFyIC50b2FzdCB7XG4gICAgd2lkdGg6IDEwMCU7XG59IiwiLnAtMCB7XG4gIHBhZGRpbmc6IDAlO1xufVxuXG4ubS0wIHtcbiAgbWFyZ2luOiAwJTtcbn1cblxuLmNvbnRlbnQge1xuICBwYWRkaW5nLXRvcDogNjBweDtcbiAgcGFkZGluZy1sZWZ0OiAyNDRweDtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBwYWRkaW5nIDAuNnM7XG4gIC8qIFNhZmFyaSBwcmlvciA2LjEgKi9cbiAgdHJhbnNpdGlvbjogcGFkZGluZyAwLjZzO1xuICBoZWlnaHQ6IDEwMHZoO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uY29udGVudCAucGFnZS1lbXB0eSB7XG4gIHBhZGRpbmctdG9wOiAwO1xufVxuXG4uY29udGVudC5wYWdlU2lkZWJhck1pbmlmaWVkIHtcbiAgcGFkZGluZy1sZWZ0OiA5MHB4O1xuICAtd2Via2l0LXRyYW5zaXRpb246IHBhZGRpbmcgMC42cztcbiAgLyogU2FmYXJpIHByaW9yIDYuMSAqL1xuICB0cmFuc2l0aW9uOiBwYWRkaW5nIDAuNnM7XG59XG5cbi5jb250ZW50LnBhZ2VXaXRob3V0U2lkZWJhciB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBwYWRkaW5nIDAuNnM7XG4gIC8qIFNhZmFyaSBwcmlvciA2LjEgKi9cbiAgdHJhbnNpdGlvbjogcGFkZGluZyAwLjZzO1xufVxuXG4uY29udGVudC5wYWdlV2l0aG91dFNpZGViYXIgLnRvYXN0IHtcbiAgd2lkdGg6IDEwMCU7XG59Il19 */\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-main-layout',\n templateUrl: './main-layout.component.html',\n styleUrls: ['./main-layout.component.scss']\n})\n\nexport class MainLayoutComponent implements OnInit {\n constructor() {}\n\n ngOnInit() {}\n\n isLoggedIn () {\n let isLoggedIn = localStorage.getItem('isLoggedIn') ? true : false; \n return isLoggedIn;\n }\n}\n","export default \".message {\\n width: 100%;\\n margin-bottom: 20px;\\n margin-top: 25px;\\n}\\n\\n.dialog-area {\\n padding: 15px;\\n font-size: 14px;\\n}\\n\\n.row {\\n width: 100%;\\n height: 36px;\\n}\\n\\n.row .button {\\n margin-left: 10px;\\n}\\n\\n.header {\\n font-weight: bold;\\n margin-bottom: 10px;\\n}\\n\\n.action {\\n text-align: right;\\n}\\n\\n.close-con {\\n float: right;\\n font-size: 18px;\\n cursor: pointer;\\n}\\n\\n.margin {\\n margin-right: 5px;\\n}\\n\\n.btn {\\n position: relative;\\n cursor: pointer;\\n overflow: hidden;\\n background-color: #00457d !important;\\n border-radius: 5px !important;\\n height: 25px;\\n}\\n\\n.btn p {\\n text-align: center;\\n text-transform: uppercase;\\n color: #fff;\\n position: relative;\\n z-index: 1;\\n transition: all 0.3s ease;\\n margin: auto;\\n font-size: 12px;\\n line-height: 10px;\\n}\\n\\n.btn-1 {\\n background-color: #ffffff !important;\\n color: #00457d !important;\\n border: 1px solid #00457d;\\n}\\n\\n.btn-1 p {\\n margin: auto;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9tb2RhbC9ibGFua2V0LWZlZWRiYWNrLWRhaWxvZy9ibGFua2V0LWZlZWRiYWNrLWRhaWxvZy5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvbW9kYWwvYmxhbmtldC1mZWVkYmFjay1kYWlsb2cvYmxhbmtldC1mZWVkYmFjay1kYWlsb2cuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxXQUFBO0VBQ0EsbUJBQUE7RUFDQSxnQkFBQTtBQ0NKOztBREVBO0VBQ0ksYUFBQTtFQUNBLGVBQUE7QUNDSjs7QURFQTtFQUNJLFdBQUE7RUFDQSxZQUFBO0FDQ0o7O0FERUE7RUFDSSxpQkFBQTtBQ0NKOztBREVBO0VBQ0ksaUJBQUE7RUFDQSxtQkFBQTtBQ0NKOztBREVBO0VBQ0ksaUJBQUE7QUNDSjs7QURFQTtFQUNJLFlBQUE7RUFDQSxlQUFBO0VBQ0EsZUFBQTtBQ0NKOztBREVBO0VBQ0ksaUJBQUE7QUNDSjs7QURFQTtFQUNJLGtCQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0Esb0NBQUE7RUFDQSw2QkFBQTtFQUNBLFlBQUE7QUNDSjs7QURFQTtFQUNJLGtCQUFBO0VBQ0EseUJBQUE7RUFDQSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBO0VBQ0EseUJBQUE7RUFDQSxZQUFBO0VBQ0EsZUFBQTtFQUNBLGlCQUFBO0FDQ0o7O0FERUE7RUFDSSxvQ0FBQTtFQUNBLHlCQUFBO0VBQ0EseUJBQUE7QUNDSjs7QURFQTtFQUNJLFlBQUE7QUNDSiIsImZpbGUiOiJzcmMvYXBwL21vZGFsL2JsYW5rZXQtZmVlZGJhY2stZGFpbG9nL2JsYW5rZXQtZmVlZGJhY2stZGFpbG9nLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm1lc3NhZ2Uge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgbWFyZ2luLXRvcDogMjVweDtcbn1cblxuLmRpYWxvZy1hcmVhIHtcbiAgICBwYWRkaW5nOiAxNXB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLnJvdyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAzNnB4O1xufVxuXG4ucm93IC5idXR0b24ge1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuXG4uaGVhZGVyIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4uYWN0aW9uIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLmNsb3NlLWNvbiB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5tYXJnaW4ge1xuICAgIG1hcmdpbi1yaWdodDogNXB4O1xufVxuXG4uYnRuIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3ZCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDVweCAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogMjVweDtcbn1cblxuLmJ0biBwIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDEwcHg7XG59XG5cbi5idG4tMSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjMDA0NTdkICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzAwNDU3ZDtcbn1cblxuLmJ0bi0xIHAge1xuICAgIG1hcmdpbjogYXV0bztcbn0iLCIubWVzc2FnZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBtYXJnaW4tdG9wOiAyNXB4O1xufVxuXG4uZGlhbG9nLWFyZWEge1xuICBwYWRkaW5nOiAxNXB4O1xuICBmb250LXNpemU6IDE0cHg7XG59XG5cbi5yb3cge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAzNnB4O1xufVxuXG4ucm93IC5idXR0b24ge1xuICBtYXJnaW4tbGVmdDogMTBweDtcbn1cblxuLmhlYWRlciB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4uYWN0aW9uIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi5jbG9zZS1jb24ge1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubWFyZ2luIHtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG59XG5cbi5idG4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3ZCAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA1cHggIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAyNXB4O1xufVxuXG4uYnRuIHAge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiAjZmZmO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIG1hcmdpbjogYXV0bztcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMTBweDtcbn1cblxuLmJ0bi0xIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICBjb2xvcjogIzAwNDU3ZCAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCAjMDA0NTdkO1xufVxuXG4uYnRuLTEgcCB7XG4gIG1hcmdpbjogYXV0bztcbn0iXX0= */\"","import { Component, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material';\n\n@Component({\n selector: 'app-blanket-feedback-dailog',\n templateUrl: './blanket-feedback-dailog.component.html',\n styleUrls: ['./blanket-feedback-dailog.component.scss']\n})\nexport class BlanketFeedbackDailogComponent implements OnInit {\n\n constructor(\n private dialogRef: MatDialogRef\n ) { }\n\n ngOnInit() {\n }\n\n openDialog() : void {\n this.dialogRef.close(true);\n }\n\n closeDialog() {\n this.close();\n this.dialogRef.close(false);\n }\n\n close() {\n this.dialogRef.close(false);\n }\n\n}\n","export default \"#callDialog {\\n box-shadow: 0 1px 2px 1px rgba(0, 0, 0, 0.2), 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12);\\n padding: 10px;\\n background-color: #ffffff;\\n position: fixed;\\n width: 35%;\\n height: 450px;\\n}\\n\\n.close-con {\\n float: right;\\n font-size: 18px;\\n cursor: pointer;\\n}\\n\\ntable {\\n width: 100%;\\n}\\n\\n.call-header {\\n font-family: Bold 16px/22px Roboto;\\n font-size: 12px;\\n}\\n\\n.call-header i {\\n color: #00457d;\\n}\\n\\n.rect2 {\\n width: 100%;\\n background: #eaeaea;\\n}\\n\\n.rect3 {\\n padding-top: 25px;\\n padding-right: 0px;\\n padding-left: 0px;\\n padding-bottom: 0px;\\n width: 100%;\\n font-size: 12px;\\n background: #ffffff;\\n}\\n\\n.rect3 .button {\\n float: right;\\n margin-right: 8px;\\n margin-top: 5px;\\n}\\n\\n.rect4 {\\n width: 100%;\\n font-size: 12px;\\n padding-bottom: 0px;\\n}\\n\\n.ngx-timepicker-field-example {\\n float: left;\\n margin-top: 15px;\\n}\\n\\n.rect5 {\\n float: left;\\n width: 100%;\\n}\\n\\n.text-pp {\\n width: 100%;\\n}\\n\\n.call-popup-save {\\n float: right;\\n margin-right: 20px;\\n margin-bottom: 10px;\\n}\\n\\n.icons .fa-phone {\\n transform: rotate(135deg);\\n}\\n\\n.icons .fa-microphone-slash,\\n.icons .fa-phone {\\n font-size: 24px;\\n}\\n\\n.icons .button {\\n margin: 5px;\\n}\\n\\n.icons {\\n margin-top: 25px;\\n padding-left: 29%;\\n}\\n\\n.hang-btn {\\n color: red !important;\\n border-color: red !important;\\n}\\n\\n.classtext1 {\\n font-weight: bold;\\n}\\n\\n.timestamp {\\n font-size: 11px;\\n margin-left: 10px;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-group {\\n border-radius: 0px;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle {\\n background-color: #ffffff;\\n color: #000000;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-checked {\\n background-color: #00457d;\\n color: #ffffff;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-label-content {\\n line-height: 20px;\\n}\\n\\n.btn {\\n position: relative;\\n cursor: pointer;\\n transition: all 0.3s ease;\\n overflow: hidden;\\n background-color: #00457D !important;\\n height: 24px;\\n line-height: 10px;\\n}\\n\\n.mat-button {\\n border-radius: 0px;\\n float: right;\\n}\\n\\n.btn p {\\n text-align: center;\\n text-transform: uppercase;\\n color: #fff;\\n position: relative;\\n z-index: 1;\\n transition: all 0.3s ease;\\n margin: auto;\\n font-size: 12px;\\n}\\n\\n/* sliders */\\n\\n/* Left Slider */\\n\\n.btn-1 {\\n background-color: #ffffff !important;\\n color: #e64243 !important;\\n border: 1px solid #e64243;\\n}\\n\\n.btn-1 p {\\n margin: auto;\\n}\\n\\n.dropdown-pp1 .mat-form-field-infix {\\n height: 21px !important;\\n width: 100%;\\n padding-bottom: 0px !important;\\n}\\n\\n.dropdown-pp1 .mat-form-field {\\n width: 100%;\\n}\\n\\n.dropdown-pp1 .ng-star-inserted {\\n width: 99%;\\n}\\n\\n.profile-pp1 .mat-form-field-wrapper {\\n padding-bottom: 0px;\\n}\\n\\n.profile-pp1 .mat-label {\\n padding-top: 6px;\\n}\\n\\n.dropdown-border {\\n border-style: solid solid solid solid !important;\\n border-width: 1px;\\n border-radius: 5px;\\n border-color: gray;\\n height: 28px;\\n padding-left: 8px;\\n padding-top: 6px;\\n margin-top: 0px;\\n}\\n\\n.textfield-border {\\n border-style: solid solid solid solid !important;\\n border-width: 1px;\\n border-radius: 5px;\\n border-color: gray;\\n}\\n\\nmat-error {\\n color: #ff0000;\\n font-size: 10px;\\n margin-top: -12px !important;\\n}\\n\\n.error {\\n color: #ff0000;\\n font-size: 10px;\\n}\\n\\n.bay {\\n font-size: 10px;\\n}\\n\\n.bay-area {\\n background-color: #f9f9f9;\\n padding: 10px;\\n}\\n\\n.slot {\\n padding: 5px 5px;\\n margin: 0px;\\n text-align: center;\\n border: 1px solid lightgray;\\n}\\n\\n.occupied {\\n background-color: #e64243;\\n}\\n\\n.bay-label {\\n margin-bottom: 10px;\\n color: rgba(0, 0, 0, 0.54);\\n font-size: 10px;\\n font-weight: 500;\\n}\\n\\n.bay-time {\\n margin-top: 10px;\\n}\\n\\n.datetime {\\n padding: 5px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9tb2RhbC9jYWxsaW5nLWRpYWxvZy9jYWxsaW5nLWRpYWxvZy5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvbW9kYWwvY2FsbGluZy1kaWFsb2cvY2FsbGluZy1kaWFsb2cuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxpSkFBQTtFQUNBLGFBQUE7RUFDQSx5QkFBQTtFQUNBLGVBQUE7RUFDQSxVQUFBO0VBQ0EsYUFBQTtBQ0NKOztBREVBO0VBQ0ksWUFBQTtFQUNBLGVBQUE7RUFDQSxlQUFBO0FDQ0o7O0FERUE7RUFDSSxXQUFBO0FDQ0o7O0FERUE7RUFDSSxrQ0FBQTtFQUNBLGVBQUE7QUNDSjs7QURBSTtFQUNJLGNBQUE7QUNFUjs7QURFQTtFQUNJLFdBQUE7RUFDQSxtQkFBQTtBQ0NKOztBREVBO0VBQ0ksaUJBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0VBQ0EsbUJBQUE7RUFDQSxXQUFBO0VBQ0EsZUFBQTtFQUNBLG1CQUFBO0FDQ0o7O0FERUE7RUFDSSxZQUFBO0VBQ0EsaUJBQUE7RUFDQSxlQUFBO0FDQ0o7O0FERUE7RUFDSSxXQUFBO0VBQ0EsZUFBQTtFQUNBLG1CQUFBO0FDQ0o7O0FERUE7RUFDSSxXQUFBO0VBQ0EsZ0JBQUE7QUNDSjs7QURFQTtFQUNJLFdBQUE7RUFDQSxXQUFBO0FDQ0o7O0FERUE7RUFDSSxXQUFBO0FDQ0o7O0FERUE7RUFDSSxZQUFBO0VBQ0Esa0JBQUE7RUFDQSxtQkFBQTtBQ0NKOztBREVBO0VBQ0kseUJBQUE7QUNDSjs7QURFQTs7RUFFSSxlQUFBO0FDQ0o7O0FERUE7RUFDSSxXQUFBO0FDQ0o7O0FERUE7RUFDSSxnQkFBQTtFQUNBLGlCQUFBO0FDQ0o7O0FERUE7RUFDSSxxQkFBQTtFQUNBLDRCQUFBO0FDQ0o7O0FERUE7RUFDSSxpQkFBQTtBQ0NKOztBREVBO0VBQ0ksZUFBQTtFQUNBLGlCQUFBO0FDQ0o7O0FERUE7RUFDSSxrQkFBQTtBQ0NKOztBREVBO0VBQ0kseUJBQUE7RUFDQSxjQUFBO0FDQ0o7O0FERUE7RUFDSSx5QkFBQTtFQUNBLGNBQUE7QUNDSjs7QURFQTtFQUNJLGlCQUFBO0FDQ0o7O0FER0E7RUFFSSxrQkFBQTtFQUNBLGVBQUE7RUFDQSx5QkFBQTtFQUNBLGdCQUFBO0VBQ0Esb0NBQUE7RUFDQSxZQUFBO0VBQ0EsaUJBQUE7QUNESjs7QURLQTtFQUNJLGtCQUFBO0VBQ0EsWUFBQTtBQ0ZKOztBREtBO0VBQ0ksa0JBQUE7RUFDQSx5QkFBQTtFQUNBLFdBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7RUFDQSx5QkFBQTtFQUNBLFlBQUE7RUFDQSxlQUFBO0FDRko7O0FETUEsWUFBQTs7QUFZQSxnQkFBQTs7QUFZQTtFQUNJLG9DQUFBO0VBQ0EseUJBQUE7RUFDQSx5QkFBQTtBQ3pCSjs7QUQ0QkE7RUFDSSxZQUFBO0FDekJKOztBRDRCQTtFQUNJLHVCQUFBO0VBQ0EsV0FBQTtFQUNBLDhCQUFBO0FDekJKOztBRDZCQTtFQUNJLFdBQUE7QUMxQko7O0FEK0JBO0VBR0ksVUFBQTtBQzlCSjs7QURpQ0E7RUFDSSxtQkFBQTtBQzlCSjs7QURpQ0E7RUFDSSxnQkFBQTtBQzlCSjs7QURrQ0E7RUFDSSxnREFBQTtFQUNBLGlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxrQkFBQTtFQUNBLFlBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZUFBQTtBQy9CSjs7QURrQ0E7RUFDSSxnREFBQTtFQUNBLGlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxrQkFBQTtBQy9CSjs7QURtQ0E7RUFDSSxjQUFBO0VBQ0EsZUFBQTtFQUNBLDRCQUFBO0FDaENKOztBRG1DQTtFQUNJLGNBQUE7RUFDQSxlQUFBO0FDaENKOztBRG9DQTtFQUNJLGVBQUE7QUNqQ0o7O0FEb0NBO0VBQ0kseUJBQUE7RUFDQSxhQUFBO0FDakNKOztBRG9DQTtFQUNJLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsMkJBQUE7QUNqQ0o7O0FEb0NBO0VBQ0kseUJBQUE7QUNqQ0o7O0FEb0NBO0VBQ0ksbUJBQUE7RUFDQSwwQkFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtBQ2pDSjs7QURvQ0E7RUFDSSxnQkFBQTtBQ2pDSjs7QURvQ0E7RUFDSSxZQUFBO0FDakNKIiwiZmlsZSI6InNyYy9hcHAvbW9kYWwvY2FsbGluZy1kaWFsb2cvY2FsbGluZy1kaWFsb2cuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIjY2FsbERpYWxvZyB7XG4gICAgYm94LXNoYWRvdzogMCAxcHggMnB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMnB4IDFweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMCAxcHggMXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAxcHggM3B4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHdpZHRoOiAzNSU7XG4gICAgaGVpZ2h0OiA0NTBweDtcbn1cblxuLmNsb3NlLWNvbiB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbnRhYmxlIHtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLmNhbGwtaGVhZGVyIHtcbiAgICBmb250LWZhbWlseTogQm9sZCAxNnB4LzIycHggUm9ib3RvO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBpIHtcbiAgICAgICAgY29sb3I6ICMwMDQ1N2Q7XG4gICAgfVxufVxuXG4ucmVjdDIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQ6ICNlYWVhZWE7XG59XG5cbi5yZWN0MyB7XG4gICAgcGFkZGluZy10b3A6IDI1cHg7XG4gICAgcGFkZGluZy1yaWdodDogMHB4O1xuICAgIHBhZGRpbmctbGVmdDogMHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG59XG5cbi5yZWN0MyAuYnV0dG9uIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgbWFyZ2luLXRvcDogNXB4O1xufVxuXG4ucmVjdDQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMHB4O1xufVxuXG4ubmd4LXRpbWVwaWNrZXItZmllbGQtZXhhbXBsZSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXRvcDogMTVweDtcbn1cblxuLnJlY3Q1IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLnRleHQtcHAge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4uY2FsbC1wb3B1cC1zYXZlIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi5pY29ucyAuZmEtcGhvbmUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDEzNWRlZyk7XG59XG5cbi5pY29ucyAuZmEtbWljcm9waG9uZS1zbGFzaCxcbi5pY29ucyAuZmEtcGhvbmUge1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbn1cblxuLmljb25zIC5idXR0b24ge1xuICAgIG1hcmdpbjogNXB4O1xufVxuXG4uaWNvbnMge1xuICAgIG1hcmdpbi10b3A6IDI1cHg7XG4gICAgcGFkZGluZy1sZWZ0OiAyOSU7XG59XG5cbi5oYW5nLWJ0biB7XG4gICAgY29sb3I6IHJlZCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogcmVkICFpbXBvcnRhbnQ7XG59XG5cbi5jbGFzc3RleHQxIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLnRpbWVzdGFtcCB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4O1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBjb2xvcjogIzAwMDAwMDtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3ZDtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtbGFiZWwtY29udGVudCB7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG59XG5cbi8vc2xpZGluZyBidG5cbi5idG4ge1xuICAgIC8vYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCAjMmUzNjY4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0QgIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEwcHg7XG4gICAgLy9ib3JkZXItcmFkaXVzOiA1cHg7XG59XG5cbi5tYXQtYnV0dG9uIHtcbiAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4uYnRuIHAge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuXG4vKiBzbGlkZXJzICovXG5cbi8vIC5idG46YmVmb3JlIHtcbi8vICAgICBjb250ZW50OiBcIlwiO1xuLy8gICAgIHdpZHRoOiAxMDAlO1xuLy8gICAgIGhlaWdodDogMTAwJTtcbi8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmUzNjY4O1xuLy8gICAgIGNvbG9yOiAjZmZmO1xuLy8gICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuLy8gfVxuXG4vKiBMZWZ0IFNsaWRlciAqL1xuXG4vLyAuYnRuLTI6YmVmb3JlIHtcbi8vICAgICB0b3A6IDA7XG4vLyAgICAgbGVmdDogLTIzMHB4O1xuLy8gfVxuLy8gLmJ0bi0yOmhvdmVyOmJlZm9yZSB7XG4vLyAgICAgbGVmdDogMDtcbi8vIH1cbi8vIC5idG4tMjpob3ZlciB7XG4vLyAgICAgY29sb3I6ICNmZmY7XG4vLyB9XG4uYnRuLTEge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2U2NDI0MyAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNjQyNDM7XG59XG5cbi5idG4tMSBwIHtcbiAgICBtYXJnaW46IGF1dG87XG59XG5cbi5kcm9wZG93bi1wcDEgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICBoZWlnaHQ6IDIxcHggIWltcG9ydGFudDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMHB4ICFpbXBvcnRhbnQ7XG4gICAgLy9saXN0LXN0eWxlLXBvc2l0aW9uOiBpbmhlcml0O1xufVxuXG4uZHJvcGRvd24tcHAxIC5tYXQtZm9ybS1maWVsZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgLy9wYWRkaW5nLXRvcDogNHB4O1xuICAgIC8vbWFyZ2luLXRvcDogOXB4O1xufVxuXG4uZHJvcGRvd24tcHAxIC5uZy1zdGFyLWluc2VydGVkIHtcbiAgICAvL3BhZGRpbmctdG9wOiA0cHg7XG4gICAgLy9tYXJnaW4tdG9wOiA5cHg7XG4gICAgd2lkdGg6IDk5JTtcbn1cblxuLnByb2ZpbGUtcHAxIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMHB4O1xufVxuXG4ucHJvZmlsZS1wcDEgLm1hdC1sYWJlbCB7XG4gICAgcGFkZGluZy10b3A6IDZweDtcbiAgICAvL29wYWNpdHk6IDAuMTtcbn1cblxuLmRyb3Bkb3duLWJvcmRlciB7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZCBzb2xpZCBzb2xpZCBzb2xpZCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBib3JkZXItY29sb3I6IGdyYXk7XG4gICAgaGVpZ2h0OiAyOHB4O1xuICAgIHBhZGRpbmctbGVmdDogOHB4O1xuICAgIHBhZGRpbmctdG9wOiA2cHg7XG4gICAgbWFyZ2luLXRvcDogMHB4O1xufVxuXG4udGV4dGZpZWxkLWJvcmRlciB7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZCBzb2xpZCBzb2xpZCBzb2xpZCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBib3JkZXItY29sb3I6IGdyYXk7XG59XG5cbi8vbWF0LWVycm9yXG5tYXQtZXJyb3Ige1xuICAgIGNvbG9yOiAjZmYwMDAwO1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICBtYXJnaW4tdG9wOiAtMTJweCAhaW1wb3J0YW50O1xufVxuXG4uZXJyb3Ige1xuICAgIGNvbG9yOiAjZmYwMDAwO1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbn1cblxuLy9iYXkgc2xvdHNcbi5iYXkge1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbn1cblxuLmJheS1hcmVhIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5O1xuICAgIHBhZGRpbmc6IDEwcHg7XG59XG5cbi5zbG90IHtcbiAgICBwYWRkaW5nOiA1cHggNXB4O1xuICAgIG1hcmdpbjogMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG59XG5cbi5vY2N1cGllZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U2NDI0Mztcbn1cblxuLmJheS1sYWJlbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICBjb2xvcjogcmdiYSgwLDAsMCwuNTQpO1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xufVxuXG4uYmF5LXRpbWUge1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG59XG5cbi5kYXRldGltZSB7XG4gICAgcGFkZGluZzogNXB4O1xufSIsIiNjYWxsRGlhbG9nIHtcbiAgYm94LXNoYWRvdzogMCAxcHggMnB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMnB4IDFweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMCAxcHggMXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAxcHggM3B4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgcGFkZGluZzogMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB3aWR0aDogMzUlO1xuICBoZWlnaHQ6IDQ1MHB4O1xufVxuXG4uY2xvc2UtY29uIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxudGFibGUge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmNhbGwtaGVhZGVyIHtcbiAgZm9udC1mYW1pbHk6IEJvbGQgMTZweC8yMnB4IFJvYm90bztcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLmNhbGwtaGVhZGVyIGkge1xuICBjb2xvcjogIzAwNDU3ZDtcbn1cblxuLnJlY3QyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICNlYWVhZWE7XG59XG5cbi5yZWN0MyB7XG4gIHBhZGRpbmctdG9wOiAyNXB4O1xuICBwYWRkaW5nLXJpZ2h0OiAwcHg7XG4gIHBhZGRpbmctbGVmdDogMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xufVxuXG4ucmVjdDMgLmJ1dHRvbiB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gIG1hcmdpbi10b3A6IDVweDtcbn1cblxuLnJlY3Q0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgcGFkZGluZy1ib3R0b206IDBweDtcbn1cblxuLm5neC10aW1lcGlja2VyLWZpZWxkLWV4YW1wbGUge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXRvcDogMTVweDtcbn1cblxuLnJlY3Q1IHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4udGV4dC1wcCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uY2FsbC1wb3B1cC1zYXZlIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi5pY29ucyAuZmEtcGhvbmUge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpO1xufVxuXG4uaWNvbnMgLmZhLW1pY3JvcGhvbmUtc2xhc2gsXG4uaWNvbnMgLmZhLXBob25lIHtcbiAgZm9udC1zaXplOiAyNHB4O1xufVxuXG4uaWNvbnMgLmJ1dHRvbiB7XG4gIG1hcmdpbjogNXB4O1xufVxuXG4uaWNvbnMge1xuICBtYXJnaW4tdG9wOiAyNXB4O1xuICBwYWRkaW5nLWxlZnQ6IDI5JTtcbn1cblxuLmhhbmctYnRuIHtcbiAgY29sb3I6IHJlZCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IHJlZCAhaW1wb3J0YW50O1xufVxuXG4uY2xhc3N0ZXh0MSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4udGltZXN0YW1wIHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBtYXJnaW4tbGVmdDogMTBweDtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAge1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgY29sb3I6ICMwMDAwMDA7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdkO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtbGFiZWwtY29udGVudCB7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xufVxuXG4uYnRuIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0QgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBsaW5lLWhlaWdodDogMTBweDtcbn1cblxuLm1hdC1idXR0b24ge1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG4gIGZsb2F0OiByaWdodDtcbn1cblxuLmJ0biBwIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogI2ZmZjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICBtYXJnaW46IGF1dG87XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLyogc2xpZGVycyAqL1xuLyogTGVmdCBTbGlkZXIgKi9cbi5idG4tMSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgY29sb3I6ICNlNjQyNDMgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2U2NDI0Mztcbn1cblxuLmJ0bi0xIHAge1xuICBtYXJnaW46IGF1dG87XG59XG5cbi5kcm9wZG93bi1wcDEgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgaGVpZ2h0OiAyMXB4ICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLWJvdHRvbTogMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5kcm9wZG93bi1wcDEgLm1hdC1mb3JtLWZpZWxkIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5kcm9wZG93bi1wcDEgLm5nLXN0YXItaW5zZXJ0ZWQge1xuICB3aWR0aDogOTklO1xufVxuXG4ucHJvZmlsZS1wcDEgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMHB4O1xufVxuXG4ucHJvZmlsZS1wcDEgLm1hdC1sYWJlbCB7XG4gIHBhZGRpbmctdG9wOiA2cHg7XG59XG5cbi5kcm9wZG93bi1ib3JkZXIge1xuICBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIHNvbGlkIHNvbGlkICFpbXBvcnRhbnQ7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJvcmRlci1jb2xvcjogZ3JheTtcbiAgaGVpZ2h0OiAyOHB4O1xuICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgcGFkZGluZy10b3A6IDZweDtcbiAgbWFyZ2luLXRvcDogMHB4O1xufVxuXG4udGV4dGZpZWxkLWJvcmRlciB7XG4gIGJvcmRlci1zdHlsZTogc29saWQgc29saWQgc29saWQgc29saWQgIWltcG9ydGFudDtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYm9yZGVyLWNvbG9yOiBncmF5O1xufVxuXG5tYXQtZXJyb3Ige1xuICBjb2xvcjogI2ZmMDAwMDtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBtYXJnaW4tdG9wOiAtMTJweCAhaW1wb3J0YW50O1xufVxuXG4uZXJyb3Ige1xuICBjb2xvcjogI2ZmMDAwMDtcbiAgZm9udC1zaXplOiAxMHB4O1xufVxuXG4uYmF5IHtcbiAgZm9udC1zaXplOiAxMHB4O1xufVxuXG4uYmF5LWFyZWEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5O1xuICBwYWRkaW5nOiAxMHB4O1xufVxuXG4uc2xvdCB7XG4gIHBhZGRpbmc6IDVweCA1cHg7XG4gIG1hcmdpbjogMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbn1cblxuLm9jY3VwaWVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2NDI0Mztcbn1cblxuLmJheS1sYWJlbCB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xuICBmb250LXNpemU6IDEwcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5iYXktdGltZSB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG59XG5cbi5kYXRldGltZSB7XG4gIHBhZGRpbmc6IDVweDtcbn0iXX0= */\"","import { Component, OnInit, Input, Output, EventEmitter } from \"@angular/core\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { Router } from \"@angular/router\";\nimport { CommonService } from \"../../core/service/common-service/common.service\";\nimport { DatePipe } from \"@angular/common\";\nimport { interval } from \"rxjs\";\nimport { FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { TimepickerRef } from \"ngx-material-timepicker/src/app/material-timepicker/models/timepicker-ref.interface\";\nimport * as _moment from 'moment';\nimport { DateTimeAdapter, OWL_DATE_TIME_FORMATS, OWL_DATE_TIME_LOCALE } from 'ng-pick-datetime';\nimport { MomentDateTimeAdapter } from 'ng-pick-datetime-moment';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ServicenotrequireDailogComponent } from \"../servicenotrequire-dailog/servicenotrequire-dailog.component\";\nimport { ChartOptions, ChartType, ChartDataSets } from 'chart.js';\nimport { Label } from 'ng2-charts';\nimport { element } from 'protractor';\nimport { SaveCallRecordingParams } from \"src/app/model/save-call-recording-params.model\";\n\nconst moment = (_moment as any).default ? (_moment as any).default : _moment;\n\nexport const MY_CUSTOM_FORMATS = {\n parseInput: 'LL LT',\n fullPickerInput: 'DD-MM-YYYY LT',\n datePickerInput: 'LL',\n timePickerInput: 'LT',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n};\n\n@Component({\n selector: \"app-calling-dialog\",\n templateUrl: \"./calling-dialog.component.html\",\n styleUrls: [\"./calling-dialog.component.scss\"],\n providers: [\n { provide: DateTimeAdapter, useClass: MomentDateTimeAdapter, deps: [OWL_DATE_TIME_LOCALE] },\n { provide: OWL_DATE_TIME_FORMATS, useValue: MY_CUSTOM_FORMATS }\n ],\n})\nexport class CallingDialogComponent implements OnInit {\n @Input() vinNoList: any[];\n @Input() serviceDetails: any;\n @Input() selectedVin: string;\n @Input() customerNumber: string;\n @Input() custName: string;\n @Input() isCustomerNumber: string;\n @Input() primaryNumber: string;\n // @Input() bookingCount: number;\n // @Input() followupCount: number;\n @Input() division: string;\n @Input() workshopAppointmentFlag: string;\n @Input() ownerSelected: boolean;\n @Output() close: EventEmitter = new EventEmitter();\n @Input() phoneNo:any;\n @Input() cusType:any;\n @Input() custNameForSave:string;\n @Input() serviceCount:number;\n userRoles: string;\n\n constructor(\n private datePipe: DatePipe,\n private commonService: CommonService,\n private router: Router,\n private toastr: ToastrService,\n private dialog: MatDialog,\n ) { }\n\n startTime: any;\n serviceDueDate: any;\n talked: string = \"\";\n creRemark: string = \"\";\n custmerName: string;\n yesResponce: string = \"\";\n noResponce: string = \"\";\n nsReason: string = \"\";\n customerId: string;\n userID: string;\n customerData: any;\n workshop: string = \"\";\n workshopSelected: string = \"\";\n workShops = [];\n selectedWorkShop: string;\n other: string = \"\";\n odometer: string = \"\";\n timer: string;\n today: Date = new Date();\n min: number = 0;\n sec: number = 0;\n callhanged: boolean;\n spinner: boolean;\n disSatSerArr: string[] = [];\n vinNoListArray: string[] = [];\n vehicleInfoArray: any[] = [];\n yesResArr: string[] = [];\n servNotReqArr: string[] = [];\n alreadyServicedArr: string[] = [];\n defaultVin: string;\n responseDropDownData: any;\n level1info = [];\n level1Form: FormGroup;\n level2info = [];\n level2Form: FormGroup;\n level3info = [];\n level3Form: FormGroup;\n level4info = [];\n level4Form: FormGroup;\n level5info = [];\n level5Form: FormGroup;\n callTypeMap = new Map();\n currentDate = new Date();\n serviceInfo: any;\n chassisNo: string;\n submitted: boolean = false;\n formSubmitted: boolean = false;\n showNoRespError: boolean = false;\n milage: any;\n odometerEntry: any;\n assignedBay: any;\n workShopBay: any = {};\n bayError: boolean = false;\n bayOpen: any;\n bayClose: any;\n serviceHours: any;\n bayLayout: any = [];\n selectedBay: any = [];\n showBay: boolean = false;\n selectedBayNo: any = '';\n bayEndTime: any;\n fertCode: any;\n packagelist: any[] = [];\n bookingandResheduleMaxDate: Date = new Date();\n followupandCancleMaxDate: Date = new Date();\n showRemarkError: boolean = false;\n countFlag: boolean = false;\n bookFllowCountFlag: boolean = false;\n vin: string;\n showFleetManError: boolean = false;\n alReadyServicMaxDate: Date = new Date();\n bookingCount: number;\n followupCount: number;\n serviceMintus: any;\n maxDate : Date = new Date();\n countryCode: string;\n\n @Input(\"timepicker\")\n timePicker: TimepickerRef;\n\n //chart1Bar start\n public chartOptions: ChartOptions = {\n responsive: true,\n tooltips: {\n enabled: false\n },\n scales: {\n xAxes: [\n {\n display: true,\n gridLines: {\n display: true\n },\n ticks: {\n beginAtZero: false,\n fontSize: 10,\n stepSize: 1,\n autoSkip: false\n }\n }\n ],\n yAxes: [{\n display: false,\n gridLines: {\n display: false\n }\n }]\n }\n };\n public chartLabels: any[] = [];\n public chartType: ChartType = 'horizontalBar';\n public chartLegend = false;\n public chartPlugins = [];\n public chartData: any = [];\n\n userInfo:any;\n\n ngOnInit() {\n this.userInfo = JSON.parse(localStorage.getItem(\"userInfo\") || null)[0];\n this.customerData = JSON.parse(localStorage.getItem(\"customerData\") || null);\n if (\n localStorage.getItem(\"userId\") == null ||\n localStorage.getItem(\"userId\") == undefined\n ) {\n this.router.navigate([\"login\"]);\n }\n this.countryCode = localStorage.getItem(\"countryCode\");\n this.customerId = localStorage.getItem(\"customerId\");\n this.userID = localStorage.getItem(\"userId\");\n this.customerData = JSON.parse(localStorage.getItem(\"customerData\"));\n this.vin = this.customerData.vin;\n this.workshopSelected = localStorage.getItem(\"dealerName\");\n this.custmerName = this.customerData.customerName;\n this.vin = this.customerData.vin;\n this.workShops = JSON.parse(localStorage.getItem('workshops'));\n this.selectedWorkShop = (this.workShops && this.workShops.length) ? this.workShops[0].workshopCode : '';\n this.serviceInfo = JSON.parse(localStorage.getItem(\"serviceInfo\"));\n this.userRoles = localStorage.getItem('userRoles');\n this.chassisNo = localStorage.getItem(\"chassisNo\");\n this.serviceDueDate = this.datePipe.transform(\n localStorage.getItem(\"serviceDueDate\"),\n \"yyyy-MM-dd\"\n );\n this.startTime = new Date();\n this.callTypeMap.set(\"Service\", 4);\n this.callTypeMap.set(\"Reminder\", 2);\n this.callTypeMap.set(\"Visit\", 1);\n this.callTypeMap.set(\"No Show\", 3);\n //this.showBay = this.workshopAppointmentFlag;\n if (Object.keys(this.serviceInfo).length && this.serviceInfo[this.selectedVin]) {\n this.fertCode = this.serviceInfo[this.selectedVin].fertCode || '';\n let serviceType = this.serviceInfo[this.selectedVin].serviceType.split(' - ')[0];\n if(this.workshopAppointmentFlag == 'true') {\n if (serviceType == 'FS1' || serviceType == 'FS2' || serviceType == 'FS3' || serviceType == 'ECS' || serviceType == 'PMS') {\n this.showBay = true;\n this.getFertPrice(this.selectedWorkShop, this.fertCode);\n this.getWorkshopBay();\n } else {\n this.showBay = false;\n }\n } else {\n this.showBay = false;\n }\n // if (serviceType == 'FS1' || serviceType == 'FS2' || serviceType == 'FS3' || serviceType == 'ECS' || serviceType == 'PMS') {\n // //this.showBay = true;\n // this.getFertPrice(this.selectedWorkShop, this.fertCode);\n // }\n }\n\n this.odometerEntry = parseInt(localStorage.getItem(\"milage\")) || 0;\n\n this.getBookingFollowupCount(this.customerId, this.vin);\n this.setVinList(this.selectedVin, false);\n this.setYesResponse();\n this.setSerReqArr();\n this.setAlreadyServicedArr();\n this.setDisSatWithPrevSerArr();\n this.setTimer();\n\n this.bookingandResheduleMaxDate.setDate(this.bookingandResheduleMaxDate.getDate() + 15);\n this.followupandCancleMaxDate.setDate(this.followupandCancleMaxDate.getDate() + 15);\n\n if (this.serviceCount >= 0) {\n if (this.serviceCount % 2 == 1) {\n this.serviceHours = 1;\n this.serviceMintus = 30;\n } else {\n this.serviceHours = 4;\n this.serviceMintus = 0;\n }\n }\n }\n\n /**\n * Name: closeDailog\n * purpose: To close Dailog\n */\n closeDailog(): void {\n this.close.emit(null);\n }\n /**\n * Name: onKeydown\n * purpose: To handle onKeydown event\n */\n onKeydown(event){\n event.preventDefault();\n }\n\n /**\n * Name: setVinList\n * purpose: To set Vin List\n */\n setVinList(defaultVin: any, vehicleChange: boolean): void {\n var vinListStr = Object.values(this.vinNoList);\n vinListStr.forEach(vin => {\n if (vin == defaultVin) {\n this.defaultVin = vin;\n }\n });\n for (let i = 0; i < vinListStr.length; i++) {\n this.vinNoListArray.push(vinListStr[i]);\n }\n if (vehicleChange) {\n this.serviceDetails = this.serviceInfo[defaultVin];\n this.fertCode = this.serviceDetails.fartCode;\n let serviceType = this.serviceInfo[this.selectedVin].serviceType.split(' - ')[0];\n if(this.workshopAppointmentFlag == 'true') {\n if (serviceType == 'FS1' || serviceType == 'FS2' || serviceType == 'FS3' || serviceType == 'ECS' || serviceType == 'PMS') {\n this.showBay = true;\n this.getFertPrice(this.selectedWorkShop, this.fertCode);\n } else {\n this.showBay = false;\n }\n } else {\n this.showBay = false;\n }\n // let serviceType = this.serviceDetails.serviceType.split(' - ')[0];\n // if (serviceType == 'FS1' || serviceType == 'FS2' || serviceType == 'FS3' || serviceType == 'ECS' || serviceType == 'PMS') {\n // this.showBay = this.workshopAppointmentFlag;\n // this.getFertPrice(this.selectedWorkShop, this.fertCode);\n // } else {\n // this.showBay = this.workshopAppointmentFlag;\n // }\n this.bayError = false;\n this.callStatus(\"101\");\n }\n }\n\n /**\n * Name: setYesResponse\n * purpose: To set Yes Response\n */\n setYesResponse(): void {\n this.yesResArr.push(\"Book a Service\");\n this.yesResArr.push(\"Call Later\");\n this.yesResArr.push(\"Customer asked to contact Fleed Manager\");\n this.yesResArr.push(\"Service Not Required\");\n }\n\n /**\n * Name: setSerReqArr\n * purpose: To set SerReqArr\n */\n setSerReqArr(): void {\n this.servNotReqArr.push(\"Wrong Odometer Prediction\");\n this.servNotReqArr.push(\"Already Serviced\");\n this.servNotReqArr.push(\"Vehicle Sold\");\n this.servNotReqArr.push(\"Dissatisfied with Previous Service\");\n this.servNotReqArr.push(\"Distance from Dealer Location\");\n this.servNotReqArr.push(\"Dissatisfaction with Sales\");\n this.servNotReqArr.push(\"Dissatisfaction with Insurance\");\n this.servNotReqArr.push(\"Other\");\n this.servNotReqArr.push(\"Customer Not intersted\");\n this.servNotReqArr.push(\n \"Do not Create Calls for this This Truck in Future\"\n );\n }\n\n /**\n * Name: setAlreadyServicedArr\n * purpose: To set Already Serviced Arr\n */\n setAlreadyServicedArr(): void {\n this.alreadyServicedArr.push(\"Service Done at Own Dealer\");\n this.alreadyServicedArr.push(\"*Service Done at Other Dealer\");\n this.alreadyServicedArr.push(\"*Service Done at local workshop\");\n }\n\n /**\n * Name: setDisSatWithPrevSerArr\n * purpose: To set DisSatWithPrevSerArr\n */\n setDisSatWithPrevSerArr() {\n this.disSatSerArr.push(\"High Cost\");\n this.disSatSerArr.push(\"Poor Service\");\n this.disSatSerArr.push(\"Washing, Noise\");\n this.disSatSerArr.push(\"Demanded Repairs\");\n this.disSatSerArr.push(\"Delay in Delivery\");\n this.disSatSerArr.push(\"Problem with Estimate\");\n this.disSatSerArr.push(\"Staff Behaviour\");\n this.disSatSerArr.push(\"Parts Not Available\");\n this.disSatSerArr.push(\"Other\");\n }\n\n /**\n * Name: setTimer\n * purpose: To setTimer\n */\n setTimer() {\n interval(1000).subscribe(x => {\n if (!this.callhanged) {\n this.sec++;\n if (this.sec == 60) {\n this.sec = 0;\n this.min++;\n }\n this.timer = this.min + \":\" + this.sec;\n }\n });\n }\n\n /**\n * Name: callStatus\n * purpose: To check call status\n * @param {string} status - call status\n */\n callStatus(status: string): void {\n this.formSubmitted = false;\n this.showRemarkError = false;\n if (\"101\" == status) {\n this.talked = \"101\";\n this.noResponce = \"\";\n const self = this;\n this.level1Form = undefined;\n this.level1info = [];\n this.level2Form = undefined;\n this.level2info = [];\n this.level3Form = undefined;\n this.level3info = [];\n this.level4Form = undefined;\n this.level4info = [];\n this.level5Form = undefined;\n this.level5info = [];\n\n let callType = this.callTypeMap.get(this.serviceInfo[this.defaultVin] && this.serviceInfo[this.defaultVin].callType)\n this.commonService.getDropdownData(callType).subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n let data = res[\"responseData\"];\n if (Object.keys(data['Level2']).length && data['Level2']['201'] && data['Level2']['201'].length) {\n data['Level2']['201'].forEach(element => {\n if (Object.keys(element).length && element.data.length && element.data[0].key && element.data[0].key == '301') {\n element.label = 'Select Workshop';\n }\n });\n }\n if (Object.keys(data['Level2']).length && data['Level2']['210'] && data['Level2']['210'].length) {\n data['Level2']['210'].forEach(element => {\n if (Object.keys(element).length && element.data.length && element.data[0].key && element.data[0].key == '301') {\n element.label = 'Select Workshop';\n }\n });\n }\n if (Object.keys(data['Level2']).length && data['Level2']['211'] && data['Level2']['211'].length) {\n data['Level2']['211'].forEach(element => {\n if (Object.keys(element).length && element.data.length && element.data[0].key && element.data[0].key == '301') {\n element.label = 'Select Workshop';\n }\n });\n }\n if (Object.keys(data['Level2']).length && data['Level2']['212'] && data['Level2']['212'].length) {\n data['Level2']['212'].forEach(element => {\n if (Object.keys(element).length && element.data.length && element.data[0].key && element.data[0].key == '301') {\n element.label = 'Select Workshop';\n }\n });\n }\n // if (Object.keys(data['Level4']).length && data['Level4']['403'] && data['Level4']['403'].length) {\n // data['Level4']['403'].forEach(element => {\n // if (Object.keys(element).length && element.data.length && element.data[0].key && element.data[0].key == '502') {\n // element.label = 'Select Workshop';\n // element.dataType = \"Dropdown\";\n // }\n // });\n // }\n if (Object.keys(data['Level2']).length && data['Level2']['212'] && data['Level2']['212'].length) {\n data['Level2']['212'].forEach(element => {\n if (Object.keys(element).length && element.data.length && element.data[0].key && element.data[0].key == '301') {\n element.label = 'Select Workshop';\n element.dataType = \"Dropdown\";\n }\n });\n }\n\n self.responseDropDownData = data;\n this.createLevel1Form(data[\"Level1\"]);\n }\n }, error => {\n this.toastr.error(error, \"Error\");\n this.spinner = false;\n });\n } else {\n this.talked = \"102\";\n this.level1Form = undefined;\n this.level1info = [];\n this.level2Form = undefined;\n this.level2info = [];\n this.level3Form = undefined;\n this.level3info = [];\n this.level4Form = undefined;\n this.level4info = [];\n this.level5Form = undefined;\n this.level5info = [];\n this.yesResponce = \"\";\n this.nsReason = \"\";\n this.workshop = \"\";\n this.odometer = \"\";\n }\n }\n\n /**\n * Name: createLevel1Form\n * purpose: To create Level1 Form\n * @param {any} data - form data\n */\n createLevel1Form(data: any): void {\n this.formSubmitted = false;\n this.showRemarkError = false;\n const formDataObj = {};\n for (const prop of data) {\n formDataObj[prop.label] = new FormControl(\"\", [Validators.required]);\n if (prop.dataType == \"Dropdown\") {\n var dropDownData = [];\n let serviceType = this.serviceDetails.serviceType.split(' - ')[0];\n let countRemoveFlag:boolean = false;\n this.countFlag = false;\n if (serviceType == 'FS1' || serviceType == 'FS2' || serviceType == 'FS3' || serviceType == 'ECS' || serviceType == 'PMS') {\n countRemoveFlag = true;\n this.countFlag = true;\n }\n\n prop.data.forEach((element) => {\n if (!(countRemoveFlag && this.bookingCount < 0 && element.key == \"201\")\n && !(countRemoveFlag && this.followupCount < 0 && element.key == \"202\"))\n {\n dropDownData.push({ value: element.key, viewValue: element.value });\n }\n });\n }\n this.level1info.push({\n label: prop.label,\n type: prop.dataType,\n data: prop.dataType === \"Dropdown\" ? dropDownData : prop.data\n });\n }\n this.level1Form = new FormGroup(formDataObj);\n }\n\n /**\n * Name: createLevel2Form\n * purpose: To create Level2 Form\n * @param {any} data - form data\n */\n createLevel2Form(data: any): void {\n this.formSubmitted = false;\n this.showRemarkError = false;\n this.level2Form = undefined;\n this.level2info = [];\n this.level3Form = undefined;\n this.level3info = [];\n this.level4Form = undefined;\n this.level4info = [];\n this.level5Form = undefined;\n this.level5info = [];\n const formDataObj = {};\n let selection = this.level1Form.controls[\"Select Reason\"].value;\n if (data[selection] && data[selection].length) {\n for (const prop of data[selection]) {\n if (prop.dataType == \"Dropdown\") {\n if (prop.data[0].key === \"301\") {\n if (selection == \"211\") {\n let workshopCode = this.serviceDetails.workShop.split(\"/\")[0];\n formDataObj['301'] = new FormControl(workshopCode);\n } else if (selection == \"212\") {\n formDataObj['301'] = new FormControl(\"\", [Validators.required]);\n } else {\n formDataObj['301'] = new FormControl(\"\", Validators.required);\n }\n\n var dropDownData = [];\n this.workShops.forEach(element => {\n dropDownData.push({ value: element.workshopCode, viewValue: element.workshopName });\n });\n } else {\n formDataObj[prop.label] = new FormControl(\"\", Validators.required);\n var dropDownData = [];\n prop.data.forEach(element => {\n dropDownData.push({ value: element.key, viewValue: element.value });\n });\n }\n\n } else if (prop.dataType == \"Date\") {\n if (selection == \"211\") {\n let committedDate = new Date(this.serviceDetails.committedDate);\n formDataObj[prop.data[0].key] = new FormControl(committedDate);\n } else if (selection == \"213\") {\n formDataObj[prop.data[0].key] = new FormControl(\"\", [Validators.required]);\n } else if (selection == \"202\") {\n formDataObj[prop.data[0].key] = new FormControl(\"\", [Validators.required]);\n } else if (selection == \"212\") {\n formDataObj[prop.data[0].key] = new FormControl(\"\", [Validators.required]);\n } else {\n formDataObj[prop.data[0].key] = new FormControl(\"\", [Validators.required]);\n }\n\n } else if (prop.dataType == \"Number\") {\n formDataObj[prop.data[0].key] = new FormControl(\"\", [Validators.minLength(10), Validators.maxLength(10)]);\n } else if (prop.dataType == \"Time\") {\n formDataObj[prop.data[0].key] = new FormControl(\"\");\n // if (this.showBay) {\n formDataObj[\"bayStartTime\"] = new FormControl(\"\");\n // }\n } else {\n formDataObj[prop.data[0].key] = new FormControl(\"\");\n }\n this.level2info.push({\n label: prop.label,\n type: prop.dataType,\n data: prop.dataType === \"Dropdown\" ? dropDownData : prop.data\n });\n }\n }\n if (this.showBay && (selection == \"201\" || selection == \"212\")) {\n formDataObj[\"package\"] = new FormControl(\"\");\n this.level2info.push({\n label: \"Select Package\",\n type: \"Dropdown\",\n data: this.packagelist\n });\n this.level2info.splice(1, 0, this.level2info.splice(this.level2info.length - 1, 1)[0]);\n }\n this.level2Form = new FormGroup(formDataObj);\n }\n\n /**\n * Name: createLevel3Form\n * purpose: To create Level3 Form\n * @param {any} data - form data\n */\n createLevel3Form(data: any): void {\n this.formSubmitted = false;\n this.showRemarkError = false;\n this.level3Form = undefined;\n this.level3info = [];\n this.level4Form = undefined;\n this.level4info = [];\n this.level5Form = undefined;\n this.level5info = [];\n const formDataObj = {};\n var selection = Object.keys(this.level2Form.controls)[0];\n if (data[this.level2Form.controls[selection].value] && data[this.level2Form.controls[selection].value].length) {\n for (const prop of data[this.level2Form.controls[selection].value]) {\n if (prop.dataType == \"Dropdown\") {\n formDataObj[prop.label] = new FormControl(\"\", Validators.required);\n var dropDownData = [];\n prop.data.forEach(element => {\n if (this.countryCode == \"IND91\") {\n if (!(this.serviceDetails.alreadyServicedFlag == \"Y\" && element.key == \"403\")) {\n dropDownData.push({ value: element.key, viewValue: element.value });\n }\n } else {\n dropDownData.push({ value: element.key, viewValue: element.value });\n }\n });\n } else if (prop.dataType == \"Date\") {\n formDataObj[prop.data[0].key] = new FormControl(\"\", Validators.required);\n } else if (prop.dataType == \"Number\") {\n if (prop.data[0].key == \"402\") {\n this.milage = parseInt(localStorage.getItem(\"milage\")) + 1;\n formDataObj[prop.data[0].key] = new FormControl(\"\", [Validators.min(this.milage), Validators.required]);\n } else if(prop.data[0].key == \"407\"){\n formDataObj[prop.data[0].key] = new FormControl(\"\", [Validators.minLength(10), Validators.maxLength(10)]);\n } else {\n formDataObj[prop.data[0].key] = new FormControl(\"\", [Validators.minLength(10), Validators.maxLength(10), Validators.required]);\n }\n } else {\n formDataObj[prop.data[0].key] = new FormControl(\"\");\n }\n this.level3info.push({\n label: prop.label,\n type: prop.dataType,\n data: prop.dataType === \"Dropdown\" ? dropDownData : prop.data\n });\n }\n }\n\n this.level3Form = new FormGroup(formDataObj);\n }\n\n /**\n * Name: createLevel4Form\n * purpose: To create Level4 Form\n * @param {any} data - form data\n */\n createLevel4Form(data: any): void {\n this.formSubmitted = false;\n this.showRemarkError = false;\n this.level4Form = undefined;\n this.level4info = [];\n this.level5Form = undefined;\n this.level5info = [];\n const formDataObj = {};\n if (Object.keys(this.level3Form.controls).indexOf(\"409\") !== -1) {\n var selection = \"409\";\n } else {\n selection = Object.keys(this.level3Form.controls)[0];\n }\n\n if (data[this.level3Form.controls[selection].value] && data[this.level3Form.controls[selection].value].length) {\n for (const prop of data[this.level3Form.controls[selection].value]) {\n if (prop.dataType == \"Dropdown\") {\n // if (prop.data[0].key === \"502\") {\n // formDataObj['502'] = new FormControl(\"\", Validators.required);\n // var dropDownData = [];\n // this.workShops.forEach(element => {\n // dropDownData.push({ value: element.workshopCode, viewValue: element.workshopName });\n // });\n // } else {\n formDataObj[prop.label] = new FormControl(\"\", Validators.required);\n var dropDownData = [];\n prop.data.forEach(element => {\n dropDownData.push({ value: element.key, viewValue: element.value });\n });\n //}\n } else if (prop.dataType == \"RadioButton\") {\n formDataObj[\"503\"] = new FormControl(\"\", Validators.required);\n } else if (prop.dataType == \"Text\") {\n if (prop.data[0].key == \"502\") {\n formDataObj[prop.data[0].key] = new FormControl(\"\", Validators.required);\n } else {\n formDataObj[prop.data[0].key] = new FormControl(\"\");\n }\n } else if (prop.dataType == \"Date\") {\n formDataObj[prop.data[0].key] = new FormControl(\"\", Validators.required);\n } else if (prop.dataType == \"Number\") {\n if (prop.data[0].key == \"506\") {\n formDataObj[prop.data[0].key] = new FormControl(\"\", [Validators.maxLength(6), Validators.required]);\n } else {\n formDataObj[prop.data[0].key] = new FormControl(\"\", [Validators.minLength(10), Validators.maxLength(10), Validators.required]);\n }\n }\n this.level4info.push({\n label: prop.label,\n type: prop.dataType,\n data: prop.dataType === \"Dropdown\" ? dropDownData : prop.data\n });\n }\n }\n\n this.level4Form = new FormGroup(formDataObj);\n }\n\n /**\n * Name: createLevel5Form\n * purpose: To create Level5 Form\n * @param {any} data - form data\n */\n createLevel5Form(data: any): void {\n this.formSubmitted = false;\n this.showRemarkError = false;\n this.level5Form = undefined;\n this.level5info = [];\n const formDataObj = {};\n var selection = this.level4Form.controls[\"503\"].value;\n if (selection == \"503\" && data[selection] && data[selection].length) {\n for (const prop of data[selection]) {\n if (prop.dataType == \"Dropdown\") {\n formDataObj[prop.label] = new FormControl(\"\", Validators.required);\n var dropDownData = [];\n prop.data.forEach(element => {\n dropDownData.push({ value: element.key, viewValue: element.value });\n });\n }\n else if (prop.dataType == \"Date\") {\n formDataObj[prop.data[0].key] = new FormControl(\"\", Validators.required);\n }\n else if (prop.dataType == \"RadioButton\") {\n formDataObj[\"503\"] = new FormControl(\"\", Validators.required);\n } else if (prop.dataType == \"Number\") {\n formDataObj[prop.data[0].key] = new FormControl(\"\", [Validators.minLength(10), Validators.maxLength(10), Validators.required]);\n } else {\n formDataObj[prop.data[0].key] = new FormControl(\"\");\n }\n this.level5info.push({\n label: prop.label,\n type: prop.dataType,\n data: prop.dataType === \"Dropdown\" ? dropDownData : prop.data\n });\n }\n this.level5Form = new FormGroup(formDataObj);\n }\n }\n\n /**\n * Name: newVehicleClick\n * purpose: To select new vehicle option\n */\n newVehicleClick() {\n this.level3Form.controls[\"409\"].setValue(\"409\");\n this.createLevel4Form(this.responseDropDownData[\"Level4\"]);\n }\n\n /**\n * Name: hasDataError\n * purpose: To check if customer form has any error\n * @param {any} control - form control\n * @return {boolean} flag to determine if form is valid.\n */\n hasDataError(control: any, form: any): boolean {\n let controler = form.controls[control];\n return (\n controler &&\n (this.formSubmitted || controler.touched || controler.dirty) &&\n !controler.valid\n );\n }\n\n /**\n * Name: isSaveEnable\n * purpose: To check if save is unable\n */\n isSaveEnable() {\n if (\n this.workshop != \"\" ||\n this.noResponce != \"\" ||\n this.odometer != \"\" ||\n this.yesResponce == \"Follow-up\" ||\n (this.nsReason != \"\" && this.nsReason != \"Odometer\")\n ) {\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * Name: createLevelWiseData\n * purpose: To create LevelWise Data\n */\n createLevelWiseData() {\n let date1 = \"\";\n var levelResponseData = {};\n\n if (this.level1Form !== undefined) {\n let obj = {};\n Object.keys(this.level1Form.value).filter(data => {\n obj[this.level1Form.value[data]] = this.level1Form.value[data];\n });\n levelResponseData[\"Level1\"] = obj;\n } else {\n levelResponseData[\"Level1\"] = null;\n }\n\n if (this.level2Form !== undefined) {\n let selectedDateTime = this.level2Form.value[302] || this.level2Form.value[304];\n if (this.level2Form.value[302] != null) {\n this.level2Form.value[302] = this.datePipe.transform(\n this.level2Form.value[302],\n \"yyyy-MM-dd\", \"+0000\"\n );\n }\n\n if (this.level2Form.value[304] != null) {\n this.level2Form.value[304] = this.datePipe.transform(\n this.level2Form.value[304],\n \"yyyy-MM-dd\", \"+0000\"\n );\n }\n\n if (this.level2Form.value[302] != null) {\n date1 = this.level2Form.value[302];\n } else if (this.level2Form.value[304] != null) {\n date1 = this.level2Form.value[304];\n }\n\n if (this.level2Form.value[303] != null || selectedDateTime) {\n this.level2Form.value[303] = selectedDateTime;\n this.level2Form.value[303] = this.datePipe.transform(this.level2Form.value[303], \"yyyy-MM-ddTHH:mm:ssZ\", \"+0000\");\n }\n\n if (this.level2Form.value[301] != null) {\n this.level2Form.value[301] = this.level2Form.value[301];\n }\n\n //bay time selection\n if (selectedDateTime && this.showBay && (levelResponseData['Level1']['201'] != null ||\n levelResponseData['Level1']['212'] != null) && this.level2Form.value[\"bayStartTime\"] != null) {\n //bay selection\n this.level2Form.value[800] = this.selectedBayNo + \"\";\n //bay time\n let selectedDate = this.datePipe.transform(selectedDateTime, \"yyyy-MM-dd\");\n let selectedTime = this.datePipe.transform(this.level2Form.value[\"bayStartTime\"], \"HH:mm:ss\");\n let bayDateTime = new Date(selectedDate + 'T' + selectedTime);\n //service time data data\n this.level2Form.value[302] = this.datePipe.transform(bayDateTime, \"yyyy-MM-dd\");\n this.level2Form.value[303] = this.datePipe.transform(bayDateTime, \"yyyy-MM-ddTHH:mm:ssZ\");\n //bayForm data\n this.level2Form.value[801] = this.datePipe.transform(bayDateTime, \"yyyy-MM-ddTHH:mm:ssZ\");\n this.level2Form.value[\"bayStartTime\"] = this.datePipe.transform(bayDateTime, \"yyyy-MM-ddTHH:mm:ssZ\");\n //bayendtime\n this.bayEndTime = bayDateTime.setHours(bayDateTime.getHours() + this.serviceHours);\n this.bayEndTime = bayDateTime.setMinutes(bayDateTime.getMinutes() + this.serviceMintus);\n this.bayEndTime = this.datePipe.transform(this.bayEndTime, \"HH:mm:ss\");\n }\n\n // if (this.level2Form.value[307] == \"\") {\n // this.level2Form.value[307] = this.level2Form.value[306];\n // }\n\n let level2formValues = Object.assign({}, this.level2Form.value);\n delete level2formValues['bayStartTime'];\n delete level2formValues[800];\n delete level2formValues[801];\n delete level2formValues['package'];\n levelResponseData[\"Level2\"] = level2formValues;\n } else {\n levelResponseData[\"Level2\"] = null;\n }\n\n if (this.level3Form !== undefined) {\n levelResponseData[\"Level3\"] = this.level3Form.value;\n } else {\n levelResponseData[\"Level3\"] = null;\n }\n\n if (this.level4Form !== undefined) {\n var currentDate = this.datePipe.transform(new Date(), \"yyyy-MM-dd\", \"+0000\");\n if (this.level4Form.value[501] != null) {\n if (this.level4Form.value[501]['_d'] == null) {\n this.level4Form.value[501] = this.datePipe.transform(this.level4Form.value[501], \"yyyy-MM-dd\", \"+0000\");\n }\n if (this.level4Form.value[501] != currentDate) {\n this.level4Form.value[501] = this.datePipe.transform(this.level4Form.value[501]['_d'], \"yyyy-MM-dd\", \"+0000\");\n }\n }\n levelResponseData[\"Level4\"] = this.level4Form.value;\n } else {\n levelResponseData[\"Level4\"] = null;\n }\n\n if (this.level5Form !== undefined) {\n levelResponseData[\"Level5\"] = this.level5Form.value;\n } else {\n levelResponseData[\"Level5\"] = null;\n }\n\n return levelResponseData;\n }\n\n /**\n * Name: removeSavedVin\n * purpose: To remove Saved Vin\n */\n removeSavedVin(): void {\n const index: number = this.vinNoListArray.indexOf(this.defaultVin);\n if (index !== -1) {\n this.vinNoListArray.splice(index, 1);\n }\n if (this.vinNoListArray.length == 0) {\n this.closeDailog();\n this.router.navigate([\"calling\"]);\n } else {\n this.defaultVin = this.vinNoListArray[0];\n //config bay\n this.serviceDetails = this.serviceInfo[this.defaultVin];\n this.fertCode = this.serviceDetails.fartCode;\n let serviceType = this.serviceInfo[this.selectedVin].serviceType.split(' - ')[0];\n if(this.workshopAppointmentFlag == 'true') {\n if (serviceType == 'FS1' || serviceType == 'FS2' || serviceType == 'FS3' || serviceType == 'ECS' || serviceType == 'PMS') {\n this.showBay = true;\n this.getFertPrice(this.selectedWorkShop, this.fertCode);\n } else {\n this.showBay = false;\n }\n } else {\n this.showBay = false;\n }\n // let serviceType = this.serviceDetails.serviceType.split(' - ')[0];\n // if (serviceType == 'FS1' || serviceType == 'FS2' || serviceType == 'FS3' || serviceType == 'ECS' || serviceType == 'PMS') {\n // this.showBay = this.workshopAppointmentFlag;\n // this.getFertPrice(this.selectedWorkShop, this.fertCode);\n // } else {\n // this.showBay = this.workshopAppointmentFlag;\n // }\n this.bayError = false;\n\n this.level1Form = undefined;\n this.level1info = [];\n this.level2Form = undefined;\n this.level2info = [];\n this.level3Form = undefined;\n this.level3info = [];\n this.level4Form = undefined;\n this.level4info = [];\n this.level5Form = undefined;\n this.level5info = [];\n this.creRemark = null;\n this.submitted = false;\n this.showRemarkError = false;\n this.createLevel1Form(this.responseDropDownData[\"Level1\"]);\n }\n }\n\n /**\n * Name: sendBookingSMS\n * purpose: To send booking sms\n * @param {boolean} bookingData - booking data\n */\n sendBookingSMS(bookingData: any): void {\n this.spinner = true;\n let bookingDate = this.datePipe.transform(this.level2Form.value[302], \"yyyy-mm-dd\");\n let bookingTime = this.datePipe.transform(this.level2Form.value[303], \"yyyy-MM-ddTHH:mm:ssZ\");\n let callType = this.callTypeMap.get(this.serviceInfo[this.defaultVin].callType);\n let request = {\n bkStatus: (callType == 2 || callType == 1 || callType == 3) ? 'R' : 'B',\n bkTime: bookingTime || '',\n bkdate: bookingDate || '',\n contactNo: this.customerNumber || '',\n custName: this.customerData.customerName || '',\n regNo: this.chassisNo || '',\n vin: bookingData.vin || ''\n }\n this.workShops.forEach(workshop => {\n if (workshop.workshopCode == this.selectedWorkShop) {\n request['wSAddress'] = workshop.workshopAddress || '';\n request['wSManager'] = workshop.contactNo || '';\n }\n });\n this.commonService.sendBookingSMS(request).subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n this.spinner = false;\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n checkFormValidation(): boolean {\n let valid = true;\n if (this.talked == \"102\" && this.noResponce == \"\") {\n valid = false;\n } else if (this.level1Form !== undefined && !this.level1Form.valid) {\n valid = false;\n } else if (this.level2Form !== undefined && !this.level2Form.valid) {\n valid = false;\n } else if (this.level3Form !== undefined && !this.level3Form.valid) {\n valid = false;\n } else if (this.level4Form !== undefined && !this.level4Form.valid) {\n valid = false;\n } else if (this.level5Form !== undefined && !this.level5Form.valid) {\n valid = false;\n }\n if (this.talked == \"101\") {\n if ((!this.creRemark && this.noResponce == \"209\")\n || (!this.creRemark && this.level1Form.value['Select Reason'] == \"204\"\n && this.level2Form.value['Select Reason'] == \"315\")) {\n this.showRemarkError = true;\n valid = false;\n }\n }\n\n // if(this.level1Form.value['Select Reason'] == \"203\"){\n // if(this.level2Form.value[306] != \"\" && this.level2Form.value[305] == \"\") {\n // //if(this.level2Form.value[305] == \"\") {\n // this.showFleetManError = true;\n // valid = false;\n // // } else {\n // // this.showFleetManError = false;\n // // }\n // }\n // }\n this.submitted = valid;\n return valid;\n }\n\n /**\n * Name: saveDialData\n * purpose: To save Dial Data\n */\n saveDialData(): void {\n //this.commonService.customerResponse = '';\n this.submitted = true;\n this.formSubmitted = true;\n let packageId;\n if (this.checkFormValidation()) {\n this.showNoRespError = false;\n this.showRemarkError = false;\n var levelData = this.createLevelWiseData();\n this.spinner = true;\n this.callhanged = true;\n let data = \"\";\n let customerCallStatus = this.yesResponce;\n if (this.yesResponce == \"\") {\n customerCallStatus = this.noResponce;\n data = this.noResponce;\n }\n if (this.yesResponce == \"Booking\") {\n if (this.workshop == \"Other\") {\n data = this.other;\n } else {\n data = this.workshop;\n }\n }\n\n if (this.yesResponce == \"No Service\") {\n data = this.nsReason;\n if (this.nsReason == \"Odometer\") {\n this.other = this.odometer;\n }\n }\n let bay;\n let bayEndTime;\n if (this.level2Form !== undefined && this.showBay && (levelData['Level1']['201'] != null || levelData['Level1']['212'] != null)) {\n bay = this.selectedBayNo;\n bayEndTime = this.bayEndTime;\n } else {\n bay = '';\n // bayEndTime = this.datePipe.transform(new Date(), \"yyyy-MM-dd\") + \"T00:00:00+0530\";\n bayEndTime = \"00:00:00\";\n }\n if(this.level2Form !== undefined && this.level2Form.value[\"package\"] != null ) {\n packageId = this.level2Form.value[\"package\"];\n } else {\n packageId = '';\n }\n let custData = new CustData(\n this.customerId,\n this.serviceDueDate,\n this.startTime,\n new Date(),\n this.talked,\n this.creRemark,\n this.userID,\n levelData,\n this.noResponce,\n this.defaultVin,\n this.userID,\n bay,\n bayEndTime,\n packageId,\n this.cusType,\n this.phoneNo,\n this.custNameForSave,\n this.userRoles\n );\n let callType = this.serviceInfo[this.defaultVin].callType;\n\n if (this.level1Form !== undefined && levelData['Level1']['204'] == \"204\" && (callType == 'Visit' || callType == 'Reminder')) {\n const dialogRef = this.dialog.open(ServicenotrequireDailogComponent, {\n width: '550px',\n data: {}\n });\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n this.saveCallRecording(custData);\n } else {\n this.submitted = false;\n }\n });\n } else {\n this.saveCallRecording(custData);\n }\n } else if (this.talked == \"102\" && this.noResponce == \"\") {\n this.showNoRespError = true;\n } else if ((!this.creRemark && this.noResponce == \"209\")\n || (!this.creRemark && this.level1Form.value['Select Reason'] == \"204\"\n && this.level2Form.value['Select Reason'] == \"315\")) {\n this.showRemarkError = true;\n }\n }\n\n\n\n /**\n * Name: updateNumber\n * purpose: To set customer number\n */\n updateNumber(): void {\n let newName = this.level2Form.value[305];\n this.commonService.updateNumber(this.customerNumber, this.primaryNumber, 'Primary', this.customerId, this.userID, this.custName, newName).subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n this.spinner = false;\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n })\n }\n\n /**\n * Name: getWorkshopBay\n * purpose: To getWorkshopBay\n */\n getWorkshopBay(): void {\n this.commonService.getWorkshopBay(this.userID).subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n this.assignedBay = res[\"responseData\"];\n } else {\n // this.toastr.error(res[\"message\"], \"Error\");\n this.spinner = false;\n }\n }, error => {\n this.toastr.error(error, \"Error\");\n this.spinner = false;\n });\n }\n\n /**\n * Name: getBayVisibility\n * purpose: To getBayVisibility\n */\n getBayVisibility(): void {\n let workShopCode = this.level2Form.value[301];\n let selectedDate = this.datePipe.transform(this.level2Form.value[302], \"yyyy-MM-dd\");\n this.bayLayout = [];\n this.chartData = [];\n this.commonService.getBayVisibility(workShopCode, selectedDate).subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n if (res[\"responseData\"].length) {\n res[\"responseData\"].sort(function (a, b) {\n let aStartTime = new Date(selectedDate + 'T' + a.startTime);\n let bStartTime = new Date(selectedDate + 'T' + b.startTime);\n\n var aMin = aStartTime.getMinutes();\n var aHrs = aMin > 0 ? aMin / 60 : 0;\n let aTime = aStartTime.getHours() + aHrs;\n\n var bMin = bStartTime.getMinutes();\n var bHrs = bMin > 0 ? bMin / 60 : 0;\n let bTime = bStartTime.getHours() + bHrs;\n return aTime - bTime;\n });\n }\n\n var result = Object.assign([], res[\"responseData\"]);\n\n //get assigned workshop details\n this.assignedBay.forEach(element => {\n if (element.workshopCode == workShopCode) {\n this.workShopBay = element;\n }\n });\n this.workShopBay.bayArea = Object.assign([], res[\"responseData\"]);\n let totalNoBay = Number(this.workShopBay.totalNoBay);\n //set baylayout\n let bayList = [];\n for (let b = 1; b <= totalNoBay; b++) {\n var bay = result.filter(item => item.bay == b);\n bayList.push(bay);\n }\n this.selectedBay = Object.assign([], bayList[0]);\n this.selectedBayNo = bayList.length ? 1 : \"\";\n this.bayLayout = Object.assign([], bayList);\n\n //get bay details\n this.bayOpen = new Date(selectedDate + 'T' + this.workShopBay.startTime);\n this.bayClose = new Date(selectedDate + 'T' + this.workShopBay.endTime);\n this.level2Form.controls.bayStartTime.setValue(this.bayOpen);\n\n //get chart labels\n let startTime = this.checkHours(this.bayOpen);\n let endTime = this.checkHours(this.bayClose);\n\n this.chartOptions.scales.xAxes[0].ticks.min = startTime;\n this.chartOptions.scales.xAxes[0].ticks.max = endTime;\n\n //fill bay availability\n this.bayLayout.forEach(bayData => {\n let chartData: ChartDataSets[] = [];\n let chartLength = 0;\n let i = startTime;\n for (i; i <= endTime; i++) {\n let slot = {};\n slot['value'] = i;\n slot['available'] = true;\n\n bayData.some((element, index) => {\n //service time\n let serviceStart = new Date(selectedDate + 'T' + element.startTime);\n let serviceEnd = new Date(selectedDate + 'T' + element.endTime);\n\n //final service day hrs\n let serviceStartTime = this.checkHours(serviceStart);\n let serviceEndTime = this.checkHours(serviceEnd);\n\n let serVal = serviceEndTime - serviceStartTime;\n\n if (i >= serviceStartTime) {\n slot['available'] = false;\n let chartVal = serVal;\n if (chartVal > 0) {\n i = chartData.length ? (i + chartVal - 1) : serviceEndTime - 1;\n chartVal = chartData.length ? chartVal : serviceStartTime + chartVal;\n let data: ChartDataSets = {\n data: [chartVal],\n stack: 'a',\n label: 'Occupied',\n backgroundColor: '#e64243',\n hoverBackgroundColor: '#e64243',\n borderSkipped: 'left',\n borderWidth: 1,\n borderColor: \"#e64243\",\n barThickness: 8\n }\n chartLength = chartLength + chartVal;\n chartData.push(data);\n bayData.splice(index, 1);\n }\n return true;\n } else {\n let chartVal = serviceStartTime - i;\n if (chartVal > 0) {\n i = chartData.length ? (i + chartVal - 1) : serviceStartTime - 1;\n chartVal = chartData.length ? chartVal : serviceStartTime;\n let data: ChartDataSets = {\n data: [chartVal],\n stack: 'a',\n label: 'Available',\n backgroundColor: '#d3d3d3',\n hoverBackgroundColor: '#d3d3d3',\n borderSkipped: 'left',\n borderWidth: 1,\n borderColor: \"#d3d3d3\",\n barThickness: 8\n }\n chartLength = chartLength + chartVal;\n chartData.push(data);\n return true;\n }\n }\n });\n if (bayData.length == 0) {\n let chartVal = endTime - chartLength;\n let data: ChartDataSets = {\n data: [chartVal],\n stack: 'a',\n label: 'Available',\n backgroundColor: '#d3d3d3',\n hoverBackgroundColor: '#d3d3d3',\n borderSkipped: 'left',\n borderWidth: 1,\n borderColor: \"#d3d3d3\",\n barThickness: 8\n }\n chartData.push(data);\n break;\n }\n }\n this.chartData.push(chartData);\n });\n\n if (this.level2Form.value['bayStartTime']) {\n this.checkAvailability(this.level2Form);\n }\n } else {\n this.toastr.error(res[\"message\"], \"Error\");\n this.spinner = false;\n }\n }, error => {\n this.toastr.error(error, \"Error\");\n this.spinner = false;\n });\n }\n\n /**\n * Name: selectBay\n * purpose: To selectBay\n */\n selectBay(bay: any) {\n this.bayError = false;\n this.selectedBay = this.workShopBay.bayArea.filter(item => item.bay == (bay.value + 1));\n this.selectedBayNo = bay.value + 1;\n }\n\n /**\n * Name: checkAvailability\n * purpose: To checkAvailability\n */\n checkAvailability(form: any): void {\n this.bayError = false;\n let serviceTime = 0;\n // if(this.division == \"LMD\") {\n // serviceTime = 1.5;\n // } else {\n // serviceTime = 2;\n // }\n if(this.serviceCount>=0){\n if(this.serviceCount % 2 == 1){\n serviceTime = 1.5;\n }else{\n serviceTime = 4;\n }\n }\n let bayOpen = this.checkHours(this.bayOpen);\n let bayClose = this.checkHours(this.bayClose);\n let selectedTime = this.checkHours(new Date(form.value['bayStartTime']));\n let selectedEndTime = selectedTime + serviceTime;\n if (this.selectedBay.length) {\n this.selectedBay.some(element => {\n let date = this.datePipe.transform(this.level2Form.value['bayStartTime'], \"yyyy-MM-dd\");\n let startDate = new Date(date + 'T' + element.startTime);\n let endDate = new Date(date + 'T' + element.endTime);\n let startTimeS = this.checkHours(startDate);\n let endTimeS = this.checkHours(endDate);\n if ((selectedTime >= startTimeS && selectedTime < endTimeS) ||\n (selectedEndTime > startTimeS && selectedEndTime <= endTimeS) ||\n (selectedEndTime > bayClose) || (selectedTime < bayOpen) ||\n (selectedTime <= startTimeS && selectedEndTime >= endTimeS)) {\n this.bayError = true;\n return true;\n }\n });\n } else {\n let selectedTime = this.checkHours(new Date(form.value['bayStartTime']));\n let selectedEndTime = selectedTime + serviceTime;\n if ((selectedEndTime > bayClose) || (selectedTime < bayOpen)) {\n this.bayError = true;\n }\n }\n }\n\n /**\n * Name: checkHours\n * purpose: To checkHours\n */\n checkHours(selectedTime) {\n var startMin = selectedTime.getMinutes();\n var hrsOpen = startMin > 0 ? startMin / 60 : 0;\n let startTime = selectedTime.getHours() + hrsOpen;\n return startTime;\n }\n\n /**\n * Name: getFertPrice\n * purpose: To getFertPrice\n */\n getFertPrice(workShopCode: string, fertCode: string): void {\n this.commonService.getFertPrice(workShopCode, fertCode).subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n this.packagelist = res[\"responseData\"];\n this.packagelist.forEach(element => {\n element.fert = Math.round(Number(element.fert) * 100 + Number.EPSILON) / 100;\n });\n\n // let fert = this.packagelist.length ? (this.packagelist[0].fert || 2) : 2;\n // this.serviceHours = fert;\n } else {\n //this.toastr.error(res[\"message\"], \"Error\");\n this.spinner = false;\n }\n }, error => {\n // this.toastr.error(error, \"Error\");\n this.spinner = false;\n });\n }\n\n setPackage(packageId) {\n // this.packagelist.forEach(element => {\n // if (element.packageId == packageId) {\n // this.serviceHours = element.fert || 2;\n // }\n // });\n if (this.level2Form.value['bayStartTime']) {\n this.checkAvailability(this.level2Form);\n }\n }\n\n getBookingFollowupCount(customerId: string, vin: string) {\n this.commonService.getBookingFollowupCount(customerId, vin, 'srm')\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n this.bookingCount = res['responseData'].bookingCount;\n this.followupCount = res['responseData'].followUpCount;\n\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n\n }\n\n getWorkshopAppointmentFlag(workShopCode: string, fertCode: string) {\n //this.chartData = [];\n this.commonService.getWorkshopAppointmentFlag(workShopCode)\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n this.workshopAppointmentFlag = res['responseData'][0].appointmentFlag;\n let serviceType = this.serviceInfo[this.selectedVin].serviceType.split(' - ')[0];\n if(this.workshopAppointmentFlag == \"true\") {\n if (serviceType == 'FS1' || serviceType == 'FS2' || serviceType == 'FS3' || serviceType == 'ECS' || serviceType == 'PMS') {\n this.showBay = true;\n this.getFertPrice(this.selectedWorkShop, this.fertCode);\n this.getWorkshopBay();\n // if(this.level2Form.value[302] != \"\"){\n // this.getBayVisibility();\n // }\n } else {\n this.showBay = false;\n }\n } else {\n this.showBay = false;\n }\n if(this.showBay && this.level2Form.value[302] != \"\"){\n this.getBayVisibility();\n } else {\n this.chartData = [];\n }\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n\n private saveCallRecording(data:any){\n const URI = localStorage.getItem('exotel_URI')\n const CRE_ID = this.userInfo.userId \n const CUSTOMER_CODE = this.customerData.customerId\n const SOURCE = \"SRM\";\n console.log(\"SAVE\" , URI);\n if (URI)\n {\n this.spinner = true;\n \n const callRecordingParams = new SaveCallRecordingParams(CRE_ID,CUSTOMER_CODE,SOURCE,URI)\n this.commonService.saveCallRecording_API(callRecordingParams).subscribe({\n next:(response)=>{\n if (response.responseCode == 0) {\n this.toastr.success(response.message, 'Success')\n this.saveFormResponse(data);\n }\n else\n {\n this.formSubmitted = false;\n this.submitted = false;\n this.toastr.error(response.message, 'Error');\n }\n \n }\n ,error:(error)=>{\n console.log(error);\n this.spinner = false;\n this.formSubmitted = false;\n this.submitted = false;\n },\n complete:()=>{\n this.spinner = false;\n \n \n }\n })\n }\n else{\n this.saveFormResponse(data)\n }\n }\n\n private saveFormResponse(custResData: any){\n\n this.commonService.savedata(custResData).subscribe(\n res => {\n if (res[\"responseCode\"] == 0) {\n this.spinner = false;\n this.submitted = false;\n this.toastr.info(res[\"message\"], \"Success\");\n \n this.router.navigate([\"calling\"])\n this.commonService.customerResponse = custResData;\n if (this.talked == \"101\") {\n if (this.level2Form !== undefined && this.level2Form.value[301] != null && this.level2Form.value[302] != null && this.level2Form.value[303] != null) {\n this.sendBookingSMS(custResData);\n }\n if (this.customerNumber != this.primaryNumber && this.isCustomerNumber) {\n this.updateNumber();\n }\n this.removeSavedVin();\n } else {\n this.closeDailog();\n this.router.navigate([\"calling\"]);\n }\n this.formSubmitted = false;\n } else {\n this.submitted = false;\n this.formSubmitted = false;\n this.spinner = false;\n this.toastr.error(res[\"message\"], \"Error\");\n }\n },\n error => {\n this.submitted = false;\n this.formSubmitted = false;\n this.toastr.error(error, \"Error\");\n this.spinner = false;\n }\n );\n }\n}\n\nclass CustData {\n customerId: string;\n serviceDueDate: string;\n callStartTime: string;\n callEndTime: string;\n customerContactInd: string;\n customerCallStatus: string;\n creRemark: string;\n userID: string;\n data: string;\n date: string;\n time: string;\n other: string;\n levelData: object;\n responseForNo: string;\n vin: string;\n dealerCode: string;\n bay: string;\n bayEndTime: any;\n packageValue: any;\n customerType:string;\n phoneNo:string;\n customerName:string;\n role:string;\n\n constructor(\n customerId,\n serviceDueDate,\n callStartTime,\n callEndTime,\n customerContactInd,\n creRemark,\n userID,\n levelData,\n responseForNo,\n vin,\n dealerCode,\n bay,\n bayEndTime,\n packageValue,\n customerType,\n phoneNo,\n customerName,\n role\n ) {\n this.customerId = customerId;\n this.serviceDueDate = serviceDueDate;\n this.callStartTime = callStartTime;\n this.callEndTime = callEndTime;\n this.customerContactInd = customerContactInd;\n this.creRemark = creRemark;\n this.userID = userID;\n this.levelData = levelData;\n this.responseForNo = responseForNo;\n this.vin = vin;\n this.dealerCode = dealerCode;\n this.bay = bay;\n this.bayEndTime = bayEndTime;\n this.packageValue = packageValue;\n this.customerType=customerType;\n this.phoneNo=phoneNo;\n this.customerName=customerName;\n this.role=role;\n }\n}","export default \".message {\\n width: 100%;\\n margin-bottom: 20px;\\n}\\n\\n.dialog-area {\\n padding: 20px;\\n}\\n\\n.row {\\n width: 100%;\\n height: 36px;\\n}\\n\\n.row .button {\\n margin-left: 10px;\\n}\\n\\n.header {\\n font-weight: bold;\\n margin-bottom: 10px;\\n}\\n\\n.action {\\n text-align: center;\\n}\\n\\n.close-con {\\n float: right;\\n font-size: 18px;\\n cursor: pointer;\\n}\\n\\n.btn {\\n border-left: 4px solid #2E3668;\\n position: relative;\\n cursor: pointer;\\n transition: all 0.3s ease;\\n overflow: hidden;\\n border-radius: 0;\\n background-color: #E64243 !important;\\n}\\n\\n.btn p {\\n text-align: center;\\n text-transform: uppercase;\\n color: #fff;\\n position: relative;\\n z-index: 1;\\n transition: all 0.3s ease;\\n margin: auto;\\n}\\n\\n/* sliders */\\n\\n.btn:before {\\n content: \\\"\\\";\\n width: 100%;\\n height: 100%;\\n background-color: #2E3668;\\n color: #fff;\\n position: absolute;\\n transition: all 0.3s ease;\\n}\\n\\n/* Left Slider */\\n\\n.btn-2:before {\\n top: 0;\\n left: -210px;\\n}\\n\\n.btn-2:hover:before {\\n left: 0;\\n}\\n\\n.btn-2:hover {\\n color: #fff;\\n}\\n\\n.btn-1 {\\n background-color: #ffffff !important;\\n color: #E64243 !important;\\n border: 1px solid #E64243;\\n}\\n\\n.btn-1 p {\\n margin: auto;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9tb2RhbC9jaGFydC1kaWFsb2cvY2hhcnQtZGlhbG9nLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9tb2RhbC9jaGFydC1kaWFsb2cvY2hhcnQtZGlhbG9nLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsV0FBQTtFQUNBLG1CQUFBO0FDQ0Y7O0FERUE7RUFDRSxhQUFBO0FDQ0Y7O0FERUE7RUFDRSxXQUFBO0VBQ0EsWUFBQTtBQ0NGOztBREVBO0VBQ0UsaUJBQUE7QUNDRjs7QURFQTtFQUNFLGlCQUFBO0VBQ0EsbUJBQUE7QUNDRjs7QURFQTtFQUNFLGtCQUFBO0FDQ0Y7O0FERUE7RUFDRSxZQUFBO0VBQ0EsZUFBQTtFQUNBLGVBQUE7QUNDRjs7QURHQTtFQUNFLDhCQUFBO0VBQ0Esa0JBQUE7RUFDQSxlQUFBO0VBQ0EseUJBQUE7RUFDQSxnQkFBQTtFQUNBLGdCQUFBO0VBQ0Esb0NBQUE7QUNBRjs7QURHQTtFQUNFLGtCQUFBO0VBQ0EseUJBQUE7RUFDQSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBO0VBQ0EseUJBQUE7RUFDQSxZQUFBO0FDQUY7O0FER0EsWUFBQTs7QUFDQTtFQUNFLFdBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLHlCQUFBO0VBQ0EsV0FBQTtFQUNBLGtCQUFBO0VBQ0EseUJBQUE7QUNBRjs7QURHQSxnQkFBQTs7QUFDQTtFQUNFLE1BQUE7RUFDQSxZQUFBO0FDQUY7O0FER0E7RUFDRSxPQUFBO0FDQUY7O0FER0E7RUFDRSxXQUFBO0FDQUY7O0FER0E7RUFDRSxvQ0FBQTtFQUNBLHlCQUFBO0VBQ0EseUJBQUE7QUNBRjs7QURHQTtFQUNFLFlBQUE7QUNBRiIsImZpbGUiOiJzcmMvYXBwL21vZGFsL2NoYXJ0LWRpYWxvZy9jaGFydC1kaWFsb2cuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIubWVzc2FnZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAyMHB4XG59XG5cbi5kaWFsb2ctYXJlYSB7XG4gIHBhZGRpbmc6IDIwcHg7XG59XG5cbi5yb3cge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAzNnB4O1xufVxuXG4ucm93IC5idXR0b24ge1xuICBtYXJnaW4tbGVmdDogMTBweDtcbn1cblxuLmhlYWRlciB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4uYWN0aW9uIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uY2xvc2UtY29uIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLy9zbGlkaW5nIGJ0blxuLmJ0biB7XG4gIGJvcmRlci1sZWZ0OiA0cHggc29saWQgIzJFMzY2ODtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFNjQyNDMgIWltcG9ydGFudDtcbn1cblxuLmJ0biBwIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogI2ZmZjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICBtYXJnaW46IGF1dG87XG59XG5cbi8qIHNsaWRlcnMgKi9cbi5idG46YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJFMzY2ODtcbiAgY29sb3I6ICNmZmY7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cblxuLyogTGVmdCBTbGlkZXIgKi9cbi5idG4tMjpiZWZvcmUge1xuICB0b3A6IDA7XG4gIGxlZnQ6IC0yMTBweDtcbn1cblxuLmJ0bi0yOmhvdmVyOmJlZm9yZSB7XG4gIGxlZnQ6IDA7XG59XG5cbi5idG4tMjpob3ZlciB7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG4uYnRuLTEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRTY0MjQzICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNFNjQyNDM7XG59XG5cbi5idG4tMSBwIHtcbiAgbWFyZ2luOiBhdXRvO1xufVxuIiwiLm1lc3NhZ2Uge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbn1cblxuLmRpYWxvZy1hcmVhIHtcbiAgcGFkZGluZzogMjBweDtcbn1cblxuLnJvdyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDM2cHg7XG59XG5cbi5yb3cgLmJ1dHRvbiB7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuXG4uaGVhZGVyIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi5hY3Rpb24ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5jbG9zZS1jb24ge1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uYnRuIHtcbiAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCAjMkUzNjY4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0U2NDI0MyAhaW1wb3J0YW50O1xufVxuXG4uYnRuIHAge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiAjZmZmO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIG1hcmdpbjogYXV0bztcbn1cblxuLyogc2xpZGVycyAqL1xuLmJ0bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMkUzNjY4O1xuICBjb2xvcjogI2ZmZjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xufVxuXG4vKiBMZWZ0IFNsaWRlciAqL1xuLmJ0bi0yOmJlZm9yZSB7XG4gIHRvcDogMDtcbiAgbGVmdDogLTIxMHB4O1xufVxuXG4uYnRuLTI6aG92ZXI6YmVmb3JlIHtcbiAgbGVmdDogMDtcbn1cblxuLmJ0bi0yOmhvdmVyIHtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5idG4tMSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgY29sb3I6ICNFNjQyNDMgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgI0U2NDI0Mztcbn1cblxuLmJ0bi0xIHAge1xuICBtYXJnaW46IGF1dG87XG59Il19 */\"","import {\n Component,\n OnInit,\n Input,\n Optional,\n Inject,\n ViewChild,\n} from \"@angular/core\";\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material\";\nimport { ChartDataSets, ChartOptions, ChartType } from \"chart.js\";\nimport { Label, BaseChartDirective } from \"ng2-charts\";\n\n@Component({\n selector: \"app-chart-dialog\",\n templateUrl: \"./chart-dialog.component.html\",\n styleUrls: [\"./chart-dialog.component.scss\"],\n})\nexport class ChartDialogComponent implements OnInit {\n @ViewChild(BaseChartDirective, { static: true }) chart: BaseChartDirective;\n chartKpi: any = [];\n chartData: ChartDataSets[] = [\n {\n data: [],\n borderColor: \"#57aeef\",\n backgroundColor: \"#ffffff\",\n hoverBackgroundColor: \"#ffffff\",\n borderWidth: 2,\n pointBorderColor: \"#57aeef\",\n pointStyle: \"circle\",\n pointRadius: 5,\n pointBackgroundColor: \"#57aeef\",\n },\n ];\n chartHeight: any;\n chartWidth: any;\n chartLabels: Label[] = [];\n chartOptions: ChartOptions = {\n responsive: true,\n legend: {\n display: false,\n },\n title: {\n display: false,\n },\n tooltips: {\n enabled: true,\n },\n scales: {\n xAxes: [\n {\n display: true,\n gridLines: {\n display: true,\n },\n scaleLabel: {\n display: true,\n },\n ticks: {\n beginAtZero: false,\n display: true,\n },\n },\n ],\n yAxes: [\n {\n display: true,\n ticks: {\n beginAtZero: false,\n autoSkip: false,\n },\n },\n ],\n },\n elements: {\n line: {\n fill: false,\n tension: 0.000001,\n },\n point: {\n radius: 0,\n },\n },\n };\n chartPlugins: any = [];\n chartLegend: boolean = false;\n chartType: ChartType = \"line\";\n chartName: string;\n\n constructor(\n private dialogRef: MatDialogRef,\n @Optional() @Inject(MAT_DIALOG_DATA) public data: any\n ) {}\n\n ngOnInit() {\n let maxActualVal = 0;\n let minActualVal = 0;\n this.chartKpi = this.data[\"kpi\"];\n this.chartName = this.chartKpi[0].kpiName;\n this.chartLabels.length = 0;\n this.chartKpi.forEach((kpi) => {\n const label = kpi.monthVal + \"/\" + kpi.yearVal;\n this.chartLabels.push(label);\n this.chartData[0].data.push(kpi.actualVal);\n if (maxActualVal < kpi.actualVal) {\n maxActualVal = kpi.actualVal;\n }\n if (minActualVal > kpi.actualVal) {\n minActualVal = kpi.actualVal;\n }\n });\n this.chartOptions.scales.xAxes[0].ticks.max = 14;\n let unit = this.chartKpi[0].unit;\n if (this.chartKpi[0].kpiCode == \"014\") {\n this.chartOptions.scales.yAxes[0].ticks.stepSize = 1;\n this.chartOptions.scales.yAxes[0].ticks.callback = function (value) {\n return value + \"\" + unit;\n };\n } else {\n if (Math.round(maxActualVal) > 2) {\n this.chartOptions.scales.yAxes[0].ticks.stepSize = 5;\n if (Math.round(maxActualVal) + 5 >= 90) {\n this.chartOptions.scales.yAxes[0].ticks.max = 100;\n }\n } else {\n this.chartOptions.scales.yAxes[0].ticks.stepSize = 1;\n }\n this.chartOptions.scales.yAxes[0].ticks.callback = function (value) {\n return value + \"\" + unit;\n };\n }\n this.chart.update();\n }\n\n close() {\n this.dialogRef.close();\n }\n}\n","export default \"/* confirm-dialog.component.css */\\n.mat-dialog-title {\\n text-align: center;\\n font-weight: bold;\\n }\\n.mat-dialog-content {\\n text-align: center;\\n margin-bottom: 20px;\\n }\\n.mat-dialog-actions {\\n display: flex;\\n justify-content: space-between;\\n margin-bottom: 0px !important;\\n }\\nbutton {\\n min-width: 100px;\\n }\\nbutton[color=\\\"primary\\\"] {\\n background-color: #3f51b5;\\n color: white;\\n }\\nbutton[color=\\\"primary\\\"]:hover {\\n background-color: #303f9f;\\n }\\nbutton.mat-button {\\n margin: 0 10px;\\n }\\n \\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbW9kYWwvY29uZmlybS1kaWFsb2cvY29uZmlybS1kaWFsb2cuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUM7QUFDakM7SUFDSSxrQkFBa0I7SUFDbEIsaUJBQWlCO0VBQ25CO0FBRUE7SUFDRSxrQkFBa0I7SUFDbEIsbUJBQW1CO0VBQ3JCO0FBRUE7SUFDRSxhQUFhO0lBQ2IsOEJBQThCO0lBQzlCLDZCQUE2QjtFQUMvQjtBQUVBO0lBQ0UsZ0JBQWdCO0VBQ2xCO0FBRUE7SUFDRSx5QkFBeUI7SUFDekIsWUFBWTtFQUNkO0FBRUE7SUFDRSx5QkFBeUI7RUFDM0I7QUFFQTtJQUNFLGNBQWM7RUFDaEIiLCJmaWxlIjoic3JjL2FwcC9tb2RhbC9jb25maXJtLWRpYWxvZy9jb25maXJtLWRpYWxvZy5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyogY29uZmlybS1kaWFsb2cuY29tcG9uZW50LmNzcyAqL1xuLm1hdC1kaWFsb2ctdGl0bGUge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuICBcbiAgLm1hdC1kaWFsb2ctY29udGVudCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIH1cbiAgXG4gIC5tYXQtZGlhbG9nLWFjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIG1hcmdpbi1ib3R0b206IDBweCAhaW1wb3J0YW50O1xuICB9XG4gIFxuICBidXR0b24ge1xuICAgIG1pbi13aWR0aDogMTAwcHg7XG4gIH1cbiAgXG4gIGJ1dHRvbltjb2xvcj1cInByaW1hcnlcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzZjUxYjU7XG4gICAgY29sb3I6IHdoaXRlO1xuICB9XG4gIFxuICBidXR0b25bY29sb3I9XCJwcmltYXJ5XCJdOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzAzZjlmO1xuICB9XG4gIFxuICBidXR0b24ubWF0LWJ1dHRvbiB7XG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIH1cbiAgIl19 */\"","import { Component, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material';\n\n@Component({\n selector: 'app-confirm-dialog',\n templateUrl: './confirm-dialog.component.html',\n styleUrls: ['./confirm-dialog.component.css']\n})\nexport class ConfirmDialogComponent implements OnInit {\n\n constructor(public dialogRef: MatDialogRef) {}\n\n ngOnInit() {\n }\n onProceed(): void {\n this.dialogRef.close(true);\n }\n\n onCancel(): void {\n this.dialogRef.close(false);\n }\n}\n","export default \".message {\\n width: 100%;\\n margin-bottom: 20px;\\n}\\n\\n.dialog-area {\\n padding: 20px;\\n background-color: #ffffff;\\n}\\n\\n.row {\\n width: 100%;\\n height: 36px;\\n}\\n\\n.row .button {\\n margin-left: 10px;\\n}\\n\\n.header {\\n font-weight: bold;\\n margin-bottom: 10px;\\n}\\n\\n.close-con {\\n float: right;\\n font-size: 18px;\\n cursor: pointer;\\n margin-top: 5px;\\n}\\n\\n.example-card1 {\\n display: block;\\n margin-left: auto;\\n margin-right: auto;\\n}\\n\\n.example-card2 {\\n display: block;\\n margin-left: auto;\\n margin-right: auto;\\n border: none;\\n box-shadow: none;\\n padding: 0px;\\n}\\n\\n.history-card {\\n box-shadow: none;\\n padding: 0px;\\n}\\n\\n.calling-table.mat-table {\\n width: 100%;\\n}\\n\\n.mat-expansion-panel-header-title {\\n font-weight: 500;\\n font-size: 16px;\\n}\\n\\n.mat-expansion-panel-header-title i {\\n margin-right: 10px;\\n color: #e64243;\\n}\\n\\n.fontClass {\\n font: Bold 12px/20px Roboto;\\n color: #7B7A7A;\\n}\\n\\n.fontClassBold {\\n font: 18px/22px Roboto;\\n font-size: 12px;\\n letter-spacing: 0px;\\n color: #3c3c3c;\\n opacity: 1;\\n}\\n\\n.fontClassBold i {\\n color: #00457D;\\n margin-right: 10px;\\n}\\n\\n.border {\\n border: 1px solid #707070;\\n font: 12px/18px Roboto;\\n color: #707070;\\n border-radius: 25px;\\n padding: 5px;\\n}\\n\\n.button {\\n text-align: center;\\n float: right;\\n font: Regular 16px/22px Roboto;\\n color: #ffffff;\\n}\\n\\n.buttonservice {\\n float: right;\\n font-family: Roboto;\\n color: #f1f1ff;\\n}\\n\\n.inlineClass {\\n display: inline;\\n font: Regular 14px Roboto;\\n font-size: 12px;\\n letter-spacing: 0px;\\n color: #000000;\\n opacity: 1;\\n}\\n\\n.example-card1 .fontClass {\\n display: inline-block;\\n}\\n\\n.example-card1 .fontClass1 {\\n float: left;\\n display: block;\\n}\\n\\n.example-radio-group {\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.example-radio-button {\\n margin: 5px;\\n}\\n\\n.mat-dialog-content {\\n padding: 5px 24px;\\n}\\n\\n.contact ::ng-deep .mat-tab-label {\\n height: 20px;\\n min-width: 90px;\\n color: #5482BC;\\n border: 1px solid lightgray;\\n font-size: 11px;\\n}\\n\\n.contact ::ng-deep .mat-tab-label-active {\\n background-color: #00457D;\\n color: #ffffff;\\n opacity: 1;\\n}\\n\\n.contact ::ng-deep .mat-tab-header {\\n border-bottom: none;\\n}\\n\\n.contact ::ng-deep .mat-tab-list .mat-ink-bar {\\n height: 0px;\\n}\\n\\n.contact ::ng-deep .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: #5482BC;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-infix {\\n border: 1px solid lightgray;\\n border-radius: 5px;\\n background: white;\\n padding: 0;\\n height: 20px;\\n}\\n\\n.filter1 ::ng-deep .mat-select {\\n padding: 2px 0px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-trigger {\\n padding-left: 8px;\\n width: 100%;\\n font-size: 12px;\\n padding-bottom: 5px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-value {\\n width: 90%;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label-wrapper {\\n top: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-underline {\\n display: none;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label {\\n top: 0;\\n margin-top: 4px !important;\\n padding-left: 5px;\\n}\\n\\n.filter-label {\\n font: Bold 14px Roboto;\\n letter-spacing: 0px;\\n color: #3c3c3c;\\n opacity: 1;\\n margin-bottom: 5px;\\n font-size: 13px;\\n}\\n\\n.table {\\n font-family: \\\"Trebuchet MS\\\", Arial, Helvetica, sans-serif;\\n border-collapse: collapse;\\n width: 100%;\\n margin-top: 20px;\\n}\\n\\n.table td,\\n.table th {\\n border: 1px solid #e0e0e0;\\n padding: 5px;\\n font-size: 12px;\\n}\\n\\n.table tr:nth-child(even) {\\n background-color: #ffffff;\\n}\\n\\n.table tr:hover {\\n background-color: #ffffff;\\n}\\n\\n.table th {\\n padding-top: 5px;\\n padding-bottom: 5px;\\n text-align: left;\\n background-color: #d3d3d3;\\n color: black;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-group {\\n border-radius: 0px;\\n margin-bottom: 10px;\\n width: 45%;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle {\\n background-color: #ffffff;\\n color: #00457D;\\n font-size: 12px;\\n width: 50%;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-checked {\\n background-color: #00457D;\\n color: #ffffff;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-label-content {\\n line-height: 22px;\\n}\\n\\n.toggle-btn-grp ::ng-deep .refresh-btn.mat-button {\\n min-width: auto;\\n}\\n\\n.history-card .applyHorizontalScroll {\\n margin-bottom: 0px;\\n}\\n\\n.history-card ::ng-deep mat-paginator {\\n position: absolute;\\n right: 0;\\n left: 0;\\n}\\n\\n.history-card ::ng-deep .mat-form-field-infix {\\n height: 15px;\\n}\\n\\n.history-card ::ng-deep .mat-card-content {\\n padding-bottom: 40px;\\n}\\n\\n.serv-heading {\\n width: 30%;\\n}\\n\\n.serv-desc {\\n width: 70%;\\n font-weight: 400;\\n}\\n\\n.serv-desc small {\\n margin-right: 10px;\\n float: right;\\n}\\n\\n.fontClass {\\n font: Bold 14px/16px Roboto;\\n letter-spacing: 0px;\\n font-size: 12px;\\n color: #3c3c3c;\\n opacity: 1;\\n}\\n\\n.tabrow {\\n width: 100% !important;\\n margin-top: 20px;\\n margin-bottom: 20px;\\n}\\n\\n.tabrow ::ng-deep .mat-tab-label {\\n height: 35px;\\n padding: 0px 10px;\\n border-top-left-radius: 8px !important;\\n border-top-right-radius: 8px !important;\\n border-bottom-width: 1px;\\n border-color: #d3d3d3;\\n border-style: solid;\\n background-color: white;\\n margin-left: 3px;\\n color: black;\\n opacity: 1;\\n}\\n\\n.tabrow ::ng-deep .mat-tab-label-active {\\n background-color: #00457D;\\n color: #ffffff;\\n opacity: 1;\\n border-style: none;\\n}\\n\\n.tabrow ::ng-deep .mat-tab-header {\\n border: none;\\n}\\n\\n.tabrow ::ng-deep .mat-tab-list .mat-ink-bar {\\n height: 0px;\\n}\\n\\n.checkalign {\\n padding-left: 16px !important;\\n padding-top: 20px !important;\\n}\\n\\n.fault-table td,\\n.fault-table th {\\n padding: 5px;\\n}\\n\\n.fault-table .fault-date {\\n width: 15% !important;\\n}\\n\\n.fault-table .fault-des {\\n width: 20% !important;\\n}\\n\\n.icon-color {\\n color: #00457D !important;\\n}\\n\\n.calling-table.mat-table .mat-cell {\\n font-size: 11px;\\n letter-spacing: 0px;\\n color: #000000;\\n text-transform: capitalize;\\n opacity: 1;\\n}\\n\\n.calling-table.mat-table .mat-header-cell {\\n font-size: 11px;\\n}\\n\\n.call-stats-card-border1 {\\n border-style: solid solid solid solid;\\n border-width: 1px;\\n border-radius: 0%;\\n border-color: lightgray;\\n}\\n\\np.inlineClass {\\n margin-top: 0px;\\n margin-bottom: 5px;\\n}\\n\\n.table-font.th {\\n color: black;\\n}\\n\\n.table-font.td {\\n color: #595959;\\n}\\n\\ntd.mat-cell,\\ntd.mat-footer-cell,\\nth.mat-header-cell {\\n padding: 5px;\\n border-style: solid none none solid;\\n border-width: 0.1px;\\n border-color: lightgray;\\n}\\n\\n.srvHistryHeader {\\n font-weight: bold;\\n font-size: 12px !important;\\n}\\n\\n.tech-camp ::ng-deep .mat-tab-body-wrapper {\\n box-shadow: 0 3px 15px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n}\\n\\n.tech-camp ::ng-deep .mat-card-content {\\n margin-bottom: 0px;\\n}\\n\\n.paginator ::ng-deep .mat-form-field-infix {\\n height: 18px !important;\\n padding-bottom: 0px;\\n}\\n\\n.srvHistryHeader1 {\\n font-weight: bold;\\n font-size: 12px !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9tb2RhbC9jdXN0b21lcjM2MC1kaWFsb2cvY3VzdG9tZXIzNjAtZGlhbG9nLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9tb2RhbC9jdXN0b21lcjM2MC1kaWFsb2cvY3VzdG9tZXIzNjAtZGlhbG9nLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksV0FBQTtFQUNBLG1CQUFBO0FDQ0o7O0FERUE7RUFDSSxhQUFBO0VBQ0EseUJBQUE7QUNDSjs7QURFQTtFQUNJLFdBQUE7RUFDQSxZQUFBO0FDQ0o7O0FERUE7RUFDSSxpQkFBQTtBQ0NKOztBREVBO0VBQ0ksaUJBQUE7RUFDQSxtQkFBQTtBQ0NKOztBREVBO0VBQ0ksWUFBQTtFQUNBLGVBQUE7RUFDQSxlQUFBO0VBQ0EsZUFBQTtBQ0NKOztBREVBO0VBQ0ksY0FBQTtFQUNBLGlCQUFBO0VBQ0Esa0JBQUE7QUNDSjs7QURFQTtFQUNJLGNBQUE7RUFDQSxpQkFBQTtFQUNBLGtCQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VBQ0EsWUFBQTtBQ0NKOztBREVBO0VBQ0ksZ0JBQUE7RUFDQSxZQUFBO0FDQ0o7O0FERUE7RUFDSSxXQUFBO0FDQ0o7O0FERUE7RUFDSSxnQkFBQTtFQUNBLGVBQUE7QUNDSjs7QURBSTtFQUNJLGtCQUFBO0VBQ0EsY0FBQTtBQ0VSOztBREVBO0VBQ0ksMkJBQUE7RUFDQSxjQUFBO0FDQ0o7O0FERUE7RUFDSSxzQkFBQTtFQUNBLGVBQUE7RUFDQSxtQkFBQTtFQUNBLGNBQUE7RUFDQSxVQUFBO0FDQ0o7O0FEQUk7RUFDSSxjQUFBO0VBQ0Esa0JBQUE7QUNFUjs7QURFQTtFQUNJLHlCQUFBO0VBQ0Esc0JBQUE7RUFDQSxjQUFBO0VBQ0EsbUJBQUE7RUFDQSxZQUFBO0FDQ0o7O0FERUE7RUFDSSxrQkFBQTtFQUNBLFlBQUE7RUFDQSw4QkFBQTtFQUNBLGNBQUE7QUNDSjs7QURFQTtFQUNJLFlBQUE7RUFDQSxtQkFB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LGNBQUE7RUFDQSwwQkFBQTtFQUNBLFVBQUE7QUNOSjs7QURTQTtFQUNJLGVBQUE7QUNOSjs7QURTQTtFQUNJLHFDQUFBO0VBQ0EsaUJBQUE7RUFDQSxpQkFBQTtFQUNBLHVCQUFBO0FDTko7O0FEU0E7RUFDSSxlQUFBO0VBQ0Esa0JBQUE7QUNOSjs7QURTQTtFQUNJLFlBQUE7QUNOSjs7QURTQTtFQUNJLGNBQUE7QUNOSjs7QURTQTs7O0VBR0ksWUFBQTtFQUNBLG1DQUFBO0VBQ0EsbUJBQUE7RUFDQSx1QkFBQTtBQ05KOztBRFNBO0VBQ0ksaUJBQUE7RUFDQSwwQkFBQTtBQ05KOztBRFNBO0VBQ0ksZ0hBQUE7QUNOSjs7QURTQTtFQUNJLGtCQUFBO0FDTko7O0FEU0E7RUFDSSx1QkFBQTtFQUNBLG1CQUFBO0FDTko7O0FEU0E7RUFDSSxpQkFBQTtFQUNBLDBCQUFBO0FDTkoiLCJmaWxlIjoic3JjL2FwcC9tb2RhbC9jdXN0b21lcjM2MC1kaWFsb2cvY3VzdG9tZXIzNjAtZGlhbG9nLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm1lc3NhZ2Uge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cbi5kaWFsb2ctYXJlYSB7XG4gICAgcGFkZGluZzogMjBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xufVxuXG4ucm93IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDM2cHg7XG59XG5cbi5yb3cgLmJ1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbi5oZWFkZXIge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi5jbG9zZS1jb24ge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIG1hcmdpbi10b3A6IDVweDtcbn1cblxuLmV4YW1wbGUtY2FyZDEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuLmV4YW1wbGUtY2FyZDIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBwYWRkaW5nOiAwcHg7XG59XG5cbi5oaXN0b3J5LWNhcmQge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgcGFkZGluZzogMHB4O1xufVxuXG4uY2FsbGluZy10YWJsZS5tYXQtdGFibGUge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGkge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgIGNvbG9yOiAjZTY0MjQzO1xuICAgIH1cbn1cblxuLmZvbnRDbGFzcyB7XG4gICAgZm9udDogQm9sZCAxMnB4LzIwcHggUm9ib3RvO1xuICAgIGNvbG9yOiAjN0I3QTdBO1xufVxuXG4uZm9udENsYXNzQm9sZCB7XG4gICAgZm9udDogMThweC8yMnB4IFJvYm90bztcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgICBjb2xvcjogIzNjM2MzYztcbiAgICBvcGFjaXR5OiAxO1xuICAgIGkge1xuICAgICAgICBjb2xvcjogIzAwNDU3RDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgIH1cbn1cblxuLmJvcmRlciB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzcwNzA3MDtcbiAgICBmb250OiAxMnB4LzE4cHggUm9ib3RvO1xuICAgIGNvbG9yOiAjNzA3MDcwO1xuICAgIGJvcmRlci1yYWRpdXM6IDI1cHg7XG4gICAgcGFkZGluZzogNXB4O1xufVxuXG4uYnV0dG9uIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGZvbnQ6IFJlZ3VsYXIgMTZweC8yMnB4IFJvYm90bztcbiAgICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLmJ1dHRvbnNlcnZpY2Uge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBmb250LWZhbWlseTogUm9ib3RvO1xuICAgIGNvbG9yOiAjZjFmMWZmO1xufVxuXG4uaW5saW5lQ2xhc3Mge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICBmb250OiBSZWd1bGFyIDE0cHggUm9ib3RvO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICAgIGNvbG9yOiAjMDAwMDAwO1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi5leGFtcGxlLWNhcmQxIC5mb250Q2xhc3Mge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLmV4YW1wbGUtY2FyZDEgLmZvbnRDbGFzczEge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uZXhhbXBsZS1yYWRpby1ncm91cCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4uZXhhbXBsZS1yYWRpby1idXR0b24ge1xuICAgIG1hcmdpbjogNXB4O1xufVxuXG4ubWF0LWRpYWxvZy1jb250ZW50IHtcbiAgICBwYWRkaW5nOiA1cHggMjRweDtcbn1cblxuLmNvbnRhY3QgOjpuZy1kZWVwIC5tYXQtdGFiLWxhYmVsIHtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgbWluLXdpZHRoOiA5MHB4O1xuICAgIGNvbG9yOiAjNTQ4MkJDO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgICBmb250LXNpemU6IDExcHg7XG59XG5cbi5jb250YWN0IDo6bmctZGVlcCAubWF0LXRhYi1sYWJlbC1hY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0Q7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgb3BhY2l0eTogMTtcbn1cblxuLmNvbnRhY3QgOjpuZy1kZWVwIC5tYXQtdGFiLWhlYWRlciB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cblxuLmNvbnRhY3QgOjpuZy1kZWVwIC5tYXQtdGFiLWxpc3QgLm1hdC1pbmstYmFyIHtcbiAgICBoZWlnaHQ6IDBweDtcbn1cblxuLmNvbnRhY3QgOjpuZy1kZWVwIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzU0ODJCQztcbn1cblxuLy9jdXN0b20gbWF0LXNlbGVjdFxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGhlaWdodDogMjBweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0IHtcbiAgICBwYWRkaW5nOiAycHggMHB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gICAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gICAgd2lkdGg6IDkwJTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIHtcbiAgICB0b3A6IDA7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICB0b3A6IDA7XG4gICAgbWFyZ2luLXRvcDogNHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XG59XG5cbi5maWx0ZXItbGFiZWwge1xuICAgIGZvbnQ6IEJvbGQgMTRweCBSb2JvdG87XG4gICAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgICBjb2xvcjogIzNjM2MzYztcbiAgICBvcGFjaXR5OiAxO1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG59XG5cbi8vdGFibGVcbi50YWJsZSB7XG4gICAgZm9udC1mYW1pbHk6IFwiVHJlYnVjaGV0IE1TXCIsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xufVxuXG4udGFibGUgdGQsXG4udGFibGUgdGgge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMGUwZTA7XG4gICAgcGFkZGluZzogNXB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLnRhYmxlIHRyOm50aC1jaGlsZChldmVuKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbn1cblxuLnRhYmxlIHRyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xufVxuXG4udGFibGUgdGgge1xuICAgIHBhZGRpbmctdG9wOiA1cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDVweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkM2QzZDM7XG4gICAgY29sb3I6IGJsYWNrO1xufVxuXG4vL3RvZ2dsZSBidG4gY3NzXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgd2lkdGg6IDQ1JTtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgY29sb3I6ICMwMDQ1N0Q7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHdpZHRoOiA1MCU7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0Q7XG4gICAgY29sb3I6ICNmZmZmZmY7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWxhYmVsLWNvbnRlbnQge1xuICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5yZWZyZXNoLWJ0bi5tYXQtYnV0dG9uIHtcbiAgICBtaW4td2lkdGg6IGF1dG87XG59XG5cbi5oaXN0b3J5LWNhcmQgLmFwcGx5SG9yaXpvbnRhbFNjcm9sbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xufVxuXG4uaGlzdG9yeS1jYXJkIDo6bmctZGVlcCBtYXQtcGFnaW5hdG9yIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDA7XG4gICAgbGVmdDogMDtcbn1cblxuLmhpc3RvcnktY2FyZCA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICBoZWlnaHQ6IDE1cHg7XG59XG5cbi5oaXN0b3J5LWNhcmQgOjpuZy1kZWVwIC5tYXQtY2FyZC1jb250ZW50IHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNDBweDtcbn1cblxuLnNlcnYtaGVhZGluZyB7XG4gICAgd2lkdGg6IDMwJTtcbn1cblxuLnNlcnYtZGVzYyB7XG4gICAgd2lkdGg6IDcwJTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIHNtYWxsIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxufVxuXG4uZm9udENsYXNzIHtcbiAgICBmb250OiBCb2xkIDE0cHgvMTZweCBSb2JvdG87XG4gICAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6ICMzYzNjM2M7XG4gICAgb3BhY2l0eTogMTtcbn1cblxuLnRhYnJvdyB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cbi50YWJyb3cgOjpuZy1kZWVwIC5tYXQtdGFiLWxhYmVsIHtcbiAgICBoZWlnaHQ6IDM1cHg7XG4gICAgcGFkZGluZzogMHB4IDEwcHg7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogOHB4ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDhweCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDtcbiAgICBib3JkZXItY29sb3I6ICNkM2QzZDM7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBtYXJnaW4tbGVmdDogM3B4O1xuICAgIGNvbG9yOiBibGFjaztcbiAgICBvcGFjaXR5OiAxO1xuICAgIC8vIGZvbnQtc2l6ZTogMTNweCAhaW1wb3J0YW50Oztcbn1cblxuLnRhYnJvdyA6Om5nLWRlZXAgLm1hdC10YWItbGFiZWwtYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgYm9yZGVyLXN0eWxlOiBub25lO1xufVxuXG4udGFicm93IDo6bmctZGVlcCAubWF0LXRhYi1oZWFkZXIge1xuICAgIGJvcmRlcjogbm9uZTtcbn1cblxuLnRhYnJvdyA6Om5nLWRlZXAgLm1hdC10YWItbGlzdCAubWF0LWluay1iYXIge1xuICAgIGhlaWdodDogMHB4O1xufVxuXG4uY2hlY2thbGlnbiB7XG4gICAgcGFkZGluZy1sZWZ0OiAxNnB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy10b3A6IDIwcHggIWltcG9ydGFudDtcbn1cblxuLy9mYXVsdCB0YWJsZVxuLmZhdWx0LXRhYmxlIHRkLFxuLmZhdWx0LXRhYmxlIHRoIHtcbiAgICBwYWRkaW5nOiA1cHg7XG59XG5cbi5mYXVsdC10YWJsZSB7XG4gICAgLmZhdWx0LWRhdGUge1xuICAgICAgICB3aWR0aDogMTUlICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIC5mYXVsdC1kZXMge1xuICAgICAgICB3aWR0aDogMjAlICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4uaWNvbi1jb2xvciB7XG4gICAgY29sb3I6ICMwMDQ1N0QgIWltcG9ydGFudDtcbn1cblxuLmNhbGxpbmctdGFibGUubWF0LXRhYmxlIC5tYXQtY2VsbCB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gICAgY29sb3I6ICMwMDAwMDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gICAgb3BhY2l0eTogMTtcbn1cblxuLmNhbGxpbmctdGFibGUubWF0LXRhYmxlIC5tYXQtaGVhZGVyLWNlbGwge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbn1cblxuLmNhbGwtc3RhdHMtY2FyZC1ib3JkZXIxIHtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIHNvbGlkIHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDAlO1xuICAgIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG5wLmlubGluZUNsYXNzIHtcbiAgICBtYXJnaW4tdG9wOiAwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuXG4udGFibGUtZm9udC50aCB7XG4gICAgY29sb3I6IGJsYWNrO1xufVxuXG4udGFibGUtZm9udC50ZCB7XG4gICAgY29sb3I6ICM1OTU5NTk7XG59XG5cbnRkLm1hdC1jZWxsLFxudGQubWF0LWZvb3Rlci1jZWxsLFxudGgubWF0LWhlYWRlci1jZWxsIHtcbiAgICBwYWRkaW5nOiA1cHg7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZCBub25lIG5vbmUgc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAwLjFweDtcbiAgICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxuLnNydkhpc3RyeUhlYWRlciB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7XG59XG5cbi50ZWNoLWNhbXAgOjpuZy1kZWVwIC5tYXQtdGFiLWJvZHktd3JhcHBlciB7XG4gICAgYm94LXNoYWRvdzogMCAzcHggMTVweCAtMnB4IHJnYmEoMCwgMCwgMCwgLjIpLCAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsIC4xNCksIDAgMXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgLjEyKTtcbn1cblxuLnRlY2gtY2FtcCA6Om5nLWRlZXAgLm1hdC1jYXJkLWNvbnRlbnQge1xuICAgIG1hcmdpbi1ib3R0b206IDBweDtcbn1cblxuLnBhZ2luYXRvciA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICBoZWlnaHQ6IDE4cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMHB4O1xufVxuXG4uc3J2SGlzdHJ5SGVhZGVyMSB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7XG59XG4iLCIubWVzc2FnZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuXG4uZGlhbG9nLWFyZWEge1xuICBwYWRkaW5nOiAyMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xufVxuXG4ucm93IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMzZweDtcbn1cblxuLnJvdyAuYnV0dG9uIHtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbi5oZWFkZXIge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLmNsb3NlLWNvbiB7XG4gIGZsb2F0OiByaWdodDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG1hcmdpbi10b3A6IDVweDtcbn1cblxuLmV4YW1wbGUtY2FyZDEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuLmV4YW1wbGUtY2FyZDIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xuICBwYWRkaW5nOiAwcHg7XG59XG5cbi5oaXN0b3J5LWNhcmQge1xuICBib3gtc2hhZG93OiBub25lO1xuICBwYWRkaW5nOiAwcHg7XG59XG5cbi5jYWxsaW5nLXRhYmxlLm1hdC10YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUge1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXNpemU6IDE2cHg7XG59XG4ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUgaSB7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbiAgY29sb3I6ICNlNjQyNDM7XG59XG5cbi5mb250Q2xhc3Mge1xuICBmb250OiBCb2xkIDEycHgvMjBweCBSb2JvdG87XG4gIGNvbG9yOiAjN0I3QTdBO1xufVxuXG4uZm9udENsYXNzQm9sZCB7XG4gIGZvbnQ6IDE4cHgvMjJweCBSb2JvdG87XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgY29sb3I6ICMzYzNjM2M7XG4gIG9wYWNpdHk6IDE7XG59XG4uZm9udENsYXNzQm9sZCBpIHtcbiAgY29sb3I6ICMwMDQ1N0Q7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbn1cblxuLmJvcmRlciB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM3MDcwNzA7XG4gIGZvbnQ6IDEycHgvMThweCBSb2JvdG87XG4gIGNvbG9yOiAjNzA3MDcwO1xuICBib3JkZXItcmFkaXVzOiAyNXB4O1xuICBwYWRkaW5nOiA1cHg7XG59XG5cbi5idXR0b24ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZsb2F0OiByaWdodDtcbiAgZm9udDogUmVndWxhciAxNnB4LzIycHggUm9ib3RvO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLmJ1dHRvbnNlcnZpY2Uge1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG87XG4gIGNvbG9yOiAjZjFmMWZmO1xufVxuXG4uaW5saW5lQ2xhc3Mge1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIGZvbnQ6IFJlZ3VsYXIgMTRweCBSb2JvdG87XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5leGFtcGxlLWNhcmQxIC5mb250Q2xhc3Mge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5leGFtcGxlLWNhcmQxIC5mb250Q2xhc3MxIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uZXhhbXBsZS1yYWRpby1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi5leGFtcGxlLXJhZGlvLWJ1dHRvbiB7XG4gIG1hcmdpbjogNXB4O1xufVxuXG4ubWF0LWRpYWxvZy1jb250ZW50IHtcbiAgcGFkZGluZzogNXB4IDI0cHg7XG59XG5cbi5jb250YWN0IDo6bmctZGVlcCAubWF0LXRhYi1sYWJlbCB7XG4gIGhlaWdodDogMjBweDtcbiAgbWluLXdpZHRoOiA5MHB4O1xuICBjb2xvcjogIzU0ODJCQztcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICBmb250LXNpemU6IDExcHg7XG59XG5cbi5jb250YWN0IDo6bmctZGVlcCAubWF0LXRhYi1sYWJlbC1hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmNvbnRhY3QgOjpuZy1kZWVwIC5tYXQtdGFiLWhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG5cbi5jb250YWN0IDo6bmctZGVlcCAubWF0LXRhYi1saXN0IC5tYXQtaW5rLWJhciB7XG4gIGhlaWdodDogMHB4O1xufVxuXG4uY29udGFjdCA6Om5nLWRlZXAgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU0ODJCQztcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgcGFkZGluZzogMDtcbiAgaGVpZ2h0OiAyMHB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3Qge1xuICBwYWRkaW5nOiAycHggMHB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gIHBhZGRpbmctbGVmdDogOHB4O1xuICB3aWR0aDogMTAwJTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBwYWRkaW5nLWJvdHRvbTogNXB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdmFsdWUge1xuICB3aWR0aDogOTAlO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIge1xuICB0b3A6IDA7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRvcDogMDtcbiAgbWFyZ2luLXRvcDogNHB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xufVxuXG4uZmlsdGVyLWxhYmVsIHtcbiAgZm9udDogQm9sZCAxNHB4IFJvYm90bztcbiAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgY29sb3I6ICMzYzNjM2M7XG4gIG9wYWNpdHk6IDE7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbiAgZm9udC1zaXplOiAxM3B4O1xufVxuXG4udGFibGUge1xuICBmb250LWZhbWlseTogXCJUcmVidWNoZXQgTVNcIiwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG59XG5cbi50YWJsZSB0ZCxcbi50YWJsZSB0aCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMGUwZTA7XG4gIHBhZGRpbmc6IDVweDtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4udGFibGUgdHI6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbn1cblxuLnRhYmxlIHRyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbn1cblxuLnRhYmxlIHRoIHtcbiAgcGFkZGluZy10b3A6IDVweDtcbiAgcGFkZGluZy1ib3R0b206IDVweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2QzZDNkMztcbiAgY29sb3I6IGJsYWNrO1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgd2lkdGg6IDQ1JTtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBjb2xvcjogIzAwNDU3RDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICB3aWR0aDogNTAlO1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RDtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWxhYmVsLWNvbnRlbnQge1xuICBsaW5lLWhlaWdodDogMjJweDtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAucmVmcmVzaC1idG4ubWF0LWJ1dHRvbiB7XG4gIG1pbi13aWR0aDogYXV0bztcbn1cblxuLmhpc3RvcnktY2FyZCAuYXBwbHlIb3Jpem9udGFsU2Nyb2xsIHtcbiAgbWFyZ2luLWJvdHRvbTogMHB4O1xufVxuXG4uaGlzdG9yeS1jYXJkIDo6bmctZGVlcCBtYXQtcGFnaW5hdG9yIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgbGVmdDogMDtcbn1cblxuLmhpc3RvcnktY2FyZCA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgaGVpZ2h0OiAxNXB4O1xufVxuXG4uaGlzdG9yeS1jYXJkIDo6bmctZGVlcCAubWF0LWNhcmQtY29udGVudCB7XG4gIHBhZGRpbmctYm90dG9tOiA0MHB4O1xufVxuXG4uc2Vydi1oZWFkaW5nIHtcbiAgd2lkdGg6IDMwJTtcbn1cblxuLnNlcnYtZGVzYyB7XG4gIHdpZHRoOiA3MCU7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG4uc2Vydi1kZXNjIHNtYWxsIHtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbi5mb250Q2xhc3Mge1xuICBmb250OiBCb2xkIDE0cHgvMTZweCBSb2JvdG87XG4gIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICMzYzNjM2M7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi50YWJyb3cge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBtYXJnaW4tdG9wOiAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuXG4udGFicm93IDo6bmctZGVlcCAubWF0LXRhYi1sYWJlbCB7XG4gIGhlaWdodDogMzVweDtcbiAgcGFkZGluZzogMHB4IDEwcHg7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDhweCAhaW1wb3J0YW50O1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogOHB4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDtcbiAgYm9yZGVyLWNvbG9yOiAjZDNkM2QzO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgbWFyZ2luLWxlZnQ6IDNweDtcbiAgY29sb3I6IGJsYWNrO1xuICBvcGFjaXR5OiAxO1xufVxuXG4udGFicm93IDo6bmctZGVlcCAubWF0LXRhYi1sYWJlbC1hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgb3BhY2l0eTogMTtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xufVxuXG4udGFicm93IDo6bmctZGVlcCAubWF0LXRhYi1oZWFkZXIge1xuICBib3JkZXI6IG5vbmU7XG59XG5cbi50YWJyb3cgOjpuZy1kZWVwIC5tYXQtdGFiLWxpc3QgLm1hdC1pbmstYmFyIHtcbiAgaGVpZ2h0OiAwcHg7XG59XG5cbi5jaGVja2FsaWduIHtcbiAgcGFkZGluZy1sZWZ0OiAxNnB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctdG9wOiAyMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5mYXVsdC10YWJsZSB0ZCxcbi5mYXVsdC10YWJsZSB0aCB7XG4gIHBhZGRpbmc6IDVweDtcbn1cblxuLmZhdWx0LXRhYmxlIC5mYXVsdC1kYXRlIHtcbiAgd2lkdGg6IDE1JSAhaW1wb3J0YW50O1xufVxuLmZhdWx0LXRhYmxlIC5mYXVsdC1kZXMge1xuICB3aWR0aDogMjAlICFpbXBvcnRhbnQ7XG59XG5cbi5pY29uLWNvbG9yIHtcbiAgY29sb3I6ICMwMDQ1N0QgIWltcG9ydGFudDtcbn1cblxuLmNhbGxpbmctdGFibGUubWF0LXRhYmxlIC5tYXQtY2VsbCB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICBvcGFjaXR5OiAxO1xufVxuXG4uY2FsbGluZy10YWJsZS5tYXQtdGFibGUgLm1hdC1oZWFkZXItY2VsbCB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbn1cblxuLmNhbGwtc3RhdHMtY2FyZC1ib3JkZXIxIHtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZCBzb2xpZCBzb2xpZCBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1yYWRpdXM6IDAlO1xuICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxucC5pbmxpbmVDbGFzcyB7XG4gIG1hcmdpbi10b3A6IDBweDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuXG4udGFibGUtZm9udC50aCB7XG4gIGNvbG9yOiBibGFjaztcbn1cblxuLnRhYmxlLWZvbnQudGQge1xuICBjb2xvcjogIzU5NTk1OTtcbn1cblxudGQubWF0LWNlbGwsXG50ZC5tYXQtZm9vdGVyLWNlbGwsXG50aC5tYXQtaGVhZGVyLWNlbGwge1xuICBwYWRkaW5nOiA1cHg7XG4gIGJvcmRlci1zdHlsZTogc29saWQgbm9uZSBub25lIHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDAuMXB4O1xuICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxuLnNydkhpc3RyeUhlYWRlciB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcbn1cblxuLnRlY2gtY2FtcCA6Om5nLWRlZXAgLm1hdC10YWItYm9keS13cmFwcGVyIHtcbiAgYm94LXNoYWRvdzogMCAzcHggMTVweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLnRlY2gtY2FtcCA6Om5nLWRlZXAgLm1hdC1jYXJkLWNvbnRlbnQge1xuICBtYXJnaW4tYm90dG9tOiAwcHg7XG59XG5cbi5wYWdpbmF0b3IgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIGhlaWdodDogMThweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWJvdHRvbTogMHB4O1xufVxuXG4uc3J2SGlzdHJ5SGVhZGVyMSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcbn0iXX0= */\"","import { Component, OnInit, Optional, Inject, ViewChild } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA, MatTableDataSource, MatSort, MatPaginator } from '@angular/material';\nimport { CommonService } from 'src/app/core/service/common-service/common.service';\nimport { DatePipe } from \"@angular/common\";\nimport { ToastrService } from 'ngx-toastr';\n\n@Component({\n selector: 'app-customer360',\n templateUrl: './customer360-dialog.component.html',\n styleUrls: ['./customer360-dialog.component.scss']\n})\n\nexport class Customer360DialogComponent implements OnInit {\n\n @ViewChild(MatSort, { static: true }) sort: MatSort;\n @ViewChild('CallLogsPaginator', { static: true }) callLogsPaginator: MatPaginator;\n @ViewChild('CallLogsSort', { static: true }) callLogsSort: MatSort;\n @ViewChild('RemarksPaginator', { static: true }) remarksPaginator: MatPaginator;\n @ViewChild('RemarksSort', { static: true }) remarksSort: MatSort\n @ViewChild('ServiceHistoryPaginator', { static: true }) serviceHistoryPaginator: MatPaginator;\n @ViewChild('ServiceHistorySort', { static: true }) serviceHistorySort: MatSort;\n @ViewChild('CallLogsPaginator1', { static: true }) prsCallLogsPaginator: MatPaginator;\n @ViewChild('CallLogsSort', { static: true }) prsCallLogsSort: MatSort;\n\n cus360: any;\n custNotification: string;\n calltype: string;\n vehicleDetails: any = {};\n lastServiceDetails: any = {};\n serviceDetails: any = {};\n customerID: string;\n spinner: boolean;\n vinNoList: string[] = [];\n vehicleInfoList: any[] = [];\n vehicleTypeCallInfo: any;\n vehicleServiceAndStausInfo: any;\n contactNumbers: any[] = [];\n selectedVehicle: string;\n contactInfoOwner: any[] = [];\n contactInfoFleet: any[] = [];\n contactInfoDriver: any[] = [];\n dataSource1: any = [];\n rows: any = [];\n HideServiceHistory: boolean = true;\n userId: string;\n srmCallLists: any;\n prsCallLists: any;\n recentNumber: string;\n callCount: number = 0;\n prsCallCount: number = 0;\n showRecordingDailog: boolean = false;\n showPlayBtn: boolean = true;\n audioSource: any = {};\n faultDetails: any = [];\n remarksDetails: any;\n remarksCount: number = 0;\n historyDetails: any;\n historyCount: number = 0;\n rrDetails: any = [];\n rrLength: number;\n vin: string;\n roleId: string;\n\n //service history table columns\n displayedColumns: string[] = [\n \"jcNo\",\n \"servNo\",\n \"dealerLoc\",\n \"jbcardDate\",\n \"mileage\",\n \"failureDate\",\n \"billDate\",\n \"insdate\",\n \"mechanic\",\n \"serviceAdv\",\n \"serviceAdvNo\"\n ];\n\n //call log table columns\n displayedCallColumns: string[] = [\n \"number\",\n \"callDate\",\n \"startTime\",\n \"duration\",\n \"recording\"\n ];\n\n //call log table columns\n displayedRemarksColumns: string[] = [\n \"remark\",\n \"remarkDate\",\n \"remarkTime\"\n ];\n\n displayedFaultColumns: string[] = [\n \"faultCaseId\",\n \"rulesDesc\",\n \"faultListDate\",\n \"faultFertCode\",\n \"faultServiceDueDate\",\n \"faultBookingDate\"\n ];\n\n constructor(\n private dialogRef: MatDialogRef,\n @Optional() @Inject(MAT_DIALOG_DATA) public data: any,\n private commonService: CommonService,\n private datePipe: DatePipe,\n private toastr: ToastrService\n ) {\n this.customerID = data.customerCode;\n }\n\n ngOnInit() {\n this.userId = localStorage.getItem(\"userId\");\n this.vin = localStorage.getItem(\"selectedVin\");\n this.roleId = localStorage.getItem(\"roleId\");\n this.getCustomer360();\n this.getContactdetail();\n this.getSRMCallList();\n this.getPRSCallList();\n }\n\n /**\n * Name: getCustomer360\n * purpose: To get customer data\n */\n getCustomer360(): void {\n this.spinner = true;\n let customerID = this.customerID;\n this.commonService.getcustomerdata(customerID, this.userId, this.vin).subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n this.cus360 = res[\"responseData\"];\n if (this.cus360[\"VECHILE_INFO\"] && this.cus360[\"VECHILE_INFO\"].length && this.cus360[\"VECHILE_INFO\"][0].vin6Bits) {\n this.selectedVehicle = this.cus360[\"VECHILE_INFO\"][0].vin6Bits\n this.cus360[\"VECHILE_INFO\"].forEach(element => {\n this.vinNoList.push(element.vin6Bits);\n this.vehicleInfoList.push(element);\n });\n this.subTabDefault(this.selectedVehicle);\n } else {\n this.vehicleDetails = {};\n }\n this.spinner = false;\n } else {\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n //...\n });\n //populate vin list\n }\n\n /**\n * Name: getContactdetail\n * purpose: To get customer Contact detail\n */\n getContactdetail(): void {\n this.spinner = true;\n let customerID = this.customerID;\n this.commonService.contactdetail(customerID).subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n this.contactInfoOwner = res[\"responseData\"].filter(contact => contact.flag == \"O\");\n this.contactInfoFleet = res[\"responseData\"].filter(contact => contact.flag == \"F\");\n this.contactInfoDriver = res[\"responseData\"].filter(contact => contact.flag == \"D\");\n this.spinner = false;\n } else {\n this.spinner = false;\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n //...\n });\n //populate vin list\n }\n\n /**\n * Name: subTabDefault\n * purpose: To set default tabs\n */\n subTabDefault(selectedVehicle: string): void {\n this.vehicleDetails = this.cus360[\"VECHILE_INFO\"].filter(vehicle => vehicle.vin6Bits == selectedVehicle)[0];\n\n //change the sale date format\n this.vehicleDetails.saleDate = this.datePipe.transform(\n this.vehicleDetails.saleDate,\n \"yyyy-MM-dd\"\n );\n\n //set the vehicle call Info\n if (this.cus360[\"SERVICE_INFO\"] && Object.keys(this.cus360[\"SERVICE_INFO\"]).length && this.cus360[\"SERVICE_INFO\"][selectedVehicle]) {\n this.serviceDetails = this.cus360[\"SERVICE_INFO\"][selectedVehicle];\n this.vehicleServiceAndStausInfo = this.serviceDetails.serviceType + \", \" + this.serviceDetails.callStatus;\n this.vehicleTypeCallInfo = this.serviceDetails.callType;\n } else {\n this.serviceDetails = {};\n }\n\n if (this.cus360[\"FAULT_SERVICE_INFO\"] && Object.keys(this.cus360[\"FAULT_SERVICE_INFO\"]).length && this.cus360[\"FAULT_SERVICE_INFO\"][selectedVehicle]) {\n let faultInfo = this.cus360[\"FAULT_SERVICE_INFO\"][selectedVehicle];\n this.faultDetails = new MatTableDataSource(faultInfo);\n } else {\n this.faultDetails = [];\n }\n\n if (this.cus360[\"LAST_SERVICE_INFO\"] && Object.keys(this.cus360[\"LAST_SERVICE_INFO\"]).length && this.cus360[\"LAST_SERVICE_INFO\"][selectedVehicle]) {\n this.lastServiceDetails = this.cus360[\"LAST_SERVICE_INFO\"][selectedVehicle];\n\n this.lastServiceDetails.invoiceDate = this.datePipe.transform(\n this.lastServiceDetails.invoiceDate,\n \"yyyy-MM-dd\"\n );\n } else {\n this.lastServiceDetails = {};\n }\n\n if (this.cus360[\"Remark_Info\"] && Object.keys(this.cus360[\"Remark_Info\"]).length && this.cus360[\"Remark_Info\"][selectedVehicle]) {\n let remarks = this.cus360[\"Remark_Info\"][selectedVehicle];\n remarks.forEach(element => {\n let date = element.remarkTime + \" GMT+0000\";\n let d = new Date(date);\n element.remarkTime = d;\n element.remarkDate = this.datePipe.transform(element.remarkTime, \"yyyy-MM-dd\");\n });\n this.remarksDetails = new MatTableDataSource(remarks);\n this.sort.direction = '';\n this.remarksDetails.sort = this.remarksSort;\n this.remarksDetails.paginator = this.remarksPaginator;\n this.remarksCount = remarks.length;\n } else {\n this.remarksDetails = [];\n }\n }\n\n /**\n * Name: getHistory\n * purpose: To get service history\n */\n getHistory(showHistory: boolean): void {\n if (showHistory) {\n this.spinner = true;\n this.commonService.history(this.vehicleDetails.chassisNo).subscribe(\n res => {\n if (res[\"responseCode\"] == 0) {\n this.HideServiceHistory = false;\n this.dataSource1 = res[\"responseData\"];\n this.historyDetails= new MatTableDataSource(this.dataSource1);\n this.sort.direction = '';\n this.historyDetails.sort = this.serviceHistorySort;\n this.historyDetails.paginator = this.serviceHistoryPaginator;\n this.historyCount = this.dataSource1.length;\n this.spinner = false;\n } else {\n this.toastr.info(res[\"message\"]);\n this.spinner = false;\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n } else {\n this.HideServiceHistory = true;\n }\n }\n\n /**\n * Name: getCallList\n * purpose: To get customer call data\n */\n getSRMCallList(): void {\n this.spinner = true;\n let user = \"\";\n if(this.roleId != \"15\") {\n user = this.userId;\n }\n this.commonService.callDetails(user, this.customerID, 'SRM').subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n this.spinner = false;\n \n this.srmCallLists = new MatTableDataSource(res['responseData']);\n this.recentNumber = (res['responseData'].length && res['responseData'][0].custNo) ? res['responseData'][0].custNo.split('+91')[1] : '';\n this.sort.direction = '';\n this.srmCallLists.sort = this.callLogsSort;\n this.srmCallLists.paginator = this.callLogsPaginator;\n this.callCount = res['responseData'].length;\n } else {\n this.spinner = false;\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: getCallList\n * purpose: To get customer call data\n */\n getPRSCallList(): void {\n this.spinner = true;\n let user = \"\";\n if(this.roleId != \"15\") {\n user = this.userId;\n }\n this.commonService.callDetails(user, this.customerID, 'PRS').subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n this.spinner = false;\n \n this.prsCallLists = new MatTableDataSource(res['responseData']);\n this.recentNumber = (res['responseData'].length && res['responseData'][0].custNo) ? res['responseData'][0].custNo.split('+91')[1] : '';\n this.sort.direction = '';\n this.prsCallLists.sort = this.prsCallLogsSort;\n this.prsCallLists.paginator = this.prsCallLogsPaginator;\n this.prsCallCount = res['responseData'].length;\n } else {\n this.spinner = false;\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: pushData\n * purpose: To generate data for table\n */\n pushData(): void {\n this.dataSource1.forEach(element => this.rows.push(element, { detailRow: true, element }));\n }\n\n close() {\n this.dialogRef.close();\n }\n\n /**\n * Name: getCallRecording\n * purpose: To get call recording and play\n */\n recording:string = ''\n getCallRecording(bucketName: string, fileName: string, id: string, source: string ,element): void {\n if (element.recordingUrl) {\n this.recording = element.recordingUrl;\n }else{\n this.recording = '';\n }\n this.spinner = true;\n this.onRecordingClose();\n this.commonService.downloadAudio(bucketName, fileName, source).subscribe(res => {\n this.spinner = false;\n var binary = res['body'];\n var blob = new Blob([binary], { type: 'audio/mp4' });\n this.audioSource.id = id;\n this.audioSource.url = URL.createObjectURL(blob);\n if (this.audioSource.url) {\n this.playRecording();\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n}\n\n/**\n * Name: playRecording\n * purpose: To play recoding\n */\n playRecording(): void {\n this.showPlayBtn = false;\n this.showRecordingDailog = true;\n }\n\n /**\n * Name: onRecordingClose\n * purpose: To close Recording dailog\n */\n onRecordingClose() {\n this.showPlayBtn = true;\n this.showRecordingDailog = false;\n }\n}","export default \"#callDialog {\\n box-shadow: 0 1px 2px 1px rgba(0, 0, 0, 0.2), 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12);\\n padding: 10px;\\n background-color: #ffffff;\\n position: fixed;\\n width: 35%;\\n height: 450px;\\n}\\n\\n.close-con {\\n float: right;\\n font-size: 18px;\\n cursor: pointer;\\n}\\n\\ntable {\\n width: 100%;\\n}\\n\\n.call-header {\\n font-family: Bold 16px/22px Roboto;\\n font-size: 12px;\\n}\\n\\n.call-header i {\\n color: #00457d;\\n}\\n\\n.rect2 {\\n width: 100%;\\n background: #eaeaea;\\n}\\n\\n.rect3 {\\n padding-top: 25px;\\n padding-right: 0px;\\n padding-left: 0px;\\n padding-bottom: 0px;\\n width: 100%;\\n font-size: 12px;\\n background: #ffffff;\\n}\\n\\n.rect3 .button {\\n float: right;\\n margin-right: 8px;\\n margin-top: 5px;\\n}\\n\\n.rect4 {\\n width: 100%;\\n font-size: 12px;\\n padding-bottom: 0px;\\n}\\n\\n.ngx-timepicker-field-example {\\n float: left;\\n margin-top: 15px;\\n}\\n\\n.rect5 {\\n float: left;\\n width: 100%;\\n}\\n\\n.text-pp {\\n width: 100%;\\n}\\n\\n.call-popup-save {\\n float: right;\\n margin-right: 20px;\\n margin-bottom: 10px;\\n}\\n\\n.icons .fa-phone {\\n transform: rotate(135deg);\\n}\\n\\n.icons .fa-microphone-slash,\\n.icons .fa-phone {\\n font-size: 24px;\\n}\\n\\n.icons .button {\\n margin: 5px;\\n}\\n\\n.icons {\\n margin-top: 25px;\\n padding-left: 29%;\\n}\\n\\n.hang-btn {\\n color: red !important;\\n border-color: red !important;\\n}\\n\\n.classtext1 {\\n font-weight: bold;\\n}\\n\\n.timestamp {\\n font-size: 11px;\\n margin-left: 10px;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-group {\\n border-radius: 0px;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle {\\n background-color: #ffffff;\\n color: #000000;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-checked {\\n background-color: #00457d;\\n color: #ffffff;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-label-content {\\n line-height: 20px;\\n}\\n\\n.btn {\\n position: relative;\\n cursor: pointer;\\n transition: all 0.3s ease;\\n overflow: hidden;\\n background-color: #00457D !important;\\n height: 24px;\\n line-height: 10px;\\n}\\n\\n.mat-button {\\n border-radius: 0px;\\n float: right;\\n}\\n\\n.btn p {\\n text-align: center;\\n text-transform: uppercase;\\n color: #fff;\\n position: relative;\\n z-index: 1;\\n transition: all 0.3s ease;\\n margin: auto;\\n font-size: 12px;\\n}\\n\\n/* sliders */\\n\\n/* Left Slider */\\n\\n.btn-1 {\\n background-color: #ffffff !important;\\n color: #e64243 !important;\\n border: 1px solid #e64243;\\n}\\n\\n.btn-1 p {\\n margin: auto;\\n}\\n\\n.dropdown-pp1 .mat-form-field-infix {\\n height: 21px !important;\\n width: 100%;\\n padding-bottom: 0px !important;\\n}\\n\\n.dropdown-pp1 .mat-form-field {\\n width: 100%;\\n}\\n\\n.dropdown-pp1 .ng-star-inserted {\\n width: 99%;\\n}\\n\\n.profile-pp1 .mat-form-field-wrapper {\\n padding-bottom: 0px;\\n}\\n\\n.profile-pp1 .mat-label {\\n padding-top: 6px;\\n}\\n\\n.dropdown-border {\\n border-style: solid solid solid solid !important;\\n border-width: 1px;\\n border-radius: 5px;\\n border-color: gray;\\n height: 28px;\\n padding-left: 8px;\\n padding-top: 6px;\\n margin-top: 0px;\\n}\\n\\n.textfield-border {\\n border-style: solid solid solid solid !important;\\n border-width: 1px;\\n border-radius: 5px;\\n border-color: gray;\\n}\\n\\nmat-error {\\n color: #ff0000;\\n font-size: 10px;\\n margin-top: -12px !important;\\n}\\n\\n.error {\\n color: #ff0000;\\n font-size: 10px;\\n}\\n\\n.bay {\\n font-size: 10px;\\n}\\n\\n.bay-area {\\n background-color: #f9f9f9;\\n padding: 10px;\\n}\\n\\n.slot {\\n padding: 5px 5px;\\n margin: 0px;\\n text-align: center;\\n border: 1px solid lightgray;\\n}\\n\\n.occupied {\\n background-color: #e64243;\\n}\\n\\n.bay-label {\\n margin-bottom: 10px;\\n color: rgba(0, 0, 0, 0.54);\\n font-size: 10px;\\n font-weight: 500;\\n}\\n\\n.bay-time {\\n margin-top: 10px;\\n}\\n\\n.datetime {\\n padding: 5px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9tb2RhbC9kb29yc3RlcC1jYWxsaW5nLWRpYWxvZy9kb29yc3RlcC1jYWxsaW5nLWRpYWxvZy5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvbW9kYWwvZG9vcnN0ZXAtY2FsbGluZy1kaWFsb2cvZG9vcnN0ZXAtY2FsbGluZy1kaWFsb2cuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxpSkFBQTtFQUNBLGFBQUE7RUFDQSx5QkFBQTtFQUNBLGVBQUE7RUFDQSxVQUFBO0VBQ0EsYUFBQTtBQ0NKOztBREVBO0VBQ0ksWUFBQTtFQUNBLGVBQUE7RUFDQSxlQUFBO0FDQ0o7O0FERUE7RUFDSSxXQUFBO0FDQ0o7O0FERUE7RUFDSSxrQ0FBQTtFQUNBLGVBQUE7QUNDSjs7QURBSTtFQUNJLGNBQUE7QUNFUjs7QURFQTtFQUNJLFdBQUE7RUFDQSxtQkFBQTtBQ0NKOztBREVBO0VBQ0ksaUJBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0VBQ0EsbUJBQUE7RUFDQSxXQUFBO0VBQ0EsZUFBQTtFQUNBLG1CQUFBO0FDQ0o7O0FERUE7RUFDSSxZQUFBO0VBQ0EsaUJBQUE7RUFDQSxlQUFBO0FDQ0o7O0FERUE7RUFDSSxXQUFBO0VBQ0EsZUFBQTtFQUNBLG1CQUFBO0FDQ0o7O0FERUE7RUFDSSxXQUFBO0VBQ0EsZ0JBQUE7QUNDSjs7QURFQTtFQUNJLFdBQUE7RUFDQSxXQUFBO0FDQ0o7O0FERUE7RUFDSSxXQUFBO0FDQ0o7O0FERUE7RUFDSSxZQUFBO0VBQ0Esa0JBQUE7RUFDQSxtQkFBQTtBQ0NKOztBREVBO0VBQ0kseUJBQUE7QUNDSjs7QURFQTs7RUFFSSxlQUFBO0FDQ0o7O0FERUE7RUFDSSxXQUFBO0FDQ0o7O0FERUE7RUFDSSxnQkFBQTtFQUNBLGlCQUFBO0FDQ0o7O0FERUE7RUFDSSxxQkFBQTtFQUNBLDRCQUFBO0FDQ0o7O0FERUE7RUFDSSxpQkFBQTtBQ0NKOztBREVBO0VBQ0ksZUFBQTtFQUNBLGlCQUFBO0FDQ0o7O0FERUE7RUFDSSxrQkFBQTtBQ0NKOztBREVBO0VBQ0kseUJBQUE7RUFDQSxjQUFBO0FDQ0o7O0FERUE7RUFDSSx5QkFBQTtFQUNBLGNBQUE7QUNDSjs7QURFQTtFQUNJLGlCQUFBO0FDQ0o7O0FER0E7RUFFSSxrQkFBQTtFQUNBLGVBQUE7RUFDQSx5QkFBQTtFQUNBLGdCQUFBO0VBQ0Esb0NBQUE7RUFDQSxZQUFBO0VBQ0EsaUJBQUE7QUNESjs7QURLQTtFQUNJLGtCQUFBO0VBQ0EsWUFBQTtBQ0ZKOztBREtBO0VBQ0ksa0JBQUE7RUFDQSx5QkFBQTtFQUNBLFdBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7RUFDQSx5QkFBQTtFQUNBLFlBQUE7RUFDQSxlQUFBO0FDRko7O0FETUEsWUFBQTs7QUFZQSxnQkFBQTs7QUFZQTtFQUNJLG9DQUFBO0VBQ0EseUJBQUE7RUFDQSx5QkFBQTtBQ3pCSjs7QUQ0QkE7RUFDSSxZQUFBO0FDekJKOztBRDRCQTtFQUNJLHVCQUFBO0VBQ0EsV0FBQTtFQUNBLDhCQUFBO0FDekJKOztBRDZCQTtFQUNJLFdBQUE7QUMxQko7O0FEK0JBO0VBR0ksVUFBQTtBQzlCSjs7QURpQ0E7RUFDSSxtQkFBQTtBQzlCSjs7QURpQ0E7RUFDSSxnQkFBQTtBQzlCSjs7QURrQ0E7RUFDSSxnREFBQTtFQUNBLGlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxrQkFBQTtFQUNBLFlBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZUFBQTtBQy9CSjs7QURrQ0E7RUFDSSxnREFBQTtFQUNBLGlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxrQkFBQTtBQy9CSjs7QURtQ0E7RUFDSSxjQUFBO0VBQ0EsZUFBQTtFQUNBLDRCQUFBO0FDaENKOztBRG1DQTtFQUNJLGNBQUE7RUFDQSxlQUFBO0FDaENKOztBRG9DQTtFQUNJLGVBQUE7QUNqQ0o7O0FEb0NBO0VBQ0kseUJBQUE7RUFDQSxhQUFBO0FDakNKOztBRG9DQTtFQUNJLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsMkJBQUE7QUNqQ0o7O0FEb0NBO0VBQ0kseUJBQUE7QUNqQ0o7O0FEb0NBO0VBQ0ksbUJBQUE7RUFDQSwwQkFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtBQ2pDSjs7QURvQ0E7RUFDSSxnQkFBQTtBQ2pDSjs7QURvQ0E7RUFDSSxZQUFBO0FDakNKIiwiZmlsZSI6InNyYy9hcHAvbW9kYWwvZG9vcnN0ZXAtY2FsbGluZy1kaWFsb2cvZG9vcnN0ZXAtY2FsbGluZy1kaWFsb2cuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIjY2FsbERpYWxvZyB7XG4gICAgYm94LXNoYWRvdzogMCAxcHggMnB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMnB4IDFweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMCAxcHggMXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAxcHggM3B4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHdpZHRoOiAzNSU7XG4gICAgaGVpZ2h0OiA0NTBweDtcbn1cblxuLmNsb3NlLWNvbiB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbnRhYmxlIHtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLmNhbGwtaGVhZGVyIHtcbiAgICBmb250LWZhbWlseTogQm9sZCAxNnB4LzIycHggUm9ib3RvO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBpIHtcbiAgICAgICAgY29sb3I6ICMwMDQ1N2Q7XG4gICAgfVxufVxuXG4ucmVjdDIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQ6ICNlYWVhZWE7XG59XG5cbi5yZWN0MyB7XG4gICAgcGFkZGluZy10b3A6IDI1cHg7XG4gICAgcGFkZGluZy1yaWdodDogMHB4O1xuICAgIHBhZGRpbmctbGVmdDogMHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG59XG5cbi5yZWN0MyAuYnV0dG9uIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgbWFyZ2luLXRvcDogNXB4O1xufVxuXG4ucmVjdDQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMHB4O1xufVxuXG4ubmd4LXRpbWVwaWNrZXItZmllbGQtZXhhbXBsZSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXRvcDogMTVweDtcbn1cblxuLnJlY3Q1IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLnRleHQtcHAge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4uY2FsbC1wb3B1cC1zYXZlIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi5pY29ucyAuZmEtcGhvbmUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDEzNWRlZyk7XG59XG5cbi5pY29ucyAuZmEtbWljcm9waG9uZS1zbGFzaCxcbi5pY29ucyAuZmEtcGhvbmUge1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbn1cblxuLmljb25zIC5idXR0b24ge1xuICAgIG1hcmdpbjogNXB4O1xufVxuXG4uaWNvbnMge1xuICAgIG1hcmdpbi10b3A6IDI1cHg7XG4gICAgcGFkZGluZy1sZWZ0OiAyOSU7XG59XG5cbi5oYW5nLWJ0biB7XG4gICAgY29sb3I6IHJlZCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogcmVkICFpbXBvcnRhbnQ7XG59XG5cbi5jbGFzc3RleHQxIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLnRpbWVzdGFtcCB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4O1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBjb2xvcjogIzAwMDAwMDtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3ZDtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtbGFiZWwtY29udGVudCB7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG59XG5cbi8vc2xpZGluZyBidG5cbi5idG4ge1xuICAgIC8vYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCAjMmUzNjY4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0QgIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEwcHg7XG4gICAgLy9ib3JkZXItcmFkaXVzOiA1cHg7XG59XG5cbi5tYXQtYnV0dG9uIHtcbiAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4uYnRuIHAge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuXG4vKiBzbGlkZXJzICovXG5cbi8vIC5idG46YmVmb3JlIHtcbi8vICAgICBjb250ZW50OiBcIlwiO1xuLy8gICAgIHdpZHRoOiAxMDAlO1xuLy8gICAgIGhlaWdodDogMTAwJTtcbi8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmUzNjY4O1xuLy8gICAgIGNvbG9yOiAjZmZmO1xuLy8gICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuLy8gfVxuXG4vKiBMZWZ0IFNsaWRlciAqL1xuXG4vLyAuYnRuLTI6YmVmb3JlIHtcbi8vICAgICB0b3A6IDA7XG4vLyAgICAgbGVmdDogLTIzMHB4O1xuLy8gfVxuLy8gLmJ0bi0yOmhvdmVyOmJlZm9yZSB7XG4vLyAgICAgbGVmdDogMDtcbi8vIH1cbi8vIC5idG4tMjpob3ZlciB7XG4vLyAgICAgY29sb3I6ICNmZmY7XG4vLyB9XG4uYnRuLTEge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2U2NDI0MyAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNjQyNDM7XG59XG5cbi5idG4tMSBwIHtcbiAgICBtYXJnaW46IGF1dG87XG59XG5cbi5kcm9wZG93bi1wcDEgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICBoZWlnaHQ6IDIxcHggIWltcG9ydGFudDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMHB4ICFpbXBvcnRhbnQ7XG4gICAgLy9saXN0LXN0eWxlLXBvc2l0aW9uOiBpbmhlcml0O1xufVxuXG4uZHJvcGRvd24tcHAxIC5tYXQtZm9ybS1maWVsZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgLy9wYWRkaW5nLXRvcDogNHB4O1xuICAgIC8vbWFyZ2luLXRvcDogOXB4O1xufVxuXG4uZHJvcGRvd24tcHAxIC5uZy1zdGFyLWluc2VydGVkIHtcbiAgICAvL3BhZGRpbmctdG9wOiA0cHg7XG4gICAgLy9tYXJnaW4tdG9wOiA5cHg7XG4gICAgd2lkdGg6IDk5JTtcbn1cblxuLnByb2ZpbGUtcHAxIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMHB4O1xufVxuXG4ucHJvZmlsZS1wcDEgLm1hdC1sYWJlbCB7XG4gICAgcGFkZGluZy10b3A6IDZweDtcbiAgICAvL29wYWNpdHk6IDAuMTtcbn1cblxuLmRyb3Bkb3duLWJvcmRlciB7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZCBzb2xpZCBzb2xpZCBzb2xpZCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBib3JkZXItY29sb3I6IGdyYXk7XG4gICAgaGVpZ2h0OiAyOHB4O1xuICAgIHBhZGRpbmctbGVmdDogOHB4O1xuICAgIHBhZGRpbmctdG9wOiA2cHg7XG4gICAgbWFyZ2luLXRvcDogMHB4O1xufVxuXG4udGV4dGZpZWxkLWJvcmRlciB7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZCBzb2xpZCBzb2xpZCBzb2xpZCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBib3JkZXItY29sb3I6IGdyYXk7XG59XG5cbi8vbWF0LWVycm9yXG5tYXQtZXJyb3Ige1xuICAgIGNvbG9yOiAjZmYwMDAwO1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICBtYXJnaW4tdG9wOiAtMTJweCAhaW1wb3J0YW50O1xufVxuXG4uZXJyb3Ige1xuICAgIGNvbG9yOiAjZmYwMDAwO1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbn1cblxuLy9iYXkgc2xvdHNcbi5iYXkge1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbn1cblxuLmJheS1hcmVhIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5O1xuICAgIHBhZGRpbmc6IDEwcHg7XG59XG5cbi5zbG90IHtcbiAgICBwYWRkaW5nOiA1cHggNXB4O1xuICAgIG1hcmdpbjogMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG59XG5cbi5vY2N1cGllZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U2NDI0Mztcbn1cblxuLmJheS1sYWJlbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICBjb2xvcjogcmdiYSgwLDAsMCwuNTQpO1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xufVxuXG4uYmF5LXRpbWUge1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG59XG5cbi5kYXRldGltZSB7XG4gICAgcGFkZGluZzogNXB4O1xufSIsIiNjYWxsRGlhbG9nIHtcbiAgYm94LXNoYWRvdzogMCAxcHggMnB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMnB4IDFweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMCAxcHggMXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAxcHggM3B4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgcGFkZGluZzogMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB3aWR0aDogMzUlO1xuICBoZWlnaHQ6IDQ1MHB4O1xufVxuXG4uY2xvc2UtY29uIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxudGFibGUge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmNhbGwtaGVhZGVyIHtcbiAgZm9udC1mYW1pbHk6IEJvbGQgMTZweC8yMnB4IFJvYm90bztcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLmNhbGwtaGVhZGVyIGkge1xuICBjb2xvcjogIzAwNDU3ZDtcbn1cblxuLnJlY3QyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICNlYWVhZWE7XG59XG5cbi5yZWN0MyB7XG4gIHBhZGRpbmctdG9wOiAyNXB4O1xuICBwYWRkaW5nLXJpZ2h0OiAwcHg7XG4gIHBhZGRpbmctbGVmdDogMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xufVxuXG4ucmVjdDMgLmJ1dHRvbiB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gIG1hcmdpbi10b3A6IDVweDtcbn1cblxuLnJlY3Q0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgcGFkZGluZy1ib3R0b206IDBweDtcbn1cblxuLm5neC10aW1lcGlja2VyLWZpZWxkLWV4YW1wbGUge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXRvcDogMTVweDtcbn1cblxuLnJlY3Q1IHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4udGV4dC1wcCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uY2FsbC1wb3B1cC1zYXZlIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi5pY29ucyAuZmEtcGhvbmUge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpO1xufVxuXG4uaWNvbnMgLmZhLW1pY3JvcGhvbmUtc2xhc2gsXG4uaWNvbnMgLmZhLXBob25lIHtcbiAgZm9udC1zaXplOiAyNHB4O1xufVxuXG4uaWNvbnMgLmJ1dHRvbiB7XG4gIG1hcmdpbjogNXB4O1xufVxuXG4uaWNvbnMge1xuICBtYXJnaW4tdG9wOiAyNXB4O1xuICBwYWRkaW5nLWxlZnQ6IDI5JTtcbn1cblxuLmhhbmctYnRuIHtcbiAgY29sb3I6IHJlZCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IHJlZCAhaW1wb3J0YW50O1xufVxuXG4uY2xhc3N0ZXh0MSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4udGltZXN0YW1wIHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBtYXJnaW4tbGVmdDogMTBweDtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAge1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgY29sb3I6ICMwMDAwMDA7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdkO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtbGFiZWwtY29udGVudCB7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xufVxuXG4uYnRuIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0QgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBsaW5lLWhlaWdodDogMTBweDtcbn1cblxuLm1hdC1idXR0b24ge1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG4gIGZsb2F0OiByaWdodDtcbn1cblxuLmJ0biBwIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogI2ZmZjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICBtYXJnaW46IGF1dG87XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLyogc2xpZGVycyAqL1xuLyogTGVmdCBTbGlkZXIgKi9cbi5idG4tMSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgY29sb3I6ICNlNjQyNDMgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2U2NDI0Mztcbn1cblxuLmJ0bi0xIHAge1xuICBtYXJnaW46IGF1dG87XG59XG5cbi5kcm9wZG93bi1wcDEgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgaGVpZ2h0OiAyMXB4ICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLWJvdHRvbTogMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5kcm9wZG93bi1wcDEgLm1hdC1mb3JtLWZpZWxkIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5kcm9wZG93bi1wcDEgLm5nLXN0YXItaW5zZXJ0ZWQge1xuICB3aWR0aDogOTklO1xufVxuXG4ucHJvZmlsZS1wcDEgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMHB4O1xufVxuXG4ucHJvZmlsZS1wcDEgLm1hdC1sYWJlbCB7XG4gIHBhZGRpbmctdG9wOiA2cHg7XG59XG5cbi5kcm9wZG93bi1ib3JkZXIge1xuICBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIHNvbGlkIHNvbGlkICFpbXBvcnRhbnQ7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJvcmRlci1jb2xvcjogZ3JheTtcbiAgaGVpZ2h0OiAyOHB4O1xuICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgcGFkZGluZy10b3A6IDZweDtcbiAgbWFyZ2luLXRvcDogMHB4O1xufVxuXG4udGV4dGZpZWxkLWJvcmRlciB7XG4gIGJvcmRlci1zdHlsZTogc29saWQgc29saWQgc29saWQgc29saWQgIWltcG9ydGFudDtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYm9yZGVyLWNvbG9yOiBncmF5O1xufVxuXG5tYXQtZXJyb3Ige1xuICBjb2xvcjogI2ZmMDAwMDtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBtYXJnaW4tdG9wOiAtMTJweCAhaW1wb3J0YW50O1xufVxuXG4uZXJyb3Ige1xuICBjb2xvcjogI2ZmMDAwMDtcbiAgZm9udC1zaXplOiAxMHB4O1xufVxuXG4uYmF5IHtcbiAgZm9udC1zaXplOiAxMHB4O1xufVxuXG4uYmF5LWFyZWEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5O1xuICBwYWRkaW5nOiAxMHB4O1xufVxuXG4uc2xvdCB7XG4gIHBhZGRpbmc6IDVweCA1cHg7XG4gIG1hcmdpbjogMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbn1cblxuLm9jY3VwaWVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2NDI0Mztcbn1cblxuLmJheS1sYWJlbCB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xuICBmb250LXNpemU6IDEwcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5iYXktdGltZSB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG59XG5cbi5kYXRldGltZSB7XG4gIHBhZGRpbmc6IDVweDtcbn0iXX0= */\"","import { Component, OnInit, Input, Output, EventEmitter } from \"@angular/core\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { Router } from \"@angular/router\";\nimport { CommonService } from \"../../core/service/common-service/common.service\";\nimport { DatePipe } from \"@angular/common\";\nimport { interval } from \"rxjs\";\nimport { FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { TimepickerRef } from \"ngx-material-timepicker/src/app/material-timepicker/models/timepicker-ref.interface\";\nimport * as _moment from 'moment';\nimport { DateTimeAdapter, OWL_DATE_TIME_FORMATS, OWL_DATE_TIME_LOCALE } from 'ng-pick-datetime';\nimport { MomentDateTimeAdapter } from 'ng-pick-datetime-moment';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ServicenotrequireDailogComponent } from \"../servicenotrequire-dailog/servicenotrequire-dailog.component\";\nimport { ChartOptions, ChartType, ChartDataSets } from 'chart.js';\nimport { Label } from 'ng2-charts';\nimport { element } from 'protractor';\nimport { SaveCallRecordingParams } from \"src/app/model/save-call-recording-params.model\";\n\nconst moment = (_moment as any).default ? (_moment as any).default : _moment;\n\nexport const MY_CUSTOM_FORMATS = {\n parseInput: 'LL LT',\n fullPickerInput: 'DD-MM-YYYY LT',\n datePickerInput: 'LL',\n timePickerInput: 'LT',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n};\n\n@Component({\n selector: 'app-doorstep-calling-dialog',\n templateUrl: './doorstep-calling-dialog.component.html',\n styleUrls: ['./doorstep-calling-dialog.component.scss'],\n providers: [\n { provide: DateTimeAdapter, useClass: MomentDateTimeAdapter, deps: [OWL_DATE_TIME_LOCALE] },\n { provide: OWL_DATE_TIME_FORMATS, useValue: MY_CUSTOM_FORMATS }\n ],\n})\nexport class DoorstepCallingDialogComponent implements OnInit {\n\n @Input() vinNoList: any[];\n @Input() serviceDetails: any;\n @Input() selectedVin: string;\n @Input() customerNumber: string;\n @Input() custName: string;\n @Input() isCustomerNumber: string;\n @Input() primaryNumber: string;\n // @Input() bookingCount: number;\n // @Input() followupCount: number;\n @Input() division: string;\n @Input() workshopAppointmentFlag: string;\n @Input() ownerSelected: boolean;\n @Output() close: EventEmitter = new EventEmitter();\n @Output() setVinListArray = new EventEmitter();\n @Input() phoneNo: any;\n @Input() cusType: any;\n @Input() custNameForSave: string;\n @Input() serviceCount: number;\n userRoles: string;\n\n constructor(\n private datePipe: DatePipe,\n private commonService: CommonService,\n private router: Router,\n private toastr: ToastrService,\n private dialog: MatDialog,\n ) { }\n\n startTime: any;\n level2selection: any;\n serviceDueDate: any;\n talked: string = \"\";\n creRemark: string = \"\";\n custmerName: string;\n yesResponce: string = \"\";\n noResponce: string = \"\";\n nsReason: string = \"\";\n customerId: string;\n userID: string;\n customerData: any;\n workshop: string = \"\";\n workshopSelected: string = \"\";\n workShops = [];\n selectedWorkShop: string;\n other: string = \"\";\n odometer: string = \"\";\n timer: string;\n today: Date = new Date();\n tomorrow: Date = new Date();\n min: number = 0;\n sec: number = 0;\n callhanged: boolean;\n spinner: boolean;\n disSatSerArr: string[] = [];\n vinNoListArray: string[] = [];\n vehicleInfoArray: any[] = [];\n yesResArr: string[] = [];\n servNotReqArr: string[] = [];\n alreadyServicedArr: string[] = [];\n defaultVin: string;\n vinList: string[] = [];\n responseDropDownData: any;\n level1info = [];\n level1Form: FormGroup;\n level2info = [];\n level2Form: FormGroup;\n level3info = [];\n level3Form: FormGroup;\n level4info = [];\n level4Form: FormGroup;\n level5info = [];\n level5Form: FormGroup;\n callTypeMap = new Map();\n currentDate = new Date();\n serviceInfo: any;\n add: boolean = true;\n resetVinList: boolean = true;\n chassisNo: string;\n submitted: boolean = false;\n formSubmitted: boolean = false;\n showNoRespError: boolean = false;\n milage: any;\n odometerEntry: any;\n serviceHours: any;\n fertCode: any;\n packagelist: any[] = [];\n bookingandResheduleMaxDate: Date = new Date();\n followupandCancleMaxDate: Date = new Date();\n showRemarkError: boolean = false;\n countFlag: boolean = false;\n bookFllowCountFlag: boolean = false;\n vin: string;\n showFleetManError: boolean = false;\n alReadyServicMaxDate: Date = new Date();\n bookingCount: number;\n followupCount: number;\n serviceMintus: any;\n countryCode: string;\n paymentMode: string;\n servicePackage: string;\n userInfo:any;\n \n \n\n @Input(\"timepicker\")\n timePicker: TimepickerRef;\n\n //chart1Bar start\n public chartOptions: ChartOptions = {\n responsive: true,\n tooltips: {\n enabled: false\n },\n scales: {\n xAxes: [\n {\n display: true,\n gridLines: {\n display: true\n },\n ticks: {\n beginAtZero: false,\n fontSize: 10,\n stepSize: 1,\n autoSkip: false\n }\n }\n ],\n yAxes: [{\n display: false,\n gridLines: {\n display: false\n }\n }]\n }\n };\n public chartLabels: any[] = [];\n public chartType: ChartType = 'horizontalBar';\n public chartLegend = false;\n public chartPlugins = [];\n public chartData: any = [];\n\n ngOnInit() {\n this.userInfo = JSON.parse(localStorage.getItem(\"userInfo\") || null)[0];\n this.customerData = JSON.parse(localStorage.getItem(\"customerData\") || null);\n if (\n localStorage.getItem(\"userId\") == null ||\n localStorage.getItem(\"userId\") == undefined\n ) {\n this.router.navigate([\"login\"]);\n }\n this.countryCode = localStorage.getItem(\"countryCode\");\n this.customerId = localStorage.getItem(\"customerId\");\n this.userID = localStorage.getItem(\"userId\");\n this.customerData = JSON.parse(localStorage.getItem(\"customerData\"));\n this.vin = this.customerData.vin;\n this.workshopSelected = localStorage.getItem(\"dealerName\");\n this.custmerName = this.customerData.customerName;\n this.workShops = JSON.parse(localStorage.getItem('workshops'));\n this.selectedWorkShop = (this.workShops && this.workShops.length) ? this.workShops[0].workshopCode : '';\n this.serviceInfo = JSON.parse(localStorage.getItem(\"serviceInfo\"));\n this.userRoles = localStorage.getItem('userRoles');\n this.chassisNo = localStorage.getItem(\"chassisNo\");\n this.serviceDueDate = this.datePipe.transform(\n localStorage.getItem(\"serviceDueDate\"),\n \"yyyy-MM-dd\"\n );\n this.startTime = new Date();\n this.tomorrow.setDate(this.tomorrow.getDate() + 1);\n this.callTypeMap.set(\"Service\", 4);\n this.callTypeMap.set(\"Reminder\", 2);\n this.callTypeMap.set(\"Visit\", 1);\n this.callTypeMap.set(\"No Show\", 3);\n this.level2selection = \"\";\n this.odometerEntry = parseInt(localStorage.getItem(\"milage\")) || 0;\n this.setVinList(this.selectedVin, false);\n this.setYesResponse();\n this.setSerReqArr();\n this.setAlreadyServicedArr();\n this.setDisSatWithPrevSerArr();\n this.setTimer();\n\n this.bookingandResheduleMaxDate.setDate(this.bookingandResheduleMaxDate.getDate() + 15);\n this.followupandCancleMaxDate.setDate(this.followupandCancleMaxDate.getDate() + 15);\n\n if (this.serviceCount >= 0) {\n if (this.serviceCount % 2 == 1) {\n this.serviceHours = 1;\n this.serviceMintus = 30;\n } else {\n this.serviceHours = 4;\n this.serviceMintus = 0;\n }\n }\n }\n\n /**\n * Name: closeDailog\n * purpose: To close Dailog\n */\n closeDailog(): void {\n this.close.emit(null);\n }\n /**\n * Name: onKeydown\n * purpose: To handle onKeydown event\n */\n onKeydown(event) {\n event.preventDefault();\n }\n\n /**\n * Name: setVinList\n * purpose: To set Vin List\n */\n setVinList(defaultVin: any, vehicleChange: boolean): void {\n var vinListStr = Object.values(this.vinNoList);\n vinListStr.forEach(vin => {\n if (vin == defaultVin) {\n this.defaultVin = vin;\n }\n });\n if (this.add == true) {\n for (let i = 0; i < vinListStr.length; i++) {\n this.vinNoListArray.push(vinListStr[i]);\n }\n this.add = false;\n }\n if(this.resetVinList==true){\n this.vinList=[];\n this.vinList.push(this.setDefaultVin());\n this.resetVinList=false;\n }\n }\n\n setDefaultVin(){\n let vin=[];\n this.defaultVin=this.vinNoListArray[0];\n vin.push(this.defaultVin);\n return vin[0];\n }\n\n /**\n * Name: setYesResponse\n * purpose: To set Yes Response\n */\n setYesResponse(): void {\n this.yesResArr.push(\"Book a Service\");\n this.yesResArr.push(\"Call Later\");\n this.yesResArr.push(\"Customer asked to contact Fleed Manager\");\n this.yesResArr.push(\"Service Not Required\");\n }\n\n /**\n * Name: setSerReqArr\n * purpose: To set SerReqArr\n */\n setSerReqArr(): void {\n this.servNotReqArr.push(\"Wrong Odometer Prediction\");\n this.servNotReqArr.push(\"Already Serviced\");\n this.servNotReqArr.push(\"Vehicle Sold\");\n this.servNotReqArr.push(\"Dissatisfied with Previous Service\");\n this.servNotReqArr.push(\"Distance from Dealer Location\");\n this.servNotReqArr.push(\"Dissatisfaction with Sales\");\n this.servNotReqArr.push(\"Dissatisfaction with Insurance\");\n this.servNotReqArr.push(\"Other\");\n this.servNotReqArr.push(\"Customer Not intersted\");\n this.servNotReqArr.push(\n \"Do not Create Calls for this This Truck in Future\"\n );\n }\n\n /**\n * Name: setAlreadyServicedArr\n * purpose: To set Already Serviced Arr\n */\n setAlreadyServicedArr(): void {\n this.alreadyServicedArr.push(\"Service Done at Own Dealer\");\n this.alreadyServicedArr.push(\"*Service Done at Other Dealer\");\n this.alreadyServicedArr.push(\"*Service Done at local workshop\");\n }\n\n /**\n * Name: setDisSatWithPrevSerArr\n * purpose: To set DisSatWithPrevSerArr\n */\n setDisSatWithPrevSerArr() {\n this.disSatSerArr.push(\"High Cost\");\n this.disSatSerArr.push(\"Poor Service\");\n this.disSatSerArr.push(\"Washing, Noise\");\n this.disSatSerArr.push(\"Demanded Repairs\");\n this.disSatSerArr.push(\"Delay in Delivery\");\n this.disSatSerArr.push(\"Problem with Estimate\");\n this.disSatSerArr.push(\"Staff Behaviour\");\n this.disSatSerArr.push(\"Parts Not Available\");\n this.disSatSerArr.push(\"Other\");\n }\n\n /**\n * Name: setTimer\n * purpose: To setTimer\n */\n setTimer() {\n interval(1000).subscribe(x => {\n if (!this.callhanged) {\n this.sec++;\n if (this.sec == 60) {\n this.sec = 0;\n this.min++;\n }\n this.timer = this.min + \":\" + this.sec;\n }\n });\n }\n\n /**\n * Name: callStatus\n * purpose: To check call status\n * @param {string} status - call status\n */\n callStatus(status: string): void {\n this.formSubmitted = false;\n this.showRemarkError = false;\n if (\"101\" == status) {\n this.talked = \"101\";\n this.noResponce = \"\";\n const self = this;\n this.level1Form = undefined;\n this.level1info = [];\n this.level2Form = undefined;\n this.level2info = [];\n this.level3Form = undefined;\n this.level3info = [];\n this.level4Form = undefined;\n this.level4info = [];\n this.level5Form = undefined;\n this.level5info = [];\n this.serviceInfo[this.defaultVin]\n let callType = this.callTypeMap.get(this.serviceInfo[this.defaultVin] && this.serviceInfo[this.defaultVin].callType)\n\n this.commonService.getDoorStepCustomerResponse(callType).subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n let data = res[\"responseData\"];\n if (Object.keys(data['Level2']).length && data['Level2']['201'] && data['Level2']['201'].length) {\n data['Level2']['201'].forEach(element => {\n if (Object.keys(element).length && element.data.length && element.data[0].key && element.data[0].key == '301') {\n element.label = 'Select Workshop';\n }\n });\n }\n if (Object.keys(data['Level2']).length && data['Level2']['210'] && data['Level2']['210'].length) {\n data['Level2']['210'].forEach(element => {\n if (Object.keys(element).length && element.data.length && element.data[0].key && element.data[0].key == '301') {\n element.label = 'Select Workshop';\n }\n });\n }\n if (Object.keys(data['Level2']).length && data['Level2']['211'] && data['Level2']['211'].length) {\n data['Level2']['211'].forEach(element => {\n if (Object.keys(element).length && element.data.length && element.data[0].key && element.data[0].key == '301') {\n element.label = 'Select Workshop';\n }\n });\n }\n if (Object.keys(data['Level2']).length && data['Level2']['212'] && data['Level2']['212'].length) {\n data['Level2']['212'].forEach(element => {\n if (Object.keys(element).length && element.data.length && element.data[0].key && element.data[0].key == '301') {\n element.label = 'Select Workshop';\n }\n });\n }\n if (Object.keys(data['Level2']).length && data['Level2']['212'] && data['Level2']['212'].length) {\n data['Level2']['212'].forEach(element => {\n if (Object.keys(element).length && element.data.length && element.data[0].key && element.data[0].key == '301') {\n element.label = 'Select Workshop';\n element.dataType = \"Dropdown\";\n }\n });\n }\n\n self.responseDropDownData = data;\n this.createLevel1Form(data[\"Level1\"]);\n }\n }, error => {\n this.toastr.error(error, \"Error\");\n this.spinner = false;\n });\n } else {\n this.talked = \"102\";\n this.level1Form = undefined;\n this.level1info = [];\n this.level2Form = undefined;\n this.level2info = [];\n this.level3Form = undefined;\n this.level3info = [];\n this.level4Form = undefined;\n this.level4info = [];\n this.level5Form = undefined;\n this.level5info = [];\n this.yesResponce = \"\";\n this.nsReason = \"\";\n this.workshop = \"\";\n this.odometer = \"\";\n }\n }\n\n /**\n * Name: createLevel1Form\n * purpose: To create Level1 Form\n * @param {any} data - form data\n */\n createLevel1Form(data: any): void {\n this.level2selection=\"\";\n this.paymentMode=\"\";\n this.servicePackage=\"\";\n this.formSubmitted = false;\n this.showRemarkError = false;\n const formDataObj = {};\n for (const prop of data) {\n formDataObj[prop.label] = new FormControl(\"\", [Validators.required]);\n if (prop.dataType == \"Dropdown\") {\n var dropDownData = [];\n // let serviceType = this.serviceDetails.serviceType.split(' - ')[0];\n // let countRemoveFlag: boolean = false;\n // this.countFlag = false;\n // if (serviceType == 'FS1' || serviceType == 'FS2' || serviceType == 'FS3' || serviceType == 'ECS' || serviceType == 'PMS' || serviceType == 'LC') {\n // countRemoveFlag = true;\n // this.countFlag = true;\n // }\n\n prop.data.forEach((element) => {\n dropDownData.push({ value: element.key, viewValue: element.value });\n\n });\n }\n this.level1info.push({\n label: prop.label,\n type: prop.dataType,\n data: prop.dataType === \"Dropdown\" ? dropDownData : prop.data\n });\n }\n this.level1Form = new FormGroup(formDataObj);\n }\n\n /**\n * Name: createLevel2Form\n * purpose: To create Level2 Form\n * @param {any} data - form data\n */\n createLevel2Form(data: any): void {\n this.formSubmitted = false;\n this.showRemarkError = false;\n this.level2Form = undefined;\n this.level2info = [];\n this.level3Form = undefined;\n this.level3info = [];\n this.level4Form = undefined;\n this.level4info = [];\n this.level5Form = undefined;\n this.level5info = [];\n const formDataObj = {};\n let selection = this.level1Form.controls[\"Select Reason\"].value;\n this.level2selection = selection;\n if (data[selection] && data[selection].length) {\n for (const prop of data[selection]) {\n if (prop.dataType == \"Dropdown\") {\n if (prop.data[0].key === \"301\") {\n if (selection == \"211\") {\n let workshopCode = this.serviceDetails.workShop.split(\"/\")[0];\n formDataObj['301'] = new FormControl(workshopCode);\n } else if (selection == \"212\") {\n formDataObj['301'] = new FormControl(\"\", [Validators.required]);\n } else {\n formDataObj['301'] = new FormControl(\"\", Validators.required);\n }\n var dropDownData = [];\n this.workShops.forEach(element => {\n dropDownData.push({ value: element.workshopCode, viewValue: element.workshopName });\n });\n } else {\n formDataObj[prop.label] = new FormControl(\"\", Validators.required);\n var dropDownData = [];\n prop.data.forEach(element => {\n if (!(this.serviceDetails.alreadyServicedFlag == \"N\" && this.serviceDetails.serviceType == \"Technical Campaign Order\" && element.key == \"309\")) {\n dropDownData.push({ value: element.key, viewValue: element.value });\n }\n });\n }\n\n } else if (prop.dataType == \"Date\") {\n if (selection == \"211\") {\n let committedDate = new Date(this.serviceDetails.committedDate);\n formDataObj[prop.data[0].key] = new FormControl(committedDate);\n } else if (selection == \"213\") {\n formDataObj[prop.data[0].key] = new FormControl(\"\", [Validators.required]);\n } else if (selection == \"202\") {\n formDataObj[prop.data[0].key] = new FormControl(\"\", [Validators.required]);\n } else if (selection == \"212\") {\n formDataObj[prop.data[0].key] = new FormControl(\"\", [Validators.required]);\n } else {\n formDataObj[prop.data[0].key] = new FormControl(\"\", [Validators.required]);\n }\n\n } else if (prop.dataType == \"Number\") {\n formDataObj[prop.data[0].key] = new FormControl(\"\", [Validators.minLength(10), Validators.maxLength(10)]);\n } else if (prop.dataType == \"Time\") {\n formDataObj[prop.data[0].key] = new FormControl(\"\");\n } else {\n formDataObj[prop.data[0].key] = new FormControl(\"\");\n }\n this.level2info.push({\n label: prop.label,\n type: prop.dataType,\n data: prop.dataType === \"Dropdown\" ? dropDownData : prop.data\n });\n }\n }\n this.level2Form = new FormGroup(formDataObj);\n }\n\n /**\n * Name: createLevel3Form\n * purpose: To create Level3 Form\n * @param {any} data - form data\n */\n createLevel3Form(data: any): void {\n this.formSubmitted = false;\n this.showRemarkError = false;\n this.level3Form = undefined;\n this.level3info = [];\n this.level4Form = undefined;\n this.level4info = [];\n this.level5Form = undefined;\n this.level5info = [];\n const formDataObj = {};\n var selection = Object.keys(this.level2Form.controls)[0];\n if (data[this.level2Form.controls[selection].value] && data[this.level2Form.controls[selection].value].length) {\n for (const prop of data[this.level2Form.controls[selection].value]) {\n if (prop.dataType == \"Dropdown\") {\n formDataObj[prop.label] = new FormControl(\"\", Validators.required);\n var dropDownData = [];\n prop.data.forEach(element => {\n if (this.countryCode == \"IND91\") {\n if (!(this.serviceDetails.alreadyServicedFlag == \"Y\" && element.key == \"403\")) {\n dropDownData.push({ value: element.key, viewValue: element.value });\n }\n } else {\n dropDownData.push({ value: element.key, viewValue: element.value });\n }\n });\n } else if (prop.dataType == \"Date\") {\n formDataObj[prop.data[0].key] = new FormControl(\"\", Validators.required);\n } else if (prop.dataType == \"Number\") {\n if (prop.data[0].key == \"402\") {\n this.milage = parseInt(localStorage.getItem(\"milage\")) + 1;\n formDataObj[prop.data[0].key] = new FormControl(\"\", [Validators.min(this.milage), Validators.required]);\n } else if (prop.data[0].key == \"407\") {\n formDataObj[prop.data[0].key] = new FormControl(\"\", [Validators.minLength(10), Validators.maxLength(10)]);\n } else {\n formDataObj[prop.data[0].key] = new FormControl(\"\", [Validators.minLength(10), Validators.maxLength(10), Validators.required]);\n }\n } else {\n formDataObj[prop.data[0].key] = new FormControl(\"\");\n }\n this.level3info.push({\n label: prop.label,\n type: prop.dataType,\n data: prop.dataType === \"Dropdown\" ? dropDownData : prop.data\n });\n }\n }\n\n this.level3Form = new FormGroup(formDataObj);\n }\n\n /**\n * Name: createLevel4Form\n * purpose: To create Level4 Form\n * @param {any} data - form data\n */\n createLevel4Form(data: any): void {\n this.formSubmitted = false;\n this.showRemarkError = false;\n this.level4Form = undefined;\n this.level4info = [];\n this.level5Form = undefined;\n this.level5info = [];\n const formDataObj = {};\n if (Object.keys(this.level3Form.controls).indexOf(\"409\") !== -1) {\n var selection = \"409\";\n } else {\n selection = Object.keys(this.level3Form.controls)[0];\n }\n\n if (data[this.level3Form.controls[selection].value] && data[this.level3Form.controls[selection].value].length) {\n for (const prop of data[this.level3Form.controls[selection].value]) {\n if (prop.dataType == \"Dropdown\") {\n formDataObj[prop.label] = new FormControl(\"\", Validators.required);\n var dropDownData = [];\n prop.data.forEach(element => {\n dropDownData.push({ value: element.key, viewValue: element.value });\n });\n } else if (prop.dataType == \"RadioButton\") {\n formDataObj[\"503\"] = new FormControl(\"\", Validators.required);\n } else if (prop.dataType == \"Text\") {\n if (prop.data[0].key == \"502\") {\n formDataObj[prop.data[0].key] = new FormControl(\"\", Validators.required);\n } else {\n formDataObj[prop.data[0].key] = new FormControl(\"\");\n }\n } else if (prop.dataType == \"Date\") {\n formDataObj[prop.data[0].key] = new FormControl(\"\", Validators.required);\n } else if (prop.dataType == \"Number\") {\n if (prop.data[0].key == \"506\") {\n formDataObj[prop.data[0].key] = new FormControl(\"\", [Validators.maxLength(6), Validators.required]);\n } else {\n formDataObj[prop.data[0].key] = new FormControl(\"\", [Validators.minLength(10), Validators.maxLength(10), Validators.required]);\n }\n }\n this.level4info.push({\n label: prop.label,\n type: prop.dataType,\n data: prop.dataType === \"Dropdown\" ? dropDownData : prop.data\n });\n }\n }\n\n this.level4Form = new FormGroup(formDataObj);\n }\n\n /**\n * Name: createLevel5Form\n * purpose: To create Level5 Form\n * @param {any} data - form data\n */\n createLevel5Form(data: any): void {\n this.formSubmitted = false;\n this.showRemarkError = false;\n this.level5Form = undefined;\n this.level5info = [];\n const formDataObj = {};\n var selection = this.level4Form.controls[\"503\"].value;\n if (selection == \"503\" && data[selection] && data[selection].length) {\n for (const prop of data[selection]) {\n if (prop.dataType == \"Dropdown\") {\n formDataObj[prop.label] = new FormControl(\"\", Validators.required);\n var dropDownData = [];\n prop.data.forEach(element => {\n dropDownData.push({ value: element.key, viewValue: element.value });\n });\n }\n else if (prop.dataType == \"Date\") {\n formDataObj[prop.data[0].key] = new FormControl(\"\", Validators.required);\n }\n else if (prop.dataType == \"RadioButton\") {\n formDataObj[\"503\"] = new FormControl(\"\", Validators.required);\n } else if (prop.dataType == \"Number\") {\n formDataObj[prop.data[0].key] = new FormControl(\"\", [Validators.minLength(10), Validators.maxLength(10), Validators.required]);\n } else {\n formDataObj[prop.data[0].key] = new FormControl(\"\");\n }\n this.level5info.push({\n label: prop.label,\n type: prop.dataType,\n data: prop.dataType === \"Dropdown\" ? dropDownData : prop.data\n });\n }\n this.level5Form = new FormGroup(formDataObj);\n }\n }\n\n /**\n * Name: newVehicleClick\n * purpose: To select new vehicle option\n */\n newVehicleClick() {\n this.level3Form.controls[\"409\"].setValue(\"409\");\n this.createLevel4Form(this.responseDropDownData[\"Level4\"]);\n }\n\n /**\n * Name: hasDataError\n * purpose: To check if customer form has any error\n * @param {any} control - form control\n * @return {boolean} flag to determine if form is valid.\n */\n hasDataError(control: any, form: any): boolean {\n let controler = form.controls[control];\n return (\n controler &&\n (this.formSubmitted || controler.touched || controler.dirty) &&\n !controler.valid\n );\n }\n\n /**\n * Name: isSaveEnable\n * purpose: To check if save is unable\n */\n isSaveEnable() {\n if (\n this.workshop != \"\" ||\n this.noResponce != \"\" ||\n this.odometer != \"\" ||\n this.yesResponce == \"Follow-up\" ||\n (this.nsReason != \"\" && this.nsReason != \"Odometer\")\n ) {\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * Name: createLevelWiseData\n * purpose: To create LevelWise Data\n */\n createLevelWiseData() {\n let date1 = \"\";\n var levelResponseData = {};\n\n if (this.level1Form !== undefined) {\n let obj = {};\n Object.keys(this.level1Form.value).filter(data => {\n obj[this.level1Form.value[data]] = this.level1Form.value[data];\n });\n levelResponseData[\"Level1\"] = obj;\n } else {\n levelResponseData[\"Level1\"] = null;\n }\n\n if (this.level2Form !== undefined) {\n let selectedDateTime = this.level2Form.value[302] || this.level2Form.value[308];\n if (this.level2Form.value[302] != null) {\n this.level2Form.value[302] = this.datePipe.transform(\n this.level2Form.value[302],\n \"yyyy-MM-dd\", \"+0000\"\n );\n }\n\n if (this.level2Form.value[308] != null) {\n this.level2Form.value[308] = this.datePipe.transform(\n this.level2Form.value[308],\n \"yyyy-MM-dd\", \"+0000\"\n );\n }\n\n if (this.level2Form.value[302] != null) {\n date1 = this.level2Form.value[302];\n } else if (this.level2Form.value[308] != null) {\n date1 = this.level2Form.value[308];\n }\n\n if (this.level2Form.value[303] != null || selectedDateTime) {\n this.level2Form.value[303] = selectedDateTime;\n this.level2Form.value[303] = this.datePipe.transform(this.level2Form.value[303], \"yyyy-MM-ddTHH:mm:ssZ\", \"+0000\");\n }\n\n if (this.level2Form.value[301] != null) {\n this.level2Form.value[301] = this.level2Form.value[301];\n }\n\n if(this.level2selection=='201')\n this.level2Form.value[320] = this.paymentMode;\n\n let level2formValues = Object.assign({}, this.level2Form.value);\n delete level2formValues[800];\n delete level2formValues[801];\n levelResponseData[\"Level2\"] = level2formValues;\n } else {\n levelResponseData[\"Level2\"] = null;\n }\n\n if (this.level3Form !== undefined) {\n levelResponseData[\"Level3\"] = this.level3Form.value;\n } else {\n levelResponseData[\"Level3\"] = null;\n }\n\n if (this.level4Form !== undefined) {\n var currentDate = this.datePipe.transform(new Date(), \"yyyy-MM-dd\");\n if (this.level4Form.value[501] != null) {\n if (this.level4Form.value[501]['_d'] == null) {\n this.level4Form.value[501] = this.datePipe.transform(this.level4Form.value[501], \"yyyy-MM-dd\");\n }\n if (this.level4Form.value[501] != currentDate) {\n this.level4Form.value[501] = this.datePipe.transform(this.level4Form.value[501]['_d'], \"yyyy-MM-dd\");\n }\n }\n levelResponseData[\"Level4\"] = this.level4Form.value;\n } else {\n levelResponseData[\"Level4\"] = null;\n }\n\n if (this.level5Form !== undefined) {\n levelResponseData[\"Level5\"] = this.level5Form.value;\n } else {\n levelResponseData[\"Level5\"] = null;\n }\n\n return levelResponseData;\n }\n\n /**\n * Name: removeSavedVin\n * purpose: To remove Saved Vin\n */\n removeSavedVin(): void {\n for (const vin of this.vinList) {\n const index: number = this.vinNoListArray.indexOf(vin);\n if (index !== -1) {\n this.vinNoListArray.splice(index, 1);\n }\n }\n this.vinNoList = this.vinNoListArray;\n if (this.vinNoListArray.length == 0) {\n this.closeDailog();\n this.router.navigate([\"doorstep-calling-list\"]);\n } else {\n this.setVinListArray.emit();\n this.resetVinList=true;\n this.setDefaultVin();\n this.serviceDetails = this.serviceInfo[this.defaultVin];\n this.level1Form = undefined;\n this.level1info = [];\n this.level2Form = undefined;\n this.level2info = [];\n this.level3Form = undefined;\n this.level3info = [];\n this.level4Form = undefined;\n this.level4info = [];\n this.level5Form = undefined;\n this.level5info = [];\n this.creRemark = \"\";\n this.submitted = false;\n this.showRemarkError = false;\n this.createLevel1Form(this.responseDropDownData[\"Level1\"]);\n this.setVinList(this.defaultVin,true)\n }\n }\n\n /**\n * Name: sendBookingSMS\n * purpose: To send booking sms\n * @param {boolean} bookingData - booking data\n */\n sendBookingSMS(bookingData: any): void {\n this.spinner = true;\n let bookingDate = this.datePipe.transform(this.level2Form.value[302], \"yyyy-mm-dd\");\n let bookingTime = this.datePipe.transform(this.level2Form.value[303], \"yyyy-MM-ddTHH:mm:ssZ\");\n let callType = this.callTypeMap.get(this.serviceInfo[this.defaultVin].callType);\n let request = {\n bkStatus: (callType == 2 || callType == 1 || callType == 3) ? 'R' : 'B',\n bkTime: bookingTime || '',\n bkdate: bookingDate || '',\n contactNo: this.customerNumber || '',\n custName: this.customerData.customerName || '',\n regNo: this.chassisNo || '',\n vin: bookingData.vin || ''\n }\n this.workShops.forEach(workshop => {\n if (workshop.workshopCode == this.selectedWorkShop) {\n request['wSAddress'] = workshop.workshopAddress || '';\n request['wSManager'] = workshop.contactNo || '';\n }\n });\n this.commonService.sendBookingSMS(request).subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n this.spinner = false;\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n checkFormValidation(): boolean {\n let valid = true;\n if (this.talked == \"102\" && this.noResponce == \"\") {\n valid = false;\n } else if (this.level1Form !== undefined && !this.level1Form.valid) {\n valid = false;\n } else if (this.level2Form !== undefined && !this.level2Form.valid) {\n valid = false;\n } else if (this.level3Form !== undefined && !this.level3Form.valid) {\n valid = false;\n } else if (this.level4Form !== undefined && !this.level4Form.valid) {\n valid = false;\n } else if (this.level5Form !== undefined && !this.level5Form.valid) {\n valid = false;\n }\n if (this.talked == \"101\") {\n if ((!this.creRemark && this.noResponce == \"209\")\n || (!this.creRemark && (this.level1Form && this.level1Form.value['Select Reason'] && this.level1Form.value['Select Reason'] == \"204\")\n && (this.level2Form && this.level2Form.value['Select Reason'] && this.level2Form.value['Select Reason'] == \"315\"))) {\n this.showRemarkError = true;\n valid = false;\n }\n }\n\n\n this.submitted = valid;\n return valid;\n }\n\n /**\n * Name: saveDialData\n * purpose: To save Dial Data\n */\n saveDialData(): void {\n //this.commonService.customerResponse = '';\n this.submitted = true;\n this.formSubmitted = true;\n if (this.checkFormValidation()) {\n this.showNoRespError = false;\n this.showRemarkError = false;\n var levelData = this.createLevelWiseData();\n this.spinner = true;\n this.callhanged = true;\n let data = \"\";\n let customerCallStatus = this.yesResponce;\n if (this.yesResponce == \"\") {\n customerCallStatus = this.noResponce;\n data = this.noResponce;\n }\n if (this.yesResponce == \"Booking\") {\n if (this.workshop == \"Other\") {\n data = this.other;\n } else {\n data = this.workshop;\n }\n }\n\n if (this.yesResponce == \"No Service\") {\n data = this.nsReason;\n if (this.nsReason == \"Odometer\") {\n this.other = this.odometer;\n }\n }\n if(this.talked == \"102\"){\n this.vinList = [];\n this.vinList = Object.values(this.vinNoList);\n }\n let custData = new CustData(\n this.customerId,\n this.startTime,\n new Date(),\n this.talked,\n this.creRemark,\n this.userID,\n levelData,\n this.noResponce,\n this.vinList.join(\";\"),\n this.userID,\n this.cusType,\n this.phoneNo,\n this.custNameForSave,\n this.userRoles,\n this.servicePackage\n );\n let callType = this.serviceInfo[this.defaultVin].callType;\n\n if (this.level1Form !== undefined && levelData['Level1']['204'] == \"204\" && (callType == 'Visit' || callType == 'Reminder')) {\n const dialogRef = this.dialog.open(ServicenotrequireDailogComponent, {\n width: '550px',\n data: {}\n });\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n this.saveCallRecording(custData);\n } else {\n this.submitted = false;\n }\n });\n } else {\n this.saveCallRecording(custData);\n }\n } else if (this.talked == \"102\" && this.noResponce == \"\") {\n this.showNoRespError = true;\n } else if ((!this.creRemark && this.noResponce == \"209\")\n || (!this.creRemark && (this.level1Form && this.level1Form.value['Select Reason'] && this.level1Form.value['Select Reason'] == \"204\")\n && (this.level2Form && this.level2Form.value['Select Reason'] && this.level2Form.value['Select Reason'] == \"315\"))) {\n this.showRemarkError = true;\n }\n }\n\n saveResponse(custResData: any): void {\n this.commonService.saveDoorStepData(custResData).subscribe(\n res => {\n if (res[\"responseCode\"] == 0) {\n this.spinner = false;\n this.submitted = false;\n this.toastr.info(res[\"message\"], \"Success\");\n if (this.talked == \"101\") {\n if (this.customerNumber != this.primaryNumber && this.isCustomerNumber) {\n this.updateNumber();\n }\n this.removeSavedVin();\n } else {\n this.closeDailog();\n this.router.navigate([\"doorstep-calling-list\"]);\n }\n this.formSubmitted = false;\n } else {\n this.submitted = false;\n this.formSubmitted = false;\n this.spinner = false;\n this.toastr.error(res[\"message\"], \"Error\");\n }\n },\n error => {\n this.submitted = false;\n this.formSubmitted = false;\n this.toastr.error(error, \"Error\");\n this.spinner = false;\n }\n );\n }\n\n /**\n * Name: updateNumber\n * purpose: To set customer number\n */\n updateNumber(): void {\n let newName = this.level2Form.value[305];\n this.commonService.updateNumber(this.customerNumber, this.primaryNumber, 'Primary', this.customerId, this.userID, this.custName, newName).subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n this.spinner = false;\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n })\n }\n\n getWorkshopAppointmentFlag(workShopCode: string) {\n //this.chartData = [];\n this.commonService.getWorkshopAppointmentFlag(workShopCode)\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n this.workshopAppointmentFlag = res['responseData'][0].appointmentFlag;\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n\n private saveCallRecording(data:any){\n const URI = localStorage.getItem('exotel_URI')\n const CRE_ID = this.userInfo.userId \n const CUSTOMER_CODE = this.customerData.customerId\n const SOURCE = \"DS\";\n console.log(\"SAVE\" , URI);\n if (URI)\n {\n this.spinner = true;\n \n const callRecordingParams = new SaveCallRecordingParams(CRE_ID,CUSTOMER_CODE,SOURCE,URI)\n this.commonService.saveCallRecording_API(callRecordingParams).subscribe({\n next:(response)=>{\n if (response.responseCode == 0) {\n this.toastr.success(response.message, 'Success')\n this.saveResponse(data);\n }\n else\n {\n this.toastr.error(response.message, 'Error');\n this.submitted = false;\n }\n \n }\n ,error:(error)=>{\n console.log(error);\n this.submitted = false;\n this.spinner = false;\n },\n complete:()=>{\n this.spinner = false;\n \n \n }\n })\n }\n else{\n this.saveResponse(data);\n }\n }\n}\n\nclass CustData {\n customerId: string;\n callStartTime: string;\n callEndTime: string;\n customerContactInd: string;\n customerCallStatus: string;\n creRemark: string;\n userID: string;\n data: string;\n date: string;\n time: string;\n other: string;\n levelData: object;\n responseForNo: string;\n vin: string;\n dealerCode: string;\n customerType: string;\n phoneNo: string;\n customerName: string;\n role: string;\n servicePackage: string\n\n constructor(\n customerId,\n callStartTime,\n callEndTime,\n customerContactInd,\n creRemark,\n userID,\n levelData,\n responseForNo,\n vin,\n dealerCode,\n customerType,\n phoneNo,\n customerName,\n role,\n servicePackage\n ) {\n this.customerId = customerId;\n this.callStartTime = callStartTime;\n this.callEndTime = callEndTime;\n this.customerContactInd = customerContactInd;\n this.creRemark = creRemark;\n this.userID = userID;\n this.levelData = levelData;\n this.responseForNo = responseForNo;\n this.vin = vin;\n this.dealerCode = dealerCode;\n this.customerType = customerType;\n this.phoneNo = phoneNo;\n this.customerName = customerName;\n this.role = role;\n this.servicePackage = servicePackage;\n }\n}","export default \".mat-menu {\\n overflow: hidden;\\n}\\n\\n.mat-tab-nav-bar {\\n background-color: #00457D;\\n height: 30px;\\n}\\n\\n.mat-tab-nav-bar a {\\n color: white;\\n font-size: 14px;\\n padding-bottom: 8px;\\n}\\n\\n.filterdiv {\\n align-items: center;\\n box-sizing: border-box;\\n display: flex;\\n margin-left: 68px;\\n}\\n\\n.droupdown-style {\\n width: 180px;\\n}\\n\\n.droupdown-style1 {\\n width: 175px;\\n margin: 10px;\\n}\\n\\n.droupdown-style2 {\\n width: 564px;\\n}\\n\\n.grid-container {\\n display: grid;\\n grid-template-columns: 1fr 1fr 1fr 1fr;\\n grid-gap: 20px;\\n}\\n\\n.pipeline-header {\\n color: white;\\n font-size: 14px;\\n margin-left: 0px;\\n}\\n\\n.header-container {\\n background: #ffffff;\\n top: 0px;\\n z-index: 100;\\n width: 850px;\\n}\\n\\n.imageVolvo {\\n width: 40%;\\n height: auto;\\n float: left;\\n padding: 5px;\\n padding-left: 20PX;\\n}\\n\\n.working-area {\\n margin-top: 115px;\\n}\\n\\ntable {\\n width: 100%;\\n}\\n\\n.calling-table tr {\\n cursor: pointer;\\n}\\n\\n.table-head-call {\\n background: none;\\n padding-top: 12px;\\n}\\n\\n.button-margin {\\n margin-left: 10px;\\n}\\n\\n.callList {\\n font: Bold 20px Roboto;\\n letter-spacing: 0px;\\n color: #484848;\\n opacity: 1;\\n}\\n\\n.close-con {\\n font-size: 18px;\\n cursor: pointer;\\n top: 3px;\\n right: 1px;\\n position: absolute !important;\\n z-index: 10;\\n opacity: 1;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-infix {\\n border: 1px solid lightgray;\\n border-radius: 5px;\\n background: white;\\n padding: 0;\\n height: 20px;\\n}\\n\\n.filter1 ::ng-deep .mat-select {\\n padding: 4px 0px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-trigger {\\n padding-left: 8px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-value {\\n width: 90% !important;\\n}\\n\\n.filter1 ::ng-deep .mat-button {\\n font-size: 12px;\\n font: white;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label-wrapper {\\n top: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-underline {\\n display: none;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label {\\n top: 0;\\n margin-top: 4px !important;\\n padding-left: 5px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-arrow-wrapper {\\n padding-bottom: 0px;\\n}\\n\\n.filter1 {\\n font-size: 12px;\\n}\\n\\n.filter2 ::ng-deep .mat-form-field-infix {\\n border: 1px solid lightgray;\\n border-radius: 5px;\\n background: white;\\n padding: 0;\\n height: 55px;\\n}\\n\\n.filter2 ::ng-deep .mat-select {\\n padding: 4px 0px;\\n}\\n\\n.filter2 ::ng-deep .mat-select-trigger {\\n padding-left: 8px;\\n}\\n\\n.filter2 ::ng-deep .mat-select-value {\\n width: 90% !important;\\n}\\n\\n.filter2 ::ng-deep .mat-button {\\n font-size: 12px;\\n font: white;\\n}\\n\\n.filter2 ::ng-deep .mat-form-field-label-wrapper {\\n top: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n\\n.filter2 ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 0;\\n}\\n\\n.filter2 ::ng-deep .mat-form-field-underline {\\n display: none;\\n}\\n\\n.filter2 ::ng-deep .mat-form-field-label {\\n top: 0;\\n margin-top: 4px !important;\\n padding-left: 5px;\\n}\\n\\n.filter2 ::ng-deep .mat-select-arrow-wrapper {\\n padding-bottom: 0px;\\n}\\n\\n.filter2 {\\n font-size: 12px;\\n}\\n\\n.filter3 ::ng-deep .mat-form-field-infix {\\n border: 1px solid lightgray;\\n border-radius: 5px;\\n background: white;\\n padding: 0;\\n height: 55px;\\n}\\n\\n.filter3 ::ng-deep .mat-select {\\n padding: 4px 0px;\\n}\\n\\n.filter3 ::ng-deep .mat-select-trigger {\\n padding-left: 8px;\\n}\\n\\n.filter3 ::ng-deep .mat-select-value {\\n width: 90% !important;\\n}\\n\\n.filter3 ::ng-deep .mat-button {\\n font-size: 12px;\\n font: white;\\n}\\n\\n.filter3 ::ng-deep .mat-form-field-label-wrapper {\\n top: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n\\n.filter3 ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 0;\\n}\\n\\n.filter3 ::ng-deep .mat-form-field-underline {\\n display: none;\\n}\\n\\n.filter3 ::ng-deep .mat-form-field-label {\\n top: 0;\\n margin-top: 4px !important;\\n padding-left: 5px;\\n}\\n\\n.filter3 ::ng-deep .mat-select-arrow-wrapper {\\n padding-bottom: 0px;\\n}\\n\\n.filter3 {\\n font-size: 12px;\\n}\\n\\n.filter-label {\\n font: Bold 14px Roboto;\\n letter-spacing: 0px;\\n color: #3c3c3c;\\n opacity: 1;\\n margin-bottom: 5px;\\n}\\n\\n.filter-label1 {\\n font: 12px Roboto;\\n font-weight: bold;\\n letter-spacing: 0px;\\n color: #3c3c3c;\\n opacity: 1;\\n margin-bottom: 3px;\\n padding: 1px 0px 0px;\\n margin-top: 7px;\\n}\\n\\n.refesh-icon {\\n float: right;\\n margin-bottom: -30px;\\n margin-right: 20px;\\n margin-top: 30px;\\n cursor: pointer;\\n}\\n\\n.coloredRow {\\n background: #ffff99;\\n}\\n\\n.coloredGreenRow {\\n background: #90ee90;\\n}\\n\\n.mat-dialog-title {\\n background-color: darkgray;\\n}\\n\\n.callList-right {\\n font-size: 11px;\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.columnHeader {\\n font: Bold 12px Roboto;\\n letter-spacing: 0px;\\n color: #333333;\\n text-transform: capitalize;\\n}\\n\\n.lost {\\n color: #e64243;\\n position: absolute;\\n left: 10px;\\n font-size: 10px;\\n top: 38%;\\n}\\n\\n.inbound {\\n color: #2e3668;\\n position: absolute;\\n left: 0px;\\n font-size: 10px;\\n top: 38%;\\n}\\n\\n.columnvalue {\\n font-size: 14px;\\n position: relative;\\n}\\n\\n.filterButton {\\n color: white !important;\\n background-color: #00457D;\\n height: 20px;\\n line-height: 10px;\\n margin-bottom: 1px;\\n}\\n\\n.serviceDueDate {\\n width: 10% !important;\\n}\\n\\n.followUp {\\n width: 8% !important;\\n}\\n\\ntd.mat-cell,\\ntd.mat-footer-cell,\\nth.mat-header-cell {\\n padding: 10px;\\n border-style: solid none none solid;\\n border-width: 0.1px;\\n border-color: lightgray;\\n}\\n\\n.dataview {\\n margin-left: 5px;\\n margin-top: 3px;\\n}\\n\\n.d-none1 {\\n display: none;\\n}\\n\\n.d-none2 {\\n display: none;\\n}\\n\\n.d-none3 {\\n display: none;\\n}\\n\\n.table-border.mat-table {\\n border-style: none solid solid none;\\n border-color: lightgray;\\n}\\n\\nth.mat-header-cell {\\n background-color: #d9d9d9;\\n}\\n\\n.mat-sort-header-container {\\n justify-content: center !important;\\n}\\n\\n.call-stats-card .mat-card-title {\\n margin-bottom: 0px;\\n}\\n\\n.call-stats-card .call-stats {\\n font-size: 11px;\\n color: #ffffff;\\n}\\n\\n.call-stats-card .call-stats i {\\n color: #2e3668;\\n font-size: 11px;\\n}\\n\\n.call-stats-card .call-stats-title {\\n font-size: 20px;\\n color: #484848;\\n}\\n\\n.call-stats-card1 {\\n padding-top: 0px;\\n}\\n\\n.call-stats-card-border1 {\\n border-style: solid solid none solid;\\n border-width: 1px;\\n border-radius: 0%;\\n border-color: lightgray;\\n}\\n\\n.call-stats-card-border2 {\\n border-style: solid solid solid solid;\\n border-width: 1px;\\n border-radius: 0%;\\n margin-bottom: 15px;\\n border-color: lightgray;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-group {\\n border-radius: 0px;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle {\\n background-color: #ffffff;\\n color: #5482BC;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-checked {\\n background-color: #5482BC;\\n color: #ffffff;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-label-content {\\n line-height: 30px;\\n font: Regular 14px Roboto;\\n letter-spacing: 0px;\\n}\\n\\n.toggle-btn-grp ::ng-deep .refresh-btn.mat-button {\\n min-width: auto;\\n}\\n\\n.refresh-btn {\\n background-color: #ffffff;\\n color: #e64243;\\n border: 1px solid #e64243;\\n border-radius: 0px;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-flex {\\n border: 1px solid lightgray;\\n border-radius: 3px;\\n background: white;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-label {\\n padding-left: 10px;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-infix {\\n border-top: none;\\n}\\n\\n.textboxService ::ng-deep label.mat-form-field-label {\\n margin-top: 8px !important;\\n}\\n\\n.textboxService ::ng-deep input.mat-input-element {\\n margin-top: 0.6em;\\n margin-left: 10px;\\n}\\n\\n.search-icon {\\n position: absolute;\\n right: 15px;\\n top: 15px;\\n}\\n\\n.backColor {\\n background-color: #00457D !important;\\n font-size: 12px;\\n}\\n\\n.box-size {\\n margin-left: 10px;\\n margin-top: 7px;\\n width: 28px;\\n height: 28px;\\n color: #ffffff !important;\\n}\\n\\n.box-size1 {\\n margin-left: 10px;\\n margin-top: 10px;\\n width: 22px;\\n height: 22px;\\n color: #ffffff !important;\\n}\\n\\n.backColor1 {\\n background-color: #5482BC !important;\\n font-size: 12px;\\n}\\n\\n.call-stats-value {\\n margin-left: 50px;\\n font-size: 18px;\\n}\\n\\n.call-stats-value1 {\\n margin-left: 30px;\\n font-size: 18px;\\n}\\n\\n.info-circle-size {\\n font-size: 12px !important;\\n color: #ffffff !important;\\n}\\n\\n.flex-set {\\n margin-top: 7px;\\n margin-left: 15px;\\n}\\n\\n.flex-set1 {\\n margin-top: 7px;\\n margin-left: 25px;\\n}\\n\\n.dueDateIcon {\\n height: 9px;\\n width: 11px;\\n}\\n\\n.droupdown-style {\\n width: 200px;\\n margin: 10px;\\n}\\n\\n.value-list1 hr {\\n border-top: 1px solid lightgrey;\\n margin: 5px 0px;\\n width: 100%;\\n}\\n\\n.value-list1 span {\\n margin-left: 5px;\\n padding-left: 5px;\\n margin-top: 3px;\\n font-size: 12px;\\n}\\n\\n.margin-left {\\n padding-left: 10px;\\n}\\n\\n.paginator ::ng-deep .mat-form-field-infix {\\n height: 18px !important;\\n padding-bottom: 0px;\\n}\\n\\n.followUp {\\n width: 9% !important;\\n}\\n\\n.lastCall {\\n width: 9% !important;\\n}\\n\\n.mat-option {\\n font-size: 13px;\\n}\\n\\n.fontClassBold {\\n font-size: 13px;\\n}\\n\\n.enquiryButton {\\n color: white !important;\\n background-color: #00457D;\\n margin-left: 310px;\\n}\\n\\n.filter-label {\\n font: Bold 12px Roboto;\\n letter-spacing: 0px;\\n color: #3c3c3c;\\n opacity: 1;\\n margin-bottom: 3px;\\n padding: 1px 4px 0px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9tb2RhbC9sZWFkLXN0YXR1cy1kaWFsb2cvbGVhZC1zdGF0dXMtZGlhbG9nLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9tb2RhbC9sZWFkLXN0YXR1cy1kaWFsb2cvbGVhZC1zdGF0dXMtZGlhbG9nLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksZ0JBQUE7QUNDSjs7QURDQTtFQUNJLHlCQUFBO0VBQ0EsWUFBQTtBQ0VKOztBRENBO0VBQ0ksWUFBQTtFQUNBLGVBQUE7RUFDQSxtQkFBQTtBQ0VKOztBREFBO0VBQ0ksbUJBQUE7RUFDQSxzQkFBQTtFQUNBLGFBQUE7RUFDQSxpQkFBQTtBQ0dKOztBRERBO0VBQ0ksWUFBQTtBQ0lKOztBRERBO0VBQ0ksWUFBQTtFQUNBLFlBQUE7QUNJSjs7QUREQTtFQUNJLFlBQUE7QUNJSjs7QUREQTtFQUNJLGFBQUE7RUFDQSxzQ0FBQTtFQUNBLGNBQUE7QUNJSjs7QUREQTtFQUNJLFlBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7QUNJSjs7QURGQTtFQUNJLG1CQUFBO0VBRUEsUUFBQTtFQUNBLFlBQUE7RUFDQSxZQUFBO0FDSUo7O0FEREE7RUFDSSxVQUFBO0VBQ0EsWUFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7QUNJSjs7QUREQTtFQUNJLGlCQUFBO0FDSUo7O0FEREE7RUFDSSxXQUFBO0FDSUo7O0FEREE7RUFDSSxlQUFBO0FDSUo7O0FEREE7RUFDSSxnQkFBQTtFQUNBLGlCQUFBO0FDSUo7O0FEREE7RUFDSSxpQkFBQTtBQ0lKOztBRERBO0VBQ0ksc0JBQUE7RUFDQSxtQkFBQTtFQUNBLGNBQUE7RUFDQSxVQUFBO0FDSUo7O0FEREE7RUFDSSxlQUFBO0VBQ0EsZUFBQTtFQUNBLFFBQUE7RUFDQSxVQUFBO0VBQ0EsNkJBQUE7RUFDQSxXQUFBO0VBQ0EsVUFBQTtBQ0lKOztBRERBO0VBQ0ksMkJBQUE7RUFDQSxrQkFBQTtF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QTtBQ1JKOztBRFdBO0VBQ0ksaUJBQUE7RUFDQSxlQUFBO0FDUko7O0FEV0E7RUFDSSwwQkFBQTtFQUNBLHlCQUFBO0FDUko7O0FEV0E7RUFDSSxlQUFBO0VBQ0EsaUJBQUE7QUNSSjs7QURXQTtFQUNJLGVBQUE7RUFDQSxpQkFBQTtBQ1JKOztBRFdBO0VBQ0ksV0FBQTtFQUNBLFdBQUE7QUNSSjs7QURXQTtFQUNJLFlBQUE7RUFDQSxZQUFBO0FDUko7O0FEWUk7RUFDSSwrQkFBQTtFQUNBLGVBQUE7RUFDQSxXQUFBO0FDVFI7O0FEV0k7RUFDSSxnQkFBQTtFQUNBLGlCQUFBO0VBQ0EsZUFBQTtFQUNBLGVBQUE7QUNUUjs7QURhQTtFQUNJLGtCQUFBO0FDVko7O0FEYUE7RUFDSSx1QkFBQTtFQUNBLG1CQUFBO0FDVko7O0FEYUE7RUFDSSxvQkFBQTtBQ1ZKOztBRGFBO0VBQ0ksb0JBQUE7QUNWSjs7QURhQTtFQUNJLGVBQUE7QUNWSjs7QURjQTtFQUNJLGVBQUE7QUNYSjs7QURjQTtFQUNJLHVCQUFBO0VBQ0EseUJBQUE7RUFFQSxrQkFBQTtBQ1pKOztBRGVFO0VBQ0Usc0JBQUE7RUFDQSxtQkFBQTtFQUNBLGNBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7RUFDQSxvQkFBQTtBQ1pKIiwiZmlsZSI6InNyYy9hcHAvbW9kYWwvbGVhZC1zdGF0dXMtZGlhbG9nL2xlYWQtc3RhdHVzLWRpYWxvZy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5tYXQtbWVudXtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLm1hdC10YWItbmF2LWJhciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RDtcbiAgICBoZWlnaHQ6IDMwcHg7XG5cbn1cbi5tYXQtdGFiLW5hdi1iYXIgYSB7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogOHB4O1xufVxuLmZpbHRlcmRpdiB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luLWxlZnQ6NjhweDtcbn1cbi5kcm91cGRvd24tc3R5bGUge1xuICAgIHdpZHRoOiAxODBweDtcbn1cblxuLmRyb3VwZG93bi1zdHlsZTEge1xuICAgIHdpZHRoOiAxNzVweDtcbiAgICBtYXJnaW46IDEwcHg7XG59XG5cbi5kcm91cGRvd24tc3R5bGUye1xuICAgIHdpZHRoOiA1NjRweDtcbn1cblxuLmdyaWQtY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnIgMWZyO1xuICAgIGdyaWQtZ2FwOiAyMHB4O1xufVxuXG4ucGlwZWxpbmUtaGVhZGVye1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbWFyZ2luLWxlZnQ6MHB4O1xuIH1cbi5oZWFkZXItY29udGFpbmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgLy8gcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMHB4O1xuICAgIHotaW5kZXg6IDEwMDtcbiAgICB3aWR0aDo4NTBweDtcblxufVxuLmltYWdlVm9sdm8ge1xuICAgIHdpZHRoOiA0MCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDIwUFg7XG59XG5cbi53b3JraW5nLWFyZWEge1xuICAgIG1hcmdpbi10b3A6IDExNXB4O1xufVxuXG50YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5jYWxsaW5nLXRhYmxlIHRyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi50YWJsZS1oZWFkLWNhbGwge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgcGFkZGluZy10b3A6IDEycHg7XG59XG5cbi5idXR0b24tbWFyZ2luIHtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbn1cblxuLmNhbGxMaXN0IHtcbiAgICBmb250OiBCb2xkIDIwcHggUm9ib3RvO1xuICAgIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gICAgY29sb3I6ICM0ODQ4NDg7XG4gICAgb3BhY2l0eTogMTtcbn1cblxuLmNsb3NlLWNvbiB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0b3A6IDNweDtcbiAgICByaWdodDogMXB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICAgIHotaW5kZXg6IDEwO1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgcGFkZGluZzogMDtcbiAgICBoZWlnaHQ6IDIwcHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdCB7XG4gICAgcGFkZGluZzogNHB4IDBweDtcbiAgICAvL3dpZHRoOiA5MCUgIWltcG9ydGFudDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICAgIHBhZGRpbmctbGVmdDogOHB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdmFsdWUge1xuICAgIHdpZHRoOiA5MCUgIWltcG9ydGFudDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtYnV0dG9uIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udDogd2hpdGU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gICAgdG9wOiAwO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgdG9wOiAwO1xuICAgIG1hcmdpbi10b3A6IDRweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctbGVmdDogNXB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtYXJyb3ctd3JhcHBlciB7XG4gICAgcGFkZGluZy1ib3R0b206IDBweDtcbn1cblxuLmZpbHRlcjEge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmZpbHRlcjIgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGhlaWdodDogNTVweDtcbn1cblxuLmZpbHRlcjIgOjpuZy1kZWVwIC5tYXQtc2VsZWN0IHtcbiAgICBwYWRkaW5nOiA0cHggMHB4O1xuICAgIC8vd2lkdGg6IDkwJSAhaW1wb3J0YW50O1xufVxuXG4uZmlsdGVyMiA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gICAgcGFkZGluZy1sZWZ0OiA4cHg7XG59XG5cbi5maWx0ZXIyIDo6bmctZGVlcCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gICAgd2lkdGg6IDkwJSAhaW1wb3J0YW50O1xufVxuXG4uZmlsdGVyMiA6Om5nLWRlZXAgLm1hdC1idXR0b24ge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250OiB3aGl0ZTtcbn1cblxuLmZpbHRlcjIgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIHtcbiAgICB0b3A6IDA7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXIyIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXIyIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uZmlsdGVyMiA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICB0b3A6IDA7XG4gICAgbWFyZ2luLXRvcDogNHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XG59XG5cbi5maWx0ZXIyIDo6bmctZGVlcCAubWF0LXNlbGVjdC1hcnJvdy13cmFwcGVyIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMHB4O1xufVxuXG4uZmlsdGVyMiB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uZmlsdGVyMyA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgaGVpZ2h0OiA1NXB4O1xufVxuXG4uZmlsdGVyMyA6Om5nLWRlZXAgLm1hdC1zZWxlY3Qge1xuICAgIHBhZGRpbmc6IDRweCAwcHg7XG4gICAgLy93aWR0aDogOTAlICFpbXBvcnRhbnQ7XG59XG5cbi5maWx0ZXIzIDo6bmctZGVlcCAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbn1cblxuLmZpbHRlcjMgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgICB3aWR0aDogOTAlICFpbXBvcnRhbnQ7XG59XG5cbi5maWx0ZXIzIDo6bmctZGVlcCAubWF0LWJ1dHRvbiB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQ6IHdoaXRlO1xufVxuXG4uZmlsdGVyMyA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIge1xuICAgIHRvcDogMDtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjMgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjMgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5maWx0ZXIzIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIHRvcDogMDtcbiAgICBtYXJnaW4tdG9wOiA0cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbn1cblxuLmZpbHRlcjMgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LWFycm93LXdyYXBwZXIge1xuICAgIHBhZGRpbmctYm90dG9tOiAwcHg7XG59XG5cbi5maWx0ZXIzIHtcbiAgICBmb250LXNpemU6IDEycHg7XG59XG5cblxuLmZpbHRlci1sYWJlbCB7XG4gICAgZm9udDogQm9sZCAxNHB4IFJvYm90bztcbiAgICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICAgIGNvbG9yOiAjM2MzYzNjO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuXG4uZmlsdGVyLWxhYmVsMSB7XG4gICAgZm9udDogMTJweCBSb2JvdG87XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgICBjb2xvcjogIzNjM2MzYztcbiAgICBvcGFjaXR5OiAxO1xuICAgIG1hcmdpbi1ib3R0b206IDNweDtcbiAgICBwYWRkaW5nOiAxcHggMHB4IDBweDtcbiAgICBtYXJnaW4tdG9wOiA3cHg7XG5cbn1cblxuXG4ucmVmZXNoLWljb24ge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tYm90dG9tOiAtMzBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gICAgbWFyZ2luLXRvcDogMzBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5jb2xvcmVkUm93IHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZjk5O1xufVxuXG4uY29sb3JlZEdyZWVuUm93IHtcbiAgICBiYWNrZ3JvdW5kOiAjOTBlZTkwO1xufVxuXG4ubWF0LWRpYWxvZy10aXRsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2dyYXk7XG59XG5cbi5jYWxsTGlzdC1yaWdodCB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuXG4uY29sdW1uSGVhZGVyIHtcbiAgICBmb250OiBCb2xkIDEycHggUm9ib3RvO1xuICAgIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gICAgY29sb3I6ICMzMzMzMzM7XG4gICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG59XG5cbi5sb3N0IHtcbiAgICBjb2xvcjogI2U2NDI0MztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMTBweDtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgdG9wOiAzOCU7XG59XG5cbi5pbmJvdW5kIHtcbiAgICBjb2xvcjogIzJlMzY2ODtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMHB4O1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICB0b3A6IDM4JTtcbn1cblxuLmNvbHVtbnZhbHVlIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZmlsdGVyQnV0dG9uIHtcbiAgICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEO1xuICAgIGhlaWdodDogMjBweDtcbiAgICBsaW5lLWhlaWdodDogMTBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxcHg7XG59XG5cbi5zZXJ2aWNlRHVlRGF0ZSB7XG4gICAgd2lkdGg6IDEwJSAhaW1wb3J0YW50O1xufVxuXG4uZm9sbG93VXAge1xuICAgIHdpZHRoOiA4JSAhaW1wb3J0YW50O1xufVxuXG50ZC5tYXQtY2VsbCxcbnRkLm1hdC1mb290ZXItY2VsbCxcbnRoLm1hdC1oZWFkZXItY2VsbCB7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkIG5vbmUgbm9uZSBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDAuMXB4O1xuICAgIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4uZGF0YXZpZXd7XG4gICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICBtYXJnaW4tdG9wOiAzcHg7XG59XG5cbi5kLW5vbmUxe1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5kLW5vbmUye1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5kLW5vbmUze1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi50YWJsZS1ib3JkZXIubWF0LXRhYmxlIHtcbiAgICBib3JkZXItc3R5bGU6IG5vbmUgc29saWQgc29saWQgbm9uZTtcbiAgICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxudGgubWF0LWhlYWRlci1jZWxsIHtcbiAgICAvL2p1c3RpZnktc2VsZjogY2VudGVyO1xuICAgIC8vdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIC8vZGlzcGxheTogZmxleDtcbiAgICAvL2p1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkOWQ5ZDk7XG59XG5cbi5tYXQtc29ydC1oZWFkZXItY29udGFpbmVyIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50O1xufVxuXG4uY2FsbC1zdGF0cy1jYXJkIHtcbiAgICAubWF0LWNhcmQtdGl0bGUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgfVxuICAgIC5jYWxsLXN0YXRzIHtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgaSB7XG4gICAgICAgICAgICBjb2xvcjogIzJlMzY2ODtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuY2FsbC1zdGF0cy10aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgY29sb3I6ICM0ODQ4NDg7XG4gICAgfVxufVxuXG4uY2FsbC1zdGF0cy1jYXJkMSB7XG4gICAgcGFkZGluZy10b3A6IDBweDtcbn1cblxuLmNhbGwtc3RhdHMtY2FyZC1ib3JkZXIxIHtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIG5vbmUgc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMCU7XG4gICAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG59XG5cbi5jYWxsLXN0YXRzLWNhcmQtYm9yZGVyMiB7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZCBzb2xpZCBzb2xpZCBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDFweDtcbiAgICBib3JkZXItcmFkaXVzOiAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4O1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBjb2xvcjogIzU0ODJCQztcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzU0ODJCQztcbiAgICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtbGFiZWwtY29udGVudCB7XG4gICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgZm9udDogUmVndWxhciAxNHB4IFJvYm90bztcbiAgICBsZXR0ZXItc3BhY2luZzogMHB4O1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5yZWZyZXNoLWJ0bi5tYXQtYnV0dG9uIHtcbiAgICBtaW4td2lkdGg6IGF1dG87XG59XG5cbi5yZWZyZXNoLWJ0biB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBjb2xvcjogI2U2NDI0MztcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTY0MjQzO1xuICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgIGJvcmRlci10b3A6IG5vbmU7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgbGFiZWwubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIG1hcmdpbi10b3A6IDhweCAhaW1wb3J0YW50O1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIGlucHV0Lm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgICBtYXJnaW4tdG9wOiAwLjZlbTtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbn1cblxuLnNlYXJjaC1pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDE1cHg7XG4gICAgdG9wOiAxNXB4O1xufVxuXG4uYmFja0NvbG9yIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uYm94LXNpemUge1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIG1hcmdpbi10b3A6IDdweDtcbiAgICB3aWR0aDogMjhweDtcbiAgICBoZWlnaHQ6IDI4cHg7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuLmJveC1zaXplMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICB3aWR0aDogMjJweDtcbiAgICBoZWlnaHQ6IDIycHg7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuLmJhY2tDb2xvcjEge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM1NDgyQkMgIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IDEycHg7XG59XG5cbi5jYWxsLXN0YXRzLXZhbHVlIHtcbiAgICBtYXJnaW4tbGVmdDogNTBweDtcbiAgICBmb250LXNpemU6IDE4cHg7XG59XG5cbi5jYWxsLXN0YXRzLXZhbHVlMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDMwcHg7XG4gICAgZm9udC1zaXplOiAxOHB4O1xufVxuXG4uaW5mby1jaXJjbGUtc2l6ZSB7XG4gICAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuLmZsZXgtc2V0IHtcbiAgICBtYXJnaW4tdG9wOiA3cHg7XG4gICAgbWFyZ2luLWxlZnQ6IDE1cHg7XG59XG5cbi5mbGV4LXNldDEge1xuICAgIG1hcmdpbi10b3A6IDdweDtcbiAgICBtYXJnaW4tbGVmdDogMjVweDtcbn1cblxuLmR1ZURhdGVJY29uIHtcbiAgICBoZWlnaHQ6IDlweDtcbiAgICB3aWR0aDogMTFweDtcbn1cblxuLmRyb3VwZG93bi1zdHlsZSB7XG4gICAgd2lkdGg6IDIwMHB4O1xuICAgIG1hcmdpbjogMTBweDtcbn1cblxuLnZhbHVlLWxpc3QxIHtcbiAgICBociB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCBsaWdodGdyZXk7XG4gICAgICAgIG1hcmdpbjogNXB4IDBweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICAgIHNwYW4ge1xuICAgICAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgICAgICAgbWFyZ2luLXRvcDogM3B4O1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgfVxufVxuXG4ubWFyZ2luLWxlZnQge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbn1cblxuLnBhZ2luYXRvciA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICBoZWlnaHQ6IDE4cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMHB4O1xufVxuXG4uZm9sbG93VXAge1xuICAgIHdpZHRoOiA5JSAhaW1wb3J0YW50O1xufVxuXG4ubGFzdENhbGwge1xuICAgIHdpZHRoOiA5JSAhaW1wb3J0YW50O1xufVxuXG4ubWF0LW9wdGlvbntcbiAgICBmb250LXNpemU6IDEzcHg7XG5cbn1cblxuLmZvbnRDbGFzc0JvbGR7XG4gICAgZm9udC1zaXplOiAxM3B4O1xufVxuXG4uZW5xdWlyeUJ1dHRvbntcbiAgICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEO1xuICAgIC8vbWFyZ2luLXRvcDogMTMwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDMxMHB4XG59XG5cbiAgLmZpbHRlci1sYWJlbCB7XG4gICAgZm9udDogQm9sZCAxMnB4IFJvYm90bztcbiAgICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICAgIGNvbG9yOiAjM2MzYzNjO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICAgIHBhZGRpbmc6IDFweCA0cHggMHB4O1xufVxuIiwiLm1hdC1tZW51IHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm1hdC10YWItbmF2LWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0Q7XG4gIGhlaWdodDogMzBweDtcbn1cblxuLm1hdC10YWItbmF2LWJhciBhIHtcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LXNpemU6IDE0cHg7XG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XG59XG5cbi5maWx0ZXJkaXYge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW4tbGVmdDogNjhweDtcbn1cblxuLmRyb3VwZG93bi1zdHlsZSB7XG4gIHdpZHRoOiAxODBweDtcbn1cblxuLmRyb3VwZG93bi1zdHlsZTEge1xuICB3aWR0aDogMTc1cHg7XG4gIG1hcmdpbjogMTBweDtcbn1cblxuLmRyb3VwZG93bi1zdHlsZTIge1xuICB3aWR0aDogNTY0cHg7XG59XG5cbi5ncmlkLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnIgMWZyO1xuICBncmlkLWdhcDogMjBweDtcbn1cblxuLnBpcGVsaW5lLWhlYWRlciB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBtYXJnaW4tbGVmdDogMHB4O1xufVxuXG4uaGVhZGVyLWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIHRvcDogMHB4O1xuICB6LWluZGV4OiAxMDA7XG4gIHdpZHRoOiA4NTBweDtcbn1cblxuLmltYWdlVm9sdm8ge1xuICB3aWR0aDogNDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nOiA1cHg7XG4gIHBhZGRpbmctbGVmdDogMjBQWDtcbn1cblxuLndvcmtpbmctYXJlYSB7XG4gIG1hcmdpbi10b3A6IDExNXB4O1xufVxuXG50YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uY2FsbGluZy10YWJsZSB0ciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnRhYmxlLWhlYWQtY2FsbCB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIHBhZGRpbmctdG9wOiAxMnB4O1xufVxuXG4uYnV0dG9uLW1hcmdpbiB7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuXG4uY2FsbExpc3Qge1xuICBmb250OiBCb2xkIDIwcHggUm9ib3RvO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICBjb2xvcjogIzQ4NDg0ODtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmNsb3NlLWNvbiB7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0b3A6IDNweDtcbiAgcmlnaHQ6IDFweDtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHotaW5kZXg6IDEwO1xuICBvcGFjaXR5OiAxO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBwYWRkaW5nOiAwO1xuICBoZWlnaHQ6IDIwcHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdCB7XG4gIHBhZGRpbmc6IDRweCAwcHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gIHdpZHRoOiA5MCUgIWltcG9ydGFudDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtYnV0dG9uIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250OiB3aGl0ZTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIHtcbiAgdG9wOiAwO1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0b3A6IDA7XG4gIG1hcmdpbi10b3A6IDRweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LWFycm93LXdyYXBwZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMHB4O1xufVxuXG4uZmlsdGVyMSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmZpbHRlcjIgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgcGFkZGluZzogMDtcbiAgaGVpZ2h0OiA1NXB4O1xufVxuXG4uZmlsdGVyMiA6Om5nLWRlZXAgLm1hdC1zZWxlY3Qge1xuICBwYWRkaW5nOiA0cHggMHB4O1xufVxuXG4uZmlsdGVyMiA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gIHBhZGRpbmctbGVmdDogOHB4O1xufVxuXG4uZmlsdGVyMiA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdmFsdWUge1xuICB3aWR0aDogOTAlICFpbXBvcnRhbnQ7XG59XG5cbi5maWx0ZXIyIDo6bmctZGVlcCAubWF0LWJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udDogd2hpdGU7XG59XG5cbi5maWx0ZXIyIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gIHRvcDogMDtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMiA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjIgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZmlsdGVyMiA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdG9wOiAwO1xuICBtYXJnaW4tdG9wOiA0cHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG59XG5cbi5maWx0ZXIyIDo6bmctZGVlcCAubWF0LXNlbGVjdC1hcnJvdy13cmFwcGVyIHtcbiAgcGFkZGluZy1ib3R0b206IDBweDtcbn1cblxuLmZpbHRlcjIge1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5maWx0ZXIzIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIHBhZGRpbmc6IDA7XG4gIGhlaWdodDogNTVweDtcbn1cblxuLmZpbHRlcjMgOjpuZy1kZWVwIC5tYXQtc2VsZWN0IHtcbiAgcGFkZGluZzogNHB4IDBweDtcbn1cblxuLmZpbHRlcjMgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICBwYWRkaW5nLWxlZnQ6IDhweDtcbn1cblxuLmZpbHRlcjMgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgd2lkdGg6IDkwJSAhaW1wb3J0YW50O1xufVxuXG4uZmlsdGVyMyA6Om5nLWRlZXAgLm1hdC1idXR0b24ge1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQ6IHdoaXRlO1xufVxuXG4uZmlsdGVyMyA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIge1xuICB0b3A6IDA7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjMgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXIzIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmZpbHRlcjMgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRvcDogMDtcbiAgbWFyZ2luLXRvcDogNHB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xufVxuXG4uZmlsdGVyMyA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtYXJyb3ctd3JhcHBlciB7XG4gIHBhZGRpbmctYm90dG9tOiAwcHg7XG59XG5cbi5maWx0ZXIzIHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uZmlsdGVyLWxhYmVsIHtcbiAgZm9udDogQm9sZCAxNHB4IFJvYm90bztcbiAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgY29sb3I6ICMzYzNjM2M7XG4gIG9wYWNpdHk6IDE7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cblxuLmZpbHRlci1sYWJlbDEge1xuICBmb250OiAxMnB4IFJvYm90bztcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gIGNvbG9yOiAjM2MzYzNjO1xuICBvcGFjaXR5OiAxO1xuICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gIHBhZGRpbmc6IDFweCAwcHggMHB4O1xuICBtYXJnaW4tdG9wOiA3cHg7XG59XG5cbi5yZWZlc2gtaWNvbiB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLWJvdHRvbTogLTMwcHg7XG4gIG1hcmdpbi1yaWdodDogMjBweDtcbiAgbWFyZ2luLXRvcDogMzBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uY29sb3JlZFJvdyB7XG4gIGJhY2tncm91bmQ6ICNmZmZmOTk7XG59XG5cbi5jb2xvcmVkR3JlZW5Sb3cge1xuICBiYWNrZ3JvdW5kOiAjOTBlZTkwO1xufVxuXG4ubWF0LWRpYWxvZy10aXRsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IGRhcmtncmF5O1xufVxuXG4uY2FsbExpc3QtcmlnaHQge1xuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuXG4uY29sdW1uSGVhZGVyIHtcbiAgZm9udDogQm9sZCAxMnB4IFJvYm90bztcbiAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xufVxuXG4ubG9zdCB7XG4gIGNvbG9yOiAjZTY0MjQzO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgdG9wOiAzOCU7XG59XG5cbi5pbmJvdW5kIHtcbiAgY29sb3I6ICMyZTM2Njg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMHB4O1xuICBmb250LXNpemU6IDEwcHg7XG4gIHRvcDogMzglO1xufVxuXG4uY29sdW1udmFsdWUge1xuICBmb250LXNpemU6IDE0cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmZpbHRlckJ1dHRvbiB7XG4gIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEO1xuICBoZWlnaHQ6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxcHg7XG59XG5cbi5zZXJ2aWNlRHVlRGF0ZSB7XG4gIHdpZHRoOiAxMCUgIWltcG9ydGFudDtcbn1cblxuLmZvbGxvd1VwIHtcbiAgd2lkdGg6IDglICFpbXBvcnRhbnQ7XG59XG5cbnRkLm1hdC1jZWxsLFxudGQubWF0LWZvb3Rlci1jZWxsLFxudGgubWF0LWhlYWRlci1jZWxsIHtcbiAgcGFkZGluZzogMTBweDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZCBub25lIG5vbmUgc29saWQ7XG4gIGJvcmRlci13aWR0aDogMC4xcHg7XG4gIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4uZGF0YXZpZXcge1xuICBtYXJnaW4tbGVmdDogNXB4O1xuICBtYXJnaW4tdG9wOiAzcHg7XG59XG5cbi5kLW5vbmUxIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmQtbm9uZTIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZC1ub25lMyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi50YWJsZS1ib3JkZXIubWF0LXRhYmxlIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lIHNvbGlkIHNvbGlkIG5vbmU7XG4gIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG50aC5tYXQtaGVhZGVyLWNlbGwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDlkOWQ5O1xufVxuXG4ubWF0LXNvcnQtaGVhZGVyLWNvbnRhaW5lciB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7XG59XG5cbi5jYWxsLXN0YXRzLWNhcmQgLm1hdC1jYXJkLXRpdGxlIHtcbiAgbWFyZ2luLWJvdHRvbTogMHB4O1xufVxuLmNhbGwtc3RhdHMtY2FyZCAuY2FsbC1zdGF0cyB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4uY2FsbC1zdGF0cy1jYXJkIC5jYWxsLXN0YXRzIGkge1xuICBjb2xvcjogIzJlMzY2ODtcbiAgZm9udC1zaXplOiAxMXB4O1xufVxuLmNhbGwtc3RhdHMtY2FyZCAuY2FsbC1zdGF0cy10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgY29sb3I6ICM0ODQ4NDg7XG59XG5cbi5jYWxsLXN0YXRzLWNhcmQxIHtcbiAgcGFkZGluZy10b3A6IDBweDtcbn1cblxuLmNhbGwtc3RhdHMtY2FyZC1ib3JkZXIxIHtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZCBzb2xpZCBub25lIHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLXJhZGl1czogMCU7XG4gIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4uY2FsbC1zdGF0cy1jYXJkLWJvcmRlcjIge1xuICBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIHNvbGlkIHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLXJhZGl1czogMCU7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBjb2xvcjogIzU0ODJCQztcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1NDgyQkM7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZS1sYWJlbC1jb250ZW50IHtcbiAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gIGZvbnQ6IFJlZ3VsYXIgMTRweCBSb2JvdG87XG4gIGxldHRlci1zcGFjaW5nOiAwcHg7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLnJlZnJlc2gtYnRuLm1hdC1idXR0b24ge1xuICBtaW4td2lkdGg6IGF1dG87XG59XG5cbi5yZWZyZXNoLWJ0biB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGNvbG9yOiAjZTY0MjQzO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTY0MjQzO1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWZsZXgge1xuICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgbGFiZWwubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBtYXJnaW4tdG9wOiA4cHggIWltcG9ydGFudDtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCBpbnB1dC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gIG1hcmdpbi10b3A6IDAuNmVtO1xuICBtYXJnaW4tbGVmdDogMTBweDtcbn1cblxuLnNlYXJjaC1pY29uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMTVweDtcbiAgdG9wOiAxNXB4O1xufVxuXG4uYmFja0NvbG9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RCAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5ib3gtc2l6ZSB7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICBtYXJnaW4tdG9wOiA3cHg7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbi5ib3gtc2l6ZTEge1xuICBtYXJnaW4tbGVmdDogMTBweDtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgd2lkdGg6IDIycHg7XG4gIGhlaWdodDogMjJweDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuLmJhY2tDb2xvcjEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTQ4MkJDICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmNhbGwtc3RhdHMtdmFsdWUge1xuICBtYXJnaW4tbGVmdDogNTBweDtcbiAgZm9udC1zaXplOiAxOHB4O1xufVxuXG4uY2FsbC1zdGF0cy12YWx1ZTEge1xuICBtYXJnaW4tbGVmdDogMzBweDtcbiAgZm9udC1zaXplOiAxOHB4O1xufVxuXG4uaW5mby1jaXJjbGUtc2l6ZSB7XG4gIGZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG4uZmxleC1zZXQge1xuICBtYXJnaW4tdG9wOiA3cHg7XG4gIG1hcmdpbi1sZWZ0OiAxNXB4O1xufVxuXG4uZmxleC1zZXQxIHtcbiAgbWFyZ2luLXRvcDogN3B4O1xuICBtYXJnaW4tbGVmdDogMjVweDtcbn1cblxuLmR1ZURhdGVJY29uIHtcbiAgaGVpZ2h0OiA5cHg7XG4gIHdpZHRoOiAxMXB4O1xufVxuXG4uZHJvdXBkb3duLXN0eWxlIHtcbiAgd2lkdGg6IDIwMHB4O1xuICBtYXJnaW46IDEwcHg7XG59XG5cbi52YWx1ZS1saXN0MSBociB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCBsaWdodGdyZXk7XG4gIG1hcmdpbjogNXB4IDBweDtcbiAgd2lkdGg6IDEwMCU7XG59XG4udmFsdWUtbGlzdDEgc3BhbiB7XG4gIG1hcmdpbi1sZWZ0OiA1cHg7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xuICBtYXJnaW4tdG9wOiAzcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLm1hcmdpbi1sZWZ0IHtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xufVxuXG4ucGFnaW5hdG9yIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBoZWlnaHQ6IDE4cHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1ib3R0b206IDBweDtcbn1cblxuLmZvbGxvd1VwIHtcbiAgd2lkdGg6IDklICFpbXBvcnRhbnQ7XG59XG5cbi5sYXN0Q2FsbCB7XG4gIHdpZHRoOiA5JSAhaW1wb3J0YW50O1xufVxuXG4ubWF0LW9wdGlvbiB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbn1cblxuLmZvbnRDbGFzc0JvbGQge1xuICBmb250LXNpemU6IDEzcHg7XG59XG5cbi5lbnF1aXJ5QnV0dG9uIHtcbiAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0Q7XG4gIG1hcmdpbi1sZWZ0OiAzMTBweDtcbn1cblxuLmZpbHRlci1sYWJlbCB7XG4gIGZvbnQ6IEJvbGQgMTJweCBSb2JvdG87XG4gIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gIGNvbG9yOiAjM2MzYzNjO1xuICBvcGFjaXR5OiAxO1xuICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gIHBhZGRpbmc6IDFweCA0cHggMHB4O1xufSJdfQ== */\"","import { ConnectedPositionStrategy } from '@angular/cdk/overlay';\nimport { Component, EventEmitter, Inject, OnInit, Output } from '@angular/core';\nimport { MatDialog, MatDialogConfig, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\nimport { Router } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\nimport { PipelineManagementComponent } from '../../component/pipeline-management/pipeline-management.component'; \nimport { CommonService } from '../../core/service/common-service/common.service';\nimport { PipelineEnquiryComponent } from '../pipeline-enquiry/pipeline-enquiry.component';\n\n@Component({\n selector: 'app-lead-status-dialog',\n templateUrl: './lead-status-dialog.component.html',\n styleUrls: ['./lead-status-dialog.component.scss'],\n})\nexport class LeadStatusDialogComponent implements OnInit {\n productNameValue: string;\n isClassTwoActive: boolean = true;\n isClassOneActive: boolean = true;\n isClassThreeActive: boolean = true;\n response: any;\n subResponse: any = null;\n responseArray: string[] = [];\n clickedRow: any;\n customerCode: any;\n vin: any;\n product: any;\n enquiryId: any;\n leadStatusCode: any;\n leadSubStatusCode: any;\n contractNumber: string;\n countryCode: any;\n userId: any;\n custResData: custData;\n followUpCount: any\n today: Date = new Date();\n followUpDate: any;\n enableUpdateButton: boolean = true;\n enquiryRemarks:string=\"\";\n @Output() close: EventEmitter = new EventEmitter();\n\n constructor(private commonService: CommonService, private dialogRef: MatDialogRef, private toastr: ToastrService, @Inject(MAT_DIALOG_DATA) public data: any, public router: Router) {\n this.clickedRow = JSON.parse(localStorage.getItem(\"pipelinecustomerData\"));\n this.followUpCount = data.followUpCount;\n }\n\n ngOnInit() {\n this.userId = localStorage.getItem(\"userId\");\n this.countryCode = localStorage.getItem(\"countryCode\");\n if (this.followUpCount < 3) {\n this.enableUpdateButton = true;\n }\n else {\n this.enableUpdateButton = false;\n }\n\n }\n\n enableDropDown1(answer) {\n this.followUpDate = '';\n this.subResponse = \"\";\n this.contractNumber = \"\";\n this.response = answer.value;\n if (answer.value == \"211\" && this.enableUpdateButton == true) {\n return this.isClassOneActive = false;\n } else {\n return this.isClassOneActive = true;\n }\n }\n\n enableDropDown2(answer) {\n this.subResponse = \"\";\n this.response = answer.value;\n if (answer.value == \"213\") {\n return this.isClassTwoActive = false;\n } else {\n return this.isClassTwoActive = true;\n }\n }\n\n enableDropDown3(answer){\n if (answer.value == \"212\") {\n return this.isClassThreeActive = false;\n } else {\n return this.isClassThreeActive = true;\n }\n }\n\n followUpCheck() {\n if (this.followUpCount < 3) {\n this.enableUpdateButton = true;\n }\n else {\n this.enableUpdateButton = false;\n this.toastr.error(\"FollowUp must less than 3\", \"Error\");\n\n }\n }\n\n\n onclose() {\n this.dialogRef.close(-1);\n }\n\n onSubmit() {\n this.saveResponse();\n }\n\n saveResponse(): void {\n if ((this.response == null || this.response == \"\") || (this.enquiryRemarks == null || this.enquiryRemarks == \"\")) {\n this.toastr.error(\"Please fill required fields\");\n }else if(this.isClassOneActive == false && (this.followUpDate == null || this.followUpDate == \"\")){\n this.toastr.error(\"Please fill required fields\");\n }\n else if(this.isClassOneActive == false && (this.subResponse == null || this.subResponse == \"\")){\n this.toastr.error(\"Please Fill Required Fields.\");\n }\n else if(this.isClassTwoActive == false && (this.subResponse == null || this.subResponse == \"\")){\n this.toastr.error(\"Please Fill Required Fields.\");\n }else if(this.isClassThreeActive == false && (this.contractNumber == null || this.contractNumber == \"\")){\n this.toastr.error(\"Please Fill Required Fields.\");\n }\n else {\n this.custResData = new custData(\n this.customerCode = this.clickedRow.customerCode,\n this.vin = this.clickedRow.vin,\n this.product = this.clickedRow.productType,\n this.enquiryId = this.clickedRow.enquiryId,\n this.leadStatusCode = this.response,\n this.leadSubStatusCode = this.subResponse,\n this.userId,\n this.countryCode,\n this.followUpDate,\n this.contractNumber,\n this.enquiryRemarks\n\n )\n this.commonService.updatePipelineLeadStatus(this.custResData).subscribe(\n res => {\n if (res[\"responseCode\"] == 0) {\n this.toastr.info(res[\"message\"], \"Success\");\n this.onclose();\n }\n else {\n this.toastr.error(res[\"message\"], \"Error\");\n this.onclose();\n }\n });\n }\n }\n\n}\n\nexport function openLeadStatusDialog(dialog: MatDialog, clickedRow) {\n const config = new MatDialogConfig();\n config.disableClose = true;\n config.autoFocus = true;\n config.width = '720px';\n config.height = '350px';\n config.data = clickedRow;\n const dialogRef = dialog.open(LeadStatusDialogComponent, config);\n return dialogRef.afterClosed();\n\n}\n\nclass custData {\n customerCode: string;\n vin: string;\n product: string;\n enquiryId: string;\n leadStatusCode: string;\n leadSubStatusCode: string;\n userId: string;\n countryCode: string;;\n followUpDate: string;\n contractNumber: string;\n enquiryRemarks: string;\n\n\n constructor(\n customerCode,\n vin,\n product,\n enquiryId,\n leadStatusCode,\n leadSubStatusCode,\n userId,\n countryCode,\n followUpDate,\n contractNumber,\n enquiryRemarks\n\n ) {\n this.customerCode = customerCode;\n this.vin = vin;\n this.product = product;\n this.enquiryId = enquiryId;\n this.leadStatusCode = leadStatusCode;\n this.leadSubStatusCode = leadSubStatusCode;\n this.userId = userId;\n this.countryCode = countryCode;\n this.followUpDate = followUpDate;\n this.contractNumber = contractNumber;\n this.enquiryRemarks = enquiryRemarks;\n\n }\n}\n","export default \"#callDialog {\\n box-shadow: 0 1px 2px 1px rgba(0, 0, 0, 0.2), 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12);\\n padding: 10px;\\n background-color: #ffffff;\\n position: fixed;\\n width: 35%;\\n height: 450px;\\n}\\n\\n.close-con {\\n float: right;\\n font-size: 18px;\\n cursor: pointer;\\n}\\n\\n.d-none {\\n display: none;\\n}\\n\\ntable {\\n width: 100%;\\n}\\n\\n.call-header {\\n font-family: Bold 16px/22px Roboto;\\n font-size: 12px;\\n}\\n\\n.call-header i {\\n color: #00457d;\\n}\\n\\n.rect2 {\\n width: 100%;\\n background: #eaeaea;\\n}\\n\\n.rect3 {\\n padding-top: 25px;\\n padding-right: 0px;\\n padding-left: 0px;\\n padding-bottom: 0px;\\n width: 100%;\\n font-size: 12px;\\n background: #ffffff;\\n}\\n\\n.rect3 .button {\\n float: right;\\n margin-right: 8px;\\n margin-top: 5px;\\n}\\n\\n.rect4 {\\n width: 100%;\\n font-size: 12px;\\n padding-bottom: 0px;\\n}\\n\\n.ngx-timepicker-field-example {\\n float: left;\\n margin-top: 15px;\\n}\\n\\n.rect5 {\\n float: left;\\n width: 100%;\\n}\\n\\n.text-pp {\\n width: 100%;\\n}\\n\\n.call-popup-save {\\n float: right;\\n margin-right: 20px;\\n margin-bottom: 10px;\\n}\\n\\n.icons .fa-phone {\\n transform: rotate(135deg);\\n}\\n\\n.icons .fa-microphone-slash,\\n.icons .fa-phone {\\n font-size: 24px;\\n}\\n\\n.icons .button {\\n margin: 5px;\\n}\\n\\n.icons {\\n margin-top: 25px;\\n padding-left: 29%;\\n}\\n\\n.hang-btn {\\n color: red !important;\\n border-color: red !important;\\n}\\n\\n.classtext1 {\\n font-weight: bold;\\n}\\n\\n.timestamp {\\n font-size: 11px;\\n margin-left: 10px;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-group {\\n border-radius: 0px;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle {\\n background-color: #ffffff;\\n color: #000000;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-checked {\\n background-color: #00457d;\\n color: #ffffff;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-label-content {\\n line-height: 20px;\\n}\\n\\n.btn {\\n position: relative;\\n cursor: pointer;\\n transition: all 0.3s ease;\\n overflow: hidden;\\n background-color: #00457D !important;\\n height: 24px;\\n line-height: 10px;\\n}\\n\\n.mat-button {\\n border-radius: 0px;\\n float: right;\\n}\\n\\n.btn p {\\n text-align: center;\\n text-transform: uppercase;\\n color: #fff;\\n position: relative;\\n z-index: 1;\\n transition: all 0.3s ease;\\n margin: auto;\\n font-size: 12px;\\n}\\n\\n/* sliders */\\n\\n/* Left Slider */\\n\\n.btn-1 {\\n background-color: #ffffff !important;\\n color: #e64243 !important;\\n border: 1px solid #e64243;\\n}\\n\\n.btn-1 p {\\n margin: auto;\\n}\\n\\n.dropdown-pp1 .mat-form-field-infix {\\n height: 21px !important;\\n width: 100%;\\n padding-bottom: 0px !important;\\n}\\n\\n.dropdown-pp1 .mat-form-field {\\n width: 100%;\\n}\\n\\n.dropdown-pp1 .ng-star-inserted {\\n width: 99%;\\n}\\n\\n.profile-pp1 .mat-form-field-wrapper {\\n padding-bottom: 0px;\\n}\\n\\n.profile-pp1 .mat-label {\\n padding-top: 6px;\\n}\\n\\n.dropdown-border {\\n border-style: solid solid solid solid !important;\\n border-width: 1px;\\n border-radius: 5px;\\n border-color: gray;\\n height: 28px;\\n padding-left: 8px;\\n padding-top: 6px;\\n margin-top: 0px;\\n}\\n\\n.textfield-border {\\n border-style: solid solid solid solid !important;\\n border-width: 1px;\\n border-radius: 5px;\\n border-color: gray;\\n}\\n\\nmat-error {\\n color: #ff0000;\\n font-size: 10px;\\n margin-top: -12px !important;\\n}\\n\\n.error {\\n color: #ff0000;\\n font-size: 10px;\\n}\\n\\n.bay {\\n font-size: 10px;\\n}\\n\\n.bay-area {\\n background-color: #f9f9f9;\\n padding: 10px;\\n}\\n\\n.slot {\\n padding: 5px 5px;\\n margin: 0px;\\n text-align: center;\\n border: 1px solid lightgray;\\n}\\n\\n.occupied {\\n background-color: #e64243;\\n}\\n\\n.bay-label {\\n margin-bottom: 10px;\\n color: rgba(0, 0, 0, 0.54);\\n font-size: 10px;\\n font-weight: 500;\\n}\\n\\n.bay-time {\\n margin-top: 10px;\\n}\\n\\n.datetime {\\n padding: 5px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9tb2RhbC9sb3N0LWNhbGxpbmctZGlhbG9nL2xvc3QtY2FsbGluZy1kaWFsb2cuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL21vZGFsL2xvc3QtY2FsbGluZy1kaWFsb2cvbG9zdC1jYWxsaW5nLWRpYWxvZy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLGlKQUFBO0VBQ0EsYUFBQTtFQUNBLHlCQUFBO0VBQ0EsZUFBQTtFQUNBLFVBQUE7RUFDQSxhQUFBO0FDQ0o7O0FERUE7RUFDSSxZQUFBO0VBQ0EsZUFBQTtFQUNBLGVBQUE7QUNDSjs7QURFQTtFQUNJLGFBQUE7QUNDSjs7QURFQTtFQUNJLFdBQUE7QUNDSjs7QURFQTtFQUNJLGtDQUFBO0VBQ0EsZUFBQTtBQ0NKOztBREFJO0VBQ0ksY0FBQTtBQ0VSOztBREVBO0VBQ0ksV0FBQTtFQUNBLG1CQUFBO0FDQ0o7O0FERUE7RUFDSSxpQkFBQTtFQUNBLGtCQUFBO0VBQ0EsaUJBQUE7RUFDQSxtQkFBQTtFQUNBLFdBQUE7RUFDQSxlQUFBO0VBQ0EsbUJBQUE7QUNDSjs7QURFQTtFQUNJLFlBQUE7RUFDQSxpQkFBQTtFQUNBLGVBQUE7QUNDSjs7QURFQTtFQUNJLFdBQUE7RUFDQSxlQUFBO0VBQ0EsbUJBQUE7QUNDSjs7QURFQTtFQUNJLFdBQUE7RUFDQSxnQkFBQTtBQ0NKOztBREVBO0VBQ0ksV0FBQTtFQUNBLFdBQUE7QUNDSjs7QURFQTtFQUNJLFdBQUE7QUNDSjs7QURFQTtFQUNJLFlBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0FDQ0o7O0FERUE7RUFDSSx5QkFBQTtBQ0NKOztBREVBOztFQUVJLGVBQUE7QUNDSjs7QURFQTtFQUNJLFdBQUE7QUNDSjs7QURFQTtFQUNJLGdCQUFBO0VBQ0EsaUJBQUE7QUNDSjs7QURFQTtFQUNJLHFCQUFBO0VBQ0EsNEJBQUE7QUNDSjs7QURFQTtFQUNJLGlCQUFBO0FDQ0o7O0FERUE7RUFDSSxlQUFBO0VBQ0EsaUJBQUE7QUNDSjs7QURFQTtFQUNJLGtCQUFBO0FDQ0o7O0FERUE7RUFDSSx5QkFBQTtFQUNBLGNBQUE7QUNDSjs7QURFQTtFQUNJLHlCQUFBO0VBQ0EsY0FBQTtBQ0NKOztBREVBO0VBQ0ksaUJBQUE7QUNDSjs7QURHQTtFQUVJLGtCQUFBO0VBQ0EsZUFBQTtFQUNBLHlCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxvQ0FBQTtFQUNBLFlBQUE7RUFDQSxpQkFBQTtBQ0RKOztBREtBO0VBQ0ksa0JBQUE7RUFDQSxZQUFBO0FDRko7O0FES0E7RUFDSSxrQkFBQTtFQUNBLHlCQUFBO0VBQ0EsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLHlCQUFBO0VBQ0EsWUFBQTtFQUNBLGVBQUE7QUNGSjs7QURNQSxZQUFBOztBQVlBLGdCQUFBOztBQVlBO0VBQ0ksb0NBQUE7RUFDQSx5QkFBQTtFQUNBLHlCQUFBO0FDekJKOztBRDRCQTtFQUNJLFlBQUE7QUN6Qko7O0FENEJBO0VBQ0ksdUJBQUE7RUFDQSxXQUFBO0VBQ0EsOEJBQUE7QUN6Qko7O0FENkJBO0VBQ0ksV0FBQTtBQzFCSjs7QUQrQkE7RUFHSSxVQUFBO0FDOUJKOztBRGlDQTtFQUNJLG1CQUFBO0FDOUJKOztBRGlDQTtFQUNJLGdCQUFBO0FDOUJKOztBRGtDQTtFQUNJLGdEQUFBO0VBQ0EsaUJBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0VBQ0EsWUFBQTtFQUNBLGlCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxlQUFBO0FDL0JKOztBRGtDQTtFQUNJLGdEQUFBO0VBQ0EsaUJBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0FDL0JKOztBRG1DQTtFQUNJLGNBQUE7RUFDQSxlQUFBO0VBQ0EsNEJBQUE7QUNoQ0o7O0FEbUNBO0VBQ0ksY0FBQTtFQUNBLGVBQUE7QUNoQ0o7O0FEb0NBO0VBQ0ksZUFBQTtBQ2pDSjs7QURvQ0E7RUFDSSx5QkFBQTtFQUNBLGFBQUE7QUNqQ0o7O0FEb0NBO0VBQ0ksZ0JBQUE7RUFDQSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSwyQkFBQTtBQ2pDSjs7QURvQ0E7RUFDSSx5QkFBQTtBQ2pDSjs7QURvQ0E7RUFDSSxtQkFBQTtFQUNBLDBCQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0FDakNKOztBRG9DQTtFQUNJLGdCQUFBO0FDakNKOztBRG9DQTtFQUNJLFlBQUE7QUNqQ0oiLCJmaWxlIjoic3JjL2FwcC9tb2RhbC9sb3N0LWNhbGxpbmctZGlhbG9nL2xvc3QtY2FsbGluZy1kaWFsb2cuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIjY2FsbERpYWxvZyB7XG4gICAgYm94LXNoYWRvdzogMCAxcHggMnB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMnB4IDFweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMCAxcHggMXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAxcHggM3B4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHdpZHRoOiAzNSU7XG4gICAgaGVpZ2h0OiA0NTBweDtcbn1cblxuLmNsb3NlLWNvbiB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5kLW5vbmV7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxudGFibGUge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4uY2FsbC1oZWFkZXIge1xuICAgIGZvbnQtZmFtaWx5OiBCb2xkIDE2cHgvMjJweCBSb2JvdG87XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGkge1xuICAgICAgICBjb2xvcjogIzAwNDU3ZDtcbiAgICB9XG59XG5cbi5yZWN0MiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogI2VhZWFlYTtcbn1cblxuLnJlY3QzIHtcbiAgICBwYWRkaW5nLXRvcDogMjVweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwcHg7XG4gICAgcGFkZGluZy1sZWZ0OiAwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbn1cblxuLnJlY3QzIC5idXR0b24ge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICBtYXJnaW4tdG9wOiA1cHg7XG59XG5cbi5yZWN0NCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAwcHg7XG59XG5cbi5uZ3gtdGltZXBpY2tlci1maWVsZC1leGFtcGxlIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xufVxuXG4ucmVjdDUge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4udGV4dC1wcCB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5jYWxsLXBvcHVwLXNhdmUge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLmljb25zIC5mYS1waG9uZSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKTtcbn1cblxuLmljb25zIC5mYS1taWNyb3Bob25lLXNsYXNoLFxuLmljb25zIC5mYS1waG9uZSB7XG4gICAgZm9udC1zaXplOiAyNHB4O1xufVxuXG4uaWNvbnMgLmJ1dHRvbiB7XG4gICAgbWFyZ2luOiA1cHg7XG59XG5cbi5pY29ucyB7XG4gICAgbWFyZ2luLXRvcDogMjVweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDI5JTtcbn1cblxuLmhhbmctYnRuIHtcbiAgICBjb2xvcjogcmVkICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiByZWQgIWltcG9ydGFudDtcbn1cblxuLmNsYXNzdGV4dDEge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4udGltZXN0YW1wIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIHtcbiAgICBib3JkZXItcmFkaXVzOiAwcHg7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIGNvbG9yOiAjMDAwMDAwO1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdkO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZS1sYWJlbC1jb250ZW50IHtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbn1cblxuLy9zbGlkaW5nIGJ0blxuLmJ0biB7XG4gICAgLy9ib3JkZXItbGVmdDogNHB4IHNvbGlkICMyZTM2Njg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RCAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogMjRweDtcbiAgICBsaW5lLWhlaWdodDogMTBweDtcbiAgICAvL2JvcmRlci1yYWRpdXM6IDVweDtcbn1cblxuLm1hdC1idXR0b24ge1xuICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgICBmbG9hdDogcmlnaHQ7XG59XG5cbi5idG4gcCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgZm9udC1zaXplOiAxMnB4O1xufVxuXG5cbi8qIHNsaWRlcnMgKi9cblxuLy8gLmJ0bjpiZWZvcmUge1xuLy8gICAgIGNvbnRlbnQ6IFwiXCI7XG4vLyAgICAgd2lkdGg6IDEwMCU7XG4vLyAgICAgaGVpZ2h0OiAxMDAlO1xuLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMyZTM2Njg7XG4vLyAgICAgY29sb3I6ICNmZmY7XG4vLyAgICAgcG9zaXRpb246IGFic29sdXRlO1xuLy8gICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4vLyB9XG5cbi8qIExlZnQgU2xpZGVyICovXG5cbi8vIC5idG4tMjpiZWZvcmUge1xuLy8gICAgIHRvcDogMDtcbi8vICAgICBsZWZ0OiAtMjMwcHg7XG4vLyB9XG4vLyAuYnRuLTI6aG92ZXI6YmVmb3JlIHtcbi8vICAgICBsZWZ0OiAwO1xuLy8gfVxuLy8gLmJ0bi0yOmhvdmVyIHtcbi8vICAgICBjb2xvcjogI2ZmZjtcbi8vIH1cbi5idG4tMSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZTY0MjQzICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2U2NDI0Mztcbn1cblxuLmJ0bi0xIHAge1xuICAgIG1hcmdpbjogYXV0bztcbn1cblxuLmRyb3Bkb3duLXBwMSAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgIGhlaWdodDogMjFweCAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmctYm90dG9tOiAwcHggIWltcG9ydGFudDtcbiAgICAvL2xpc3Qtc3R5bGUtcG9zaXRpb246IGluaGVyaXQ7XG59XG5cbi5kcm9wZG93bi1wcDEgLm1hdC1mb3JtLWZpZWxkIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICAvL3BhZGRpbmctdG9wOiA0cHg7XG4gICAgLy9tYXJnaW4tdG9wOiA5cHg7XG59XG5cbi5kcm9wZG93bi1wcDEgLm5nLXN0YXItaW5zZXJ0ZWQge1xuICAgIC8vcGFkZGluZy10b3A6IDRweDtcbiAgICAvL21hcmdpbi10b3A6IDlweDtcbiAgICB3aWR0aDogOTklO1xufVxuXG4ucHJvZmlsZS1wcDEgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICAgIHBhZGRpbmctYm90dG9tOiAwcHg7XG59XG5cbi5wcm9maWxlLXBwMSAubWF0LWxhYmVsIHtcbiAgICBwYWRkaW5nLXRvcDogNnB4O1xuICAgIC8vb3BhY2l0eTogMC4xO1xufVxuXG4uZHJvcGRvd24tYm9yZGVyIHtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIHNvbGlkIHNvbGlkICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGJvcmRlci1jb2xvcjogZ3JheTtcbiAgICBoZWlnaHQ6IDI4cHg7XG4gICAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gICAgcGFkZGluZy10b3A6IDZweDtcbiAgICBtYXJnaW4tdG9wOiAwcHg7XG59XG5cbi50ZXh0ZmllbGQtYm9yZGVyIHtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIHNvbGlkIHNvbGlkICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGJvcmRlci1jb2xvcjogZ3JheTtcbn1cblxuLy9tYXQtZXJyb3Jcbm1hdC1lcnJvciB7XG4gICAgY29sb3I6ICNmZjAwMDA7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIG1hcmdpbi10b3A6IC0xMnB4ICFpbXBvcnRhbnQ7XG59XG5cbi5lcnJvciB7XG4gICAgY29sb3I6ICNmZjAwMDA7XG4gICAgZm9udC1zaXplOiAxMHB4O1xufVxuXG4vL2JheSBzbG90c1xuLmJheSB7XG4gICAgZm9udC1zaXplOiAxMHB4O1xufVxuXG4uYmF5LWFyZWEge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XG4gICAgcGFkZGluZzogMTBweDtcbn1cblxuLnNsb3Qge1xuICAgIHBhZGRpbmc6IDVweCA1cHg7XG4gICAgbWFyZ2luOiAwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbn1cblxuLm9jY3VwaWVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTY0MjQzO1xufVxuXG4uYmF5LWxhYmVsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIGNvbG9yOiByZ2JhKDAsMCwwLC41NCk7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5iYXktdGltZSB7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbn1cblxuLmRhdGV0aW1lIHtcbiAgICBwYWRkaW5nOiA1cHg7XG59IiwiI2NhbGxEaWFsb2cge1xuICBib3gtc2hhZG93OiAwIDFweCAycHggMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMCAycHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDFweCAxcHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDFweCAzcHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBwYWRkaW5nOiAxMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHdpZHRoOiAzNSU7XG4gIGhlaWdodDogNDUwcHg7XG59XG5cbi5jbG9zZS1jb24ge1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uZC1ub25lIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxudGFibGUge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmNhbGwtaGVhZGVyIHtcbiAgZm9udC1mYW1pbHk6IEJvbGQgMTZweC8yMnB4IFJvYm90bztcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLmNhbGwtaGVhZGVyIGkge1xuICBjb2xvcjogIzAwNDU3ZDtcbn1cblxuLnJlY3QyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICNlYWVhZWE7XG59XG5cbi5yZWN0MyB7XG4gIHBhZGRpbmctdG9wOiAyNXB4O1xuICBwYWRkaW5nLXJpZ2h0OiAwcHg7XG4gIHBhZGRpbmctbGVmdDogMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xufVxuXG4ucmVjdDMgLmJ1dHRvbiB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gIG1hcmdpbi10b3A6IDVweDtcbn1cblxuLnJlY3Q0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgcGFkZGluZy1ib3R0b206IDBweDtcbn1cblxuLm5neC10aW1lcGlja2VyLWZpZWxkLWV4YW1wbGUge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXRvcDogMTVweDtcbn1cblxuLnJlY3Q1IHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4udGV4dC1wcCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uY2FsbC1wb3B1cC1zYXZlIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi5pY29ucyAuZmEtcGhvbmUge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpO1xufVxuXG4uaWNvbnMgLmZhLW1pY3JvcGhvbmUtc2xhc2gsXG4uaWNvbnMgLmZhLXBob25lIHtcbiAgZm9udC1zaXplOiAyNHB4O1xufVxuXG4uaWNvbnMgLmJ1dHRvbiB7XG4gIG1hcmdpbjogNXB4O1xufVxuXG4uaWNvbnMge1xuICBtYXJnaW4tdG9wOiAyNXB4O1xuICBwYWRkaW5nLWxlZnQ6IDI5JTtcbn1cblxuLmhhbmctYnRuIHtcbiAgY29sb3I6IHJlZCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IHJlZCAhaW1wb3J0YW50O1xufVxuXG4uY2xhc3N0ZXh0MSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4udGltZXN0YW1wIHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBtYXJnaW4tbGVmdDogMTBweDtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAge1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgY29sb3I6ICMwMDAwMDA7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdkO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtbGFiZWwtY29udGVudCB7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xufVxuXG4uYnRuIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0QgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBsaW5lLWhlaWdodDogMTBweDtcbn1cblxuLm1hdC1idXR0b24ge1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG4gIGZsb2F0OiByaWdodDtcbn1cblxuLmJ0biBwIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogI2ZmZjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICBtYXJnaW46IGF1dG87XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLyogc2xpZGVycyAqL1xuLyogTGVmdCBTbGlkZXIgKi9cbi5idG4tMSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgY29sb3I6ICNlNjQyNDMgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2U2NDI0Mztcbn1cblxuLmJ0bi0xIHAge1xuICBtYXJnaW46IGF1dG87XG59XG5cbi5kcm9wZG93bi1wcDEgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgaGVpZ2h0OiAyMXB4ICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLWJvdHRvbTogMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5kcm9wZG93bi1wcDEgLm1hdC1mb3JtLWZpZWxkIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5kcm9wZG93bi1wcDEgLm5nLXN0YXItaW5zZXJ0ZWQge1xuICB3aWR0aDogOTklO1xufVxuXG4ucHJvZmlsZS1wcDEgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMHB4O1xufVxuXG4ucHJvZmlsZS1wcDEgLm1hdC1sYWJlbCB7XG4gIHBhZGRpbmctdG9wOiA2cHg7XG59XG5cbi5kcm9wZG93bi1ib3JkZXIge1xuICBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIHNvbGlkIHNvbGlkICFpbXBvcnRhbnQ7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJvcmRlci1jb2xvcjogZ3JheTtcbiAgaGVpZ2h0OiAyOHB4O1xuICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgcGFkZGluZy10b3A6IDZweDtcbiAgbWFyZ2luLXRvcDogMHB4O1xufVxuXG4udGV4dGZpZWxkLWJvcmRlciB7XG4gIGJvcmRlci1zdHlsZTogc29saWQgc29saWQgc29saWQgc29saWQgIWltcG9ydGFudDtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYm9yZGVyLWNvbG9yOiBncmF5O1xufVxuXG5tYXQtZXJyb3Ige1xuICBjb2xvcjogI2ZmMDAwMDtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBtYXJnaW4tdG9wOiAtMTJweCAhaW1wb3J0YW50O1xufVxuXG4uZXJyb3Ige1xuICBjb2xvcjogI2ZmMDAwMDtcbiAgZm9udC1zaXplOiAxMHB4O1xufVxuXG4uYmF5IHtcbiAgZm9udC1zaXplOiAxMHB4O1xufVxuXG4uYmF5LWFyZWEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5O1xuICBwYWRkaW5nOiAxMHB4O1xufVxuXG4uc2xvdCB7XG4gIHBhZGRpbmc6IDVweCA1cHg7XG4gIG1hcmdpbjogMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbn1cblxuLm9jY3VwaWVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2NDI0Mztcbn1cblxuLmJheS1sYWJlbCB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xuICBmb250LXNpemU6IDEwcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5iYXktdGltZSB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG59XG5cbi5kYXRldGltZSB7XG4gIHBhZGRpbmc6IDVweDtcbn0iXX0= */\"","import { Component, OnInit, Input, Output, EventEmitter } from \"@angular/core\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { Router } from \"@angular/router\";\nimport { CommonService } from \"../../core/service/common-service/common.service\";\nimport { DatePipe } from \"@angular/common\";\nimport { interval } from \"rxjs\";\nimport { FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { TimepickerRef } from \"ngx-material-timepicker/src/app/material-timepicker/models/timepicker-ref.interface\";\nimport * as _moment from 'moment';\nimport { DateTimeAdapter, OWL_DATE_TIME_FORMATS, OWL_DATE_TIME_LOCALE } from 'ng-pick-datetime';\nimport { MomentDateTimeAdapter } from 'ng-pick-datetime-moment';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ServicenotrequireDailogComponent } from \"../servicenotrequire-dailog/servicenotrequire-dailog.component\";\nimport { ChartOptions, ChartType, ChartDataSets } from 'chart.js';\nimport { Label } from 'ng2-charts';\nimport { element } from 'protractor';\nimport { MatToolbarModule } from \"@angular/material\";\nimport { SaveCallRecordingParams } from \"src/app/model/save-call-recording-params.model\";\n\nconst moment = (_moment as any).default ? (_moment as any).default : _moment;\n\nexport const MY_CUSTOM_FORMATS = {\n parseInput: 'LL LT',\n fullPickerInput: 'DD-MM-YYYY LT',\n datePickerInput: 'LL',\n timePickerInput: 'LT',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n};\n\n@Component({\n selector: 'app-lost-calling-dialog',\n templateUrl: './lost-calling-dialog.component.html',\n styleUrls: ['./lost-calling-dialog.component.scss'],\n providers: [\n { provide: DateTimeAdapter, useClass: MomentDateTimeAdapter, deps: [OWL_DATE_TIME_LOCALE] },\n { provide: OWL_DATE_TIME_FORMATS, useValue: MY_CUSTOM_FORMATS }\n ],\n})\nexport class LostCallingDialogComponent implements OnInit {\n\n @Input() vinNoList: any[];\n @Input() serviceDetails: any;\n @Input() selectedVin: string;\n @Input() customerNumber: string;\n @Input() isCustomerNumber: string;\n @Input() primaryNumber: string;\n @Input() division: string;\n @Input() workshopAppointmentFlag: string;\n @Input() ownerSelected: boolean;\n @Output() close: EventEmitter = new EventEmitter();\n @Input() phoneNo: any;\n @Input() cusType: any;\n @Input() custNameForSave: string;\n @Input() serviceCount: number;\n @Input() clicked: any;\n userRoles: string;\n callType: any;\n emptyVin: boolean;false;\n disableDisengagement: boolean=false;\n isproposal: boolean=false;\n isDiscountproposal: boolean=false;\n reminderFollowupDate: boolean=false;\n showrescheduleDate:boolean = false;\n reason: any;\n\n constructor(\n private datePipe: DatePipe,\n private commonService: CommonService,\n private router: Router,\n private toastr: ToastrService,\n private dialog: MatDialog,\n ) { }\n\n startTime: any;\n // serviceDueDate: any;\n talked: string = \"\";\n creRemark: string = \"\";\n custmerName: string;\n yesResponce: string = \"\";\n noResponce: string = \"\";\n rescheduleDate: any;\n nsReason: string = \"\";\n customerId: string;\n userID: string;\n customerData: any;\n workshop: string = \"\";\n workshopSelected: string = \"\";\n workShops = [];\n selectedWorkShop: string;\n other: string = \"\";\n odometer: string = \"\";\n timer: string;\n today: Date = new Date();\n min: number = 0;\n sec: number = 0;\n callhanged: boolean;\n spinner: boolean;\n disSatSerArr: string[] = [];\n vinNoListArray: string[] = [];\n vehicleInfoArray: any[] = [];\n yesResArr: string[] = [];\n servNotReqArr: string[] = [];\n alreadyServicedArr: string[] = [];\n defaultVin: string;\n responseDropDownData: any;\n level1info = [];\n level1Form: FormGroup;\n level2info = [];\n level2Form: FormGroup;\n level3info = [];\n level3Form: FormGroup;\n level4info = [];\n level4Form: FormGroup;\n level5info = [];\n level5Form: FormGroup;\n callTypeMap = new Map();\n currentDate = new Date();\n serviceInfo: any;\n chassisNo: string;\n submitted: boolean = false;\n formSubmitted: boolean = false;\n showNoRespError: boolean = false;\n milage: any;\n add:boolean=true;\n selectCallType: any;\n odometerEntry: any;\n assignedBay: any;\n workShopBay: any = {};\n bayError: boolean = false;\n bayOpen: any;\n bayClose: any;\n serviceHours: any;\n bayLayout: any = [];\n selectedBay: any = [];\n showBay: boolean = false;\n selectedBayNo: any = '';\n bayEndTime: any;\n fertCode: any;\n packagelist: any[] = [];\n bookingandResheduleMaxDate: Date = new Date();\n followupandCancleMaxDate: Date = new Date();\n showRemarkError: boolean = false;\n countFlag: boolean = false;\n bookFllowCountFlag: boolean = false;\n vin: string;\n showFleetManError: boolean = false;\n alReadyServicMaxDate: Date = new Date();\n bookingCount: number;\n followupCount: number;\n serviceMintus: any;\n form2LabelValue: any;\n disengagementReason:any=[];\n proposalValue:any=\"\";\n proposalRemark:string=\"\";\n proposalDiscount:string=\"\";\n todayDate: Date = new Date();\n tomorrow: Date =new Date();\n userInfo:any;\n\n @Input(\"timepicker\")\n timePicker: TimepickerRef;\n\n //chart1Bar start\n public chartOptions: ChartOptions = {\n responsive: true,\n tooltips: {\n enabled: false\n },\n scales: {\n xAxes: [\n {\n display: true,\n gridLines: {\n display: true\n },\n ticks: {\n beginAtZero: false,\n fontSize: 10,\n stepSize: 1,\n autoSkip: false\n }\n }\n ],\n yAxes: [{\n display: false,\n gridLines: {\n display: false\n }\n }]\n }\n };\n public chartLabels: any[] = [];\n public chartType: ChartType = 'horizontalBar';\n public chartLegend = false;\n public chartPlugins = [];\n public chartData: any = [];\n\n ngOnInit() {\n this.userInfo = JSON.parse(localStorage.getItem(\"userInfo\") || null)[0];\n this.customerData = JSON.parse(localStorage.getItem(\"customerData\") || null);\n if (\n localStorage.getItem(\"userId\") == null ||\n localStorage.getItem(\"userId\") == undefined\n ) {\n this.router.navigate([\"login\"]);\n }\n this.customerId = localStorage.getItem(\"customerId\");\n this.userID = localStorage.getItem(\"userId\");\n \n this.vin = this.customerData.vin;\n this.workshopSelected = localStorage.getItem(\"dealerName\");\n this.custmerName = this.customerData.customerName;\n this.vin = this.customerData.vin;\n this.workShops = JSON.parse(localStorage.getItem('workshops'));\n this.selectedWorkShop = (this.workShops && this.workShops.length) ? this.workShops[0].workshopCode : '';\n this.serviceInfo = JSON.parse(localStorage.getItem(\"serviceInfo\"));\n this.userRoles = localStorage.getItem('userRoles');\n this.chassisNo = localStorage.getItem(\"chassisNo\");\n this.selectCallType=JSON.parse(localStorage.getItem(\"selectedCallListType\"));\n this.startTime = new Date();\n this.callTypeMap.set(\"Service\", 4);\n this.callTypeMap.set(\"Reminder\", 2);\n this.callTypeMap.set(\"To Be Visited\", 5);\n this.callTypeMap.set(\"No Show\", 3);\n this.callTypeMap.set(\"Visit\", 1);\n this.callTypeMap.set(\"Visit Reminder\", 6);\n if(this.workshopAppointmentFlag == 'true') {\n this.showBay=true;\n this.getWorkshopBay();\n } else {\n this.showBay = false;\n }\n this.odometerEntry = parseInt(localStorage.getItem(\"milage\")) || 0;\n this.getBookingFollowupCount(this.customerId, this.vin);\n this.setVinList(this.selectedVin, false);\n this.setYesResponse();\n this.setSerReqArr();\n this.setAlreadyServicedArr();\n this.setDisSatWithPrevSerArr();\n this.setTimer();\n this.todayDate.setDate(this.todayDate.getDate() + 1);\n this.todayDate.setHours(0,0,-1,-1);\n this.tomorrow.setDate(this.tomorrow.getDate() + 1);\n this.bookingandResheduleMaxDate.setDate(this.bookingandResheduleMaxDate.getDate() + 15);\n this.followupandCancleMaxDate.setDate(this.followupandCancleMaxDate.getDate() + 15);\n this.serviceHours = 1;\n this.serviceMintus = 30;\n }\n\n /**\n * Name: closeDailog\n * purpose: To close Dailog\n */\n closeDailog(): void {\n this.close.emit(null);\n }\n /**\n * Name: onKeydown\n * purpose: To handle onKeydown event\n */\n onKeydown(event){\n event.preventDefault();\n }\n\n /**\n * Name: setVinList\n * purpose: To set Vin List\n */\n setVinList(defaultVin: any, vehicleChange: boolean): void {\n var vinListStr = Object.values(this.vinNoList);\n vinListStr.forEach(vin => {\n if (vin == defaultVin) {\n this.defaultVin = vin;\n }\n });\n if(this.add==true){\n for (let i = 0; i < vinListStr.length; i++) {\n this.vinNoListArray.push(vinListStr[i]);\n }\n this.add=false;\n }\n if (vehicleChange) {\n if(this.workshopAppointmentFlag == 'true') {\n\n this.showBay = true;\n } else {\n this.showBay = false;\n }\n\n this.bayError = false;\n this.callStatus(\"101\");\n }\n }\n\n /**\n * Name: setYesResponse\n * purpose: To set Yes Response\n */\n setYesResponse(): void {\n this.yesResArr.push(\"Book a Service\");\n this.yesResArr.push(\"Call Later\");\n this.yesResArr.push(\"Customer asked to contact Fleed Manager\");\n this.yesResArr.push(\"Service Not Required\");\n }\n\n /**\n * Name: setSerReqArr\n * purpose: To set SerReqArr\n */\n setSerReqArr(): void {\n this.servNotReqArr.push(\"Wrong Odometer Prediction\");\n this.servNotReqArr.push(\"Already Serviced\");\n this.servNotReqArr.push(\"Vehicle Sold\");\n this.servNotReqArr.push(\"Dissatisfied with Previous Service\");\n this.servNotReqArr.push(\"Distance from Dealer Location\");\n this.servNotReqArr.push(\"Dissatisfaction with Sales\");\n this.servNotReqArr.push(\"Dissatisfaction with Insurance\");\n this.servNotReqArr.push(\"Other\");\n this.servNotReqArr.push(\"Customer Not intersted\");\n this.servNotReqArr.push(\n \"Do not Create Calls for this This Truck in Future\"\n );\n }\n\n /**\n * Name: setAlreadyServicedArr\n * purpose: To set Already Serviced Arr\n */\n setAlreadyServicedArr(): void {\n this.alreadyServicedArr.push(\"Service Done at Own Dealer\");\n this.alreadyServicedArr.push(\"*Service Done at Other Dealer\");\n this.alreadyServicedArr.push(\"*Service Done at local workshop\");\n }\n\n /**\n * Name: setDisSatWithPrevSerArr\n * purpose: To set DisSatWithPrevSerArr\n */\n setDisSatWithPrevSerArr() {\n this.disSatSerArr.push(\"High Cost\");\n this.disSatSerArr.push(\"Poor Service\");\n this.disSatSerArr.push(\"Washing, Noise\");\n this.disSatSerArr.push(\"Demanded Repairs\");\n this.disSatSerArr.push(\"Delay in Delivery\");\n this.disSatSerArr.push(\"Problem with Estimate\");\n this.disSatSerArr.push(\"Staff Behaviour\");\n this.disSatSerArr.push(\"Parts Not Available\");\n this.disSatSerArr.push(\"Other\");\n }\n\n /**\n * Name: setTimer\n * purpose: To setTimer\n */\n setTimer() {\n interval(1000).subscribe(x => {\n if (!this.callhanged) {\n this.sec++;\n if (this.sec == 60) {\n this.sec = 0;\n this.min++;\n }\n this.timer = this.min + \":\" + this.sec;\n }\n });\n }\n\n enableDropDown(answer){\n if(answer.value==220){\n document.getElementById('underResponse').classList.remove('d-none');\n } else{\n document.getElementById('underResponse').classList.add('d-none');\n }\n }\n\n /**\n * Name: callStatus\n * purpose: To check call status\n * @param {string} status - call status\n */\n callStatus(status: string): void {\n this.formSubmitted = false;\n this.showRemarkError = false;\n this.callType = this.callTypeMap.get(this.customerData && this.customerData.callType)\n if (\"101\" == status) {\n this.talked = \"101\";\n this.noResponce = \"\";\n const self = this;\n this.level1Form = undefined;\n this.level1info = [];\n this.level2Form = undefined;\n this.level2info = [];\n this.level3Form = undefined;\n this.level3info = [];\n this.level4Form = undefined;\n this.level4info = [];\n this.level5Form = undefined;\n this.level5info = [];\n\n if (this.clicked == true && this.callType==5) {\n this.toastr.error(\"Please fill visit report\");\n this.closeDailog();\n }\n else {\n\n this.commonService.getLostDropdownData(this.callType).subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n let data = res[\"responseData\"];\n if (Object.keys(data['Level2']).length && data['Level2']['201'] && data['Level2']['201'].length) {\n data['Level2']['201'].forEach(element => {\n if (Object.keys(element).length && element.data.length && element.data[0].key && element.data[0].key == '301') {\n element.label = 'Select Workshop';\n }\n });\n }\n if (Object.keys(data['Level2']).length && data['Level2']['212'] && data['Level2']['212'].length) {\n data['Level2']['212'].forEach(element => {\n if (Object.keys(element).length && element.data.length && element.data[0].key && element.data[0].key == '301') {\n element.label = 'Select Workshop';\n element.dataType = \"Dropdown\";\n }\n });\n }\n if (Object.keys(data['Level2']).length && data['Level2']['212'] && data['Level2']['212'].length) {\n data['Level2']['212'].forEach(element => {\n if (Object.keys(element).length && element.data.length && element.data[0].key && element.data[0].key == '302') {\n element.label = 'Select Date';\n element.dataType = \"Date\";\n }\n });\n }\n\n if (Object.keys(data['Level3']).length && data['Level3']['201'] && data['Level3']['201'].length) {\n data['Level3']['201'].forEach(element => {\n if (Object.keys(element).length && element.data.length && element.data[0].key && element.data[0].key == '301') {\n element.label = 'Select Workshop';\n }\n });\n }\n if (Object.keys(data['Level3']).length && data['Level3']['201'] && data['Level3']['201'].length) {\n data['Level3']['201'].forEach(element => {\n if (Object.keys(element).length && element.data.length && element.data[0].key && element.data[0].key == '302') {\n element.label = 'Select Date';\n element.dataType = \"Date\";\n }\n });\n }\n\n if (Object.keys(data['Level2']).length && data['Level2']['214'] && data['Level2']['214'].length) {\n data['Level2']['214'].forEach(element => {\n if (Object.keys(element).length && element.data.length && element.data[0].key && element.data[0].key == '215') {\n element.label = 'Select Reason for Disengagement';\n }\n if (Object.keys(element).length && element.data.length && element.data[0].key && element.data[0].key == '218') {\n element.label = 'Select Proposal Offer';\n }\n });\n }\n self.responseDropDownData = data;\n this.createLevel1Form(data[\"Level1\"]);\n }\n }, error => {\n this.toastr.error(error, \"Error\");\n this.spinner = false;\n });\n }\n } else {\n this.talked = \"102\";\n this.level1Form = undefined;\n this.level1info = [];\n this.level2Form = undefined;\n this.level2info = [];\n this.level3Form = undefined;\n this.level3info = [];\n this.level4Form = undefined;\n this.level4info = [];\n this.level5Form = undefined;\n this.level5info = [];\n this.yesResponce = \"\";\n this.nsReason = \"\";\n this.workshop = \"\";\n this.odometer = \"\";\n }\n }\n\n /**\n * Name: createLevel1Form\n * purpose: To create Level1 Form\n * @param {any} data - form data\n */\n createLevel1Form(data: any): void {\n this.formSubmitted = false;\n this.showRemarkError = false;\n const formDataObj = {};\n for (const prop of data) {\n formDataObj[prop.label] = new FormControl(\"\", [Validators.required]);\n if (prop.dataType == \"Dropdown\") {\n var dropDownData = [];\n let countRemoveFlag:boolean = false;\n this.countFlag = false;\n prop.data.forEach((element) => {\n if (!(countRemoveFlag && this.bookingCount >= 3 && element.key == \"201\")\n && !(countRemoveFlag && this.followupCount >= 3 && element.key == \"202\")) {\n dropDownData.push({ value: element.key, viewValue: element.value });\n }\n });\n }\n this.level1info.push({\n label: prop.label,\n type: prop.dataType,\n data: prop.dataType === \"Dropdown\" ? dropDownData : prop.data\n });\n }\n this.level1Form = new FormGroup(formDataObj);\n }\n\n /**\n * Name: createLevel2Form\n * purpose: To create Level2 Form\n * @param {any} data - form data\n */\n createLevel2Form(data: any, responseDropDownData: any): void {\n this.formSubmitted = false;\n this.showRemarkError = false;\n this.level2Form = undefined;\n this.level2info = [];\n this.level3Form = undefined;\n this.level3info = [];\n this.level4Form = undefined;\n this.level4info = [];\n this.level5Form = undefined;\n this.level5info = [];\n const formDataObj = {};\n let selection = this.level1Form.controls[\"Select Reason\"].value;\n if (data[selection] && data[selection].length) {\n for (const prop of data[selection]) {\n if (prop.dataType == \"Dropdown\") {\n if (prop.data[0].key === \"301\") {\n if (selection == \"211\") {\n } else if (selection == \"212\") {\n formDataObj['301'] = new FormControl(\"\", [Validators.required]);\n } else {\n formDataObj['301'] = new FormControl(\"\", [Validators.required]);\n }\n var dropDownData = [];\n this.workShops.forEach(element => {\n dropDownData.push({ value: element.workshopCode, viewValue: element.workshopName });\n });\n } else if(prop.data[0].key === \"215\") {\n this.form2LabelValue = prop.data[0].key;\n var dropDownData = [];\n responseDropDownData['Level3']['215'][0].data.forEach(element => {\n dropDownData.push({value: element.key, viewValue: element.value})\n })\n formDataObj[prop.data[0].key] = new FormControl(\"\", [Validators.required]);\n } else if(prop.data[0].key === \"218\") {\n var dropDownData = [];\n responseDropDownData['Level3']['218'].forEach(element => {\n element.data.forEach(element =>{\n dropDownData.push({value: element.key, viewValue: element.value})\n })\n });\n formDataObj[prop.data[0].key] = new FormControl(\"\", [Validators.required]);\n } else {\n formDataObj[prop.label] = new FormControl(\"\", Validators.required);\n var dropDownData = [];\n prop.data.forEach(element => {\n // if (!(this.serviceDetails.alreadyServicedFlag == \"N\" && this.serviceDetails.serviceType == \"Technical Campaign Order\" && element.key == \"309\")) {\n dropDownData.push({ value: element.key, viewValue: element.value });\n // }\n });\n }\n } else if (prop.dataType == \"Date\") {\n if (selection == \"211\") {\n // let committedDate = new Date(this.serviceDetails.committedDate);\n // formDataObj[prop.data[0].key] = new FormControl(committedDate);\n } else if (selection == \"213\") {\n this.reminderFollowupDate=false;\n this.showrescheduleDate =false;\n formDataObj[prop.data[0].key] = new FormControl(\"\", [Validators.required]);\n } else if (selection == \"202\" && !(this.callType == 1 || this.callType == 2 || this.callType == 6)) {\n this.reminderFollowupDate=false;\n this.showrescheduleDate =false;\n formDataObj[prop.data[0].key] = new FormControl(\"\", [Validators.required]);\n }else if(selection == '202' && (this.callType == 1 || this.callType == 2 || this.callType == 6)){\n this.reminderFollowupDate=true;\n this.showrescheduleDate = false;\n formDataObj[prop.data[0].key] = new FormControl(\"\", [Validators.required]);\n }else if (selection == \"212\") {\n this.reminderFollowupDate=false;\n this.showrescheduleDate = false;\n formDataObj[prop.data[0].key] = new FormControl(\"\", [Validators.required]);\n }else if(selection == \"220\" && (this.callType == 6)){\n this.reminderFollowupDate=false;\n this.showrescheduleDate = true;\n formDataObj[prop.data[0].key] = new FormControl(\"\", [Validators.required]);\n }else {\n this.reminderFollowupDate=false;\n this.showrescheduleDate = false;\n formDataObj[prop.data[0].key] = new FormControl(\"\", [Validators.required]);\n }\n } else if (prop.dataType == \"Number\") {\n formDataObj[prop.data[0].key] = new FormControl(\"\", [Validators.minLength(10), Validators.maxLength(10)]);\n } else if (prop.dataType == \"Time\") {\n formDataObj[prop.data[0].key] = new FormControl(\"\");\n // if (this.showBay) {\n formDataObj[\"bayStartTime\"] = new FormControl(\"\");\n // }\n } else {\n formDataObj[prop.data[0].key] = new FormControl(\"\");\n }\n this.level2info.push({\n label: prop.label,\n type: prop.dataType,\n data: prop.dataType === \"Dropdown\" ? dropDownData : prop.data\n });\n }\n }\n\n this.level2Form = new FormGroup(formDataObj);\n\n if(selection=='202' || selection =='213'){\n this.emptyVin=true;\n }\n if(selection != '214'){\n this.isDiscountproposal=false;\n this.isproposal=false;\n\n }\n }\n\n /**\n * Name: createLevel3Form\n * purpose: To create Level3 Form\n * @param {any} data - form data\n */\n createLevel3Form(data: any): void {\n this.formSubmitted = false;\n this.showRemarkError = false;\n this.level3Form = undefined;\n this.level3info = [];\n if(this.level1Form != null && this.level1Form.controls['Select Reason'].value != '214') {\n this.level4Form = undefined;\n this.level4info = [];\n this.level5Form = undefined;\n this.level5info = [];\n }\n const formDataObj = {};\n let selection = this.level2Form.controls[\"Select Reason\"].value;\n if (data[selection] && data[selection].length) {\n for (const prop of data[selection]) {\n if (prop.dataType == \"Dropdown\") {\n if (prop.data[0].key === \"301\") {\n if (selection == \"211\") {\n // let workshopCode = this.serviceDetails.workShop.split(\"/\")[0];\n // formDataObj['301'] = new FormControl(workshopCode);\n } else if (selection == \"201\") {\n formDataObj['301'] = new FormControl(\"\", [Validators.required]);\n } else {\n formDataObj['301'] = new FormControl(\"\", [Validators.required]);\n }\n var dropDownData = [];\n this.workShops.forEach(element => {\n dropDownData.push({ value: element.workshopCode, viewValue: element.workshopName });\n });\n } else {\n formDataObj[prop.label] = new FormControl(\"\", Validators.required);\n var dropDownData = [];\n prop.data.forEach(element => {\n dropDownData.push({ value: element.key, viewValue: element.value });\n });\n }\n\n } else if (prop.dataType == \"Date\") {\n if (selection == \"202\") {\n formDataObj[prop.data[0].key] = new FormControl(\"\", [Validators.required]);\n } else {\n formDataObj[prop.data[0].key] = new FormControl(\"\", [Validators.required]);\n }\n } else if (prop.dataType == \"Number\") {\n if (prop.data[0].key == \"402\") {\n this.milage = parseInt(localStorage.getItem(\"milage\")) + 1;\n formDataObj[prop.data[0].key] = new FormControl(\"\", [Validators.min(this.milage), Validators.required]);\n } else if(prop.data[0].key == \"407\"){\n formDataObj[prop.data[0].key] = new FormControl(\"\", [Validators.minLength(10), Validators.maxLength(10)]);\n } else if(prop.data[0].key == \"338\"){\n formDataObj[prop.data[0].key] = new FormControl(\"\", [Validators.minLength(6),Validators.maxLength(6),Validators.required]);\n }\n else {\n formDataObj[prop.data[0].key] = new FormControl(\"\", [Validators.minLength(10), Validators.maxLength(10), Validators.required]);\n }\n } else if (prop.dataType == \"Time\") {\n formDataObj[prop.data[0].key] = new FormControl(\"\");\n formDataObj[\"bayStartTime\"] = new FormControl(\"\");\n } else if (prop.dataType == \"Text\") {\n if(prop.data[0].key == \"800\"){\n formDataObj[prop.data[0].key] = new FormControl(\"\");\n }\n else{\n formDataObj[prop.data[0].key] = new FormControl(\"\",[Validators.required]);\n }\n } else {\n formDataObj[prop.data[0].key] = new FormControl(\"\");\n }\n this.level3info.push({\n label: prop.label,\n type: prop.dataType,\n data: prop.dataType === \"Dropdown\" ? dropDownData : prop.data\n });\n }\n }\n this.level3Form = new FormGroup(formDataObj);\n }\n\n /**\n * Name: createLevel4Form\n * purpose: To create Level4 Form\n * @param {any} data - form data\n */\n createLevel4Form(data: any): void {\n this.formSubmitted = false;\n this.showRemarkError = false;\n this.level4Form = undefined;\n this.level4info = [];\n this.level5Form = undefined;\n this.level5info = [];\n const formDataObj = {};\n var selection;\n if (Object.keys(this.level3Form.controls).indexOf(\"409\") !== -1) {\n selection = \"409\";\n } else {\n selection = Object.keys(this.level3Form.controls)[0];\n }\n if (data[this.level3Form.controls[selection].value] && data[this.level3Form.controls[selection].value].length) {\n for (const prop of data[this.level3Form.controls[selection].value]) {\n if (prop.dataType == \"Dropdown\") {\n // if (prop.data[0].key === \"502\") {\n // formDataObj['502'] = new FormControl(\"\", Validators.required);\n // var dropDownData = [];\n // this.workShops.forEach(element => {\n // dropDownData.push({ value: element.workshopCode, viewValue: element.workshopName });\n // });\n // } else {\n formDataObj[prop.label] = new FormControl(\"\", Validators.required);\n var dropDownData = [];\n prop.data.forEach(element => {\n dropDownData.push({ value: element.key, viewValue: element.value });\n });\n //}\n } else if (prop.dataType == \"RadioButton\") {\n formDataObj[\"503\"] = new FormControl(\"\", Validators.required);\n } else if (prop.dataType == \"Text\") {\n if (prop.data[0].key == \"502\") {\n formDataObj[prop.data[0].key] = new FormControl(\"\", Validators.required);\n } else {\n formDataObj[prop.data[0].key] = new FormControl(\"\");\n }\n } else if (prop.dataType == \"Date\") {\n formDataObj[prop.data[0].key] = new FormControl(\"\", Validators.required);\n } else if (prop.dataType == \"Number\") {\n if (prop.data[0].key == \"506\") {\n formDataObj[prop.data[0].key] = new FormControl(\"\", [Validators.maxLength(6), Validators.required]);\n } else {\n formDataObj[prop.data[0].key] = new FormControl(\"\", [Validators.minLength(10), Validators.maxLength(10), Validators.required]);\n }\n }\n this.level4info.push({\n label: prop.label,\n type: prop.dataType,\n data: prop.dataType === \"Dropdown\" ? dropDownData : prop.data\n });\n }\n }\n\n this.level4Form = new FormGroup(formDataObj);\n }\n\n /**\n * Name: createLevel5Form\n * purpose: To create Level5 Form\n * @param {any} data - form data\n */\n createLevel5Form(data: any): void {\n this.formSubmitted = false;\n this.showRemarkError = false;\n this.level5Form = undefined;\n this.level5info = [];\n const formDataObj = {};\n var selection = this.level4Form.controls[\"503\"].value;\n if (selection == \"503\" && data[selection] && data[selection].length) {\n for (const prop of data[selection]) {\n if (prop.dataType == \"Dropdown\") {\n formDataObj[prop.label] = new FormControl(\"\", Validators.required);\n var dropDownData = [];\n prop.data.forEach(element => {\n dropDownData.push({ value: element.key, viewValue: element.value });\n });\n }\n else if (prop.dataType == \"Date\") {\n formDataObj[prop.data[0].key] = new FormControl(\"\", Validators.required);\n }\n else if (prop.dataType == \"RadioButton\") {\n formDataObj[\"503\"] = new FormControl(\"\", Validators.required);\n } else if (prop.dataType == \"Number\") {\n formDataObj[prop.data[0].key] = new FormControl(\"\", [Validators.minLength(10), Validators.maxLength(10), Validators.required]);\n } else {\n formDataObj[prop.data[0].key] = new FormControl(\"\");\n }\n this.level5info.push({\n label: prop.label,\n type: prop.dataType,\n data: prop.dataType === \"Dropdown\" ? dropDownData : prop.data\n });\n }\n this.level5Form = new FormGroup(formDataObj);\n }\n }\n\n /**\n * Name: disengagementForm\n * purpose: To create Level5 Form\n * @param {any} data - form data\n */\n disengagementForm(data: any) {\n this.formSubmitted = false;\n this.showRemarkError = false;\n this.level4Form = undefined;\n this.level4info = [];\n this.level5Form = undefined;\n this.level5info = [];\n const formDataObj = {};\n if(this.level2Form.controls['215'].value == '312') {\n var selection = Object.keys(this.level2Form.controls)[0];\n if (data[this.level2Form.controls[selection].value] && data[this.level2Form.controls[selection].value].length) {\n for (const prop of data[this.level2Form.controls[selection].value]) {\n if (prop.dataType == \"Dropdown\") {\n formDataObj[prop.label] = new FormControl(\"\", Validators.required);\n var dropDownData = [];\n prop.data.forEach(element => {\n dropDownData.push({ value: element.key, viewValue: element.value });\n });\n } else if (prop.dataType == \"Text\") {\n formDataObj[prop.data[0].key] = new FormControl(\"\");\n } else if (prop.dataType == \"Date\") {\n formDataObj[prop.data[0].key] = new FormControl(\"\", Validators.required);\n } else if (prop.dataType == \"Number\") {\n formDataObj[prop.data[0].key] = new FormControl(\"\", [Validators.minLength(10), Validators.maxLength(10), Validators.required]);\n }\n this.level4info.push({\n label: prop.label,\n type: prop.dataType,\n data: prop.dataType === \"Dropdown\" ? dropDownData : prop.data\n });\n }\n }\n\n this.level4Form = new FormGroup(formDataObj);\n }\n }\n\n getWorkshopAppointmentFlag() {\n let workshopCode\n if( this.callType != 4)\n {\n workshopCode=this.level2Form.value[301];\n }else{\n workshopCode=this.level3Form.value[301];\n }\n this.commonService.getWorkshopAppointmentFlag(workshopCode)\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n this.workshopAppointmentFlag = res['responseData'][0].appointmentFlag;\n if(this.workshopAppointmentFlag == \"true\") {\n this.showBay = true;\n this.getWorkshopBay();\n }else{\n this.showBay = false;\n }\n if(this.callType !=4 ){\n if(this.showBay && this.level2Form.value[302] != \"\")\n {\n this.getBayVisibility();\n }\n else{\n this.chartData = [];\n }\n }\n else{\n if(this.showBay && this.level3Form.value[302] != \"\" ){\n this.getBayVisibility();\n }else {\n this.chartData = [];\n }\n }\n\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n /**\n * Name: newVehicleClick\n * purpose: To select new vehicle option\n */\n newVehicleClick() {\n this.level3Form.controls[\"409\"].setValue(\"409\");\n this.createLevel4Form(this.responseDropDownData[\"Level4\"]);\n }\n\n /**\n * Name: hasDataError\n * purpose: To check if customer form has any error\n * @param {any} control - form control\n * @return {boolean} flag to determine if form is valid.\n */\n hasDataError(control: any, form: any): boolean {\n let controler = form.controls[control];\n return (\n controler &&\n (this.formSubmitted || controler.touched || controler.dirty) &&\n !controler.valid\n );\n }\n\n /**\n * Name: isSaveEnable\n * purpose: To check if save is unable\n */\n isSaveEnable() {\n if (\n this.workshop != \"\" ||\n this.noResponce != \"\" ||\n this.odometer != \"\" ||\n this.yesResponce == \"Follow-up\" ||\n (this.nsReason != \"\" && this.nsReason != \"Odometer\")\n ) {\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * Name: createLevelWiseData\n * purpose: To create LevelWise Data\n */\n createLevelWiseData() {\n let date1 = \"\";\n var levelResponseData = {};\n\n if (this.level1Form !== undefined) {\n let obj = {};\n Object.keys(this.level1Form.value).filter(data => {\n obj[this.level1Form.value[data]] = this.level1Form.value[data];\n });\n levelResponseData[\"Level1\"] = obj;\n } else {\n levelResponseData[\"Level1\"] = null;\n }\n\n if (this.level2Form !== undefined) {\n let selectedDateTime = this.level2Form.value[302] || this.level2Form.value[304] || this.level2Form.value[318];\n if (this.level2Form.value[302] != null) {\n this.level2Form.value[302] = this.datePipe.transform(\n this.level2Form.value[302],\n \"yyyy-MM-dd\", \"+0000\"\n );\n }\n\n if (this.level2Form.value[318] != null) {\n this.level2Form.value[318] = this.datePipe.transform(\n this.level2Form.value[318],\n \"yyyy-MM-dd\", \"+0000\"\n );\n }\n\n if (this.level2Form.value[304] != null) {\n this.level2Form.value[304] = this.datePipe.transform(\n this.level2Form.value[304],\n \"yyyy-MM-dd\", \"+0000\"\n );\n }\n\n if (this.level2Form.value[302] != null) {\n date1 = this.level2Form.value[302];\n } else if (this.level2Form.value[304] != null) {\n date1 = this.level2Form.value[304];\n } else if (this.level2Form.value[318] != null) {\n date1 = this.level2Form.value[318];\n }\n\n if (this.level2Form.value[303] != null || selectedDateTime) {\n this.level2Form.value[303] = selectedDateTime;\n this.level2Form.value[303] = this.datePipe.transform(this.level2Form.value[303], \"yyyy-MM-ddTHH:mm:ssZ\", \"+0000\");\n }\n\n if (this.level2Form.value[301] != null) {\n this.level2Form.value[301] = this.level2Form.value[301];\n }\n\n if(this.level1Form.controls['Select Reason'].value == '214') {\n levelResponseData[\"Level2\"] = this.level2Form.value;\n } else {\n let level2formValues = Object.assign({}, this.level2Form.value);\n levelResponseData[\"Level2\"] = level2formValues;\n }\n\n //bay time selection\n if (selectedDateTime && this.showBay && (levelResponseData['Level1']['201'] != null ||\n levelResponseData['Level1']['212'] != null) && this.level2Form.value[\"bayStartTime\"] != null) {\n //bay selection\n this.level2Form.value[800] = this.selectedBayNo + \"\";\n //bay time\n let selectedDate = this.datePipe.transform(selectedDateTime, \"yyyy-MM-dd\");\n let selectedTime = this.datePipe.transform(this.level2Form.value[\"bayStartTime\"], \"HH:mm:ss\");\n let bayDateTime = new Date(selectedDate + 'T' + selectedTime);\n //service time data data\n this.level2Form.value[302] = this.datePipe.transform(bayDateTime, \"yyyy-MM-dd\");\n this.level2Form.value[303] = this.datePipe.transform(bayDateTime, \"yyyy-MM-ddTHH:mm:ssZ\");\n //bayForm data\n this.level2Form.value[801] = this.datePipe.transform(bayDateTime, \"yyyy-MM-ddTHH:mm:ssZ\");\n this.level2Form.value[\"bayStartTime\"] = this.datePipe.transform(bayDateTime, \"yyyy-MM-ddTHH:mm:ssZ\");\n //bayendtime\n this.bayEndTime = bayDateTime.setHours(bayDateTime.getHours() + this.serviceHours);\n this.bayEndTime = bayDateTime.setMinutes(bayDateTime.getMinutes() + this.serviceMintus);\n this.bayEndTime = this.datePipe.transform(this.bayEndTime, \"HH:mm:ss\");\n\n }\n let level2formValues = Object.assign({}, this.level2Form.value);\n delete level2formValues['bayStartTime'];\n delete level2formValues[800];\n delete level2formValues[801];\n delete level2formValues['package'];\n if(this.customerData.callTypeCode==\"4\" && this.level1Form.controls[\"Select Reason\"].value==\"214\"){\n level2formValues[215]=level2formValues[215].join(';');\n if(this.isproposal==true)\n level2formValues[218]=level2formValues[218]+\"#\"+this.proposalRemark;\n }\n if(this.isDiscountproposal==true){\n level2formValues[218]=level2formValues[218]+\"#\"+this.proposalDiscount;\n }\n levelResponseData[\"Level2\"] = level2formValues;\n\n } else {\n levelResponseData[\"Level2\"] = null;\n }\n\n if (this.level3Form !== undefined) {\n let selectedDateTime = this.level3Form.value[302] || this.level3Form.value[337];\n if (this.level3Form.value[302] != null) {\n this.level3Form.value[302] = this.datePipe.transform(\n this.level3Form.value[302],\n \"yyyy-MM-dd\", \"+0000\"\n );\n }\n\n if (this.level3Form.value[337] != null) {\n this.level3Form.value[337] = this.datePipe.transform(\n this.level3Form.value[337],\n \"yyyy-MM-dd\", \"+0000\"\n );\n }\n\n if (this.level3Form.value[302] != null) {\n date1 = this.level3Form.value[302];\n } else if (this.level3Form.value[337] != null) {\n date1 = this.level3Form.value[337];\n }\n\n if (this.level3Form.value[303] != null) {\n this.level3Form.value[303] = selectedDateTime;\n this.level3Form.value[303] = this.datePipe.transform(this.level3Form.value[303], \"yyyy-MM-ddTHH:mm:ssZ\", \"+0000\");\n }\n\n if (this.level3Form.value[301] != null) {\n this.level3Form.value[301] = this.level3Form.value[301];\n }\n\n //bay time selection\n if (selectedDateTime && this.showBay && levelResponseData['Level1']['214'] != null && this.level3Form.value[\"bayStartTime\"] != null) {\n //bay selection\n this.level3Form.value[800] = this.selectedBayNo + \"\";\n\n //bay time\n let selectedDate = this.datePipe.transform(selectedDateTime, \"yyyy-MM-dd\");\n let selectedTime = this.datePipe.transform(this.level3Form.value[\"bayStartTime\"], \"HH:mm:ss\");\n let bayDateTime = new Date(selectedDate + 'T' + selectedTime);\n //service time data data\n this.level3Form.value[302] = this.datePipe.transform(bayDateTime, \"yyyy-MM-dd\");\n this.level3Form.value[303] = this.datePipe.transform(bayDateTime, \"yyyy-MM-ddTHH:mm:ssZ\");\n //bayForm data\n this.level3Form.value[801] = this.datePipe.transform(bayDateTime, \"yyyy-MM-ddTHH:mm:ssZ\");\n this.level3Form.value[\"bayStartTime\"] = this.datePipe.transform(bayDateTime, \"yyyy-MM-ddTHH:mm:ssZ\");\n //bayendtime\n this.bayEndTime = bayDateTime.setHours(bayDateTime.getHours() + this.serviceHours);\n this.bayEndTime = bayDateTime.setMinutes(bayDateTime.getMinutes() + this.serviceMintus);\n this.bayEndTime = this.datePipe.transform(this.bayEndTime, \"HH:mm:ss\");\n\n }\n let level3formValues = Object.assign({}, this.level3Form.value);\n delete level3formValues['bayStartTime'];\n delete level3formValues[800];\n delete level3formValues[801];\n delete level3formValues['package'];\n levelResponseData[\"Level3\"] = level3formValues;\n // levelResponseData[\"Level3\"] = this.level3Form.value;\n } else {\n levelResponseData[\"Level3\"] = null;\n }\n\n if (this.level4Form !== undefined) {\n let selectedDateTime = this.level4Form.value[501];\n if (this.level4Form.value[501] != null) {\n this.level4Form.value[501] = this.datePipe.transform(\n this.level4Form.value[501],\n \"yyyy-MM-dd\", \"+0000\"\n );\n }\n levelResponseData[\"Level4\"] = this.level4Form.value;\n } else {\n levelResponseData[\"Level4\"] = null;\n }\n\n if (this.level5Form !== undefined) {\n levelResponseData[\"Level5\"] = this.level5Form.value;\n } else {\n levelResponseData[\"Level5\"] = null;\n }\n\n return levelResponseData;\n }\n\n /**\n * Name: removeSavedVin\n * purpose: To remove Saved Vin\n */\n removeSavedVin(): void {\n const index: number = this.vinNoListArray.indexOf(this.defaultVin);\n if (index !== -1) {\n this.vinNoListArray.splice(index, 1);\n }\n if(this.emptyVin){\n this.vinNoListArray=[];\n }\n if (this.vinNoListArray.length == 0) {\n this.closeDailog();\n this.router.navigate([\"lost-customer\"]);\n } else {\n this.defaultVin = this.vinNoListArray[0];\n if(this.workshopAppointmentFlag == 'true') {\n this.showBay = true;\n } else {\n this.showBay = false;\n }\n this.bayError = false;\n\n this.level1Form = undefined;\n this.level1info = [];\n this.level2Form = undefined;\n this.level2info = [];\n this.level3Form = undefined;\n this.level3info = [];\n this.level4Form = undefined;\n this.level4info = [];\n this.level5Form = undefined;\n this.level5info = [];\n this.creRemark = null;\n this.submitted = false;\n this.showRemarkError = false;\n this.createLevel1Form(this.responseDropDownData[\"Level1\"]);\n }\n }\n\n checkFormValidation(): boolean {\n let valid = true;\n if (this.talked == \"102\" && this.noResponce == \"\") {\n valid = false;\n } else if (this.level1Form !== undefined && !this.level1Form.valid) {\n valid = false;\n } else if (this.level2Form !== undefined && !this.level2Form.valid) {\n valid = false;\n } else if (this.level3Form !== undefined && !this.level3Form.valid) {\n valid = false;\n } else if (this.level4Form !== undefined && !this.level4Form.valid) {\n valid = false;\n } else if (this.level5Form !== undefined && !this.level5Form.valid) {\n valid = false;\n }\n if (this.talked == \"101\") {\n if ((!this.creRemark && this.noResponce == \"209\")\n || (!this.creRemark && (this.level1Form && this.level1Form.value['Select Reason'] && this.level1Form.value['Select Reason'] == \"204\")\n && (this.level2Form && this.level2Form.value['Select Reason'] && this.level2Form.value['Select Reason'] == \"315\"))) {\n this.showRemarkError = true;\n valid = false;\n }\n }\n this.submitted = valid;\n return valid;\n }\n\n /**\n * Name: saveDialData\n * purpose: To save Dial Data\n */\n saveDialData(): void {\n this.commonService.customerResponse = '';\n this.submitted = true;\n this.formSubmitted = true;\n let packageId;\n if (this.checkFormValidation()) {\n this.showNoRespError = false;\n this.showRemarkError = false;\n var levelData = this.createLevelWiseData();\n this.spinner = true;\n this.callhanged = true;\n let data = \"\";\n let customerCallStatus = this.yesResponce;\n if (this.yesResponce == \"\") {\n customerCallStatus = this.noResponce;\n data = this.noResponce;\n }\n if (this.yesResponce == \"Booking\") {\n if (this.workshop == \"Other\") {\n data = this.other;\n } else {\n data = this.workshop;\n }\n }\n if (this.yesResponce == \"No Service\") {\n data = this.nsReason;\n if (this.nsReason == \"Odometer\") {\n this.other = this.odometer;\n }\n }\n if (this.rescheduleDate != null) {\n this.rescheduleDate = this.datePipe.transform(this.rescheduleDate,\"yyyy-MM-dd\");\n } else {\n this.rescheduleDate = \"\";\n }\n let bay;\n let bayEndTime;\n if (this.level2Form !== undefined && this.showBay && (levelData['Level1']['212'] != null || levelData['Level1']['201'] != null)) {\n bay = this.selectedBayNo;\n bayEndTime = this.bayEndTime;\n }else if (this.level3Form !== undefined && this.showBay && (levelData['Level1']['214'] != null || levelData['Level2']['Select Reason'] != null)) {\n bay = this.selectedBayNo;\n bayEndTime = this.bayEndTime;\n }\n else {\n bay = '';\n // bayEndTime = this.datePipe.transform(new Date(), \"yyyy-MM-dd\") + \"T00:00:00+0530\";\n bayEndTime = \"00:00:00\";\n }\n if(this.level2Form !== undefined && this.level2Form.value[\"package\"] != null ) {\n packageId = this.level2Form.value[\"package\"];\n } else {\n packageId = '';\n }\n let custData = new CustData(\n this.customerId,\n this.startTime,\n new Date(),\n this.talked,\n this.creRemark,\n this.userID,\n levelData,\n this.noResponce,\n this.rescheduleDate,\n this.defaultVin,\n this.userID,\n this.cusType,\n this.phoneNo,\n this.custNameForSave,\n this.userRoles,\n bay,\n bayEndTime\n );\n \n this.saveCallRecording(custData)\n } else if (this.talked == \"102\" && this.noResponce == \"\") {\n this.showNoRespError = true;\n } else if ((!this.creRemark && this.noResponce == \"209\")\n || (!this.creRemark && (this.level1Form && this.level1Form.value['Select Reason'] && this.level1Form.value['Select Reason'] == \"204\")\n && (this.level2Form && this.level2Form.value['Select Reason'] && this.level2Form.value['Select Reason'] == \"315\"))) {\n this.showRemarkError = true;\n }\n }\n\n saveResponse(custResData: any): void {\n this.commonService.saveLostCustomerData(custResData).subscribe(\n res => {\n if (res[\"responseCode\"] == 0) {\n this.spinner = false;\n this.submitted = false;\n this.toastr.info(res[\"message\"], \"Success\");\n if (this.talked == \"101\") {\n if (this.customerNumber != this.primaryNumber && this.isCustomerNumber) {\n this.updateNumber();\n }\n this.removeSavedVin();\n } else {\n this.closeDailog();\n this.router.navigate([\"lost-customer\"]);\n }\n this.formSubmitted = false;\n } else {\n this.submitted = false;\n this.formSubmitted = false;\n this.spinner = false;\n this.toastr.error(res[\"message\"], \"Error\");\n }\n },\n error => {\n this.submitted = false;\n this.formSubmitted = false;\n this.toastr.error(error, \"Error\");\n this.spinner = false;\n }\n );\n }\n\n /**\n * Name: getWorkshopBay\n * purpose: To getWorkshopBay\n */\n getWorkshopBay(): void {\n this.commonService.getWorkshopBay(this.userID).subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n this.assignedBay = res[\"responseData\"];\n } else {\n this.toastr.error(res[\"message\"], \"Error\");\n this.spinner = false;\n }\n }, error => {\n this.toastr.error(error, \"Error\");\n this.spinner = false;\n });\n }\n\n proposalSelection(proposal){\n if(proposal.value== '323'){\n this.isproposal=true;\n this.isDiscountproposal=false;\n }\n if(proposal.value==\"319\" || proposal.value== \"320\"){\n this.isDiscountproposal=true;\n this.isproposal=false;\n }\n if(proposal.value=='321' || proposal.value== '322'){\n this.isproposal=false;\n this.isDiscountproposal=false;\n }\n }\n\n /**\n * Name: getBayVisibility\n * purpose: To getBayVisibility\n */\n getBayVisibility(): void {\n\n let selectedDate\n let workshopCode\n\n if(this.callType !=4 )\n {\n selectedDate=this.datePipe.transform(this.level2Form.value[302], \"yyyy-MM-dd\");\n workshopCode=this.level2Form.value[301];\n }\n else\n {\n selectedDate=this.datePipe.transform(this.level3Form.value[302], \"yyyy-MM-dd\");\n workshopCode=this.level3Form.value[301];\n }\n\n this.bayLayout = [];\n this.chartData = [];\n this.commonService.getBayVisibility(workshopCode, selectedDate).subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n if (res[\"responseData\"].length) {\n res[\"responseData\"].sort(function (a, b) {\n let aStartTime = new Date(selectedDate + 'T' + a.startTime);\n let bStartTime = new Date(selectedDate + 'T' + b.startTime);\n\n var aMin = aStartTime.getMinutes();\n var aHrs = aMin > 0 ? aMin / 60 : 0;\n let aTime = aStartTime.getHours() + aHrs;\n\n var bMin = bStartTime.getMinutes();\n var bHrs = bMin > 0 ? bMin / 60 : 0;\n let bTime = bStartTime.getHours() + bHrs;\n return aTime - bTime;\n });\n }\n var result = Object.assign([], res[\"responseData\"]);\n\n\n //get assigned workshop details\n this.assignedBay.forEach(element => {\n if (element.workshopCode == workshopCode) {\n this.workShopBay = element;\n }\n });\n this.workShopBay.bayArea = Object.assign([], res[\"responseData\"]);\n let totalNoBay = Number(this.workShopBay.totalNoBay);\n //set baylayout\n let bayList = [];\n for (let b = 1; b <= totalNoBay; b++) {\n var bay = result.filter(item => item.bay == b);\n bayList.push(bay);\n }\n this.selectedBay = Object.assign([], bayList[0]);\n this.selectedBayNo = bayList.length ? 1 : \"\";\n this.bayLayout = Object.assign([], bayList);\n\n //get bay details\n this.bayOpen = new Date(selectedDate + 'T' + this.workShopBay.startTime);\n this.bayClose = new Date(selectedDate + 'T' + this.workShopBay.endTime);\n if( this.callType !=4){\n this.level2Form.controls.bayStartTime.setValue(this.bayOpen);\n }\n else {\n this.level3Form.controls.bayStartTime.setValue(this.bayOpen);\n }\n //get chart labels\n let startTime = this.checkHours(this.bayOpen);\n let endTime = this.checkHours(this.bayClose);\n\n this.chartOptions.scales.xAxes[0].ticks.min = startTime;\n this.chartOptions.scales.xAxes[0].ticks.max = endTime;\n\n //fill bay availability\n this.bayLayout.forEach(bayData => {\n let chartData: ChartDataSets[] = [];\n let chartLength = 0;\n let i = startTime;\n for (i; i <= endTime; i++) {\n let slot = {};\n slot['value'] = i;\n slot['available'] = true;\n\n bayData.some((element, index) => {\n //service time\n let serviceStart = new Date(selectedDate + 'T' + element.startTime);\n let serviceEnd = new Date(selectedDate + 'T' + element.endTime);\n\n //final service day hrs\n let serviceStartTime = this.checkHours(serviceStart);\n let serviceEndTime = this.checkHours(serviceEnd);\n\n let serVal = serviceEndTime - serviceStartTime;\n\n if (i >= serviceStartTime) {\n slot['available'] = false;\n let chartVal = serVal;\n if (chartVal > 0) {\n i = chartData.length ? (i + chartVal - 1) : serviceEndTime - 1;\n chartVal = chartData.length ? chartVal : serviceStartTime + chartVal;\n let data: ChartDataSets = {\n data: [chartVal],\n stack: 'a',\n label: 'Occupied',\n backgroundColor: '#e64243',\n hoverBackgroundColor: '#e64243',\n borderSkipped: 'left',\n borderWidth: 1,\n borderColor: \"#e64243\",\n barThickness: 8\n }\n chartLength = chartLength + chartVal;\n chartData.push(data);\n bayData.splice(index, 1);\n }\n return true;\n } else {\n let chartVal = serviceStartTime - i;\n if (chartVal > 0) {\n i = chartData.length ? (i + chartVal - 1) : serviceStartTime - 1;\n chartVal = chartData.length ? chartVal : serviceStartTime;\n let data: ChartDataSets = {\n data: [chartVal],\n stack: 'a',\n label: 'Available',\n backgroundColor: '#d3d3d3',\n hoverBackgroundColor: '#d3d3d3',\n borderSkipped: 'left',\n borderWidth: 1,\n borderColor: \"#d3d3d3\",\n barThickness: 8\n }\n chartLength = chartLength + chartVal;\n chartData.push(data);\n return true;\n }\n }\n });\n if (bayData.length == 0) {\n let chartVal = endTime - chartLength;\n let data: ChartDataSets = {\n data: [chartVal],\n stack: 'a',\n label: 'Available',\n backgroundColor: '#d3d3d3',\n hoverBackgroundColor: '#d3d3d3',\n borderSkipped: 'left',\n borderWidth: 1,\n borderColor: \"#d3d3d3\",\n barThickness: 8\n }\n chartData.push(data);\n break;\n }\n }\n this.chartData.push(chartData);\n });\n if(this.callType !=4 )\n {\n if (this.level2Form.value['bayStartTime']) {\n this.checkAvailability(this.level2Form);\n }\n }\n else{\n if (this.level3Form.value['bayStartTime']) {\n this.checkAvailability(this.level3Form);\n }\n\n }\n\n } else {\n this.toastr.error(res[\"message\"], \"Error\");\n this.spinner = false;\n }\n }, error => {\n this.toastr.error(error, \"Error\");\n this.spinner = false;\n });\n }\n\n\n /**\n * Name: selectBay\n * purpose: To selectBay\n */\n selectBay(bay: any) {\n this.bayError = false;\n this.selectedBay = this.workShopBay.bayArea.filter(item => item.bay == (bay.value + 1));\n this.selectedBayNo = bay.value + 1;\n\n }\n\n\n /**\n * Name: checkAvailability\n * purpose: To checkAvailability\n */\n checkAvailability(form: any): void {\n this.bayError = false;\n let serviceTime = 1.5;\n let date\n let bayOpen = this.checkHours(this.bayOpen);\n let bayClose = this.checkHours(this.bayClose);\n let selectedTime = this.checkHours(new Date(form.value['bayStartTime']));\n let selectedEndTime = selectedTime + serviceTime;\n if (this.selectedBay.length) {\n this.selectedBay.some(element => {\n if(this.callType != 4){\n date = this.datePipe.transform(this.level2Form.value['bayStartTime'], \"yyyy-MM-dd\");\n }\n else{\n date = this.datePipe.transform(this.level3Form.value['bayStartTime'], \"yyyy-MM-dd\");\n }\n let startDate = new Date(date + 'T' + element.startTime);\n let endDate = new Date(date + 'T' + element.endTime);\n let startTimeS = this.checkHours(startDate);\n let endTimeS = this.checkHours(endDate);\n if ((selectedTime >= startTimeS && selectedTime < endTimeS) ||\n (selectedEndTime > startTimeS && selectedEndTime <= endTimeS) ||\n (selectedEndTime > bayClose) || (selectedTime < bayOpen) ||\n (selectedTime <= startTimeS && selectedEndTime >= endTimeS)) {\n this.bayError = true;\n return true;\n }\n });\n } else {\n let selectedTime = this.checkHours(new Date(form.value['bayStartTime']));\n let selectedEndTime = selectedTime + serviceTime;\n if ((selectedEndTime > bayClose) || (selectedTime < bayOpen)) {\n this.bayError = true;\n }\n }\n }\n /**\n * Name: checkHours\n * purpose: To checkHours\n */\n checkHours(selectedTime) {\n var startMin = selectedTime.getMinutes();\n var hrsOpen = startMin > 0 ? startMin / 60 : 0;\n let startTime = selectedTime.getHours() + hrsOpen;\n return startTime;\n }\n\n\n\n /**\n * Name: updateNumber\n * purpose: To set customer number\n */\n updateNumber(): void {\n this.commonService.updateNumber(this.customerNumber, this.primaryNumber, 'Primary', this.customerId, this.userID, '', '').subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n this.spinner = false;\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n })\n }\n\n\n\n getBookingFollowupCount(customerId: string, vin: string) {\n this.commonService.getLostBookingFollowupCount(customerId, vin, 'LCRM')\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n this.bookingCount = res['responseData'].bookingCount;\n this.followupCount = res['responseData'].followUpCount;\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n\n }\n\n private saveCallRecording(data:any){\n const URI = localStorage.getItem('exotel_URI')\n const CRE_ID = this.userInfo.userId \n const CUSTOMER_CODE = this.customerData.customerId\n const SOURCE = \"LCRM\";\n console.log(\"SAVE\" , URI);\n if (URI)\n {\n this.spinner = true;\n \n const callRecordingParams = new SaveCallRecordingParams(CRE_ID,CUSTOMER_CODE,SOURCE,URI)\n this.commonService.saveCallRecording_API(callRecordingParams).subscribe({\n next:(response)=>{\n if (response.responseCode == 0) {\n this.toastr.success(response.message, 'Success')\n this.saveResponse(data);\n }\n else\n {\n this.toastr.error(response.message, 'Error');\n this.submitted = false;\n }\n \n }\n ,error:(error)=>{\n console.log(error);\n this.submitted = false;\n this.spinner = false;\n },\n complete:()=>{\n this.spinner = false;\n \n \n }\n })\n }else{\n this.saveResponse(data)\n }\n }\n\n\n}\n\nclass CustData {\n customerId: string;\n // serviceDueDate: string;\n callStartTime: string;\n callEndTime: string;\n customerContactInd: string;\n customerCallStatus: string;\n creRemark: string;\n userID: string;\n data: string;\n date: string;\n time: string;\n other: string;\n levelData: object;\n responseForNo: string;\n rescheduleDate:any;\n vin: string;\n dealerCode: string;\n customerType:string;\n phoneNo:string;\n customerName:string;\n role:string;\n bay:string;\n bayEndTime:any;\n\n constructor(\n customerId,\n callStartTime,\n callEndTime,\n customerContactInd,\n creRemark,\n userID,\n levelData,\n responseForNo,\n rescheduleDate,\n vin,\n dealerCode,\n customerType,\n phoneNo,\n customerName,\n role,\n bay,\n bayEndTime\n ) {\n this.customerId = customerId;\n // this.serviceDueDate = serviceDueDate;\n this.callStartTime = callStartTime;\n this.callEndTime = callEndTime;\n this.customerContactInd = customerContactInd;\n this.creRemark = creRemark;\n this.userID = userID;\n this.levelData = levelData;\n this.responseForNo = responseForNo;\n this.rescheduleDate = rescheduleDate;\n this.vin = vin;\n this.dealerCode = dealerCode;\n this.customerType=customerType;\n this.phoneNo=phoneNo;\n this.customerName=customerName;\n this.role=role;\n this.bay=bay;\n this.bayEndTime=bayEndTime\n }\n\n}","export default \".mat-tab-nav-bar {\\n background-color: #00457d;\\n height: 30px;\\n}\\n.imageVolvo {\\n width: 40%;\\n height: auto;\\n float: left;\\n padding: 5px;\\n padding-left: 20px;\\n}\\n.header {\\n color: white;\\n font-size: 14px;\\n margin-left: 0px;\\n}\\n.button-style {\\n padding: 1%;\\n background-color: #00457d;\\n color: white;\\n margin: 0 auto;\\n display: block;\\n font-weight: bold;\\n cursor: pointer;\\n}\\n.filterdiv {\\n align-items:center;\\n }\\n.droupdown-style {\\n width: 200px;\\n margin: 10px;\\n}\\n.droupdown-style1{\\n width: 400px;\\n margin: 10px;\\n margin-left: 80px;\\n}\\n.droupdown-style2{\\n width: 420px;\\n margin: 10px;\\n}\\n.filter-label {\\n font: 12px Roboto;\\n font-weight: bold;\\n letter-spacing: 0px;\\n color: #3c3c3c;\\n opacity: 1;\\n margin-bottom: 3px;\\n padding: 1px 0px 0px;\\n}\\n.filter1 ::ng-deep .mat-form-field-infix {\\n border: 1px solid lightgray;\\n border-radius: 5px;\\n background: white;\\n padding: 0;\\n height: 20px;\\n}\\n.filter1 ::ng-deep .mat-select {\\n padding: 4px 0px;\\n //width: 90% !important;\\n}\\n.filter1 ::ng-deep .mat-select-trigger {\\n padding-left: 8px;\\n}\\n.filter1 ::ng-deep .mat-select-value {\\n width: 90% !important;\\n}\\n.filter1 ::ng-deep .mat-button {\\n font-size: 12px;\\n font: white;\\n}\\n.filter1 ::ng-deep .mat-form-field-label-wrapper {\\n top: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n.filter1 ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 0;\\n}\\n.filter1 ::ng-deep .mat-form-field-underline {\\n display: none;\\n}\\n.filter1 ::ng-deep .mat-form-field-label {\\n top: 0;\\n margin-top: 4px !important;\\n padding-left: 5px;\\n}\\n.filter1 ::ng-deep .mat-select-arrow-wrapper {\\n padding-bottom: 0px;\\n}\\n.filter1 {\\n font-size: 12px;\\n}\\n.dataview{\\n margin-left: 5px;\\n margin-top: 3px;\\n color: black;\\n}\\n.filter2 ::ng-deep .mat-form-field-infix {\\n border: 1px solid lightgray;\\n border-radius: 5px;\\n background: white;\\n padding: 0;\\n height: 20px;\\n}\\n.filter2 ::ng-deep .mat-select {\\n padding: 4px 0px;\\n //width: 90% !important;\\n}\\n.filter2 ::ng-deep .mat-select-trigger {\\n padding-left: 8px;\\n}\\n.filter2 ::ng-deep .mat-select-value {\\n width: 90% !important;\\n}\\n.filter2 ::ng-deep .mat-button {\\n font-size: 12px;\\n font: white;\\n}\\n.filter2 ::ng-deep .mat-form-field-label-wrapper {\\n top: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n.filter2 ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 0;\\n}\\n.filter2 ::ng-deep .mat-form-field-underline {\\n display: none;\\n}\\n.filter2 ::ng-deep .mat-form-field-label {\\n top: 0;\\n margin-top: 4px !important;\\n padding-left: 5px;\\n}\\n.filter2 ::ng-deep .mat-select-arrow-wrapper {\\n padding-bottom: 0px;\\n}\\n.filter2 {\\n font-size: 12px;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbW9kYWwvbG9zdC1jdXN0b21lci1sZWFkLXVwZGF0ZS1kaWFsb2cvbG9zdC1jdXN0b21lci1sZWFkLXVwZGF0ZS1kaWFsb2cuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLHlCQUF5QjtFQUN6QixZQUFZO0FBQ2Q7QUFDQTtFQUNFLFVBQVU7RUFDVixZQUFZO0VBQ1osV0FBVztFQUNYLFlBQVk7RUFDWixrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLFlBQVk7RUFDWixlQUFlO0VBQ2YsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxXQUFXO0VBQ1gseUJBQXlCO0VBQ3pCLFlBQVk7RUFDWixjQUFjO0VBQ2QsY0FBYztFQUNkLGlCQUFpQjtFQUNqQixlQUFlO0FBQ2pCO0FBRUE7RUFDRSxrQkFBa0I7RUFDbEI7QUFFRjtFQUNFLFlBQVk7RUFDWixZQUFZO0FBQ2Q7QUFFQTtFQUNFLFlBQVk7RUFDWixZQUFZO0VBQ1osaUJBQWlCO0FBQ25CO0FBRUE7RUFDRSxZQUFZO0VBQ1osWUFBWTtBQUNkO0FBR0E7RUFDRSxpQkFBaUI7RUFDakIsaUJBQWlCO0VBQ2pCLG1CQUFtQjtFQUNuQixjQUFjO0VBQ2QsVUFBVTtFQUNWLGtCQUFrQjtFQUNsQixvQkFBb0I7QUFDdEI7QUFHQTtFQUNFLDJCQUEyQjtFQUMzQixrQkFBa0I7RUFDbEIsaUJBQWlCO0VBQ2pCLFVBQVU7RUFDVixZQUFZO0FBQ2Q7QUFFQTtFQUNFLGdCQUFnQjtFQUNoQix1QkFBdUI7QUFDekI7QUFFQTtFQUNFLGlCQUFpQjtBQUNuQjtBQUVBO0VBQ0UscUJBQXFCO0FBQ3ZCO0FBRUE7RUFDRSxlQUFlO0VBQ2YsV0FBVztBQUNiO0FBRUE7RUFDRSxNQUFNO0VBQ04sY0FBYztFQUNkLGlCQUFpQjtBQUNuQjtBQUVBO0VBQ0UsaUJBQWlCO0FBQ25CO0FBRUE7RUFDRSxhQUFhO0FBQ2Y7QUFFQTtFQUNFLE1BQU07RUFDTiwwQkFBMEI7RUFDMUIsaUJBQWlCO0FBQ25CO0FBRUE7RUFDRSxtQkFBbUI7QUFDckI7QUFFQTtFQUNFLGVBQWU7QUFDakI7QUFFQTtFQUNFLGdCQUFnQjtFQUNoQixlQUFlO0VBQ2YsWUFBWTtBQUNkO0FBRUE7RUFDRSwyQkFBMkI7RUFDM0Isa0JBQWtCO0VBQ2xCLGlCQUFpQjtFQUNqQixVQUFVO0VBQ1YsWUFBWTtBQUNkO0FBRUE7RUFDRSxnQkFBZ0I7RUFDaEIsdUJBQXVCO0FBQ3pCO0FBRUE7RUFDRSxpQkFBaUI7QUFDbkI7QUFFQTtFQUNFLHFCQUFxQjtBQUN2QjtBQUVBO0VBQ0UsZUFBZTtFQUNmLFdBQVc7QUFDYjtBQUVBO0VBQ0UsTUFBTTtFQUNOLGNBQWM7RUFDZCxpQkFBaUI7QUFDbkI7QUFFQTtFQUNFLGlCQUFpQjtBQUNuQjtBQUVBO0VBQ0UsYUFBYTtBQUNmO0FBRUE7RUFDRSxNQUFNO0VBQ04sMEJBQTBCO0VBQzFCLGlCQUFpQjtBQUNuQjtBQUVBO0VBQ0UsbUJBQW1CO0FBQ3JCO0FBRUE7RUFDRSxlQUFlO0FBQ2pCIiwiZmlsZSI6InNyYy9hcHAvbW9kYWwvbG9zdC1jdXN0b21lci1sZWFkLXVwZGF0ZS1kaWFsb2cvbG9zdC1jdXN0b21lci1sZWFkLXVwZGF0ZS1kaWFsb2cuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5tYXQtdGFiLW5hdi1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdkO1xuICBoZWlnaHQ6IDMwcHg7XG59XG4uaW1hZ2VWb2x2byB7XG4gIHdpZHRoOiA0MCU7XG4gIGhlaWdodDogYXV0bztcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmc6IDVweDtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xufVxuLmhlYWRlciB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBtYXJnaW4tbGVmdDogMHB4O1xufVxuLmJ1dHRvbi1zdHlsZSB7XG4gIHBhZGRpbmc6IDElO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdkO1xuICBjb2xvcjogd2hpdGU7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmZpbHRlcmRpdiB7XG4gIGFsaWduLWl0ZW1zOmNlbnRlcjtcbiAgfVxuXG4uZHJvdXBkb3duLXN0eWxlIHtcbiAgd2lkdGg6IDIwMHB4O1xuICBtYXJnaW46IDEwcHg7XG59XG5cbi5kcm91cGRvd24tc3R5bGUxe1xuICB3aWR0aDogNDAwcHg7XG4gIG1hcmdpbjogMTBweDtcbiAgbWFyZ2luLWxlZnQ6IDgwcHg7XG59XG5cbi5kcm91cGRvd24tc3R5bGUye1xuICB3aWR0aDogNDIwcHg7XG4gIG1hcmdpbjogMTBweDtcbn1cblxuXG4uZmlsdGVyLWxhYmVsIHtcbiAgZm9udDogMTJweCBSb2JvdG87XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICBjb2xvcjogIzNjM2MzYztcbiAgb3BhY2l0eTogMTtcbiAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICBwYWRkaW5nOiAxcHggMHB4IDBweDtcbn1cblxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBwYWRkaW5nOiAwO1xuICBoZWlnaHQ6IDIwcHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdCB7XG4gIHBhZGRpbmc6IDRweCAwcHg7XG4gIC8vd2lkdGg6IDkwJSAhaW1wb3J0YW50O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gIHBhZGRpbmctbGVmdDogOHB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdmFsdWUge1xuICB3aWR0aDogOTAlICFpbXBvcnRhbnQ7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udDogd2hpdGU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gIHRvcDogMDtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdG9wOiAwO1xuICBtYXJnaW4tdG9wOiA0cHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC1hcnJvdy13cmFwcGVyIHtcbiAgcGFkZGluZy1ib3R0b206IDBweDtcbn1cblxuLmZpbHRlcjEge1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5kYXRhdmlld3tcbiAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgbWFyZ2luLXRvcDogM3B4O1xuICBjb2xvcjogYmxhY2s7XG59XG5cbi5maWx0ZXIyIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIHBhZGRpbmc6IDA7XG4gIGhlaWdodDogMjBweDtcbn1cblxuLmZpbHRlcjIgOjpuZy1kZWVwIC5tYXQtc2VsZWN0IHtcbiAgcGFkZGluZzogNHB4IDBweDtcbiAgLy93aWR0aDogOTAlICFpbXBvcnRhbnQ7XG59XG5cbi5maWx0ZXIyIDo6bmctZGVlcCAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XG59XG5cbi5maWx0ZXIyIDo6bmctZGVlcCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gIHdpZHRoOiA5MCUgIWltcG9ydGFudDtcbn1cblxuLmZpbHRlcjIgOjpuZy1kZWVwIC5tYXQtYnV0dG9uIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250OiB3aGl0ZTtcbn1cblxuLmZpbHRlcjIgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIHtcbiAgdG9wOiAwO1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXIyIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMiA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5maWx0ZXIyIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0b3A6IDA7XG4gIG1hcmdpbi10b3A6IDRweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbn1cblxuLmZpbHRlcjIgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LWFycm93LXdyYXBwZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMHB4O1xufVxuXG4uZmlsdGVyMiB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbiJdfQ== */\"","import { Component, OnInit, Inject, EventEmitter, Output, Input } from '@angular/core';\nimport { MatDialog, MatDialogConfig, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\nimport { FormControl } from '@angular/forms';\nimport { CommonService } from '../../core/service/common-service/common.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { Router } from '@angular/router';\n\n@Component({\n\tselector: 'app-lost-customer-lead-update-dialog',\n\ttemplateUrl: './lost-customer-lead-update-dialog.component.html',\n\tstyleUrls: [ './lost-customer-lead-update-dialog.component.css' ]\n})\nexport class LostCustomerLeadUpdateDialogComponent implements OnInit {\n\n\n\tvin: any\n\tcustomerCode: any\n\tleadStatus: FormControl = new FormControl('');\n\tleadStatusRemarks: FormControl = new FormControl('');\n\tcountryCode: string;\n\tuserId: string;\n\tchassisArray: string[] = [];\n\tselectedChassis: string[] = [];\n\n\tconstructor(\n\t\tpublic dialog: MatDialog,\n\t\tprivate router: Router,\n\t\tprivate commonService: CommonService,\n\t\tprivate toastr: ToastrService,\n\t\tprivate dialogRef: MatDialogRef,\n\t\t@Inject(MAT_DIALOG_DATA) public data: any\n\n\t) {\n\t\tthis.customerCode = data.customerCode;\n\t}\n\n\tngOnInit() {\n\t\tthis.countryCode = localStorage.getItem('countryCode');\n\t\tthis.userId = localStorage.getItem('userId');\n\t\tthis.getWMVehicleDetails();\n\t}\n\n\tgetWMVehicleDetails() {\n\t\tthis.commonService.LCWorkshopManagerLeadsVehicleDetails(this.customerCode).subscribe((res) => {\n\t\t\tif (res['responseCode'] == 0 && res['responseData'] != undefined) {\n\t\t\t\tif (res['responseData'].length != 0) {\n\t\t\t\t\tres['responseData'].forEach(element => {\n\t\t\t\t\t\tif (element.registrationNumber != null || element.registrationNumber != \"\") {\n\t\t\t\t\t\t\tthis.chassisArray.push(element.registrationNumber);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tthis.chassisArray.push(element.chassisNumber);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tthis.toastr.error(\"No vehicle Found\", \"Error\");\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.toastr.error(res['message'], \"Error\");\n\t\t\t}\n\t\t}, err => {\n\t\t\tthis.toastr.error('Something went wrong, Please try again.', 'Error');\n\t\t});\n\t}\n\n\tonclose() {\n\t\tthis.dialogRef.close();\n\t}\n\n\tupdateLeadStatus() {\n\t\tthis.vin = this.selectedChassis.join(\";\");\n\t\tif (this.leadStatus.valid && this.leadStatusRemarks.valid && this.vin != \"\") {\n\t\t\tthis.commonService\n\t\t\t\t.updateLeadStatus(\n\t\t\t\t\tthis.customerCode,\n\t\t\t\t\tthis.vin,\n\t\t\t\t\tthis.leadStatus.value,\n\t\t\t\t\tthis.leadStatusRemarks.value,\n\t\t\t\t\tthis.userId\n\t\t\t\t)\n\t\t\t\t.subscribe(\n\t\t\t\t\t(res) => {\n\t\t\t\t\t\tif (res['responseCode'] == 0 && res['responseData'] != undefined) {\n\t\t\t\t\t\t\tthis.toastr.info('Status Updated', 'Success');\n\t\t\t\t\t\t\tif (res['message'] != null || res['message'] != \"\") {\n\t\t\t\t\t\t\t\tthis.dialogRef.close(-1);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.toastr.error('Status Not Updated', 'Error');\n\t\t\t\t\t\t\tthis.onclose();\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t(err) => {\n\t\t\t\t\t\tthis.toastr.error('Something went wrong, Please try again.', 'Error');\n\t\t\t\t\t\tthis.onclose();\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t} else {\n\t\t\tthis.toastr.error(\"Please fill required fields\");\n\t\t}\n\t}\n}\n\nexport function openLostCustomerLeadUpdateDialog(dialog: MatDialog, customerCode) {\n\tconst config = new MatDialogConfig();\n\tconfig.disableClose = true;\n\tconfig.autoFocus = true;\n\tconfig.width = '500px';\n\tconfig.height = '350px';\n\tconfig.data = {\n\t\tcustomerCode: customerCode,\n\t};\n\tconst dialogRef = dialog.open(LostCustomerLeadUpdateDialogComponent, config);\n\treturn dialogRef.afterClosed();\n}\n","export default \".call-header {\\n font-family: Bold 16px/22px Roboto;\\n font-size: 20px;\\n margin-left: 0px;\\n}\\n\\n.form-field {\\n font-size: 12px !important;\\n}\\n\\n.form-field label {\\n font-weight: 500;\\n margin-bottom: 5px;\\n font-size: 12px !important;\\n}\\n\\n.form-field input {\\n padding: 3px;\\n font-size: 12px !important;\\n width: 300px !important;\\n}\\n\\n.form-field mat-form-field {\\n font-size: 12px !important;\\n width: 207px !important;\\n}\\n\\n.filterButton {\\n color: white !important;\\n background-color: #00457D;\\n height: 25px;\\n line-height: 25px;\\n margin-bottom: 1px;\\n}\\n\\n.btnStyle button {\\n color: white;\\n background-color: #00457D;\\n border-radius: 5px;\\n font-size: 12px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9tb2RhbC9uZXctdGlja2V0LWRpYWxvZy9uZXctdGlja2V0LWRpYWxvZy5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvbW9kYWwvbmV3LXRpY2tldC1kaWFsb2cvbmV3LXRpY2tldC1kaWFsb2cuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxrQ0FBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtBQ0NGOztBREVBO0VBQ0UsMEJBQUE7QUNDRjs7QURBRTtFQUNJLGdCQUFBO0VBQ0Esa0JBQUE7RUFDQSwwQkFBQTtBQ0VOOztBREFFO0VBQ0ksWUFBQTtFQUNBLDBCQUFBO0VBQ0EsdUJBQUE7QUNFTjs7QURBRTtFQUNJLDBCQUFBO0VBQ0EsdUJBQUE7QUNFTjs7QURFQTtFQUNFLHVCQUFBO0VBQ0EseUJBQUE7RUFDQSxZQUFBO0VBQ0EsaUJBQUE7RUFDQSxrQkFBQTtBQ0NGOztBREdFO0VBQ0ksWUFBQTtFQUNBLHlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxlQUFBO0FDQU4iLCJmaWxlIjoic3JjL2FwcC9tb2RhbC9uZXctdGlja2V0LWRpYWxvZy9uZXctdGlja2V0LWRpYWxvZy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5jYWxsLWhlYWRlciB7XG4gIGZvbnQtZmFtaWx5OiBCb2xkIDE2cHgvMjJweCBSb2JvdG87XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbWFyZ2luLWxlZnQ6IDBweDtcbn1cblxuLmZvcm0tZmllbGQge1xuICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcbiAgbGFiZWwge1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICAgIGZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50O1xuICB9XG4gIGlucHV0IHtcbiAgICAgIHBhZGRpbmc6IDNweDtcbiAgICAgIGZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50O1xuICAgICAgd2lkdGg6IDMwMHB4ICFpbXBvcnRhbnQ7XG4gIH1cbiAgbWF0LWZvcm0tZmllbGQge1xuICAgICAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7XG4gICAgICB3aWR0aDogMjA3cHggIWltcG9ydGFudDtcbiAgfVxufVxuXG4uZmlsdGVyQnV0dG9uIHtcbiAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0Q7XG4gIGhlaWdodDogMjVweDtcbiAgbGluZS1oZWlnaHQ6IDI1cHg7XG4gIG1hcmdpbi1ib3R0b206IDFweDtcbn1cblxuLmJ0blN0eWxlIHtcbiAgYnV0dG9uIHtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0Q7XG4gICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAvL3dpZHRoOiAyMDBweDtcbiAgfVxufVxuIiwiLmNhbGwtaGVhZGVyIHtcbiAgZm9udC1mYW1pbHk6IEJvbGQgMTZweC8yMnB4IFJvYm90bztcbiAgZm9udC1zaXplOiAyMHB4O1xuICBtYXJnaW4tbGVmdDogMHB4O1xufVxuXG4uZm9ybS1maWVsZCB7XG4gIGZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50O1xufVxuLmZvcm0tZmllbGQgbGFiZWwge1xuICBmb250LXdlaWdodDogNTAwO1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gIGZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50O1xufVxuLmZvcm0tZmllbGQgaW5wdXQge1xuICBwYWRkaW5nOiAzcHg7XG4gIGZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50O1xuICB3aWR0aDogMzAwcHggIWltcG9ydGFudDtcbn1cbi5mb3JtLWZpZWxkIG1hdC1mb3JtLWZpZWxkIHtcbiAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAyMDdweCAhaW1wb3J0YW50O1xufVxuXG4uZmlsdGVyQnV0dG9uIHtcbiAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0Q7XG4gIGhlaWdodDogMjVweDtcbiAgbGluZS1oZWlnaHQ6IDI1cHg7XG4gIG1hcmdpbi1ib3R0b206IDFweDtcbn1cblxuLmJ0blN0eWxlIGJ1dHRvbiB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBmb250LXNpemU6IDEycHg7XG59Il19 */\"","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { CommonService } from '../../core/service/common-service/common.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { MatDialogRef } from '@angular/material';\n\n@Component({\n selector: 'app-new-ticket-dialog',\n templateUrl: './new-ticket-dialog.component.html',\n styleUrls: ['./new-ticket-dialog.component.scss']\n})\nexport class NewTicketDialogComponent implements OnInit {\n\n //createRequest: FormControl = new FormControl();\n\n formData = new FormData();\n\n spinner: boolean;\n requestForm: FormGroup;\n customerData: any;\n userId: string;\n userRoles: string;\n custId: any;\n submitted: boolean;\n userInfo: any;\n attachmentName: string;\n chassisNo: any[] = [];\n uiFileName: any;\n showDownloadButton: boolean;\n buttonFlag: boolean;\n\n constructor(private commonService: CommonService, private router: Router, private toastr: ToastrService,\n private formBuilder: FormBuilder, private dialogRef: MatDialogRef) {\n }\n\n ngOnInit() {\n this.customerData = JSON.parse(localStorage.getItem('customerData'));\n this.userId = localStorage.getItem('userId');\n this.userRoles = localStorage.getItem('userRoles');\n let userInfo = JSON.parse(localStorage.getItem('userInfo'));\n this.userInfo = userInfo[0];\n this.buildLoginForm();\n this.buttonFlag = false;\n }\n\n /**\n * Name: buildLoginForm\n * purpose: To create customer data form\n */\n buildLoginForm() {\n this.requestForm = this.formBuilder.group({\n customerID: ['', Validators.required],\n correctCustomerName: ['', Validators.required],\n incorrectCustomerName: ['', Validators.required],\n vin: ['', Validators.required],\n correctCustomerNumber: ['', [Validators.required, Validators.minLength(10), Validators.maxLength(10)]],\n incorrectCustomerNumber: ['', [Validators.required, Validators.minLength(10), Validators.maxLength(10)]]\n });\n }\n\n newTicket() {\n this.submitted = true;\n this.buttonFlag = true;\n this.spinner = true;\n let status = \"\";\n\n if(this.userInfo.roleId != \"1\") {\n status = \"accept\";\n } else {\n status = \"\";\n }\n\n if(this.requestForm.valid) {\n let request = '{' +\n '\"custId\" : \"' + this.requestForm.value.customerID + '\",\"custNameCorrect\" : \"' + this.requestForm.value.correctCustomerName\n + '\",\"custNameInCorrect\" : \"' + this.requestForm.value.incorrectCustomerName + '\",\"vin\" : \"' + this.requestForm.value.vin\n + '\",\"custContactNoCorrect\" : \"' + this.requestForm.value.correctCustomerNumber + '\",\"custContactNoInCorrect\" : \"' + this.requestForm.value.incorrectCustomerNumber\n + '\",\"attechment\" : \"' + \"\" + '\",\"remarks\" : \"' + \"\" + '\",\"fleetNameCorrect\" : \"' + \"\" + '\",\"fleetContactNoCorrect\" : \"' + \"\"\n + '\",\"fleetNameInCorrect\" : \"' + \"\" + '\",\"fleetContactNoInCorrect\" : \"' + \"\" + '\",\"driverName\" : \"' + \"\"\n + '\",\"driverContactNo\" : \"' + \"\" + '\",\"sourceId\" : \"' + \"SRM\" +'\",\"status\" : \"' + status + '\"}';\n let data = {\n file: this.formData,\n model: request,\n };\n this.commonService.createNewTicket(this.userId, this.userInfo.roleId, data)\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'] != undefined) {\n this.toastr.success(res['message'], \"Success\");\n this.submitted = false;\n this.spinner = false;\n } else {\n this.spinner = false;\n this.submitted = false;\n this.toastr.error(res['message'], \"Error\");\n }\n\n this.closeDialog();\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n }\n\n closeDialog() {\n this.close();\n this.dialogRef.close(false);\n }\n\n close() {\n this.dialogRef.close(false);\n }\n\n /**\n * Name: hasCustDataError\n * purpose: To check if customer form has any error\n * @param {any} control - form control\n * @return {boolean} flag to determine if form is valid.\n */\n hasError(control: any): boolean {\n return (\n control &&\n (this.submitted || control.touched || control.dirty) &&\n !control.valid\n );\n }\n\n onFileUpload(event: any) {\n this.attachmentName = \"\";\n this.formData = new FormData();\n let file: File = event.target.files[0];\n this.attachmentName = file.name;\n let filePath = event.currentTarget.value.split(\"\\\\\")[2];\n this.formData.append('file', file, filePath);\n }\n\n clear(): void {\n this.requestForm.reset();\n }\n}\n","export default \".working-area {\\n margin-top: 115px;\\n}\\n\\ntable {\\n width: 100%;\\n}\\n\\n.calling-table tr {\\n cursor: pointer;\\n}\\n\\n.table-head-call {\\n background: none;\\n padding-top: 12px;\\n}\\n\\n.button-margin {\\n margin-left: 10px;\\n}\\n\\n.callList {\\n font: Bold 20px Roboto;\\n letter-spacing: 0px;\\n color: #484848;\\n opacity: 1;\\n}\\n\\n.close-con {\\n font-size: 18px;\\n cursor: pointer;\\n top: 3px;\\n right: 1px;\\n position: absolute !important;\\n z-index: 10;\\n opacity: 1;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-infix {\\n border: 1px solid lightgray;\\n border-radius: 5px;\\n background: white;\\n padding: 0;\\n height: 20px;\\n}\\n\\n.filter1 ::ng-deep .mat-select {\\n padding: 3px 0px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-trigger {\\n padding-left: 8px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-value {\\n width: 89%;\\n}\\n\\n.filter1 ::ng-deep .mat-button {\\n font-size: 12px;\\n font: white;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label-wrapper {\\n top: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-underline {\\n display: none;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label {\\n top: 0;\\n margin-top: 4px !important;\\n padding-left: 5px;\\n}\\n\\n.filter-label {\\n font: Bold 14px Roboto;\\n letter-spacing: 0px;\\n color: #3c3c3c;\\n opacity: 1;\\n margin-bottom: 5px;\\n}\\n\\n.refesh-icon {\\n float: right;\\n margin-bottom: -30px;\\n margin-right: 20px;\\n margin-top: 30px;\\n cursor: pointer;\\n}\\n\\n.coloredRow {\\n background: #ffff99;\\n}\\n\\n.coloredGreenRow {\\n background: #90ee90;\\n}\\n\\n.mat-dialog-title {\\n background-color: darkgray;\\n}\\n\\n.callList-right {\\n font-size: 11px;\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.columnHeader {\\n font: Bold 12px Roboto;\\n letter-spacing: 0px;\\n color: #333333;\\n text-transform: capitalize;\\n}\\n\\n.lost {\\n color: #e64243;\\n position: absolute;\\n left: 10px;\\n font-size: 10px;\\n top: 38%;\\n}\\n\\n.inbound {\\n color: #2e3668;\\n position: absolute;\\n left: 0px;\\n font-size: 10px;\\n top: 38%;\\n}\\n\\n.columnvalue {\\n font-size: 14px;\\n position: relative;\\n}\\n\\n.filter1 {\\n font-size: 12px;\\n}\\n\\n.filterButton {\\n color: white !important;\\n background-color: #00457D;\\n height: 20px;\\n line-height: 10px;\\n margin-bottom: 1px;\\n}\\n\\n.filterdiv {\\n align-items: center;\\n}\\n\\n.serviceDueDate {\\n width: 10% !important;\\n}\\n\\n.followUp {\\n width: 9% !important;\\n}\\n\\ntd.mat-cell,\\ntd.mat-footer-cell,\\nth.mat-header-cell {\\n padding: 3px;\\n border-style: solid none none solid;\\n border-width: 0.1px;\\n border-color: lightgray;\\n}\\n\\n.table-border.mat-table {\\n border-style: none solid solid none;\\n border-color: lightgray;\\n}\\n\\nth.mat-header-cell {\\n background-color: #d9d9d9;\\n}\\n\\n.filter2 {\\n width: auto;\\n text-transform: capitalize;\\n}\\n\\n.call-stats-card .mat-card-title {\\n margin-bottom: 0px;\\n}\\n\\n.call-stats-card .call-stats {\\n font-size: 11px;\\n color: #ffffff;\\n}\\n\\n.call-stats-card .call-stats i {\\n color: #2e3668;\\n font-size: 11px;\\n}\\n\\n.call-stats-card .call-stats-title {\\n font-size: 20px;\\n color: #484848;\\n}\\n\\n.call-stats-card1 {\\n padding-top: 0px;\\n}\\n\\n.call-stats-card-border1 {\\n border-style: solid solid none solid;\\n border-width: 1px;\\n border-radius: 0%;\\n border-color: lightgray;\\n}\\n\\n.call-stats-card-border2 {\\n border-style: solid solid solid solid;\\n border-width: 1px;\\n border-radius: 0%;\\n margin-bottom: 15px;\\n border-color: lightgray;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-group {\\n border-radius: 0px;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle {\\n background-color: #ffffff;\\n color: #5482BC;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-checked {\\n background-color: #5482BC;\\n color: #ffffff;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-label-content {\\n line-height: 30px;\\n font: Regular 14px Roboto;\\n letter-spacing: 0px;\\n}\\n\\n.toggle-btn-grp ::ng-deep .refresh-btn.mat-button {\\n min-width: auto;\\n}\\n\\n.refresh-btn {\\n background-color: #ffffff;\\n color: #e64243;\\n border: 1px solid #e64243;\\n border-radius: 0px;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-flex {\\n border: 1px solid lightgray;\\n border-radius: 3px;\\n background: white;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-label {\\n padding-left: 10px;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-infix {\\n border-top: none;\\n}\\n\\n.textboxService ::ng-deep label.mat-form-field-label {\\n margin-top: 8px !important;\\n}\\n\\n.textboxService ::ng-deep input.mat-input-element {\\n margin-top: 0.6em;\\n margin-left: 10px;\\n}\\n\\n.search-icon {\\n position: absolute;\\n right: 15px;\\n top: 15px;\\n}\\n\\n.backColor {\\n background-color: #00457D !important;\\n font-size: 12px;\\n}\\n\\n.box-size {\\n margin-left: 10px;\\n margin-top: 7px;\\n width: 28px;\\n height: 28px;\\n color: #ffffff !important;\\n}\\n\\n.backColor1 {\\n background-color: #5482BC !important;\\n font-size: 12px;\\n}\\n\\n.call-stats-value {\\n margin-left: 50px;\\n font-size: 18px;\\n}\\n\\n.call-stats-value1 {\\n margin-left: 30px;\\n font-size: 18px;\\n}\\n\\n.info-circle-size {\\n font-size: 12px !important;\\n color: #ffffff !important;\\n}\\n\\n.flex-set {\\n margin-top: 7px;\\n margin-left: 62px;\\n}\\n\\n.flex-set1 {\\n margin-top: 7px;\\n margin-left: 73px;\\n}\\n\\n.dueDateIcon {\\n height: 9px;\\n width: 11px;\\n}\\n\\n.filter3 {\\n width: 200px;\\n margin-right: 30px;\\n font-size: 12px;\\n}\\n\\n.paginator ::ng-deep .mat-form-field-infix {\\n height: 18px !important;\\n padding-bottom: 0px;\\n}\\n\\n.filter-label {\\n font: 12px Roboto;\\n letter-spacing: 0px;\\n color: #3c3c3c;\\n opacity: 1;\\n margin-bottom: 3px;\\n padding: 1px 0px 0px;\\n}\\n\\n.calender {\\n position: relative;\\n background: white;\\n}\\n\\n.calender input {\\n width: 180px;\\n border: 1px solid lightgray !important;\\n border-radius: 5px;\\n font-size: 12px;\\n height: 22px;\\n padding-left: 5px;\\n}\\n\\n.calander-btn {\\n position: absolute;\\n right: 7px;\\n top: 4px;\\n}\\n\\n.form-field label {\\n font-weight: 500;\\n margin-bottom: 5px;\\n}\\n\\n.form-field input {\\n padding: 6px;\\n}\\n\\n.enquiryButton {\\n color: white !important;\\n background-color: #00457D;\\n margin-top: 0px;\\n margin-bottom: 2px;\\n}\\n\\n.formcss {\\n padding: 19px;\\n padding-top: 0px;\\n margin-top: 0px;\\n margin-left: 0px;\\n padding-inline: 30px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9tb2RhbC9waXBlbGluZS1lbnF1aXJ5LXRhYmxlL3BpcGVsaW5lLWVucXVpcnktdGFibGUuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL21vZGFsL3BpcGVsaW5lLWVucXVpcnktdGFibGUvcGlwZWxpbmUtZW5xdWlyeS10YWJsZS5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLGlCQUFBO0FDQ0o7O0FERUE7RUFDSSxXQUFBO0FDQ0o7O0FERUE7RUFDSSxlQUFBO0FDQ0o7O0FERUE7RUFDSSxnQkFBQTtFQUNBLGlCQUFBO0FDQ0o7O0FERUE7RUFDSSxpQkFBQTtBQ0NKOztBREVBO0VBQ0ksc0JBQUE7RUFDQSxtQkFBQTtFQUNBLGNBQUE7RUFDQSxVQUFBO0FDQ0o7O0FERUE7RUFDSSxlQUFBO0VBQ0EsZUFBQTtFQUNBLFFBQUE7RUFDQSxVQUFBO0VBQ0EsNkJBQUE7RUFDQSxXQUFBO0VBQ0EsVUFBQTtBQ0NKOztBREVBO0VBQ0ksMkJBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0VBQ0EsVUFBQTtFQUNBLFlBQUE7QUNDSjs7QURFQTtFQUNJLGdCQUFBO0FDQ0o7O0FERUE7RUFDSSxpQkFBQTtBQ0NKOztBREVBO0VBQ0ksVUFBQTtBQ0NKOztBREVBO0VBQ0ksZUFBQTtFQUNBLFdBQUE7QUNDSjs7QURFQTtFQUNJLE1BQUE7RUFDQSxjQUFBO0VBQ0EsaUJBQUE7QUNDSjs7QURFQTtFQUNJLGlCQUFBO0FDQ0o7O0FERUE7RUFDSSxhQUFBO0FDQ0o7O0FERUE7RUFDSSxNQUFBO0VBQ0EsMEJBQUE7RUFDQSxpQkFBQTtBQ0NKOztBREVBO0VBQ0ksc0JBQUE7RUFDQSxtQkFBQTtFQUNBLGNBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7QUNDSjs7QURFQTtFQUNJLFlBQUE7RUFDQSxvQkFBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxlQUFBO0FDQ0o7O0FERUE7RUFDSSxtQkFBQTtB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QUFBO0FDRFI7O0FES0E7RUFDSSxrQkFBQTtFQUNBLFVBQUE7RUFDQSxRQUFBO0FDRko7O0FETUk7RUFDSSxnQkFBQTtFQUNBLGtCQUFBO0FDSFI7O0FES0k7RUFDSSxZQUFBO0FDSFI7O0FET0E7RUFDSSx1QkFBQTtFQUNBLHlCQUFBO0VBQ0EsZUFBQTtFQUNBLGtCQUFBO0FDSko7O0FET0E7RUFDSSxhQUFBO0VBQ0EsZ0JBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxvQkFBQTtBQ0pKIiwiZmlsZSI6InNyYy9hcHAvbW9kYWwvcGlwZWxpbmUtZW5xdWlyeS10YWJsZS9waXBlbGluZS1lbnF1aXJ5LXRhYmxlLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLndvcmtpbmctYXJlYSB7XG4gICAgbWFyZ2luLXRvcDogMTE1cHg7XG59XG5cbnRhYmxlIHtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLmNhbGxpbmctdGFibGUgdHIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnRhYmxlLWhlYWQtY2FsbCB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBwYWRkaW5nLXRvcDogMTJweDtcbn1cblxuLmJ1dHRvbi1tYXJnaW4ge1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuXG4uY2FsbExpc3Qge1xuICAgIGZvbnQ6IEJvbGQgMjBweCBSb2JvdG87XG4gICAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgICBjb2xvcjogIzQ4NDg0ODtcbiAgICBvcGFjaXR5OiAxO1xufVxuXG4uY2xvc2UtY29uIHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRvcDogM3B4O1xuICAgIHJpZ2h0OiAxcHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gICAgei1pbmRleDogMTA7XG4gICAgb3BhY2l0eTogMTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGhlaWdodDogMjBweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0IHtcbiAgICBwYWRkaW5nOiAzcHggMHB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gICAgcGFkZGluZy1sZWZ0OiA4cHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gICAgd2lkdGg6IDg5JTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtYnV0dG9uIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udDogd2hpdGU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gICAgdG9wOiAwO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgdG9wOiAwO1xuICAgIG1hcmdpbi10b3A6IDRweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctbGVmdDogNXB4O1xufVxuXG4uZmlsdGVyLWxhYmVsIHtcbiAgICBmb250OiBCb2xkIDE0cHggUm9ib3RvO1xuICAgIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gICAgY29sb3I6ICMzYzNjM2M7XG4gICAgb3BhY2l0eTogMTtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG5cbi5yZWZlc2gtaWNvbiB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbi1ib3R0b206IC0zMHB4O1xuICAgIG1hcmdpbi1yaWdodDogMjBweDtcbiAgICBtYXJnaW4tdG9wOiAzMHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmNvbG9yZWRSb3cge1xuICAgIGJhY2tncm91bmQ6ICNmZmZmOTk7XG59XG5cbi5jb2xvcmVkR3JlZW5Sb3cge1xuICAgIGJhY2tncm91bmQ6ICM5MGVlOTA7XG59XG5cbi5tYXQtZGlhbG9nLXRpdGxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZ3JheTtcbn1cblxuLmNhbGxMaXN0LXJpZ2h0IHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG5cbi5jb2x1bW5IZWFkZXIge1xuICAgIGZvbnQ6IEJvbGQgMTJweCBSb2JvdG87XG4gICAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgICBjb2xvcjogIzMzMzMzMztcbiAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbn1cblxuLmxvc3Qge1xuICAgIGNvbG9yOiAjZTY0MjQzO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICB0b3A6IDM4JTtcbn1cblxuLmluYm91bmQge1xuICAgIGNvbG9yOiAjMmUzNjY4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwcHg7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIHRvcDogMzglO1xufVxuXG4uY29sdW1udmFsdWUge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5maWx0ZXIxIHtcbiAgICBmb250LXNpemU6IDEycHg7XG59XG5cbi5maWx0ZXJCdXR0b24ge1xuICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0Q7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDFweDtcbn1cblxuLmZpbHRlcmRpdiB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLnNlcnZpY2VEdWVEYXRlIHtcbiAgICB3aWR0aDogMTAlICFpbXBvcnRhbnQ7XG59XG5cbi5mb2xsb3dVcCB7XG4gICAgd2lkdGg6IDklICFpbXBvcnRhbnQ7XG59XG5cbnRkLm1hdC1jZWxsLFxudGQubWF0LWZvb3Rlci1jZWxsLFxudGgubWF0LWhlYWRlci1jZWxsIHtcbiAgICBwYWRkaW5nOiAzcHg7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZCBub25lIG5vbmUgc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAwLjFweDtcbiAgICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxuLnRhYmxlLWJvcmRlci5tYXQtdGFibGUge1xuICAgIGJvcmRlci1zdHlsZTogbm9uZSBzb2xpZCBzb2xpZCBub25lO1xuICAgIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG50aC5tYXQtaGVhZGVyLWNlbGwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkOWQ5ZDk7XG59XG5cbi5maWx0ZXIyIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbn1cblxuLmNhbGwtc3RhdHMtY2FyZCB7XG4gICAgLm1hdC1jYXJkLXRpdGxlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIH1cbiAgICAuY2FsbC1zdGF0cyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIGkge1xuICAgICAgICAgICAgY29sb3I6ICMyZTM2Njg7XG4gICAgICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmNhbGwtc3RhdHMtdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgIGNvbG9yOiAjNDg0ODQ4O1xuICAgIH1cbn1cblxuLmNhbGwtc3RhdHMtY2FyZDEge1xuICAgIHBhZGRpbmctdG9wOiAwcHg7XG59XG5cbi5jYWxsLXN0YXRzLWNhcmQtYm9yZGVyMSB7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZCBzb2xpZCBub25lIHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDAlO1xuICAgIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4uY2FsbC1zdGF0cy1jYXJkLWJvcmRlcjIge1xuICAgIGJvcmRlci1zdHlsZTogc29saWQgc29saWQgc29saWQgc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAge1xuICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgY29sb3I6ICM1NDgyQkM7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM1NDgyQkM7XG4gICAgY29sb3I6ICNmZmZmZmY7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWxhYmVsLWNvbnRlbnQge1xuICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgIGZvbnQ6IFJlZ3VsYXIgMTRweCBSb2JvdG87XG4gICAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAucmVmcmVzaC1idG4ubWF0LWJ1dHRvbiB7XG4gICAgbWluLXdpZHRoOiBhdXRvO1xufVxuXG4ucmVmcmVzaC1idG4ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgY29sb3I6ICNlNjQyNDM7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2U2NDI0MztcbiAgICBib3JkZXItcmFkaXVzOiAwcHg7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWZsZXgge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICBib3JkZXItdG9wOiBub25lO1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIGxhYmVsLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICBtYXJnaW4tdG9wOiA4cHggIWltcG9ydGFudDtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCBpbnB1dC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gICAgbWFyZ2luLXRvcDogMC42ZW07XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbi5zZWFyY2gtaWNvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAxNXB4O1xuICAgIHRvcDogMTVweDtcbn1cblxuLmJhY2tDb2xvciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RCAhaW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmJveC1zaXplIHtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICBtYXJnaW4tdG9wOiA3cHg7XG4gICAgd2lkdGg6IDI4cHg7XG4gICAgaGVpZ2h0OiAyOHB4O1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbi5iYWNrQ29sb3IxIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTQ4MkJDICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uY2FsbC1zdGF0cy12YWx1ZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwcHg7XG4gICAgZm9udC1zaXplOiAxOHB4O1xufVxuXG4uY2FsbC1zdGF0cy12YWx1ZTEge1xuICAgIG1hcmdpbi1sZWZ0OiAzMHB4O1xuICAgIGZvbnQtc2l6ZTogMThweDtcbn1cblxuLmluZm8tY2lyY2xlLXNpemUge1xuICAgIGZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbi5mbGV4LXNldCB7XG4gICAgbWFyZ2luLXRvcDogN3B4O1xuICAgIG1hcmdpbi1sZWZ0OiA2MnB4O1xuICAgIC8vdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uZmxleC1zZXQxIHtcbiAgICBtYXJnaW4tdG9wOiA3cHg7XG4gICAgbWFyZ2luLWxlZnQ6IDczcHg7XG59XG5cbi5kdWVEYXRlSWNvbiB7XG4gICAgaGVpZ2h0OiA5cHg7XG4gICAgd2lkdGg6IDExcHg7XG59XG5cbi5maWx0ZXIzIHtcbiAgICB3aWR0aDogMjAwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAzMHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLnBhZ2luYXRvciA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICBoZWlnaHQ6IDE4cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMHB4O1xufVxuXG4uZmlsdGVyLWxhYmVsIHtcbiAgICBmb250OiAxMnB4IFJvYm90bztcbiAgICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICAgIGNvbG9yOiAjM2MzYzNjO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICAgIHBhZGRpbmc6IDFweCAwcHggMHB4O1xufVxuXG4uY2FsZW5kZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBpbnB1dCB7XG4gICAgICAgIHdpZHRoOiAxODBweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5ICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBoZWlnaHQ6IDIycHg7XG4gICAgICAgIHBhZGRpbmctbGVmdDogNXB4O1xuICAgIH1cbn1cblxuLmNhbGFuZGVyLWJ0biB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiA3cHg7XG4gICAgdG9wOiA0cHg7XG59XG5cbi5mb3JtLWZpZWxkIHtcbiAgICBsYWJlbCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICB9XG4gICAgaW5wdXQge1xuICAgICAgICBwYWRkaW5nOiA2cHg7XG4gICAgfVxufVxuXG4uZW5xdWlyeUJ1dHRvbntcbiAgICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEO1xuICAgIG1hcmdpbi10b3A6IDBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAycHg7XG59XG5cbi5mb3JtY3Nze1xuICAgIHBhZGRpbmc6IDE5cHg7XG4gICAgcGFkZGluZy10b3A6IDBweDtcbiAgICBtYXJnaW4tdG9wOiAwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDBweDtcbiAgICBwYWRkaW5nLWlubGluZTogMzBweDtcbn1cbiIsIi53b3JraW5nLWFyZWEge1xuICBtYXJnaW4tdG9wOiAxMTVweDtcbn1cblxudGFibGUge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmNhbGxpbmctdGFibGUgdHIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi50YWJsZS1oZWFkLWNhbGwge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBwYWRkaW5nLXRvcDogMTJweDtcbn1cblxuLmJ1dHRvbi1tYXJnaW4ge1xuICBtYXJnaW4tbGVmdDogMTBweDtcbn1cblxuLmNhbGxMaXN0IHtcbiAgZm9udDogQm9sZCAyMHB4IFJvYm90bztcbiAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgY29sb3I6ICM0ODQ4NDg7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5jbG9zZS1jb24ge1xuICBmb250LXNpemU6IDE4cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdG9wOiAzcHg7XG4gIHJpZ2h0OiAxcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB6LWluZGV4OiAxMDtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgcGFkZGluZzogMDtcbiAgaGVpZ2h0OiAyMHB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3Qge1xuICBwYWRkaW5nOiAzcHggMHB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gIHBhZGRpbmctbGVmdDogOHB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdmFsdWUge1xuICB3aWR0aDogODklO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1idXR0b24ge1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQ6IHdoaXRlO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIge1xuICB0b3A6IDA7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRvcDogMDtcbiAgbWFyZ2luLXRvcDogNHB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xufVxuXG4uZmlsdGVyLWxhYmVsIHtcbiAgZm9udDogQm9sZCAxNHB4IFJvYm90bztcbiAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgY29sb3I6ICMzYzNjM2M7XG4gIG9wYWNpdHk6IDE7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cblxuLnJlZmVzaC1pY29uIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tYm90dG9tOiAtMzBweDtcbiAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICBtYXJnaW4tdG9wOiAzMHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5jb2xvcmVkUm93IHtcbiAgYmFja2dyb3VuZDogI2ZmZmY5OTtcbn1cblxuLmNvbG9yZWRHcmVlblJvdyB7XG4gIGJhY2tncm91bmQ6ICM5MGVlOTA7XG59XG5cbi5tYXQtZGlhbG9nLXRpdGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogZGFya2dyYXk7XG59XG5cbi5jYWxsTGlzdC1yaWdodCB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG5cbi5jb2x1bW5IZWFkZXIge1xuICBmb250OiBCb2xkIDEycHggUm9ib3RvO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICBjb2xvcjogIzMzMzMzMztcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG59XG5cbi5sb3N0IHtcbiAgY29sb3I6ICNlNjQyNDM7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMTBweDtcbiAgZm9udC1zaXplOiAxMHB4O1xuICB0b3A6IDM4JTtcbn1cblxuLmluYm91bmQge1xuICBjb2xvcjogIzJlMzY2ODtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwcHg7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgdG9wOiAzOCU7XG59XG5cbi5jb2x1bW52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZmlsdGVyMSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmZpbHRlckJ1dHRvbiB7XG4gIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEO1xuICBoZWlnaHQ6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxcHg7XG59XG5cbi5maWx0ZXJkaXYge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uc2VydmljZUR1ZURhdGUge1xuICB3aWR0aDogMTAlICFpbXBvcnRhbnQ7XG59XG5cbi5mb2xsb3dVcCB7XG4gIHdpZHRoOiA5JSAhaW1wb3J0YW50O1xufVxuXG50ZC5tYXQtY2VsbCxcbnRkLm1hdC1mb290ZXItY2VsbCxcbnRoLm1hdC1oZWFkZXItY2VsbCB7XG4gIHBhZGRpbmc6IDNweDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZCBub25lIG5vbmUgc29saWQ7XG4gIGJvcmRlci13aWR0aDogMC4xcHg7XG4gIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4udGFibGUtYm9yZGVyLm1hdC10YWJsZSB7XG4gIGJvcmRlci1zdHlsZTogbm9uZSBzb2xpZCBzb2xpZCBub25lO1xuICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxudGgubWF0LWhlYWRlci1jZWxsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q5ZDlkOTtcbn1cblxuLmZpbHRlcjIge1xuICB3aWR0aDogYXV0bztcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG59XG5cbi5jYWxsLXN0YXRzLWNhcmQgLm1hdC1jYXJkLXRpdGxlIHtcbiAgbWFyZ2luLWJvdHRvbTogMHB4O1xufVxuLmNhbGwtc3RhdHMtY2FyZCAuY2FsbC1zdGF0cyB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4uY2FsbC1zdGF0cy1jYXJkIC5jYWxsLXN0YXRzIGkge1xuICBjb2xvcjogIzJlMzY2ODtcbiAgZm9udC1zaXplOiAxMXB4O1xufVxuLmNhbGwtc3RhdHMtY2FyZCAuY2FsbC1zdGF0cy10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgY29sb3I6ICM0ODQ4NDg7XG59XG5cbi5jYWxsLXN0YXRzLWNhcmQxIHtcbiAgcGFkZGluZy10b3A6IDBweDtcbn1cblxuLmNhbGwtc3RhdHMtY2FyZC1ib3JkZXIxIHtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZCBzb2xpZCBub25lIHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLXJhZGl1czogMCU7XG4gIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4uY2FsbC1zdGF0cy1jYXJkLWJvcmRlcjIge1xuICBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIHNvbGlkIHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLXJhZGl1czogMCU7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBjb2xvcjogIzU0ODJCQztcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1NDgyQkM7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZS1sYWJlbC1jb250ZW50IHtcbiAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gIGZvbnQ6IFJlZ3VsYXIgMTRweCBSb2JvdG87XG4gIGxldHRlci1zcGFjaW5nOiAwcHg7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLnJlZnJlc2gtYnRuLm1hdC1idXR0b24ge1xuICBtaW4td2lkdGg6IGF1dG87XG59XG5cbi5yZWZyZXNoLWJ0biB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGNvbG9yOiAjZTY0MjQzO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTY0MjQzO1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWZsZXgge1xuICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgbGFiZWwubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBtYXJnaW4tdG9wOiA4cHggIWltcG9ydGFudDtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCBpbnB1dC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gIG1hcmdpbi10b3A6IDAuNmVtO1xuICBtYXJnaW4tbGVmdDogMTBweDtcbn1cblxuLnNlYXJjaC1pY29uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMTVweDtcbiAgdG9wOiAxNXB4O1xufVxuXG4uYmFja0NvbG9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RCAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5ib3gtc2l6ZSB7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICBtYXJnaW4tdG9wOiA3cHg7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbi5iYWNrQ29sb3IxIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU0ODJCQyAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5jYWxsLXN0YXRzLXZhbHVlIHtcbiAgbWFyZ2luLWxlZnQ6IDUwcHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbn1cblxuLmNhbGwtc3RhdHMtdmFsdWUxIHtcbiAgbWFyZ2luLWxlZnQ6IDMwcHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbn1cblxuLmluZm8tY2lyY2xlLXNpemUge1xuICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuLmZsZXgtc2V0IHtcbiAgbWFyZ2luLXRvcDogN3B4O1xuICBtYXJnaW4tbGVmdDogNjJweDtcbn1cblxuLmZsZXgtc2V0MSB7XG4gIG1hcmdpbi10b3A6IDdweDtcbiAgbWFyZ2luLWxlZnQ6IDczcHg7XG59XG5cbi5kdWVEYXRlSWNvbiB7XG4gIGhlaWdodDogOXB4O1xuICB3aWR0aDogMTFweDtcbn1cblxuLmZpbHRlcjMge1xuICB3aWR0aDogMjAwcHg7XG4gIG1hcmdpbi1yaWdodDogMzBweDtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4ucGFnaW5hdG9yIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBoZWlnaHQ6IDE4cHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1ib3R0b206IDBweDtcbn1cblxuLmZpbHRlci1sYWJlbCB7XG4gIGZvbnQ6IDEycHggUm9ib3RvO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICBjb2xvcjogIzNjM2MzYztcbiAgb3BhY2l0eTogMTtcbiAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICBwYWRkaW5nOiAxcHggMHB4IDBweDtcbn1cblxuLmNhbGVuZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5jYWxlbmRlciBpbnB1dCB7XG4gIHdpZHRoOiAxODBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBoZWlnaHQ6IDIycHg7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xufVxuXG4uY2FsYW5kZXItYnRuIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogN3B4O1xuICB0b3A6IDRweDtcbn1cblxuLmZvcm0tZmllbGQgbGFiZWwge1xuICBmb250LXdlaWdodDogNTAwO1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG4uZm9ybS1maWVsZCBpbnB1dCB7XG4gIHBhZGRpbmc6IDZweDtcbn1cblxuLmVucXVpcnlCdXR0b24ge1xuICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RDtcbiAgbWFyZ2luLXRvcDogMHB4O1xuICBtYXJnaW4tYm90dG9tOiAycHg7XG59XG5cbi5mb3JtY3NzIHtcbiAgcGFkZGluZzogMTlweDtcbiAgcGFkZGluZy10b3A6IDBweDtcbiAgbWFyZ2luLXRvcDogMHB4O1xuICBtYXJnaW4tbGVmdDogMHB4O1xuICBwYWRkaW5nLWlubGluZTogMzBweDtcbn0iXX0= */\"","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\nimport { MatDialog, MatDialogConfig, MatDialogRef, MatTableDataSource, MAT_DIALOG_DATA } from '@angular/material';\nimport { MatPaginator, MatSort } from '@angular/material';\nimport { Router } from '@angular/router';\nimport { DatePipe } from '@angular/common';\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from '../../core/service/common-service/common.service';\nimport * as _moment from 'moment';\nimport { tableData } from './tableData';\n\n@Component({\n selector: 'app-pipeline-enquiry-table',\n templateUrl: './pipeline-enquiry-table.component.html',\n styleUrls: ['./pipeline-enquiry-table.component.scss'],\n})\n\nexport class PipelineEnquiryTableComponent implements OnInit {\n @ViewChild(MatSort, { static: true }) sort: MatSort;\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\n\n displayedColumns: string[] = [\n 'vin',\n 'productType',\n 'enquiryId',\n 'message',\n ];\n dataSource: any;\n dataSource1:any;\n listSize: number = 0;\n pageSize: number = 5;;\n\n ngOnInit() {}\n\n constructor(private commonService: CommonService, private dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any, private toastr: ToastrService, public router: Router) {\n this.listSize =this.data.data.length;\n this.dataSource1=data.data\n }\n\n ngAfterViewInit(){\n this.dataSource = new MatTableDataSource(this.dataSource1);\n this.dataSource.sort = this.sort;\n this.dataSource.sortingDataAccessor = (data, header) => data[header];\n this.dataSource.paginator = this.paginator;\n }\n\n okResponse() {\n this.router.navigate(['pipeline-management']);\n this.dialogRef.close();\n }\n}\n\nexport function openPipelineEnquiryTableDialog(dialog: MatDialog, data: any) {\n const config = new MatDialogConfig();\n config.disableClose = true;\n config.autoFocus = true;\n config.width = '900px';\n config.height = '450px';\n config.data = {\n data: data\n }\n const dialogRef = dialog.open(PipelineEnquiryTableComponent, config);\n return dialogRef.afterClosed();\n}\n","export default \".mat-menu {\\n overflow: hidden;\\n}\\n\\n.mat-tab-nav-bar {\\n background-color: #00457D;\\n height: 30px;\\n}\\n\\n.mat-tab-nav-bar a {\\n color: white;\\n font-size: 14px;\\n padding-bottom: 8px;\\n}\\n\\n.droupdown-style {\\n width: 200px;\\n margin: 10px;\\n}\\n\\n.droupdown-style1 {\\n width: 200px;\\n margin: 10px;\\n}\\n\\n.droupdown-style2 {\\n width: 470px;\\n margin: 10px;\\n margin-top: 20px;\\n}\\n\\n.pipeline-header {\\n color: white;\\n font-size: 14px;\\n margin-left: 0px;\\n}\\n\\n.header-container {\\n background: #ffffff;\\n top: 0px;\\n z-index: 100;\\n width: 850px;\\n}\\n\\n.imageVolvo {\\n width: 40%;\\n height: auto;\\n float: left;\\n padding: 5px;\\n padding-left: 20PX;\\n}\\n\\n.working-area {\\n margin-top: 115px;\\n}\\n\\ntable {\\n width: 100%;\\n}\\n\\n.calling-table tr {\\n cursor: pointer;\\n}\\n\\n.table-head-call {\\n background: none;\\n padding-top: 12px;\\n}\\n\\n.button-margin {\\n margin-left: 10px;\\n}\\n\\n.callList {\\n font: Bold 20px Roboto;\\n letter-spacing: 0px;\\n color: #484848;\\n opacity: 1;\\n}\\n\\n.close-con {\\n font-size: 18px;\\n cursor: pointer;\\n top: 3px;\\n right: 1px;\\n position: absolute !important;\\n z-index: 10;\\n opacity: 1;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-infix {\\n border: 1px solid lightgray;\\n border-radius: 5px;\\n background: white;\\n padding: 0;\\n height: 20px;\\n}\\n\\n.filter1 ::ng-deep .mat-select {\\n padding: 4px 0px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-trigger {\\n padding-left: 8px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-value {\\n width: 90% !important;\\n}\\n\\n.filter1 ::ng-deep .mat-button {\\n font-size: 12px;\\n font: white;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label-wrapper {\\n top: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-underline {\\n display: none;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label {\\n top: 0;\\n margin-top: 4px !important;\\n padding-left: 5px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-arrow-wrapper {\\n padding-bottom: 0px;\\n}\\n\\n.filter1 {\\n font-size: 12px;\\n}\\n\\n.filterdiv1 {\\n align-items: center;\\n box-sizing: border-box;\\n display: flex;\\n flex-wrap: wrap;\\n justify-content: left;\\n margin-left: 45px;\\n}\\n\\n.filter-label {\\n font: 12px Roboto;\\n font-weight: bold;\\n letter-spacing: 0px;\\n color: #3c3c3c;\\n opacity: 1;\\n margin-bottom: 3px;\\n padding: 1px 0px 0px;\\n}\\n\\n.filter-label1 {\\n font: 12px Roboto;\\n font-weight: bold;\\n letter-spacing: 0px;\\n color: #3c3c3c;\\n opacity: 1;\\n margin-bottom: 3px;\\n padding: 1px 0px 0px;\\n margin-top: 7px;\\n}\\n\\n.refesh-icon {\\n float: right;\\n margin-bottom: -30px;\\n margin-right: 20px;\\n margin-top: 30px;\\n cursor: pointer;\\n}\\n\\n.coloredRow {\\n background: #ffff99;\\n}\\n\\n.coloredGreenRow {\\n background: #90ee90;\\n}\\n\\n.mat-dialog-title {\\n background-color: darkgray;\\n}\\n\\n.callList-right {\\n font-size: 11px;\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.columnHeader {\\n font: Bold 12px Roboto;\\n letter-spacing: 0px;\\n color: #333333;\\n text-transform: capitalize;\\n}\\n\\n.lost {\\n color: #e64243;\\n position: absolute;\\n left: 10px;\\n font-size: 10px;\\n top: 38%;\\n}\\n\\n.inbound {\\n color: #2e3668;\\n position: absolute;\\n left: 0px;\\n font-size: 10px;\\n top: 38%;\\n}\\n\\n.columnvalue {\\n font-size: 14px;\\n position: relative;\\n}\\n\\n.filterButton {\\n color: white !important;\\n background-color: #00457D;\\n height: 20px;\\n line-height: 10px;\\n margin-bottom: 1px;\\n}\\n\\n.filterdiv {\\n align-items: center;\\n box-sizing: border-box;\\n display: flex;\\n flex-wrap: wrap;\\n justify-content: space-evenly;\\n}\\n\\n.filterdiv2 {\\n align-items: center;\\n box-sizing: border-box;\\n display: flex;\\n flex-wrap: wrap;\\n margin-left: 45px;\\n}\\n\\n.serviceDueDate {\\n width: 10% !important;\\n}\\n\\n.followUp {\\n width: 8% !important;\\n}\\n\\ntd.mat-cell,\\ntd.mat-footer-cell,\\nth.mat-header-cell {\\n padding: 10px;\\n border-style: solid none none solid;\\n border-width: 0.1px;\\n border-color: lightgray;\\n}\\n\\n.dataview {\\n margin-left: 5px;\\n margin-top: 3px;\\n color: black;\\n}\\n\\n.d-none1 {\\n display: none;\\n}\\n\\n.d-none2 {\\n display: none;\\n}\\n\\n.d-none3 {\\n display: none;\\n}\\n\\n.table-border.mat-table {\\n border-style: none solid solid none;\\n border-color: lightgray;\\n}\\n\\nth.mat-header-cell {\\n background-color: #d9d9d9;\\n}\\n\\n.mat-sort-header-container {\\n justify-content: center !important;\\n}\\n\\n.filter2 {\\n width: auto;\\n}\\n\\n.call-stats-card .mat-card-title {\\n margin-bottom: 0px;\\n}\\n\\n.call-stats-card .call-stats {\\n font-size: 11px;\\n color: #ffffff;\\n}\\n\\n.call-stats-card .call-stats i {\\n color: #2e3668;\\n font-size: 11px;\\n}\\n\\n.call-stats-card .call-stats-title {\\n font-size: 20px;\\n color: #484848;\\n}\\n\\n.call-stats-card1 {\\n padding-top: 0px;\\n}\\n\\n.call-stats-card-border1 {\\n border-style: solid solid none solid;\\n border-width: 1px;\\n border-radius: 0%;\\n border-color: lightgray;\\n}\\n\\n.call-stats-card-border2 {\\n border-style: solid solid solid solid;\\n border-width: 1px;\\n border-radius: 0%;\\n margin-bottom: 15px;\\n border-color: lightgray;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-group {\\n border-radius: 0px;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle {\\n background-color: #ffffff;\\n color: #5482BC;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-checked {\\n background-color: #5482BC;\\n color: #ffffff;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-label-content {\\n line-height: 30px;\\n font: Regular 14px Roboto;\\n letter-spacing: 0px;\\n}\\n\\n.toggle-btn-grp ::ng-deep .refresh-btn.mat-button {\\n min-width: auto;\\n}\\n\\n.refresh-btn {\\n background-color: #ffffff;\\n color: #e64243;\\n border: 1px solid #e64243;\\n border-radius: 0px;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-flex {\\n border: 1px solid lightgray;\\n border-radius: 3px;\\n background: white;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-label {\\n padding-left: 10px;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-infix {\\n border-top: none;\\n}\\n\\n.textboxService ::ng-deep label.mat-form-field-label {\\n margin-top: 8px !important;\\n}\\n\\n.textboxService ::ng-deep input.mat-input-element {\\n margin-top: 0.6em;\\n margin-left: 10px;\\n}\\n\\n.search-icon {\\n position: absolute;\\n right: 15px;\\n top: 15px;\\n}\\n\\n.backColor {\\n background-color: #00457D !important;\\n font-size: 12px;\\n}\\n\\n.box-size {\\n margin-left: 10px;\\n margin-top: 7px;\\n width: 28px;\\n height: 28px;\\n color: #ffffff !important;\\n}\\n\\n.box-size1 {\\n margin-left: 10px;\\n margin-top: 10px;\\n width: 22px;\\n height: 22px;\\n color: #ffffff !important;\\n}\\n\\n.backColor1 {\\n background-color: #5482BC !important;\\n font-size: 12px;\\n}\\n\\n.call-stats-value {\\n margin-left: 50px;\\n font-size: 18px;\\n}\\n\\n.call-stats-value1 {\\n margin-left: 30px;\\n font-size: 18px;\\n}\\n\\n.info-circle-size {\\n font-size: 12px !important;\\n color: #ffffff !important;\\n}\\n\\n.flex-set {\\n margin-top: 7px;\\n margin-left: 15px;\\n}\\n\\n.flex-set1 {\\n margin-top: 7px;\\n margin-left: 25px;\\n}\\n\\n.dueDateIcon {\\n height: 9px;\\n width: 11px;\\n}\\n\\n.droupdown-style {\\n width: 200px;\\n margin: 10px;\\n}\\n\\n.value-list1 hr {\\n border-top: 1px solid lightgrey;\\n margin: 5px 0px;\\n width: 100%;\\n}\\n\\n.value-list1 span {\\n margin-left: 5px;\\n padding-left: 5px;\\n margin-top: 3px;\\n font-size: 12px;\\n}\\n\\n.margin-left {\\n padding-left: 10px;\\n}\\n\\n.paginator ::ng-deep .mat-form-field-infix {\\n height: 18px !important;\\n padding-bottom: 0px;\\n}\\n\\n.followUp {\\n width: 9% !important;\\n}\\n\\n.lastCall {\\n width: 9% !important;\\n}\\n\\n.mat-option {\\n font-size: 13px;\\n}\\n\\n.fontClassBold {\\n font-size: 14px;\\n}\\n\\n.fontClassBold1 {\\n color: #484848;\\n font-size: 12px;\\n margin-top: 5px;\\n font-weight: normal !important;\\n}\\n\\n.enquiryButton {\\n color: white !important;\\n background-color: #00457D;\\n margin-top: 30px;\\n margin-left: 360px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9tb2RhbC9waXBlbGluZS1lbnF1aXJ5L3BpcGVsaW5lLWVucXVpcnkuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL21vZGFsL3BpcGVsaW5lLWVucXVpcnkvcGlwZWxpbmUtZW5xdWlyeS5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLGdCQUFBO0FDQ0o7O0FEQ0E7RUFDSSx5QkFBQTtFQUNBLFlBQUE7QUNFSjs7QURDQTtFQUNJLFlBQUE7RUFDQSxlQUFBO0VBQ0EsbUJBQUE7QUNFSjs7QURPQTtFQUNJLFlBQUE7RUFDQSxZQUFBO0FDSko7O0FET0E7RUFDSSxZQUFBO0VBQ0EsWUFBQTtBQ0pKOztBRE9BO0VBQ0ksWUFBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtBQ0pKOztBRE9BO0VBQ0ksWUFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtBQ0pKOztBRE1BO0VBQ0ksbUJBQUE7RUFFQSxRQUFBO0VBQ0EsWUFBQTtFQUNBLFlBQUE7QUNKSjs7QURNQTtFQUNJLFVBQUE7RUFDQSxZQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxrQkFBQTtBQ0hKOztBRE1BO0VBQ0ksaUJBQUE7QUNISjs7QURNQTtFQUNJLFdBQUE7QUNISjs7QURNQTtFQUNJLGVBQUE7QUNISjs7QURNQTtFQUNJLGdCQUFBO0VBQ0EsaUJBQUE7QUNISjs7QURNQTtFQUNJLGlCQUFBO0FDSEo7O0FETUE7RUFDSSxzQkFBQTtFQUNBLG1CQUFBO0VBQ0EsY0FBQTtFQUNBLFVBQUE7QUNISjs7QURNQTtFQUNJLGVBQUE7RUFDQSxlQUFBO0VBQ0EsUUFBQTtFQUNBLFVBQUE7RUFDQSw2QkFBQTtFQUNBLFdBQUE7RUFDQSxVQUFBO0FDSEo7O0FETUE7RUFDSSwyQkFBQTtFQUNBLGtCQUFBO0VBQ0EsaUJBQUE7RUFDQSxVQUFBO0VBQ0EsWUFBQTtBQ0hKOztBRE1BO0VBQ0ksZ0JBQUE7QUNISjs7QURPQTtFQUNJLGlCQUFB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O0FDYko7O0FEZ0JBO0VBQ0ksdUJBQUE7RUFDQSx5QkFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7QUNiSiIsImZpbGUiOiJzcmMvYXBwL21vZGFsL3BpcGVsaW5lLWVucXVpcnkvcGlwZWxpbmUtZW5xdWlyeS5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5tYXQtbWVudXtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLm1hdC10YWItbmF2LWJhciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RDtcbiAgICBoZWlnaHQ6IDMwcHg7XG5cbn1cbi5tYXQtdGFiLW5hdi1iYXIgYSB7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogOHB4O1xufVxuLy8gLmZpbHRlcmRpdiB7XG4vLyAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbi8vICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuLy8gICAgIGRpc3BsYXk6IGZsZXg7XG4vLyAgICAgZmxleC13cmFwOiB3cmFwO1xuLy8gICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbi8vIH1cbi5kcm91cGRvd24tc3R5bGUge1xuICAgIHdpZHRoOiAyMDBweDtcbiAgICBtYXJnaW46IDEwcHg7XG59XG5cbi5kcm91cGRvd24tc3R5bGUxIHtcbiAgICB3aWR0aDogMjAwcHg7XG4gICAgbWFyZ2luOiAxMHB4O1xufVxuXG4uZHJvdXBkb3duLXN0eWxlMntcbiAgICB3aWR0aDogNDcwcHg7XG4gICAgbWFyZ2luOiAxMHB4O1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG59XG5cbi5waXBlbGluZS1oZWFkZXJ7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBtYXJnaW4tbGVmdDowcHg7XG4gfVxuLmhlYWRlci1jb250YWluZXIge1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAvLyBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwcHg7XG4gICAgei1pbmRleDogMTAwO1xuICAgIHdpZHRoOjg1MHB4O1xufVxuLmltYWdlVm9sdm8ge1xuICAgIHdpZHRoOiA0MCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDIwUFg7XG59XG5cbi53b3JraW5nLWFyZWEge1xuICAgIG1hcmdpbi10b3A6IDExNXB4O1xufVxuXG50YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5jYWxsaW5nLXRhYmxlIHRyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi50YWJsZS1oZWFkLWNhbGwge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgcGFkZGluZy10b3A6IDEycHg7XG59XG5cbi5idXR0b24tbWFyZ2luIHtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbn1cblxuLmNhbGxMaXN0IHtcbiAgICBmb250OiBCb2xkIDIwcHggUm9ib3RvO1xuICAgIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gICAgY29sb3I6ICM0ODQ4NDg7XG4gICAgb3BhY2l0eTogMTtcbn1cblxuLmNsb3NlLWNvbiB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0b3A6IDNweDtcbiAgICByaWdodDogMXB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICAgIHotaW5kZXg6IDEwO1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgcGFkZGluZzogMDtcbiAgICBoZWlnaHQ6IDIwcHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdCB7XG4gICAgcGFkZGluZzogNHB4IDBweDtcbiAgICAvL3dpZHRoOiA5MCUgIWltcG9ydGFudDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICAgIHBhZGRpbmctbGVmdDogOHB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdmFsdWUge1xuICAgIHdpZHRoOiA5MCUgIWltcG9ydGFudDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtYnV0dG9uIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udDogd2hpdGU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gICAgdG9wOiAwO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgdG9wOiAwO1xuICAgIG1hcmdpbi10b3A6IDRweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctbGVmdDogNXB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtYXJyb3ctd3JhcHBlciB7XG4gICAgcGFkZGluZy1ib3R0b206IDBweDtcbn1cblxuLmZpbHRlcjEge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmZpbHRlcmRpdjEge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGxlZnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDQ1cHg7XG59XG5cbi5maWx0ZXItbGFiZWwge1xuICAgIGZvbnQ6IDEycHggUm9ib3RvO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gICAgY29sb3I6ICMzYzNjM2M7XG4gICAgb3BhY2l0eTogMTtcbiAgICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gICAgcGFkZGluZzogMXB4IDBweCAwcHg7XG59XG5cbi5maWx0ZXItbGFiZWwxIHtcbiAgICBmb250OiAxMnB4IFJvYm90bztcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICAgIGNvbG9yOiAjM2MzYzNjO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICAgIHBhZGRpbmc6IDFweCAwcHggMHB4O1xuICAgIG1hcmdpbi10b3A6IDdweDtcbn1cblxuLnJlZmVzaC1pY29uIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLWJvdHRvbTogLTMwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uY29sb3JlZFJvdyB7XG4gICAgYmFja2dyb3VuZDogI2ZmZmY5OTtcbn1cblxuLmNvbG9yZWRHcmVlblJvdyB7XG4gICAgYmFja2dyb3VuZDogIzkwZWU5MDtcbn1cblxuLm1hdC1kaWFsb2ctdGl0bGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtncmF5O1xufVxuXG4uY2FsbExpc3QtcmlnaHQge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cblxuLmNvbHVtbkhlYWRlciB7XG4gICAgZm9udDogQm9sZCAxMnB4IFJvYm90bztcbiAgICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xufVxuXG4ubG9zdCB7XG4gICAgY29sb3I6ICNlNjQyNDM7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDEwcHg7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIHRvcDogMzglO1xufVxuXG4uaW5ib3VuZCB7XG4gICAgY29sb3I6ICMyZTM2Njg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDBweDtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgdG9wOiAzOCU7XG59XG5cbi5jb2x1bW52YWx1ZSB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmZpbHRlckJ1dHRvbiB7XG4gICAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDEwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMXB4O1xufVxuXG4uZmlsdGVyZGl2IHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1ldmVubHk7XG59XG5cbi5maWx0ZXJkaXYyIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgbWFyZ2luLWxlZnQ6IDQ1cHg7XG59XG5cbi5zZXJ2aWNlRHVlRGF0ZSB7XG4gICAgd2lkdGg6IDEwJSAhaW1wb3J0YW50O1xufVxuXG4uZm9sbG93VXAge1xuICAgIHdpZHRoOiA4JSAhaW1wb3J0YW50O1xufVxuXG50ZC5tYXQtY2VsbCxcbnRkLm1hdC1mb290ZXItY2VsbCxcbnRoLm1hdC1oZWFkZXItY2VsbCB7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkIG5vbmUgbm9uZSBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDAuMXB4O1xuICAgIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4uZGF0YXZpZXd7XG4gICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICBtYXJnaW4tdG9wOiAzcHg7XG4gICAgY29sb3I6IGJsYWNrO1xufVxuXG4uZC1ub25lMXtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uZC1ub25lMntcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uZC1ub25lM3tcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4udGFibGUtYm9yZGVyLm1hdC10YWJsZSB7XG4gICAgYm9yZGVyLXN0eWxlOiBub25lIHNvbGlkIHNvbGlkIG5vbmU7XG4gICAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG59XG5cbnRoLm1hdC1oZWFkZXItY2VsbCB7XG4gICAgLy9qdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbiAgICAvL3RleHQtYWxpZ246IGNlbnRlcjtcbiAgICAvL2Rpc3BsYXk6IGZsZXg7XG4gICAgLy9qdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDlkOWQ5O1xufVxuXG4ubWF0LXNvcnQtaGVhZGVyLWNvbnRhaW5lciB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcbn1cblxuLmZpbHRlcjIge1xuICAgIHdpZHRoOiBhdXRvO1xufVxuXG4uY2FsbC1zdGF0cy1jYXJkIHtcbiAgICAubWF0LWNhcmQtdGl0bGUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgfVxuICAgIC5jYWxsLXN0YXRzIHtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgaSB7XG4gICAgICAgICAgICBjb2xvcjogIzJlMzY2ODtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuY2FsbC1zdGF0cy10aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgY29sb3I6ICM0ODQ4NDg7XG4gICAgfVxufVxuXG4uY2FsbC1zdGF0cy1jYXJkMSB7XG4gICAgcGFkZGluZy10b3A6IDBweDtcbn1cblxuLmNhbGwtc3RhdHMtY2FyZC1ib3JkZXIxIHtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIG5vbmUgc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMCU7XG4gICAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG59XG5cbi5jYWxsLXN0YXRzLWNhcmQtYm9yZGVyMiB7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZCBzb2xpZCBzb2xpZCBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDFweDtcbiAgICBib3JkZXItcmFkaXVzOiAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4O1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBjb2xvcjogIzU0ODJCQztcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzU0ODJCQztcbiAgICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtbGFiZWwtY29udGVudCB7XG4gICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgZm9udDogUmVndWxhciAxNHB4IFJvYm90bztcbiAgICBsZXR0ZXItc3BhY2luZzogMHB4O1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5yZWZyZXNoLWJ0bi5tYXQtYnV0dG9uIHtcbiAgICBtaW4td2lkdGg6IGF1dG87XG59XG5cbi5yZWZyZXNoLWJ0biB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBjb2xvcjogI2U2NDI0MztcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTY0MjQzO1xuICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgIGJvcmRlci10b3A6IG5vbmU7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgbGFiZWwubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIG1hcmdpbi10b3A6IDhweCAhaW1wb3J0YW50O1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIGlucHV0Lm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgICBtYXJnaW4tdG9wOiAwLjZlbTtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbn1cblxuLnNlYXJjaC1pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDE1cHg7XG4gICAgdG9wOiAxNXB4O1xufVxuXG4uYmFja0NvbG9yIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uYm94LXNpemUge1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIG1hcmdpbi10b3A6IDdweDtcbiAgICB3aWR0aDogMjhweDtcbiAgICBoZWlnaHQ6IDI4cHg7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuLmJveC1zaXplMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICB3aWR0aDogMjJweDtcbiAgICBoZWlnaHQ6IDIycHg7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuLmJhY2tDb2xvcjEge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM1NDgyQkMgIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IDEycHg7XG59XG5cbi5jYWxsLXN0YXRzLXZhbHVlIHtcbiAgICBtYXJnaW4tbGVmdDogNTBweDtcbiAgICBmb250LXNpemU6IDE4cHg7XG59XG5cbi5jYWxsLXN0YXRzLXZhbHVlMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDMwcHg7XG4gICAgZm9udC1zaXplOiAxOHB4O1xufVxuXG4uaW5mby1jaXJjbGUtc2l6ZSB7XG4gICAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuLmZsZXgtc2V0IHtcbiAgICBtYXJnaW4tdG9wOiA3cHg7XG4gICAgbWFyZ2luLWxlZnQ6IDE1cHg7XG59XG5cbi5mbGV4LXNldDEge1xuICAgIG1hcmdpbi10b3A6IDdweDtcbiAgICBtYXJnaW4tbGVmdDogMjVweDtcbn1cblxuLmR1ZURhdGVJY29uIHtcbiAgICBoZWlnaHQ6IDlweDtcbiAgICB3aWR0aDogMTFweDtcbn1cblxuLmRyb3VwZG93bi1zdHlsZSB7XG4gICAgd2lkdGg6IDIwMHB4O1xuICAgIG1hcmdpbjogMTBweDtcbn1cblxuLnZhbHVlLWxpc3QxIHtcbiAgICBociB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCBsaWdodGdyZXk7XG4gICAgICAgIG1hcmdpbjogNXB4IDBweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICAgIHNwYW4ge1xuICAgICAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgICAgICAgbWFyZ2luLXRvcDogM3B4O1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgfVxufVxuXG4ubWFyZ2luLWxlZnQge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbn1cblxuLnBhZ2luYXRvciA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICBoZWlnaHQ6IDE4cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMHB4O1xufVxuXG4uZm9sbG93VXAge1xuICAgIHdpZHRoOiA5JSAhaW1wb3J0YW50O1xufVxuXG4ubGFzdENhbGwge1xuICAgIHdpZHRoOiA5JSAhaW1wb3J0YW50O1xufVxuXG4ubWF0LW9wdGlvbntcbiAgICBmb250LXNpemU6IDEzcHg7XG59XG5cbi5mb250Q2xhc3NCb2xke1xuICAgIC8vY29sb3I6ICM0ODQ4NDg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4uZm9udENsYXNzQm9sZDF7XG4gICAgY29sb3I6ICM0ODQ4NDg7XG4gICAgZm9udC1zaXplOiAxMnB4IDtcbiAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbCAhaW1wb3J0YW50O1xufVxuXG4uZW5xdWlyeUJ1dHRvbntcbiAgICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEO1xuICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDM2MHB4O1xufVxuIiwiLm1hdC1tZW51IHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm1hdC10YWItbmF2LWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0Q7XG4gIGhlaWdodDogMzBweDtcbn1cblxuLm1hdC10YWItbmF2LWJhciBhIHtcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LXNpemU6IDE0cHg7XG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XG59XG5cbi5kcm91cGRvd24tc3R5bGUge1xuICB3aWR0aDogMjAwcHg7XG4gIG1hcmdpbjogMTBweDtcbn1cblxuLmRyb3VwZG93bi1zdHlsZTEge1xuICB3aWR0aDogMjAwcHg7XG4gIG1hcmdpbjogMTBweDtcbn1cblxuLmRyb3VwZG93bi1zdHlsZTIge1xuICB3aWR0aDogNDcwcHg7XG4gIG1hcmdpbjogMTBweDtcbiAgbWFyZ2luLXRvcDogMjBweDtcbn1cblxuLnBpcGVsaW5lLWhlYWRlciB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBtYXJnaW4tbGVmdDogMHB4O1xufVxuXG4uaGVhZGVyLWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIHRvcDogMHB4O1xuICB6LWluZGV4OiAxMDA7XG4gIHdpZHRoOiA4NTBweDtcbn1cblxuLmltYWdlVm9sdm8ge1xuICB3aWR0aDogNDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nOiA1cHg7XG4gIHBhZGRpbmctbGVmdDogMjBQWDtcbn1cblxuLndvcmtpbmctYXJlYSB7XG4gIG1hcmdpbi10b3A6IDExNXB4O1xufVxuXG50YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uY2FsbGluZy10YWJsZSB0ciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnRhYmxlLWhlYWQtY2FsbCB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIHBhZGRpbmctdG9wOiAxMnB4O1xufVxuXG4uYnV0dG9uLW1hcmdpbiB7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuXG4uY2FsbExpc3Qge1xuICBmb250OiBCb2xkIDIwcHggUm9ib3RvO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICBjb2xvcjogIzQ4NDg0ODtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmNsb3NlLWNvbiB7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0b3A6IDNweDtcbiAgcmlnaHQ6IDFweDtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHotaW5kZXg6IDEwO1xuICBvcGFjaXR5OiAxO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBwYWRkaW5nOiAwO1xuICBoZWlnaHQ6IDIwcHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdCB7XG4gIHBhZGRpbmc6IDRweCAwcHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gIHdpZHRoOiA5MCUgIWltcG9ydGFudDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtYnV0dG9uIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250OiB3aGl0ZTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIHtcbiAgdG9wOiAwO1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0b3A6IDA7XG4gIG1hcmdpbi10b3A6IDRweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LWFycm93LXdyYXBwZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMHB4O1xufVxuXG4uZmlsdGVyMSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmZpbHRlcmRpdjEge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogbGVmdDtcbiAgbWFyZ2luLWxlZnQ6IDQ1cHg7XG59XG5cbi5maWx0ZXItbGFiZWwge1xuICBmb250OiAxMnB4IFJvYm90bztcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gIGNvbG9yOiAjM2MzYzNjO1xuICBvcGFjaXR5OiAxO1xuICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gIHBhZGRpbmc6IDFweCAwcHggMHB4O1xufVxuXG4uZmlsdGVyLWxhYmVsMSB7XG4gIGZvbnQ6IDEycHggUm9ib3RvO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgY29sb3I6ICMzYzNjM2M7XG4gIG9wYWNpdHk6IDE7XG4gIG1hcmdpbi1ib3R0b206IDNweDtcbiAgcGFkZGluZzogMXB4IDBweCAwcHg7XG4gIG1hcmdpbi10b3A6IDdweDtcbn1cblxuLnJlZmVzaC1pY29uIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tYm90dG9tOiAtMzBweDtcbiAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICBtYXJnaW4tdG9wOiAzMHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5jb2xvcmVkUm93IHtcbiAgYmFja2dyb3VuZDogI2ZmZmY5OTtcbn1cblxuLmNvbG9yZWRHcmVlblJvdyB7XG4gIGJhY2tncm91bmQ6ICM5MGVlOTA7XG59XG5cbi5tYXQtZGlhbG9nLXRpdGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogZGFya2dyYXk7XG59XG5cbi5jYWxsTGlzdC1yaWdodCB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG5cbi5jb2x1bW5IZWFkZXIge1xuICBmb250OiBCb2xkIDEycHggUm9ib3RvO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICBjb2xvcjogIzMzMzMzMztcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG59XG5cbi5sb3N0IHtcbiAgY29sb3I6ICNlNjQyNDM7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMTBweDtcbiAgZm9udC1zaXplOiAxMHB4O1xuICB0b3A6IDM4JTtcbn1cblxuLmluYm91bmQge1xuICBjb2xvcjogIzJlMzY2ODtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwcHg7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgdG9wOiAzOCU7XG59XG5cbi5jb2x1bW52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZmlsdGVyQnV0dG9uIHtcbiAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0Q7XG4gIGhlaWdodDogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDFweDtcbn1cblxuLmZpbHRlcmRpdiB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1ldmVubHk7XG59XG5cbi5maWx0ZXJkaXYyIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBtYXJnaW4tbGVmdDogNDVweDtcbn1cblxuLnNlcnZpY2VEdWVEYXRlIHtcbiAgd2lkdGg6IDEwJSAhaW1wb3J0YW50O1xufVxuXG4uZm9sbG93VXAge1xuICB3aWR0aDogOCUgIWltcG9ydGFudDtcbn1cblxudGQubWF0LWNlbGwsXG50ZC5tYXQtZm9vdGVyLWNlbGwsXG50aC5tYXQtaGVhZGVyLWNlbGwge1xuICBwYWRkaW5nOiAxMHB4O1xuICBib3JkZXItc3R5bGU6IHNvbGlkIG5vbmUgbm9uZSBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAwLjFweDtcbiAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG59XG5cbi5kYXRhdmlldyB7XG4gIG1hcmdpbi1sZWZ0OiA1cHg7XG4gIG1hcmdpbi10b3A6IDNweDtcbiAgY29sb3I6IGJsYWNrO1xufVxuXG4uZC1ub25lMSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5kLW5vbmUyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmQtbm9uZTMge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4udGFibGUtYm9yZGVyLm1hdC10YWJsZSB7XG4gIGJvcmRlci1zdHlsZTogbm9uZSBzb2xpZCBzb2xpZCBub25lO1xuICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxudGgubWF0LWhlYWRlci1jZWxsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q5ZDlkOTtcbn1cblxuLm1hdC1zb3J0LWhlYWRlci1jb250YWluZXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50O1xufVxuXG4uZmlsdGVyMiB7XG4gIHdpZHRoOiBhdXRvO1xufVxuXG4uY2FsbC1zdGF0cy1jYXJkIC5tYXQtY2FyZC10aXRsZSB7XG4gIG1hcmdpbi1ib3R0b206IDBweDtcbn1cbi5jYWxsLXN0YXRzLWNhcmQgLmNhbGwtc3RhdHMge1xuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLmNhbGwtc3RhdHMtY2FyZCAuY2FsbC1zdGF0cyBpIHtcbiAgY29sb3I6ICMyZTM2Njg7XG4gIGZvbnQtc2l6ZTogMTFweDtcbn1cbi5jYWxsLXN0YXRzLWNhcmQgLmNhbGwtc3RhdHMtdGl0bGUge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGNvbG9yOiAjNDg0ODQ4O1xufVxuXG4uY2FsbC1zdGF0cy1jYXJkMSB7XG4gIHBhZGRpbmctdG9wOiAwcHg7XG59XG5cbi5jYWxsLXN0YXRzLWNhcmQtYm9yZGVyMSB7XG4gIGJvcmRlci1zdHlsZTogc29saWQgc29saWQgbm9uZSBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1yYWRpdXM6IDAlO1xuICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxuLmNhbGwtc3RhdHMtY2FyZC1ib3JkZXIyIHtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZCBzb2xpZCBzb2xpZCBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1yYWRpdXM6IDAlO1xuICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAge1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgY29sb3I6ICM1NDgyQkM7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTQ4MkJDO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtbGFiZWwtY29udGVudCB7XG4gIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICBmb250OiBSZWd1bGFyIDE0cHggUm9ib3RvO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5yZWZyZXNoLWJ0bi5tYXQtYnV0dG9uIHtcbiAgbWluLXdpZHRoOiBhdXRvO1xufVxuXG4ucmVmcmVzaC1idG4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBjb2xvcjogI2U2NDI0MztcbiAgYm9yZGVyOiAxcHggc29saWQgI2U2NDI0MztcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBib3JkZXItdG9wOiBub25lO1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIGxhYmVsLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgbWFyZ2luLXRvcDogOHB4ICFpbXBvcnRhbnQ7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgaW5wdXQubWF0LWlucHV0LWVsZW1lbnQge1xuICBtYXJnaW4tdG9wOiAwLjZlbTtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbi5zZWFyY2gtaWNvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDE1cHg7XG4gIHRvcDogMTVweDtcbn1cblxuLmJhY2tDb2xvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0QgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uYm94LXNpemUge1xuICBtYXJnaW4tbGVmdDogMTBweDtcbiAgbWFyZ2luLXRvcDogN3B4O1xuICB3aWR0aDogMjhweDtcbiAgaGVpZ2h0OiAyOHB4O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG4uYm94LXNpemUxIHtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIHdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDIycHg7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbi5iYWNrQ29sb3IxIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU0ODJCQyAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5jYWxsLXN0YXRzLXZhbHVlIHtcbiAgbWFyZ2luLWxlZnQ6IDUwcHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbn1cblxuLmNhbGwtc3RhdHMtdmFsdWUxIHtcbiAgbWFyZ2luLWxlZnQ6IDMwcHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbn1cblxuLmluZm8tY2lyY2xlLXNpemUge1xuICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuLmZsZXgtc2V0IHtcbiAgbWFyZ2luLXRvcDogN3B4O1xuICBtYXJnaW4tbGVmdDogMTVweDtcbn1cblxuLmZsZXgtc2V0MSB7XG4gIG1hcmdpbi10b3A6IDdweDtcbiAgbWFyZ2luLWxlZnQ6IDI1cHg7XG59XG5cbi5kdWVEYXRlSWNvbiB7XG4gIGhlaWdodDogOXB4O1xuICB3aWR0aDogMTFweDtcbn1cblxuLmRyb3VwZG93bi1zdHlsZSB7XG4gIHdpZHRoOiAyMDBweDtcbiAgbWFyZ2luOiAxMHB4O1xufVxuXG4udmFsdWUtbGlzdDEgaHIge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgbGlnaHRncmV5O1xuICBtYXJnaW46IDVweCAwcHg7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnZhbHVlLWxpc3QxIHNwYW4ge1xuICBtYXJnaW4tbGVmdDogNXB4O1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgbWFyZ2luLXRvcDogM3B4O1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5tYXJnaW4tbGVmdCB7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbn1cblxuLnBhZ2luYXRvciA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgaGVpZ2h0OiAxOHB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctYm90dG9tOiAwcHg7XG59XG5cbi5mb2xsb3dVcCB7XG4gIHdpZHRoOiA5JSAhaW1wb3J0YW50O1xufVxuXG4ubGFzdENhbGwge1xuICB3aWR0aDogOSUgIWltcG9ydGFudDtcbn1cblxuLm1hdC1vcHRpb24ge1xuICBmb250LXNpemU6IDEzcHg7XG59XG5cbi5mb250Q2xhc3NCb2xkIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4uZm9udENsYXNzQm9sZDEge1xuICBjb2xvcjogIzQ4NDg0ODtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBtYXJnaW4tdG9wOiA1cHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWwgIWltcG9ydGFudDtcbn1cblxuLmVucXVpcnlCdXR0b24ge1xuICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RDtcbiAgbWFyZ2luLXRvcDogMzBweDtcbiAgbWFyZ2luLWxlZnQ6IDM2MHB4O1xufSJdfQ== */\"","import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialog, MatDialogConfig, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\nimport { Router, RouterLink } from '@angular/router';\nimport { DatePipe } from '@angular/common';\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from '../../core/service/common-service/common.service';\nimport { ListCustData } from 'src/app/component/pipeline-management/listCustData';\nimport { DateTimeAdapter, OWL_DATE_TIME_FORMATS, OWL_DATE_TIME_LOCALE } from 'ng-pick-datetime';\nimport { MomentDateTimeAdapter } from 'ng-pick-datetime-moment';\nimport * as _moment from 'moment';\nimport { openPipelineEnquiryTableDialog } from '../pipeline-enquiry-table/pipeline-enquiry-table.component';\n\nconst moment = (_moment as any).default ? (_moment as any).default : _moment;\n\nexport const MY_CUSTOM_FORMATS = {\n parseInput: 'LL LT',\n fullPickerInput: 'DD-MM-YYYY LT',\n datePickerInput: 'LL',\n timePickerInput: 'LT',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n};\n\n@Component({\n selector: 'app-pipeline-enquiry',\n templateUrl: './pipeline-enquiry.component.html',\n styleUrls: ['./pipeline-enquiry.component.scss'],\n providers: [\n { provide: DateTimeAdapter, useClass: MomentDateTimeAdapter, deps: [OWL_DATE_TIME_LOCALE] },\n { provide: OWL_DATE_TIME_FORMATS, useValue: MY_CUSTOM_FORMATS }\n ],\n})\n\nexport class PipelineEnquiryComponent implements OnInit {\n leadStatusCode: string=\"\";\n leadSubStatusCode: string = \"\";\n clickedRow: any\n diff: any\n likelyBuyDate: Date\n selected: any\n isClassTwoActive: boolean = true;\n isClassOneActive: boolean = true;\n isClassThreeActive: boolean = true;\n uniqueChassisArray: string[] = [];\n leadStatusValues: string[] = [];\n uniqueProductName: string[] = [];\n uniqueLeadType: string[] = [];\n uniqueSourceValue: string[] = [];\n leadType: string=\"\";\n vin: string=\"\";\n product: string=\"\";\n source: string=\"\";\n buyDate: Date;\n customerCode: string=\"\";\n custResData: ListCustData;\n userId: string=\"\";\n countryCode: string=\"\";\n followUpDate: any;\n enquiryRemarks: string=\"\";\n today:Date =new Date();\n contractNumber:string=\"\";\n\n ngOnInit() {\n\n this.commonService.enquiryDialogFilter().subscribe(res => {\n this.uniqueProductName = res['responseData'][0].filterValues;\n this.uniqueLeadType = res['responseData'][1].filterValues;\n this.uniqueSourceValue = res['responseData'][2].filterValues;\n })\n\n this.userId = localStorage.getItem(\"userId\");\n this.countryCode = localStorage.getItem(\"countryCode\");\n }\n\n constructor(private commonService: CommonService, private datePipe: DatePipe, private dialogRef: MatDialogRef, private toastr: ToastrService, @Inject(MAT_DIALOG_DATA) public data: any, public router: Router, public dialog: MatDialog) {\n this.clickedRow = data.clickedRow;\n this.uniqueChassisArray = data.uniqueChassisArray;\n }\n\n enableDropDown1(answer) {\n this.followUpDate = '';\n this.leadSubStatusCode = '';\n this.contractNumber = '';\n this.leadStatusCode = answer.value;\n if (answer.value == \"211\") {\n return this.isClassOneActive = false;\n } else {\n return this.isClassOneActive = true;\n }\n }\n\n enableDropDown2(answer) {\n this.leadSubStatusCode = '';\n this.leadStatusCode = answer.value;\n if (answer.value == \"213\") {\n return this.isClassTwoActive = false;\n } else {\n return this.isClassTwoActive = true;\n }\n }\n\n enableDropDown3(answer) {\n if (answer.value == \"212\") {\n return this.isClassThreeActive = false;\n } else {\n return this.isClassThreeActive = true;\n }\n }\n\n onclose() {\n this.dialogRef.close();\n }\n\n getdiff() {\n var endDate = new Date(this.buyDate);\n var startDate = new Date();\n var Time = endDate.getTime() - startDate.getTime();\n this.diff = (Time / (1000 * 3600 * 24));\n if (this.diff < 15) {\n this.leadType = \" Hot\";\n }\n if (this.diff >= 15 && this.diff <= 30) {\n this.leadType = \" Warm\";\n }\n if (this.diff > 30) {\n this.leadType = \"Cold\";\n }\n return this.diff;\n }\n\n saveResponse(): void {\n if(this.buyDate == null || (this.vin == null || this.vin ==\"\") || (this.product == null || this.product == \"\") || (this.source == null || this.source == \"\") || (this.leadType == null || this.leadType == \"\") || (this.leadStatusCode == null || this.leadStatusCode == \"\") || (this.enquiryRemarks == null || this.enquiryRemarks == \"\")) {\n this.toastr.error(\"Please fill required fields\");\n }\n else{\n this.custResData = new ListCustData(\n this.customerCode = this.clickedRow.customerCode,\n this.vin,\n this.product,\n this.source,\n this.leadType,\n this.datePipe.transform((this.buyDate), \"yyyy-MM-dd\"),\n this.leadStatusCode,\n this.leadSubStatusCode,\n this.userId,\n this.countryCode,\n this.followUpDate,\n this.enquiryRemarks,\n this.contractNumber\n )\n if(this.isClassOneActive == false && (this.followUpDate == null || this.followUpDate == '')){\n this.toastr.error(\"Please Fill Required Fields.\");\n }else if(this.isClassOneActive == false && (this.leadSubStatusCode == null || this.leadSubStatusCode == \"\")){\n this.toastr.error(\"Please Fill Required Fields.\");\n }else if(this.isClassTwoActive == false && (this.leadSubStatusCode == null || this.leadSubStatusCode == \"\")){\n this.toastr.error(\"Please Fill Required Fields.\");\n }else if(this.isClassThreeActive == false && (this.contractNumber == null || this.contractNumber == \"\")){\n this.toastr.error(\"Please Fill Required Fields.\");\n }\n else{\n this.commonService.createPipelineEnquiry(this.custResData).subscribe(\n res => {\n if (res[\"responseCode\"] == 0) {\n this.toastr.info(res[\"message\"], \"Success\");\n this.dialogRef.close();\n openPipelineEnquiryTableDialog(this.dialog,res['responseData']);\n }\n else {\n this.toastr.error(res[\"message\"], \"Error\");\n this.dialogRef.close();\n }\n });\n }\n }\n}\n\n}\n\nexport function openPipelineEnquiryDialog(dialog: MatDialog, clickedRow, uniqueChassisArray) {\n const config = new MatDialogConfig();\n config.disableClose = true;\n config.autoFocus = true;\n config.width = '850px';\n config.height = '500px';\n config.data = {\n clickedRow: clickedRow,\n uniqueChassisArray: uniqueChassisArray,\n };\n const dialogRef = dialog.open(PipelineEnquiryComponent, config);\n return dialogRef.afterClosed();\n\n}\n\nexport class custData {\n customerCode: string;\n vin: string;\n product: string;\n source: string;\n leadType: string;\n buyDate: string;\n leadStatusCode: string;\n leadSubStatusCode: string;\n userId: string;\n countryCode: string;\n enquiryId: string;\n followUpDate: string;\n enquiryRemarks: string;\n contractNumber: string\n\n constructor(\n customerCode,\n vin,\n product,\n source,\n leadType,\n buyDate,\n leadStatusCode,\n leadSubStatusCode,\n userId,\n countryCode,\n enquiryId,\n followUpDate,\n enquiryRemarks,\n contractNumber\n ) {\n this.customerCode = customerCode;\n this.vin = vin;\n this.product = product;\n this.source = source;\n this.leadType = leadType;\n this.buyDate = buyDate;\n this.leadStatusCode = leadStatusCode;\n this.leadSubStatusCode = leadSubStatusCode;\n this.userId = userId;\n this.countryCode = countryCode;\n this.enquiryId = enquiryId;\n this.followUpDate = followUpDate;\n this.enquiryRemarks = enquiryRemarks;\n this.contractNumber = contractNumber;\n }\n}\n\n","export default \".mat-menu {\\n overflow: hidden;\\n}\\n\\n.mat-tab-nav-bar {\\n background-color: #00457D;\\n height: 30px;\\n\\n}\\n\\n.mat-tab-nav-bar a {\\n color: white;\\n font-size: 14px;\\n padding-bottom: 8px;\\n}\\n\\n.filterdiv {\\n align-items: center;\\n box-sizing: border-box;\\n display: flex;\\n flex-wrap: wrap;\\n justify-content: space-between;\\n}\\n\\n.droupdown-style {\\n width: 636px;\\n margin: 10px;\\n margin-top: 20px;\\n}\\n\\n.droupdown-style1 {\\n width: 220px;\\n margin: 10px;\\n margin-top: 20px;\\n\\n}\\n\\n.filter-label {\\n font: 12px Roboto;\\n font-weight: bold;\\n letter-spacing: 0px;\\n color: #3c3c3c;\\n opacity: 1;\\n margin-bottom: 3px;\\n padding: 1px 0px 0px;\\n}\\n\\n.filter-label1 {\\n font: 12px Roboto;\\n font-weight: bold;\\n letter-spacing: 0px;\\n color: #3c3c3c;\\n opacity: 1;\\n margin-bottom: 3px;\\n padding: 1px 0px 0px;\\n margin-top: 7px;\\n\\n}\\n\\n.pipeline-header {\\n color: white;\\n font-size: 14px;\\n margin-left: 0px;\\n}\\n\\n.header-container {\\n background: #ffffff;\\n\\n top: 0px;\\n z-index: 100;\\n width: 850px;\\n\\n}\\n\\n.imageVolvo {\\n width: 40%;\\n height: auto;\\n float: left;\\n padding: 5px;\\n padding-left: 20PX;\\n}\\n\\n.working-area {\\n margin-top: 115px;\\n}\\n\\ntable {\\n width: 100%;\\n}\\n\\n.calling-table tr {\\n cursor: pointer;\\n}\\n\\n.table-head-call {\\n background: none;\\n padding-top: 12px;\\n}\\n\\n.button-margin {\\n margin-left: 10px;\\n}\\n\\n.callList {\\n font: Bold 20px Roboto;\\n letter-spacing: 0px;\\n color: #484848;\\n opacity: 1;\\n}\\n\\n.close-con {\\n font-size: 18px;\\n cursor: pointer;\\n top: 3px;\\n right: 1px;\\n position: absolute !important;\\n z-index: 10;\\n opacity: 1;\\n}\\n\\n.filter1 ::ng-deep .mat-select {\\n padding-bottom: 0px;\\n padding-top: 2px;\\n}\\n\\n.filter1 ::ng-deep .mat-button {\\n font-size: 12px;\\n font: white;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-infix {\\n border: 1px solid lightgray;\\n border-radius: 5px;\\n background: white;\\n padding-bottom: 0px;\\n font-size: 12px !important;\\n height: 21px;\\n\\n}\\n\\n.filter1 ::ng-deep .mat-select-trigger {\\n padding-left: 8px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-value {\\n width: 100%;\\n}\\n\\n.filter1 ::ng-deep .mat-select-arrow-wrapper {\\n padding-bottom: 0x;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label-wrapper {\\n top: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-underline {\\n display: none;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label {\\n top: 0;\\n margin-top: 6px !important;\\n padding-left: 5px;\\n color: #0b0b0b;\\n}\\n\\n.filter1 {\\n font-size: 12px;\\n}\\n\\n.filter2 ::ng-deep .mat-form-field-infix {\\n border: 1px solid lightgray;\\n border-radius: 5px;\\n background: white;\\n padding-bottom: 0px;\\n font-size: 12px !important;\\n height: 21px;\\n color:#0b0b0b;\\n margin-left: 142px;\\n}\\n\\n.filter2 ::ng-deep .mat-select-trigger {\\n padding-left: 8px;\\n}\\n\\n.filter2 ::ng-deep .mat-select-value {\\n width: 100%;\\n}\\n\\n.filter2 ::ng-deep .mat-select-arrow-wrapper {\\n padding-bottom: 0x;\\n}\\n\\n.filter2 ::ng-deep .mat-form-field-label-wrapper {\\n top: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n\\n.filter2 ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 0;\\n}\\n\\n.filter2 ::ng-deep .mat-form-field-underline {\\n display: none;\\n}\\n\\n.filter2 ::ng-deep .mat-form-field-label {\\n top: 0;\\n margin-top: 6px !important;\\n padding-left: 5px;\\n color: #0b0b0b;\\n}\\n\\n.filter2 {\\n font-size: 12px;\\n}\\n\\n.filter3 ::ng-deep .mat-form-field-infix {\\n border: 1px solid lightgray;\\n border-radius: 5px;\\n background: white;\\n padding-bottom: 0px;\\n font-size: 12px !important;\\n color:#0b0b0b;\\n margin-left: 142px;\\n}\\n\\n.filter3 ::ng-deep .mat-select-trigger {\\n padding-left: 8px;\\n}\\n\\n.filter3 ::ng-deep .mat-select-value {\\n width: 100%;\\n}\\n\\n.filter3 ::ng-deep .mat-select-arrow-wrapper {\\n padding-bottom: 0x;\\n}\\n\\n.filter3 ::ng-deep .mat-form-field-label-wrapper {\\n top: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n\\n.filter3 ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 0;\\n}\\n\\n.filter3 ::ng-deep .mat-form-field-underline {\\n display: none;\\n}\\n\\n.filter3 ::ng-deep .mat-form-field-label {\\n top: 0;\\n margin-top: 6px !important;\\n padding-left: 5px;\\n color: #0b0b0b;\\n}\\n\\n.filter3 {\\n font-size: 12px;\\n}\\n\\n.caution{\\n color: #ff0000;\\n font-size: 10px;\\n margin-left: 145px;\\n margin-top: 2px;\\n}\\n\\n.refesh-icon {\\n float: right;\\n margin-bottom: -30px;\\n margin-right: 20px;\\n margin-top: 30px;\\n cursor: pointer;\\n}\\n\\n.coloredRow {\\n background: #ffff99;\\n}\\n\\n.coloredGreenRow {\\n background: #90ee90;\\n}\\n\\n.mat-dialog-title {\\n background-color: darkgray;\\n}\\n\\n.callList-right {\\n font-size: 11px;\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.columnHeader {\\n font: Bold 12px Roboto;\\n letter-spacing: 0px;\\n color: #333333;\\n text-transform: capitalize;\\n}\\n\\n.lost {\\n color: #e64243;\\n position: absolute;\\n left: 10px;\\n font-size: 10px;\\n top: 38%;\\n}\\n\\n.inbound {\\n color: #2e3668;\\n position: absolute;\\n left: 0px;\\n font-size: 10px;\\n top: 38%;\\n}\\n\\n.columnvalue {\\n font-size: 14px;\\n position: relative;\\n}\\n\\n.filterButton {\\n color: white !important;\\n background-color: #00457D;\\n height: 20px;\\n line-height: 10px;\\n margin-bottom: 1px;\\n}\\n\\n.filterdiv {\\n align-items: center;\\n box-sizing: border-box;\\n display: flex;\\n flex-wrap: wrap;\\n justify-content: space-evenly;\\n}\\n\\n.filterdiv1 {\\n align-items: center;\\n box-sizing: border-box;\\n display: flex;\\n flex-wrap: wrap;\\n justify-content: left;\\n margin-left: 45px;\\n}\\n\\n.serviceDueDate {\\n width: 10% !important;\\n}\\n\\n.followUp {\\n width: 8% !important;\\n}\\n\\ntd.mat-cell,\\ntd.mat-footer-cell,\\nth.mat-header-cell {\\n padding: 10px;\\n border-style: solid none none solid;\\n border-width: 0.1px;\\n border-color: lightgray;\\n}\\n\\n.dataview {\\n margin-left: 2px;\\n}\\n\\n.d-none1 {\\n display: none;\\n}\\n\\n.d-none2 {\\n display: none;\\n}\\n\\n.table-border.mat-table {\\n border-style: none solid solid none;\\n border-color: lightgray;\\n}\\n\\nth.mat-header-cell {\\n\\n background-color: #d9d9d9;\\n}\\n\\n.mat-sort-header-container {\\n justify-content: center !important;\\n}\\n\\n.filter2 {\\n width: auto;\\n}\\n\\n.filter3 {\\n width: auto;\\n}\\n\\ntextService {\\n font: 22px Roboto;\\n letter-spacing: 0px;\\n color: #484848;\\n opacity: 1;\\n\\n}\\n\\n.call-stats-card1 {\\n padding-top: 0px;\\n}\\n\\n.call-stats-card-border1 {\\n border-style: solid solid none solid;\\n border-width: 1px;\\n border-radius: 0%;\\n border-color: lightgray;\\n\\n}\\n\\n.call-stats-card-border2 {\\n border-style: solid solid solid solid;\\n border-width: 1px;\\n border-radius: 0%;\\n margin-bottom: 15px;\\n border-color: lightgray;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-group {\\n border-radius: 0px;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle {\\n background-color: #ffffff;\\n color: #5482BC;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-checked {\\n background-color: #5482BC;\\n color: #ffffff;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-label-content {\\n line-height: 30px;\\n font: Regular 14px Roboto;\\n letter-spacing: 0px;\\n}\\n\\n.toggle-btn-grp ::ng-deep .refresh-btn.mat-button {\\n min-width: auto;\\n}\\n\\n.refresh-btn {\\n background-color: #ffffff;\\n color: #e64243;\\n border: 1px solid #e64243;\\n border-radius: 0px;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-flex {\\n border: 1px solid lightgray;\\n border-radius: 3px;\\n background: white;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-label {\\n padding-left: 10px;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-infix {\\n border-top: none;\\n}\\n\\n.textboxService ::ng-deep label.mat-form-field-label {\\n margin-top: 8px !important;\\n}\\n\\n.textboxService ::ng-deep input.mat-input-element {\\n margin-top: 0.6em;\\n margin-left: 10px;\\n}\\n\\n.search-icon {\\n position: absolute;\\n right: 15px;\\n top: 15px;\\n}\\n\\n.backColor {\\n background-color: #00457D !important;\\n font-size: 12px;\\n}\\n\\n.box-size {\\n margin-left: 10px;\\n margin-top: 7px;\\n width: 28px;\\n height: 28px;\\n color: #ffffff !important;\\n}\\n\\n.box-size1 {\\n margin-left: 10px;\\n margin-top: 10px;\\n width: 22px;\\n height: 22px;\\n color: #ffffff !important;\\n}\\n\\n.backColor1 {\\n background-color: #5482BC !important;\\n font-size: 12px;\\n}\\n\\n.call-stats-value {\\n margin-left: 50px;\\n font-size: 18px;\\n}\\n\\n.call-stats-value1 {\\n margin-left: 30px;\\n font-size: 18px;\\n}\\n\\n.info-circle-size {\\n font-size: 12px !important;\\n color: #ffffff !important;\\n}\\n\\n.flex-set {\\n margin-top: 7px;\\n margin-left: 15px;\\n}\\n\\n.flex-set1 {\\n margin-top: 7px;\\n margin-left: 25px;\\n}\\n\\n.dueDateIcon {\\n height: 9px;\\n width: 11px;\\n}\\n\\n.margin-left {\\n padding-left: 10px;\\n}\\n\\n.paginator ::ng-deep .mat-form-field-infix {\\n height: 18px !important;\\n padding-bottom: 0px;\\n}\\n\\n.followUp {\\n width: 9% !important;\\n}\\n\\n.lastCall {\\n width: 9% !important;\\n}\\n\\n.mat-option {\\n font-size: 13px;\\n\\n}\\n\\n.fontClassBold {\\n font-size: 14px;\\n}\\n\\n.fontClassBold1 {\\n\\n color: #484848;\\n font-size: 14px ;\\n margin-top: 5px;\\n font-weight: normal !important;\\n\\n}\\n\\n.enqiryButton {\\n color: white !important;\\n background-color: #00457D;\\n margin-top: 30px;\\n margin-left: 360px;\\n}\\n\\n::ng-deep .mat-tooltip{\\n font-size: 15px;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbW9kYWwvcHJzLWNvbXBsYWludC1kaWFsb2cvcHJzLWNvbXBsYWludC1kaWFsb2cuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLHlCQUF5QjtJQUN6QixZQUFZOztBQUVoQjs7QUFFQTtJQUNJLFlBQVk7SUFDWixlQUFlO0lBQ2YsbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksbUJBQW1CO0lBQ25CLHNCQUFzQjtJQUN0QixhQUFhO0lBQ2IsZUFBZTtJQUNmLDhCQUE4QjtBQUNsQzs7QUFFQTtJQUNJLFlBQVk7SUFDWixZQUFZO0lBQ1osZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksWUFBWTtJQUNaLFlBQVk7SUFDWixnQkFBZ0I7O0FBRXBCOztBQUVBO0lBQ0ksaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQixtQkFBbUI7SUFDbkIsY0FBYztJQUNkLFVBQVU7SUFDVixrQkFBa0I7SUFDbEIsb0JBQW9CO0FBQ3hCOztBQUVBO0lBQ0ksaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQixtQkFBbUI7SUFDbkIsY0FBYztJQUNkLFVBQVU7SUFDVixrQkFBa0I7SUFDbEIsb0JBQW9CO0lBQ3BCLGVBQWU7O0FBRW5COztBQUVBO0lBQ0ksWUFBWTtJQUNaLGVBQWU7SUFDZixnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxtQkFBbUI7O0lBRW5CLFFBQVE7SUFDUixZQUFZO0lBQ1osWUFBWTs7QUFFaEI7O0FBRUE7SUFDSSxVQUFVO0lBQ1YsWUFBWTtJQUNaLFdBQVc7SUFDWCxZQUFZO0lBQ1osa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0ksV0FBVztBQUNmOztBQUVBO0lBQ0ksZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQixpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxzQkFBc0I7SUFD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cGxhaW50LWRpYWxvZy5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm1hdC1tZW51IHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ubWF0LXRhYi1uYXYtYmFyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEO1xuICAgIGhlaWdodDogMzBweDtcblxufVxuXG4ubWF0LXRhYi1uYXYtYmFyIGEge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDhweDtcbn1cblxuLmZpbHRlcmRpdiB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cblxuLmRyb3VwZG93bi1zdHlsZSB7XG4gICAgd2lkdGg6IDYzNnB4O1xuICAgIG1hcmdpbjogMTBweDtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xufVxuXG4uZHJvdXBkb3duLXN0eWxlMSB7XG4gICAgd2lkdGg6IDIyMHB4O1xuICAgIG1hcmdpbjogMTBweDtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuXG59XG5cbi5maWx0ZXItbGFiZWwge1xuICAgIGZvbnQ6IDEycHggUm9ib3RvO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gICAgY29sb3I6ICMzYzNjM2M7XG4gICAgb3BhY2l0eTogMTtcbiAgICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gICAgcGFkZGluZzogMXB4IDBweCAwcHg7XG59XG5cbi5maWx0ZXItbGFiZWwxIHtcbiAgICBmb250OiAxMnB4IFJvYm90bztcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICAgIGNvbG9yOiAjM2MzYzNjO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICAgIHBhZGRpbmc6IDFweCAwcHggMHB4O1xuICAgIG1hcmdpbi10b3A6IDdweDtcblxufVxuXG4ucGlwZWxpbmUtaGVhZGVyIHtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIG1hcmdpbi1sZWZ0OiAwcHg7XG59XG5cbi5oZWFkZXItY29udGFpbmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuXG4gICAgdG9wOiAwcHg7XG4gICAgei1pbmRleDogMTAwO1xuICAgIHdpZHRoOiA4NTBweDtcblxufVxuXG4uaW1hZ2VWb2x2byB7XG4gICAgd2lkdGg6IDQwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcGFkZGluZzogNXB4O1xuICAgIHBhZGRpbmctbGVmdDogMjBQWDtcbn1cblxuLndvcmtpbmctYXJlYSB7XG4gICAgbWFyZ2luLXRvcDogMTE1cHg7XG59XG5cbnRhYmxlIHtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLmNhbGxpbmctdGFibGUgdHIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnRhYmxlLWhlYWQtY2FsbCB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBwYWRkaW5nLXRvcDogMTJweDtcbn1cblxuLmJ1dHRvbi1tYXJnaW4ge1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuXG4uY2FsbExpc3Qge1xuICAgIGZvbnQ6IEJvbGQgMjBweCBSb2JvdG87XG4gICAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgICBjb2xvcjogIzQ4NDg0ODtcbiAgICBvcGFjaXR5OiAxO1xufVxuXG4uY2xvc2UtY29uIHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRvcDogM3B4O1xuICAgIHJpZ2h0OiAxcHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gICAgei1pbmRleDogMTA7XG4gICAgb3BhY2l0eTogMTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0IHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMHB4O1xuICAgIHBhZGRpbmctdG9wOiAycHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWJ1dHRvbiB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQ6IHdoaXRlO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIHBhZGRpbmctYm90dG9tOiAwcHg7XG4gICAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAyMXB4O1xuXG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LWFycm93LXdyYXBwZXIge1xuICAgIHBhZGRpbmctYm90dG9tOiAweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIHtcbiAgICB0b3A6IDA7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICB0b3A6IDA7XG4gICAgbWFyZ2luLXRvcDogNnB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gICAgY29sb3I6ICMwYjBiMGI7XG59XG5cbi5maWx0ZXIxIHtcbiAgICBmb250LXNpemU6IDEycHg7XG59XG5cblxuLmZpbHRlcjIgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogMjFweDtcbiAgICBjb2xvcjojMGIwYjBiO1xuICAgIG1hcmdpbi1sZWZ0OiAxNDJweDtcbn1cblxuLmZpbHRlcjIgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICAgIHBhZGRpbmctbGVmdDogOHB4O1xufVxuXG4uZmlsdGVyMiA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdmFsdWUge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4uZmlsdGVyMiA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtYXJyb3ctd3JhcHBlciB7XG4gICAgcGFkZGluZy1ib3R0b206IDB4O1xufVxuXG4uZmlsdGVyMiA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIge1xuICAgIHRvcDogMDtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjIgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjIgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5maWx0ZXIyIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIHRvcDogMDtcbiAgICBtYXJnaW4tdG9wOiA2cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgICBjb2xvcjogIzBiMGIwYjtcbn1cblxuLmZpbHRlcjIge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmZpbHRlcjMgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiMwYjBiMGI7XG4gICAgbWFyZ2luLWxlZnQ6IDE0MnB4O1xufVxuXG4uZmlsdGVyMyA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gICAgcGFkZGluZy1sZWZ0OiA4cHg7XG59XG5cbi5maWx0ZXIzIDo6bmctZGVlcCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5maWx0ZXIzIDo6bmctZGVlcCAubWF0LXNlbGVjdC1hcnJvdy13cmFwcGVyIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMHg7XG59XG5cbi5maWx0ZXIzIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gICAgdG9wOiAwO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMyA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMyA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmZpbHRlcjMgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgdG9wOiAwO1xuICAgIG1hcmdpbi10b3A6IDZweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctbGVmdDogNXB4O1xuICAgIGNvbG9yOiAjMGIwYjBiO1xufVxuXG4uZmlsdGVyMyB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uY2F1dGlvbntcbiAgICBjb2xvcjogI2ZmMDAwMDtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDE0NXB4O1xuICAgIG1hcmdpbi10b3A6IDJweDtcbn1cblxuLnJlZmVzaC1pY29uIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLWJvdHRvbTogLTMwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uY29sb3JlZFJvdyB7XG4gICAgYmFja2dyb3VuZDogI2ZmZmY5OTtcbn1cblxuLmNvbG9yZWRHcmVlblJvdyB7XG4gICAgYmFja2dyb3VuZDogIzkwZWU5MDtcbn1cblxuLm1hdC1kaWFsb2ctdGl0bGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtncmF5O1xufVxuXG4uY2FsbExpc3QtcmlnaHQge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cblxuLmNvbHVtbkhlYWRlciB7XG4gICAgZm9udDogQm9sZCAxMnB4IFJvYm90bztcbiAgICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xufVxuXG4ubG9zdCB7XG4gICAgY29sb3I6ICNlNjQyNDM7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDEwcHg7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIHRvcDogMzglO1xufVxuXG4uaW5ib3VuZCB7XG4gICAgY29sb3I6ICMyZTM2Njg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDBweDtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgdG9wOiAzOCU7XG59XG5cbi5jb2x1bW52YWx1ZSB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmZpbHRlckJ1dHRvbiB7XG4gICAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDEwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMXB4O1xufVxuXG4uZmlsdGVyZGl2IHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1ldmVubHk7XG59XG5cbi5maWx0ZXJkaXYxIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBsZWZ0O1xuICAgIG1hcmdpbi1sZWZ0OiA0NXB4O1xufVxuXG5cbi5zZXJ2aWNlRHVlRGF0ZSB7XG4gICAgd2lkdGg6IDEwJSAhaW1wb3J0YW50O1xufVxuXG4uZm9sbG93VXAge1xuICAgIHdpZHRoOiA4JSAhaW1wb3J0YW50O1xufVxuXG50ZC5tYXQtY2VsbCxcbnRkLm1hdC1mb290ZXItY2VsbCxcbnRoLm1hdC1oZWFkZXItY2VsbCB7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkIG5vbmUgbm9uZSBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDAuMXB4O1xuICAgIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4uZGF0YXZpZXcge1xuICAgIG1hcmdpbi1sZWZ0OiAycHg7XG59XG5cbi5kLW5vbmUxIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uZC1ub25lMiB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLnRhYmxlLWJvcmRlci5tYXQtdGFibGUge1xuICAgIGJvcmRlci1zdHlsZTogbm9uZSBzb2xpZCBzb2xpZCBub25lO1xuICAgIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG50aC5tYXQtaGVhZGVyLWNlbGwge1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Q5ZDlkOTtcbn1cblxuLm1hdC1zb3J0LWhlYWRlci1jb250YWluZXIge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7XG59XG5cbi5maWx0ZXIyIHtcbiAgICB3aWR0aDogYXV0bztcbn1cblxuLmZpbHRlcjMge1xuICAgIHdpZHRoOiBhdXRvO1xufVxuXG50ZXh0U2VydmljZSB7XG4gICAgZm9udDogMjJweCBSb2JvdG87XG4gICAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgICBjb2xvcjogIzQ4NDg0ODtcbiAgICBvcGFjaXR5OiAxO1xuXG59XG5cblxuXG4uY2FsbC1zdGF0cy1jYXJkMSB7XG4gICAgcGFkZGluZy10b3A6IDBweDtcbn1cblxuLmNhbGwtc3RhdHMtY2FyZC1ib3JkZXIxIHtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIG5vbmUgc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMCU7XG4gICAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG5cbn1cblxuLmNhbGwtc3RhdHMtY2FyZC1ib3JkZXIyIHtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIHNvbGlkIHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIHtcbiAgICBib3JkZXItcmFkaXVzOiAwcHg7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIGNvbG9yOiAjNTQ4MkJDO1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTQ4MkJDO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZS1sYWJlbC1jb250ZW50IHtcbiAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICBmb250OiBSZWd1bGFyIDE0cHggUm9ib3RvO1xuICAgIGxldHRlci1zcGFjaW5nOiAwcHg7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLnJlZnJlc2gtYnRuLm1hdC1idXR0b24ge1xuICAgIG1pbi13aWR0aDogYXV0bztcbn1cblxuLnJlZnJlc2gtYnRuIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIGNvbG9yOiAjZTY0MjQzO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNjQyNDM7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4O1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCBsYWJlbC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgbWFyZ2luLXRvcDogOHB4ICFpbXBvcnRhbnQ7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgaW5wdXQubWF0LWlucHV0LWVsZW1lbnQge1xuICAgIG1hcmdpbi10b3A6IDAuNmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuXG4uc2VhcmNoLWljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMTVweDtcbiAgICB0b3A6IDE1cHg7XG59XG5cbi5iYWNrQ29sb3Ige1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0QgIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IDEycHg7XG59XG5cbi5ib3gtc2l6ZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgbWFyZ2luLXRvcDogN3B4O1xuICAgIHdpZHRoOiAyOHB4O1xuICAgIGhlaWdodDogMjhweDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG4uYm94LXNpemUxIHtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIHdpZHRoOiAyMnB4O1xuICAgIGhlaWdodDogMjJweDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG4uYmFja0NvbG9yMSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzU0ODJCQyAhaW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmNhbGwtc3RhdHMtdmFsdWUge1xuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xuICAgIGZvbnQtc2l6ZTogMThweDtcbn1cblxuLmNhbGwtc3RhdHMtdmFsdWUxIHtcbiAgICBtYXJnaW4tbGVmdDogMzBweDtcbiAgICBmb250LXNpemU6IDE4cHg7XG59XG5cbi5pbmZvLWNpcmNsZS1zaXplIHtcbiAgICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG4uZmxleC1zZXQge1xuICAgIG1hcmdpbi10b3A6IDdweDtcbiAgICBtYXJnaW4tbGVmdDogMTVweDtcbn1cblxuLmZsZXgtc2V0MSB7XG4gICAgbWFyZ2luLXRvcDogN3B4O1xuICAgIG1hcmdpbi1sZWZ0OiAyNXB4O1xufVxuXG4uZHVlRGF0ZUljb24ge1xuICAgIGhlaWdodDogOXB4O1xuICAgIHdpZHRoOiAxMXB4O1xufVxuXG5cblxuLm1hcmdpbi1sZWZ0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG59XG5cbi5wYWdpbmF0b3IgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgaGVpZ2h0OiAxOHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDBweDtcbn1cblxuLmZvbGxvd1VwIHtcbiAgICB3aWR0aDogOSUgIWltcG9ydGFudDtcbn1cblxuLmxhc3RDYWxsIHtcbiAgICB3aWR0aDogOSUgIWltcG9ydGFudDtcbn1cblxuLm1hdC1vcHRpb24ge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcblxufVxuXG4uZm9udENsYXNzQm9sZCB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4uZm9udENsYXNzQm9sZDEge1xuXG4gICAgY29sb3I6ICM0ODQ4NDg7XG4gICAgZm9udC1zaXplOiAxNHB4IDtcbiAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbCAhaW1wb3J0YW50O1xuXG59XG4uZW5xaXJ5QnV0dG9uIHtcbiAgICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEO1xuICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDM2MHB4O1xufVxuXG46Om5nLWRlZXAgLm1hdC10b29sdGlwe1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbn1cbiJdfQ== */\"","import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialog, MatDialogConfig, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from 'src/app/core/service/common-service/common.service';\n\n@Component({\n selector: 'app-prs-complaint-dialog',\n templateUrl: './prs-complaint-dialog.component.html',\n styleUrls: ['./prs-complaint-dialog.component.css']\n})\nexport class PrsComplaintDialogComponent implements OnInit {\n\n category1: string;\n category2: string;\n category3: string = '';\n vehicleType: string = '';\n preferredLanguage: string;\n customerId: string = '';\n chassisNo: string = '';\n vehRegNo: string = '';\n dealerCode: string = '';\n source: string = '';\n complaintRemarks: string;\n additionalRemarks: string = '';\n category1Array: { key: any, value: any }[] = [];\n category2Array: { key: any, value: any }[] = [];\n roleId: string;\n sourceArray: { key: any, value: any }[] = []\n data1: {}\n complaintId: string = \"\";\n isSubmitted: boolean = false;\n callType: string;\n selectedSource: string = \"PRS\";\n vehicleRegNo: string = \"\";\n selectedCategory1: string;\n selectedCategory2: string;\n closureRemarks: string = '';\n initialRemarks: string = '';\n jobCardNo: string = '';\n customerID: string;\n callTypeCode: any;\n customerData: any;\n userId: string;\n checkRem: boolean = true;\n checkDes: boolean = true;\n\n constructor(\n private dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any, private toastr: ToastrService, private commonService: CommonService\n ) {\n this.dealerCode = data.dealerCode;\n this.customerId = data.customerId;\n this.chassisNo = data.chassis;\n this.jobCardNo = data.jobCardNo;\n if (data.vehicleRegNo != null) {\n this.vehRegNo = data.vehicleRegNo;\n this.vehicleRegNo = data.vehicleRegNo;\n } else {\n this.vehRegNo = '';\n }\n\n }\n\n ngOnInit() {\n this.roleId = localStorage.getItem('roleId');\n this.userId = localStorage.getItem(\"userId\");\n this.customerData = JSON.parse(localStorage.getItem(\"customerData\")) || {};\n\n this.callTypeCode = this.customerData.callTypeSq;\n this.customerID = localStorage.getItem(\"customerId\");\n if (this.roleId == \"12\") {\n this.selectedSource = \"Z04\"\n }\n\n if (this.roleId == \"1\") {\n this.category1Array.push({ \"key\": \"02\", \"value\": \"AM-Dealer\" })\n this.sourceArray.push({ \"key\": 'Z09', \"value\": \"Iconnect\" });\n this.selectedCategory1 = \"02\";\n }\n else {\n this.category1Array.push({ \"key\": \"01\", \"value\": \"Sales\" }, { \"key\": \"02\", \"value\": \"AM-Dealer\" })\n this.sourceArray.push({ \"key\": 'Z04', \"value\": \"PRS\" }, { \"key\": 'Z06', \"value\": \"1st Month Survey\" }, { \"key\": 'Z07', \"value\": \"4th Month Survey\" }, { \"key\": 'Z08', \"value\": \"9th Month Survey\" })\n }\n\n if (this.roleId == \"1\") {\n this.category2Array.push({ \"key\": \"Z9\", \"value\": \"Iconnect\" });\n this.selectedCategory2 = \"Z9\";\n }\n\n this.callType = localStorage.getItem(\"selectedCallTypeValues\");\n this.getSource();\n }\n\n getSource() {\n if (this.roleId == '12') {\n if (this.callType == \"1st Month - Sales Experience\")\n this.selectedSource = \"Z06\"\n\n if (this.callType == \"4th Month - Product Experience\")\n this.selectedSource = \"Z07\"\n\n if (this.callType == \"9th Month - Service Experience\")\n this.selectedSource = \"Z08\"\n\n if (this.callType == \"PRS-Post Repair Survey\")\n this.selectedSource = \"Z04\"\n }\n\n if (this.roleId == '1') {\n this.selectedSource = \"Z09\";\n }\n }\n\n categorySelected() {\n\n // if (this.category1 == 'Sales') {\n // this.category2Array.push({\"key\":\"Delivery\", \"value\":\"Delivery\"},{\"key\":\"Sales\", \"value\":\"Sales\"},{\"key\":\"PreSales\", \"value\":\"Pre-Sales\"});\n // }\n if (this.roleId == \"1\") {\n if (this.selectedCategory1 == '02') {\n this.category2Array.push({ \"key\": \"Z9\", \"value\": \"Iconnect\" }\n // ,{\"key\": \"ProductSafety\", \"value\":'Product Safety'},{\"key\": \"Spares\", \"value\": \"Spares\"},{\"key\": \"LowFeedbackConcern\", \"value\": \"Low Feedback Concern\"}, {\"key\":\"ServiceQuality\",\"value\":\"Service Quality\"},{\"key\":\"ProductPerformance\",\"value\": \"Product Performance\"},{\"key\": \"EOSVehicleBreakdown\",\"value\":'EOS-Vehicle Breakdown'}, {\"key\":\"InstantFeedback\",\"value\":'Instant Feedback'},{\"key\":\"NPS\",\"value\": 'NPS'}\n );\n } else {\n this.category2Array.push({ \"key\": \"PleaseSelectCategory1\", \"value\": 'Please Select Category 1' });\n }\n }\n else {\n if (this.selectedCategory1 == \"01\") {\n this.category2Array.push({ \"key\": \"02\", \"value\": \"Delivery\" }, { \"key\": \"03\", \"value\": \"Sales\" }, { \"key\": \"04\", \"value\": \"Pre-Sales\" });\n }\n else if (this.selectedCategory1 == \"02\") {\n this.category2Array.push({ \"key\": \"13\", \"value\": 'Product Safety' }, { \"key\": \"14\", \"value\": \"Spares\" }, { \"key\": \"43\", \"value\": \"Low Feedback Concern\" }, { \"key\": \"06\", \"value\": \"Service Quality\" }, { \"key\": \"07\", \"value\": \"Product Performance\" }, { \"key\": \"27\", \"value\": 'EOS-Vehicle Breakdown' }, { \"key\": \"26\", \"value\": 'Instant Feedback' }, { \"key\": \"28\", \"value\": 'NPS' })\n }\n else {\n this.category2Array.push({ \"key\": \"PleaseSelectCategory1\", \"value\": 'Please Select Category 1' });\n }\n\n }\n }\n\n onClose() {\n this.dialogRef.close(this.complaintId);\n }\n\n createComplaint() {\n if (this.selectedCategory1 == null || this.selectedCategory2 == null || this.preferredLanguage == null || (this.initialRemarks == null || this.initialRemarks == '') || (this.closureRemarks == null || this.closureRemarks == '')) {\n this.toastr.error(\"Please fill required fields\");\n } else {\n this.commonService.saveComplaintDialog(this.customerId, this.preferredLanguage, this.vehicleRegNo, this.vehicleType, this.chassisNo, this.dealerCode, this.initialRemarks, this.selectedCategory1, this.selectedCategory2, this.category3, this.selectedSource, this.closureRemarks).subscribe(res => {\n if (res[\"responseCode\"] == 0 && res[\"responseData\"].complaintId != \"\") {\n this.data1 = {\n complaintId: res[\"responseData\"].complaintId,\n isSubmitted: false,\n complaintRemarks: this.closureRemarks\n }\n this.commonService.saveComplaint(this.jobCardNo, this.roleId, this.userId, this.callTypeCode, res[\"responseData\"].complaintId, this.customerID, this.chassisNo).subscribe();\n this.commonService.complainUpdateCallList(this.customerId, this.chassisNo, this.jobCardNo, this.callTypeCode, this.userId, this.roleId).subscribe();\n this.complaintId = res[\"responseData\"].complaintId;\n this.toastr.info(\"Complaint Submitted of ID \" + res[\"responseData\"].complaintId);\n this.dialogRef.close(this.data1);\n }\n else {\n this.toastr.error(res[\"responseData\"].messageTxt, \"Error\");\n this.dialogRef.close();\n }\n }, error => {\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n this.dialogRef.close();\n });\n }\n }\n\n omit_special_charDes(e) {\n console.log(e.target.id);\n var k;\n document.all ? k = e.keyCode : k = e.which;\n this.checkDes = ((k > 64 && k < 91) || (k > 96 && k < 123) || k == 8 || k == 32 || (k >= 48 && k <= 57));\n console.log(this.checkRem, this.checkDes)\n return ((k > 64 && k < 91) || (k > 96 && k < 123) || k == 8 || k == 32 || (k >= 48 && k <= 57));\n }\n\n omit_special_charRem(e) {\n console.log(e.target.id);\n var k;\n document.all ? k = e.keyCode : k = e.which;\n this.checkRem = ((k > 64 && k < 91) || (k > 96 && k < 123) || k == 8 || k == 32 || (k >= 48 && k <= 57));\n console.log(this.checkRem, this.checkDes)\n return ((k > 64 && k < 91) || (k > 96 && k < 123) || k == 8 || k == 32 || (k >= 48 && k <= 57));\n }\n\n}\n\nexport function openPrsComplaintDialog(dialog: MatDialog, dealerCode: any, customerId: any, chassis: any, vehicleRegNo: any, jobCardNo: any, callTypeCode: any, roleId: any) {\n const config = new MatDialogConfig();\n config.disableClose = true;\n config.autoFocus = true;\n config.width = '850px';\n config.height = '530px';\n config.data = {\n vehicleRegNo: vehicleRegNo,\n dealerCode: dealerCode,\n customerId: customerId,\n chassis: chassis,\n jobCardNo: jobCardNo,\n callTypeCode: callTypeCode,\n roleId: roleId\n };\n const dialogRef = dialog.open(PrsComplaintDialogComponent, config);\n return dialogRef.afterClosed();\n}","export default \".message {\\n width: 100%;\\n margin-bottom: 20px;\\n}\\n\\n.dialog-area {\\n padding: 20px;\\n}\\n\\n.row {\\n width: 100%;\\n height: 36px;\\n}\\n\\n.row .button {\\n margin-left: 10px;\\n}\\n\\n.header {\\n font-weight: bold;\\n margin-bottom: 10px;\\n}\\n\\n.close-con {\\n float: right;\\n cursor: pointer;\\n}\\n\\naudio:focus {\\n outline: none;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9tb2RhbC9yZWNvcmRpbmctZGlhbG9nL3JlY29yZGluZy1kaWFsb2cuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL21vZGFsL3JlY29yZGluZy1kaWFsb2cvcmVjb3JkaW5nLWRpYWxvZy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLFdBQUE7RUFDQSxtQkFBQTtBQ0NGOztBREVBO0VBQ0UsYUFBQTtBQ0NGOztBREVBO0VBQ0UsV0FBQTtFQUNBLFlBQUE7QUNDRjs7QURFQTtFQUNFLGlCQUFBO0FDQ0Y7O0FERUE7RUFDRSxpQkFBQTtFQUNBLG1CQUFBO0FDQ0Y7O0FERUE7RUFDRSxZQUFBO0VBQ0EsZUFBQTtBQ0NGOztBREVBO0VBQ0ksYUFBQTtBQ0NKIiwiZmlsZSI6InNyYy9hcHAvbW9kYWwvcmVjb3JkaW5nLWRpYWxvZy9yZWNvcmRpbmctZGlhbG9nLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm1lc3NhZ2Uge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMjBweFxufVxuXG4uZGlhbG9nLWFyZWEge1xuICBwYWRkaW5nOiAyMHB4O1xufVxuXG4ucm93IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMzZweDtcbn1cblxuLnJvdyAuYnV0dG9uIHtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbi5oZWFkZXIge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLmNsb3NlLWNvbiB7XG4gIGZsb2F0OiByaWdodDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG5hdWRpbzpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbn0iLCIubWVzc2FnZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuXG4uZGlhbG9nLWFyZWEge1xuICBwYWRkaW5nOiAyMHB4O1xufVxuXG4ucm93IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMzZweDtcbn1cblxuLnJvdyAuYnV0dG9uIHtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbi5oZWFkZXIge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLmNsb3NlLWNvbiB7XG4gIGZsb2F0OiByaWdodDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG5hdWRpbzpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59Il19 */\"","import { Component, OnInit, Input, Output, EventEmitter, ViewChild, ElementRef } from '@angular/core';\n\n@Component({\n selector: 'app-recording-dialog',\n templateUrl: './recording-dialog.component.html',\n styleUrls: ['./recording-dialog.component.scss']\n})\n\nexport class RecordingDialogComponent implements OnInit {\n @Input() audioSource: string;\n @Output() close: EventEmitter = new EventEmitter();\n @ViewChild('audioOption', { static: true }) audioPlayerRef: ElementRef;\n\n constructor() {\n }\n\n ngOnInit() { }\n\n /**\n * Name: closeDailog\n * purpose: To close Dailog\n */\n closeDailog(): void {\n this.audioPlayerRef.nativeElement.pause();\n this.audioPlayerRef.nativeElement.currentTime = 0;\n this.close.emit(null);\n }\n}\n","export default \".message {\\n width: 100%;\\n margin-bottom: 20px;\\n}\\n\\n.dialog-area {\\n padding: 20px;\\n}\\n\\n.row {\\n width: 100%;\\n height: 36px;\\n}\\n\\n.row .button {\\n margin-left: 10px;\\n}\\n\\n.header {\\n font-weight: bold;\\n margin-bottom: 10px;\\n}\\n\\n.action {\\n text-align: center;\\n}\\n\\n.close-con {\\n float: right;\\n font-size: 18px;\\n cursor: pointer;\\n}\\n\\n.btn {\\n border-left: 4px solid #2E3668;\\n position: relative;\\n cursor: pointer;\\n transition: all 0.3s ease;\\n overflow: hidden;\\n border-radius: 0;\\n background-color: #E64243 !important;\\n}\\n\\n.btn p {\\n text-align: center;\\n text-transform: uppercase;\\n color: #fff;\\n position: relative;\\n z-index: 1;\\n transition: all 0.3s ease;\\n margin: auto;\\n}\\n\\n/* sliders */\\n\\n.btn:before {\\n content: \\\"\\\";\\n width: 100%;\\n height: 100%;\\n background-color: #2E3668;\\n color: #fff;\\n position: absolute;\\n transition: all 0.3s ease;\\n}\\n\\n/* Left Slider */\\n\\n.btn-2:before {\\n top: 0;\\n left: -210px;\\n}\\n\\n.btn-2:hover:before {\\n left: 0;\\n}\\n\\n.btn-2:hover {\\n color: #fff;\\n}\\n\\n.btn-1 {\\n background-color: #ffffff !important;\\n color: #E64243 !important;\\n border: 1px solid #E64243;\\n}\\n\\n.btn-1 p {\\n margin: auto;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9tb2RhbC9yZW1pbmRlci1kaWFsb2cvcmVtaW5kZXItZGlhbG9nLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9tb2RhbC9yZW1pbmRlci1kaWFsb2cvcmVtaW5kZXItZGlhbG9nLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsV0FBQTtFQUNBLG1CQUFBO0FDQ0Y7O0FERUE7RUFDRSxhQUFBO0FDQ0Y7O0FERUE7RUFDRSxXQUFBO0VBQ0EsWUFBQTtBQ0NGOztBREVBO0VBQ0UsaUJBQUE7QUNDRjs7QURFQTtFQUNFLGlCQUFBO0VBQ0EsbUJBQUE7QUNDRjs7QURFQTtFQUNFLGtCQUFBO0FDQ0Y7O0FERUE7RUFDRSxZQUFBO0VBQ0EsZUFBQTtFQUNBLGVBQUE7QUNDRjs7QURHQTtFQUNFLDhCQUFBO0VBQ0Esa0JBQUE7RUFDQSxlQUFBO0VBQ0EseUJBQUE7RUFDQSxnQkFBQTtFQUNBLGdCQUFBO0VBQ0Esb0NBQUE7QUNBRjs7QURHQTtFQUNFLGtCQUFBO0VBQ0EseUJBQUE7RUFDQSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBO0VBQ0EseUJBQUE7RUFDQSxZQUFBO0FDQUY7O0FER0EsWUFBQTs7QUFDQTtFQUNFLFdBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLHlCQUFBO0VBQ0EsV0FBQTtFQUNBLGtCQUFBO0VBQ0EseUJBQUE7QUNBRjs7QURHQSxnQkFBQTs7QUFDQTtFQUNFLE1BQUE7RUFDQSxZQUFBO0FDQUY7O0FER0E7RUFDRSxPQUFBO0FDQUY7O0FER0E7RUFDRSxXQUFBO0FDQUY7O0FER0E7RUFDRSxvQ0FBQTtFQUNBLHlCQUFBO0VBQ0EseUJBQUE7QUNBRjs7QURHQTtFQUNFLFlBQUE7QUNBRiIsImZpbGUiOiJzcmMvYXBwL21vZGFsL3JlbWluZGVyLWRpYWxvZy9yZW1pbmRlci1kaWFsb2cuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIubWVzc2FnZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAyMHB4XG59XG5cbi5kaWFsb2ctYXJlYSB7XG4gIHBhZGRpbmc6IDIwcHg7XG59XG5cbi5yb3cge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAzNnB4O1xufVxuXG4ucm93IC5idXR0b24ge1xuICBtYXJnaW4tbGVmdDogMTBweDtcbn1cblxuLmhlYWRlciB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4uYWN0aW9uIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uY2xvc2UtY29uIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLy9zbGlkaW5nIGJ0blxuLmJ0biB7XG4gIGJvcmRlci1sZWZ0OiA0cHggc29saWQgIzJFMzY2ODtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFNjQyNDMgIWltcG9ydGFudDtcbn1cblxuLmJ0biBwIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogI2ZmZjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICBtYXJnaW46IGF1dG87XG59XG5cbi8qIHNsaWRlcnMgKi9cbi5idG46YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJFMzY2ODtcbiAgY29sb3I6ICNmZmY7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cblxuLyogTGVmdCBTbGlkZXIgKi9cbi5idG4tMjpiZWZvcmUge1xuICB0b3A6IDA7XG4gIGxlZnQ6IC0yMTBweDtcbn1cblxuLmJ0bi0yOmhvdmVyOmJlZm9yZSB7XG4gIGxlZnQ6IDA7XG59XG5cbi5idG4tMjpob3ZlciB7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG4uYnRuLTEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRTY0MjQzICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNFNjQyNDM7XG59XG5cbi5idG4tMSBwIHtcbiAgbWFyZ2luOiBhdXRvO1xufVxuIiwiLm1lc3NhZ2Uge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbn1cblxuLmRpYWxvZy1hcmVhIHtcbiAgcGFkZGluZzogMjBweDtcbn1cblxuLnJvdyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDM2cHg7XG59XG5cbi5yb3cgLmJ1dHRvbiB7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuXG4uaGVhZGVyIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi5hY3Rpb24ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5jbG9zZS1jb24ge1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uYnRuIHtcbiAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCAjMkUzNjY4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0U2NDI0MyAhaW1wb3J0YW50O1xufVxuXG4uYnRuIHAge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiAjZmZmO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIG1hcmdpbjogYXV0bztcbn1cblxuLyogc2xpZGVycyAqL1xuLmJ0bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMkUzNjY4O1xuICBjb2xvcjogI2ZmZjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xufVxuXG4vKiBMZWZ0IFNsaWRlciAqL1xuLmJ0bi0yOmJlZm9yZSB7XG4gIHRvcDogMDtcbiAgbGVmdDogLTIxMHB4O1xufVxuXG4uYnRuLTI6aG92ZXI6YmVmb3JlIHtcbiAgbGVmdDogMDtcbn1cblxuLmJ0bi0yOmhvdmVyIHtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5idG4tMSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgY29sb3I6ICNFNjQyNDMgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgI0U2NDI0Mztcbn1cblxuLmJ0bi0xIHAge1xuICBtYXJnaW46IGF1dG87XG59Il19 */\"","import { Component, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-reminder-dialog',\n templateUrl: './reminder-dialog.component.html',\n styleUrls: ['./reminder-dialog.component.scss']\n})\n\nexport class ReminderDialogComponent implements OnInit {\n customerCount: string;\n\n constructor(private dialogRef: MatDialogRef, private router: Router) { }\n\n ngOnInit() {\n this.customerCount = localStorage.getItem('customerCount');\n }\n\n goToCustList() {\n this.close();\n this.router.navigate(['calling']);\n }\n\n close() {\n this.dialogRef.close();\n }\n}\n","export default \".message {\\n width: 100%;\\n margin-bottom: 20px;\\n display: block !important;\\n}\\n.message .stats-list {\\n font-size: 14px;\\n border-right: 0px solid lightgrey;\\n padding: 5px 0px;\\n}\\n.message .stats-list span {\\n margin-right: 5px;\\n padding-right: 5px;\\n}\\n.message .value-list {\\n font-size: 14px;\\n}\\n.message .value-list span {\\n margin-left: 5px;\\n padding-left: 5px;\\n}\\n.dialog-area {\\n padding: 20px;\\n}\\n.row {\\n width: 100%;\\n height: 36px;\\n}\\n.row .button {\\n margin-left: 10px;\\n}\\n.header {\\n font-weight: bold;\\n margin-bottom: 10px;\\n font-size: 14px;\\n}\\n.action {\\n text-align: center;\\n}\\n.close-con {\\n float: right;\\n font-size: 18px;\\n cursor: pointer;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9tb2RhbC9zZXJ2aWNlLWJyZWFrLWRpYWxvZy9zZXJ2aWNlLWJyZWFrLWRpYWxvZy5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvbW9kYWwvc2VydmljZS1icmVhay1kaWFsb2cvc2VydmljZS1icmVhay1kaWFsb2cuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxXQUFBO0VBQ0EsbUJBQUE7RUFDQSx5QkFBQTtBQ0NGO0FEQ0U7RUFDRSxlQUFBO0VBQ0EsaUNBQUE7RUFDQSxnQkFBQTtBQ0NKO0FEQ0k7RUFDRSxpQkFBQTtFQUNBLGtCQUFBO0FDQ047QURHRTtFQUNFLGVBQUE7QUNESjtBREVJO0VBQ0UsZ0JBQUE7RUFDQSxpQkFBQTtBQ0FOO0FES0E7RUFDRSxhQUFBO0FDRkY7QURLQTtFQUNFLFdBQUE7RUFDQSxZQUFBO0FDRkY7QURLQTtFQUNFLGlCQUFBO0FDRkY7QURLQTtFQUNFLGlCQUFBO0VBQ0EsbUJBQUE7RUFDQSxlQUFBO0FDRkY7QURLQTtFQUNFLGtCQUFBO0FDRkY7QURLQTtFQUNFLFlBQUE7RUFDQSxlQUFBO0VBQ0EsZUFBQTtBQ0ZGIiwiZmlsZSI6InNyYy9hcHAvbW9kYWwvc2VydmljZS1icmVhay1kaWFsb2cvc2VydmljZS1icmVhay1kaWFsb2cuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIubWVzc2FnZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuXG4gIC5zdGF0cy1saXN0IHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgYm9yZGVyLXJpZ2h0OiAwcHggc29saWQgbGlnaHRncmV5O1xuICAgIHBhZGRpbmc6IDVweCAwcHg7XG5cbiAgICBzcGFuIHtcbiAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgcGFkZGluZy1yaWdodDogNXB4O1xuICAgIH1cbiAgfVxuXG4gIC52YWx1ZS1saXN0IHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgc3BhbiB7XG4gICAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgICAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gICAgfVxuICB9XG59XG5cbi5kaWFsb2ctYXJlYSB7XG4gIHBhZGRpbmc6IDIwcHg7XG59XG5cbi5yb3cge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAzNnB4O1xufVxuXG4ucm93IC5idXR0b24ge1xuICBtYXJnaW4tbGVmdDogMTBweDtcbn1cblxuLmhlYWRlciB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBmb250LXNpemU6IDE0cHg7XG59XG5cbi5hY3Rpb24ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5jbG9zZS1jb24ge1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuIiwiLm1lc3NhZ2Uge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbn1cbi5tZXNzYWdlIC5zdGF0cy1saXN0IHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBib3JkZXItcmlnaHQ6IDBweCBzb2xpZCBsaWdodGdyZXk7XG4gIHBhZGRpbmc6IDVweCAwcHg7XG59XG4ubWVzc2FnZSAuc3RhdHMtbGlzdCBzcGFuIHtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDVweDtcbn1cbi5tZXNzYWdlIC52YWx1ZS1saXN0IHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLm1lc3NhZ2UgLnZhbHVlLWxpc3Qgc3BhbiB7XG4gIG1hcmdpbi1sZWZ0OiA1cHg7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xufVxuXG4uZGlhbG9nLWFyZWEge1xuICBwYWRkaW5nOiAyMHB4O1xufVxuXG4ucm93IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMzZweDtcbn1cblxuLnJvdyAuYnV0dG9uIHtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbi5oZWFkZXIge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4uYWN0aW9uIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uY2xvc2UtY29uIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn0iXX0= */\"","import { Component, OnInit, Optional, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\n\n@Component({\n selector: 'app-service-break-dialog',\n templateUrl: './service-break-dialog.component.html',\n styleUrls: ['./service-break-dialog.component.scss']\n})\n\nexport class ServiceBreakDialogComponent implements OnInit {\n serviceBreak: string;\n\n constructor(private dialogRef: MatDialogRef,\n @Optional() @Inject(MAT_DIALOG_DATA) public data: any) { }\n\n ngOnInit() {\n this.serviceBreak = this.data['serviceBreak'];\n }\n\n close() {\n this.dialogRef.close();\n }\n}\n","export default \".message {\\n width: 100%;\\n margin-bottom: 20px;\\n margin-top: 25px;\\n}\\n\\n.dialog-area {\\n padding: 15px;\\n font-size: 14px;\\n}\\n\\n.row {\\n width: 100%;\\n height: 36px;\\n}\\n\\n.row .button {\\n margin-left: 10px;\\n}\\n\\n.header {\\n font-weight: bold;\\n margin-bottom: 10px;\\n}\\n\\n.action {\\n text-align: right;\\n}\\n\\n.close-con {\\n float: right;\\n font-size: 18px;\\n cursor: pointer;\\n}\\n\\n.margin {\\n margin-right: 5px;\\n}\\n\\n.btn {\\n position: relative;\\n cursor: pointer;\\n overflow: hidden;\\n background-color: #00457d !important;\\n border-radius: 5px !important;\\n height: 25px;\\n }\\n\\n.btn p {\\n text-align: center;\\n text-transform: uppercase;\\n color: #fff;\\n position: relative;\\n z-index: 1;\\n transition: all 0.3s ease;\\n margin: auto;\\n font-size: 12px;\\n line-height: 10px;\\n }\\n\\n.btn-1 {\\n background-color: #ffffff !important;\\n color: #00457d !important;\\n border: 1px solid #00457d;\\n }\\n\\n.btn-1 p {\\n margin: auto;\\n }\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbW9kYWwvc2VydmljZW5vdHJlcXVpcmUtZGFpbG9nL3NlcnZpY2Vub3RyZXF1aXJlLWRhaWxvZy5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksV0FBVztJQUNYLG1CQUFtQjtJQUNuQixnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxhQUFhO0lBQ2IsZUFBZTtBQUNuQjs7QUFFQTtJQUNJLFdBQVc7SUFDWCxZQUFZO0FBQ2hCOztBQUVBO0lBQ0ksaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0ksaUJBQWlCO0lBQ2pCLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLFlBQVk7SUFDWixlQUFlO0lBQ2YsZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixlQUFlO0lBQ2YsZ0JBQWdCO0lBQ2hCLG9DQUFvQztJQUNwQyw2QkFBNkI7SUFDN0IsWUFBWTtFQUNkOztBQUVBO0lBQ0Usa0JBQWtCO0lBQ2xCLHlCQUF5QjtJQUN6QixXQUFXO0lBQ1gsa0JBQWtCO0lBQ2xCLFVBQVU7SUFDVix5QkFBeUI7SUFDekIsWUFBWTtJQUNaLGVBQWU7SUFDZixpQkFBaUI7RUFDbkI7O0FBRUE7SUFDRSxvQ0FBb0M7SUFDcEMseUJBQXlCO0lBQ3pCLHlCQUF5QjtFQUMzQjs7QUFFQTtJQUNFLFlBQVk7RUFDZCIsImZpbGUiOiJzcmMvYXBwL21vZGFsL3NlcnZpY2Vub3RyZXF1aXJlLWRhaWxvZy9zZXJ2aWNlbm90cmVxdWlyZS1kYWlsb2cuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5tZXNzYWdlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIG1hcmdpbi10b3A6IDI1cHg7XG59XG5cbi5kaWFsb2ctYXJlYSB7XG4gICAgcGFkZGluZzogMTVweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG59XG5cbi5yb3cge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMzZweDtcbn1cblxuLnJvdyAuYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbn1cblxuLmhlYWRlciB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLmFjdGlvbiB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi5jbG9zZS1jb24ge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubWFyZ2luIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cblxuLmJ0biB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N2QgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiA1cHggIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDI1cHg7XG4gIH1cbiAgXG4gIC5idG4gcCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxMHB4O1xuICB9XG4gIFxuICAuYnRuLTEge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgICBjb2xvcjogIzAwNDU3ZCAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMDQ1N2Q7XG4gIH1cbiAgXG4gIC5idG4tMSBwIHtcbiAgICBtYXJnaW46IGF1dG87XG4gIH0iXX0= */\"","import { Component, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-servicenotrequire-dailog',\n templateUrl: './servicenotrequire-dailog.component.html',\n styleUrls: ['./servicenotrequire-dailog.component.css']\n})\nexport class ServicenotrequireDailogComponent implements OnInit {\n\n constructor(\n private dialogRef: MatDialogRef,\n private router: Router\n ) { }\n\n ngOnInit() {\n \n }\n\n openDialog() : void {\n this.dialogRef.close(true);\n }\n\n closeDialog() {\n this.close();\n this.dialogRef.close(false);\n }\n\n close() {\n this.dialogRef.close(false);\n }\n\n}\n","export default \"#callDialog {\\n box-shadow: 0 1px 2px 1px rgba(0, 0, 0, 0.2), 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12);\\n padding: 10px;\\n background-color: #ffffff;\\n position: fixed;\\n width: 35%;\\n height: 450px;\\n}\\n\\n.close-con {\\n float: right;\\n font-size: 18px;\\n cursor: pointer;\\n}\\n\\ntable {\\n width: 100%;\\n}\\n\\n.call-header {\\n font-family: Bold 16px/22px Roboto;\\n font-size: 12px;\\n}\\n\\n.call-header i {\\n color: #00457d;\\n}\\n\\n.rect2 {\\n width: 100%;\\n background: #eaeaea;\\n}\\n\\n.rect3 {\\n padding-top: 25px;\\n padding-right: 0px;\\n padding-left: 0px;\\n padding-bottom: 0px;\\n width: 100%;\\n font-size: 12px;\\n background: #ffffff;\\n}\\n\\n.rect3 .button {\\n float: right;\\n margin-right: 8px;\\n margin-top: 5px;\\n}\\n\\n.rect4 {\\n width: 100%;\\n font-size: 12px;\\n padding-bottom: 0px;\\n}\\n\\n.ngx-timepicker-field-example {\\n float: left;\\n margin-top: 15px;\\n}\\n\\n.rect5 {\\n float: left;\\n width: 100%;\\n}\\n\\n.text-pp {\\n width: 100%;\\n}\\n\\n.call-popup-save {\\n float: right;\\n margin-right: 20px;\\n margin-bottom: 10px;\\n}\\n\\n.icons .fa-phone {\\n transform: rotate(135deg);\\n}\\n\\n.icons .fa-microphone-slash,\\n.icons .fa-phone {\\n font-size: 24px;\\n}\\n\\n.icons .button {\\n margin: 5px;\\n}\\n\\n.icons {\\n margin-top: 25px;\\n padding-left: 29%;\\n}\\n\\n.hang-btn {\\n color: red !important;\\n border-color: red !important;\\n}\\n\\n.classtext1 {\\n font-weight: bold;\\n}\\n\\n.timestamp {\\n font-size: 11px;\\n margin-left: 10px;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-group {\\n border-radius: 0px;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle {\\n background-color: #ffffff;\\n color: #000000;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-checked {\\n background-color: #00457d;\\n color: #ffffff;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-label-content {\\n line-height: 20px;\\n}\\n\\n.btn {\\n position: relative;\\n cursor: pointer;\\n transition: all 0.3s ease;\\n overflow: hidden;\\n background-color: #00457d !important;\\n height: 24px;\\n line-height: 10px;\\n}\\n\\n.mat-button {\\n border-radius: 0px;\\n float: right;\\n}\\n\\n.btn p {\\n text-align: center;\\n text-transform: uppercase;\\n color: #fff;\\n position: relative;\\n z-index: 1;\\n transition: all 0.3s ease;\\n margin: auto;\\n font-size: 12px;\\n}\\n\\n.btn-1 {\\n background-color: #ffffff !important;\\n color: #e64243 !important;\\n border: 1px solid #e64243;\\n}\\n\\n.btn-1 p {\\n margin: auto;\\n}\\n\\n.dropdown-pp1 .mat-form-field-infix {\\n height: 21px !important;\\n width: 100%;\\n padding-bottom: 0px !important;\\n}\\n\\n.dropdown-pp1 .mat-form-field {\\n width: 100%;\\n}\\n\\n.dropdown-pp1 .ng-star-inserted {\\n width: 99%;\\n}\\n\\n.profile-pp1 .mat-form-field-wrapper {\\n padding-bottom: 0px;\\n}\\n\\n.profile-pp1 .mat-label {\\n padding-top: 6px;\\n}\\n\\n.dropdown-border {\\n border-style: solid solid solid solid !important;\\n border-width: 1px;\\n border-radius: 5px;\\n border-color: gray;\\n height: 28px;\\n padding-left: 8px;\\n padding-top: 6px;\\n margin-top: 0px;\\n}\\n\\n.textfield-border {\\n border-style: solid solid solid solid !important;\\n border-width: 1px;\\n border-radius: 5px;\\n border-color: gray;\\n}\\n\\nmat-error {\\n color: #ff0000;\\n font-size: 10px;\\n margin-top: -12px !important;\\n}\\n\\n.error {\\n color: #ff0000;\\n font-size: 10px;\\n}\\n\\n.datetime {\\n padding: 5px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9tb2RhbC9zb2Z0LWNhbGxpbmctZGlhbG9nL3NvZnQtY2FsbGluZy1kaWFsb2cuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL21vZGFsL3NvZnQtY2FsbGluZy1kaWFsb2cvc29mdC1jYWxsaW5nLWRpYWxvZy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGlKQUFBO0VBR0EsYUFBQTtFQUNBLHlCQUFBO0VBQ0EsZUFBQTtFQUNBLFVBQUE7RUFDQSxhQUFBO0FDREY7O0FESUE7RUFDRSxZQUFBO0VBQ0EsZUFBQTtFQUNBLGVBQUE7QUNERjs7QURJQTtFQUNFLFdBQUE7QUNERjs7QURJQTtFQUNFLGtDQUFBO0VBQ0EsZUFBQTtBQ0RGOztBREVFO0VBQ0UsY0FBQTtBQ0FKOztBRElBO0VBQ0UsV0FBQTtFQUNBLG1CQUFBO0FDREY7O0FESUE7RUFDRSxpQkFBQTtFQUNBLGtCQUFBO0VBQ0EsaUJBQUE7RUFDQSxtQkFBQTtFQUNBLFdBQUE7RUFDQSxlQUFBO0VBQ0EsbUJBQUE7QUNERjs7QURJQTtFQUNFLFlBQUE7RUFDQSxpQkFBQTtFQUNBLGVBQUE7QUNERjs7QURJQTtFQUNFLFdBQUE7RUFDQSxlQUFBO0VBQ0EsbUJBQUE7QUNERjs7QURJQTtFQUNFLFdBQUE7RUFDQSxnQkFBQTtBQ0RGOztBRElBO0VBQ0UsV0FBQTtFQUNBLFdBQUE7QUNERjs7QURJQTtFQUNFLFdBQUE7QUNERjs7QURJQTtFQUNFLFlBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0FDREY7O0FESUE7RUFDRSx5QkFBQTtBQ0RGOztBRElBOztFQUVFLGVBQUE7QUNERjs7QURJQTtFQUNFLFdBQUE7QUNERjs7QURJQTtFQUNFLGdCQUFBO0VBQ0EsaUJBQUE7QUNERjs7QURJQTtFQUNFLHFCQUFBO0VBQ0EsNEJBQUE7QUNERjs7QURJQTtFQUNFLGlCQUFBO0FDREY7O0FESUE7RUFDRSxlQUFBO0VBQ0EsaUJBQUE7QUNERjs7QURJQTtFQUNFLGtCQUFBO0FDREY7O0FESUE7RUFDRSx5QkFBQTtFQUNBLGNBQUE7QUNERjs7QURJQTtFQUNFLHlCQUFBO0VBQ0EsY0FBQTtBQ0RGOztBRElBO0VBQ0UsaUJBQUE7QUNERjs7QURLQTtFQUNFLGtCQUFBO0VBQ0EsZUFBQTtFQUNBLHlCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxvQ0FBQTtFQUNBLFlBQUE7RUFDQSxpQkFBQTtBQ0ZGOztBREtBO0VBQ0Usa0JBQUE7RUFDQSxZQUFBO0FDRkY7O0FES0E7RUFDRSxrQkFBQTtFQUNBLHlCQUFBO0VBQ0EsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLHlCQUFBO0VBQ0EsWUFBQTtFQUNBLGVBQUE7QUNGRjs7QURLQTtFQUNFLG9DQUFBO0VBQ0EseUJBQUE7RUFDQSx5QkFBQTtBQ0ZGOztBREtBO0VBQ0UsWUFBQTtBQ0ZGOztBREtBO0VBQ0UsdUJBQUE7RUFDQSxXQUFBO0VBQ0EsOEJBQUE7QUNGRjs7QURLQTtFQUNFLFdBQUE7QUNGRjs7QURLQTtFQUNFLFVBQUE7QUNGRjs7QURLQTtFQUNFLG1CQUFBO0FDRkY7O0FES0E7RUFDRSxnQkFBQTtBQ0ZGOztBREtBO0VBQ0UsZ0RBQUE7RUFDQSxpQkFBQTtFQUNBLGtCQUFBO0VBQ0Esa0JBQUE7RUFDQSxZQUFBO0VBQ0EsaUJBQUE7RUFDQSxnQkFBQTtFQUNBLGVBQUE7QUNGRjs7QURLQTtFQUNFLGdEQUFBO0VBQ0EsaUJBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0FDRkY7O0FETUE7RUFDRSxjQUFBO0VBQ0EsZUFBQTtFQUNBLDRCQUFBO0FDSEY7O0FETUE7RUFDRSxjQUFBO0VBQ0EsZUFBQTtBQ0hGOztBRE1BO0VBQ0UsWUFBQTtBQ0hGIiwiZmlsZSI6InNyYy9hcHAvbW9kYWwvc29mdC1jYWxsaW5nLWRpYWxvZy9zb2Z0LWNhbGxpbmctZGlhbG9nLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiI2NhbGxEaWFsb2cge1xuICBib3gtc2hhZG93OiAwIDFweCAycHggMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSxcbiAgICAwIDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMXB4IDFweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksXG4gICAgMCAxcHggM3B4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgcGFkZGluZzogMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB3aWR0aDogMzUlO1xuICBoZWlnaHQ6IDQ1MHB4O1xufVxuXG4uY2xvc2UtY29uIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxudGFibGUge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmNhbGwtaGVhZGVyIHtcbiAgZm9udC1mYW1pbHk6IEJvbGQgMTZweC8yMnB4IFJvYm90bztcbiAgZm9udC1zaXplOiAxMnB4O1xuICBpIHtcbiAgICBjb2xvcjogIzAwNDU3ZDtcbiAgfVxufVxuXG4ucmVjdDIge1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogI2VhZWFlYTtcbn1cblxuLnJlY3QzIHtcbiAgcGFkZGluZy10b3A6IDI1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDBweDtcbiAgcGFkZGluZy1sZWZ0OiAwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBmb250LXNpemU6IDEycHg7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG59XG5cbi5yZWN0MyAuYnV0dG9uIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgbWFyZ2luLXRvcDogNXB4O1xufVxuXG4ucmVjdDQge1xuICB3aWR0aDogMTAwJTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBwYWRkaW5nLWJvdHRvbTogMHB4O1xufVxuXG4ubmd4LXRpbWVwaWNrZXItZmllbGQtZXhhbXBsZSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tdG9wOiAxNXB4O1xufVxuXG4ucmVjdDUge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi50ZXh0LXBwIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5jYWxsLXBvcHVwLXNhdmUge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi1yaWdodDogMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLmljb25zIC5mYS1waG9uZSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDEzNWRlZyk7XG59XG5cbi5pY29ucyAuZmEtbWljcm9waG9uZS1zbGFzaCxcbi5pY29ucyAuZmEtcGhvbmUge1xuICBmb250LXNpemU6IDI0cHg7XG59XG5cbi5pY29ucyAuYnV0dG9uIHtcbiAgbWFyZ2luOiA1cHg7XG59XG5cbi5pY29ucyB7XG4gIG1hcmdpbi10b3A6IDI1cHg7XG4gIHBhZGRpbmctbGVmdDogMjklO1xufVxuXG4uaGFuZy1idG4ge1xuICBjb2xvcjogcmVkICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogcmVkICFpbXBvcnRhbnQ7XG59XG5cbi5jbGFzc3RleHQxIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi50aW1lc3RhbXAge1xuICBmb250LXNpemU6IDExcHg7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBjb2xvcjogIzAwMDAwMDtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N2Q7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZS1sYWJlbC1jb250ZW50IHtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG59XG5cbi8vc2xpZGluZyBidG5cbi5idG4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3ZCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDI0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxMHB4O1xufVxuXG4ubWF0LWJ1dHRvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4uYnRuIHAge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiAjZmZmO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIG1hcmdpbjogYXV0bztcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uYnRuLTEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZTY0MjQzICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNjQyNDM7XG59XG5cbi5idG4tMSBwIHtcbiAgbWFyZ2luOiBhdXRvO1xufVxuXG4uZHJvcGRvd24tcHAxIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIGhlaWdodDogMjFweCAhaW1wb3J0YW50O1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy1ib3R0b206IDBweCAhaW1wb3J0YW50O1xufVxuXG4uZHJvcGRvd24tcHAxIC5tYXQtZm9ybS1maWVsZCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uZHJvcGRvd24tcHAxIC5uZy1zdGFyLWluc2VydGVkIHtcbiAgd2lkdGg6IDk5JTtcbn1cblxuLnByb2ZpbGUtcHAxIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgcGFkZGluZy1ib3R0b206IDBweDtcbn1cblxuLnByb2ZpbGUtcHAxIC5tYXQtbGFiZWwge1xuICBwYWRkaW5nLXRvcDogNnB4O1xufVxuXG4uZHJvcGRvd24tYm9yZGVyIHtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZCBzb2xpZCBzb2xpZCBzb2xpZCAhaW1wb3J0YW50O1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBib3JkZXItY29sb3I6IGdyYXk7XG4gIGhlaWdodDogMjhweDtcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gIHBhZGRpbmctdG9wOiA2cHg7XG4gIG1hcmdpbi10b3A6IDBweDtcbn1cblxuLnRleHRmaWVsZC1ib3JkZXIge1xuICBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIHNvbGlkIHNvbGlkICFpbXBvcnRhbnQ7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJvcmRlci1jb2xvcjogZ3JheTtcbn1cblxuLy9tYXQtZXJyb3Jcbm1hdC1lcnJvciB7XG4gIGNvbG9yOiAjZmYwMDAwO1xuICBmb250LXNpemU6IDEwcHg7XG4gIG1hcmdpbi10b3A6IC0xMnB4ICFpbXBvcnRhbnQ7XG59XG5cbi5lcnJvciB7XG4gIGNvbG9yOiAjZmYwMDAwO1xuICBmb250LXNpemU6IDEwcHg7XG59XG5cbi5kYXRldGltZSB7XG4gIHBhZGRpbmc6IDVweDtcbn1cbiIsIiNjYWxsRGlhbG9nIHtcbiAgYm94LXNoYWRvdzogMCAxcHggMnB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMnB4IDFweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMCAxcHggMXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAxcHggM3B4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgcGFkZGluZzogMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB3aWR0aDogMzUlO1xuICBoZWlnaHQ6IDQ1MHB4O1xufVxuXG4uY2xvc2UtY29uIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxudGFibGUge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmNhbGwtaGVhZGVyIHtcbiAgZm9udC1mYW1pbHk6IEJvbGQgMTZweC8yMnB4IFJvYm90bztcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLmNhbGwtaGVhZGVyIGkge1xuICBjb2xvcjogIzAwNDU3ZDtcbn1cblxuLnJlY3QyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICNlYWVhZWE7XG59XG5cbi5yZWN0MyB7XG4gIHBhZGRpbmctdG9wOiAyNXB4O1xuICBwYWRkaW5nLXJpZ2h0OiAwcHg7XG4gIHBhZGRpbmctbGVmdDogMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xufVxuXG4ucmVjdDMgLmJ1dHRvbiB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gIG1hcmdpbi10b3A6IDVweDtcbn1cblxuLnJlY3Q0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgcGFkZGluZy1ib3R0b206IDBweDtcbn1cblxuLm5neC10aW1lcGlja2VyLWZpZWxkLWV4YW1wbGUge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXRvcDogMTVweDtcbn1cblxuLnJlY3Q1IHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4udGV4dC1wcCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uY2FsbC1wb3B1cC1zYXZlIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi5pY29ucyAuZmEtcGhvbmUge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpO1xufVxuXG4uaWNvbnMgLmZhLW1pY3JvcGhvbmUtc2xhc2gsXG4uaWNvbnMgLmZhLXBob25lIHtcbiAgZm9udC1zaXplOiAyNHB4O1xufVxuXG4uaWNvbnMgLmJ1dHRvbiB7XG4gIG1hcmdpbjogNXB4O1xufVxuXG4uaWNvbnMge1xuICBtYXJnaW4tdG9wOiAyNXB4O1xuICBwYWRkaW5nLWxlZnQ6IDI5JTtcbn1cblxuLmhhbmctYnRuIHtcbiAgY29sb3I6IHJlZCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IHJlZCAhaW1wb3J0YW50O1xufVxuXG4uY2xhc3N0ZXh0MSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4udGltZXN0YW1wIHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBtYXJnaW4tbGVmdDogMTBweDtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAge1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgY29sb3I6ICMwMDAwMDA7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdkO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtbGFiZWwtY29udGVudCB7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xufVxuXG4uYnRuIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N2QgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBsaW5lLWhlaWdodDogMTBweDtcbn1cblxuLm1hdC1idXR0b24ge1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG4gIGZsb2F0OiByaWdodDtcbn1cblxuLmJ0biBwIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogI2ZmZjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICBtYXJnaW46IGF1dG87XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmJ0bi0xIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICBjb2xvcjogI2U2NDI0MyAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTY0MjQzO1xufVxuXG4uYnRuLTEgcCB7XG4gIG1hcmdpbjogYXV0bztcbn1cblxuLmRyb3Bkb3duLXBwMSAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBoZWlnaHQ6IDIxcHggIWltcG9ydGFudDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctYm90dG9tOiAwcHggIWltcG9ydGFudDtcbn1cblxuLmRyb3Bkb3duLXBwMSAubWF0LWZvcm0tZmllbGQge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmRyb3Bkb3duLXBwMSAubmctc3Rhci1pbnNlcnRlZCB7XG4gIHdpZHRoOiA5OSU7XG59XG5cbi5wcm9maWxlLXBwMSAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gIHBhZGRpbmctYm90dG9tOiAwcHg7XG59XG5cbi5wcm9maWxlLXBwMSAubWF0LWxhYmVsIHtcbiAgcGFkZGluZy10b3A6IDZweDtcbn1cblxuLmRyb3Bkb3duLWJvcmRlciB7XG4gIGJvcmRlci1zdHlsZTogc29saWQgc29saWQgc29saWQgc29saWQgIWltcG9ydGFudDtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYm9yZGVyLWNvbG9yOiBncmF5O1xuICBoZWlnaHQ6IDI4cHg7XG4gIHBhZGRpbmctbGVmdDogOHB4O1xuICBwYWRkaW5nLXRvcDogNnB4O1xuICBtYXJnaW4tdG9wOiAwcHg7XG59XG5cbi50ZXh0ZmllbGQtYm9yZGVyIHtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZCBzb2xpZCBzb2xpZCBzb2xpZCAhaW1wb3J0YW50O1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBib3JkZXItY29sb3I6IGdyYXk7XG59XG5cbm1hdC1lcnJvciB7XG4gIGNvbG9yOiAjZmYwMDAwO1xuICBmb250LXNpemU6IDEwcHg7XG4gIG1hcmdpbi10b3A6IC0xMnB4ICFpbXBvcnRhbnQ7XG59XG5cbi5lcnJvciB7XG4gIGNvbG9yOiAjZmYwMDAwO1xuICBmb250LXNpemU6IDEwcHg7XG59XG5cbi5kYXRldGltZSB7XG4gIHBhZGRpbmc6IDVweDtcbn0iXX0= */\"","import { Component, OnInit, Input, Output, EventEmitter } from \"@angular/core\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { Router } from \"@angular/router\";\nimport { CommonService } from \"../../core/service/common-service/common.service\";\nimport { DatePipe } from \"@angular/common\";\nimport { interval } from \"rxjs\";\nimport { FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { TimepickerRef } from \"ngx-material-timepicker/src/app/material-timepicker/models/timepicker-ref.interface\";\nimport * as _moment from 'moment';\nimport { DateTimeAdapter, OWL_DATE_TIME_FORMATS, OWL_DATE_TIME_LOCALE } from 'ng-pick-datetime';\nimport { MomentDateTimeAdapter } from 'ng-pick-datetime-moment';\nimport { SaveCallRecordingParams } from \"src/app/model/save-call-recording-params.model\";\n\nconst moment = (_moment as any).default ? (_moment as any).default : _moment;\n\nexport const MY_CUSTOM_FORMATS = {\n parseInput: 'LL LT',\n fullPickerInput: 'DD-MM-YYYY LT',\n datePickerInput: 'LL',\n timePickerInput: 'LT',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n};\n\n@Component({\n selector: \"app-soft-calling-dialog\",\n templateUrl: \"./soft-calling-dialog.component.html\",\n styleUrls: [\"./soft-calling-dialog.component.scss\"],\n providers: [\n { provide: DateTimeAdapter, useClass: MomentDateTimeAdapter, deps: [OWL_DATE_TIME_LOCALE] },\n { provide: OWL_DATE_TIME_FORMATS, useValue: MY_CUSTOM_FORMATS }\n ],\n})\nexport class SoftCallingDialogComponent implements OnInit {\n @Input() vinNoList: any[];\n @Input() serviceDetails: any;\n @Input() selectedVin: string;\n @Input() customerNumber: string;\n @Input() isCustomerNumber: string;\n @Input() primaryNumber: string;\n @Input() callTypeSq: any;\n @Input() selectedWorkShop: string;\n @Input() amcNewOffering: string;\n @Input() amcRenewal: string;\n @Input() insuranceRenewal: string;\n @Input() extendedWarranty: string;\n @Input() phoneNo: string;\n @Input() cusType: string;\n @Input() custNameForSave: string;\n\n // @Input() bookingCount: number;\n // @Input() followupCount: number;\n @Output() close: EventEmitter = new EventEmitter();\n userRoles: string;\n userRoleId: string;\n\n constructor(\n private datePipe: DatePipe,\n private commonService: CommonService,\n private router: Router,\n private toastr: ToastrService\n ) { }\n\n startTime: any;\n serviceDueDate: any;\n talked: string = \"\";\n creRemark: string;\n yesResponce: string = \"\";\n noResponce: string = \"\";\n customerId: string;\n userID: string;\n workShops = [];\n //selectedWorkShop: string;\n today: Date = new Date();\n spinner: boolean;\n vinNoListArray: string[] = [];\n defaultVin: string;\n responseDropDownData: any;\n level1info = [];\n level1Form: FormGroup;\n level2info = [];\n level2Form: FormGroup;\n level3info = [];\n level3Form: FormGroup;\n level4info = [];\n level4Form: FormGroup;\n level5info = [];\n level5Form: FormGroup;\n callTypeMap = new Map();\n serviceInfo: any;\n submitted: boolean = false;\n formSubmitted: boolean = false;\n showNoRespError: boolean = false;\n milage: any;\n odometerEntry: any;\n bookingandResheduleMaxDate: Date = new Date();\n followupandCancleMaxDate: Date = new Date();\n showRemarkError: boolean = false;\n userInfo:any;\n customerData:any;\n\n @Input(\"timepicker\")\n timePicker: TimepickerRef;\n\n ngOnInit() {\n this.userInfo = JSON.parse(localStorage.getItem(\"userInfo\") || null)[0];\n this.customerData = JSON.parse(localStorage.getItem(\"customerData\") || null);\n if (\n localStorage.getItem(\"userId\") == null ||\n localStorage.getItem(\"userId\") == undefined\n ) {\n this.router.navigate([\"login\"]);\n }\n this.userRoles = localStorage.getItem('userRoles');\n this.userRoleId = JSON.parse(localStorage.getItem(\"userInfo\"))[0].roleId;\n this.customerId = localStorage.getItem(\"customerId\");\n this.userID = localStorage.getItem(\"userId\");\n this.workShops = JSON.parse(localStorage.getItem('workshops'));\n //this.selectedWorkShop = (this.workShops && this.workShops.length) ? this.workShops[0].workshopCode : '';\n this.serviceInfo = JSON.parse(localStorage.getItem(\"serviceInfo\"));\n this.serviceDueDate = this.datePipe.transform(\n localStorage.getItem(\"serviceDueDate\"),\n \"yyyy-MM-dd\"\n );\n this.startTime = new Date();\n this.callTypeMap.set(\"Service\", 4);\n this.callTypeMap.set(\"Reminder\", 2);\n this.callTypeMap.set(\"Visit\", 1);\n this.callTypeMap.set(\"No Show\", 3);\n this.odometerEntry = parseInt(localStorage.getItem(\"milage\")) || 0;\n\n this.setVinList(this.selectedVin, false);\n this.bookingandResheduleMaxDate.setDate(this.bookingandResheduleMaxDate.getDate() + 15);\n this.followupandCancleMaxDate.setDate(this.followupandCancleMaxDate.getDate() + 15);\n }\n\n /**\n * Name: closeDailog\n * purpose: To close Dailog\n */\n closeDailog(): void {\n this.close.emit(null);\n }\n\n /**\n * Name: setVinList\n * purpose: To set Vin List\n */\n setVinList(defaultVin: any, vehicleChange: boolean): void {\n var vinListStr = Object.values(this.vinNoList);\n vinListStr.forEach(vin => {\n if (vin == defaultVin) {\n this.defaultVin = vin;\n }\n });\n for (let i = 0; i < vinListStr.length; i++) {\n this.vinNoListArray.push(vinListStr[i]);\n }\n if (vehicleChange) {\n this.serviceDetails = this.serviceInfo[defaultVin];\n this.callStatus(\"101\");\n }\n }\n\n /**\n * Name: callStatus\n * purpose: To check call status\n * @param {string} status - call status\n */\n callStatus(status: string): void {\n this.formSubmitted = false;\n this.showRemarkError = false;\n if (\"101\" == status) {\n this.talked = \"101\";\n this.noResponce = \"\";\n const self = this;\n this.level1Form = undefined;\n this.level1info = [];\n this.level2Form = undefined;\n this.level2info = [];\n //let callType = this.callTypeMap.get(this.serviceInfo[this.defaultVin].callType)\n this.commonService.getAMCDropdownData(4).subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n let data = res[\"responseData\"];\n self.responseDropDownData = data;\n this.createLevel1Form(data[\"Level1\"]);\n }\n }, error => {\n this.toastr.error(error, \"Error\");\n this.spinner = false;\n });\n } else {\n this.talked = \"102\";\n this.level1Form = undefined;\n this.level1info = [];\n this.level2Form = undefined;\n this.level2info = [];\n this.yesResponce = \"\";\n }\n }\n\n /**\n * Name: createLevel1Form\n * purpose: To create Level1 Form\n * @param {any} data - form data\n */\n createLevel1Form(data: any): void {\n this.formSubmitted = false;\n this.showRemarkError = false;\n const formDataObj = {};\n for (const prop of data) {\n formDataObj[prop.label] = new FormControl(\"\", [Validators.required]);\n if (prop.dataType == \"Dropdown\") {\n var dropDownData = [];\n prop.data.forEach((element) => {\n dropDownData.push({ value: element.key, viewValue: element.value });\n });\n }\n this.level1info.push({\n label: prop.label,\n type: prop.dataType,\n data: prop.dataType === \"Dropdown\" ? dropDownData : prop.data\n });\n }\n this.level1Form = new FormGroup(formDataObj);\n }\n\n /**\n * Name: createLevel2Form\n * purpose: To create Level2 Form\n * @param {any} data - form data\n */\n createLevel2Form(data: any): void {\n this.formSubmitted = false;\n this.showRemarkError = false;\n this.level2Form = undefined;\n this.level2info = [];\n const formDataObj = {};\n let selection = this.level1Form.controls[\"Select Reason\"].value;\n if (data[selection] && data[selection].length) {\n for (const prop of data[selection]) {\n if (prop.dataType == \"Date\") {\n formDataObj[prop.data[0].key] = new FormControl(\"\", [Validators.required]);\n } else if (prop.dataType == \"Number\") {\n formDataObj[prop.data[0].key] = new FormControl(\"\", [Validators.minLength(10), Validators.maxLength(10)]);\n } else if (prop.dataType == \"Time\") {\n formDataObj[prop.data[0].key] = new FormControl(\"\");\n } else {\n formDataObj[prop.data[0].key] = new FormControl(\"\");\n }\n this.level2info.push({\n label: prop.label,\n type: prop.dataType,\n data: prop.data\n });\n }\n }\n this.level2Form = new FormGroup(formDataObj);\n }\n\n /**\n * Name: hasDataError\n * purpose: To check if customer form has any error\n * @param {any} control - form control\n * @return {boolean} flag to determine if form is valid.\n */\n hasDataError(control: any, form: any): boolean {\n let controler = form.controls[control];\n return (\n controler &&\n (this.formSubmitted || controler.touched || controler.dirty) &&\n !controler.valid\n );\n }\n\n /**\n * Name: isSaveEnable\n * purpose: To check if save is unable\n */\n isSaveEnable() {\n if (\n this.noResponce != \"\" ||\n this.yesResponce == \"Follow-up\"\n ) {\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * Name: createLevelWiseData\n * purpose: To create LevelWise Data\n */\n createLevelWiseData() {\n let date1 = \"\";\n var levelResponseData = {};\n\n if (this.level1Form !== undefined) {\n let obj = {};\n Object.keys(this.level1Form.value).filter(data => {\n obj[this.level1Form.value[data]] = this.level1Form.value[data];\n });\n levelResponseData[\"Level1\"] = obj;\n } else {\n levelResponseData[\"Level1\"] = null;\n }\n\n if (this.level2Form !== undefined) {\n let selectedDateTime = this.level2Form.value[304];\n // if (this.level2Form.value[302] != null) {\n // this.level2Form.value[302] = this.datePipe.transform(\n // this.level2Form.value[302],\n // \"yyyy-MM-dd\"\n // );\n // }\n\n if (this.level2Form.value[304] != null) {\n this.level2Form.value[304] = this.datePipe.transform(\n this.level2Form.value[304],\n \"yyyy-MM-dd\"\n );\n }\n\n // if (this.level2Form.value[302] != null) {\n // date1 = this.level2Form.value[302];\n // } else\n if (this.level2Form.value[304] != null) {\n date1 = this.level2Form.value[304];\n }\n\n if (this.level2Form.value[303] != null || selectedDateTime) {\n this.level2Form.value[303] = selectedDateTime;\n this.level2Form.value[303] = this.datePipe.transform(this.level2Form.value[303], \"yyyy-MM-ddTHH:mm:ssZ\");\n }\n\n // if (this.level2Form.value[301] != null) {\n // this.level2Form.value[301] = this.level2Form.value[301];\n // }\n\n let level2formValues = Object.assign({}, this.level2Form.value);\n levelResponseData[\"Level2\"] = level2formValues;\n } else {\n levelResponseData[\"Level2\"] = null;\n }\n return levelResponseData;\n }\n\n /**\n * Name: removeSavedVin\n * purpose: To remove Saved Vin\n */\n removeSavedVin(): void {\n const index: number = this.vinNoListArray.indexOf(this.defaultVin);\n if (index !== -1) {\n this.vinNoListArray.splice(index, 1);\n }\n if (this.vinNoListArray.length == 0) {\n this.closeDailog();\n //this.router.navigate([\"soft-calling\"]);\n } else {\n this.defaultVin = this.vinNoListArray[0];\n this.serviceDetails = this.serviceInfo[this.defaultVin];\n this.level1Form = undefined;\n this.level1info = [];\n this.level2Form = undefined;\n this.level2info = [];\n this.creRemark = null;\n this.submitted = false;\n this.showRemarkError = false;\n this.createLevel1Form(this.responseDropDownData[\"Level1\"]);\n }\n this.router.navigate([\"soft-calling\"]);\n }\n\n checkFormValidation(): boolean {\n let valid = true;\n if (this.talked == \"102\" && this.noResponce == \"\") {\n valid = false;\n } else if (this.level1Form !== undefined && !this.level1Form.valid) {\n valid = false;\n } else if (this.level2Form !== undefined && !this.level2Form.valid) {\n valid = false;\n }\n if ((!this.creRemark && this.noResponce == \"209\")) {\n this.showRemarkError = true;\n valid = false;\n }\n this.submitted = valid;\n return valid;\n }\n\n /**\n * Name: saveDialData\n * purpose: To save Dial Data\n */\n saveDialData(): void {\n this.submitted = true;\n this.formSubmitted = true;\n if (this.checkFormValidation()) {\n this.showNoRespError = false;\n this.showRemarkError = false;\n var levelData = this.createLevelWiseData();\n this.spinner = true;\n let callTypeSeq = this.callTypeSq;\n let endTime = new Date();\n endTime.setSeconds(endTime.getSeconds() + 5);\n let request = {\n customerId: this.customerId,\n vin: this.defaultVin,\n callTypeSeq: callTypeSeq || \"\",\n callStartTime: this.startTime,\n callEndTime: endTime,\n customerContactInd: this.talked,\n responseForNo: this.noResponce || \"\",\n workShop: this.selectedWorkShop,\n levelData: levelData,\n remark: this.creRemark || \"\",\n userId: this.userID,\n amcNewOffering: this.amcNewOffering,\n amcRenewal: this.amcRenewal,\n insuranceRenewal: this.insuranceRenewal,\n extendedWarranty: this.extendedWarranty,\n customerType: this.cusType,\n phoneNo: this.phoneNo,\n customerName: this.custNameForSave,\n role:this.userRoles,\n userRoleId: this.userRoleId\n };\n this.saveCallRecording(request);\n this.spinner = false;\n } else if (this.talked == \"102\" && this.noResponce == \"\") {\n this.showNoRespError = true;\n }\n }\n\n \n\n private saveCallRecording(data:any){\n const URI = localStorage.getItem('exotel_URI')\n const CRE_ID = this.userInfo.userId \n const CUSTOMER_CODE = this.customerData.customerId\n const SOURCE = \"AMC\";\n console.log(\"SAVE\" , URI);\n if (URI)\n {\n this.spinner = true;\n \n const callRecordingParams = new SaveCallRecordingParams(CRE_ID,CUSTOMER_CODE,SOURCE,URI)\n this.commonService.saveCallRecording_API(callRecordingParams).subscribe({\n next:(response)=>{\n if (response.responseCode == 0) {\n this.toastr.success(response.message, 'Success')\n this.saveFormResponse(data);\n }\n else\n {\n this.toastr.error(response.message, 'Error');\n this.submitted = false;\n }\n \n }\n ,error:(error)=>{\n console.log(error);\n this.submitted = false;\n this.spinner = false;\n },\n complete:()=>{\n this.spinner = false;\n \n \n }\n })\n }else{\n this.saveFormResponse(data);\n }\n }\n\n private saveFormResponse(custResData: any){\n\n this.commonService.amcSaveData(custResData).subscribe(\n res => {\n if (res[\"responseCode\"] == 0) {\n this.spinner = false;\n this.submitted = false;\n this.toastr.info(res[\"message\"], \"Success\");\n if (this.talked == \"101\") {\n this.removeSavedVin();\n } else {\n this.closeDailog();\n this.router.navigate([\"soft-calling\"]);\n }\n this.formSubmitted = false;\n } else {\n this.submitted = false;\n this.formSubmitted = false;\n this.spinner = false;\n this.toastr.error(res[\"message\"], \"Error\");\n }\n },\n error => {\n this.submitted = false;\n this.formSubmitted = false;\n this.toastr.error(error, \"Error\");\n this.spinner = false;\n }\n );\n }\n}","export default \".dialog-area {\\n padding: 19px;\\n font-size: 12px;\\n\\n}\\n.formcss{\\n padding: 19px;\\n margin-left: auto;\\n margin-top: 0px;\\n padding-inline: 30px;\\n}\\n.flex-container{\\n display: flex;\\n flex-direction: row;\\n\\n}\\n.setbutton{\\n margin-top: 10px;\\n margin-left: 0px;\\n}\\ntable, th , td {\\n border: 1px solid black;\\n border-collapse: collapse;\\n padding: 5px;\\n white-space: nowrap;\\n\\n }\\n.changeColor{\\n background-color: yellow;\\n }\\n/*\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n Yes\\n\\n\\n No\\n\\n\\n\\n\\n\\n\\n\\n\\n Yes\\n\\n\\n No\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nattachment\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n */\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbW9kYWwvdmlzaXQtcmVwb3J0L3Zpc2l0LXJlcG9ydC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksYUFBYTtJQUNiLGVBQWU7O0FBRW5CO0FBQ0E7SUFDSSxhQUFhO0lBQ2IsaUJBQWlCO0lBQ2pCLGVBQWU7SUFDZixvQkFBb0I7QUFDeEI7QUFDQTtFQUNFLGFBQWE7RUFDYixtQkFBbUI7O0FBRXJCO0FBS0E7SUFDSSxnQkFBZ0I7SUFDaEIsZ0JBQWdCO0FBQ3BCO0FBRUE7SUFDSSx1QkFBdUI7SUFDdkIseUJBQXlCO0lBQ3pCLFlBQVk7S0FDWCxtQkFBbUI7O0VBRXRCO0FBQ0E7SUFDRSx3QkFBd0I7RUFDMUI7QUFHRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBK0dFIiwiZmlsZSI6InNyYy9hcHAvbW9kYWwvdmlzaXQtcmVwb3J0L3Zpc2l0LXJlcG9ydC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmRpYWxvZy1hcmVhIHtcbiAgICBwYWRkaW5nOiAxOXB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcblxufVxuLmZvcm1jc3N7XG4gICAgcGFkZGluZzogMTlweDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tdG9wOiAwcHg7XG4gICAgcGFkZGluZy1pbmxpbmU6IDMwcHg7XG59XG4uZmxleC1jb250YWluZXJ7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbn1cblxuXG5cblxuLnNldGJ1dHRvbntcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIG1hcmdpbi1sZWZ0OiAwcHg7XG59XG5cbnRhYmxlLCB0aCAsIHRkIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjaztcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICB9XG4gIC5jaGFuZ2VDb2xvcntcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG4gIH1cblxuXG4vKlxuPG1hdC1mb3JtLWZpZWxkIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiA1MHB4OyBcIj5cbjxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIk5hbWUgb2YgQ3VzdG9tZXJcIiBmb3JtQ29udHJvbE5hbWU9XCJOYW1lXCI+XG5cblxuPC9tYXQtZm9ybS1maWVsZD5cbjxtYXQtZm9ybS1maWVsZD5cbjxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIkRhdGVcIiBmb3JtQ29udHJvbE5hbWU9XCJEYXRlXCI+XG5cblxuPC9tYXQtZm9ybS1maWVsZD5cbjxtYXQtZm9ybS1maWVsZD5cbjxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIlBsYWNlXCIgZm9ybUNvbnRyb2xOYW1lPVwiUGxhY2VcIj5cblxuXG48L21hdC1mb3JtLWZpZWxkPlxuPG1hdC1mb3JtLWZpZWxkIHN0eWxlPVwibWFyZ2luLWxlZnQ6IDUwcHg7XCI+XG48aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJSZWcgbm8gb2YgdmVoaWNsZVwiIGZvcm1Db250cm9sTmFtZT1cIlJlZ05vXCI+XG5cblxuPC9tYXQtZm9ybS1maWVsZD5cblxuPG1hdC1mb3JtLWZpZWxkPlxuPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwiRWljaGVyIE1ha2UgXCIgZm9ybUNvbnRyb2xOYW1lPVwiRWljaGVyTWFrZVwiPlxuXG5cbjwvbWF0LWZvcm0tZmllbGQ+XG5cbjxtYXQtZm9ybS1maWVsZCBzdHlsZT1cIm1hcmdpbi1sZWZ0OiA1MHB4O1wiPlxuPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwiT3RoZXIgTWFrZSBcIiBmb3JtQ29udHJvbE5hbWU9XCJPdGhlck1ha2UgXCI+XG5cblxuPC9tYXQtZm9ybS1maWVsZD5cblxuPG1hdC1mb3JtLWZpZWxkPlxuPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwiVG90YWxcIiBmb3JtQ29udHJvbE5hbWU9XCJUb3RhbFwiPlxuXG5cbjwvbWF0LWZvcm0tZmllbGQ+XG5cblxuPG1hdC1mb3JtLWZpZWxkIHN0eWxlPVwibWFyZ2luLWxlZnQ6IDUwcHg7XCI+XG48aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJSZW1hcmsgXCIgZm9ybUNvbnRyb2xOYW1lPVwiUmVtYXJrXCI+XG5cblxuPC9tYXQtZm9ybS1maWVsZD5cbjxtYXQtZm9ybS1maWVsZD5cbjxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIkVhcmxpZXIgUHJvdmlkZWQgT2ZmZXJcIiBmb3JtQ29udHJvbE5hbWU9XCJFYXJsaWVyUHJvdmlkZWRPZmZlclwiPlxuXG5cbjwvbWF0LWZvcm0tZmllbGQ+XG5cbjxtYXQtZm9ybS1maWVsZCBzdHlsZT1cIm1hcmdpbi1sZWZ0OiA1MHB4O1wiPlxuPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwiRGlzZW5nYWdlbWVudCByZWFzb25cIiBmb3JtQ29udHJvbE5hbWU9XCJEaXNlbmdhZ2VtZW50UmVhc29uXCI+XG5cblxuPC9tYXQtZm9ybS1maWVsZD5cblxuPG1hdC1mb3JtLWZpZWxkPlxuPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwiQW55IFByb3Bvc2FsIE1hZGVcIiBmb3JtQ29udHJvbE5hbWU9XCJBbnlQcm9wb3NhbE1hZGVcIj5cblxuXG48L21hdC1mb3JtLWZpZWxkPlxuXG48bWF0LWZvcm0tZmllbGQgc3R5bGU9XCJtYXJnaW4tbGVmdDogNTBweDtcIj5cbjxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIkFueSByZXF1aXJlbWVudCBmb3IgbmV3IHZlaGljbGVcIiBmb3JtQ29udHJvbE5hbWU9XCJBbnlSZXF1aXJlbWVudEZvck5ld1ZlaGljbGVcIj5cblxuXG48L21hdC1mb3JtLWZpZWxkPlxuPG1hdC1mb3JtLWZpZWxkPlxuPG1hdC1zZWxlY3QgcGxhY2Vob2xkZXI9XCJpbnRlcmVzdGVkIGluIHNvZnQgb2ZmZXJpbmcgcHJvZHVjdHNcIiBmb3JtQ29udHJvbE5hbWU9XCJpbnRlcmVzdGVkSW5Tb2Z0T2ZmZXJpbmdcIj5cbjxtYXQtb3B0aW9uIHZhbHVlPVwiWWVzXCI+XG4gWWVzXG48L21hdC1vcHRpb24+XG48bWF0LW9wdGlvbiB2YWx1ZT1cIk5vXCI+XG4gTm9cbjwvbWF0LW9wdGlvbj5cblxuXG48L21hdC1zZWxlY3Q+XG48L21hdC1mb3JtLWZpZWxkPlxuPG1hdC1mb3JtLWZpZWxkIHN0eWxlPVwibWFyZ2luLWxlZnQ6IDUwcHg7XCI+XG48bWF0LXNlbGVjdCBwbGFjZWhvbGRlcj1cIklzIEN1c3RvbWVyIEFncmVlcyB0byB2aXNpdCBXU1wiIGZvcm1Db250cm9sTmFtZT1cIkN1c3RvbWVyVmlzaXRcIj5cbjxtYXQtb3B0aW9uIHZhbHVlPVwiWWVzXCI+XG4gWWVzXG48L21hdC1vcHRpb24+XG48bWF0LW9wdGlvbiB2YWx1ZT1cIk5vXCI+XG4gTm9cbjwvbWF0LW9wdGlvbj5cblxuXG48L21hdC1zZWxlY3Q+XG5cblxuPC9tYXQtZm9ybS1maWVsZD5cblxuXG5cbjxtYXQtZm9ybS1maWVsZD5cblxuPGlucHV0IG1hdElucHV0IGhpZGRlbiAgcGxhY2Vob2xkZXI9XCJVcGxvYWQgcGhvdG9cIiB0eXBlPVwiZmlsZVwiIGZvcm1Db250cm9sTmFtZT1cInBob3RvQ3VzdG9tZXJcIiAgPlxuPG1hdC1pY29uIG1hdFN1ZmZpeD5hdHRhY2htZW50PC9tYXQtaWNvbj5cblxuXG5cblxuXG48L21hdC1mb3JtLWZpZWxkPlxuXG5cblxuICovXG4iXX0= */\"","import { DatePipe } from '@angular/common';\nimport { Component, Inject, OnInit, Optional } from '@angular/core';\nimport { validateBasis } from '@angular/flex-layout';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { MatDialog, MatDialogConfig, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from 'src/app/core/service/common-service/common.service';\n\n@Component({\n selector: 'app-visit-report',\n templateUrl: './visit-report.component.html',\n styleUrls: ['./visit-report.component.css']\n})\nexport class VisitReportComponent implements OnInit {\n\n visitReportForm=this.fb.group({\n Name:[\"\",Validators.required],\n Date:['',Validators.required],\n place:['',Validators.required],\n RegNo:['',Validators.required],\n EicherMake:['',Validators.required],\n OtherMake:['0',Validators.required],\n Total:['',Validators.required],\n EarlierProvidedOffer:['',Validators.required],\n Remark:['',Validators.required],\n\n Remark4:['',Validators.required],\n DisengagementReason:['',Validators.required],\n AnyProposalMade:['',Validators.required] ,\n AnyRequirementForNewVehicle:['',Validators.required] ,\n interestedInSoftOffering:['',Validators.required],\n CustomerVisit:['',Validators.required],\n photoName:['',Validators.required],\n Photo:['',Validators.required]\n });\n\n customerData: any;\n userInfo:any\n formData = new FormData();\n countryCode: string;\n attachmentName: string;\n date:String;\n spinner:boolean;\n\n constructor(private fb:FormBuilder, private commonService: CommonService,private toastr: ToastrService,\n private dialogRef:MatDialogRef, private datePipe: DatePipe) {\n\n }\n\n ngOnInit() {\n this.autoFillVisitReport();\n this.customerData = JSON.parse(localStorage.getItem(\"customerData\"));\n this.userInfo = JSON.parse(localStorage.getItem(\"userInfo\"));\n }\n\n autoFillVisitReport(){\n this.spinner =true;\n this.commonService.getAutoFillVisitReport().subscribe(res=>{\n if (res[\"responseCode\"] == 0) {\n this.visitReportForm.patchValue({\n Name:res['responseData']['customerName'],\n Date:res['responseData']['visitingDate'],\n place:res['responseData']['address'],\n RegNo:res['responseData']['registrationNo'],\n DisengagementReason:res['responseData']['disengageReason'],\n EarlierProvidedOffer:res['responseData']['proposal'],\n EicherMake:res['responseData']['fleetCount'],\n Remark:res['responseData']['remarks']\n })\n this.countTotal();\n this.spinner =false;\n }\n else{\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, err => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n });\n }\n\n countTotal() {\n let total;\n total=Number(this.visitReportForm.get('EicherMake').value) + Number(this.visitReportForm.get('OtherMake').value);\n total=total.toString();\n this.visitReportForm.get('Total').patchValue(total);\n }\n\n onFileChange(event){\n this.formData = new FormData();\n let file: File = event.target.files[0];\n this.visitReportForm.get('photoName').setValue(file.name);\n let filePath = event.currentTarget.value.split(\"\\\\\")[2];\n this.formData.append('file', file, filePath);\n }\n\n deleteImage(){\n this.visitReportForm.controls['photoName'].reset();\n }\n\n onclose(){\n this.dialogRef.close();\n }\n\n onSubmit() {\n if(this.visitReportForm.get('AnyProposalMade').valid &&\n this.visitReportForm.get('AnyRequirementForNewVehicle').valid &&\n this.visitReportForm.get('interestedInSoftOffering').valid &&\n this.visitReportForm.get('Remark4').valid &&\n this.visitReportForm.get('CustomerVisit').valid &&\n this.visitReportForm.get('photoName').valid) {\n\n let totalFleetCount;\n let newProposal;\n let newVehicle;\n let softOff;\n let remark;\n let workshopVisit;\n\n this.spinner=true;\n totalFleetCount=this.visitReportForm.get('Total').value;\n newProposal=this.visitReportForm.get('AnyProposalMade').value;\n newVehicle=this.visitReportForm.get('AnyRequirementForNewVehicle').value;\n softOff=this.visitReportForm.get('interestedInSoftOffering').value\n remark=this.visitReportForm.get('Remark4').value;\n workshopVisit=this.visitReportForm.get('CustomerVisit').value;\n\n let file = this.formData;\n\n\n this.commonService.saveVisitReportForm(totalFleetCount, newProposal, newVehicle, softOff, remark, workshopVisit, this.visitReportForm.get('photoName').value, file).subscribe(res => {\n if (res[\"responseCode\"] == 0) {\n this.toastr.info(res['message'], \"Success\");\n this.spinner = false;\n this.dialogRef.close(\"false\");\n }\n else{\n this.toastr.error(res['message'], \"Error\");\n this.spinner = false;\n this.dialogRef.close();\n }\n }, error => {\n this.spinner = false;\n this.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n this.dialogRef.close();\n });\n } else {\n this.toastr.error(\"Please fill Complete Form\");\n }\n }\n\n /**\n * If touched field is empty, this function will show error\n * @param control\n */\n hasError(control: any): boolean {\n return (\n control &&\n (control.touched || control.dirty) &&\n !control.valid\n );\n }\n}\n\nexport function openvisitReportDialog(dialog:MatDialog) {\n\n const config=new MatDialogConfig();\n config.disableClose=true;\n config.autoFocus=true;\n config.width='850px';\n config.height='550px';\n\n const dialogRef=dialog.open(VisitReportComponent,config);\n return dialogRef.afterClosed();\n}\n","export default \".mat-menu {\\n overflow: hidden;\\n}\\n\\n.mat-tab-nav-bar {\\n background-color: #00457D;\\n height: 30px;\\n}\\n\\n.mat-tab-nav-bar a {\\n color: white;\\n font-size: 14px;\\n padding-bottom: 8px;\\n}\\n\\n.filterdiv {\\n align-items: center;\\n box-sizing: border-box;\\n display: flex;\\n flex-wrap: wrap;\\n justify-content: space-between;\\n}\\n\\n.droupdown-style {\\n width: 685px;\\n margin: 10px;\\n margin-top: 20px;\\n}\\n\\n.droupdown-style1 {\\n width: 220px;\\n margin: 10px;\\n margin-top: 20px;\\n}\\n\\n.filter-label {\\n font: 12px Roboto;\\n font-weight: bold;\\n letter-spacing: 0px;\\n color: #3c3c3c;\\n opacity: 1;\\n margin-bottom: 3px;\\n padding: 1px 0px 0px;\\n}\\n\\n.filter-label1 {\\n font: 12px Roboto;\\n font-weight: bold;\\n letter-spacing: 0px;\\n color: #3c3c3c;\\n opacity: 1;\\n margin-bottom: 3px;\\n padding: 1px 0px 0px;\\n margin-top: 7px;\\n}\\n\\n.pipeline-header {\\n color: white;\\n font-size: 14px;\\n margin-left: 0px;\\n}\\n\\n.header-container {\\n background: #ffffff;\\n top: 0px;\\n z-index: 100;\\n width: 850px;\\n}\\n\\n.imageVolvo {\\n width: 40%;\\n height: auto;\\n float: left;\\n padding: 5px;\\n padding-left: 20PX;\\n}\\n\\n.working-area {\\n margin-top: 115px;\\n}\\n\\ntable {\\n width: 100%;\\n}\\n\\n.calling-table tr {\\n cursor: pointer;\\n}\\n\\n.table-head-call {\\n background: none;\\n padding-top: 12px;\\n}\\n\\n.button-margin {\\n margin-left: 10px;\\n}\\n\\n.callList {\\n font: Bold 20px Roboto;\\n letter-spacing: 0px;\\n color: #484848;\\n opacity: 1;\\n}\\n\\n.close-con {\\n font-size: 18px;\\n cursor: pointer;\\n top: 3px;\\n right: 1px;\\n position: absolute !important;\\n z-index: 10;\\n opacity: 1;\\n}\\n\\n.filter1 ::ng-deep .mat-select {\\n padding-bottom: 0px;\\n padding-top: 2px;\\n}\\n\\n.filter1 ::ng-deep .mat-button {\\n font-size: 12px;\\n font: white;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-infix {\\n border: 1px solid lightgray;\\n border-radius: 5px;\\n background: white;\\n padding-bottom: 0px;\\n font-size: 12px !important;\\n color: #0b0b0b;\\n height: 21px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-trigger {\\n padding-left: 8px;\\n}\\n\\n.filter1 ::ng-deep .mat-select-value {\\n width: 100%;\\n}\\n\\n.filter1 ::ng-deep .mat-select-arrow-wrapper {\\n padding-bottom: 0x;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label-wrapper {\\n top: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 0;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-underline {\\n display: none;\\n}\\n\\n.filter1 ::ng-deep .mat-form-field-label {\\n top: 0;\\n margin-top: 6px !important;\\n padding-left: 5px;\\n color: #0b0b0b;\\n}\\n\\n.filter1 {\\n font-size: 12px;\\n}\\n\\n.filter2 ::ng-deep .mat-form-field-infix {\\n border: 1px solid lightgray;\\n border-radius: 5px;\\n background: white;\\n padding-bottom: 0px;\\n font-size: 12px !important;\\n height: 21px;\\n color: #0b0b0b;\\n margin-left: 191px;\\n}\\n\\n.filter2 ::ng-deep .mat-select-trigger {\\n padding-left: 8px;\\n}\\n\\n.filter2 ::ng-deep .mat-select-value {\\n width: 100%;\\n}\\n\\n.filter2 ::ng-deep .mat-select-arrow-wrapper {\\n padding-bottom: 0x;\\n}\\n\\n.filter2 ::ng-deep .mat-form-field-label-wrapper {\\n top: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n\\n.filter2 ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 0;\\n}\\n\\n.filter2 ::ng-deep .mat-form-field-underline {\\n display: none;\\n}\\n\\n.filter2 ::ng-deep .mat-form-field-label {\\n top: 0;\\n margin-top: 6px !important;\\n padding-left: 5px;\\n color: #0b0b0b;\\n}\\n\\n.filter2 {\\n font-size: 12px;\\n}\\n\\n.refesh-icon {\\n float: right;\\n margin-bottom: -30px;\\n margin-right: 20px;\\n margin-top: 30px;\\n cursor: pointer;\\n}\\n\\n.coloredRow {\\n background: #ffff99;\\n}\\n\\n.coloredGreenRow {\\n background: #90ee90;\\n}\\n\\n.mat-dialog-title {\\n background-color: darkgray;\\n}\\n\\n.callList-right {\\n font-size: 11px;\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.columnHeader {\\n font: Bold 12px Roboto;\\n letter-spacing: 0px;\\n color: #333333;\\n text-transform: capitalize;\\n}\\n\\n.lost {\\n color: #e64243;\\n position: absolute;\\n left: 10px;\\n font-size: 10px;\\n top: 38%;\\n}\\n\\n.inbound {\\n color: #2e3668;\\n position: absolute;\\n left: 0px;\\n font-size: 10px;\\n top: 38%;\\n}\\n\\n.columnvalue {\\n font-size: 14px;\\n position: relative;\\n}\\n\\n.filterButton {\\n color: white !important;\\n background-color: #00457D;\\n height: 20px;\\n line-height: 10px;\\n margin-bottom: 1px;\\n}\\n\\n.filterdiv {\\n align-items: center;\\n box-sizing: border-box;\\n display: flex;\\n flex-wrap: wrap;\\n justify-content: space-evenly;\\n}\\n\\n.filterdiv1 {\\n align-items: center;\\n box-sizing: border-box;\\n display: flex;\\n flex-wrap: wrap;\\n justify-content: left;\\n margin-left: 34px;\\n}\\n\\n.serviceDueDate {\\n width: 10% !important;\\n}\\n\\n.followUp {\\n width: 8% !important;\\n}\\n\\ntd.mat-cell,\\ntd.mat-footer-cell,\\nth.mat-header-cell {\\n padding: 10px;\\n border-style: solid none none solid;\\n border-width: 0.1px;\\n border-color: lightgray;\\n}\\n\\n.dataview {\\n margin-left: 5px;\\n margin-top: 1px;\\n}\\n\\n.d-none1 {\\n display: none;\\n}\\n\\n.d-none2 {\\n display: none;\\n}\\n\\n.table-border.mat-table {\\n border-style: none solid solid none;\\n border-color: lightgray;\\n}\\n\\nth.mat-header-cell {\\n background-color: #d9d9d9;\\n}\\n\\n.mat-sort-header-container {\\n justify-content: center !important;\\n}\\n\\n.filter2 {\\n width: auto;\\n}\\n\\ntextService {\\n font: 22px Roboto;\\n letter-spacing: 0px;\\n color: #484848;\\n opacity: 1;\\n}\\n\\n.call-stats-card1 {\\n padding-top: 0px;\\n}\\n\\n.call-stats-card-border1 {\\n border-style: solid solid none solid;\\n border-width: 1px;\\n border-radius: 0%;\\n border-color: lightgray;\\n}\\n\\n.call-stats-card-border2 {\\n border-style: solid solid solid solid;\\n border-width: 1px;\\n border-radius: 0%;\\n margin-bottom: 15px;\\n border-color: lightgray;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-group {\\n border-radius: 0px;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle {\\n background-color: #ffffff;\\n color: #5482BC;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-checked {\\n background-color: #5482BC;\\n color: #ffffff;\\n}\\n\\n.toggle-btn-grp ::ng-deep .mat-button-toggle-label-content {\\n line-height: 30px;\\n font: Regular 14px Roboto;\\n letter-spacing: 0px;\\n}\\n\\n.toggle-btn-grp ::ng-deep .refresh-btn.mat-button {\\n min-width: auto;\\n}\\n\\n.refresh-btn {\\n background-color: #ffffff;\\n color: #e64243;\\n border: 1px solid #e64243;\\n border-radius: 0px;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-flex {\\n border: 1px solid lightgray;\\n border-radius: 3px;\\n background: white;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-label {\\n padding-left: 10px;\\n}\\n\\n.textboxService ::ng-deep .mat-form-field-infix {\\n border-top: none;\\n}\\n\\n.textboxService ::ng-deep label.mat-form-field-label {\\n margin-top: 8px !important;\\n}\\n\\n.textboxService ::ng-deep input.mat-input-element {\\n margin-top: 0.6em;\\n margin-left: 10px;\\n}\\n\\n.search-icon {\\n position: absolute;\\n right: 15px;\\n top: 15px;\\n}\\n\\n.backColor {\\n background-color: #00457D !important;\\n font-size: 12px;\\n}\\n\\n.box-size {\\n margin-left: 10px;\\n margin-top: 7px;\\n width: 28px;\\n height: 28px;\\n color: #ffffff !important;\\n}\\n\\n.box-size1 {\\n margin-left: 10px;\\n margin-top: 10px;\\n width: 22px;\\n height: 22px;\\n color: #ffffff !important;\\n}\\n\\n.backColor1 {\\n background-color: #5482BC !important;\\n font-size: 12px;\\n}\\n\\n.call-stats-value {\\n margin-left: 50px;\\n font-size: 18px;\\n}\\n\\n.call-stats-value1 {\\n margin-left: 30px;\\n font-size: 18px;\\n}\\n\\n.info-circle-size {\\n font-size: 12px !important;\\n color: #ffffff !important;\\n}\\n\\n.flex-set {\\n margin-top: 7px;\\n margin-left: 15px;\\n}\\n\\n.flex-set1 {\\n margin-top: 7px;\\n margin-left: 25px;\\n}\\n\\n.dueDateIcon {\\n height: 9px;\\n width: 11px;\\n}\\n\\n.margin-left {\\n padding-left: 10px;\\n}\\n\\n.paginator ::ng-deep .mat-form-field-infix {\\n height: 18px !important;\\n padding-bottom: 0px;\\n}\\n\\n.followUp {\\n width: 9% !important;\\n}\\n\\n.lastCall {\\n width: 9% !important;\\n}\\n\\n.mat-option {\\n font-size: 13px;\\n}\\n\\n.fontClassBold {\\n font-size: 14px;\\n}\\n\\n.fontClassBold1 {\\n color: #484848;\\n font-size: 14px;\\n margin-top: 5px;\\n font-weight: normal !important;\\n}\\n\\n.enqiryButton {\\n color: white !important;\\n background-color: #00457D;\\n margin-top: 30px;\\n margin-left: 30px;\\n}\\n\\n::ng-deep .mat-tooltip {\\n font-size: 15px;\\n}\\n\\n.filter3 ::ng-deep .mat-select {\\n padding-bottom: 0px;\\n padding-top: 2px;\\n}\\n\\n.filter3 ::ng-deep .mat-button {\\n font-size: 12px;\\n font: white;\\n}\\n\\n.filter3 ::ng-deep .mat-form-field-infix {\\n border: 1px solid lightgray;\\n border-radius: 5px;\\n padding-bottom: 0px;\\n font-size: 12px !important;\\n color: #0b0b0b;\\n height: 21px;\\n}\\n\\n.filter3 ::ng-deep .mat-select-trigger {\\n padding-left: 8px;\\n}\\n\\n.filter3 ::ng-deep .mat-select-value {\\n width: 100%;\\n}\\n\\n.filter3 ::ng-deep .mat-select-arrow-wrapper {\\n padding-bottom: 0x;\\n}\\n\\n.filter3 ::ng-deep .mat-form-field-label-wrapper {\\n top: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n}\\n\\n.filter3 ::ng-deep .mat-form-field-wrapper {\\n padding-bottom: 0;\\n}\\n\\n.filter3 ::ng-deep .mat-form-field-underline {\\n display: none;\\n}\\n\\n.filter3 ::ng-deep .mat-form-field-label {\\n top: 0;\\n margin-top: 6px !important;\\n padding-left: 5px;\\n color: #0b0b0b;\\n}\\n\\n.filter3 {\\n font-size: 12px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9tb2RhbC93b3Jrc2hvcC1yZWFzc2lnbm1lbnQtZGlhbG9nL3dvcmtzaG9wLXJlYXNzaWdubWVudC1kaWFsb2cuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL21vZGFsL3dvcmtzaG9wLXJlYXNzaWdubWVudC1kaWFsb2cvd29ya3Nob3AtcmVhc3NpZ25tZW50LWRpYWxvZy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGdCQUFBO0FDQ0Y7O0FERUE7RUFDRSx5QkFBQTtFQUNBLFlBQUE7QUNDRjs7QURHQTtFQUNFLFlBQUE7RUFDQSxlQUFBO0VBQ0EsbUJBQUE7QUNBRjs7QURHQTtFQUNFLG1CQUFBO0VBQ0Esc0JBQUE7RUFDQSxhQUFBO0VBQ0EsZUFBQTtFQUNBLDhCQUFBO0FDQUY7O0FER0E7RUFDRSxZQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0FDQUY7O0FER0E7RUFDRSxZQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0FDQUY7O0FESUE7RUFDRSxpQkFBQTtFQUNBLGlCQUFBO0VBQ0EsbUJBQUE7RUFDQSxjQUFBO0VBQ0EsVUFBQTtFQUNBLGtCQUFBO0VBQ0Esb0JBQUE7QUNERjs7QURJQTtFQUNFLGlCQUFBO0VBQ0EsaUJBQUE7RUFDQSxtQkFBQTtFQUNBLGNBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7RUFDQSxvQkFBQTtFQUNBLGVBQUE7QUNERjs7QURLQTtFQUNFLFlBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7QUNGRjs7QURLQTtFQUNFLG1CQUFBO0VBRUEsUUFBQTtFQUNBLFlBQUE7RUFDQSxZQUFBO0FDSEY7O0FET0E7RUFDRSxVQUFBO0VBQ0EsWUFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7QUNKRjs7QURPQTtFQUNFLGlCQUFBO0FDSkY7O0FET0E7RUFDRSxXQUFBO0FDSkY7O0FET0E7RUFDRSxlQUFBO0FDSkY7O0FET0E7RUFDRSxnQkFBQTtFQUNBLGlCQUFBO0FDSkY7O0FET0E7RUFDRSxpQkFBQTtBQ0pGOztBRE9BO0VBQ0Usc0JBQUE7RUFDQSxtQkFBQTtFQUNBLGNBQUE7RUFDQSxVQUFBO0FDSkY7O0FET0E7RUFDRSxlQUFBO0VBQ0EsZUFBQTtFQUNBLFFBQUE7RUFDQSxVQUFBO0VBQ0EsNkJBQUE7RUFDQSxXQUFBO0VBQ0EsVUFBQTtBQ0pGOztBRE9BO0VBQ0UsbUJBQUE7RUFDQSxnQkFBQTtBQ0pGOztBRE9BO0VBQ0UsZUFBQTtFQUNBLFdBQUE7QUNKRjs7QURPQTtFQUNFLDJCQUFBO0VBQ0Esa0JBQUE7RUFDQSxpQkFBQTtFQUNBLG1CQUFBO0VBQ0EsMEJBQUE7RUFDQSxjQUFBO0VBQ0EsWUFBQTtBQ0pGOztBRFFBO0VBQ0UsaUJBQUE7QUNMRjs7QURRQTtFQUNFLFdBQUE7QUNMRjs7QURRQTtFQUNFLGtCQUFBO0FDTEY7O0FEUUE7RUFDRSxNQUFBO0VBQ0EsY0FBQTtFQUNBLGlCQUFBO0FDTEY7O0FEUUE7RUFDRSxpQkFBQTtBQ0xGOztBRFFBO0VBQ0UsYUFBQTtBQ0xGOztBRFFBO0VBQ0UsTUFBQTtFQUNBLDBCQUFBO0VBQ0EsaUJBQUE7RUFDQSxjQUFBO0FDTEY7O0FEUUE7RUFDRSxlQUFBO0FDTEY7O0FEU0E7RUFDRSwyQkFBQTtFQUNBLGtCQUFBO0VBQ0EsaUJBQUE7RUFDQSxtQkFBQTtFQUNBLDBCQUFBO0VBQ0EsWUFBQTtFQUNBLGNBQUE7RUFDQSxrQkFBQTtBQ05GOztBRFNBO0VBQ0UsaUJBQUE7QUNORjs7QURTQTtFQUNFLFdBQUE7QUNORjs7QURTQTtFQUNFLGtCQUFBO0FDTkY7O0FEU0E7RUFDRSxNQUFBO0VBQ0EsY0FBQTtFQUNBLGlCQUFBO0FDTkY7O0FEU0E7RUFDRSxpQkFBQTtBQ05GOztBRFNBO0VBQ0UsYUFBQTtBQ05GOztBRFNBO0VBQ0UsTUFBQTtFQUNBLDBCQUFBO0VBQ0EsaUJBQUE7RUFDQSxjQUFBO0FDTkY7O0FEU0E7RUFDRSxlQUFBO0FDTkY7O0FEVUE7RUFDRSxZQUFBO0VBQ0Esb0JBQUE7RUFDQSxrQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZUFBQTtBQ1BGOztBRFVBO0VBQ0UsbUJBQUE7QUNQRjs7QURVQTtFQUNFLG1CQUFBO0FDUEY7O0FEVUE7RUFDRSwwQkFBQTtBQ1BGOztBRFVBO0VBQ0UsZUFBQTtFQUNBLDBCQUFBO0FDUEY7O0FEVUE7RUFDRSxzQkFBQTtFQUNBLG1CQUFBO0VBQ0EsY0FBQTtFQUNBLDBCQUFBO0FDUEY7O0FEVUE7RUFDRSxjQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBO0VBQ0EsZUFBQTtFQUNBLFFBQUE7QUNQRjs7QURVQTtFQUNFLGNBQUE7RUFDQSxrQkFBQTtFQUNBLFNBQUE7RUFDQSxlQUFBO0VBQ0EsUUFBQTtBQ1BGOztBRFVBO0VBQ0UsZUFBQTtFQUNBLGtCQUFBO0FDUEY7O0FEVUE7RUFDRSx1QkFBQTtFQUNBLHlCQUFBO0VBQ0EsWUFBQTtFQUNBLGlCQUFBO0VBQ0Esa0JBQUE7QUNQRjs7QURVQTtFQUNFLG1CQUFBO0VBQ0Esc0JBQUE7RUFDQSxhQUFBO0VBQ0EsZUFBQTtFQUNBLDZCQUFBO0FDUEY7O0FEVUE7RUFDRSxtQkFBQTtFQUNBLHNCQUFBO0VBQ0EsYUFBQTtFQUNBLGVBQUE7RUFDQSxxQkFBQTtFQUNBLGlCQUFBO0FDUEY7O0FEV0E7RUFDRSxxQkFBQTtBQ1JGOztBRFdBO0VBQ0Usb0JBQUE7QUNSRjs7QURXQTs7O0VBR0UsYUFBQTtFQUNBLG1DQUFBO0VBQ0EsbUJBQUE7RUFDQSx1QkFBQTtBQ1JGOztBRFdBO0VBQ0UsZ0JBQUE7RUFDQSxlQUFBO0FDUkY7O0FEV0E7RUFDRSxhQUFBO0FDUkY7O0FEV0E7RUFDRSxhQUFBO0FDUkY7O0FEV0E7RUFDRSxtQ0FBQTtFQUNBLHVCQUFBO0FDUkY7O0FEV0E7RUFFRSx5QkFBQTtBQ1RGOztBRFlBO0VBQ0Usa0NBQUE7QUNURjs7QURZQTtFQUNFLFdBQUE7QUNURjs7QURZQTtFQUNFLGlCQUFBO0VBQ0EsbUJBQUE7RUFDQSxjQUFBO0VBQ0EsVUFBQTtBQ1RGOztBRGVBO0VBQ0UsZ0JBQUE7QUNaRjs7QURlQTtFQUNFLG9DQUFBO0VBQ0EsaUJBQUE7RUFDQSxpQkFBQTtFQUNBLHVCQUFBO0FDWkY7O0FEZ0JBO0VBQ0UscUNBQUE7RUFDQSxpQkFBQTtFQUNBLGlCQUFBO0VBQ0EsbUJBQUE7RUFDQSx1QkFBQTtBQ2JGOztBRGdCQTtFQUNFLGtCQUFBO0FDYkY7O0FEZ0JBO0VBQ0UseUJBQUE7RUFDQSxjQUFBO0FDYkY7O0FEZ0JBO0VBQ0UseUJBQUE7RUFDQSxjQUFBO0FDYkY7O0FEZ0JBO0VBQ0UsaUJBQUE7RUFDQSx5QkFBQTtFQUNBLG1CQUFBO0FDYkY7O0FEZ0JBO0VBQ0UsZUFBQTtBQ2JGOztBRGdCQTtFQUNFLHlCQUFBO0VBQ0EsY0FBQTtFQUNBLHlCQUFBO0VBQ0Esa0JBQUE7QUNiRjs7QURnQkE7RUFDRSwyQkFBQTtFQUNBLGtCQUFBO0VBQ0EsaUJBQUE7QUNiRjs7QURnQkE7RUFDRSxrQkFBQTtBQ2JGOztBRGdCQTtFQUNFLGdCQUFBO0FDYkY7O0FEZ0JBO0VBQ0UsMEJBQUE7QUNiRjs7QURnQkE7RUFDRSxpQkFBQTtFQUNBLGlCQUFBO0FDYkY7O0FEZ0JBO0VBQ0Usa0JBQUE7RUFDQSxXQUFBO0VBQ0EsU0FBQTtBQ2JGOztBRGdCQTtFQUNFLG9DQUFBO0VBQ0EsZUFBQTtBQ2JGOztBRGdCQTtFQUNFLGlCQUFBO0VBQ0EsZUFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EseUJBQUE7QUNiRjs7QURnQkE7RUFDRSxpQkFBQTtFQUNBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSx5QkFBQTtBQ2JGOztBRGdCQTtFQUNFLG9DQUFBO0VBQ0EsZUFBQTtBQ2JGOztBRGdCQTtFQUNFLGlCQUFBO0VBQ0EsZUFBQTtBQ2JGOztBRGdCQTtFQUNFLGlCQUFBO0VBQ0EsZUFBQTtBQ2JGOztBRGdCQTtFQUNFLDBCQUFBO0VBQ0EseUJBQUE7QUNiRjs7QURnQkE7RUFDRSxlQUFBO0VBQ0EsaUJBQUE7QUNiRjs7QURnQkE7RUFDRSxlQUFBO0VBQ0EsaUJBQUE7QUNiRjs7QURnQkE7RUFDRSxXQUFBO0VBQ0EsV0FBQTtBQ2JGOztBRGtCQTtFQUNFLGtCQUFBO0FDZkY7O0FEa0JBO0VBQ0UsdUJBQUE7RUFDQSxtQkFBQTtBQ2ZGOztBRGtCQTtFQUNFLG9CQUFBO0FDZkY7O0FEa0JBO0VBQ0Usb0JBQUE7QUNmRjs7QURrQkE7RUFDRSxlQUFBO0FDZkY7O0FEbUJBO0VBQ0UsZUFBQTtBQ2hCRjs7QURtQkE7RUFDRSxjQUFBO0VBQ0EsZUFBQTtFQUNBLGVBQUE7RUFDQSw4QkFBQTtBQ2hCRjs7QURrQkE7RUFDRSx1QkFBQTtFQUNBLHlCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtBQ2ZGOztBRGtCQTtFQUNFLGVBQUE7QUNmRjs7QURrQkE7RUFDRSxtQkFBQTtFQUNBLGdCQUFBO0FDZkY7O0FEa0JBO0VBQ0UsZUFBQTtFQUNBLFdBQUE7QUNmRjs7QURrQkE7RUFDRSwyQkFBQTtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7RUFDQSwwQkFBQTtFQUNBLGNBQUE7RUFDQSxZQUFBO0FDZkY7O0FEbUJBO0VBQ0UsaUJBQUE7QUNoQkY7O0FEbUJBO0VBQ0UsV0FBQTtBQ2hCRjs7QURtQkE7RUFDRSxrQkFBQTtBQ2hCRjs7QURtQkE7RUFDRSxNQUFBO0VBQ0EsY0FBQTtFQUNBLGlCQUFBO0FDaEJGOztBRG1CQTtFQUNFLGlCQUFBO0FDaEJGOztBRG1CQTtFQUNFLGFBQUE7QUNoQkY7O0FEbUJBO0VBQ0UsTUFBQTtFQUNBLDBCQUFBO0VBQ0EsaUJBQUE7RUFDQSxjQUFBO0FDaEJGOztBRG1CQTtFQUNFLGVBQUE7QUNoQkYiLCJmaWxlIjoic3JjL2FwcC9tb2RhbC93b3Jrc2hvcC1yZWFzc2lnbm1lbnQtZGlhbG9nL3dvcmtzaG9wLXJlYXNzaWdubWVudC1kaWFsb2cuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIubWF0LW1lbnUge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ubWF0LXRhYi1uYXYtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RDtcbiAgaGVpZ2h0OiAzMHB4O1xuXG59XG5cbi5tYXQtdGFiLW5hdi1iYXIgYSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBwYWRkaW5nLWJvdHRvbTogOHB4O1xufVxuXG4uZmlsdGVyZGl2IHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5cbi5kcm91cGRvd24tc3R5bGUge1xuICB3aWR0aDogNjg1cHg7XG4gIG1hcmdpbjogMTBweDtcbiAgbWFyZ2luLXRvcDogMjBweDtcbn1cblxuLmRyb3VwZG93bi1zdHlsZTEge1xuICB3aWR0aDogMjIwcHg7XG4gIG1hcmdpbjogMTBweDtcbiAgbWFyZ2luLXRvcDogMjBweDtcblxufVxuXG4uZmlsdGVyLWxhYmVsIHtcbiAgZm9udDogMTJweCBSb2JvdG87XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICBjb2xvcjogIzNjM2MzYztcbiAgb3BhY2l0eTogMTtcbiAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICBwYWRkaW5nOiAxcHggMHB4IDBweDtcbn1cblxuLmZpbHRlci1sYWJlbDEge1xuICBmb250OiAxMnB4IFJvYm90bztcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gIGNvbG9yOiAjM2MzYzNjO1xuICBvcGFjaXR5OiAxO1xuICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gIHBhZGRpbmc6IDFweCAwcHggMHB4O1xuICBtYXJnaW4tdG9wOiA3cHg7XG5cbn1cblxuLnBpcGVsaW5lLWhlYWRlciB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBtYXJnaW4tbGVmdDogMHB4O1xufVxuXG4uaGVhZGVyLWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG5cbiAgdG9wOiAwcHg7XG4gIHotaW5kZXg6IDEwMDtcbiAgd2lkdGg6IDg1MHB4O1xuXG59XG5cbi5pbWFnZVZvbHZvIHtcbiAgd2lkdGg6IDQwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZzogNXB4O1xuICBwYWRkaW5nLWxlZnQ6IDIwUFg7XG59XG5cbi53b3JraW5nLWFyZWEge1xuICBtYXJnaW4tdG9wOiAxMTVweDtcbn1cblxudGFibGUge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmNhbGxpbmctdGFibGUgdHIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi50YWJsZS1oZWFkLWNhbGwge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBwYWRkaW5nLXRvcDogMTJweDtcbn1cblxuLmJ1dHRvbi1tYXJnaW4ge1xuICBtYXJnaW4tbGVmdDogMTBweDtcbn1cblxuLmNhbGxMaXN0IHtcbiAgZm9udDogQm9sZCAyMHB4IFJvYm90bztcbiAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgY29sb3I6ICM0ODQ4NDg7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5jbG9zZS1jb24ge1xuICBmb250LXNpemU6IDE4cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdG9wOiAzcHg7XG4gIHJpZ2h0OiAxcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB6LWluZGV4OiAxMDtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0IHtcbiAgcGFkZGluZy1ib3R0b206IDBweDtcbiAgcGFkZGluZy10b3A6IDJweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtYnV0dG9uIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250OiB3aGl0ZTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgcGFkZGluZy1ib3R0b206IDBweDtcbiAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiMwYjBiMGI7XG4gIGhlaWdodDogMjFweDtcblxufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gIHBhZGRpbmctbGVmdDogOHB4O1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdmFsdWUge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LWFycm93LXdyYXBwZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gIHRvcDogMDtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdG9wOiAwO1xuICBtYXJnaW4tdG9wOiA2cHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gIGNvbG9yOiAjMGIwYjBiO1xufVxuXG4uZmlsdGVyMSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuXG4uZmlsdGVyMiA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBwYWRkaW5nLWJvdHRvbTogMHB4O1xuICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAyMXB4O1xuICBjb2xvcjojMGIwYjBiO1xuICBtYXJnaW4tbGVmdDogMTkxcHg7XG59XG5cbi5maWx0ZXIyIDo6bmctZGVlcCAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XG59XG5cbi5maWx0ZXIyIDo6bmctZGVlcCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uZmlsdGVyMiA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtYXJyb3ctd3JhcHBlciB7XG4gIHBhZGRpbmctYm90dG9tOiAweDtcbn1cblxuLmZpbHRlcjIgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIHtcbiAgdG9wOiAwO1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXIyIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMiA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5maWx0ZXIyIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0b3A6IDA7XG4gIG1hcmdpbi10b3A6IDZweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgY29sb3I6ICMwYjBiMGI7XG59XG5cbi5maWx0ZXIyIHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG5cbi5yZWZlc2gtaWNvbiB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLWJvdHRvbTogLTMwcHg7XG4gIG1hcmdpbi1yaWdodDogMjBweDtcbiAgbWFyZ2luLXRvcDogMzBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uY29sb3JlZFJvdyB7XG4gIGJhY2tncm91bmQ6ICNmZmZmOTk7XG59XG5cbi5jb2xvcmVkR3JlZW5Sb3cge1xuICBiYWNrZ3JvdW5kOiAjOTBlZTkwO1xufVxuXG4ubWF0LWRpYWxvZy10aXRsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IGRhcmtncmF5O1xufVxuXG4uY2FsbExpc3QtcmlnaHQge1xuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuXG4uY29sdW1uSGVhZGVyIHtcbiAgZm9udDogQm9sZCAxMnB4IFJvYm90bztcbiAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xufVxuXG4ubG9zdCB7XG4gIGNvbG9yOiAjZTY0MjQzO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgdG9wOiAzOCU7XG59XG5cbi5pbmJvdW5kIHtcbiAgY29sb3I6ICMyZTM2Njg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMHB4O1xuICBmb250LXNpemU6IDEwcHg7XG4gIHRvcDogMzglO1xufVxuXG4uY29sdW1udmFsdWUge1xuICBmb250LXNpemU6IDE0cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmZpbHRlckJ1dHRvbiB7XG4gIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEO1xuICBoZWlnaHQ6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxcHg7XG59XG5cbi5maWx0ZXJkaXYge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtZXZlbmx5O1xufVxuXG4uZmlsdGVyZGl2MSB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBsZWZ0O1xuICBtYXJnaW4tbGVmdDogMzRweDtcbn1cblxuXG4uc2VydmljZUR1ZURhdGUge1xuICB3aWR0aDogMTAlICFpbXBvcnRhbnQ7XG59XG5cbi5mb2xsb3dVcCB7XG4gIHdpZHRoOiA4JSAhaW1wb3J0YW50O1xufVxuXG50ZC5tYXQtY2VsbCxcbnRkLm1hdC1mb290ZXItY2VsbCxcbnRoLm1hdC1oZWFkZXItY2VsbCB7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGJvcmRlci1zdHlsZTogc29saWQgbm9uZSBub25lIHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDAuMXB4O1xuICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxuLmRhdGF2aWV3IHtcbiAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgbWFyZ2luLXRvcDogMXB4O1xufVxuXG4uZC1ub25lMSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5kLW5vbmUyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnRhYmxlLWJvcmRlci5tYXQtdGFibGUge1xuICBib3JkZXItc3R5bGU6IG5vbmUgc29saWQgc29saWQgbm9uZTtcbiAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG59XG5cbnRoLm1hdC1oZWFkZXItY2VsbCB7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q5ZDlkOTtcbn1cblxuLm1hdC1zb3J0LWhlYWRlci1jb250YWluZXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50O1xufVxuXG4uZmlsdGVyMiB7XG4gIHdpZHRoOiBhdXRvO1xufVxuXG50ZXh0U2VydmljZSB7XG4gIGZvbnQ6IDIycHggUm9ib3RvO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICBjb2xvcjogIzQ4NDg0ODtcbiAgb3BhY2l0eTogMTtcblxufVxuXG5cblxuLmNhbGwtc3RhdHMtY2FyZDEge1xuICBwYWRkaW5nLXRvcDogMHB4O1xufVxuXG4uY2FsbC1zdGF0cy1jYXJkLWJvcmRlcjEge1xuICBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIG5vbmUgc29saWQ7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3JkZXItcmFkaXVzOiAwJTtcbiAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG5cbn1cblxuLmNhbGwtc3RhdHMtY2FyZC1ib3JkZXIyIHtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZCBzb2xpZCBzb2xpZCBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1yYWRpdXM6IDAlO1xuICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAge1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgY29sb3I6ICM1NDgyQkM7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTQ4MkJDO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtbGFiZWwtY29udGVudCB7XG4gIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICBmb250OiBSZWd1bGFyIDE0cHggUm9ib3RvO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5yZWZyZXNoLWJ0bi5tYXQtYnV0dG9uIHtcbiAgbWluLXdpZHRoOiBhdXRvO1xufVxuXG4ucmVmcmVzaC1idG4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBjb2xvcjogI2U2NDI0MztcbiAgYm9yZGVyOiAxcHggc29saWQgI2U2NDI0MztcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBib3JkZXItdG9wOiBub25lO1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIGxhYmVsLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgbWFyZ2luLXRvcDogOHB4ICFpbXBvcnRhbnQ7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgaW5wdXQubWF0LWlucHV0LWVsZW1lbnQge1xuICBtYXJnaW4tdG9wOiAwLjZlbTtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbi5zZWFyY2gtaWNvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDE1cHg7XG4gIHRvcDogMTVweDtcbn1cblxuLmJhY2tDb2xvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0QgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uYm94LXNpemUge1xuICBtYXJnaW4tbGVmdDogMTBweDtcbiAgbWFyZ2luLXRvcDogN3B4O1xuICB3aWR0aDogMjhweDtcbiAgaGVpZ2h0OiAyOHB4O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG4uYm94LXNpemUxIHtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIHdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDIycHg7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbi5iYWNrQ29sb3IxIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU0ODJCQyAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5jYWxsLXN0YXRzLXZhbHVlIHtcbiAgbWFyZ2luLWxlZnQ6IDUwcHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbn1cblxuLmNhbGwtc3RhdHMtdmFsdWUxIHtcbiAgbWFyZ2luLWxlZnQ6IDMwcHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbn1cblxuLmluZm8tY2lyY2xlLXNpemUge1xuICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuLmZsZXgtc2V0IHtcbiAgbWFyZ2luLXRvcDogN3B4O1xuICBtYXJnaW4tbGVmdDogMTVweDtcbn1cblxuLmZsZXgtc2V0MSB7XG4gIG1hcmdpbi10b3A6IDdweDtcbiAgbWFyZ2luLWxlZnQ6IDI1cHg7XG59XG5cbi5kdWVEYXRlSWNvbiB7XG4gIGhlaWdodDogOXB4O1xuICB3aWR0aDogMTFweDtcbn1cblxuXG5cbi5tYXJnaW4tbGVmdCB7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbn1cblxuLnBhZ2luYXRvciA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgaGVpZ2h0OiAxOHB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctYm90dG9tOiAwcHg7XG59XG5cbi5mb2xsb3dVcCB7XG4gIHdpZHRoOiA5JSAhaW1wb3J0YW50O1xufVxuXG4ubGFzdENhbGwge1xuICB3aWR0aDogOSUgIWltcG9ydGFudDtcbn1cblxuLm1hdC1vcHRpb24ge1xuICBmb250LXNpemU6IDEzcHg7XG5cbn1cblxuLmZvbnRDbGFzc0JvbGQge1xuICBmb250LXNpemU6IDE0cHg7XG59XG5cbi5mb250Q2xhc3NCb2xkMSB7XG4gIGNvbG9yOiAjNDg0ODQ4O1xuICBmb250LXNpemU6IDE0cHggO1xuICBtYXJnaW4tdG9wOiA1cHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWwgIWltcG9ydGFudDtcbn1cbi5lbnFpcnlCdXR0b24ge1xuICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RDtcbiAgbWFyZ2luLXRvcDogMzBweDtcbiAgbWFyZ2luLWxlZnQ6IDMwcHg7XG59XG5cbjo6bmctZGVlcCAubWF0LXRvb2x0aXB7XG4gIGZvbnQtc2l6ZTogMTVweDtcbn1cblxuLmZpbHRlcjMgOjpuZy1kZWVwIC5tYXQtc2VsZWN0IHtcbiAgcGFkZGluZy1ib3R0b206IDBweDtcbiAgcGFkZGluZy10b3A6IDJweDtcbn1cblxuLmZpbHRlcjMgOjpuZy1kZWVwIC5tYXQtYnV0dG9uIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250OiB3aGl0ZTtcbn1cblxuLmZpbHRlcjMgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBwYWRkaW5nLWJvdHRvbTogMHB4O1xuICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcbiAgY29sb3I6IzBiMGIwYjtcbiAgaGVpZ2h0OiAyMXB4O1xuXG59XG5cbi5maWx0ZXIzIDo6bmctZGVlcCAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XG59XG5cbi5maWx0ZXIzIDo6bmctZGVlcCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uZmlsdGVyMyA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtYXJyb3ctd3JhcHBlciB7XG4gIHBhZGRpbmctYm90dG9tOiAweDtcbn1cblxuLmZpbHRlcjMgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIHtcbiAgdG9wOiAwO1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXIzIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMyA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5maWx0ZXIzIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0b3A6IDA7XG4gIG1hcmdpbi10b3A6IDZweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgY29sb3I6ICMwYjBiMGI7XG59XG5cbi5maWx0ZXIzIHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuIiwiLm1hdC1tZW51IHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm1hdC10YWItbmF2LWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0Q7XG4gIGhlaWdodDogMzBweDtcbn1cblxuLm1hdC10YWItbmF2LWJhciBhIHtcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LXNpemU6IDE0cHg7XG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XG59XG5cbi5maWx0ZXJkaXYge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cblxuLmRyb3VwZG93bi1zdHlsZSB7XG4gIHdpZHRoOiA2ODVweDtcbiAgbWFyZ2luOiAxMHB4O1xuICBtYXJnaW4tdG9wOiAyMHB4O1xufVxuXG4uZHJvdXBkb3duLXN0eWxlMSB7XG4gIHdpZHRoOiAyMjBweDtcbiAgbWFyZ2luOiAxMHB4O1xuICBtYXJnaW4tdG9wOiAyMHB4O1xufVxuXG4uZmlsdGVyLWxhYmVsIHtcbiAgZm9udDogMTJweCBSb2JvdG87XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICBjb2xvcjogIzNjM2MzYztcbiAgb3BhY2l0eTogMTtcbiAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICBwYWRkaW5nOiAxcHggMHB4IDBweDtcbn1cblxuLmZpbHRlci1sYWJlbDEge1xuICBmb250OiAxMnB4IFJvYm90bztcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gIGNvbG9yOiAjM2MzYzNjO1xuICBvcGFjaXR5OiAxO1xuICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gIHBhZGRpbmc6IDFweCAwcHggMHB4O1xuICBtYXJnaW4tdG9wOiA3cHg7XG59XG5cbi5waXBlbGluZS1oZWFkZXIge1xuICBjb2xvcjogd2hpdGU7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbWFyZ2luLWxlZnQ6IDBweDtcbn1cblxuLmhlYWRlci1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICB0b3A6IDBweDtcbiAgei1pbmRleDogMTAwO1xuICB3aWR0aDogODUwcHg7XG59XG5cbi5pbWFnZVZvbHZvIHtcbiAgd2lkdGg6IDQwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZzogNXB4O1xuICBwYWRkaW5nLWxlZnQ6IDIwUFg7XG59XG5cbi53b3JraW5nLWFyZWEge1xuICBtYXJnaW4tdG9wOiAxMTVweDtcbn1cblxudGFibGUge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmNhbGxpbmctdGFibGUgdHIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi50YWJsZS1oZWFkLWNhbGwge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBwYWRkaW5nLXRvcDogMTJweDtcbn1cblxuLmJ1dHRvbi1tYXJnaW4ge1xuICBtYXJnaW4tbGVmdDogMTBweDtcbn1cblxuLmNhbGxMaXN0IHtcbiAgZm9udDogQm9sZCAyMHB4IFJvYm90bztcbiAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgY29sb3I6ICM0ODQ4NDg7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5jbG9zZS1jb24ge1xuICBmb250LXNpemU6IDE4cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdG9wOiAzcHg7XG4gIHJpZ2h0OiAxcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB6LWluZGV4OiAxMDtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtc2VsZWN0IHtcbiAgcGFkZGluZy1ib3R0b206IDBweDtcbiAgcGFkZGluZy10b3A6IDJweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtYnV0dG9uIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250OiB3aGl0ZTtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgcGFkZGluZy1ib3R0b206IDBweDtcbiAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMGIwYjBiO1xuICBoZWlnaHQ6IDIxcHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtYXJyb3ctd3JhcHBlciB7XG4gIHBhZGRpbmctYm90dG9tOiAweDtcbn1cblxuLmZpbHRlcjEgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIHtcbiAgdG9wOiAwO1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5maWx0ZXIxIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0b3A6IDA7XG4gIG1hcmdpbi10b3A6IDZweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgY29sb3I6ICMwYjBiMGI7XG59XG5cbi5maWx0ZXIxIHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uZmlsdGVyMiA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBwYWRkaW5nLWJvdHRvbTogMHB4O1xuICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAyMXB4O1xuICBjb2xvcjogIzBiMGIwYjtcbiAgbWFyZ2luLWxlZnQ6IDE5MXB4O1xufVxuXG4uZmlsdGVyMiA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gIHBhZGRpbmctbGVmdDogOHB4O1xufVxuXG4uZmlsdGVyMiA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtdmFsdWUge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmZpbHRlcjIgOjpuZy1kZWVwIC5tYXQtc2VsZWN0LWFycm93LXdyYXBwZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMHg7XG59XG5cbi5maWx0ZXIyIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gIHRvcDogMDtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMiA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmZpbHRlcjIgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZmlsdGVyMiA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdG9wOiAwO1xuICBtYXJnaW4tdG9wOiA2cHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gIGNvbG9yOiAjMGIwYjBiO1xufVxuXG4uZmlsdGVyMiB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLnJlZmVzaC1pY29uIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tYm90dG9tOiAtMzBweDtcbiAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICBtYXJnaW4tdG9wOiAzMHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5jb2xvcmVkUm93IHtcbiAgYmFja2dyb3VuZDogI2ZmZmY5OTtcbn1cblxuLmNvbG9yZWRHcmVlblJvdyB7XG4gIGJhY2tncm91bmQ6ICM5MGVlOTA7XG59XG5cbi5tYXQtZGlhbG9nLXRpdGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogZGFya2dyYXk7XG59XG5cbi5jYWxsTGlzdC1yaWdodCB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG5cbi5jb2x1bW5IZWFkZXIge1xuICBmb250OiBCb2xkIDEycHggUm9ib3RvO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICBjb2xvcjogIzMzMzMzMztcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG59XG5cbi5sb3N0IHtcbiAgY29sb3I6ICNlNjQyNDM7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMTBweDtcbiAgZm9udC1zaXplOiAxMHB4O1xuICB0b3A6IDM4JTtcbn1cblxuLmluYm91bmQge1xuICBjb2xvcjogIzJlMzY2ODtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwcHg7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgdG9wOiAzOCU7XG59XG5cbi5jb2x1bW52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZmlsdGVyQnV0dG9uIHtcbiAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDQ1N0Q7XG4gIGhlaWdodDogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDFweDtcbn1cblxuLmZpbHRlcmRpdiB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1ldmVubHk7XG59XG5cbi5maWx0ZXJkaXYxIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGxlZnQ7XG4gIG1hcmdpbi1sZWZ0OiAzNHB4O1xufVxuXG4uc2VydmljZUR1ZURhdGUge1xuICB3aWR0aDogMTAlICFpbXBvcnRhbnQ7XG59XG5cbi5mb2xsb3dVcCB7XG4gIHdpZHRoOiA4JSAhaW1wb3J0YW50O1xufVxuXG50ZC5tYXQtY2VsbCxcbnRkLm1hdC1mb290ZXItY2VsbCxcbnRoLm1hdC1oZWFkZXItY2VsbCB7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGJvcmRlci1zdHlsZTogc29saWQgbm9uZSBub25lIHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDAuMXB4O1xuICBib3JkZXItY29sb3I6IGxpZ2h0Z3JheTtcbn1cblxuLmRhdGF2aWV3IHtcbiAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgbWFyZ2luLXRvcDogMXB4O1xufVxuXG4uZC1ub25lMSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5kLW5vbmUyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnRhYmxlLWJvcmRlci5tYXQtdGFibGUge1xuICBib3JkZXItc3R5bGU6IG5vbmUgc29saWQgc29saWQgbm9uZTtcbiAgYm9yZGVyLWNvbG9yOiBsaWdodGdyYXk7XG59XG5cbnRoLm1hdC1oZWFkZXItY2VsbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkOWQ5ZDk7XG59XG5cbi5tYXQtc29ydC1oZWFkZXItY29udGFpbmVyIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcbn1cblxuLmZpbHRlcjIge1xuICB3aWR0aDogYXV0bztcbn1cblxudGV4dFNlcnZpY2Uge1xuICBmb250OiAyMnB4IFJvYm90bztcbiAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgY29sb3I6ICM0ODQ4NDg7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5jYWxsLXN0YXRzLWNhcmQxIHtcbiAgcGFkZGluZy10b3A6IDBweDtcbn1cblxuLmNhbGwtc3RhdHMtY2FyZC1ib3JkZXIxIHtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZCBzb2xpZCBub25lIHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLXJhZGl1czogMCU7XG4gIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4uY2FsbC1zdGF0cy1jYXJkLWJvcmRlcjIge1xuICBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIHNvbGlkIHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLXJhZGl1czogMCU7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gIGJvcmRlci1jb2xvcjogbGlnaHRncmF5O1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBjb2xvcjogIzU0ODJCQztcbn1cblxuLnRvZ2dsZS1idG4tZ3JwIDo6bmctZGVlcCAubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1NDgyQkM7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4udG9nZ2xlLWJ0bi1ncnAgOjpuZy1kZWVwIC5tYXQtYnV0dG9uLXRvZ2dsZS1sYWJlbC1jb250ZW50IHtcbiAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gIGZvbnQ6IFJlZ3VsYXIgMTRweCBSb2JvdG87XG4gIGxldHRlci1zcGFjaW5nOiAwcHg7XG59XG5cbi50b2dnbGUtYnRuLWdycCA6Om5nLWRlZXAgLnJlZnJlc2gtYnRuLm1hdC1idXR0b24ge1xuICBtaW4td2lkdGg6IGF1dG87XG59XG5cbi5yZWZyZXNoLWJ0biB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGNvbG9yOiAjZTY0MjQzO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTY0MjQzO1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWZsZXgge1xuICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xufVxuXG4udGV4dGJveFNlcnZpY2UgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG5cbi50ZXh0Ym94U2VydmljZSA6Om5nLWRlZXAgbGFiZWwubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBtYXJnaW4tdG9wOiA4cHggIWltcG9ydGFudDtcbn1cblxuLnRleHRib3hTZXJ2aWNlIDo6bmctZGVlcCBpbnB1dC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gIG1hcmdpbi10b3A6IDAuNmVtO1xuICBtYXJnaW4tbGVmdDogMTBweDtcbn1cblxuLnNlYXJjaC1pY29uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMTVweDtcbiAgdG9wOiAxNXB4O1xufVxuXG4uYmFja0NvbG9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RCAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5ib3gtc2l6ZSB7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICBtYXJnaW4tdG9wOiA3cHg7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbi5ib3gtc2l6ZTEge1xuICBtYXJnaW4tbGVmdDogMTBweDtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgd2lkdGg6IDIycHg7XG4gIGhlaWdodDogMjJweDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuLmJhY2tDb2xvcjEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTQ4MkJDICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmNhbGwtc3RhdHMtdmFsdWUge1xuICBtYXJnaW4tbGVmdDogNTBweDtcbiAgZm9udC1zaXplOiAxOHB4O1xufVxuXG4uY2FsbC1zdGF0cy12YWx1ZTEge1xuICBtYXJnaW4tbGVmdDogMzBweDtcbiAgZm9udC1zaXplOiAxOHB4O1xufVxuXG4uaW5mby1jaXJjbGUtc2l6ZSB7XG4gIGZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG4uZmxleC1zZXQge1xuICBtYXJnaW4tdG9wOiA3cHg7XG4gIG1hcmdpbi1sZWZ0OiAxNXB4O1xufVxuXG4uZmxleC1zZXQxIHtcbiAgbWFyZ2luLXRvcDogN3B4O1xuICBtYXJnaW4tbGVmdDogMjVweDtcbn1cblxuLmR1ZURhdGVJY29uIHtcbiAgaGVpZ2h0OiA5cHg7XG4gIHdpZHRoOiAxMXB4O1xufVxuXG4ubWFyZ2luLWxlZnQge1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG59XG5cbi5wYWdpbmF0b3IgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIGhlaWdodDogMThweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWJvdHRvbTogMHB4O1xufVxuXG4uZm9sbG93VXAge1xuICB3aWR0aDogOSUgIWltcG9ydGFudDtcbn1cblxuLmxhc3RDYWxsIHtcbiAgd2lkdGg6IDklICFpbXBvcnRhbnQ7XG59XG5cbi5tYXQtb3B0aW9uIHtcbiAgZm9udC1zaXplOiAxM3B4O1xufVxuXG4uZm9udENsYXNzQm9sZCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLmZvbnRDbGFzc0JvbGQxIHtcbiAgY29sb3I6ICM0ODQ4NDg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbWFyZ2luLXRvcDogNXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsICFpbXBvcnRhbnQ7XG59XG5cbi5lbnFpcnlCdXR0b24ge1xuICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RDtcbiAgbWFyZ2luLXRvcDogMzBweDtcbiAgbWFyZ2luLWxlZnQ6IDMwcHg7XG59XG5cbjo6bmctZGVlcCAubWF0LXRvb2x0aXAge1xuICBmb250LXNpemU6IDE1cHg7XG59XG5cbi5maWx0ZXIzIDo6bmctZGVlcCAubWF0LXNlbGVjdCB7XG4gIHBhZGRpbmctYm90dG9tOiAwcHg7XG4gIHBhZGRpbmctdG9wOiAycHg7XG59XG5cbi5maWx0ZXIzIDo6bmctZGVlcCAubWF0LWJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udDogd2hpdGU7XG59XG5cbi5maWx0ZXIzIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgcGFkZGluZy1ib3R0b206IDBweDtcbiAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMGIwYjBiO1xuICBoZWlnaHQ6IDIxcHg7XG59XG5cbi5maWx0ZXIzIDo6bmctZGVlcCAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XG59XG5cbi5maWx0ZXIzIDo6bmctZGVlcCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uZmlsdGVyMyA6Om5nLWRlZXAgLm1hdC1zZWxlY3QtYXJyb3ctd3JhcHBlciB7XG4gIHBhZGRpbmctYm90dG9tOiAweDtcbn1cblxuLmZpbHRlcjMgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIHtcbiAgdG9wOiAwO1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5maWx0ZXIzIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZmlsdGVyMyA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5maWx0ZXIzIDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0b3A6IDA7XG4gIG1hcmdpbi10b3A6IDZweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgY29sb3I6ICMwYjBiMGI7XG59XG5cbi5maWx0ZXIzIHtcbiAgZm9udC1zaXplOiAxMnB4O1xufSJdfQ== */\"","import { Component, OnInit, Inject, EventEmitter, Output, Input } from '@angular/core';\nimport { MatDialog, MatDialogConfig, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\nimport { FormControl } from '@angular/forms';\nimport { CommonService } from 'src/app/core/service/common-service/common.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { Router, RouterModule } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { map, startWith } from 'rxjs/operators';\n\n@Component({\n\tselector: 'app-workshop-reassignment-dialog',\n\ttemplateUrl: './workshop-reassignment-dialog.component.html',\n\tstyleUrls: ['./workshop-reassignment-dialog.component.scss']\n})\nexport class WorkshopReassignmentDialogComponent implements OnInit {\n\n\tRemarks: string = '';\n\tcustomerName: string = '';\n\tcustomerTelephone: string = '';\n\tnearestWorkshop: string = '';\n\tchassis: string = '';\n\tcustomerCode: string = '';\n\tchassisArray: string[] = [];\n\tselectedChassis: string[] = [];\n\tselectedStatus: any;\n\tassignmentIndicator: any;\n\tenableSearch: boolean = true;\n\tworkshopSearch = new FormControl();\n\tfilteredOptions: Observable;\n\tworkshopSuggestion: string[] = [];\n\tspinner: boolean;\n\tuserId: any;\n\tcustResData: custData;\n\tcountryCode: any;\n\tworkshopCode: String;\n\n\tconstructor(\n\t\tpublic dialog: MatDialog,\n\t\tprivate router: Router,\n\t\tprivate commonService: CommonService,\n\t\tprivate toastr: ToastrService,\n\t\tprivate dialogRef: MatDialogRef,\n\t\t@Inject(MAT_DIALOG_DATA) public data: any\n\t) {\n\t\tthis.customerName = data.customerName;\n\t\tthis.customerTelephone = data.customerTelephone;\n\t\tthis.nearestWorkshop = data.nearestWorkshop;\n\t\tthis.chassis = data.chassis;\n\t\tthis.customerCode = data.customerCode;\n\t}\n\n\tngOnInit() {\n\t\tthis.userId = localStorage.getItem('userId');\n\t\tthis.countryCode = localStorage.getItem(\"countryCode\");\n\t\tthis.getVehicleDetails();\n\t\tthis.filteredOptions = this.workshopSearch.valueChanges.pipe(\n\t\t\tstartWith(''),\n\t\t\tmap(value => this._filter(value))\n\t\t);\n\t\tthis.commonService.LostCustWorkshopDetailsFilter().subscribe(res => {\n\t\t\tif (res['responseCode'] == 0 && res['responseData'] != undefined) {\n\t\t\t\tres['responseData'].forEach(element => {\n\t\t\t\t\tthis.workshopSuggestion.push(element.customerCity);\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\tthis.toastr.error(res['message'], \"Error\");\n\t\t\t}\n\t\t}, err => {\n\t\t\tthis.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n\t\t});\n\t}\n\n\tgetVehicleDetails() {\n\t\tthis.commonService.lcWorkshopReassignmentVehicleDetails(this.customerCode).subscribe(res => {\n\t\t\tif (res['responseCode'] == 0 && res['responseData'] != undefined) {\n\t\t\t\tif (res['responseData'].length != 0) {\n\t\t\t\t\tres['responseData'].forEach(element => {\n\t\t\t\t\t\tif (element.registrationNo != null || element.registrationNo != \"\") {\n\t\t\t\t\t\t\tthis.chassisArray.push(element.registrationNo);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tthis.chassisArray.push(element.chassisNo);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}else{\n\t\t\t\t\tthis.toastr.error(\"No vehicle Found\", \"Error\");\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.toastr.error(res['message'], \"Error\");\n\t\t\t}\n\t\t}, err => {\n\t\t\tthis.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n\t\t});\n\t}\n\n\tonClose() {\n\t\tthis.dialogRef.close();\n\t}\n\n\tprivate _filter(value: string): string[] {\n\t\tif (value.length >= 3) {\n\t\t\tlet filterValue = value.toLowerCase();\n\t\t\treturn this.workshopSuggestion.filter(option =>\n\t\t\t\toption.toLowerCase().includes(filterValue)\n\t\t\t);\n\t\t}\n\t}\n\n\tselectedLeadStatus() {\n\t\tif (this.selectedStatus == \"Workshop Reassign\") {\n\t\t\tthis.enableSearch = false;\n\t\t\tthis.assignmentIndicator = \"reassigned\";\n\t\t}\n\t\telse {\n\t\t\tthis.assignmentIndicator = \"closed\"\n\t\t\tthis.enableSearch = true;\n\t\t\tthis.workshopSearch.patchValue(\"\");\n\t\t}\n\t}\n\n\tonSubmit() {\n\t\tif (this.selectedChassis == null || (this.Remarks == null || this.Remarks == \"\") || this.selectedStatus == null) {\n\t\t\tthis.toastr.error(\"Please fill required fields\");\n\t\t} else if (this.enableSearch == false && (this.workshopSearch.value == null || this.workshopSearch.value == \"\")) {\n\t\t\tthis.toastr.error(\"Please fill required fields\");\n\t\t}\n\t\telse {\n\t\t\tthis.workshopCode = this.workshopSearch.value.toString()\n\t\t\tthis.workshopCode = this.workshopCode.substring(\n\t\t\t\tthis.workshopCode.indexOf(\"->\") + 2,\n\t\t\t\tthis.workshopCode.lastIndexOf(\"->\")\n\t\t\t);\n\t\t\tthis.custResData = new custData(\n\t\t\t\tthis.customerCode,\n\t\t\t\tthis.selectedChassis,\n\t\t\t\tthis.workshopCode,\n\t\t\t\tthis.assignmentIndicator,\n\t\t\t\tthis.Remarks,\n\t\t\t\tthis.userId,\n\t\t\t\tthis.countryCode\n\t\t\t)\n\t\t\tthis.spinner = true;\n\t\t\tthis.commonService.saveWorkshopReassignment(this.custResData).subscribe(res => {\n\t\t\t\tif (res[\"responseCode\"] == 0 && res[\"responseData\"] != undefined) {\n\t\t\t\t\tthis.toastr.info(res['message'], \"Success\");\n\t\t\t\t\tthis.spinner = false;\n\t\t\t\t\tif(res['message'] != null || res['message'] != \"\"){\n\t\t\t\t\t\tthis.dialogRef.close(-1);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.toastr.error(res['message'], \"Error\");\n\t\t\t\t\tthis.spinner = false;\n\t\t\t\t\tthis.onClose();\n\t\t\t\t}\n\t\t\t}, error => {\n\t\t\t\tthis.spinner = false;\n\t\t\t\tthis.toastr.error(\"Something went wrong, Please try again.\", \"Error\");\n\t\t\t\tthis.onClose();\n\t\t\t});\n\t\t}\n\t}\n}\n\nexport function openWorkshopReassignmentDialog(dialog: MatDialog, customerName: any, customerTelephone: any, nearestWorkshop: any, chassis: any, customerCode: any) {\n\tconst config = new MatDialogConfig();\n\tconfig.disableClose = true;\n\tconfig.autoFocus = true;\n\tconfig.width = '848px';\n\tconfig.height = '400px';\n\tconfig.data = {\n\t\tcustomerTelephone: customerTelephone,\n\t\tnearestWorkshop: nearestWorkshop,\n\t\tcustomerName: customerName,\n\t\tchassis: chassis,\n\t\tcustomerCode: customerCode\n\t};\n\tconst dialogRef = dialog.open(WorkshopReassignmentDialogComponent, config);\n\treturn dialogRef.afterClosed();\n}\n\nclass custData {\n\tcustomerCode: string;\n\tvin: string[];\n\tnewWorkshopCode: string;\n\tassignmentIndicator: string;\n\tremark: string;\n\tuserId: string;\n\tcountryCode: string;\n\n\n\tconstructor(\n\t customerCode,\n\t vin,\n\t newWorkshopCode,\n\t assignmentIndicator,\n\t remark,\n\t userId,\n\t countryCode,\n\n\t) {\n\t this.customerCode = customerCode;\n\t this.vin = vin;\n\t this.newWorkshopCode = newWorkshopCode;\n\t this.assignmentIndicator = assignmentIndicator;\n\t this.remark = remark;\n\t this.userId = userId;\n\t this.countryCode = countryCode;\n\n\t}\n}\n","export class CallParams {\n crePhone: string;\n custPhone: string;\n \n constructor(crePhone: string, custPhone: string) {\n this.crePhone = crePhone;\n this.custPhone = custPhone;\n }\n }\n ","export class SaveCallRecordingParams {\n creId: string;\n customerCode: string;\n source: string;\n exotelUri: string;\n \n constructor(creId: string, customerCode: string, source: string, exotelUri: string) {\n this.creId = creId;\n this.customerCode = customerCode;\n this.source = source;\n this.exotelUri = exotelUri;\n }\n }\n ","import { Pipe, PipeTransform } from '@angular/core';\nimport {filter, includes, isUndefined, every, difference} from 'lodash';\n\n@Pipe({\n name: 'filterPipe'\n})\nexport class FilterPipePipe implements PipeTransform {\n\n public filteredData: any;\n\n transform(data: any, filtersSelected: Map): any {\n const self = this;\n this.filteredData = data;\n filtersSelected.forEach((value: string[], key: string) => {\n if (key === 'franchiseAgreements_value') {\n self.filteredData = filter(self.filteredData, (d) => {\n return difference(value, d[key]).length === 0;\n });\n } else {\n self.filteredData = filter(self.filteredData, (d) => {\n return includes(value, d[key]) ? true : false;\n });\n }\n });\n return isUndefined(this.filteredData) === true ? null : this.filteredData;\n }\n\n}\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { MAT_DATE_LOCALE } from '@angular/material';\nimport { MomentDateAdapter } from '@angular/material-moment-adapter';\nimport { Moment } from 'moment';\nimport * as moment from 'moment';\n\n@Injectable()\nexport class MomentUtcDateAdapter extends MomentDateAdapter {\n\n constructor(@Optional() @Inject(MAT_DATE_LOCALE) dateLocale: string) {\n super(dateLocale);\n }\n\n createDate(year: number, month: number, date: number): Moment {\n // Moment.js will create an invalid date if any of the components are out of bounds, but we\n // explicitly check each case so we can throw more descriptive errors.\n if (month < 0 || month > 11) {\n throw Error(`Invalid month index \"${month}\". Month index has to be between 0 and 11.`);\n }\n\n if (date < 1) {\n throw Error(`Invalid date \"${date}\". Date has to be greater than 0.`);\n }\n\n let result = moment.utc({ year, month, date }).locale(this.locale);\n\n // If the result isn't valid, the date must have been out of bounds for this month.\n if (!result.isValid()) {\n throw Error(`Invalid date \"${date}\" for month with index \"${month}\".`);\n }\n\n return result;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml, SafeStyle, SafeScript, SafeUrl, SafeResourceUrl } from '@angular/platform-browser';\n\n@Pipe({\n name: 'safe'\n})\nexport class SafePipe implements PipeTransform {\n\n constructor(protected sanitizer: DomSanitizer) { }\n\n public transform(value: any, type: string): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {\n switch (type) {\n case 'html': return this.sanitizer.bypassSecurityTrustHtml(value);\n case 'style': return this.sanitizer.bypassSecurityTrustStyle(value);\n case 'script': return this.sanitizer.bypassSecurityTrustScript(value);\n case 'url': return this.sanitizer.bypassSecurityTrustUrl(value);\n case 'resourceUrl': return this.sanitizer.bypassSecurityTrustResourceUrl(value);\n default: throw new Error(`Invalid safe type specified: ${type}`);\n }\n }\n}","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'truncate'\n})\nexport class TruncatePipe implements PipeTransform {\n transform(value: string, limit = 25, completeWords = false, ellipsis = '...') {\n if (completeWords) {\n limit = value.substr(0, limit).lastIndexOf(' ');\n }\n\n if (value) {\n return value.length > limit ? value.substr(0, limit) + ellipsis : value;\n } else {\n return '';\n }\n }\n}","export default \".container {\\n height: 100vh;\\n background-color: #00457D !important;\\n}\\n\\n.background {\\n background-color: #00457D;\\n width: 100%;\\n height: 100%;\\n}\\n\\n.login-header2 {\\n background-color: #00457D !important;\\n margin-top: 100px;\\n}\\n\\n.login-header2 span {\\n font: 20px Roboto;\\n letter-spacing: 0px;\\n color: #ffffff;\\n}\\n\\n.login-component {\\n margin-top: 22px;\\n}\\n\\n.login-form {\\n margin-left: 85px;\\n}\\n\\n.form-field {\\n width: 100%;\\n display: block;\\n margin-bottom: 10px;\\n}\\n\\n.form-field label {\\n font: 14px Roboto;\\n}\\n\\n.form-field small {\\n font-size: 10px;\\n}\\n\\n.form-field label,\\n.form-field small {\\n width: 70%;\\n letter-spacing: 0px;\\n color: #ffffff;\\n opacity: 1;\\n}\\n\\n.form-field input {\\n width: 100%;\\n margin-top: 5px;\\n padding: 8px;\\n border: 1px solid #2e3668;\\n border-radius: 4px;\\n}\\n\\n.form-field ::-webkit-input-placeholder {\\n color: #c3c3c3;\\n background-color: #ffffff;\\n font: 14px;\\n padding-left: 5px;\\n opacity: 1;\\n}\\n\\n.form-field ::-moz-placeholder {\\n color: #c3c3c3;\\n background-color: #ffffff;\\n font: 14px;\\n padding-left: 5px;\\n opacity: 1;\\n}\\n\\n.form-field ::-ms-input-placeholder {\\n color: #c3c3c3;\\n background-color: #ffffff;\\n font: 14px;\\n padding-left: 5px;\\n opacity: 1;\\n}\\n\\n.form-field ::placeholder {\\n color: #c3c3c3;\\n background-color: #ffffff;\\n font: 14px;\\n padding-left: 5px;\\n opacity: 1;\\n}\\n\\n.login-action {\\n width: 106%;\\n}\\n\\n.login-action .button-link {\\n font: 12px Roboto;\\n letter-spacing: 0px;\\n color: #ffffff;\\n cursor: pointer;\\n opacity: 1;\\n}\\n\\n.btn {\\n width: 100%;\\n font: Bold 14px Roboto;\\n border: 1px solid #2e3668;\\n position: relative;\\n cursor: pointer;\\n background-color: #ffffff !important;\\n border-radius: 5px;\\n padding: 8px;\\n}\\n\\n.btn p {\\n text-align: center;\\n text-transform: uppercase;\\n color: #00457D;\\n position: relative;\\n z-index: 1;\\n transition: all 0.3s ease;\\n margin: auto;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9zZWN1cml0eS9mb3Jnb3QtcGFzc3dvcmQtZGlhbG9nL2ZvcmdvdC1wYXNzd29yZC1kaWFsb2cuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL3NlY3VyaXR5L2ZvcmdvdC1wYXNzd29yZC1kaWFsb2cvZm9yZ290LXBhc3N3b3JkLWRpYWxvZy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLGFBQUE7RUFDQSxvQ0FBQTtBQ0NKOztBREVBO0VBQ0kseUJBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtBQ0NKOztBREVBO0VBQ0ksb0NBQUE7RUFDQSxpQkFBQTtBQ0NKOztBREFJO0VBQ0ksaUJBQUE7RUFDQSxtQkFBQTtFQUNBLGNBQUE7QUNFUjs7QURFQTtFQUVJLGdCQUFBO0FDQUo7O0FER0E7RUFDSSxpQkFBQTtBQ0FKOztBREdBO0VBQ0ksV0FBQTtFQUNBLGNBQUE7RUFDQSxtQkFBQTtBQ0FKOztBRENJO0VBQ0ksaUJBQUE7QUNDUjs7QURDSTtFQUNJLGVBQUE7QUNDUjs7QURDSTs7RUFFSSxVQUFBO0VBQ0EsbUJBQUE7RUFDQSxjQUFBO0VBQ0EsVUFBQTtBQ0NSOztBRENJO0VBQ0ksV0FBQTtFQUNBLGVBQUE7RUFDQSxZQUFBO0VBQ0EseUJBQUE7RUFDQSxrQkFBQTtBQ0NSOztBRENLO0VBQ0csY0FBQTtFQUNBLHlCQUFBO0VBQ0EsVUFBQTtFQUNBLGlCQUFBO0VBQ0EsVUFBQTtBQ0NSOztBRE5LO0VBQ0csY0FBQTtFQUNBLHlCQUFBO0VBQ0EsVUFBQTtFQUNBLGlCQUFBO0VBQ0EsVUFBQTtBQ0NSOztBRE5LO0VBQ0csY0FBQTtFQUNBLHlCQUFBO0VBQ0EsVUFBQTtFQUNBLGlCQUFBO0VBQ0EsVUFBQTtBQ0NSOztBRE5LO0VBQ0csY0FBQTtFQUNBLHlCQUFBO0VBQ0EsVUFBQTtFQUNBLGlCQUFBO0VBQ0EsVUFBQTtBQ0NSOztBREdBO0VBQ0ksV0FBQTtBQ0FKOztBRENJO0VBQ0ksaUJBQUE7RUFDQSxtQkFBQTtFQUNBLGNBQUE7RUFDQSxlQUFBO0VBQ0EsVUFBQTtBQ0NSOztBREdBO0VBQ0ksV0FBQTtFQUNBLHNCQUFBO0VBQ0EseUJBQUE7RUFDQSxrQkFBQTtFQUNBLGVBQUE7RUFDQSxvQ0FBQTtFQUNBLGtCQUFBO0VBQ0EsWUFBQTtBQ0FKOztBREdBO0VBQ0ksa0JBQUE7RUFDQSx5QkFBQTtFQUNBLGNBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7RUFDQSx5QkFBQTtFQUNBLFlBQUE7QUNBSiIsImZpbGUiOiJzcmMvYXBwL3NlY3VyaXR5L2ZvcmdvdC1wYXNzd29yZC1kaWFsb2cvZm9yZ290LXBhc3N3b3JkLWRpYWxvZy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5jb250YWluZXIge1xuICAgIGhlaWdodDogMTAwdmg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RCAhaW1wb3J0YW50O1xufVxuXG4uYmFja2dyb3VuZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5sb2dpbi1oZWFkZXIyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXRvcDogMTAwcHg7XG4gICAgc3BhbiB7XG4gICAgICAgIGZvbnQ6IDIwcHggUm9ib3RvO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICB9XG59XG5cbi5sb2dpbi1jb21wb25lbnQge1xuICAgIC8vd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXRvcDogMjJweDtcbn1cblxuLmxvZ2luLWZvcm0ge1xuICAgIG1hcmdpbi1sZWZ0OiA4NXB4O1xufVxuXG4uZm9ybS1maWVsZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICBsYWJlbCB7XG4gICAgICAgIGZvbnQ6IDE0cHggUm9ib3RvO1xuICAgIH1cbiAgICBzbWFsbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICB9XG4gICAgbGFiZWwsXG4gICAgc21hbGwge1xuICAgICAgICB3aWR0aDogNzAlO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gICAgaW5wdXQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLXRvcDogNXB4O1xuICAgICAgICBwYWRkaW5nOiA4cHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMyZTM2Njg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICB9XG4gICAgIDo6cGxhY2Vob2xkZXIge1xuICAgICAgICBjb2xvcjogI2MzYzNjMztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgZm9udDogMTRweDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxufVxuXG4ubG9naW4tYWN0aW9uIHtcbiAgICB3aWR0aDogMTA2JTtcbiAgICAuYnV0dG9uLWxpbmsge1xuICAgICAgICBmb250OiAxMnB4IFJvYm90bztcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG59XG5cbi5idG4ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZvbnQ6IEJvbGQgMTRweCBSb2JvdG87XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzJlMzY2ODtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgcGFkZGluZzogOHB4O1xufVxuXG4uYnRuIHAge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAjMDA0NTdEO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gICAgbWFyZ2luOiBhdXRvO1xufSIsIi5jb250YWluZXIge1xuICBoZWlnaHQ6IDEwMHZoO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEICFpbXBvcnRhbnQ7XG59XG5cbi5iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLmxvZ2luLWhlYWRlcjIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi10b3A6IDEwMHB4O1xufVxuLmxvZ2luLWhlYWRlcjIgc3BhbiB7XG4gIGZvbnQ6IDIwcHggUm9ib3RvO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLmxvZ2luLWNvbXBvbmVudCB7XG4gIG1hcmdpbi10b3A6IDIycHg7XG59XG5cbi5sb2dpbi1mb3JtIHtcbiAgbWFyZ2luLWxlZnQ6IDg1cHg7XG59XG5cbi5mb3JtLWZpZWxkIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuLmZvcm0tZmllbGQgbGFiZWwge1xuICBmb250OiAxNHB4IFJvYm90bztcbn1cbi5mb3JtLWZpZWxkIHNtYWxsIHtcbiAgZm9udC1zaXplOiAxMHB4O1xufVxuLmZvcm0tZmllbGQgbGFiZWwsXG4uZm9ybS1maWVsZCBzbWFsbCB7XG4gIHdpZHRoOiA3MCU7XG4gIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBvcGFjaXR5OiAxO1xufVxuLmZvcm0tZmllbGQgaW5wdXQge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLXRvcDogNXB4O1xuICBwYWRkaW5nOiA4cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMyZTM2Njg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5mb3JtLWZpZWxkIDo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogI2MzYzNjMztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgZm9udDogMTRweDtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5sb2dpbi1hY3Rpb24ge1xuICB3aWR0aDogMTA2JTtcbn1cbi5sb2dpbi1hY3Rpb24gLmJ1dHRvbi1saW5rIHtcbiAgZm9udDogMTJweCBSb2JvdG87XG4gIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5idG4ge1xuICB3aWR0aDogMTAwJTtcbiAgZm9udDogQm9sZCAxNHB4IFJvYm90bztcbiAgYm9yZGVyOiAxcHggc29saWQgIzJlMzY2ODtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBwYWRkaW5nOiA4cHg7XG59XG5cbi5idG4gcCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6ICMwMDQ1N0Q7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgbWFyZ2luOiBhdXRvO1xufSJdfQ== */\"","import { Component, OnInit } from '@angular/core';\nimport { CommonService } from '../../core/service/common-service/common.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { FormControl, FormGroup, FormBuilder, Validators } from '@angular/forms';\n\n@Component({\n selector: 'app-forgot-password-dialog',\n templateUrl: './forgot-password-dialog.component.html',\n styleUrls: ['./forgot-password-dialog.component.scss']\n})\nexport class ForgotPasswordDialogComponent implements OnInit {\n\n forgotPasswordForm: FormGroup;\n randomNumber: string;\n numberMatch: boolean;\n\n constructor(private fb: FormBuilder, private commonService: CommonService, private toastr: ToastrService ) { }\n submitted: boolean;\n spinner: boolean;\n showLogin: boolean;\n user: any;\n\n ngOnInit() {\n this.buildForgotPasswordForm();\n this.randomNumber = Math.floor(1000 + Math.random() * 9000).toString();\n }\n\n /**\n * Name: hasError\n * purpose: To check if form has any error\n * @param {any} control - form control\n * @return {boolean} flag to determine if form is valid.\n */\n hasError(control: any): boolean {\n return (\n control &&\n (this.submitted || control.touched || control.dirty) && !control.valid);\n }\n\n /**\n * Name: buildForgotPasswordForm\n * purpose: To create customer data form\n */\n buildForgotPasswordForm() {\n this.forgotPasswordForm = this.fb.group({\n UserId: ['', Validators.required],\n EmailId: ['', Validators.required],\n captchaNumber:['']\n });\n }\n\n /**\n * Name: sendEmail\n * purpose: To Send email to user\n */\n sendEmail(): void {\n let f = this.forgotPasswordForm;\n this.submitted = true;\n if (f.valid) {\n if(this.randomNumber==f.value.captchaNumber){\n this.numberMatch=false\n let username = f.value.UserId;\n let emailId = f.value.EmailId;\n this.spinner = true;\n this.commonService.forgotPassword(username, emailId)\n .subscribe(res => {\n if (res['responseCode'] == 0) {\n this.toastr.info(res['message']);\n } else {\n this.spinner = false;\n this.submitted = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, error => {\n this.spinner = false;\n this.submitted = false;\n this.toastr.error(error, \"Error\");\n });\n }else{\n this.randomNumber = Math.floor(1000 + Math.random() * 9000).toString();\n this.numberMatch=true\n this.submitted = false;\n }\n\n }else{\n this.submitted=false;\n this.forgotPasswordForm.markAllAsTouched();\n }\n }\n\n refreshCaptcha(){\n this.randomNumber = Math.floor(1000 + Math.random() * 9000).toString();\n }\n\n}\n","export default \".container {\\n height: 100vh;\\n background-color: #d9d9d9 !important;\\n padding-left: 50px;\\n padding-top: 35px !important;\\n padding-right: 50px;\\n padding-bottom: 35px;\\n}\\n\\n.login-container {\\n background: url('/eicher/Group_15974.png');\\n background-repeat: no-repeat;\\n background-size: 100% auto;\\n background-position: left;\\n height: 100%;\\n width: 600px;\\n margin-top: 100px;\\n}\\n\\n.login-component {\\n width: 100%;\\n margin-top: 22px;\\n}\\n\\n.login-form {\\n background-color: none;\\n margin-left: 45px;\\n}\\n\\n.login-logo {\\n width: 100%;\\n}\\n\\n.login-logo img {\\n width: 25%;\\n}\\n\\n.p-10 {\\n padding: 10px;\\n}\\n\\n.login-header {\\n width: 100%;\\n margin: 0px 30px;\\n background-color: #d9d9d9;\\n}\\n\\n.login-header span {\\n font: Bold 24px Roboto;\\n letter-spacing: 0px;\\n color: #e64243;\\n}\\n\\n.login-header1 {\\n margin-top: 32px;\\n margin-left: 121px;\\n}\\n\\n.login-header1 span {\\n font: 20px Roboto;\\n letter-spacing: 0px;\\n color: #ffffff;\\n}\\n\\n.login-header2 {\\n background-color: #00457D !important;\\n margin-left: 121px;\\n margin-top: 100px;\\n}\\n\\n.login-header2 span {\\n font: 20px Roboto;\\n letter-spacing: 0px;\\n color: #ffffff;\\n}\\n\\n.login-div {\\n width: 50%;\\n}\\n\\nform {\\n width: 70%;\\n margin: 0 auto;\\n}\\n\\n.form-field {\\n width: 82%;\\n display: block;\\n margin-bottom: 10px;\\n}\\n\\n.form-field label {\\n font: 14px Roboto;\\n}\\n\\n.form-field small {\\n font-size: 10px;\\n}\\n\\n.form-field label,\\n.form-field small {\\n width: 100%;\\n letter-spacing: 0px;\\n color: #ffffff;\\n opacity: 1;\\n}\\n\\n.form-field input {\\n width: 95%;\\n margin-top: 5px;\\n padding: 8px;\\n border: 1px solid #2e3668;\\n border-radius: 4px;\\n}\\n\\n.form-field ::-webkit-input-placeholder {\\n color: #c3c3c3;\\n background-color: #ffffff;\\n font: 14px;\\n padding-left: 5px;\\n opacity: 1;\\n /* Firefox */\\n}\\n\\n.form-field ::-moz-placeholder {\\n color: #c3c3c3;\\n background-color: #ffffff;\\n font: 14px;\\n padding-left: 5px;\\n opacity: 1;\\n /* Firefox */\\n}\\n\\n.form-field ::-ms-input-placeholder {\\n color: #c3c3c3;\\n background-color: #ffffff;\\n font: 14px;\\n padding-left: 5px;\\n opacity: 1;\\n /* Firefox */\\n}\\n\\n.form-field ::placeholder {\\n color: #c3c3c3;\\n background-color: #ffffff;\\n font: 14px;\\n padding-left: 5px;\\n opacity: 1;\\n /* Firefox */\\n}\\n\\n.login-action {\\n width: 100%;\\n margin-top: 5px;\\n margin-bottom: 8px;\\n margin-left: 45px;\\n}\\n\\n.login-action .button-link {\\n font: 12px Roboto;\\n letter-spacing: 0px;\\n color: #ffffff;\\n cursor: pointer;\\n opacity: 1;\\n}\\n\\n.btn {\\n width: 73%;\\n font: Bold 14px Roboto;\\n border: 1px solid #2e3668;\\n position: relative;\\n cursor: pointer;\\n background-color: #ffffff !important;\\n border-radius: 5px;\\n padding: 8px;\\n}\\n\\n.btn p {\\n text-align: center;\\n text-transform: uppercase;\\n color: #00457D;\\n position: relative;\\n z-index: 1;\\n transition: all 0.3s ease;\\n margin: auto;\\n}\\n\\n/* sliders */\\n\\n/* Left Slider */\\n\\n.left-image {\\n height: 100%;\\n width: 100%;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2Uvc3JjL2FwcC9zZWN1cml0eS9sb2dpbi9sb2dpbi5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvc2VjdXJpdHkvbG9naW4vbG9naW4uY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxhQUFBO0VBQ0Esb0NBQUE7RUFDQSxrQkFBQTtFQUNBLDRCQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtBQ0NKOztBREVBO0VBQ0ksMENBQUE7RUFDQSw0QkFBQTtFQUNBLDBCQUFBO0VBQ0EseUJBQUE7RUFDQSxZQUFBO0VBQ0EsWUFBQTtFQUNBLGlCQUFBO0FDQ0o7O0FERUE7RUFDSSxXQUFBO0VBQ0EsZ0JBQUE7QUNDSjs7QURFQTtFQUNJLHNCQUFBO0VBQ0EsaUJBQUE7QUNDSjs7QURFQTtFQUNJLFdBQUE7QUNDSjs7QURBSTtFQUNJLFVBQUE7QUNFUjs7QURFQTtFQUNJLGFBQUE7QUNDSjs7QURFQTtFQUNJLFdBQUE7RUFDQSxnQkFBQTtFQUNBLHlCQUFBO0FDQ0o7O0FEQUk7RUFDSSxzQkFBQTtFQUNBLG1CQUFBO0VBQ0EsY0FBQTtBQ0VSOztBREVBO0VBQ0ksZ0JBQUE7RUFDQSxrQkFBQTtBQ0NKOztBREFJO0VBQ0ksaUJBQUE7RUFDQSxtQkFBQTtFQUNBLGNBQUE7QUNFUjs7QURFQTtFQUNJLG9DQUFBO0VBQ0Esa0JBQUE7RUFDQSxpQkFBQTtBQ0NKOztBREFJO0VBQ0ksaUJBQUE7RUFDQSxtQkFBQTtFQUNBLGNBQUE7QUNFUjs7QURFQTtFQUNJLFVBQUE7QUNDSjs7QURFQTtFQUNJLFVBQUE7RUFDQSxjQUFBO0FDQ0o7O0FERUE7RUFDSSxVQUFBO0VBQ0EsY0FBQTtFQUNBLG1CQUFBO0FDQ0o7O0FEQUk7RUFDSSxpQkFBQTtBQ0VSOztBREFJO0VBQ0ksZUFBQTtBQ0VSOztBREFJOztFQUVJLFdBQUE7RUFDQSxtQkFBQTtFQUNBLGNBQUE7RUFDQSxVQUFBO0FDRVI7O0FEQUk7RUFDSSxVQUFBO0VBQ0EsZUFBQTtFQUNBLFlBQUE7RUFDQSx5QkFBQTtFQUNBLGtCQUFBO0FDRVI7O0FEQUs7RUFDRyxjQUFBO0VBQ0EseUJBQUE7RUFDQSxVQUFBO0VBQ0EsaUJBQUE7RUFDQSxVQUFBO0VBQ0EsWUFBQTtBQ0VSOztBRFJLO0VBQ0csY0FBQTtFQUNBLHlCQUFBO0VBQ0EsVUFBQTtFQUNBLGlCQUFBO0VBQ0EsVUFBQTtFQUNBLFlBQUE7QUNFUjs7QURSSztFQUNHLGNBQUE7RUFDQSx5QkFBQTtFQUNBLFVBQUE7RUFDQSxpQkFBQTtFQUNBLFVBQUE7RUFDQSxZQUFBO0FDRVI7O0FEUks7RUFDRyxjQUFBO0VBQ0EseUJBQUE7RUFDQSxVQUFBO0VBQ0EsaUJBQUE7RUFDQSxVQUFBO0VBQ0EsWUFBQTtBQ0VSOztBREVBO0VBQ0ksV0FBQTtFQUNBLGVBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0FDQ0o7O0FEQUk7RUFDSSxpQkFBQTtFQUNBLG1CQUFBO0VBQ0EsY0FBQTtFQUNBLGVBQUE7RUFFQSxVQUFBO0FDQ1I7O0FESUE7RUFDSSxVQUFBO0VBQ0Esc0JBQUE7RUFDQSx5QkFBQTtFQUVBLGtCQUFBO0VBQ0EsZUFBQTtFQUdBLG9DQUFBO0VBQ0Esa0JBQUE7RUFDQSxZQUFBO0FDSko7O0FET0E7RUFDSSxrQkFBQTtFQUNBLHlCQUFBO0VBQ0EsY0FBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLHlCQUFBO0VBQ0EsWUFBQTtBQ0pKOztBRFFBLFlBQUE7O0FBWUEsZ0JBQUE7O0FBZUE7RUFDSSxZQUFBO0VBQ0EsV0FBQTtBQzlCSiIsImZpbGUiOiJzcmMvYXBwL3NlY3VyaXR5L2xvZ2luL2xvZ2luLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmNvbnRhaW5lciB7XG4gICAgaGVpZ2h0OiAxMDB2aDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDlkOWQ5ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1sZWZ0OiA1MHB4O1xuICAgIHBhZGRpbmctdG9wOiAzNXB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogNTBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMzVweDtcbn1cblxuLmxvZ2luLWNvbnRhaW5lciB7XG4gICAgYmFja2dyb3VuZDogdXJsKC4uLy4uLy4uL2Fzc2V0cy9pbWcvR3JvdXBfMTU5NzQucG5nKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJSBhdXRvO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQ7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiA2MDBweDtcbiAgICBtYXJnaW4tdG9wOiAxMDBweDtcbn1cblxuLmxvZ2luLWNvbXBvbmVudCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXRvcDogMjJweDtcbn1cblxuLmxvZ2luLWZvcm0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG5vbmU7XG4gICAgbWFyZ2luLWxlZnQ6IDQ1cHg7XG59XG5cbi5sb2dpbi1sb2dvIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBpbWcge1xuICAgICAgICB3aWR0aDogMjUlO1xuICAgIH1cbn1cblxuLnAtMTAge1xuICAgIHBhZGRpbmc6IDEwcHg7XG59XG5cbi5sb2dpbi1oZWFkZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMHB4IDMwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Q5ZDlkOTtcbiAgICBzcGFuIHtcbiAgICAgICAgZm9udDogQm9sZCAyNHB4IFJvYm90bztcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgICAgICAgY29sb3I6ICNlNjQyNDM7XG4gICAgfVxufVxuXG4ubG9naW4taGVhZGVyMSB7XG4gICAgbWFyZ2luLXRvcDogMzJweDtcbiAgICBtYXJnaW4tbGVmdDogMTIxcHg7XG4gICAgc3BhbiB7XG4gICAgICAgIGZvbnQ6IDIwcHggUm9ib3RvO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICB9XG59XG5cbi5sb2dpbi1oZWFkZXIyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NTdEICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDEyMXB4O1xuICAgIG1hcmdpbi10b3A6IDEwMHB4O1xuICAgIHNwYW4ge1xuICAgICAgICBmb250OiAyMHB4IFJvYm90bztcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgfVxufVxuXG4ubG9naW4tZGl2IHtcbiAgICB3aWR0aDogNTAlO1xufVxuXG5mb3JtIHtcbiAgICB3aWR0aDogNzAlO1xuICAgIG1hcmdpbjogMCBhdXRvO1xufVxuXG4uZm9ybS1maWVsZCB7XG4gICAgd2lkdGg6IDgyJTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIGxhYmVsIHtcbiAgICAgICAgZm9udDogMTRweCBSb2JvdG87XG4gICAgfVxuICAgIHNtYWxsIHtcbiAgICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgIH1cbiAgICBsYWJlbCxcbiAgICBzbWFsbCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gICAgaW5wdXQge1xuICAgICAgICB3aWR0aDogOTUlO1xuICAgICAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgICAgIHBhZGRpbmc6IDhweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzJlMzY2ODtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIH1cbiAgICAgOjpwbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiAjYzNjM2MzO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgICAgICBmb250OiAxNHB4O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgLyogRmlyZWZveCAqL1xuICAgIH1cbn1cblxuLmxvZ2luLWFjdGlvbiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXRvcDogNXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICBtYXJnaW4tbGVmdDogNDVweDtcbiAgICAuYnV0dG9uLWxpbmsge1xuICAgICAgICBmb250OiAxMnB4IFJvYm90bztcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgLy90ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbn1cblxuLy9zbGlkaW5nIGJ0blxuLmJ0biB7XG4gICAgd2lkdGg6IDczJTtcbiAgICBmb250OiBCb2xkIDE0cHggUm9ib3RvO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICMyZTM2Njg7XG4gICAgLy9ib3JkZXItbGVmdDogNHB4IHNvbGlkICMyZTM2Njg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAvL3RyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gICAgLy9vdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgcGFkZGluZzogOHB4O1xufVxuXG4uYnRuIHAge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAjMDA0NTdEO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gICAgbWFyZ2luOiBhdXRvO1xufVxuXG5cbi8qIHNsaWRlcnMgKi9cblxuLy8gLmJ0bjpiZWZvcmUge1xuLy8gICAgIGNvbnRlbnQ6IFwiXCI7XG4vLyAgICAgd2lkdGg6IDEwMCU7XG4vLyAgICAgaGVpZ2h0OiAxMDAlO1xuLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMyZTM2Njg7XG4vLyAgICAgY29sb3I6ICNmZmY7XG4vLyAgICAgcG9zaXRpb246IGFic29sdXRlO1xuLy8gICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4vLyB9XG5cbi8qIExlZnQgU2xpZGVyICovXG5cbi8vIC5idG4tMjpiZWZvcmUge1xuLy8gICAgIHRvcDogMDtcbi8vICAgICBsZWZ0OiAtMjEwcHg7XG4vLyB9XG4vLyAuYnRuLTI6aG92ZXI6YmVmb3JlIHtcbi8vICAgICBsZWZ0OiAwO1xuLy8gfVxuLy8gLmJ0bi0yOmhvdmVyIHtcbi8vICAgICBjb2xvcjogI2ZmZjtcbi8vICAgICBwIHtcbi8vICAgICAgICAgY29sb3I6ICNmZmY7XG4vLyAgICAgfVxuLy8gfVxuLmxlZnQtaW1hZ2Uge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbn1cbiIsIi5jb250YWluZXIge1xuICBoZWlnaHQ6IDEwMHZoO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDlkOWQ5ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctbGVmdDogNTBweDtcbiAgcGFkZGluZy10b3A6IDM1cHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1yaWdodDogNTBweDtcbiAgcGFkZGluZy1ib3R0b206IDM1cHg7XG59XG5cbi5sb2dpbi1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kOiB1cmwoLi4vLi4vLi4vYXNzZXRzL2ltZy9Hcm91cF8xNTk3NC5wbmcpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IDEwMCUgYXV0bztcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdDtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogNjAwcHg7XG4gIG1hcmdpbi10b3A6IDEwMHB4O1xufVxuXG4ubG9naW4tY29tcG9uZW50IHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi10b3A6IDIycHg7XG59XG5cbi5sb2dpbi1mb3JtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogbm9uZTtcbiAgbWFyZ2luLWxlZnQ6IDQ1cHg7XG59XG5cbi5sb2dpbi1sb2dvIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4ubG9naW4tbG9nbyBpbWcge1xuICB3aWR0aDogMjUlO1xufVxuXG4ucC0xMCB7XG4gIHBhZGRpbmc6IDEwcHg7XG59XG5cbi5sb2dpbi1oZWFkZXIge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwcHggMzBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q5ZDlkOTtcbn1cbi5sb2dpbi1oZWFkZXIgc3BhbiB7XG4gIGZvbnQ6IEJvbGQgMjRweCBSb2JvdG87XG4gIGxldHRlci1zcGFjaW5nOiAwcHg7XG4gIGNvbG9yOiAjZTY0MjQzO1xufVxuXG4ubG9naW4taGVhZGVyMSB7XG4gIG1hcmdpbi10b3A6IDMycHg7XG4gIG1hcmdpbi1sZWZ0OiAxMjFweDtcbn1cbi5sb2dpbi1oZWFkZXIxIHNwYW4ge1xuICBmb250OiAyMHB4IFJvYm90bztcbiAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG5cbi5sb2dpbi1oZWFkZXIyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDU3RCAhaW1wb3J0YW50O1xuICBtYXJnaW4tbGVmdDogMTIxcHg7XG4gIG1hcmdpbi10b3A6IDEwMHB4O1xufVxuLmxvZ2luLWhlYWRlcjIgc3BhbiB7XG4gIGZvbnQ6IDIwcHggUm9ib3RvO1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLmxvZ2luLWRpdiB7XG4gIHdpZHRoOiA1MCU7XG59XG5cbmZvcm0ge1xuICB3aWR0aDogNzAlO1xuICBtYXJnaW46IDAgYXV0bztcbn1cblxuLmZvcm0tZmllbGQge1xuICB3aWR0aDogODIlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbi5mb3JtLWZpZWxkIGxhYmVsIHtcbiAgZm9udDogMTRweCBSb2JvdG87XG59XG4uZm9ybS1maWVsZCBzbWFsbCB7XG4gIGZvbnQtc2l6ZTogMTBweDtcbn1cbi5mb3JtLWZpZWxkIGxhYmVsLFxuLmZvcm0tZmllbGQgc21hbGwge1xuICB3aWR0aDogMTAwJTtcbiAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIG9wYWNpdHk6IDE7XG59XG4uZm9ybS1maWVsZCBpbnB1dCB7XG4gIHdpZHRoOiA5NSU7XG4gIG1hcmdpbi10b3A6IDVweDtcbiAgcGFkZGluZzogOHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjMmUzNjY4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG4uZm9ybS1maWVsZCA6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNjM2MzYzM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGZvbnQ6IDE0cHg7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xuICBvcGFjaXR5OiAxO1xuICAvKiBGaXJlZm94ICovXG59XG5cbi5sb2dpbi1hY3Rpb24ge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLXRvcDogNXB4O1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gIG1hcmdpbi1sZWZ0OiA0NXB4O1xufVxuLmxvZ2luLWFjdGlvbiAuYnV0dG9uLWxpbmsge1xuICBmb250OiAxMnB4IFJvYm90bztcbiAgbGV0dGVyLXNwYWNpbmc6IDBweDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmJ0biB7XG4gIHdpZHRoOiA3MyU7XG4gIGZvbnQ6IEJvbGQgMTRweCBSb2JvdG87XG4gIGJvcmRlcjogMXB4IHNvbGlkICMyZTM2Njg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgcGFkZGluZzogOHB4O1xufVxuXG4uYnRuIHAge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiAjMDA0NTdEO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIG1hcmdpbjogYXV0bztcbn1cblxuLyogc2xpZGVycyAqL1xuLyogTGVmdCBTbGlkZXIgKi9cbi5sZWZ0LWltYWdlIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbn0iXX0= */\"","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { CommonService } from '../../core/service/common-service/common.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ForgotPasswordDialogComponent } from '../forgot-password-dialog/forgot-password-dialog.component';\n\n@Component({\n selector: 'app-login',\n templateUrl: './login.component.html',\n styleUrls: ['./login.component.scss']\n})\nexport class LoginComponent implements OnInit {\n loginForm: FormGroup;\n randomNumber: string;\n numberMatch: boolean;\n\n constructor(private fb: FormBuilder, private commonService: CommonService, private router: Router,\n private toastr: ToastrService,\n private dialog: MatDialog,) { }\n submitted: boolean;\n spinner: boolean;\n showLogin: boolean;\n user: any;\n count: number;\n flag: string;\n userName: string;\n\n ngOnInit() {\n if (localStorage.getItem('userId') != null\n && localStorage.getItem('userId') != undefined\n && localStorage.getItem('userRoles') != null\n && localStorage.getItem('userRoles') != undefined) {\n if (localStorage.getItem('userRoles') == 'CRE') {\n this.router.navigate(['calling']);\n } else if (localStorage.getItem('userRoles') == 'Call Center Agent') {\n this.router.navigate(['prs-calling']);\n } else if (localStorage.getItem('userRoles') == \"Team Leader\" || localStorage.getItem('userRoles') == \"Manager\") {\n this.router.navigate(['prs-reporting']);\n } else {\n this.router.navigate(['dashboard']);\n }\n } else {\n this.showLogin = true;\n //this.getSigninUpdate(this.userName, 'N', '0');\n this.buildLoginForm();\n }\n\n this.randomNumber = Math.floor(1000 + Math.random() * 9000).toString();\n }\n\n /**\n * Name: buildLoginForm\n * purpose: To create customer data form\n */\n buildLoginForm() {\n this.loginForm = this.fb.group({\n UserId: ['', Validators.required],\n password: ['', Validators.required],\n captchaNumber: ['']\n });\n }\n\n /**\n * Name: hasError\n * purpose: To check if customer form has any error\n * @param {any} control - form control\n * @return {boolean} flag to determine if form is valid.\n */\n hasError(control: any): boolean {\n return (\n control &&\n (this.submitted || control.touched || control.dirty) &&\n !control.valid\n );\n }\n\n getSigninCheck(): void {\n let user = this.loginForm.value.UserId\n this.commonService.getSigninCheck(user).subscribe(res => {\n if (res['responseCode'] == 0) {\n let response = res['responseData'][0];\n this.flag = response.flag;\n this.count = response.counts;\n //if(this.flag == 'N') {\n // if(this.count < 5) {\n this.login();\n // } else {\n // this.toastr.info(\"You are exceed the maximum limit of login. Please click on FORGOT PASSWORD? link to get your correct password.\");\n // }\n // } else {\n // this.toastr.info(\"You are already login on different system.\");\n // }\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, error => {\n this.spinner = false;\n this.toastr.error(error, \"Error\");\n });\n }\n\n getSigninUpdate(user: string, flag: string, count: string): void {\n this.commonService.getSigninUpdate(user, flag, count).subscribe(res => {\n if (res['responseCode'] == 0) {\n //console.log(res['responseData'].message);\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, error => {\n this.spinner = false;\n this.toastr.error(error, \"Error\");\n });\n }\n\n /**\n * Name: login\n * purpose: To Sign in user\n */\n login(): void {\n let f = this.loginForm;\n this.submitted = true;\n if (f.valid) {\n if(this.randomNumber==f.value.captchaNumber) {\n this.numberMatch=false\n let username = f.value.UserId;\n let password = f.value.password;\n this.spinner = true;\n //this.getSigninCheck(username);\n //if(this.flag != 'Y') {\n this.commonService.signin(username, password).subscribe(res => {\n if (res['responseCode'] == 0) {\n this.user = res['responseData'];\n localStorage.setItem('userId', this.user.userId);\n localStorage.setItem('token', this.user.accessToken);\n localStorage.setItem('tokenType', this.user.tokenType);\n localStorage.setItem('userRoles', this.user.roles);\n localStorage.setItem('uamAccess', this.user.uamAccess);\n localStorage.setItem(\"LoginTime\", JSON.stringify(new Date().getTime()));\n localStorage.setItem('expirationTime', this.user.expirationTime);\n localStorage.setItem('countryCode', this.user.countryCode);\n localStorage.setItem('roleId', this.user.roleId);\n this.getUserDetails(this.user.userId, this.user.roleId);\n this.userName = this.user.userId;\n //this.login1(this.user.userId);\n //this.getSigninUpdate(username, 'Y', '0');\n } else {\n this.spinner = false;\n this.submitted = false;\n this.toastr.error(res['message'], \"Error\");\n let count = this.count + 1;\n this.getSigninUpdate(username, this.flag, count.toString());\n if(this.count > 5) {\n this.toastr.info(\"You are exceed the maximum limit of login. Please click on FORGOT PASSWORD? link to get your correct password.\");\n }\n }\n }, error => {\n this.spinner = false;\n this.submitted = false;\n this.toastr.error(error, \"Error\");\n });\n // } else {\n // this.toastr.info(\"You are already login in different system.\");\n // }\n } else {\n this.randomNumber = Math.floor(1000 + Math.random() * 9000).toString();\n this.numberMatch=true\n this.submitted = false;\n }\n }else{\n this.submitted=false;\n }\n }\n\n /**\n * Name: getUserDetails\n * @param {string} userId - userId\n * purpose: To get login user details\n */\n getUserDetails(userId: string, roleId: string) {\n this.spinner = true;\n this.commonService.getUserDetails(userId, roleId)\n .subscribe(res => {\n if (res['responseCode'] == 0 && res['responseData'].length) {\n let user = res['responseData'][0];\n localStorage.setItem('userInfo', JSON.stringify(res['responseData']));\n localStorage.setItem('userName', user.username);\n localStorage.setItem('roleId', user.roleId);\n localStorage.setItem('userContactNo',user.contactNo);\n localStorage.setItem('isLoggedIn', 'true');\n if (this.user.roles[0] == 'CRE') {\n this.router.navigate(['calling']);\n } else if (this.user.roles[0] == 'Call Center Agent') {\n this.router.navigate(['prs-calling']);\n } else if (this.user.roles[0] == \"Team Leader\" || this.user.roles[0] == \"Manager\") {\n this.router.navigate(['prs-reporting']);\n } else if(this.user.roles[0] == \"Workshop Manager\") {\n this.router.navigate(['soft-calling']);\n } else {\n this.router.navigate(['dashboard']);\n }\n this.toastr.info(user.username, \"Welcome\");\n this.spinner = false;\n } else {\n this.spinner = false;\n this.toastr.error(res['message'], \"Error\");\n }\n }, error => {\n this.spinner = false;\n this.toastr.error(error, \"Error\");\n });\n }\n\n /**\n * Name: enterSignin\n * purpose: To Sign in user with enter key\n */\n enterSignin(event: any) {\n if (event.keyCode === 13) {\n this.login();\n }\n }\n\n /**\n * Name: forgotPassword\n * purpose: To Sign in user with enter key\n */\n forgotPassword() {\n const dialogRef = this.dialog.open(ForgotPasswordDialogComponent, {\n width: '550px',\n height: '450px',\n data: {}\n });\n }\n\n refreshCaptcha(){\n this.randomNumber = Math.floor(1000 + Math.random() * 9000).toString();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { CdkStepperModule } from '@angular/cdk/stepper';\nimport { CdkTableModule } from '@angular/cdk/table';\nimport { CdkTreeModule } from '@angular/cdk/tree';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatBadgeModule } from '@angular/material/badge';\nimport { MatBottomSheetModule } from '@angular/material/bottom-sheet';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatStepperModule } from '@angular/material/stepper';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatGridListModule } from '@angular/material/grid-list';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatListModule } from '@angular/material/list';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatNativeDateModule, MatRippleModule } from '@angular/material/core';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatSliderModule } from '@angular/material/slider';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatTreeModule } from '@angular/material/tree';\n\n@NgModule({\n exports: [\n A11yModule,\n CdkStepperModule,\n CdkTableModule,\n CdkTreeModule,\n DragDropModule,\n MatAutocompleteModule,\n MatBadgeModule,\n MatBottomSheetModule,\n MatButtonModule,\n MatButtonToggleModule,\n MatCardModule,\n MatCheckboxModule,\n MatChipsModule,\n MatStepperModule,\n MatDatepickerModule,\n MatDialogModule,\n MatDividerModule,\n MatExpansionModule,\n MatGridListModule,\n MatIconModule,\n MatInputModule,\n MatListModule,\n MatMenuModule,\n MatNativeDateModule,\n MatPaginatorModule,\n MatProgressBarModule,\n MatProgressSpinnerModule,\n MatRadioModule,\n MatRippleModule,\n MatSelectModule,\n MatSidenavModule,\n MatSliderModule,\n MatSlideToggleModule,\n MatSnackBarModule,\n MatSortModule,\n MatTableModule,\n MatTabsModule,\n MatToolbarModule,\n MatTooltipModule,\n MatTreeModule,\n PortalModule,\n ScrollingModule,\n ]\n})\nexport class MaterialModule { }\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 baseUrl: '/'\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 'hammerjs';\nimport { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n"],"sourceRoot":"webpack:///"}