tango-app-ui-manage-settings 3.0.51-dev → 3.0.53-dev
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/brand-details/brand-details.component.mjs +3 -3
- package/esm2022/lib/components/configurations/employee-training/employee-training.component.mjs +5 -3
- package/esm2022/lib/components/configurations/report-configuration/report-configuration.component.mjs +103 -42
- package/esm2022/lib/services/client-api.service.mjs +6 -2
- package/fesm2022/tango-app-ui-manage-settings.mjs +113 -46
- package/fesm2022/tango-app-ui-manage-settings.mjs.map +1 -1
- package/lib/components/configurations/report-configuration/report-configuration.component.d.ts +12 -5
- package/lib/services/client-api.service.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tango-app-ui-manage-settings.mjs","sources":["../../../projects/tango-manage-settings/src/lib/services/client-api.service.ts","../../../projects/tango-manage-settings/src/lib/components/tango-manage-settings/tango-manage-settings.component.ts","../../../projects/tango-manage-settings/src/lib/components/tango-manage-settings/tango-manage-settings.component.html","../../../projects/tango-manage-settings/src/lib/components/reactive-select/reactive-select.component.ts","../../../projects/tango-manage-settings/src/lib/components/reactive-select/reactive-select.component.html","../../../projects/tango-manage-settings/src/lib/components/brand-details/brand-info/brand-info.component.ts","../../../projects/tango-manage-settings/src/lib/components/brand-details/brand-info/brand-info.component.html","../../../projects/tango-manage-settings/src/lib/components/brand-details/billing-details/billing-details.component.ts","../../../projects/tango-manage-settings/src/lib/components/brand-details/billing-details/billing-details.component.html","../../../projects/tango-manage-settings/src/lib/components/brand-details/signatory-details/signatory-details.component.ts","../../../projects/tango-manage-settings/src/lib/components/brand-details/signatory-details/signatory-details.component.html","../../../projects/tango-manage-settings/src/lib/components/brand-details/brand-details.component.ts","../../../projects/tango-manage-settings/src/lib/components/brand-details/brand-details.component.html","../../../projects/tango-manage-settings/src/lib/services/payment-subscription.service.ts","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/update/update.component.ts","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/update/update.component.html","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/need-help/need-help.component.ts","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/need-help/need-help.component.html","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/trail-expired/trail-expired.component.ts","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/trail-expired/trail-expired.component.html","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/successfull-subscription/successfull-subscription.component.ts","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/successfull-subscription/successfull-subscription.component.html","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/subscription-approval/subscription-approval.component.ts","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/subscription-approval/subscription-approval.component.html","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/model-content/model-content.component.ts","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/model-content/model-content.component.html","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/upgrade-plan/upgrade-plan.component.ts","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/upgrade-plan/upgrade-plan.component.html","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/credit-note/credit-note.component.ts","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/credit-note/credit-note.component.html","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/pricing-revised/pricing-revised.component.ts","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/pricing-revised/pricing-revised.component.html","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/add-stepprice/add-stepprice.component.ts","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/add-stepprice/add-stepprice.component.html","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/skip-trail/skip-trail.component.ts","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/skip-trail/skip-trail.component.html","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/trail-settings/trail-settings.component.ts","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/trail-settings/trail-settings.component.html","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/unsubscribe-request/unsubscribe-request.component.ts","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/unsubscribe-request/unsubscribe-request.component.html","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/product-confirmation/product-confirmation.component.ts","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/product-confirmation/product-confirmation.component.html","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/multidropdown/multidropdown.component.ts","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/multidropdown/multidropdown.component.html","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/payments-subscription.component.ts","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/payments-subscription.component.html","../../../projects/tango-manage-settings/src/lib/directives/dnd.directive.ts","../../../projects/tango-manage-settings/src/lib/components/configurations/audit-configuration/audit-configuration.component.ts","../../../projects/tango-manage-settings/src/lib/components/configurations/audit-configuration/audit-configuration.component.html","../../../projects/tango-manage-settings/src/lib/components/configurations/ticket-configuration/ticket-configuration.component.ts","../../../projects/tango-manage-settings/src/lib/components/configurations/ticket-configuration/ticket-configuration.component.html","../../../projects/tango-manage-settings/src/lib/components/configurations/report-configuration/add-report/add-report.component.ts","../../../projects/tango-manage-settings/src/lib/components/configurations/report-configuration/add-report/add-report.component.html","../../../projects/tango-manage-settings/src/lib/components/configurations/report-configuration/report-configuration.component.ts","../../../projects/tango-manage-settings/src/lib/components/configurations/report-configuration/report-configuration.component.html","../../../projects/tango-manage-settings/src/lib/components/configurations/user-configuration/user-configuration.component.ts","../../../projects/tango-manage-settings/src/lib/components/configurations/user-configuration/user-configuration.component.html","../../../projects/tango-manage-settings/src/lib/components/configurations/domain-details/domain-details.component.ts","../../../projects/tango-manage-settings/src/lib/components/configurations/domain-details/domain-details.component.html","../../../projects/tango-manage-settings/src/lib/components/configurations/feature-configuration/feature-configuration.component.ts","../../../projects/tango-manage-settings/src/lib/components/configurations/feature-configuration/feature-configuration.component.html","../../../projects/tango-manage-settings/src/lib/components/configurations/email-configuration/email-configuration.component.ts","../../../projects/tango-manage-settings/src/lib/components/configurations/email-configuration/email-configuration.component.html","../../../projects/tango-manage-settings/src/lib/components/configurations/employee-training/employee-training.component.ts","../../../projects/tango-manage-settings/src/lib/components/configurations/employee-training/employee-training.component.html","../../../projects/tango-manage-settings/src/lib/components/configurations/configurations.component.ts","../../../projects/tango-manage-settings/src/lib/components/configurations/configurations.component.html","../../../projects/tango-manage-settings/src/lib/components/documents/documents.component.ts","../../../projects/tango-manage-settings/src/lib/components/documents/documents.component.html","../../../projects/tango-manage-settings/src/lib/components/contact-directory/edit-spoc/edit-spoc.component.ts","../../../projects/tango-manage-settings/src/lib/components/contact-directory/edit-spoc/edit-spoc.component.html","../../../projects/tango-manage-settings/src/lib/components/contact-directory/detele-spoc/detele-spoc.component.ts","../../../projects/tango-manage-settings/src/lib/components/contact-directory/detele-spoc/detele-spoc.component.html","../../../projects/tango-manage-settings/src/lib/components/contact-directory/contact-directory.component.ts","../../../projects/tango-manage-settings/src/lib/components/contact-directory/contact-directory.component.html","../../../projects/tango-manage-settings/src/lib/components/activity-logs/activity-logs.component.ts","../../../projects/tango-manage-settings/src/lib/components/activity-logs/activity-logs.component.html","../../../projects/tango-manage-settings/src/lib/guards/brand-detail.guard.ts","../../../projects/tango-manage-settings/src/lib/guards/configuration.guard.ts","../../../projects/tango-manage-settings/src/lib/guards/contact-directory.guard.ts","../../../projects/tango-manage-settings/src/lib/guards/payment-subscriptions.guard.ts","../../../projects/tango-manage-settings/src/lib/guards/documents.guard.ts","../../../projects/tango-manage-settings/src/lib/guards/activity-log.guard.ts","../../../projects/tango-manage-settings/src/lib/tango-manage-settings-routing.module.ts","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/suspended/suspended.component.ts","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/suspended/suspended.component.html","../../../projects/tango-manage-settings/src/lib/tango-manage-settings.module.ts","../../../projects/tango-manage-settings/src/public-api.ts","../../../projects/tango-manage-settings/src/tango-app-ui-manage-settings.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport * as FileSaver from 'file-saver';\r\nimport * as XLSX from 'xlsx';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\nconst EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\r\nconst EXCEL_EXTENSION = '.xlsx';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ClientApiService {\r\n\r\n clientApiUrl:string\r\n middlewareApiUrl:string;\r\n storeApiUrl: string;\r\n reportApiUrl: string;\r\n userApiUrl: string;\r\n ticketsApiUrl:string;\r\n matAppApiUrl:string;\r\n\r\n\r\n\r\n clientId = new BehaviorSubject<string>('')\r\n clientData = new BehaviorSubject<any>(null)\r\n clientFormData = new BehaviorSubject<any>({value:null, type:null, form:null})\r\n dropDownTrigger = new BehaviorSubject<any>(null)\r\n\r\n\r\n\r\n constructor(private http:HttpClient, private gs:GlobalStateService) {\r\n this.gs.environment.subscribe((e:any)=>{if(e){\r\n this.clientApiUrl = e.clientApiUrl;\r\n this.middlewareApiUrl = e.middlewareApiUrl;\r\n this.storeApiUrl = e.storeApiUrl;\r\n this.reportApiUrl = e.reportApiUrl;\r\n this.userApiUrl = e.userApiUrl;\r\n this.ticketsApiUrl = e.ticketsApiUrl;\r\n this.matAppApiUrl = e.matAppApiUrl;\r\n }})\r\n this.gs.dataRangeValue.subscribe((e:any)=>{ \r\n if(e){\r\n this.clientId.next(e.client)\r\n } else if(!e){\r\n const userData: any = JSON.parse(localStorage.getItem(\"user-info\") || \"{}\");\r\n this.clientId.next(userData?.clientId)\r\n }\r\n })\r\n }\r\n\r\n getBrandDetails(id:string):Observable<any>{\r\n return this.http.get(`${this.clientApiUrl}/client-details/${id}`)\r\n }\r\n\r\n getCountryCodes():Observable<any>{\r\n return this.http.get(`${this.middlewareApiUrl}/country-code`,)\r\n }\r\n\r\n updateBrandInfo(id:string, fromdata:any):Observable<any>{ \r\n return this.http.put(`${this.clientApiUrl}/brand-info/${id}`, fromdata )\r\n }\r\n\r\n updateBillingDetails(id:string, fromdata:any):Observable<any>{ \r\n return this.http.put(`${this.clientApiUrl}/billing-details/${id}`, fromdata )\r\n }\r\n\r\n updateSignatoryDetails(id:string, fromdata:any):Observable<any>{ \r\n return this.http.put(`${this.clientApiUrl}/signatory-details/${id}`, fromdata )\r\n }\r\n\r\n updateTicketConfiguration(id:string, fromdata:any):Observable<any>{ \r\n return this.http.put(`${this.clientApiUrl}/ticket-configuration/${id}`, fromdata )\r\n }\r\n\r\n updateFeatureConfiguration(id:string, fromdata:any):Observable<any>{ \r\n return this.http.put(`${this.clientApiUrl}/feature-configuration/${id}`, fromdata )\r\n }\r\n\r\n updateDomainDetailConfiguration(id:string, fromdata:any):Observable<any>{ \r\n return this.http.put(`${this.clientApiUrl}/domain-details/${id}`, fromdata )\r\n }\r\n updateUserConfiguration(id:string, fromdata:any):Observable<any>{ \r\n return this.http.put(`${this.clientApiUrl}/user-configuration/${id}`, fromdata )\r\n }\r\n updateDocuments(id:string, fromdata:any):Observable<any>{ \r\n return this.http.put(`${this.clientApiUrl}/documents/${id}`, fromdata )\r\n }\r\n getStoreList(id:string):Observable<any>{\r\n return this.http.get(`${this.storeApiUrl}/get-stores?clientId=${id}`)\r\n }\r\n\r\n updateauditConfiguration(fromdata:any, id:string):Observable<any>{ \r\n return this.http.post(`${this.clientApiUrl}/audit-configuration/${id}`, fromdata )\r\n }\r\n\r\n getAuditConfig(id:string):Observable<any>{\r\n return this.http.get(`${this.clientApiUrl}/audit-configuration/${id}`)\r\n }\r\n\r\n addReport(id:string, data:any):Observable<any>{\r\n return this.http.post(`${this.reportApiUrl}/create-report/${id}`, data)\r\n }\r\n\r\n getClientReports(id:string):Observable<any>{\r\n return this.http.get(`${this.reportApiUrl}/get-client-reports/${id}`)\r\n }\r\n\r\n getSingleReport(id:string):Observable<any>{\r\n return this.http.get(`${this.reportApiUrl}/get-report/${id}`)\r\n }\r\n\r\n updateReport(id:string, data:any):Observable<any>{\r\n return this.http.put(`${this.reportApiUrl}/update-report/${id}`, data)\r\n }\r\n\r\n getCsmUsers():Observable<any>{ \r\n return this.http.get(`${this.clientApiUrl}/get-csm-users` )\r\n }\r\n\r\n getOpsUsers():Observable<any>{ \r\n return this.http.get(`${this.clientApiUrl}/get-ops-users` )\r\n }\r\n\r\n getAllCountries():Observable<any>{ \r\n return this.http.get(`${this.middlewareApiUrl}/get-countries` )\r\n }\r\n\r\n getAllStates(country:string):Observable<any>{ \r\n return this.http.get(`${this.middlewareApiUrl}/get-country-states?country=${country}` )\r\n }\r\n\r\n getAllCities(country:string, state:string):Observable<any>{ \r\n return this.http.get(`${this.middlewareApiUrl}/get-state-cities?country=${country}&state=${state}` )\r\n }\r\n\r\n spocTableData( data:any):Observable<any>{\r\n return this.http.post(`${this.storeApiUrl}/get-spoc-list`, data)\r\n }\r\n\r\n spocTableDataExport( data:any):Observable<any>{\r\n return this.http.post(`${this.storeApiUrl}/get-spoc-list`, data, {responseType: 'arraybuffer'})\r\n }\r\n\r\n getSpocDetails(storeId:string, spocId:string):Observable<any>{\r\n return this.http.post(`${this.storeApiUrl}/get-spoc/${storeId}`, {spocId:spocId})\r\n }\r\n\r\n deleteSpocDetails(storeId:string, spocId:string):Observable<any>{\r\n return this.http.post(`${this.storeApiUrl}/delete-spoc/${storeId}`, {spocId:spocId})\r\n }\r\n\r\n updateSpocDetails(storeId:string, data:any):Observable<any>{\r\n return this.http.post(`${this.storeApiUrl}/update-spoc/${storeId}`, data)\r\n }\r\n\r\n getActivityLogs(data:any):Observable<any>{\r\n return this.http.post(`${this.clientApiUrl}/activity-log`, data)\r\n }\r\n\r\n assignCsm(data:any):Observable<any>{ \r\n return this.http.post(`${this.userApiUrl}/assign-client`, data )\r\n }\r\n\r\n getAssignedUsers(clientId:string):Observable<any>{ \r\n return this.http.get(`${this.userApiUrl}/get-assign-client?clientId=${clientId}` )\r\n }\r\n \r\n emailUserList(data:any):Observable<any>{ \r\n return this.http.post(`${this.ticketsApiUrl}/infra/emailUserList`,data)\r\n }\r\n\r\n saveInfraEmailConfig(data:any):Observable<any>{ \r\n return this.http.post(`${this.ticketsApiUrl}/infra/saveInfraEmailConfig`,data)\r\n }\r\n\r\n updateTicketConfig(id:string, fromdata:any):Observable<any>{ \r\n return this.http.put(`${this.matAppApiUrl}/updateTicketConfig/?clientId=${id}`, fromdata )\r\n }\r\n getTicketConfig(id:string):Observable<any>{ \r\n return this.http.get(`${this.matAppApiUrl}/getTicketConfig/?clientId=${id}`)\r\n }\r\n saveAsTemplate(buffer: any, fileName: string): void {\r\n const data: Blob = new Blob([buffer], {\r\n type: EXCEL_TYPE\r\n });\r\n FileSaver.saveAs(data, fileName + EXCEL_EXTENSION);\r\n }\r\n \r\n}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { GlobalStateService, PageInfoService } from 'tango-app-ui-global';\r\nimport { ClientApiService } from '../../services/client-api.service';\r\nimport { BehaviorSubject, Subject, takeUntil } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'lib-tango-manage-settings',\r\n templateUrl: './tango-manage-settings.component.html',\r\n styleUrl: './tango-manage-settings.component.scss'\r\n})\r\nexport class TangoManageSettingsComponent implements OnInit, OnDestroy {\r\n clientData: any;\r\n private readonly destroy$ = new Subject();\r\n pageState$ = new BehaviorSubject<'loaded' | 'loading'>('loading');\r\n \r\n\r\n constructor(private pageInfo: PageInfoService, private clientApi: ClientApiService, public gs:GlobalStateService) {\r\n this.getClientData()\r\n this.clientApi.clientFormData.pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if (e.type === 'submitted') {\r\n this.getClientData()\r\n }\r\n })\r\n }\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n this.pageState$.complete();\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.setPageData()\r\n }\r\n\r\n setPageData() {\r\n this.pageInfo.setTitle('Settings')\r\n this.pageInfo.setDescription('Edit and configure your brand account details')\r\n this.pageInfo.setBreadcrumbs([\r\n { title: 'Manage', path: '/manage', isActive: false, isSeparator: false },\r\n { title: 'Manage', path: '/manage', isActive: false, isSeparator: true },\r\n ])\r\n }\r\n\r\n\r\n getClientData() {\r\n this.clientApi.clientId.pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if (e) {\r\n this.pageState$.next('loading')\r\n this.clientApi.getBrandDetails(e).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (res) => {\r\n this.clientApi.clientData.next(res.data)\r\n this.pageState$.next('loaded')\r\n },\r\n error: (error) => {\r\n console.log(error);\r\n }\r\n })\r\n }\r\n })\r\n\r\n }\r\n\r\n\r\n\r\n}\r\n","<div class=\"row mb-5\">\r\n <div class=\"col-md-3\">\r\n <div class=\"card \">\r\n <div class=\"m-0 w-100\">\r\n <div *ngIf=\"(gs.userAccess | async)?.settings_brandDetails_isView\" class=\"mb-3\"><a routerLink=\"/manage/settings/brand-detail\" routerLinkActive=\"active\"\r\n [routerLinkActiveOptions]=\"{exact: true}\"\r\n #BR=\"routerLinkActive\" class=\"custom-list d-flex align-items-center px-5 py-4\"\r\n [ngClass]=\"BR.isActive ? 'btn text-tab' : ''\">\r\n <div class=\"me-4\"><span><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g clip-path=\"url(#clip0_1842_19728)\">\r\n <path [ngClass]=\" BR.isActive ? 'fillpath' : ''\"\r\n d=\"M2.625 24C1.92881 24 1.26113 23.7234 0.768845 23.2312C0.276562 22.7389 0 22.0712 0 21.375L0 2.625C0 1.176 1.176 0 2.625 0H15.375C16.824 0 18 1.176 18 2.625V21.375C18 21.5025 17.991 21.627 17.973 21.75H21.375C21.4745 21.75 21.5698 21.7105 21.6402 21.6402C21.7105 21.5698 21.75 21.4745 21.75 21.375V12.4275C21.75 12.3658 21.7349 12.3051 21.7058 12.2506C21.6768 12.1962 21.6348 12.1498 21.5835 12.1155L20.001 11.061C19.8781 10.9791 19.7725 10.8737 19.6903 10.751C19.6081 10.6282 19.5509 10.4905 19.5219 10.3456C19.4929 10.2008 19.4928 10.0516 19.5215 9.90669C19.5501 9.76177 19.6071 9.62392 19.689 9.501C19.7709 9.37808 19.8763 9.27251 19.999 9.19031C20.1218 9.10811 20.2595 9.05089 20.4044 9.02191C20.5492 8.99294 20.6984 8.99279 20.8433 9.02145C20.9882 9.05012 21.1261 9.10706 21.249 9.189L22.8315 10.2435C23.562 10.731 24 11.55 24 12.4275V21.375C24 22.0712 23.7234 22.7389 23.2312 23.2312C22.7389 23.7234 22.0712 24 21.375 24H16.125C16.0252 23.9999 15.9259 23.9868 15.8295 23.961C15.681 23.9865 15.5295 24 15.375 24H10.875C10.5766 24 10.2905 23.8815 10.0795 23.6705C9.86853 23.4595 9.75 23.1734 9.75 22.875V21H8.25V22.875C8.25 23.1734 8.13147 23.4595 7.9205 23.6705C7.70952 23.8815 7.42337 24 7.125 24H2.625ZM2.25 21.375C2.25 21.582 2.418 21.75 2.625 21.75H6V19.875C6 19.5766 6.11853 19.2905 6.3295 19.0795C6.54048 18.8685 6.82663 18.75 7.125 18.75H10.875C11.1734 18.75 11.4595 18.8685 11.6705 19.0795C11.8815 19.2905 12 19.5766 12 19.875V21.75H15.375C15.4745 21.75 15.5698 21.7105 15.6402 21.6402C15.7105 21.5698 15.75 21.4745 15.75 21.375V2.625C15.75 2.52554 15.7105 2.43016 15.6402 2.35984C15.5698 2.28951 15.4745 2.25 15.375 2.25H2.625C2.52554 2.25 2.43016 2.28951 2.35984 2.35984C2.28951 2.43016 2.25 2.52554 2.25 2.625V21.375ZM5.625 9H6.375C6.67337 9 6.95952 9.11853 7.1705 9.3295C7.38147 9.54048 7.5 9.82663 7.5 10.125C7.5 10.4234 7.38147 10.7095 7.1705 10.9205C6.95952 11.1315 6.67337 11.25 6.375 11.25H5.625C5.32663 11.25 5.04048 11.1315 4.8295 10.9205C4.61853 10.7095 4.5 10.4234 4.5 10.125C4.5 9.82663 4.61853 9.54048 4.8295 9.3295C5.04048 9.11853 5.32663 9 5.625 9ZM4.5 5.625C4.5 5.32663 4.61853 5.04048 4.8295 4.8295C5.04048 4.61853 5.32663 4.5 5.625 4.5H6.375C6.67337 4.5 6.95952 4.61853 7.1705 4.8295C7.38147 5.04048 7.5 5.32663 7.5 5.625C7.5 5.92337 7.38147 6.20952 7.1705 6.4205C6.95952 6.63147 6.67337 6.75 6.375 6.75H5.625C5.32663 6.75 5.04048 6.63147 4.8295 6.4205C4.61853 6.20952 4.5 5.92337 4.5 5.625ZM10.5 10.125C10.5 9.82663 10.6185 9.54048 10.8295 9.3295C11.0405 9.11853 11.3266 9 11.625 9H12.375C12.6734 9 12.9595 9.11853 13.1705 9.3295C13.3815 9.54048 13.5 9.82663 13.5 10.125C13.5 10.4234 13.3815 10.7095 13.1705 10.9205C12.9595 11.1315 12.6734 11.25 12.375 11.25H11.625C11.3266 11.25 11.0405 11.1315 10.8295 10.9205C10.6185 10.7095 10.5 10.4234 10.5 10.125ZM11.625 4.5H12.375C12.6734 4.5 12.9595 4.61853 13.1705 4.8295C13.3815 5.04048 13.5 5.32663 13.5 5.625C13.5 5.92337 13.3815 6.20952 13.1705 6.4205C12.9595 6.63147 12.6734 6.75 12.375 6.75H11.625C11.3266 6.75 11.0405 6.63147 10.8295 6.4205C10.6185 6.20952 10.5 5.92337 10.5 5.625C10.5 5.32663 10.6185 5.04048 10.8295 4.8295C11.0405 4.61853 11.3266 4.5 11.625 4.5ZM4.5 14.625C4.5 14.3266 4.61853 14.0405 4.8295 13.8295C5.04048 13.6185 5.32663 13.5 5.625 13.5H6.375C6.67337 13.5 6.95952 13.6185 7.1705 13.8295C7.38147 14.0405 7.5 14.3266 7.5 14.625C7.5 14.9234 7.38147 15.2095 7.1705 15.4205C6.95952 15.6315 6.67337 15.75 6.375 15.75H5.625C5.32663 15.75 5.04048 15.6315 4.8295 15.4205C4.61853 15.2095 4.5 14.9234 4.5 14.625ZM11.625 13.5H12.375C12.6734 13.5 12.9595 13.6185 13.1705 13.8295C13.3815 14.0405 13.5 14.3266 13.5 14.625C13.5 14.9234 13.3815 15.2095 13.1705 15.4205C12.9595 15.6315 12.6734 15.75 12.375 15.75H11.625C11.3266 15.75 11.0405 15.6315 10.8295 15.4205C10.6185 15.2095 10.5 14.9234 10.5 14.625C10.5 14.3266 10.6185 14.0405 10.8295 13.8295C11.0405 13.6185 11.3266 13.5 11.625 13.5Z\"\r\n fill=\"#667085\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1842_19728\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"d-flex flex-column\">\r\n <div [ngClass]=\" BR.isActive ? ' text-tab' : ''\" class=\"sideheading mb-1\">Brand Details\r\n </div>\r\n </div>\r\n </a></div>\r\n <div *ngIf=\"(gs.userAccess | async)?.settings_configuration_isView \" class=\"mb-3\"><a routerLink=\"/manage/settings/configuration\" routerLinkActive=\"active\"\r\n #CON=\"routerLinkActive\" class=\"custom-list d-flex align-items-center px-5 py-4\"\r\n [ngClass]=\"CON.isActive ? 'btn text-tab' : ''\">\r\n <div class=\"me-4\"><span>\r\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g clip-path=\"url(#clip0_1842_19733)\">\r\n <path [ngClass]=\" CON.isActive ? 'fillstroke' : ''\"\r\n d=\"M12 15C13.6569 15 15 13.6569 15 12C15 10.3431 13.6569 9 12 9C10.3431 9 9 10.3431 9 12C9 13.6569 10.3431 15 12 15Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path [ngClass]=\" CON.isActive ? 'fillstroke' : ''\"\r\n d=\"M19.4 15C19.2669 15.3016 19.2272 15.6362 19.286 15.9606C19.3448 16.285 19.4995 16.5843 19.73 16.82L19.79 16.88C19.976 17.0657 20.1235 17.2863 20.2241 17.5291C20.3248 17.7719 20.3766 18.0322 20.3766 18.295C20.3766 18.5578 20.3248 18.8181 20.2241 19.0609C20.1235 19.3037 19.976 19.5243 19.79 19.71C19.6043 19.896 19.3837 20.0435 19.1409 20.1441C18.8981 20.2448 18.6378 20.2966 18.375 20.2966C18.1122 20.2966 17.8519 20.2448 17.6091 20.1441C17.3663 20.0435 17.1457 19.896 16.96 19.71L16.9 19.65C16.6643 19.4195 16.365 19.2648 16.0406 19.206C15.7162 19.1472 15.3816 19.1869 15.08 19.32C14.7842 19.4468 14.532 19.6572 14.3543 19.9255C14.1766 20.1938 14.0813 20.5082 14.08 20.83V21C14.08 21.5304 13.8693 22.0391 13.4942 22.4142C13.1191 22.7893 12.6104 23 12.08 23C11.5496 23 11.0409 22.7893 10.6658 22.4142C10.2907 22.0391 10.08 21.5304 10.08 21V20.91C10.0723 20.579 9.96512 20.258 9.77251 19.9887C9.5799 19.7194 9.31074 19.5143 9 19.4C8.69838 19.2669 8.36381 19.2272 8.03941 19.286C7.71502 19.3448 7.41568 19.4995 7.18 19.73L7.12 19.79C6.93425 19.976 6.71368 20.1235 6.47088 20.2241C6.22808 20.3248 5.96783 20.3766 5.705 20.3766C5.44217 20.3766 5.18192 20.3248 4.93912 20.2241C4.69632 20.1235 4.47575 19.976 4.29 19.79C4.10405 19.6043 3.95653 19.3837 3.85588 19.1409C3.75523 18.8981 3.70343 18.6378 3.70343 18.375C3.70343 18.1122 3.75523 17.8519 3.85588 17.6091C3.95653 17.3663 4.10405 17.1457 4.29 16.96L4.35 16.9C4.58054 16.6643 4.73519 16.365 4.794 16.0406C4.85282 15.7162 4.81312 15.3816 4.68 15.08C4.55324 14.7842 4.34276 14.532 4.07447 14.3543C3.80618 14.1766 3.49179 14.0813 3.17 14.08H3C2.46957 14.08 1.96086 13.8693 1.58579 13.4942C1.21071 13.1191 1 12.6104 1 12.08C1 11.5496 1.21071 11.0409 1.58579 10.6658C1.96086 10.2907 2.46957 10.08 3 10.08H3.09C3.42099 10.0723 3.742 9.96512 4.0113 9.77251C4.28059 9.5799 4.48572 9.31074 4.6 9C4.73312 8.69838 4.77282 8.36381 4.714 8.03941C4.65519 7.71502 4.50054 7.41568 4.27 7.18L4.21 7.12C4.02405 6.93425 3.87653 6.71368 3.77588 6.47088C3.67523 6.22808 3.62343 5.96783 3.62343 5.705C3.62343 5.44217 3.67523 5.18192 3.77588 4.93912C3.87653 4.69632 4.02405 4.47575 4.21 4.29C4.39575 4.10405 4.61632 3.95653 4.85912 3.85588C5.10192 3.75523 5.36217 3.70343 5.625 3.70343C5.88783 3.70343 6.14808 3.75523 6.39088 3.85588C6.63368 3.95653 6.85425 4.10405 7.04 4.29L7.1 4.35C7.33568 4.58054 7.63502 4.73519 7.95941 4.794C8.28381 4.85282 8.61838 4.81312 8.92 4.68H9C9.29577 4.55324 9.54802 4.34276 9.72569 4.07447C9.90337 3.80618 9.99872 3.49179 10 3.17V3C10 2.46957 10.2107 1.96086 10.5858 1.58579C10.9609 1.21071 11.4696 1 12 1C12.5304 1 13.0391 1.21071 13.4142 1.58579C13.7893 1.96086 14 2.46957 14 3V3.09C14.0013 3.41179 14.0966 3.72618 14.2743 3.99447C14.452 4.26276 14.7042 4.47324 15 4.6C15.3016 4.73312 15.6362 4.77282 15.9606 4.714C16.285 4.65519 16.5843 4.50054 16.82 4.27L16.88 4.21C17.0657 4.02405 17.2863 3.87653 17.5291 3.77588C17.7719 3.67523 18.0322 3.62343 18.295 3.62343C18.5578 3.62343 18.8181 3.67523 19.0609 3.77588C19.3037 3.87653 19.5243 4.02405 19.71 4.21C19.896 4.39575 20.0435 4.61632 20.1441 4.85912C20.2448 5.10192 20.2966 5.36217 20.2966 5.625C20.2966 5.88783 20.2448 6.14808 20.1441 6.39088C20.0435 6.63368 19.896 6.85425 19.71 7.04L19.65 7.1C19.4195 7.33568 19.2648 7.63502 19.206 7.95941C19.1472 8.28381 19.1869 8.61838 19.32 8.92V9C19.4468 9.29577 19.6572 9.54802 19.9255 9.72569C20.1938 9.90337 20.5082 9.99872 20.83 10H21C21.5304 10 22.0391 10.2107 22.4142 10.5858C22.7893 10.9609 23 11.4696 23 12C23 12.5304 22.7893 13.0391 22.4142 13.4142C22.0391 13.7893 21.5304 14 21 14H20.91C20.5882 14.0013 20.2738 14.0966 20.0055 14.2743C19.7372 14.452 19.5268 14.7042 19.4 15Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1842_19733\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"d-flex flex-column\">\r\n <div [ngClass]=\" CON.isActive ? ' text-tab' : ''\" class=\"sideheading mb-1\">Configuration\r\n </div>\r\n </div>\r\n </a></div>\r\n <div *ngIf=\"(gs.userAccess | async)?.settings_contactDirectory_isView \" class=\"mb-3\"><a routerLink=\"/manage/settings/contact-directory\" routerLinkActive=\"active\"\r\n #CONDIR=\"routerLinkActive\" class=\"custom-list d-flex align-items-center px-5 py-4\"\r\n [ngClass]=\"CONDIR.isActive ? 'btn text-tab' : ''\">\r\n <div class=\"me-4\"><span>\r\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path [ngClass]=\"CONDIR.isActive ? 'fillstroke' : ''\"\r\n d=\"M17 21V19C17 17.9391 16.5786 16.9217 15.8284 16.1716C15.0783 15.4214 14.0609 15 13 15H5C3.93913 15 2.92172 15.4214 2.17157 16.1716C1.42143 16.9217 1 17.9391 1 19V21M23 21V19C22.9993 18.1137 22.7044 17.2528 22.1614 16.5523C21.6184 15.8519 20.8581 15.3516 20 15.13M16 3.13C16.8604 3.3503 17.623 3.8507 18.1676 4.55231C18.7122 5.25392 19.0078 6.11683 19.0078 7.005C19.0078 7.89317 18.7122 8.75608 18.1676 9.45769C17.623 10.1593 16.8604 10.6597 16 10.88M13 7C13 9.20914 11.2091 11 9 11C6.79086 11 5 9.20914 5 7C5 4.79086 6.79086 3 9 3C11.2091 3 13 4.79086 13 7Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"d-flex flex-column\">\r\n <div [ngClass]=\" CONDIR.isActive ? ' text-tab' : ''\" class=\"sideheading mb-1\">Contact\r\n Directory</div>\r\n </div>\r\n </a></div>\r\n <div *ngIf=\"(gs.userAccess | async)?.settings_paymentSubscriptions_isView \" class=\"mb-3\"><a routerLink=\"/manage/settings/payment-subscription\" routerLinkActive=\"active\"\r\n #sa=\"routerLinkActive\" class=\"custom-list d-flex align-items-center px-5 py-4\"\r\n [ngClass]=\"sa.isActive ? 'btn text-tab' : ''\">\r\n <div class=\" me-4\"><span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path [ngClass]=\"sa.isActive ? 'fillstroke' : ''\"\r\n d=\"M14.1755 4.22225C14.1766 2.99445 11.6731 2 8.58832 2C5.50357 2 3.00224 2.99557 3 4.22225M3 4.22225C3 5.45004 5.50133 6.44449 8.58832 6.44449C11.6753 6.44449 14.1766 5.45004 14.1766 4.22225L14.1766 12.8445M3 4.22225V17.5556C3.00112 18.7834 5.50245 19.7779 8.58832 19.7779C10.0849 19.7779 11.4361 19.5412 12.4387 19.1601M3.00112 8.66672C3.00112 9.89451 5.50245 10.889 8.58944 10.889C11.6764 10.889 14.1778 9.89451 14.1778 8.66672M12.5057 14.6946C11.4976 15.0891 10.115 15.3335 8.58832 15.3335C5.50245 15.3335 3.00112 14.3391 3.00112 13.1113M20.5272 13.4646C22.4909 15.4169 22.4909 18.5836 20.5272 20.5358C18.5635 22.4881 15.3781 22.4881 13.4144 20.5358C11.4507 18.5836 11.4507 15.4169 13.4144 13.4646C15.3781 11.5124 18.5635 11.5124 20.5272 13.4646Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n\r\n </span>\r\n </div>\r\n <div class=\"d-flex flex-column \">\r\n <div [ngClass]=\"sa.isActive ? 'text-tab' : ''\" class=\"sideheading mb-1\">Payments &\r\n Subscription</div>\r\n </div>\r\n </a></div>\r\n <div *ngIf=\"(gs.userAccess | async)?.settings_documents_isView \" class=\"mb-3\"><a routerLink=\"/manage/settings/documents\" routerLinkActive=\"active\"\r\n #DOC=\"routerLinkActive\" class=\"custom-list d-flex align-items-center px-5 py-4\"\r\n [ngClass]=\"DOC.isActive ? 'btn text-tab' : ''\">\r\n <div class=\"me-4\"><span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"\r\n fill=\"none\">\r\n <path [ngClass]=\" DOC.isActive ? 'fillstroke' : ''\"\r\n d=\"M14 2H6C5.46957 2 4.96086 2.21071 4.58579 2.58579C4.21071 2.96086 4 3.46957 4 4V20C4 20.5304 4.21071 21.0391 4.58579 21.4142C4.96086 21.7893 5.46957 22 6 22H18C18.5304 22 19.0391 21.7893 19.4142 21.4142C19.7893 21.0391 20 20.5304 20 20V8M14 2L20 8M14 2V8H20M16 13H8M16 17H8M10 9H8\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"d-flex flex-column\">\r\n <div [ngClass]=\" DOC.isActive ? ' text-tab' : ''\" class=\"sideheading mb-1\">Documents</div>\r\n </div>\r\n </a></div>\r\n <div *ngIf=\"(gs.userAccess | async)?.settings_activityLog_isView \" class=\"mb-3\"><a routerLink=\"/manage/settings/activity-logs\" routerLinkActive=\"active\"\r\n #ACT=\"routerLinkActive\" class=\"custom-list d-flex align-items-center px-5 py-4\"\r\n [ngClass]=\"ACT.isActive ? 'btn text-tab' : ''\">\r\n <div class=\"me-4\"><span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path [ngClass]=\" ACT.isActive ? 'fillstroke fillpath' : ''\"\r\n d=\"M18.1539 7.72911L18.0341 7.85239L18.1539 7.72911C17.9972 7.57686 17.7859 7.49231 17.5667 7.49231H8.7C8.48081 7.49231 8.26948 7.57686 8.11279 7.72911C7.9559 7.88155 7.86667 8.08955 7.86667 8.30769C7.86667 8.52583 7.9559 8.73383 8.11279 8.88627C8.26948 9.03853 8.48081 9.12308 8.7 9.12308H17.5667C17.7859 9.12308 17.9972 9.03853 18.1539 8.88627C18.3108 8.73383 18.4 8.52583 18.4 8.30769C18.4 8.08955 18.3108 7.88155 18.1539 7.72911ZM3.04612 4.0368C2.88924 4.18924 2.8 4.39725 2.8 4.61538C2.8 4.83352 2.88924 5.04152 3.04612 5.19397C3.20282 5.34622 3.41415 5.43077 3.63333 5.43077H6.16667C6.38585 5.43077 6.59718 5.34622 6.75388 5.19397C6.91076 5.04152 7 4.83352 7 4.61538C7 4.39725 6.91076 4.18924 6.75388 4.0368C6.59718 3.88455 6.38585 3.8 6.16667 3.8H3.63333C3.41415 3.8 3.20282 3.88455 3.04612 4.0368ZM8.11279 4.0368C7.9559 4.18924 7.86667 4.39725 7.86667 4.61538C7.86667 4.83352 7.9559 5.04152 8.11279 5.19397C8.26948 5.34622 8.48081 5.43077 8.7 5.43077H21.3667C21.5859 5.43077 21.7972 5.34622 21.9539 5.19397C22.1108 5.04152 22.2 4.83352 22.2 4.61538C22.2 4.39725 22.1108 4.18924 21.9539 4.0368C21.7972 3.88455 21.5859 3.8 21.3667 3.8H8.7C8.48081 3.8 8.26948 3.88455 8.11279 4.0368ZM3.04612 11.4214C2.88924 11.5739 2.8 11.7819 2.8 12C2.8 12.2181 2.88924 12.4261 3.04612 12.5786C3.20282 12.7308 3.41414 12.8154 3.63333 12.8154H6.16667C6.38586 12.8154 6.59718 12.7308 6.75388 12.5786C6.91076 12.4261 7 12.2181 7 12C7 11.7819 6.91076 11.5739 6.75388 11.4214C6.59718 11.2692 6.38585 11.1846 6.16667 11.1846H3.63333C3.41415 11.1846 3.20282 11.2692 3.04612 11.4214ZM8.11279 11.4214C7.9559 11.5739 7.86667 11.7819 7.86667 12C7.86667 12.2181 7.9559 12.4261 8.11279 12.5786C8.26948 12.7308 8.48081 12.8154 8.7 12.8154H21.3667C21.5859 12.8154 21.7972 12.7308 21.9539 12.5786C22.1108 12.4261 22.2 12.2181 22.2 12C22.2 11.7819 22.1108 11.5739 21.9539 11.4214C21.7972 11.2692 21.5859 11.1846 21.3667 11.1846H8.7C8.48081 11.1846 8.26948 11.2692 8.11279 11.4214ZM8.11279 15.1137C7.9559 15.2662 7.86667 15.4742 7.86667 15.6923C7.86667 15.9104 7.9559 16.1184 8.11279 16.2709C8.26948 16.4231 8.48081 16.5077 8.7 16.5077H17.5667C17.7859 16.5077 17.9972 16.4231 18.1539 16.2709C18.3108 16.1184 18.4 15.9104 18.4 15.6923C18.4 15.4742 18.3108 15.2662 18.1539 15.1137C17.9972 14.9615 17.7859 14.8769 17.5667 14.8769H8.7C8.48081 14.8769 8.26948 14.9615 8.11279 15.1137ZM3.04612 18.806C2.88924 18.9585 2.8 19.1665 2.8 19.3846C2.8 19.6028 2.88924 19.8108 3.04612 19.9632C3.20282 20.1155 3.41415 20.2 3.63333 20.2H6.16667C6.38585 20.2 6.59718 20.1155 6.75388 19.9632C6.91076 19.8108 7 19.6028 7 19.3846C7 19.1665 6.91076 18.9585 6.75388 18.806C6.59718 18.6538 6.38585 18.5692 6.16667 18.5692H3.63333C3.41415 18.5692 3.20282 18.6538 3.04612 18.806ZM8.11279 18.806C7.9559 18.9585 7.86667 19.1665 7.86667 19.3846C7.86667 19.6028 7.9559 19.8108 8.11279 19.9632C8.26948 20.1155 8.48081 20.2 8.7 20.2H21.3667C21.5859 20.2 21.7972 20.1155 21.9539 19.9632C22.1108 19.8108 22.2 19.6028 22.2 19.3846C22.2 19.1665 22.1108 18.9585 21.9539 18.806C21.7972 18.6538 21.5859 18.5692 21.3667 18.5692H8.7C8.48081 18.5692 8.26948 18.6538 8.11279 18.806Z\"\r\n fill=\"#667085\" stroke=\"#667085\" stroke-width=\"0.4\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"d-flex flex-column\">\r\n <div [ngClass]=\" ACT.isActive ? ' text-tab' : ''\" class=\"sideheading mb-1\">Activity Log</div>\r\n </div>\r\n </a></div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-9\">\r\n <ng-container *ngIf=\"pageState$ | async as pageState\" >\r\n <ng-container [ngSwitch]=\"pageState\" >\r\n <ng-container *ngSwitchCase=\"'loaded'\" >\r\n <router-outlet></router-outlet>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'loading'\" >\r\n <div class=\"shimmer-card w-100\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n </div>\r\n</div>","import { ChangeDetectorRef, Component, HostListener, Input, OnInit, Provider, forwardRef } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { ClientApiService } from '../../services/client-api.service';\r\n\r\nconst SELECT_CONTROL_VALUE_ACCESSOR: Provider = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ReactiveSelectComponent),\r\n multi: true,\r\n};\r\n\r\n@Component({\r\n selector: 'lib-reactive-select',\r\n templateUrl: './reactive-select.component.html',\r\n styleUrl: './reactive-select.component.scss',\r\n providers: [SELECT_CONTROL_VALUE_ACCESSOR]\r\n})\r\nexport class ReactiveSelectComponent implements ControlValueAccessor, OnInit {\r\n\r\n private onTouched: Function;\r\n private onChanged: Function;\r\n protected isDisabled: boolean;\r\n @Input() idField: string\r\n @Input() nameField: string\r\n @Input() label: string\r\n @Input() data: any\r\n protected isOpened: boolean = false\r\n protected selected: Record<string, any> | null = null\r\n protected selectedId: string | number\r\n instanceId: string;\r\n\r\n\r\n constructor(private apiService: ClientApiService, private cd: ChangeDetectorRef) {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.instanceId = crypto.randomUUID();\r\n this.apiService.dropDownTrigger.subscribe((e) => {\r\n if (e !== this.instanceId) {\r\n this.isOpened = false\r\n this.cd.detectChanges()\r\n }\r\n })\r\n }\r\n\r\n\r\n writeValue(val: string | number): void {\r\n this.selectedId = val\r\n this.selected = this.data.filter((item: Record<string, any>) => item?.[this.idField] === val)[0]\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChanged = fn\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.isDisabled = isDisabled\r\n\r\n }\r\n\r\n onSelect(item: Record<string, any>) {\r\n this.onTouched()\r\n this.selected = item\r\n this.selectedId = item?.[this.idField]\r\n this.isOpened = false\r\n this.onChanged(this.selectedId)\r\n }\r\n\r\n @HostListener('document:click', ['$event'])\r\n onClick(event: MouseEvent) {\r\n if (!this.isDisabled) {\r\n const targetElement = event.target as HTMLElement;\r\n if (!this.isComponentClicked(targetElement)) {\r\n this.isOpened = false;\r\n }\r\n }\r\n }\r\n\r\n isComponentClicked(targetElement: HTMLElement): boolean {\r\n const parentElement = targetElement.parentElement;\r\n if (parentElement) {\r\n const clickedOnComponent = parentElement.classList.contains('custom-select');\r\n if (clickedOnComponent) {\r\n return true;\r\n } else {\r\n return this.isComponentClicked(parentElement);\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n openDropdown(){\r\n this.isOpened = !this.isOpened;\r\n this.apiService.dropDownTrigger.next(this.instanceId)\r\n }\r\n\r\n\r\n}\r\n","<div class=\"custom-select\">\r\n <div class=\"form-group\">\r\n <label *ngIf=\"label\" class=\"form-label\">{{label}}</label>\r\n <div class=\"position-relative\">\r\n <div (click)=\"openDropdown()\" [ngClass]=\"isDisabled ? 'disable' : ''\" class=\"form-select dropselect\">\r\n {{selected?.[nameField]}}</div>\r\n <div *ngIf=\"isOpened\" class=\"card py-2 w-100 position-absolute end-0 z-1 drop-list\">\r\n <ul class=\"list-unstyled mb-2\">\r\n <li *ngFor=\"let item of data\" (click)=\"onSelect(item)\"\r\n [ngClass]=\"item?.[idField] === selected?.[idField] ? 'active' : ''\"\r\n class=\"text px-5 items cursor-pointer py-4\">\r\n {{item?.[nameField]}}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { ChangeDetectorRef, Component, ElementRef, OnDestroy, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { ClientApiService } from '../../../services/client-api.service';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\n\r\n@Component({\r\n selector: 'lib-brand-info',\r\n templateUrl: './brand-info.component.html',\r\n styleUrl: './brand-info.component.scss'\r\n})\r\nexport class BrandInfoComponent implements OnDestroy {\r\n\r\n brandInfoForm: FormGroup\r\n @ViewChild('imageInput') uploadInput: ElementRef<HTMLElement>;\r\n brandLogo: any\r\n countryList: any = [];\r\n private readonly destroy$ = new Subject();\r\n logoFile: File;\r\n industry = [\r\n { value: \"apparel\", label: \"Apparel\" },\r\n { value: \"bagsandluggage\", label: \"Bags and Luggage\" },\r\n { value: \"cafesandrestaurants\", label: \"Cafes and Restaurants\" },\r\n { value: \"electronics\", label: \"Electronics\" },\r\n { value: \"ev\", label: \"EV\" },\r\n { value: \"eyewear\", label: \"Eyewear\" },\r\n { value: \"fashionaccessories\", label: \"Fashion Accessories\" },\r\n { value: \"fashionandlifestyle\", label: \"Fashion And Lifestyle\" },\r\n { value: \"fintech\", label: \"Fintech\" },\r\n { value: \"foodandbeverage\", label: \"Food and Beverage\" },\r\n { value: \"footwear\", label: \"Footwear\" },\r\n { value: \"furniture\", label: \"Furniture\" },\r\n { value: \"gamingcentre\", label: \"Gaming Centre\" },\r\n { value: \"gourmet\", label: \"Gourmet\" },\r\n { value: \"grooming\", label: \"Grooming\" },\r\n { value: \"hospital\", label: \"Hospital\" },\r\n { value: \"interiordesign\", label: \"Interior Design\" },\r\n { value: \"leather\", label: \"Leather\" },\r\n { value: \"mattress\", label: \"Mattress\" },\r\n { value: \"nutrition\", label: \"Nutrition\" },\r\n { value: \"perfume\", label: \"Perfume\" },\r\n { value: \"skincare\", label: \"Skincare\" },\r\n { value: \"techstartup\", label: \"Tech Startup\" }\r\n ]\r\n\r\n clientType = [\r\n { value: \"partnership\", label: \"Partnership\" },\r\n { value: \"proprietorship\", label: \"Proprietorship\" },\r\n { value: \"pvtltd\", label: \"Pvt. Ltd\" },\r\n { value: \"person\", label: \"Person\" },\r\n ]\r\n\r\n status = [\r\n { value: \"active\", label: \"Active\" },\r\n { value: \"hold\", label: \"Hold\" },\r\n { value: \"suspended\", label: \"Suspend\" },\r\n { value: \"deactive\", label: \"Deactive\" },\r\n ]\r\n\r\n\r\n constructor(private fb: FormBuilder, private apiService: ClientApiService, private cd: ChangeDetectorRef, public gs: GlobalStateService) {\r\n this.initForm()\r\n this.getCountryCodes()\r\n this.apiService.clientFormData.pipe(takeUntil(this.destroy$)).subscribe((res) => {\r\n if (res) {\r\n if (res.type === 'input' && res.form === 'brand-info') {\r\n this.patchForm(res.value)\r\n }\r\n }\r\n })\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n\r\n initForm() {\r\n this.brandInfoForm = this.fb.group({\r\n brandName: [''],\r\n registeredCompanyName: [''],\r\n industry: [''],\r\n clientType: [''],\r\n corporateEmail: [''],\r\n countryCode: [''],\r\n mobileNumber: [''],\r\n registeredAddress: [''],\r\n headQuarters: [''],\r\n website: [''],\r\n status: [''],\r\n logo: ['']\r\n });\r\n this.brandInfoForm.disable()\r\n }\r\n\r\n getCountryCodes() {\r\n this.apiService.getAllCountries().pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (res: any) => {\r\n this.countryList = res.data\r\n this.cd.detectChanges()\r\n },\r\n error: (err: any) => {\r\n }\r\n })\r\n }\r\n\r\n patchForm(data: any) {\r\n this.brandInfoForm.patchValue(\r\n {\r\n ...data\r\n }\r\n )\r\n\r\n this.brandLogo = data.logo\r\n this.cd.detectChanges()\r\n }\r\n\r\n triggerFileInput() {\r\n this.uploadInput.nativeElement.click()\r\n }\r\n\r\n onFileSelect(event: any) {\r\n if (event.target.files && event.target.files[0]) {\r\n let file: File = event.target.files[0];\r\n this.logoFile = file\r\n var reader = new FileReader();\r\n reader.onload = (e: any) => {\r\n this.brandLogo = e.target.result;\r\n this.cd.detectChanges()\r\n }\r\n reader.readAsDataURL(event.target.files[0]);\r\n\r\n }\r\n }\r\n\r\n onCancel() {\r\n this.brandInfoForm.disable()\r\n this.apiService.clientFormData.next({ value: null, type: 'cancel', form: 'brand-info' })\r\n }\r\n\r\n onSubmit() {\r\n if (this.logoFile) {\r\n this.brandInfoForm.value.logo = this.logoFile\r\n }\r\n\r\n delete this.brandInfoForm.value.brandName\r\n delete this.brandInfoForm.value.corporateEmail\r\n delete this.brandInfoForm.value.countryCode\r\n delete this.brandInfoForm.value.mobileNumber\r\n this.apiService.clientFormData.next({ value: this.brandInfoForm.value, type: 'submit', form: 'brand-info' })\r\n }\r\n omit_special_char(event: any) {\r\n var k;\r\n k = event.charCode;\r\n return (k == 8 || k == 32 || (k >= 48 && k <= 57));\r\n }\r\n\r\n}\r\n","<form [formGroup]=\"brandInfoForm\" >\r\n<div class=\"row\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_brandDetails_isEdit \">\r\n <div *ngIf=\"brandInfoForm.disabled\" class=\"col-12 mb-5\">\r\n <div class=\" d-flex justify-content-end\">\r\n <button (click)=\"brandInfoForm.disabled ? brandInfoForm.enable() : brandInfoForm.disable()\" type=\"button\" class=\"btn btn-outline align-items-end\"><span class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2579_25125)\">\r\n <path\r\n d=\"M14.167 2.49993C14.3859 2.28106 14.6457 2.10744 14.9317 1.98899C15.2176 1.87054 15.5241 1.80957 15.8337 1.80957C16.1432 1.80957 16.4497 1.87054 16.7357 1.98899C17.0216 2.10744 17.2815 2.28106 17.5003 2.49993C17.7192 2.7188 17.8928 2.97863 18.0113 3.2646C18.1297 3.55057 18.1907 3.85706 18.1907 4.16659C18.1907 4.47612 18.1297 4.78262 18.0113 5.06859C17.8928 5.35455 17.7192 5.61439 17.5003 5.83326L6.25033 17.0833L1.66699 18.3333L2.91699 13.7499L14.167 2.49993Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2579_25125\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>Edit Details</button>\r\n </div>\r\n </div> \r\n </ng-container>\r\n\r\n <div class=\"col-12 mb-5\">\r\n <label for=\"Brand\" class=\"form-label\">Brand Logo <span class=\"alert-required\"></span></label>\r\n <input #imageInput accept=\".png, .jpg, .jpeg\" (change)=\"onFileSelect($event)\" [disabled]=\"brandInfoForm.disabled\" style=\"display: none;\" type=\"file\">\r\n <div class=\"upload-container\">\r\n <img [src]=\"brandLogo\" alt=\"\">\r\n <svg (click)=\"triggerFileInput()\" class=\"upload-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"48\" height=\"46\" viewBox=\"0 0 48 46\"\r\n fill=\"none\">\r\n <g filter=\"url(#filter0_d_2_41755)\">\r\n <rect x=\"10\" y=\"10\" width=\"27.8037\" height=\"25.9501\" rx=\"12.9751\" fill=\"white\" />\r\n </g>\r\n <path d=\"M17.9434 26.2175V28.5348H20.4262L27.7521 21.6972L25.2693 19.3799L17.9434 26.2175Z\"\r\n fill=\"#98A2B3\" />\r\n <path\r\n d=\"M29.6671 19.0377L28.1211 17.5948C27.8629 17.3538 27.4425 17.3538 27.1843 17.5948L25.9727 18.7257L28.4555 21.0429L29.6671 19.9121C29.9253 19.6711 29.9253 19.2787 29.6671 19.0377Z\"\r\n fill=\"#98A2B3\" />\r\n <defs>\r\n <filter id=\"filter0_d_2_41755\" x=\"0\" y=\"0\" width=\"47.8037\" height=\"45.9502\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\r\n result=\"hardAlpha\" />\r\n <feOffset />\r\n <feGaussianBlur stdDeviation=\"5\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.288333 0 0 0 0 0.3129 0 0 0 0 0.4 0 0 0 0.14 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_2_41755\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_2_41755\" result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n <svg *ngIf=\"!brandLogo\" class=\"upload-placeholder\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\">\r\n <path d=\"M3.5 32C2.57174 32 1.6815 31.6313 1.02513 30.9749C0.368749 30.3185 0 29.4283 0 28.5L0 3.5C0 1.568 1.568 0 3.5 0H20.5C22.432 0 24 1.568 24 3.5V28.5C24 28.67 23.988 28.836 23.964 29H28.5C28.6326 29 28.7598 28.9473 28.8536 28.8536C28.9473 28.7598 29 28.6326 29 28.5V16.57C29.0001 16.4877 28.9798 16.4068 28.9411 16.3342C28.9024 16.2616 28.8464 16.1997 28.778 16.154L26.668 14.748C26.5041 14.6387 26.3633 14.4983 26.2537 14.3346C26.1441 14.1709 26.0678 13.9873 26.0292 13.7942C25.9906 13.601 25.9904 13.4021 26.0286 13.2089C26.0668 13.0157 26.1427 12.8319 26.252 12.668C26.3613 12.5041 26.5017 12.3633 26.6654 12.2537C26.8291 12.1441 27.0127 12.0678 27.2058 12.0292C27.399 11.9906 27.5979 11.9904 27.7911 12.0286C27.9843 12.0668 28.1681 12.1427 28.332 12.252L30.442 13.658C31.416 14.308 32 15.4 32 16.57V28.5C32 29.4283 31.6313 30.3185 30.9749 30.9749C30.3185 31.6313 29.4283 32 28.5 32H21.5C21.367 31.9998 21.2345 31.9824 21.106 31.948C20.908 31.982 20.706 32 20.5 32H14.5C14.1022 32 13.7206 31.842 13.4393 31.5607C13.158 31.2794 13 30.8978 13 30.5V28H11V30.5C11 30.8978 10.842 31.2794 10.5607 31.5607C10.2794 31.842 9.89783 32 9.5 32H3.5ZM3 28.5C3 28.776 3.224 29 3.5 29H8V26.5C8 26.1022 8.15804 25.7206 8.43934 25.4393C8.72064 25.158 9.10218 25 9.5 25H14.5C14.8978 25 15.2794 25.158 15.5607 25.4393C15.842 25.7206 16 26.1022 16 26.5V29H20.5C20.6326 29 20.7598 28.9473 20.8536 28.8536C20.9473 28.7598 21 28.6326 21 28.5V3.5C21 3.36739 20.9473 3.24022 20.8536 3.14645C20.7598 3.05268 20.6326 3 20.5 3H3.5C3.36739 3 3.24022 3.05268 3.14645 3.14645C3.05268 3.24022 3 3.36739 3 3.5V28.5ZM7.5 12H8.5C8.89782 12 9.27936 12.158 9.56066 12.4393C9.84196 12.7206 10 13.1022 10 13.5C10 13.8978 9.84196 14.2794 9.56066 14.5607C9.27936 14.842 8.89782 15 8.5 15H7.5C7.10218 15 6.72064 14.842 6.43934 14.5607C6.15804 14.2794 6 13.8978 6 13.5C6 13.1022 6.15804 12.7206 6.43934 12.4393C6.72064 12.158 7.10218 12 7.5 12ZM6 7.5C6 7.10218 6.15804 6.72064 6.43934 6.43934C6.72064 6.15804 7.10218 6 7.5 6H8.5C8.89782 6 9.27936 6.15804 9.56066 6.43934C9.84196 6.72064 10 7.10218 10 7.5C10 7.89782 9.84196 8.27936 9.56066 8.56066C9.27936 8.84196 8.89782 9 8.5 9H7.5C7.10218 9 6.72064 8.84196 6.43934 8.56066C6.15804 8.27936 6 7.89782 6 7.5ZM14 13.5C14 13.1022 14.158 12.7206 14.4393 12.4393C14.7206 12.158 15.1022 12 15.5 12H16.5C16.8978 12 17.2794 12.158 17.5607 12.4393C17.842 12.7206 18 13.1022 18 13.5C18 13.8978 17.842 14.2794 17.5607 14.5607C17.2794 14.842 16.8978 15 16.5 15H15.5C15.1022 15 14.7206 14.842 14.4393 14.5607C14.158 14.2794 14 13.8978 14 13.5ZM15.5 6H16.5C16.8978 6 17.2794 6.15804 17.5607 6.43934C17.842 6.72064 18 7.10218 18 7.5C18 7.89782 17.842 8.27936 17.5607 8.56066C17.2794 8.84196 16.8978 9 16.5 9H15.5C15.1022 9 14.7206 8.84196 14.4393 8.56066C14.158 8.27936 14 7.89782 14 7.5C14 7.10218 14.158 6.72064 14.4393 6.43934C14.7206 6.15804 15.1022 6 15.5 6ZM6 19.5C6 19.1022 6.15804 18.7206 6.43934 18.4393C6.72064 18.158 7.10218 18 7.5 18H8.5C8.89782 18 9.27936 18.158 9.56066 18.4393C9.84196 18.7206 10 19.1022 10 19.5C10 19.8978 9.84196 20.2794 9.56066 20.5607C9.27936 20.842 8.89782 21 8.5 21H7.5C7.10218 21 6.72064 20.842 6.43934 20.5607C6.15804 20.2794 6 19.8978 6 19.5ZM15.5 18H16.5C16.8978 18 17.2794 18.158 17.5607 18.4393C17.842 18.7206 18 19.1022 18 19.5C18 19.8978 17.842 20.2794 17.5607 20.5607C17.2794 20.842 16.8978 21 16.5 21H15.5C15.1022 21 14.7206 20.842 14.4393 20.5607C14.158 20.2794 14 19.8978 14 19.5C14 19.1022 14.158 18.7206 14.4393 18.4393C14.7206 18.158 15.1022 18 15.5 18Z\" fill=\"#98A2B3\"/>\r\n </svg>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"brandName\" class=\"form-label\">Brand Name <span class=\"alert-required\"></span></label>\r\n <input formControlName=\"brandName\" type=\"type\" class=\"form-control disabled-input\" id=\"brandName\" autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"registeredCompanyName\" class=\"form-label\">Registered Company Name <span\r\n class=\"alert-required\"></span></label>\r\n <input formControlName=\"registeredCompanyName\" type=\"type\" class=\"form-control\" id=\"registeredCompanyName\"\r\n autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <lib-reactive-select formControlName=\"industry\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"industry\" [label]=\"'Industry Type'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <lib-reactive-select formControlName=\"clientType\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"clientType\" [label]=\"'Type of Client'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"registeredEmail\" class=\"form-label\">Registered Email <span class=\"alert-required\"></span></label>\r\n <input formControlName=\"corporateEmail\" type=\"type\" class=\"form-control disabled-input\" id=\"registeredEmail\"\r\n autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-7\">\r\n <label for=\"contactNumber\" class=\"form-label\">Contact number <span class=\"alert-required\"></span></label>\r\n <div class=\"row\">\r\n <div class=\"col-md-12 col-lg-4 col-xl-4\">\r\n \r\n <select formControlName=\"countryCode\" class=\"form-select country-text-dropdown ps-3 pe-8\" \r\n id=\"inputGroupSelect01\">\r\n <option *ngFor=\"let country of countryList\" class=\"mx-2\" [value]=\"country.phonecode\">{{country.name}}<span class=\"text-muted\">({{ country.phonecode\r\n }})</span></option>\r\n </select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-8 col-xl-8\">\r\n\r\n <input formControlName=\"mobileNumber\" type=\"text\" class=\"form-control mobile-number-input \" (keypress)=\"omit_special_char($event)\" \r\n id=\"phonenumber\" autocomplete=\"off\" minlength=\"7\" maxlength=\"15\">\r\n </div>\r\n </div>\r\n \r\n <!-- <div class=\"input-group \">\r\n <select formControlName=\"countryCode\" class=\"form-select country-text-dropdown disabled-input\" id=\"inputGroupSelect01\">\r\n <option *ngFor=\"let country of countryList\" class=\"mx-2\" [value]=\"country?.phonecode\">{{country?.isoCode}}</option>\r\n </select>\r\n <input disabled class=\"form-control country-code-input disabled-input\" [value]=\"brandInfoForm.get('countryCode')?.value ? brandInfoForm.get('countryCode')?.value : ''\" readonly>\r\n <input formControlName=\"mobileNumber\" type=\"number\" class=\"form-control mobile-number-input disabled-input ps-0\"\r\n id=\"contactNumber\" autocomplete=\"off\">\r\n </div> -->\r\n </div>\r\n\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"registeredAddress\" class=\"form-label\">Registered Address <span\r\n class=\"alert-required\"></span></label>\r\n <input formControlName=\"registeredAddress\" type=\"type\" class=\"form-control\" id=\"registeredAddress\"\r\n autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"headQuarters\" class=\"form-label\">Head Quarters <span class=\"alert-required\"></span></label>\r\n <input formControlName=\"headQuarters\" type=\"type\" class=\"form-control\" id=\"headQuarters\" autocomplete=\"off\">\r\n\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"companyWebsite\" class=\"form-label\">Company Website <span class=\"alert-required\"></span></label>\r\n <input formControlName=\"website\" type=\"type\" class=\"form-control\" id=\"companyWebsite\" autocomplete=\"off\">\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \" class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <lib-reactive-select formControlName=\"status\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"status\" [label]=\"'Brand Status'\" ></lib-reactive-select>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"brandInfoForm.enabled\">\r\n <div class=\"mb-5 w-100 footer-seperator\"></div>\r\n <div class=\"d-flex justify-content-end\">\r\n <a type=\"button\" class=\"btn btn-outline me-4\" (click)=\"onCancel()\">Cancel</a>\r\n <a type=\"submit\" class=\"btn btn-primary px-4 \" (click)=\"onSubmit()\"><span>Save Changes</span></a>\r\n </div>\r\n</div>\r\n\r\n</form>","import { Component, ElementRef, OnDestroy, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { ClientApiService } from '../../../services/client-api.service';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\n\r\n@Component({\r\n selector: 'lib-billing-details',\r\n templateUrl: './billing-details.component.html',\r\n styleUrl: './billing-details.component.scss'\r\n})\r\nexport class BillingDetailsComponent implements OnDestroy {\r\n billingDetailsForm: FormGroup\r\n @ViewChild('gstFormInput') uploadInput: ElementRef<HTMLElement>;\r\n gstForm: string;\r\n private readonly destroy$ = new Subject();\r\n gstFile: File | null;\r\n\r\n\r\n constructor(private fb: FormBuilder, private apiService: ClientApiService, public gs: GlobalStateService) {\r\n this.initForm()\r\n this.apiService.clientFormData.pipe(takeUntil(this.destroy$)).subscribe((res) => {\r\n if (res) { \r\n if(res.type === 'input' && res.form === 'billing-details'){\r\n this.patchForm(res.value)\r\n }\r\n }\r\n })\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n\r\n initForm() {\r\n this.billingDetailsForm = this.fb.group({\r\n tradeName: [''],\r\n gstNumber: [''],\r\n gstCertificate: [''],\r\n authorityName: [''],\r\n authorityEmail: [''],\r\n billingAddress: [''],\r\n });\r\n this.billingDetailsForm.disable()\r\n }\r\n\r\n patchForm(data: any) { \r\n this.billingDetailsForm.patchValue(\r\n {\r\n ...data\r\n }\r\n )\r\n this.gstForm = data?.gstCertificate\r\n \r\n }\r\n\r\n triggerFileInput() {\r\n this.uploadInput.nativeElement.click()\r\n }\r\n\r\n onFileSelect(event: any) {\r\n if (event.target.files && event.target.files[0]) {\r\n let file: File = event.target.files[0];\r\n this.gstFile = file \r\n } \r\n }\r\n\r\n\r\n onCancel(){\r\n this.gstFile = null\r\n this.billingDetailsForm.disable()\r\n this.apiService.clientFormData.next({value:null, type:'cancel', form:'billing-details'})\r\n }\r\n\r\n onSubmit(){ \r\n if(this.gstFile){\r\n this.billingDetailsForm.value.gstCertificate = this.gstFile \r\n } \r\n this.apiService.clientFormData.next({value:this.billingDetailsForm.value, type:'submit', form:'billing-details'})\r\n }\r\n}\r\n","<form [formGroup]=\"billingDetailsForm\">\r\n <div class=\"row\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_brandDetails_isEdit \" >\r\n <div *ngIf=\"billingDetailsForm.disabled\" class=\"col-12 mb-5\">\r\n <div class=\" d-flex justify-content-end\">\r\n <button (click)=\"billingDetailsForm.disabled ? billingDetailsForm.enable() : billingDetailsForm.disable()\" type=\"button\" class=\"btn btn-outline align-items-end\"><span class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2579_25125)\">\r\n <path\r\n d=\"M14.167 2.49993C14.3859 2.28106 14.6457 2.10744 14.9317 1.98899C15.2176 1.87054 15.5241 1.80957 15.8337 1.80957C16.1432 1.80957 16.4497 1.87054 16.7357 1.98899C17.0216 2.10744 17.2815 2.28106 17.5003 2.49993C17.7192 2.7188 17.8928 2.97863 18.0113 3.2646C18.1297 3.55057 18.1907 3.85706 18.1907 4.16659C18.1907 4.47612 18.1297 4.78262 18.0113 5.06859C17.8928 5.35455 17.7192 5.61439 17.5003 5.83326L6.25033 17.0833L1.66699 18.3333L2.91699 13.7499L14.167 2.49993Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2579_25125\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>Edit Details</button>\r\n </div>\r\n </div> \r\n </ng-container>\r\n\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"tradeName\" class=\"form-label\">Trade Name <span class=\"alert-required\"></span></label>\r\n <input formControlName=\"tradeName\" type=\"type\" class=\"form-control\" id=\"tradeName\" autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"gstNumber\" class=\"form-label\">GST Number <span class=\"alert-required\"></span></label>\r\n <div class=\"input-group \">\r\n <input formControlName=\"gstNumber\" type=\"text\" class=\"form-control\" placeholder=\"\" aria-label=\"Example text with button addon\"\r\n aria-describedby=\"button-addon1\" id=\"gstNumber\">\r\n <button [disabled]=\"billingDetailsForm.disabled\" (click)=\"triggerFileInput()\" class=\"btn btn-outline upload-btn\" type=\"button\" id=\"button-addon1\">\r\n <span class=\"me-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n Upload</button>\r\n </div>\r\n <input (change)=\"onFileSelect($event)\" accept=\".pdf\" class=\"d-none\" #gstFormInput type=\"file\">\r\n <a *ngIf=\"gstForm && !gstFile\" [href]=\"gstForm\" target=\"_blank\" class=\"mt-3\">\r\n <span class=\"uploaded-doc-text me-2\">GST Certificate</span>\r\n </a>\r\n <span *ngIf=\"gstFile\" class=\"mt-3 d-flex align-items-center\">\r\n <span class=\"uploaded-doc-text me-2\">{{gstFile.name ? gstFile.name : ''}}</span>\r\n <svg class=\"cursor-pointer\" (click)=\"gstFile = null\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M12.5003 7.50001L7.50033 12.5M7.50033 7.50001L12.5003 12.5M18.3337 10C18.3337 14.6024 14.6027 18.3333 10.0003 18.3333C5.39795 18.3333 1.66699 14.6024 1.66699 10C1.66699 5.39763 5.39795 1.66667 10.0003 1.66667C14.6027 1.66667 18.3337 5.39763 18.3337 10Z\" stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"invoiceAuthorityName\" class=\"form-label\">Invoice Authority Name <span\r\n class=\"alert-required\"></span></label>\r\n <input formControlName=\"authorityName\" type=\"type\" class=\"form-control\" id=\"invoiceAuthorityName\"\r\n autocomplete=\"off\">\r\n\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"invoiceAuthorityEmail\" class=\"form-label\">Invoice Authority Email <span\r\n class=\"alert-required\"></span></label>\r\n <input formControlName=\"authorityEmail\" type=\"type\" class=\"form-control\" id=\"invoiceAuthorityEmail\"\r\n autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-12 mb-5\">\r\n <label for=\"billingAddress\" class=\"form-label\">Billing Address <span class=\"alert-required\"></span></label>\r\n <input formControlName=\"billingAddress\" type=\"type\" class=\"form-control\" id=\"billingAddress\" autocomplete=\"off\">\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"billingDetailsForm.enabled\">\r\n <div class=\"mb-5 w-100 footer-seperator\"></div>\r\n <div class=\"d-flex justify-content-end\">\r\n <a (click)=\"onCancel()\" type=\"button\" class=\"btn btn-outline me-4\">Cancel</a>\r\n <a (click)=\"onSubmit()\" type=\"submit\" class=\"btn btn-primary px-4 \"><span>Save Changes</span></a>\r\n </div>\r\n </div>\r\n</form>","import { Component, OnDestroy } from '@angular/core';\r\nimport { FormGroup, FormBuilder } from '@angular/forms';\r\nimport { ClientApiService } from '../../../services/client-api.service';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\n\r\n@Component({\r\n selector: 'lib-signatory-details',\r\n templateUrl: './signatory-details.component.html',\r\n styleUrl: './signatory-details.component.scss'\r\n})\r\nexport class SignatoryDetailsComponent implements OnDestroy {\r\n\r\n signatoryDetailsForm: FormGroup\r\n private readonly destroy$ = new Subject();\r\n\r\n\r\n constructor(private fb: FormBuilder, private apiService: ClientApiService, public gs:GlobalStateService) {\r\n this.initForm()\r\n this.apiService.clientFormData.pipe(takeUntil(this.destroy$)).subscribe((res) => {\r\n if (res) { \r\n if(res.type === 'input' && res.form === 'signatory-details'){\r\n this.patchForm(res.value)\r\n }\r\n }\r\n })\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n\r\n initForm() {\r\n this.signatoryDetailsForm = this.fb.group({\r\n name: [''],\r\n email: [''],\r\n number: [''],\r\n designation: [''],\r\n });\r\n this.signatoryDetailsForm.disable()\r\n }\r\n\r\n patchForm(data: any) { \r\n this.signatoryDetailsForm.patchValue(\r\n {\r\n ...data\r\n }\r\n )\r\n \r\n }\r\n\r\n\r\n onCancel(){\r\n this.signatoryDetailsForm.disable()\r\n this.apiService.clientFormData.next({value:null, type:'cancel', form:'signatory-details'})\r\n }\r\n\r\n onSubmit(){ \r\n this.signatoryDetailsForm.value.number = this.signatoryDetailsForm.value.number.toString()\r\n this.apiService.clientFormData.next({value:this.signatoryDetailsForm.value, type:'submit', form:'signatory-details'})\r\n }\r\n omit_special_char(event: any) {\r\n var k;\r\n k = event.charCode;\r\n return (k == 8 || k == 32 || (k >= 48 && k <= 57));\r\n }\r\n}\r\n","<form [formGroup]=\"signatoryDetailsForm\">\r\n <div class=\"row\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_brandDetails_isEdit\" >\r\n <div *ngIf=\"signatoryDetailsForm.disabled\" class=\"col-12 mb-5\">\r\n <div class=\" d-flex justify-content-end\">\r\n <button type=\"button\" (click)=\"signatoryDetailsForm.disabled ? signatoryDetailsForm.enable() : signatoryDetailsForm.disable()\" class=\"btn btn-outline align-items-end\"><span class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2579_25125)\">\r\n <path\r\n d=\"M14.167 2.49993C14.3859 2.28106 14.6457 2.10744 14.9317 1.98899C15.2176 1.87054 15.5241 1.80957 15.8337 1.80957C16.1432 1.80957 16.4497 1.87054 16.7357 1.98899C17.0216 2.10744 17.2815 2.28106 17.5003 2.49993C17.7192 2.7188 17.8928 2.97863 18.0113 3.2646C18.1297 3.55057 18.1907 3.85706 18.1907 4.16659C18.1907 4.47612 18.1297 4.78262 18.0113 5.06859C17.8928 5.35455 17.7192 5.61439 17.5003 5.83326L6.25033 17.0833L1.66699 18.3333L2.91699 13.7499L14.167 2.49993Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2579_25125\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>Edit Details</button>\r\n </div>\r\n </div> \r\n </ng-container>\r\n\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"username\" class=\"form-label\">Username <span class=\"alert-required\"></span></label>\r\n <input formControlName=\"name\" type=\"text\" class=\"form-control\" id=\"username\" autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"email\" class=\"form-label\">Email <span class=\"alert-required\"></span></label>\r\n <input formControlName=\"email\" type=\"email\" class=\"form-control\" id=\"email\" autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"contactNumber\" class=\"form-label\">Contact Number <span\r\n class=\"alert-required\"></span></label>\r\n <input formControlName=\"number\" type=\"text\" class=\"form-control\" id=\"contactNumber\"\r\n autocomplete=\"off\" minlength=\"3\" maxlength=\"15\" (keypress)=\"omit_special_char($event)\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"designation\" class=\"form-label\">Designation <span\r\n class=\"alert-required\"></span></label>\r\n <input formControlName=\"designation\" type=\"text\" class=\"form-control\" id=\"designation\"\r\n autocomplete=\"off\">\r\n </div>\r\n </div>\r\n \r\n <div *ngIf=\"signatoryDetailsForm.enabled\">\r\n <div class=\"mb-5 w-100 footer-seperator\"></div>\r\n <div class=\"d-flex justify-content-end\">\r\n <a (click)=\"onCancel()\" type=\"button\" class=\"btn btn-outline me-4\">Cancel</a>\r\n <a (click)=\" onSubmit()\" type=\"submit\" class=\"btn btn-primary px-4 \"><span>Save Changes</span></a>\r\n </div>\r\n </div>\r\n</form>\r\n","import { Component, OnDestroy, ViewChild } from '@angular/core';\r\nimport { ClientApiService } from '../../services/client-api.service';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\n\r\n@Component({\r\n selector: 'lib-brand-details',\r\n templateUrl: './brand-details.component.html',\r\n styleUrl: './brand-details.component.scss',\r\n})\r\nexport class BrandDetailsComponent implements OnDestroy {\r\n clientData:any;\r\n private readonly destroy$ = new Subject();\r\n branInfoPrevValues:any\r\n billingDetailsPrevValues:any\r\n signatoryDetailPrevValues:any\r\n @ViewChild('accordion', { static: true }) accordion: any;\r\n\r\n\r\n constructor(private clientApi: ClientApiService, private toast:ToastService, private gs:GlobalStateService) {\r\n this.clientApi.clientFormData.pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if (e.type === 'submit') {\r\n this.submitForm(e)\r\n }else if(e.type === 'cancel'){\r\n this.resetForm(e)\r\n }\r\n })\r\n \r\n this.clientApi.clientData.pipe(takeUntil(this.destroy$)).subscribe((e)=>{ \r\n if(e){\r\n this.clientData = e\r\n this.populateBrandInfo(e)\r\n this.populateBillingDetails(e)\r\n this.populateSignatoryDetails(e)\r\n }\r\n })\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n \r\n openItem(event:string){\r\n this.populateBrandInfo(this.clientData)\r\n this.populateBillingDetails(this.clientData)\r\n this.populateSignatoryDetails(this.clientData)\r\n }\r\n\r\n populateBrandInfo(data: any) {\r\n let obj = {\r\n brandName: data?.clientName,\r\n registeredCompanyName: data?.profileDetails?.registeredCompanyName,\r\n industry: data?.profileDetails?.industry,\r\n clientType: data?.profileDetails?.clientType,\r\n corporateEmail: data?.userData?.corporateEmail,\r\n countryCode: data?.userData?.countryCode,\r\n mobileNumber: data?.userData?.mobileNumber,\r\n registeredAddress: data?.profileDetails?.registeredAddress,\r\n headQuarters: data?.profileDetails?.headQuarters,\r\n website: data?.profileDetails?.website,\r\n status: data?.status,\r\n logo: data?.profileDetails?.logo,\r\n }\r\n\r\n this.branInfoPrevValues = obj\r\n this.clientApi.clientFormData.next({ value: { ...obj }, type: 'input', form: 'brand-info' })\r\n }\r\n\r\n populateBillingDetails(data: any) {\r\n let obj = {\r\n tradeName: data?.billingDetails?.tradeName,\r\n gstNumber: data?.billingDetails?.gstNumber,\r\n authorityName: data?.billingDetails?.authorityName,\r\n authorityEmail: data?.billingDetails?.authorityEmail,\r\n billingAddress: data?.billingDetails?.billingAddress,\r\n gstCertificate: data?.document?.gst?.path,\r\n }\r\n this.billingDetailsPrevValues = obj\r\n\r\n this.clientApi.clientFormData.next({ value: { ...obj }, type: 'input', form: 'billing-details' })\r\n }\r\n\r\n populateSignatoryDetails(data: any) {\r\n let obj = {\r\n name: data?.signatoryDetail?.name,\r\n email: data?.signatoryDetail?.email,\r\n number: data?.signatoryDetail?.number,\r\n designation: data?.signatoryDetail?.designation,\r\n }\r\n this.signatoryDetailPrevValues = obj\r\n this.clientApi.clientFormData.next({ value: { ...obj }, type: 'input', form: 'signatory-details' })\r\n }\r\n\r\n\r\n\r\n submitForm(e: any) { \r\n if (e.form === 'brand-info') {\r\n const data = this.getDifferentEntries(this.branInfoPrevValues, e.value) \r\n const formData = this.jsonToFormData(data)\r\n this.clientApi.updateBrandInfo(this.clientData.clientId, formData).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (e) => {\r\n this.toast.getSuccessToast(e.data?.result)\r\n this.clientApi.clientFormData.next({value:null, type:'submitted', form:'null'})\r\n this.gs.manageRefreshTrigger.next(true)\r\n },\r\n error: (e) => { \r\n this.toast.getErrorToast(e.error?.error)\r\n this.populateBrandInfo(this.clientData)\r\n }\r\n })\r\n\r\n } else if (e.form === 'billing-details') {\r\n const data = this.getDifferentEntries(this.billingDetailsPrevValues, e.value)\r\n const formData = this.jsonToFormData(data)\r\n \r\n this.clientApi.updateBillingDetails(this.clientData.clientId, formData).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (e) => {\r\n this.toast.getSuccessToast(e.data?.result)\r\n this.clientApi.clientFormData.next({value:null, type:'submitted', form:'null'})\r\n },\r\n error: (e) => {\r\n this.toast.getErrorToast(e.error?.error)\r\n this.populateBillingDetails(this.clientData)\r\n }\r\n })\r\n }else if (e.form === 'signatory-details') {\r\n const data = this.getDifferentEntries(this.signatoryDetailPrevValues, e.value)\r\n this.clientApi.updateSignatoryDetails(this.clientData.clientId, data).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (e) => {\r\n this.toast.getSuccessToast(e.data?.result)\r\n this.clientApi.clientFormData.next({value:null, type:'submitted', form:'null'})\r\n },\r\n error: (e) => {\r\n this.toast.getErrorToast(e.error?.error)\r\n this.populateSignatoryDetails(this.clientData)\r\n }\r\n })\r\n }\r\n }\r\n\r\n resetForm(e:any){\r\n if (e.form === 'brand-info') {\r\n this.populateBrandInfo(this.clientData)\r\n }else\r\n if (e.form === 'billing-details') {\r\n this.populateBillingDetails(this.clientData)\r\n }else\r\n if (e.form === 'signatory-details') {\r\n this.populateSignatoryDetails(this.clientData)\r\n }\r\n this.accordion.collapseAll()\r\n\r\n }\r\n\r\n getDifferentEntries(obj1: Record<string, any>, obj2: Record<string, any>): Record<string, any> {\r\n const differentEntries: Record<string, any> = {};\r\n for (const key in obj2) {\r\n if (obj1.hasOwnProperty(key) && obj1[key] !== obj2[key]) {\r\n differentEntries[key] = obj2[key];\r\n }\r\n }\r\n return differentEntries;\r\n}\r\n\r\n jsonToFormData(jsonData: Record<string, any>): FormData {\r\n\r\n const formData = new FormData();\r\n for (const key in jsonData) {\r\n if (jsonData.hasOwnProperty(key)) { \r\n const value = jsonData[key];\r\n formData.append(key, value);\r\n }\r\n }\r\n\r\n return formData;\r\n}\r\n\r\n\r\n\r\n}\r\n","<div class=\"row\">\r\n <div class=\"col-12\">\r\n <div ngbAccordion #accordion=\"ngbAccordion\" [closeOthers]=\"true\" [destroyOnHide]=\"true\" (show)=\"openItem($event)\">\r\n <div class=\"settings-accordian-card \" ngbAccordionItem>\r\n <div class=\"d-flex\" ngbAccordionHeader>\r\n <button class=\"mainheading\" ngbAccordionButton>\r\n <div class=\"header-row\">\r\n <span >Brand Info</span>\r\n <span class=\"divider\"></span>\r\n </div>\r\n </button>\r\n </div>\r\n <div ngbAccordionCollapse>\r\n <div ngbAccordionBody>\r\n <ng-template>\r\n <lib-brand-info></lib-brand-info>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"settings-accordian-card mt-6\" ngbAccordionItem>\r\n <div class=\"d-flex\" ngbAccordionHeader>\r\n <button class=\"mainheading\" ngbAccordionButton>\r\n <div class=\"header-row\">\r\n <span >Billing Details</span>\r\n <span class=\"divider\"></span>\r\n </div>\r\n </button>\r\n </div>\r\n <div ngbAccordionCollapse>\r\n <div ngbAccordionBody>\r\n <ng-template>\r\n <lib-billing-details></lib-billing-details>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"settings-accordian-card mt-6\" ngbAccordionItem>\r\n <div class=\"d-flex\" ngbAccordionHeader>\r\n <button class=\"mainheading\" ngbAccordionButton>\r\n <div class=\"header-row\">\r\n <span >Signatory Details</span>\r\n <span class=\"divider\"></span>\r\n </div>\r\n </button>\r\n </div>\r\n <div ngbAccordionCollapse>\r\n <div ngbAccordionBody>\r\n <ng-template>\r\n <lib-signatory-details></lib-signatory-details>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable,OnDestroy } from '@angular/core';\r\nimport { BehaviorSubject, Observable, Subject, takeUntil } from 'rxjs';\r\nimport * as FileSaver from 'file-saver';\r\nimport * as XLSX from 'xlsx';\r\n \r\nconst EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\r\nconst EXCEL_EXTENSION = '.xlsx';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PaymentSubscriptionService implements OnDestroy {\r\n paymentSubscriptionApiUrl:any;\r\n private reloadDataSubject = new BehaviorSubject<boolean>(false);\r\n reloadData$ = this.reloadDataSubject.asObservable();\r\n\r\n // clientId = new BehaviorSubject<string>('')\r\n // clientData = new BehaviorSubject<any>(null)\r\n paymentinvoiceFormData = new BehaviorSubject<any>({value:null, type:null, form:null})\r\n constructor(private http: HttpClient, private gs: GlobalStateService) {\r\n this.gs.environment.pipe(takeUntil(this.destroy$)).subscribe((env) => {\r\n if (env) {\r\n this.paymentSubscriptionApiUrl = env.paymentSubscriptionApiUrl;\r\n // this.clientId.next('11')\r\n }\r\n });\r\n // this.gs.selectedClient.pipe(takeUntil(this.destroy$)).subscribe((e:any)=>{\r\n // if(e){\r\n // console.log(e,'e');\r\n // }\r\n // })\r\n }\r\n \r\n triggerReload() {\r\n this.reloadDataSubject.next(true);\r\n }\r\n\r\n \r\n public exportAsExcelFile(json: any[], excelFileName: string): void {\r\n const worksheet: XLSX.WorkSheet = XLSX.utils.json_to_sheet(json);\r\n const workbook: XLSX.WorkBook = { Sheets: { 'data': worksheet }, SheetNames: ['data'] };\r\n const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });\r\n this.saveAsExcelFile(excelBuffer, excelFileName);\r\n }\r\n \r\n public saveAsExcelFile(buffer: any, fileName: string): void {\r\n const data: Blob = new Blob([buffer], {\r\n type: EXCEL_TYPE\r\n });\r\n FileSaver.saveAs(data, fileName + 'list'+ EXCEL_EXTENSION);\r\n }\r\n \r\n public saveAsTemplate(buffer: any, fileName: string): void {\r\n const data: Blob = new Blob([buffer], {\r\n type: EXCEL_TYPE\r\n });\r\n FileSaver.saveAs(data, fileName + EXCEL_EXTENSION);\r\n }\r\n private readonly destroy$ = new Subject();\r\n \r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n \r\n\r\n clientBillingInfo(params?: any): Observable<any> {\r\n return this.http\r\n .get(`${this.paymentSubscriptionApiUrl}/clientBillingSubscriptionInfo/${params}`)\r\n }\r\n \r\n updateaddbilling(billingBodyReq: any): Observable<any> {\r\n return this.http\r\n .post<any>(`${this.paymentSubscriptionApiUrl}/addBilling`, billingBodyReq)\r\n \r\n }\r\n addstepprice(billingBodyReq: any): Observable<any> {\r\n return this.http\r\n .post<any>(`${this.paymentSubscriptionApiUrl}/addstepprice`, billingBodyReq) \r\n }\r\n\r\n getpaymentinvoice(params?: any): Observable<any> {\r\n return this.http\r\n .get(`${this.paymentSubscriptionApiUrl}/InvoiceDetails/${params}`)\r\n }\r\n invoiceTableData( data:any):Observable<any>{\r\n return this.http.post(`${this.paymentSubscriptionApiUrl}/invoiceList`, data)\r\n }\r\n invoiceTableDataExport( data:any):Observable<any>{\r\n return this.http.post(`${this.paymentSubscriptionApiUrl}/invoiceList`, data, {responseType: 'arraybuffer'})\r\n }\r\n pendinginvoicelist( data:any):Observable<any>{\r\n return this.http.post(`${this.paymentSubscriptionApiUrl}/invoiceList`, data)\r\n }\r\n getinvoice(id?: any): Observable<any> {\r\n return this.http\r\n .get(`${this.paymentSubscriptionApiUrl}/creditNotes/invoiceList/${id}`)\r\n }\r\n getextendtrail(clientId:string):Observable<any>{ \r\n return this.http.get(`${this.paymentSubscriptionApiUrl}/getTrialProducts?clientId=${clientId}` )\r\n }\r\n trailapproval( data:any):Observable<any>{\r\n return this.http.post(`${this.paymentSubscriptionApiUrl}/trialExtendRequest`, data)\r\n }\r\n unsubscribe( data:any):Observable<any>{\r\n return this.http.post(`${this.paymentSubscriptionApiUrl}/unsubscribe`, data)\r\n }\r\n invoiceupdate( data:any,id:any):Observable<any>{\r\n return this.http.put(`${this.paymentSubscriptionApiUrl}/update/InvoiceDetails/${id}`, data)\r\n }\r\n creditnoteupdate( data:any):Observable<any>{\r\n return this.http.post(`${this.paymentSubscriptionApiUrl}/creditNotes`, data)\r\n }\r\n\r\n getPriceDetails(data: any): Observable<any> {\r\n return this.http\r\n .post<any>(`${this.paymentSubscriptionApiUrl}/admin/priceList`, data,{\r\n headers:{\r\n Authorization:'Bearer 31b90e5e-451a-4e48-a9e0-8f736b5be0ca'}\r\n })\r\n }\r\n\r\n updatePricing(data: any):Observable<any> {\r\n return this.http\r\n .post<any>(`${this.paymentSubscriptionApiUrl}/admin/pricing`, data, {\r\n headers: {\r\n Authorization: 'Bearer 31b90e5e-451a-4e48-a9e0-8f736b5be0ca'\r\n }\r\n })\r\n }\r\n\r\n getProductList(data: any):Observable<any> {\r\n return this.http\r\n .get<any>(`${this.paymentSubscriptionApiUrl}/admin/getProductViewList?clientId=${data.id}&sortColumn=${data.sortColumn}&sortBy=${data.sortBy}`, {\r\n headers: {\r\n Authorization: 'Bearer 31b90e5e-451a-4e48-a9e0-8f736b5be0ca'\r\n }\r\n })\r\n }\r\n\r\n getStoreList(data: any):Observable<any> {\r\n return this.http\r\n .post<any>(`${this.paymentSubscriptionApiUrl}/admin/getstoreViewList`,data, {\r\n })\r\n }\r\n\r\n getFilterDetails(data: any): Observable<any> {\r\n return this.http\r\n .get<any>(`${this.paymentSubscriptionApiUrl}/admin/getStoreLocationList?clientId=${data}`, {\r\n })\r\n } \r\n\r\n updateProduct(data: any): Observable<any> {\r\n return this.http\r\n .post<any>(`${this.paymentSubscriptionApiUrl}/admin/subscribeproduct`,data, {\r\n })\r\n }\r\n\r\n updateStore(data: any): Observable<any> {\r\n return this.http\r\n .post<any>(`${this.paymentSubscriptionApiUrl}/admin/addStoreProduct`,data, {\r\n })\r\n }\r\n \r\n storeProduct(data: any): Observable<any> {\r\n return this.http\r\n .post<any>(`${this.paymentSubscriptionApiUrl}/admin/getStoreProducts`,data, {\r\n })\r\n }\r\n\r\n unsubscribeApproval(data: any): Observable<any> {\r\n return this.http\r\n .post<any>(`${this.paymentSubscriptionApiUrl}/admin/unsubscribeApproval`,data, {\r\n })\r\n }\r\n\r\n getNotification(id: any): Observable<any> {\r\n return this.http\r\n .get<any>(`${this.paymentSubscriptionApiUrl}/admin/notificationList?clientId=${id}`, {\r\n })\r\n }\r\n\r\n trialExtentApproval(data: any): Observable<any> {\r\n return this.http\r\n .post<any>(`${this.paymentSubscriptionApiUrl}/admin/trialExtendApproval`,data, {\r\n })\r\n }\r\n\r\n approveTrial(data: any): Observable<any> {\r\n return this.http\r\n .post<any>(`${this.paymentSubscriptionApiUrl}/admin/trialApproval`,data, {\r\n })\r\n }\r\n\r\n basePricing(data: any): Observable<any> {\r\n return this.http\r\n .post<any>(`${this.paymentSubscriptionApiUrl}/basePricing`, data, {\r\n })\r\n }\r\n\r\n updateSubscription(data: any): Observable<any> {\r\n return this.http\r\n .put<any>(`${this.paymentSubscriptionApiUrl}/update/subscription/${data.clientId}`, data, {\r\n })\r\n }\r\n\r\n invoiceDownload(data: any): Observable<any> {\r\n return this.http.post(`${this.paymentSubscriptionApiUrl}/invoiceDownload/${data._id}`, data, {responseType: 'arraybuffer'})\r\n }\r\n\r\n\r\n\r\n}\r\n\r\n","import { Component, OnInit, Input, Output, EventEmitter, ChangeDetectorRef, OnDestroy, } from '@angular/core';\r\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { PaymentSubscriptionService } from '../../../../services/payment-subscription.service';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\n\r\n\r\n@Component({\r\n selector: 'lib-update',\r\n templateUrl: './update.component.html',\r\n styleUrl: './update.component.scss'\r\n})\r\nexport class UpdateComponent implements OnInit, OnDestroy {\r\n\r\n brandName: string = '';\r\n gstNumber: string = '';\r\n billingAddress: string = '';\r\n companyName: string = '';\r\n PlaceOfSupply: string = '';\r\n updateForm: FormGroup;\r\n @Input() modalData: any;\r\n @Output() passEntry: EventEmitter<any> = new EventEmitter();\r\n private readonly destroy$ = new Subject();\r\n\r\n constructor(\r\n public activeModal: NgbActiveModal, private modalService: NgbModal, private PaymentSubscriptionService: PaymentSubscriptionService, private fb: FormBuilder,\r\n private cd: ChangeDetectorRef, private toast: ToastService\r\n ) {\r\n this.initForm()\r\n }\r\n\r\n ngOnInit() {\r\n this.patchForm()\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n initForm() {\r\n this.updateForm = this.fb.group({\r\n brandName: ['', Validators.required],\r\n gstNumber: ['', Validators.required],\r\n billingAddress: ['', Validators.required],\r\n companyName: ['', Validators.required],\r\n PlaceOfSupply: ['', Validators.required]\r\n\r\n });\r\n }\r\n // get gstnumber() { return this.updateForm.get('gstNumber'); }\r\n // get billingaddress() { return this.updateForm.get('billingAddress'); }\r\n // get companyName() { return this.updateForm.get('companyName'); }\r\n // get PlaceOfSupply() { return this.updateForm.get('PlaceOfSupply'); }\r\n\r\n patchForm() {\r\n this.updateForm.patchValue({\r\n brandName: this.modalData?.brandName,\r\n gstNumber: this.modalData?.gstNumber,\r\n billingAddress: this.modalData?.billingAddress,\r\n PlaceOfSupply: this.modalData?.PlaceOfSupply,\r\n companyName: this.modalData?.companyName\r\n\r\n })\r\n this.cd.detectChanges()\r\n }\r\n\r\n closeModal() {\r\n this.activeModal.close();\r\n }\r\n\r\n onSubmit() {\r\n const requestData = {\r\n clientId: this.modalData.clientId,\r\n gstNo: this.updateForm.value.gstNumber,\r\n billingAddress: this.updateForm.value.billingAddress,\r\n companyName: this.updateForm.value.companyName,\r\n PlaceOfSupply: this.updateForm.value.PlaceOfSupply\r\n\r\n };\r\n\r\n this.PaymentSubscriptionService.updateaddbilling(requestData).pipe(takeUntil(this.destroy$)).subscribe(\r\n (response) => {\r\n this.activeModal.close(requestData);\r\n },\r\n (error) => {\r\n console.error('Error submitting update:', error);\r\n }\r\n );\r\n }\r\n submitUpdate() { }\r\n}\r\n","<div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <div class=\"headerclass\">Add Address</div>\r\n <div class=\"btn btn-sm btn-icon btn-active-color-primary\" data-bs-dismiss=\"modal\">\r\n <span (click)=\"activeModal.dismiss()\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M15 5L5 15M5 5L15 15\" stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n <!-- <i class=\"ki-duotone ki-cross fs-1\"><span class=\"path1\"></span><span\r\n class=\"path2\"></span></i> -->\r\n </div>\r\n </div>\r\n <div class=\"modal-body \">\r\n <!--begin::Form-->\r\n <form [formGroup]=\"updateForm\" action=\"#\">\r\n\r\n <div class=\"d-flex flex-column mb-7 fv-row fv-plugins-icon-container\">\r\n <div class=\"py-2\">\r\n <label class=\"required headingtext mb-2\">Brand Name</label>\r\n <input formControlName=\"brandName\" id=\"brandName\" readonly type=\"text\" class=\" ng-pristine ng-invalid ng-touched\"\r\n style=\"text-transform: capitalize;\">\r\n </div>\r\n <div class=\"py-2\">\r\n <label class=\"required headingtext mb-2\">GST No / Tax ID</label>\r\n <input formControlName=\"gstNumber\" id=\"gstNumber\" type=\"text\" class=\"ng-pristine ng-invalid ng-touched\"\r\n style=\"text-transform: capitalize;\">\r\n <!-- <div *ngIf=\"gstnumber?.errors?.required\" class=\"text-danger\"> \r\n GST Number is required.\r\n </div> -->\r\n </div>\r\n <div class=\"py-2\">\r\n <label class=\"required headingtext mb-2\">Company Name</label>\r\n <input formControlName=\"companyName\" id=\"companyName\" type=\"text\" class=\"ng-pristine ng-invalid ng-touched\"\r\n style=\"text-transform: capitalize;\">\r\n <!-- <div *ngIf=\"billingaddress?.errors?.required\" class=\"text-danger\">\r\n Billing Address is required.\r\n </div> -->\r\n </div>\r\n <div class=\"py-2\">\r\n <label class=\"required headingtext mb-2\">Billing Address</label>\r\n <input formControlName=\"billingAddress\" id=\"billingAddress\" type=\"text\" class=\"ng-pristine ng-invalid ng-touched\"\r\n style=\"text-transform: capitalize;\">\r\n <!-- <div *ngIf=\"billingaddress?.errors?.required\" class=\"text-danger\">\r\n Billing Address is required.\r\n </div> -->\r\n </div>\r\n <div class=\"py-2\">\r\n <label class=\"required headingtext mb-2\">PlaceOfSupply</label>\r\n <input formControlName=\"PlaceOfSupply\" id=\"PlaceOfSupply\" type=\"text\" class=\"ng-pristine ng-invalid ng-touched\"\r\n style=\"text-transform: capitalize;\">\r\n <!-- <div *ngIf=\"billingaddress?.errors?.required\" class=\"text-danger\">\r\n Billing Address is required.\r\n </div> -->\r\n </div>\r\n </div>\r\n <div class=\"d-flex\">\r\n <button type=\"submit\" (click)=\"closeModal()\"\r\n class=\"btn-outline btn cancel me-4 w-50\">Cancel</button>\r\n <button type=\"button\" [disabled]=\"updateForm.invalid\" (click)=\"onSubmit()\"\r\n tabindex=\"0\" class=\"btn btn-primary px-4 ng-star-inserted w-50\" style=\"white-space: nowrap;\"><span\r\n class=\"submit\">Submit </span></button>\r\n </div>\r\n \r\n </form>\r\n </div>\r\n <!--end::Modal body-->\r\n</div>","import { ChangeDetectorRef, Component, OnDestroy, OnInit,Input } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport Swal from 'sweetalert2';\r\nimport { PaymentSubscriptionService } from '../../../../services/payment-subscription.service';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { Subject, takeUntil } from 'rxjs';\r\n@Component({\r\n selector: 'lib-need-help',\r\n templateUrl: './need-help.component.html',\r\n styleUrl: './need-help.component.scss'\r\n})\r\nexport class NeedHelpComponent implements OnInit,OnDestroy {\r\n @Input() clientId:string;\r\n status = 'help';\r\n cancellingdropDown:boolean = false;\r\n trailextenddropDown:boolean = false;\r\n datalist = [];\r\n cancellingtype:any[] = ['Product Concern', 'Price Concern', 'Others' ];\r\n // trailextendtype: any = ['Tango Zone', 'Tango Revop', 'Tango TRAX'];\r\n trailextendtype: { name: string, value: string }[] = [];\r\n cancellingIssue: any = 'Product Concern';\r\n cancellingDescription:any;\r\n // trailextendIssue: any = 'Tango Zone';\r\n trailextendIssue: any;\r\n extendtrailform: FormGroup;\r\n trailextenditem:any;\r\n cancellingItem( cancellingvalue:any){\r\n this. cancellingIssue = cancellingvalue;\r\n this. cancellingdropDown = false;\r\n }\r\n trailextendItem( trailextendvalue:any){\r\n this. trailextendIssue = trailextendvalue;\r\n this.extendtrailform.get('producttype')?.setValue(this.trailextendIssue)\r\n this. trailextenddropDown = false;\r\n }\r\n private readonly destroy$ = new Subject();\r\n \r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n constructor(\r\n public activeModal: NgbActiveModal, private PaymentSubscriptionService: PaymentSubscriptionService, private changeDetector: ChangeDetectorRef,private fb: FormBuilder,private toast:ToastService\r\n ) { \r\n \r\n }\r\n ngOnInit(): void {\r\n this.trailextend(this.clientId);\r\n this.extendtrailform = this.fb.group({\r\n producttype: ['', Validators.required]\r\n });\r\n }\r\n \r\n unscubscribed() { \r\n const requestData = {\r\n clientId: this.clientId,\r\n reason: this.cancellingIssue,\r\n description: this.cancellingDescription\r\n \r\n };\r\n this.PaymentSubscriptionService.unsubscribe(requestData).pipe(takeUntil(this.destroy$)).subscribe ((res: any) => {\r\n if (res && res.code == 200) \r\n {\r\n this.activeModal.close(requestData);\r\n this.toast.getPrimaryToast(res.message)\r\n }},\r\n (error) => {\r\n this.toast.getErrorToast(error.error.error)\r\n console.error('Error submitting update:', error);\r\n })\r\n}\r\n\r\n extendtrail() {\r\n let product = this.trailextenditem.find((item:any)=>item.name == this.trailextendIssue); \r\n const requestData = {\r\n clientId: this.clientId,\r\n product: product.value,\r\n };\r\n this.PaymentSubscriptionService.trailapproval(requestData).pipe(takeUntil(this.destroy$)).subscribe ((res: any) => {\r\n if (res && res.code == 200) \r\n {\r\n this.activeModal.close(requestData);\r\n this.toast.getPrimaryToast(\"You have raised a ticket for extending trial request.\")\r\n }},\r\n (error) => {\r\n console.error('Error submitting update:', error);\r\n })\r\n \r\n}\r\n\r\n cancellingDropdown(event:MouseEvent){\r\n event.stopPropagation();\r\n this. cancellingdropDown = !this. cancellingdropDown;\r\n }\r\n trailextendDropdown(event:MouseEvent){\r\n event.stopPropagation();\r\n this. trailextenddropDown = !this. trailextenddropDown;\r\n }\r\n\r\n trailextend(id:any){\r\n this.PaymentSubscriptionService.getextendtrail(id).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n this.trailextenditem = res?.data\r\n this.trailextendIssue = this.trailextenditem[0].name;\r\n this.changeDetector.detectChanges();\r\n }\r\n });\r\n\r\n\r\n }\r\n}\r\n\r\n","<div class=\"modal-content\" *ngIf=\"status === 'help'\">\r\n <div class=\"p-6\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/needhelp-icon.svg\" alt=\"\"></div>\r\n <div class=\"heading mt-4 ms-1\">Need Help !</div>\r\n </div>\r\n <div class=\"modal-body mb-4 \">\r\n <a class=\"bgcontent\" (click)=\"status = 'extend'\">\r\n Need to raise a ticket for extending trial request <span class=\"ms-10\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path d=\"M9 18L15 12L9 6\" stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span>\r\n </a>\r\n <a class=\"bgcontent mt-4\" (click)=\"status = 'subscription'\">\r\n Need to raise a ticket for subscription cancellation <span class=\"ms-4\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path d=\"M9 18L15 12L9 6\" stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span>\r\n </a>\r\n </div>\r\n</div>\r\n\r\n<div [formGroup]=\"extendtrailform\" class=\"modal-content\" *ngIf=\"status === 'extend'\">\r\n <div class=\"p-6\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/plus-icon.svg\" alt=\"\"></div>\r\n <div class=\"heading mt-4 ms-1\">Extend Trial</div>\r\n </div>\r\n<div class=\"modal-body\">\r\n\r\n <div class=\"\">\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n <div>\r\n <label class=\"contenttext mb-4\">The 14 days trial has got expired. You can request for <span class=\"contenttextbold\">trial extension</span></label>\r\n <label for=\"producttype\" class=\"headingtext mb-2\">Pick a Product</label>\r\n <div class=\"position-relative \">\r\n <div class=\"form-select dropselect levelviewtext\" id=\"producttype\" (click)=\"trailextendDropdown($event)\"\r\n aria-label=\"Default select example\">{{trailextendIssue}}</div>\r\n <div *ngIf=\"trailextenddropDown\" class=\"card py-2 w-100 position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let item of trailextenditem\" class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"this.trailextendIssue.name === item.name ? 'active' : ''\" class=\"producttext px-5 items cursor-pointer py-4\" (click)=\"trailextendItem(item.name)\">{{item.name}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex mt-2 py-2\">\r\n <button type=\"submit\" (click)=\"status = 'help'\"\r\n class=\"btn-outline btn cancel me-4 w-50\">Cancel</button>\r\n <button type=\"button\" (click)=\"extendtrail()\"\r\n tabindex=\"0\" class=\"btn btn-primary px-4 ng-star-inserted w-50\" style=\"white-space: nowrap;\"><span\r\n class=\"submit\">Extend</span></button>\r\n </div>\r\n</div>\r\n</div>\r\n\r\n<div class=\"modal-content\" *ngIf=\"status === 'subscription'\">\r\n <div class=\"p-6\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/alert-icon.svg\" alt=\"\"></div>\r\n <div class=\"heading mt-4 ms-1\">Are you sure you want to raise ticket for subscription cancellation?</div>\r\n </div>\r\n<div class=\"modal-body\">\r\n\r\n <div class=\"\">\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n <div>\r\n <label class=\"headingtext mb-4\">Reason for cancelling</label>\r\n <div class=\"position-relative \">\r\n <div class=\"form-select dropselect levelviewtext\" id=\"currency\" (click)=\"cancellingDropdown($event)\"\r\n aria-label=\"Default select example\">{{cancellingIssue}}</div>\r\n <div *ngIf=\"cancellingdropDown\" class=\"card py-2 w-100 position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let cancellingitem of cancellingtype\" class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"this.cancellingIssue === cancellingitem ? 'active' : ''\" class=\"producttext px-5 items cursor-pointer py-4\" (click)=\"cancellingItem(cancellingitem)\">{{cancellingitem}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n <textarea [(ngModel)]=\"this.cancellingDescription\" placeholder=\"Enter a description...\" class=\" mt-6 custom-textarea\"></textarea>\r\n \r\n </div>\r\n </div>\r\n <div class=\"d-flex mt-2 py-2\">\r\n <button type=\"submit\" (click)=\"status = 'help';cancellingDescription=''\"\r\n class=\"btn-outline btn cancel me-4 w-50\">Cancel</button>\r\n <button type=\"button\" (click)=\"status ='unsubscribe'\"\r\n tabindex=\"0\" class=\"btn btn-danger px-4 ng-star-inserted w-50\" style=\"white-space: nowrap;\"><span\r\n class=\"submit\">Request Unsubscribing</span></button>\r\n </div>\r\n</div>\r\n</div>\r\n\r\n<div class=\"modal-content\" *ngIf=\"status === 'unsubscribe'\">\r\n <div class=\"p-6\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/alert-icon.svg\" alt=\"\"></div>\r\n <div class=\"heading mt-4 ms-1\">Unsubscribed</div>\r\n <div class=\"text-sub mt-4 ms-1\">Are you sure you want the unsubscribe?</div>\r\n </div>\r\n<div class=\"modal-body\" >\r\n <div class=\"d-flex mt-2 py-2\">\r\n <button type=\"submit\" (click)=\"status ='subscription';cancellingDescription=''\"\r\n class=\"btn-outline btn cancel me-4 w-50\">Cancel</button>\r\n <button type=\"button\" (click)=\"unscubscribed()\"\r\n tabindex=\"0\" class=\"btn btn-danger px-4 ng-star-inserted w-50\" style=\"white-space: nowrap;\"><span\r\n class=\"submit\">Yes, Confirm</span></button>\r\n </div>\r\n</div>\r\n</div>\r\n\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-trail-expired',\r\n templateUrl: './trail-expired.component.html',\r\n styleUrl: './trail-expired.component.scss'\r\n})\r\nexport class TrailExpiredComponent {\r\n\r\n}\r\n","<div class=\"modal-content\">\r\n <div class=\"p-6\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/expired-icon.svg\" alt=\"\"></div>\r\n <div class=\"subtext mt-4 ms-1\">Trial Expired! </div>\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n\r\n <div class=\"contenttext mt-4 mx-2\">Unleash the Power of Data - Make smarter, informed decisions based on\r\n comprehensive data analysis.\r\n </div>\r\n <div class=\"contenttext mt-4 mx-2\"> Tango Eye offers detailed reports and analytics, empowering you to\r\n optimize operations, drive revenue, and stay ahead in the competitive retail landscape.\r\n </div>\r\n <div class=\"help mx-3 py-6\"><u>Need help <span><svg width=\"14\" height=\"14\" viewBox=\"0 0 16 16\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g clip-path=\"url(#clip0_14141_69461)\">\r\n <path\r\n d=\"M8.00016 10.6654V7.9987M8.00016 5.33203H8.00683M14.6668 7.9987C14.6668 11.6806 11.6821 14.6654 8.00016 14.6654C4.31826 14.6654 1.3335 11.6806 1.3335 7.9987C1.3335 4.3168 4.31826 1.33203 8.00016 1.33203C11.6821 1.33203 14.6668 4.3168 14.6668 7.9987Z\"\r\n stroke=\"#009BF3\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_14141_69461\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span> </u></div>\r\n\r\n\r\n </div>\r\n <div class=\"d-flex mt-2 py-2\">\r\n <button type=\"button\" tabindex=\"0\" class=\"btn btn-primary px-4 ng-star-inserted w-100\">Upgrade Plan<span\r\n class=\"submit\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\" viewBox=\"0 0 21 20\"\r\n fill=\"none\">\r\n <path\r\n d=\"M11.1927 5.3125C11.5688 5.09375 11.8194 4.69687 11.8194 4.25C11.8194 3.55937 11.229 3 10.5 3C9.77101 3 9.18056 3.55937 9.18056 4.25C9.18056 4.7 9.43125 5.09375 9.80729 5.3125L7.91719 8.89375C7.61701 9.4625 6.83854 9.625 6.31406 9.22813L3.375 7C3.53993 6.79063 3.63889 6.53125 3.63889 6.25C3.63889 5.55938 3.04844 5 2.31944 5C1.59045 5 1 5.55938 1 6.25C1 6.94062 1.59045 7.5 2.31944 7.5C2.32604 7.5 2.33594 7.5 2.34253 7.5L3.85 15.3562C4.03142 16.3062 4.90556 17 5.92812 17H15.0719C16.0911 17 16.9653 16.3094 17.15 15.3562L18.6575 7.5C18.6641 7.5 18.674 7.5 18.6806 7.5C19.4095 7.5 20 6.94062 20 6.25C20 5.55938 19.4095 5 18.6806 5C17.9516 5 17.3611 5.55938 17.3611 6.25C17.3611 6.53125 17.4601 6.79063 17.625 7L14.6859 9.22813C14.1615 9.625 13.383 9.4625 13.0828 8.89375L11.1927 5.3125Z\"\r\n fill=\"white\" />\r\n </svg></span></button>\r\n </div>\r\n\r\n </div>\r\n</div>","import { Component, Input } from '@angular/core';\r\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'lib-successfull-subscription',\r\n templateUrl: './successfull-subscription.component.html',\r\n styleUrl: './successfull-subscription.component.scss'\r\n})\r\nexport class SuccessfullSubscriptionComponent {\r\n @Input() products:any;\r\n constructor(public activeModel: NgbActiveModal) {}\r\n}\r\n","<div class=\"modal-content gifimage\" >\r\n <div class=\"p-6\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/check-icon.svg\" alt=\"\"></div>\r\n <div class=\"heading mt-4 ms-1\">Thanks for the subscription!</div>\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n \r\n <div class=\"contenttext mt-4 mx-2\">You have successfully subscribed to our products \r\n <ul class=\"mt-4\">\r\n <li *ngFor=\"let product of products\">{{product}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div class=\"d-flex mt-2 py-2\">\r\n <button type=\"button\" tabindex=\"0\" class=\"btn btn-primary px-4 ng-star-inserted w-100\" style=\"white-space: nowrap;\" (click)=\"activeModel.close()\">\r\n <span class=\"submit\">Okay</span>\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnInit, OnDestroy } from '@angular/core';\r\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { SuccessfullSubscriptionComponent } from '../successfull-subscription/successfull-subscription.component';\r\nimport { PaymentSubscriptionService } from '../../../../services/payment-subscription.service';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { UpgradePlanComponent } from '../upgrade-plan/upgrade-plan.component';\r\n\r\n@Component({\r\n selector: 'lib-subscription-approval',\r\n templateUrl: './subscription-approval.component.html',\r\n styleUrl: './subscription-approval.component.scss'\r\n})\r\nexport class SubscriptionApprovalComponent implements OnInit, OnDestroy {\r\n @Input() products: any;\r\n @Input() clientInfo: any;\r\n productList: any = [];\r\n select: string = 'continuetrial';\r\n trailselect: string = 'subscribenow';\r\n supportselect: string = 'daystrial';\r\n\r\n gifVisible: boolean = false;\r\n private readonly destroy$ = new Subject();\r\n constructor(private modalService: NgbModal, public activeModel: NgbActiveModal, private toast: ToastService, private PaymentSubscriptionService: PaymentSubscriptionService) {\r\n }\r\n ngOnInit() {\r\n this.products.forEach((item: any) => {\r\n if (typeof item.toolTip != 'undefined' && item?.toolTip == 'On Trial' && item.active) {\r\n this.productList.push({\r\n name: item.productName,\r\n productName: item.aliseProductName,\r\n type: 'trial',\r\n content: 'trial'\r\n })\r\n }\r\n if (typeof item.toolTip != 'undefined' && item?.toolTip == 'Trial Expired' && item.active) {\r\n this.productList.push({\r\n name: item.productName,\r\n productName: item.aliseProductName,\r\n type: 'trial',\r\n content: 'trialExpired'\r\n })\r\n }\r\n if (!item?.toolTip && item.active) {\r\n this.productList.push({\r\n name: item.productName,\r\n productName: item.aliseProductName,\r\n type: 'startTrial',\r\n content: 'new'\r\n })\r\n }\r\n });\r\n\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n suscribed_old() {\r\n let data = {\r\n clientId: this.clientInfo.clientId,\r\n price: this.clientInfo.currentPlanInfo.price,\r\n priceType: this.clientInfo.currentPlanInfo.priceType,\r\n subscriptionType: this.clientInfo.currentPlanInfo.subscriptionType,\r\n subscriptionPeriod: this.clientInfo.currentPlanInfo.subscriptionPeriod,\r\n totalCamera: this.clientInfo.currentPlanInfo.totalCamera,\r\n totalStores: this.clientInfo.currentPlanInfo.totalStores,\r\n storeSize: this.clientInfo.currentPlanInfo.storeSize,\r\n products: this.productList\r\n }\r\n this.PaymentSubscriptionService.updateSubscription(data).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n this.activeModel.close();\r\n const modalRef = this.modalService.open(SuccessfullSubscriptionComponent, {\r\n centered: true, size: 'md'\r\n });\r\n modalRef.componentInstance.products = this.productList.filter((item: any) => item.type != 'cancel').map((item: any) => item.productName);\r\n }\r\n\r\n });\r\n this.gifVisible = true;\r\n }\r\n suscribed() {\r\n let data = {\r\n clientId: this.clientInfo.clientId,\r\n price: this.clientInfo.currentPlanInfo.price,\r\n priceType: this.clientInfo.currentPlanInfo.priceType,\r\n subscriptionType: this.clientInfo.currentPlanInfo.subscriptionType,\r\n subscriptionPeriod: this.clientInfo.currentPlanInfo.subscriptionPeriod,\r\n totalCamera: this.clientInfo.currentPlanInfo.totalCamera,\r\n totalStores: this.clientInfo.currentPlanInfo.totalStores,\r\n storeSize: this.clientInfo.currentPlanInfo.storeSize,\r\n products: this.productList\r\n }\r\n this.PaymentSubscriptionService.updateSubscription(data).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n this.activeModel.close();\r\n const modalRef = this.modalService.open(UpgradePlanComponent, {\r\n centered: true, size: 'md'\r\n });\r\n modalRef.componentInstance.clientId = this.clientInfo.clientId;\r\n modalRef.componentInstance.subscription = \"confirmationmessage\";\r\n modalRef.componentInstance.confirmedProducts = this.productList.filter((item: any) => item.type != 'cancel').map((item: any) => item.productName);\r\n modalRef.result.then((result) => { \r\n if (result) {\r\n }\r\n });\r\n }\r\n\r\n });\r\n this.gifVisible = true;\r\n }\r\n updateProduct(index: number, type: string) {\r\n this.productList[index].type = type;\r\n }\r\n}\r\n","<div class=\"modal-content\">\r\n <div class=\"p-6\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/settings-icon.svg\" alt=\"\"></div>\r\n <div class=\"heading mt-4 ms-1\">Confirmation</div>\r\n <div class=\"contenttext mt-4 ms-1\">\r\n Please update the status of below product\r\n </div>\r\n </div>\r\n <div class=\"modal-body\">\r\n <!--begin::Form-->\r\n <form id=\"kt_modal_new_card_form\" class=\"form fv-plugins-bootstrap5 fv-plugins-framework\" action=\"#\">\r\n \r\n <div class=\"fv-row fv-plugins-icon-container \">\r\n <div class=\"confirmationborder mb-3\" *ngFor=\"let product of productList;let i=index\">\r\n <div class=\"d-flex justify-content-between\">\r\n <label for=\"TangoZone\" class=\" producttext mb-2\">{{product.productName}}</label>\r\n <span class=\"badge badge-light-primary ms-2\" *ngIf=\"product.content === 'trial'\">On Trial\r\n <img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/primary-clock-icon.svg\" alt=\"\">\r\n </span>\r\n <span class=\"badge badge-light-warning ms-2\" *ngIf=\"product.content === 'trialExpired'\">Trial Expired\r\n <img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/warning-clock-icon.svg\" alt=\"\">\r\n </span>\r\n </div>\r\n <div class=\"form-group pt-1\" *ngIf=\"product.content === 'trial'\">\r\n <div class=\"form-check form-check-inline ps-0\" (click)=\"updateProduct(i,'trial')\">\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"ontrailRadioOptions_{{i}}\"\r\n id=\"inlineRadio1\" value=\"continuetrail\" checked>\r\n <label class=\"form-check-label radio-custom-label mx-3 producttext cursor-pointer\"\r\n for=\"inlineRadio1\">Continue with Trial</label>\r\n </div><br>\r\n <div class=\"form-check form-check-inline ps-0\" (click)=\"updateProduct(i,'subscription')\">\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"ontrailRadioOptions_{{i}}\"\r\n id=\"inlineRadio1\" value=\"addsubscription\">\r\n <label class=\"form-check-label producttext radio-custom-label mx-3 cursor-pointer\"\r\n for=\"inlineRadio1\">Add to Subscription</label>\r\n </div>\r\n \r\n </div>\r\n <div class=\"form-group pt-1\" *ngIf=\"product.content === 'trialExpired'\">\r\n <div class=\"form-check form-check-inline ps-0\" (click)=\"updateProduct(i,'subscription')\">\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"TrailExpiredRadioOptions_{{i}}\" id=\"inlineRadio1\"\r\n value=\"subscribenow\" checked>\r\n <label class=\"form-check-label radio-custom-label mx-3 producttext cursor-pointer\" for=\"inlineRadio1\">Subscribe Now</label>\r\n </div><br>\r\n <div class=\"form-check form-check-inline ps-0\" (click)=\"updateProduct(i,'cancel')\">\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"TrailExpiredRadioOptions_{{i}}\" id=\"inlineRadio1\"\r\n value=\"dolater\">\r\n <label class=\"form-check-label producttext radio-custom-label mx-3 cursor-pointer\" for=\"inlineRadio1\">I'll do it\r\n later</label>\r\n </div>\r\n \r\n </div>\r\n\r\n <div class=\"form-group pt-1\" *ngIf=\"product.content === 'new'\">\r\n <div class=\"form-check form-check-inline ps-0\" (click)=\"updateProduct(i,'trial')\">\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"supportRadioOptions_{{i}}\" id=\"inlineRadio1\"\r\n value=\"daystrail\" checked>\r\n <label class=\"form-check-label radio-custom-label mx-3 producttext cursor-pointer\" for=\"inlineRadio1\">Start 14\r\n days Trial</label>\r\n </div><br>\r\n <div class=\"form-check form-check-inline ps-0\" (click)=\"updateProduct(i,'subscription')\">\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"supportRadioOptions_{{i}}\" id=\"inlineRadio1\"\r\n value=\"subscribenow\">\r\n <label class=\"form-check-label producttext radio-custom-label mx-3 cursor-pointer\" for=\"inlineRadio1\">Subscribe\r\n Now</label>\r\n </div><br>\r\n <div class=\"form-check form-check-inline ps-0\" (click)=\"updateProduct(i,'cancel')\">\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"supportRadioOptions_{{i}}\" id=\"inlineRadio1\"\r\n value=\"later\">\r\n <label class=\"form-check-label producttext radio-custom-label mx-3 cursor-pointer\" for=\"inlineRadio1\">I'll do it\r\n later</label>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n <div class=\"d-flex mt-9 my-2\">\r\n <button type=\"submit\" class=\"btn-outline btn cancel me-4 w-50\" (click)=\"activeModel.close()\">Cancel</button>\r\n <button type=\"button\" (click)=\"suscribed()\" tabindex=\"0\"\r\n class=\"btn btn-primary px-4 ng-star-inserted w-50\" style=\"white-space: nowrap;\"><span\r\n class=\"submit\">Submit</span></button>\r\n </div>\r\n </div>\r\n \r\n \r\n <!--end::Actions-->\r\n </form>\r\n <!--end::Form-->\r\n \r\n </div>\r\n</div>","import { Component, Input, OnInit } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'lib-model-content',\r\n templateUrl: './model-content.component.html',\r\n styleUrl: './model-content.component.scss'\r\n})\r\nexport class ModalContentComponent implements OnInit{\r\n @Input() user: string;\r\n @Input() width: string;\r\n @Input() height: string;\r\n expandDetails: any = {\r\n tangoTraffic: false,\r\n tangoZone: false,\r\n tangoSop: false,\r\n prioritySupport: false,\r\n };\r\n constructor(\r\n public activeModal: NgbActiveModal\r\n ) { }\r\n ngOnInit() {\r\n this.expandDetails[this.user] = true\r\n\r\n }\r\n expandPlan(key: any) {\r\n const keys = Object.keys(this.expandDetails)\r\n keys.forEach((ele: any) => {\r\n if (key === ele) this.expandDetails[ele] = !this.expandDetails[ele]\r\n else this.expandDetails[ele] = false\r\n })\r\n }\r\n passBack() {\r\n this.activeModal.close(this.user);\r\n }\r\n}","<div [style.width]=\"width\" [style.height]=\"height\">\r\n <div class=\"modal-header border-bottom-0\">\r\n <!-- <h4 class=\"modal-title\" id=\"modal-basic-title\">Simple modal</h4> -->\r\n <div class=\"col-12 text-end \">\r\n <div class=\"btn btn-sm btn-icon btn-active-color-primary\" data-bs-dismiss=\"modal\">\r\n <i (click)=\"activeModal.dismiss('Cross click')\" class=\"ki-duotone ki-cross fs-1\"><span\r\n class=\"path1\"></span><span class=\"path2\"></span></i>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"modal-body pt-0\">\r\n <div class=\"row mx-5\">\r\n <div class=\"col-lg-6 col-md-6 col-sm-6 md-offset-3\">\r\n <div class=\"align-items-center border-0 mb-4\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"main fs-lg-1 text-gray-800 mb-2 \">Product Offerings</span>\r\n </h3>\r\n </div>\r\n <div class=\"\">\r\n <div class=\"d-flex align-items-center collapsible py-3 toggle mb-0\" data-bs-toggle=\"collapse\"\r\n data-bs-target=\"#kt_job_4_1\">\r\n <div class=\"btn btn-sm btn-icon mw-20px btn-active-color-primary me-5\"\r\n (click)=\"expandPlan('tangoTraffic')\">\r\n <span class=\"svg-icon svg-icon-primary svg-icon-1\" *ngIf=\"expandDetails.tangoTraffic\"><svg\r\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"6.0104\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n <span class=\"svg-icon svg-icon-1\" *ngIf=\"!expandDetails.tangoTraffic\"><svg width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"10.8891\" y=\"17.8033\" width=\"12\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(-90 10.8891 17.8033)\" fill=\"currentColor\"></rect>\r\n <rect x=\"6.01041\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n </div>\r\n <h4 class=\"text-gray-700 fw-bold cursor-pointer mb-0\">\r\n Tango Traffic\r\n </h4>\r\n </div>\r\n <div id=\"kt_job_4_1\" class=\"collapse show fs-6 ms-1\" *ngIf=\"expandDetails.tangoTraffic\">\r\n <div class=\"mb-4 text-gray-700 sub\">\r\n <ul>\r\n <li>Footfall Analysis.</li>\r\n <li>Bounced vs Engager Analysis</li>\r\n <li>Missed Opportunity Vs Conversion Rate.</li>\r\n <li>Footfall Image Directory by the hour.</li>\r\n <li>Infra tracking ticketing system.</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"m-0\">\r\n <div class=\"d-flex align-items-center collapsible py-3 toggle mb-0\" data-bs-toggle=\"collapse\"\r\n data-bs-target=\"#kt_job_4_1\">\r\n <div class=\"btn btn-sm btn-icon mw-20px btn-active-color-primary me-5\"\r\n (click)=\"expandPlan('tangoZone')\">\r\n <span class=\"svg-icon svg-icon-primary svg-icon-1\" *ngIf=\"expandDetails.tangoZone\"><svg\r\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"6.0104\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n <span class=\"svg-icon svg-icon-1\" *ngIf=\"!expandDetails.tangoZone\"><svg width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"10.8891\" y=\"17.8033\" width=\"12\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(-90 10.8891 17.8033)\" fill=\"currentColor\"></rect>\r\n <rect x=\"6.01041\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n </div>\r\n <h4 class=\"text-gray-700 fw-bold cursor-pointer mb-0\">\r\n Tango Zone\r\n </h4>\r\n </div>\r\n <div id=\"kt_job_4_1\" class=\"collapse show fs-6 ms-1\" *ngIf=\"expandDetails.tangoZone\">\r\n <div class=\"mb-4 text-gray-700 sub\">\r\n <ul>\r\n <li>Heatmap Analysis.</li>\r\n <li>Concentration % of each of your zone.</li>\r\n <li>Customer trajectory during their visit to your store.</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"m-0\">\r\n <div class=\"d-flex align-items-center collapsible py-3 toggle mb-0\" data-bs-toggle=\"collapse\"\r\n data-bs-target=\"#kt_job_4_1\">\r\n <div class=\"btn btn-sm btn-icon mw-20px btn-active-color-primary me-5\"\r\n (click)=\"expandPlan('tangoSop')\">\r\n <span class=\"svg-icon svg-icon-primary svg-icon-1\" *ngIf=\"expandDetails.tangoSop\"><svg width=\"24\"\r\n height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"6.0104\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n <span class=\"svg-icon svg-icon-1\" *ngIf=\"!expandDetails.tangoSop\"><svg width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"10.8891\" y=\"17.8033\" width=\"12\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(-90 10.8891 17.8033)\" fill=\"currentColor\"></rect>\r\n <rect x=\"6.01041\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n </div>\r\n <h4 class=\"text-gray-700 fw-bold cursor-pointer mb-0\">\r\n Tango TRAX\r\n </h4>\r\n </div>\r\n <div id=\"kt_job_4_1\" class=\"collapse show fs-6 ms-1\" *ngIf=\"expandDetails.tangoSop\">\r\n <div class=\"mb-4 text-gray-700 sub\">\r\n <ul>\r\n <li>Daily store operation.</li>\r\n <li> Extensive summary of data points like store open and close time.\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"m-0\">\r\n <div class=\"d-flex align-items-center collapsible py-3 toggle mb-0\" data-bs-toggle=\"collapse\"\r\n data-bs-target=\"#kt_job_4_1\">\r\n <div class=\"btn btn-sm btn-icon mw-20px btn-active-color-primary me-5\"\r\n (click)=\"expandPlan('prioritySupport')\">\r\n <span class=\"svg-icon svg-icon-primary svg-icon-1\" *ngIf=\"expandDetails.prioritySupport\"><svg\r\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"6.0104\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n <span class=\"svg-icon svg-icon-1\" *ngIf=\"!expandDetails.prioritySupport\"><svg width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"10.8891\" y=\"17.8033\" width=\"12\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(-90 10.8891 17.8033)\" fill=\"currentColor\"></rect>\r\n <rect x=\"6.01041\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n </div>\r\n <h4 class=\"text-gray-700 fw-bold cursor-pointer mb-0\">\r\n Priority Support\r\n </h4>\r\n </div>\r\n <div id=\"kt_job_4_1\" class=\"collapse show fs-6 ms-1\" *ngIf=\"expandDetails.prioritySupport\">\r\n <div class=\"mb-4 text-gray-700 sub\">\r\n <ul>\r\n <li> 24*7 CCTV monitoring of all the cameras in a single screen.</li>\r\n <li>Live and Recap video option for the entire day.\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <div class=\"col-lg-6 col-md-6 col-sm-6 \">\r\n <div class=\"card-header\">\r\n <video class=\"video-width\" muted autoplay controls style=\"border-radius: 20px;\">\r\n <source src=\"https://tangoeye-dashboard-video.objectstore.e2enetworks.net/tango-main-video%201.mp4\" type=\"video/mp4\">\r\n <!-- https://tango-staticsite.s3.ap-south-1.amazonaws.com/Tango+Eye_720p_with+music_Trim.mp4\" -->\r\n </video>\r\n </div>\r\n <div class=\"card-header align-items-center border-0 mt-4\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"main fs-lg-1 text-gray-800\">Product Walk-Through</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-header align-items-center border-0 my-2 ms-6\"><span class=\"sub\">We transform your\r\n existing CCTV cameras into a powerful store analytics tool.\r\n Our industry-first Al and computer vision technology help brands identify missed sale\r\n opportunities and focus on improving conversion rates across stores.</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { ChangeDetectorRef, Component, OnDestroy, Input, OnInit, HostListener } from '@angular/core';\r\nimport { UpdateComponent } from '../update/update.component';\r\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { SuccessfullSubscriptionComponent } from '../successfull-subscription/successfull-subscription.component';\r\nimport { TrailExpiredComponent } from '../trail-expired/trail-expired.component';\r\nimport { SubscriptionApprovalComponent } from '../subscription-approval/subscription-approval.component';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { PaymentSubscriptionService } from '../../../../services/payment-subscription.service';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { ModalContentComponent } from '../model-content/model-content.component';\r\n@Component({\r\n selector: 'lib-upgrade-plan',\r\n templateUrl: './upgrade-plan.component.html',\r\n styleUrl: './upgrade-plan.component.scss'\r\n})\r\nexport class UpgradePlanComponent implements OnDestroy,OnInit {\r\n @Input() clientId:string\r\n noofstoresdropDown: boolean = false;\r\n AvgstoresdropDown: boolean = false;\r\n noofstorestype: any[] = ['1(free)', '2 - 25', '26 - 50', '51 - 75', '76 - 100', '100+'];\r\n Avgstorestype: any[] = [{name:'50 - 500 sq.ft',value:'50-500'},{name: '500 - 750 sq.ft',value:'500-750'},{name:'750 - 1000 sq.ft',value:'750-1000'}, {name:'1000 - 1500 sq.ft',value:'1000-1500'}, {name:'1500 - 2000 sq.ft',value:'1500-2000'},{name: '2000+ sq.ft',value:'2000+'}];\r\n plan: string = 'monthly';\r\n showNavGroup: boolean = true;\r\n noofstoresitem: any;\r\n noofstoresIssue: any;\r\n Avgstoresitem: any;\r\n AvgstoresIssue: any;\r\n updateinfo: any;\r\n active: boolean = false;\r\n clientInfo: any;\r\n price:any;\r\n originalPrice:any = 0;\r\n oldProducts:any;\r\n disableBtn:boolean = true;\r\n trialproducts:any = [];\r\n expiredProducts:any =[];\r\n subscription = 'pricingplan';\r\n confirmedProducts:any = [];\r\n private readonly destroy$ = new Subject();\r\n clientinfo: any;\r\n\r\n\r\n constructor(private modalService: NgbModal, public activeModel: NgbActiveModal, private toast: ToastService, private PaymentSubscriptionService: PaymentSubscriptionService, private changeDetector: ChangeDetectorRef,) {\r\n }\r\n\r\n ngOnInit():void {\r\n this.updatesubscription(this.clientId);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n selectPlan(plan: string) {\r\n this.clientInfo.currentPlanInfo.subscriptionPeriod = plan;\r\n this.basePricing();\r\n }\r\n\r\n update() {\r\n const modalRef = this.modalService.open(UpdateComponent, {\r\n centered: true, size: 'md'\r\n });\r\n modalRef.componentInstance.modalData = {\r\n brandName: this.clientInfo?.clientName,\r\n gstNumber:this.clientInfo?.billingDetails?.gstNumber|| '',\r\n billingAddress:this.clientInfo?.billingDetails?.billingAddress|| '',\r\n clientId: this.clientInfo?.clientId\r\n }\r\n modalRef.result.then((result) => {\r\n if (result) {\r\n this.clientInfo.billingDetails.billingAddress = result?.billingAddress;\r\n this.changeDetector.detectChanges();\r\n }\r\n });\r\n\r\n }\r\n\r\n trailexpired() {\r\n this.activeModel.close();\r\n const modalRef = this.modalService.open(TrailExpiredComponent, {\r\n centered: true, size: 'md'\r\n });\r\n modalRef.result.then((result) => {\r\n\r\n });\r\n }\r\n\r\n confirmation() {\r\n this.activeModel.close();\r\n const modalRef = this.modalService.open(SubscriptionApprovalComponent, {\r\n centered: true, size: 'md', scrollable: true\r\n });\r\n modalRef.componentInstance.products = this.clientInfo?.currentPlanInfo?.product;\r\n modalRef.componentInstance.clientInfo = this.clientInfo;\r\n }\r\n\r\n toggleNavGroup() {\r\n this.showNavGroup = !this.showNavGroup;\r\n }\r\n\r\n noofstoresDropdown(event: MouseEvent) {\r\n event.stopPropagation();\r\n this.AvgstoresdropDown = false;\r\n this.noofstoresdropDown = !this.noofstoresdropDown;\r\n }\r\n AvgstoresDropdown(event: MouseEvent) {\r\n event.stopPropagation();\r\n this.noofstoresdropDown = false;\r\n this.AvgstoresdropDown = !this.AvgstoresdropDown;\r\n }\r\n\r\n updatesubscription(id: any) {\r\n this.PaymentSubscriptionService.clientBillingInfo(id).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n this.clientInfo = res.data;\r\n if(this.clientInfo?.currentPlanInfo?.trialProducts) {\r\n this.trialproducts = this.clientInfo.currentPlanInfo.trialProducts.map((item:any) => item.productName) ;\r\n }\r\n if(this.clientInfo?.currentPlanInfo?.expiredProducts) {\r\n this.expiredProducts = this.clientInfo.currentPlanInfo.expiredProducts.map((item:any) => item.productName) ;\r\n }\r\n \r\n this.oldProducts = JSON.parse(JSON.stringify(this.clientInfo.currentPlanInfo.product))\r\n this.basePricing();\r\n this.changeDetector.detectChanges();\r\n }\r\n })\r\n\r\n }\r\n\r\n basePricing() {\r\n let products = this.clientInfo?.currentPlanInfo?.product.filter((product:any) => product.active == true).map((item:any) => item.productName);\r\n let params: any = {\r\n camaraPerSqft: this.clientInfo.currentPlanInfo.storeSize,\r\n storesCount: this.clientInfo.currentPlanInfo.totalStores,\r\n planName: this.clientInfo.currentPlanInfo.subscriptionPeriod,\r\n products: products,\r\n currencyType: this.clientInfo?.currentPlanInfo?.currencyType || 'rupees'\r\n }\r\n this.PaymentSubscriptionService.basePricing(params).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if(res && res.code == 200) {\r\n this.clientInfo.currentPlanInfo.price = res.data.price;\r\n this.originalPrice = res.data.OriginalPrice;\r\n this.clientInfo.currentPlanInfo.totalCamera = res.data.camaraCount;\r\n this.changeDetector.detectChanges();\r\n }\r\n });\r\n }\r\n\r\n updateProduct(event:any,data:string) {\r\n let changesCount = 0;\r\n let productIndex = this.clientInfo?.currentPlanInfo?.product.findIndex((product:any) => product.productName == data);\r\n if(productIndex != -1) {\r\n if(event.target.checked)\r\n this.clientInfo.currentPlanInfo.product[productIndex].active = true;\r\n else \r\n this.clientInfo.currentPlanInfo.product[productIndex].active = false; \r\n }\r\n\r\n this.clientInfo?.currentPlanInfo?.product.forEach((item:any) => {\r\n let details = this.oldProducts.find((ele:any) => ele.productName == item.productName);\r\n if(details) {\r\n if(details.active != item.active) {\r\n changesCount++;\r\n }\r\n }\r\n })\r\n if (changesCount == 0) {\r\n this.disableBtn = true;\r\n }\r\n else {\r\n this.disableBtn = false;\r\n }\r\n this.basePricing();\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n noofstoresdata(noofstoresvalue: any) {\r\n this.clientInfo.currentPlanInfo.totalStores = noofstoresvalue;\r\n this.noofstoresdropDown = false;\r\n this.basePricing();\r\n }\r\n Avgstoresdata(Avgstoresvalue: any) {\r\n this.clientInfo.currentPlanInfo.storeSize = Avgstoresvalue;\r\n this.basePricing();\r\n this.AvgstoresdropDown = false;\r\n }\r\n getColorClass(toolTip: string) {\r\n switch (toolTip) {\r\n case 'Subscribed': return 'badge badge-light-success mx-4';\r\n case 'Trial Expired': return 'badge badge-light-warning mx-4';\r\n case 'On Trial': return 'badge badge-light-primary mx-4';\r\n default: return '';\r\n }\r\n }\r\n\r\n @HostListener('document:click', ['$event'])\r\n onDocumentClick(event: MouseEvent) {\r\n this.AvgstoresdropDown = false;\r\n this.noofstoresdropDown = false;\r\n }\r\n\r\n showInfo(data:any) {\r\n const modalRef = this.modalService.open(ModalContentComponent, {\r\n centered: true, size: 'lg', scrollable: true,\r\n });\r\n modalRef.componentInstance.user = data;\r\n }\r\n closePopupAndReloadData() {\r\n this.clientBillingInfo(this.clientId);\r\n this.PaymentSubscriptionService.triggerReload();\r\n this.activeModel.close();\r\n }\r\n clientBillingInfo(id: any) {\r\n this.PaymentSubscriptionService.clientBillingInfo(id).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n this.clientinfo = res.data;\r\n this.changeDetector.detectChanges();\r\n }\r\n })\r\n\r\n }\r\n\r\n\r\n}\r\n","<section *ngIf=\"subscription === 'pricingplan'\">\r\n <div *ngIf=\"showNavGroup\" class=\"nav-group nav-group-outline mx-auto mt-8 d-flex justify-content-center\">\r\n <button class=\"btn btn-color-gray-600 btn-active btn-active-secondary px-6 py-3 me-2\"\r\n [ngClass]=\"clientInfo?.currentPlanInfo?.subscriptionPeriod === 'monthly' ? 'activePlanBtn':'inactivePlanBtn'\"\r\n data-kt-plan=\"month\" (click)=\"selectPlan('monthly')\">\r\n Monthly\r\n </button>\r\n\r\n <button class=\"btn btn-color-gray-600 btn-active btn-active-secondary px-6 py-3\"\r\n [ngClass]=\"clientInfo?.currentPlanInfo?.subscriptionPeriod === 'quarterly'? 'activePlanBtn':'inactivePlanBtn'\"\r\n data-kt-plan=\"Quarterly\" (click)=\"selectPlan('quarterly')\">\r\n Quarterly - 10%\r\n </button>\r\n <button class=\"btn btn-color-gray-600 btn-active btn-active-secondary px-6 py-3\"\r\n [ngClass]=\"clientInfo?.currentPlanInfo?.subscriptionPeriod === 'annual'? 'activePlanBtn':'inactivePlanBtn'\"\r\n data-kt-plan=\"annual\" (click)=\"selectPlan('annual')\">\r\n Annual - 15%\r\n </button>\r\n\r\n</div>\r\n\r\n<div class=\"modal-body row \">\r\n <div class=\"col-lg-6 pe-8 vertical\">\r\n\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n <div class=\"py-2\">\r\n <label class=\"headingtext mb-3\">No of Stores </label>\r\n <div class=\"position-relative \">\r\n <div class=\"form-select dropselect levelviewtext\" id=\"currency\" (click)=\"noofstoresDropdown($event)\"\r\n aria-label=\"Default select example\">{{clientInfo?.currentPlanInfo?.totalStores ||\r\n noofstorestype[0]}}</div>\r\n <div *ngIf=\"noofstoresdropDown\" class=\"card py-2 w-100 position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let noofstores of noofstorestype\" class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"clientInfo?.currentPlanInfo?.totalStores === noofstores ? 'active' : ''\"\r\n class=\"producttext px-5 items cursor-pointer py-4\" (click)=\"noofstoresdata(noofstores)\">\r\n {{ noofstores }}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"py-2\">\r\n <label class=\"headingtext mb-3\">Average Size of Stores </label>\r\n <div class=\"position-relative \">\r\n <div class=\"form-select dropselect levelviewtext\" id=\"currency\" (click)=\"AvgstoresDropdown($event)\"\r\n aria-label=\"Default select example\">{{clientInfo?.currentPlanInfo?.storeSize ||\r\n Avgstorestype[0].value}}</div>\r\n <div *ngIf=\"AvgstoresdropDown\" class=\"card py-2 w-100 position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let Avgstores of Avgstorestype\" class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"clientInfo?.currentPlanInfo?.storeSize === Avgstores ? 'active' : ''\"\r\n class=\"producttext px-5 items cursor-pointer py-4\" (click)=\"Avgstoresdata(Avgstores.value)\">\r\n {{Avgstores.name}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"maxcam mt-2\">\r\n Maximum {{clientInfo?.currentPlanInfo?.totalCamera}} Cameras are permitted in stores with square feet between {{clientInfo?.currentPlanInfo?.storeSize}}.\r\n </div>\r\n </div>\r\n\r\n <div class=\"selecttext my-5 mt-12\">Select Products</div>\r\n\r\n <div *ngFor=\"let productlist of clientInfo?.currentPlanInfo?.product\" class=\"form-check form-switch d-flex justify-content-between mt-6\">\r\n <div>\r\n <span><input class=\"form-check-input\" type=\"checkbox\" role=\"switch\" id=\"tangorevop\"\r\n [checked]=\"productlist.active === true\" (change)=\"updateProduct($event,productlist.productName)\" [disabled]=\"productlist.status === 'live' || productlist.status === 'trial' \"></span>\r\n <label for=\"flexSwitchCheckDefault\"\r\n class=\"form-check-label headingtext d-flex\">{{productlist.aliseProductName}} \r\n <span [class]=\"getColorClass(productlist.toolTip)\">\r\n {{productlist.toolTip}} <span *ngIf=\"expiredProducts.length && productlist.productName.includes(expiredProducts)\"><img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/clockexpiry-icon.svg\" alt=\"\"> \r\n </span> <span *ngIf=\"trialproducts.length && productlist.productName.includes(trialproducts)\">\r\n <img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/primary-clock-icon.svg\" alt=\"\"> \r\n </span>\r\n </span>\r\n </label>\r\n </div>\r\n <span class=\"view\" (click)=\"showInfo(productlist.productName)\">View Info <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"14\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path\r\n d=\"M9 6.5V9.5C9 9.76522 8.89464 10.0196 8.70711 10.2071C8.51957 10.3946 8.26522 10.5 8 10.5H2.5C2.23478 10.5 1.98043 10.3946 1.79289 10.2071C1.60536 10.0196 1.5 9.76522 1.5 9.5V4C1.5 3.73478 1.60536 3.48043 1.79289 3.29289C1.98043 3.10536 2.23478 3 2.5 3H5.5M7.5 1.5H10.5M10.5 1.5V4.5M10.5 1.5L5 7\"\r\n stroke=\"#009BF3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </div>\r\n\r\n\r\n\r\n\r\n </div>\r\n <div class=\"col-lg-6 px-8\">\r\n <div class=\"pb-6\">\r\n\r\n <div class=\"pricingtext\">{{clientInfo?.currentPlanInfo?.subscriptionType | titlecase}}</div>\r\n\r\n <div class=\"semi mt-2\">\r\n Integrated Solution for Growing Business\r\n </div>\r\n <!-- <div class=\"d-flex\"><span class=\"me-3 mt-5\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2231_42342)\">\r\n <path\r\n d=\"M7.99967 10.6673V8.00065M7.99967 5.33398H8.00634M14.6663 8.00065C14.6663 11.6826 11.6816 14.6673 7.99967 14.6673C4.31778 14.6673 1.33301 11.6826 1.33301 8.00065C1.33301 4.31875 4.31778 1.33398 7.99967 1.33398C11.6816 1.33398 14.6663 4.31875 14.6663 8.00065Z\"\r\n stroke=\"#B54708\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2231_42342\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n <div class=\"subtext mt-6\">You will only be charged for < Tango Traffic,Tango <br>Zone & Tango RevOps >\r\n </div>\r\n </div> -->\r\n <div class=\"sub1text mt-5\">Starts from <span class=\"billedtext ms-2\"><s><span *ngIf=\"clientInfo?.currentPlanInfo?.currencyType === 'inr'\">₹</span><span *ngIf=\"clientInfo?.currentPlanInfo?.currencyType === 'dollar'\">$</span>{{originalPrice}}</s></span><span\r\n class=\"billingtext ms-4\"><span *ngIf=\"clientInfo?.currentPlanInfo?.currencyType === 'inr'\">₹</span><span\r\n *ngIf=\"clientInfo?.currentPlanInfo?.currencyType === 'dollar'\">$</span>{{clientInfo?.currentPlanInfo?.price || 0}}</span></div>\r\n <div class=\"sub1text mt-2\">Per store Per month</div>\r\n\r\n </div>\r\n <div class=\"detailstext\">Billing Details</div>\r\n\r\n <div class=\"sub1text py-4\">\r\n <div class=\"mb-4\">Brand Name: {{clientInfo?.clientName}}</div>\r\n <div>Billing Address: {{clientInfo?.billingDetails?.billingAddress || '--'}}</div>\r\n </div>\r\n <div class=\"d-flex justify-content-end subscribe\"> \r\n <button (click)=\"update()\" type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-primary ms-2 ng-star-inserted w-100 btn-block text-nowrap\" *ngIf=\"!clientInfo?.billingDetails?.billingAddress\"><span class=\"submit\">Enter\r\n Billing Details </span></button>\r\n <button (click)=\"confirmation()\" type=\"button\" tabindex=\"0\" *ngIf=\"clientInfo?.billingDetails?.billingAddress\"\r\n class=\"btn btn-primary ms-2 ng-star-inserted w-100 btn-block\" style=\"white-space: nowrap;\" [disabled]=\"disableBtn\"><span\r\n class=\"submit\">Subscribe Now </span></button>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n</section>\r\n\r\n<div *ngIf=\"subscription === 'confirmationmessage'\" class=\"modal-content gifimage\" >\r\n <div class=\"p-6\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/check-icon.svg\" alt=\"\"></div>\r\n <div class=\"heading mt-4 ms-1\">Thanks for the subscription!</div>\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n \r\n <div class=\"contenttext mt-4 mx-2\">You have successfully subscribed to our products \r\n <ul class=\"mt-4\">\r\n <li *ngFor=\"let product of confirmedProducts\">{{product}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n \r\n <div class=\"d-flex mt-2 py-2\">\r\n <button type=\"button\" tabindex=\"0\" class=\"btn btn-primary px-4 ng-star-inserted w-100\" (click)=\"closePopupAndReloadData()\" style=\"white-space: nowrap;\">\r\n <span class=\"submit\">Okay</span>\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, OnInit, Input, Output, EventEmitter, ChangeDetectorRef, OnDestroy, HostListener } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport Swal from 'sweetalert2';\r\nimport { PaymentSubscriptionService } from '../../../../services/payment-subscription.service';\r\nimport { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { left } from '@popperjs/core';\r\nimport { Subject, takeUntil } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'lib-credit-note',\r\n templateUrl: './credit-note.component.html',\r\n styleUrl: './credit-note.component.scss'\r\n})\r\nexport class CreditNoteComponent implements OnInit,OnDestroy {\r\n @Input() clientId:any;\r\n invoiceIssue: any;\r\n invoicetype: { name: string, value: string }[] = []; \r\n invoicetypedropDown:boolean = false;\r\n creditnoteform: FormGroup;\r\n totalAmount: number = 0;\r\n discount: any;\r\n revisedAmount: number = 0\r\n moreThanTenPercent:boolean = false\r\n\r\n @Output() passEntry: EventEmitter<any> = new EventEmitter();\r\n invoiceitem: any;\r\n\r\n private readonly destroy$ = new Subject();\r\n \r\n constructor(\r\n public activeModal: NgbActiveModal,private PaymentSubscriptionService: PaymentSubscriptionService, private changeDetector: ChangeDetectorRef,private fb: FormBuilder,private toast:ToastService\r\n ) { \r\n }\r\n\r\n ngOnInit(): void {\r\n this.creditnote();\r\n this.creditnoteform = this.fb.group({\r\n invoicetype: ['', Validators.required],\r\n totalAmount: ['', Validators.required], \r\n revisedAmount:['', Validators.required] ,\r\n discount: ['',[ Validators.required, Validators.max(10)]],\r\n });\r\n this.creditnoteform.get('revisedAmount')?.valueChanges.pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if(e) { \r\n this.totalAmount = this.creditnoteform.get('totalAmount')?.value;\r\n this.discount = ((this.totalAmount - e) / this.totalAmount * 100).toFixed(2);\r\n this.revisedAmount=e;\r\n if(this.discount>10 || isNaN(e) || this.discount < 0 || e < 0){\r\n this.moreThanTenPercent = true; \r\n }\r\n else {\r\n this.moreThanTenPercent = false;\r\n }\r\n this.creditnoteform.get('discount')?.setValue(this.discount, {\r\n emitEvent\r\n : false });\r\n }else{\r\n let emptdiscount = ''\r\n this.creditnoteform.get('discount')?.setValue(emptdiscount, {\r\n emitEvent\r\n : false });\r\n this.moreThanTenPercent = false; \r\n } \r\n })\r\n \r\n this.creditnoteform.get('discount')?.valueChanges.pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if(e) {\r\n this.totalAmount = this.creditnoteform.get('totalAmount')?.value;\r\n this.revisedAmount = this.totalAmount * (1 - e / 100);\r\n this.revisedAmount = parseInt(this.revisedAmount.toFixed())\r\n this.discount=e;\r\n if (this.discount>10 || isNaN(e) || e < 0 || this.revisedAmount < 0){\r\n this.moreThanTenPercent = true; \r\n }\r\n else {\r\n this.moreThanTenPercent = false;\r\n }\r\n this.creditnoteform.get('revisedAmount')?.setValue(this.revisedAmount, {\r\n emitEvent\r\n : false });\r\n }else{\r\n let emptdiscount = ''\r\n this.creditnoteform.get('revisedAmount')?.setValue(emptdiscount, {\r\n emitEvent\r\n : false });\r\n this.moreThanTenPercent = false; \r\n }\r\n\r\n this.changeDetector.detectChanges();\r\n\r\n })\r\n }\r\n get revisedamount() { return this.creditnoteform.get('revisedAmount'); }\r\n get discounts() { return this.creditnoteform.get('discount'); }\r\n \r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n \r\n creditnote(){\r\n \r\n this.PaymentSubscriptionService.getinvoice(this.clientId).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n this.invoiceitem = res?.data;\r\n this.invoiceIssue = this.invoiceitem[0]?.invoice;\r\n const totalAmount = this.invoiceitem[0]?.totalAmount || \"\";\r\n this.creditnoteform.patchValue({\r\n totalAmount: totalAmount,\r\n discount:this.invoiceitem[0]?.discount\r\n });\r\n \r\n this.changeDetector.detectChanges();\r\n }\r\n });\r\n }\r\n\r\n invoiceItem(invoicevalue:any){\r\n this.creditnoteform.patchValue({\r\n totalAmount: invoicevalue.totalAmount,\r\n ...(invoicevalue?.discount ? {discount:invoicevalue?.discount} : {discount:''}),\r\n ...(invoicevalue?.revisedAmount ? {revisedAmount:invoicevalue?.revisedAmount} : {revisedAmount:''})\r\n });\r\n this.invoiceIssue = invoicevalue.invoice;\r\n this.creditnoteform.get('invoicetype')?.setValue(this.invoiceIssue)\r\n this.invoicetypedropDown = false;\r\n }\r\n invoicetypeDropdown(event:MouseEvent){\r\n event.stopPropagation();\r\n this.invoicetypedropDown = !this.invoicetypedropDown;\r\n this.revisedAmount \r\n }\r\n successcredit() {\r\n const requestData = {\r\n invoice:this.invoiceIssue,\r\n revisedAmount:this.revisedAmount,\r\n discount:this.discount\r\n };\r\n this.PaymentSubscriptionService.creditnoteupdate(requestData).pipe(takeUntil(this.destroy$)).subscribe ((res: any) => {\r\n if (res && res.code == 200) {\r\n this.activeModal.close('successcredit');\r\n // this.toast.getPrimaryToast(res.message);\r\n this.changeDetector.detectChanges()\r\n }},\r\n (error) => {\r\n console.error('Error submitting update:', error);\r\n })\r\n }\r\n \r\n @HostListener('document:click', ['$event'])\r\n onDocumentClick(event: MouseEvent) {\r\n this.invoicetypedropDown = false;\r\n }\r\n}\r\n\r\n","<div class=\"modal-content\">\r\n <div class=\"p-5 px-6\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/plus-icon.svg\" alt=\"\"></div>\r\n <div class=\"heading mt-4 ms-1\">Add Credit Note</div>\r\n <div class=\"contenttext mt-4\">\r\n You have the flexibility to select a month in which the brand can make credit payments.\r\n </div>\r\n </div>\r\n\r\n <div class=\"modal-body mb-8\">\r\n <!--begin::Form-->\r\n <form [formGroup]=\"creditnoteform\" class=\"form fv-plugins-bootstrap5 fv-plugins-framework\" action=\"#\">\r\n\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n <div class=\"form-group py-2\">\r\n <label for=\"invoicetype\" class=\"headingtext mb-2\">Invoice ID</label>\r\n <div class=\"position-relative\">\r\n <div class=\"form-select dropselect\" id=\"invoicetype\"\r\n (click)=\"invoicetypeDropdown($event)\"\r\n aria-label=\"Default select example\">{{invoiceIssue}}</div>\r\n <div *ngIf=\"invoicetypedropDown\"\r\n class=\"card py-2 w-100 invoiceidselect position-absolute end-0 z-1 invoiceDropDown\">\r\n <ul *ngFor=\"let item of invoiceitem\"\r\n class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"this.invoiceIssue === item?.invoice ? 'active' : ''\"\r\n class=\"producttext px-5 items cursor-pointer py-4\"\r\n (click)=\"invoiceItem(item)\">\r\n {{item?.invoice}}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div for=\"totalAmount\" class=\"form-group py-2\">\r\n <label class=\" headingtext mb-2 \">Total Amount</label>\r\n <div class=\"input-group\">\r\n <span class=\"dollar-sign totalamount\">₹</span><input formControlName=\"totalAmount\" type=\"text\" readonly class=\"ng-pristine ng-invalid ng-touched totalamount\"\r\n style=\"text-transform: capitalize;\"></div>\r\n\r\n </div>\r\n <div for=\"revisedAmount\" class=\"form-group mt-2\">\r\n <div class=\"py-2\">\r\n <label class=\" headingtext mb-2\"> Revised Amount</label>\r\n <div class=\"input-group dropselect\">\r\n <span class=\"dollar-sign\">₹</span><input type=\"text\" formControlName=\"revisedAmount\" [ngClass]=\"moreThanTenPercent ? 'errorinput' : ''\"\r\n style=\"text-transform: capitalize;\">\r\n <span class=\"icon\" *ngIf=\"moreThanTenPercent\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_7513_36689)\">\r\n <path d=\"M7.99967 5.33301V7.99967M7.99967 10.6663H8.00634M14.6663 7.99967C14.6663 11.6816 11.6816 14.6663 7.99967 14.6663C4.31778 14.6663 1.33301 11.6816 1.33301 7.99967C1.33301 4.31778 4.31778 1.33301 7.99967 1.33301C11.6816 1.33301 14.6663 4.31778 14.6663 7.99967Z\" stroke=\"#F04438\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_7513_36689\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\"/>\r\n </clipPath>\r\n </defs>\r\n </svg></span></div>\r\n </div>\r\n <span *ngIf=\"!moreThanTenPercent\" class=\"headingtext contenttext\">More than 10% can’t be revised from total amount</span>\r\n <span *ngIf=\"moreThanTenPercent\" class=\"text-danger contenttext\">More than 10% can’t be revised from total amount</span>\r\n </div>\r\n <div for=\"discount\" class=\"form-group mt-2\">\r\n <div class=\"py-2\">\r\n <label class=\" headingtext mb-2\"> Discount</label>\r\n <div class=\"input-group\"> <input type=\"text\" formControlName=\"discount\" class=\"totalamount\" [ngClass]=\"moreThanTenPercent ? 'errorinput' : ''\" >\r\n <span class=\"icon\" *ngIf=\"!moreThanTenPercent\" >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M12.667 3.33366L3.33366 12.667M6.00033 4.33366C6.00033 5.25413 5.25413 6.00033 4.33366 6.00033C3.41318 6.00033 2.66699 5.25413 2.66699 4.33366C2.66699 3.41318 3.41318 2.66699 4.33366 2.66699C5.25413 2.66699 6.00033 3.41318 6.00033 4.33366ZM13.3337 11.667C13.3337 12.5875 12.5875 13.3337 11.667 13.3337C10.7465 13.3337 10.0003 12.5875 10.0003 11.667C10.0003 10.7465 10.7465 10.0003 11.667 10.0003C12.5875 10.0003 13.3337 10.7465 13.3337 11.667Z\" stroke=\"#98A2B3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span>\r\n <span class=\"icon\" *ngIf=\"moreThanTenPercent\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M12.667 3.33366L3.33366 12.667M6.00033 4.33366C6.00033 5.25413 5.25413 6.00033 4.33366 6.00033C3.41318 6.00033 2.66699 5.25413 2.66699 4.33366C2.66699 3.41318 3.41318 2.66699 4.33366 2.66699C5.25413 2.66699 6.00033 3.41318 6.00033 4.33366ZM13.3337 11.667C13.3337 12.5875 12.5875 13.3337 11.667 13.3337C10.7465 13.3337 10.0003 12.5875 10.0003 11.667C10.0003 10.7465 10.7465 10.0003 11.667 10.0003C12.5875 10.0003 13.3337 10.7465 13.3337 11.667Z\" stroke=\"#F04438\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span>\r\n \r\n </div>\r\n </div>\r\n <span *ngIf=\"!moreThanTenPercent\" class=\"headingtext contenttext\">In percentage</span>\r\n <span *ngIf=\"moreThanTenPercent\" class=\"text-danger contenttext\">In percentage</span>\r\n </div>\r\n </div>\r\n <div class=\"d-flex mt-5\">\r\n <button type=\"submit\" (click)=\"activeModal.dismiss()\"\r\n class=\"btn-outline btn cancel me-4 w-50\">Cancel</button>\r\n <button [disabled]=\"moreThanTenPercent\" type=\"button\" (click)=\"successcredit()\" tabindex=\"0\" \r\n class=\"btn btn-primary px-4 ng-star-inserted w-50\" style=\"white-space: nowrap;\"><span\r\n class=\"submit\">Apply </span></button>\r\n </div>\r\n </form>\r\n </div>\r\n</div>","import { Component, Input, OnInit } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport Swal from 'sweetalert2';\r\n@Component({\r\n selector: 'lib-pricing-revised',\r\n templateUrl: './pricing-revised.component.html',\r\n styleUrl: './pricing-revised.component.scss'\r\n})\r\nexport class PricingRevisedComponent implements OnInit {\r\n @Input() productNewDetails: any;\r\n @Input() productOldDetails: any;\r\n constructor(\r\n public activeModal: NgbActiveModal\r\n ) {\r\n \r\n }\r\n\r\n ngOnInit() {\r\n this.productNewDetails.product.forEach((newProduct:any) => {\r\n let oldDetails = this.productOldDetails.product.find((oldProduct: any) => oldProduct.productName == newProduct.productName && oldProduct.storeRange == newProduct.storeRange);\r\n if(oldDetails) {\r\n newProduct.oldPrice = oldDetails.price;\r\n newProduct.oldStoreCount = oldDetails.storeCount; \r\n }\r\n else {\r\n let oldDetails = this.productOldDetails.product.filter((oldProduct: any) => oldProduct.productName == newProduct.productName);\r\n if (oldDetails.length) {\r\n newProduct.oldPrice = newProduct.storeCount * (oldDetails[oldDetails.length - 1].basePrice - oldDetails[oldDetails.length - 1].negotiatePrice);\r\n newProduct.oldStoreCount = newProduct.storeCount;\r\n }\r\n }\r\n })\r\n }\r\n\r\n revised() { \r\n this.activeModal.close('save');\r\n }\r\n\r\n convertUpper(data:string) {\r\n let [firstWord, secondWord] = data.replace(/([a-z])([A-Z])/g, '$1 $2').split(' ');\r\n firstWord = firstWord.charAt(0).toUpperCase() + firstWord.slice(1);\r\n return firstWord + ' ' + secondWord;\r\n }\r\n\r\n}\r\n","<div class=\"modal-content\">\r\n <div class=\"p-6\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/danger-icon.svg\" alt=\"\"></div>\r\n <div class=\"heading mt-4 ms-1\">Pricing has been revised</div>\r\n <div class=\"contenttext mt-4 ms-1\">\r\n Please Confirm to proceed\r\n </div>\r\n </div>\r\n <div class=\"modal-body \">\r\n <table class=\"w-100\">\r\n <tr >\r\n <th class=\"thheader\">Product</th>\r\n <th class=\"thheader\">Description</th>\r\n <th class=\"thheader\">Current Data</th>\r\n <th class=\"reviseddata\">Revised Data</th>\r\n </tr>\r\n \r\n <tbody>\r\n <ng-container *ngFor=\"let item of productNewDetails.product\">\r\n <tr>\r\n <th class=\"productprice\" rowspan=\"2\">\r\n {{convertUpper(item.productName)}}\r\n </th>\r\n <th class=\"totalproduct\">Stores</th>\r\n <td>{{item.oldStoreCount}}</td>\r\n <td class=\"bolddata\">{{item.storeCount}}</td>\r\n </tr>\r\n <tr>\r\n <!-- <td class=\"bolddata\">$200000</td> -->\r\n <th class=\"totalproduct\">Price</th>\r\n <td>₹{{item.oldPrice}}</td>\r\n <td class=\"bolddata\">₹{{item.price}}</td>\r\n </tr>\r\n </ng-container>\r\n </tbody>\r\n\r\n \r\n <div class=\"mt-4 w-100\"></div>\r\n\r\n <tr>\r\n <th class=\"totalsubproduct\">Sub Total</th>\r\n <th class=\"subproductborder\"></th>\r\n <td>₹{{productOldDetails.totalNegotiatePrice}}</td>\r\n <td class=\"bolddata\">₹{{productNewDetails.totalNegotiatePrice}}</td>\r\n </tr >\r\n <tr>\r\n <th class=\"totalsubproduct\">Tax</th>\r\n <th class=\"subproductborder\"></th>\r\n <td>18%</td>\r\n <td class=\"bolddata\">18%</td>\r\n </tr>\r\n <tr>\r\n <th class=\"totalsubproduct\">Discount</th>\r\n <th class=\"subproductborder\"></th>\r\n <td>{{productOldDetails.discountPercentage}}%</td>\r\n <td class=\"bolddata\">{{productNewDetails.discountPercentage}}%</td>\r\n </tr>\r\n <tr>\r\n <th class=\"totalsubproduct\">Total Amount</th>\r\n <th class=\"subproductborder\"></th>\r\n <td>₹{{productOldDetails.finalValue}}</td>\r\n <td class=\"bolddata\">₹{{productNewDetails.finalValue}}</td>\r\n </tr>\r\n </table>\r\n <div data-kt-subscription-table-toolbar=\"base\"\r\n class=\"d-flex justify-content-end mt-6\"><a type=\"submit\" (click)=\"activeModal.close()\"\r\n class=\"btn-outline btn cancel me-4\">Cancel</a><a \r\n type=\"button\" tabindex=\"0\" (click)=\"revised()\"\r\n class=\"btn btn-primary px-4 ng-star-inserted cancel text-nowrap\"\r\n >Send\r\n </a></div>\r\n\r\n \r\n </div>\r\n</div>","import { Component, Input} from '@angular/core';\r\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { PaymentSubscriptionService } from '../../../../services/payment-subscription.service';\r\nimport Swal from 'sweetalert2';\r\n\r\n@Component({\r\n selector: 'lib-add-stepprice',\r\n templateUrl: './add-stepprice.component.html',\r\n styleUrl: './add-stepprice.component.scss'\r\n})\r\nexport class AddSteppriceComponent {\r\n @Input() steppricetitle:string\r\n @Input() steppriceicon:string\r\n @Input() steppricedescription:string\r\n @Input() steppricebutton:string\r\n storeintervaldropDown:boolean = false;\r\n storeintervaltype: any = ['50', '100', '150', '200', '300'];\r\n storeintervalIssue: any = '50';\r\n storeintervalItem( storeintervalvalue:any){\r\n this.storeintervalIssue = storeintervalvalue;\r\n this.storeintervaldropDown = false;\r\n }\r\n\r\n constructor(\r\n public activeModal: NgbActiveModal, private modalService:NgbModal, private PaymentSubscriptionService: PaymentSubscriptionService,\r\n ) { }\r\n \r\n storeintervalDropdown(event:MouseEvent){\r\n event.stopPropagation();\r\n this. storeintervaldropDown = !this. storeintervaldropDown;\r\n }\r\n\r\n addedstepprice() {\r\n let data = {\r\n intravel: this.storeintervalIssue,\r\n title:this.steppricetitle\r\n }\r\n this.activeModal.close(data);\r\n }\r\n\r\n\r\n}\r\n\r\n\r\n","<div class=\"modal-content\" *ngIf=\"steppricetitle !== 'delete'\">\r\n <div class=\"p-6\">\r\n <div><img src={{steppriceicon}} alt=\"\"></div>\r\n <div class=\"heading mt-4 ms-1\">{{steppricetitle}}</div>\r\n </div>\r\n<div class=\"modal-body\">\r\n\r\n <div class=\"\">\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n <div>\r\n <label class=\"text-sub mb-6\">{{steppricedescription}}</label>\r\n <label class=\" producttext mb-2\">Store Interval</label>\r\n <div class=\"position-relative \">\r\n <div class=\"form-select dropselect levelviewtext\" id=\"currency\" (click)=\"storeintervalDropdown($event)\"\r\n aria-label=\"Default select example\">{{storeintervalIssue}}</div>\r\n <div *ngIf=\"storeintervaldropDown\" class=\"card stepprice py-2 w-100 position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let storeintervalitem of storeintervaltype\" class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"this.storeintervalIssue === storeintervalitem ? 'active' : ''\" class=\"producttext px-5 items cursor-pointer py-4\" (click)=\"storeintervalItem(storeintervalitem)\">{{storeintervalitem}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex mt-7 py-3\">\r\n <button type=\"submit\" (click)=\"activeModal.dismiss()\"\r\n class=\"btn-outline btn cancel me-4 w-50\">Cancel</button>\r\n <button type=\"button\" (click)=\"addedstepprice()\"\r\n tabindex=\"0\" class=\"btn btn-primary px-4 ng-star-inserted w-50\" style=\"white-space: nowrap;\"><span\r\n class=\"submit\">{{steppricebutton}}</span></button>\r\n </div>\r\n</div>\r\n</div>\r\n\r\n<div class=\"modal-content\" *ngIf=\"steppricetitle === 'delete'\">\r\n <div class=\"p-6\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/alert-icon.svg\" alt=\"\"></div>\r\n <div class=\"heading mt-4 ms-1\">Delete Step Column</div>\r\n </div>\r\n<div class=\"modal-body\">\r\n\r\n <div class=\"\">\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n <div>\r\n <label class=\"headingtext mb-4\">Are you sure you want to delete the column</label>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex mt-3 py-1\">\r\n <button type=\"submit\" (click)=\"activeModal.dismiss()\"\r\n class=\"btn-outline btn cancel me-4 w-50\">No</button>\r\n <button type=\"button\" (click)=\"addedstepprice()\"\r\n tabindex=\"0\" class=\"btn btn-danger px-4 ng-star-inserted w-50\" style=\"white-space: nowrap;\"><span\r\n class=\"submit\">Yes</span></button>\r\n </div>\r\n</div>\r\n</div>","import { Component } from '@angular/core';\r\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { PaymentSubscriptionService } from '../../../../services/payment-subscription.service';\r\n\r\n@Component({\r\n selector: 'lib-skip-trail',\r\n templateUrl: './skip-trail.component.html',\r\n styleUrl: './skip-trail.component.scss'\r\n})\r\nexport class SkipTrailComponent {\r\n constructor(\r\n public activeModal: NgbActiveModal, private modalService:NgbModal, private PaymentSubscriptionService: PaymentSubscriptionService,\r\n ) {}\r\n \r\n subscribed() {\r\n this.activeModal.close('subscribed');\r\n }\r\n\r\n}\r\n","<div class=\"modal-content\" >\r\n <div class=\"p-6\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/settings-icon.svg\" alt=\"\"></div>\r\n <div class=\"heading mt-4 ms-1\">Skip Trial and Add product to subscription</div>\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n \r\n <div class=\"contenttext mt-4 mx-2\">By clicking ‘Add to subscription’ this product will be<br> moved to subscribed products\r\n </div>\r\n </div>\r\n <div class=\"d-flex mt-5 py-3\">\r\n <button type=\"button\" (click)=\"subscribed()\"\r\n tabindex=\"0\" class=\"btn btn-primary px-4 ng-star-inserted w-100\" style=\"white-space: nowrap;\"><span\r\n class=\"submit\">Add To Subscription</span></button>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n ","import { Component, Input } from '@angular/core';\r\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { PaymentSubscriptionService } from '../../../../services/payment-subscription.service';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\n\r\n@Component({\r\n selector: 'lib-trail-settings',\r\n templateUrl: './trail-settings.component.html',\r\n styleUrl: './trail-settings.component.scss'\r\n})\r\nexport class TrailSettingsComponent {\r\n @Input() settingsvalue: string = \"\"\r\n count: number = 1;\r\n daysCount: any = '';\r\n extendtrail:boolean = true;\r\n subscribedproduct:boolean = false;\r\n\r\n\r\nconstructor(\r\n public modalService: NgbModal, private PaymentSubscriptionService: PaymentSubscriptionService,private toast:ToastService, public activeModal: NgbActiveModal,\r\n) {\r\n }\r\n\r\n decreseCount(): any {\r\n if(this.count != 1) {\r\n this.count -= 1;\r\n }\r\n }\r\n\r\n increaseCount(): any {\r\n if(this.count < 14) {\r\n this.count += 1;\r\n }\r\n }\r\n trailextended() {\r\n let data = {\r\n title:'trialextend',\r\n count:this.count\r\n }\r\n this.activeModal.close(data);\r\n }\r\n subscribed() {\r\n this.activeModal.close('subscribed');\r\n }\r\n}\r\n","<div *ngIf=\"settingsvalue === 'Extend Trial'\" class=\"mx-8 py-8\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/settings-icon.svg\" alt=\"\"></div>\r\n <div class=\"heading my-4 ms-1\">Extend your trial</div>\r\n\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n <div>\r\n <label class=\"headingtext mb-4\">Please pick no of days for trial extension.</label>\r\n <div class=\"w-lg-100 position-relative mt-2\">\r\n <div\r\n class=\"position-absolute translate-middle-y top-50 me-5 ps-3 ticketDays\">\r\n <span class=\"svg-icon toggle-off svg-icon-1\"\r\n (click)=\"decreseCount()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\"\r\n height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M4.16699 10H15.8337\" stroke=\"#667085\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <input type=\"text\" class=\"form-control\" id=\"extendpayment\"\r\n style=\"text-align: center;\"\r\n value=\"{{count}}\" placeholder=\"\" readonly/>\r\n <div\r\n class=\"position-absolute translate-middle-y top-50 end-0 me-3\">\r\n <span class=\"svg-icon toggle-on svg-icon-1 ticketDays\"\r\n (click)=\"increaseCount()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\"\r\n height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\">\r\n <path\r\n d=\"M8.49967 3.33301V12.6663M3.83301 7.99967H13.1663\"\r\n stroke=\"#667085\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex mt-6 py-3\">\r\n <button type=\"submit\" (click)=\"activeModal.dismiss()\"\r\n class=\"btn-outline btn cancel me-4 w-50\">Cancel</button>\r\n <button type=\"button\" (click)=\"trailextended()\"\r\n tabindex=\"0\" class=\"btn btn-primary px-4 ng-star-inserted w-50\" style=\"white-space: nowrap;\"><span\r\n class=\"submit\">Submit</span></button>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"settingsvalue === 'Subscribe Product'\" class=\"modal-content\" >\r\n <div class=\"p-6\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/settings-icon.svg\" alt=\"\"></div>\r\n <div class=\"heading mt-4 ms-1\">Subscribe product</div>\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n \r\n <div class=\"contenttext mt-4 mx-2\">By clicking ‘Add to subscription’ this product will be<br> moved to subscribed products\r\n </div>\r\n</div>\r\n<div class=\"d-flex mt-5 py-3\">\r\n <button type=\"button\" (click)=\"subscribed()\"\r\n tabindex=\"0\" class=\"btn btn-primary px-4 ng-star-inserted w-100\" style=\"white-space: nowrap;\"><span\r\n class=\"submit\">Add To Subscription</span></button>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n","import { Component,Input } from '@angular/core';\r\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { PaymentSubscriptionService } from '../../../../services/payment-subscription.service';\r\n\r\n@Component({\r\n selector: 'lib-unsubscribe-request',\r\n templateUrl: './unsubscribe-request.component.html',\r\n styleUrl: './unsubscribe-request.component.scss'\r\n})\r\nexport class UnsubscribeRequestComponent {\r\n @Input() clientName:string = '';\r\n constructor(\r\n public activeModal: NgbActiveModal, private modalService:NgbModal, private PaymentSubscriptionService: PaymentSubscriptionService,\r\n ) { }\r\n \r\n unsubscribed() {\r\n this.activeModal.close('unsubscribed');\r\n }\r\n\r\n\r\n}\r\n","<div class=\"modal-content\">\r\n <div class=\"mt-4 mx-5\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/alert-icon.svg\" alt=\"\"></div>\r\n <div class=\"heading mt-4 ms-1\">Unsubscribe {{clientName}}</div>\r\n </div>\r\n<div class=\"px-6 py-6\">\r\n <div>\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n <div>\r\n <label class=\"semi mb-4\">Are you sure you want to unsubscribe {{clientName}}</label>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex mt-3 py-1\">\r\n <button type=\"submit\" (click)=\"activeModal.dismiss()\"\r\n class=\"btn-outline btn cancel needhelp me-4 w-50\">No</button>\r\n <button type=\"button\" (click)=\"unsubscribed()\"\r\n tabindex=\"0\" class=\"btn btn-danger px-4 ng-star-inserted w-50\" style=\"white-space: nowrap;\"><span\r\n class=\"submit\">Yes, Unsubscribe</span></button>\r\n </div>\r\n</div>\r\n</div>","import { Component, Input, OnInit, ChangeDetectorRef } from '@angular/core';\r\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { PaymentSubscriptionService } from '../../../../services/payment-subscription.service';\r\n\r\n@Component({\r\n selector: 'lib-product-confirmation',\r\n templateUrl: './product-confirmation.component.html',\r\n styleUrl: './product-confirmation.component.scss'\r\n})\r\nexport class ProductConfirmationComponent implements OnInit {\r\n @Input() productList:any;\r\n @Input() updatedProduct:any;\r\n @Input() type:any;\r\n @Input() stores:any;\r\n @Input() clientId:any;\r\n @Input() clientProduct:any;\r\n products:any = [];\r\n // clientProduct:any;\r\n\r\n constructor(private modalService: NgbModal, public activeModal: NgbActiveModal, private toast: ToastService, private PaymentSubscriptionService: PaymentSubscriptionService, private cd: ChangeDetectorRef){\r\n }\r\n ngOnInit():void {\r\n // let data = this.clientId;\r\n // this.PaymentSubscriptionService.getProductList(data).subscribe((res: any) => {\r\n // if (res && res.code == 200) {\r\n // this.clientProduct = res.data;\r\n let clientProductList = this.clientProduct.map((item:any) => item.product);\r\n let unsubScribedProduct = this.productList.filter((item: any) => !this.updatedProduct.includes(item));\r\n let newProduct = this.updatedProduct.filter((item: any) => !this.productList.includes(item));\r\n \r\n if (this.stores.length > 1 ) {\r\n newProduct = this.updatedProduct.filter((item: any) => !unsubScribedProduct.includes(item) && !clientProductList.includes(item))\r\n }\r\n if (newProduct.length) {\r\n newProduct = newProduct.join(',');\r\n this.products.push({\r\n name: newProduct,\r\n new: true,\r\n type: 'trial'\r\n })\r\n }\r\n if (unsubScribedProduct.length) {\r\n unsubScribedProduct = unsubScribedProduct.join(',');\r\n this.products.push({\r\n name: unsubScribedProduct,\r\n new: false,\r\n type: 'unsubscribe'\r\n })\r\n }\r\n \r\n this.cd.detectChanges();\r\n // }\r\n // })\r\n }\r\n updateproduct() {\r\n let params = {\r\n clientId:this.clientId,\r\n product:this.products\r\n }\r\n this.PaymentSubscriptionService.updateProduct(params).subscribe((res:any) =>{\r\n if(res && res.code == 200) {\r\n this.activeModal.close('product');\r\n this.toast.getSuccessToast('Product Updated Successfully')\r\n \r\n }\r\n })\r\n\r\n }\r\n\r\n updateType(index:any,type:any) {\r\n this.products[index].type = type;\r\n }\r\n\r\n updateStore() {\r\n let params = {\r\n clientId: this.clientId,\r\n product: this.products,\r\n store: this.stores\r\n }\r\n this.PaymentSubscriptionService.updateStore(params).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n this.activeModal.close('store');\r\n this.toast.getSuccessToast('Product Updated Successfully')\r\n\r\n }\r\n })\r\n \r\n }\r\n convertUpper(data:any) {\r\n let products = data.split(',');\r\n products.forEach((item:any,index:number) => {\r\n let [firstWord, secondWord] = item.replace(/([a-z])([A-Z])/g, '$1 $2').split(' ');\r\n firstWord = firstWord.charAt(0).toUpperCase() + firstWord.slice(1);\r\n products[index] = firstWord + ' ' + secondWord;\r\n })\r\n return products.join(',');\r\n }\r\n}\r\n","<div class=\"modal-content\">\r\n <div class=\"p-6\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/settings-icon.svg\" alt=\"\"></div>\r\n <div class=\"heading mt-4 ms-1\">Confirmation</div>\r\n <div class=\"contenttext mt-4 ms-1\">\r\n Please update the status of below product\r\n </div>\r\n </div>\r\n <div class=\"modal-body\">\r\n <!--begin::Form-->\r\n <form id=\"kt_modal_new_card_form\" class=\"form fv-plugins-bootstrap5 fv-plugins-framework\" action=\"#\">\r\n \r\n <div class=\"fv-row fv-plugins-icon-container \">\r\n <div class=\"confirmationborder mb-3\" [ngClass]=\"i !== 0 ? 'mt-4' : ''\" *ngFor=\"let product of products;let i=index;\">\r\n <div class=\"d-flex justify-content-between\">\r\n <label for=\"TangoZone\" class=\" producttext mb-2\">{{convertUpper(product.name)}}</label>\r\n <span class=\"badge badge-light-primary ms-2\" *ngIf=\"product.new\">Subscribe\r\n <img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/primary-clock-icon.svg\" alt=\"\">\r\n </span>\r\n <span class=\"badge badge-light-warning ms-2\" *ngIf=\"!product.new\">Unsubscribe\r\n <img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/warning-clock-icon.svg\" alt=\"\">\r\n </span>\r\n </div>\r\n <div class=\"form-group pt-1\" *ngIf=\"product.new\">\r\n <div class=\"form-check form-check-inline ps-0\" >\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"ontrailRadioOptions_{{i}}\"\r\n id=\"inlineRadio1\" value=\"trial\" (click)=\"updateType(i,'trial')\" checked>\r\n <label class=\"form-check-label radio-custom-label mx-3 producttext cursor-pointer\"\r\n for=\"inlineRadio1\">Start with trial</label>\r\n </div><br>\r\n <div class=\"form-check form-check-inline ps-0\" >\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"ontrailRadioOptions_{{i}}\"\r\n id=\"inlineRadio1\" value=\"subscription\" (click)=\"updateType(i,'subscription')\">\r\n <label class=\"form-check-label producttext radio-custom-label mx-3 cursor-pointer\"\r\n for=\"inlineRadio1\">Add to Subscription</label>\r\n </div>\r\n \r\n </div>\r\n <div class=\"form-group pt-1\" *ngIf=\"!product.new\">\r\n <div class=\"form-check form-check-inline ps-0\" >\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"TrailExpiredRadioOptions_{{i}}\" id=\"inlineRadio1\"\r\n value=\"unsubscribe\" (click)=\"updateType(i,'unsubscribe')\" checked>\r\n <label class=\"form-check-label radio-custom-label mx-3 producttext cursor-pointer\"\r\n for=\"inlineRadio1\">Unsubscribe</label>\r\n </div><br>\r\n <div class=\"form-check form-check-inline ps-0\" >\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"TrailExpiredRadioOptions_{{i}}\" id=\"inlineRadio1\"\r\n value=\"cancel\" (click)=\"updateType(i,'cancel')\">\r\n <label class=\"form-check-label producttext radio-custom-label mx-3 cursor-pointer\"\r\n for=\"inlineRadio1\">Cancel</label>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n\r\n <div class=\"d-flex mt-9 my-2\">\r\n <button type=\"submit\" class=\"btn-outline btn cancel me-4 w-50\" (click)=\"activeModal.close()\">Cancel</button>\r\n <button type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-primary px-4 ng-star-inserted w-50\" style=\"white-space: nowrap;\" (click)=\"type === 'products' ? updateproduct() : updateStore()\"><span\r\n class=\"submit\">Submit</span></button>\r\n </div>\r\n </div>\r\n \r\n \r\n <!--end::Actions-->\r\n </form>\r\n <!--end::Form-->\r\n \r\n </div>\r\n</div>","import { Component, HostListener, Input, OnDestroy, OnInit, ChangeDetectorRef, Output, EventEmitter } from '@angular/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { PaymentSubscriptionService } from '../../../../services/payment-subscription.service';\r\nimport { Subject, Subscription, takeUntil } from 'rxjs';\r\nimport { GlobalStateService,LayoutService } from 'tango-app-ui-global';\r\nimport { ProductConfirmationComponent } from '../product-confirmation/product-confirmation.component';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\n\r\n@Component({\r\n selector: 'lib-multidropdown',\r\n templateUrl: './multidropdown.component.html',\r\n styleUrl: './multidropdown.component.scss'\r\n})\r\n\r\nexport class MultidropdownComponent implements OnInit, OnDestroy {\r\n @Input() text:string = \"\";\r\n @Input() product: any = [];\r\n @Input() productList:any =[];\r\n @Input() type:string=\"product\";\r\n @Input() stores:any = [];\r\n @Input() clientId:string;\r\n @Input() selectAll:boolean = false;\r\n @Input() clientProduct:any = [];\r\n @Input() disabled:boolean = false;\r\n @Input() index:number =-1;\r\n @Output() data = new EventEmitter();\r\n private unsubscribe: Subscription[] = [];\r\n private readonly destroy$ = new Subject();\r\n\r\n dataObject: any = [\r\n { Description: 'Clients', Issues: [] },\r\n \r\n ];\r\n\r\n dummyArray: any =[];\r\n noFilter: boolean =false;\r\n responseArray: any=[];\r\n disabledBtn:boolean = true;\r\n constructor(private layout: LayoutService, private globalService: GlobalStateService, private modalService: NgbModal, private PaymentSubscriptionService: PaymentSubscriptionService, private changeDetector: ChangeDetectorRef,private ToastService:ToastService) {}\r\n\r\n\r\n\r\n ngOnDestroy() {\r\n this.unsubscribe.forEach((sb) => sb.unsubscribe());\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n Opendropdown: boolean = false;\r\n\r\n permission = [\r\n { group: 'Super Admin', description: 'Lorem ipsum dolor sit amet, consectetur ' },\r\n { group: 'Admin', description: 'Lorem ipsum dolor sit amet, consectetur ' },\r\n { group: 'User', description: 'Lorem ipsum dolor sit amet, consectetur ' },\r\n ]\r\n\r\n \r\n showdropdown: any;\r\n selectedValues: string[] = [];\r\n selectedValuesArray: any[] = [];\r\n selectedFilters: any = {\r\n store: null,\r\n stores: [],\r\n date: null,\r\n\r\n };\r\n ngOnInit(): void {\r\n this.dataObject[0].Issues = this.productList;\r\n this.dummyArray = JSON.parse(JSON.stringify(this.dataObject))\r\n this.responseArray = JSON.parse(JSON.stringify(this.dataObject))\r\n const subscr = this.layout.layoutConfigSubject\r\n .asObservable()\r\n .pipe(takeUntil(this.destroy$)).subscribe(() => {\r\n });\r\n this.unsubscribe.push(subscr);\r\n this.selectedValuesArray = [this.product?.map((item: any) => item?.product || item)];\r\n this.changeDetector.detectChanges();\r\n }\r\n \r\n @HostListener('document:click', ['$event'])\r\n onClick (event: MouseEvent) {\r\n const target = event.target as HTMLElement;\r\n if(!target.closest('.dropdown1')) {\r\n this.Opendropdown = false;\r\n }\r\n if(!target.closest(`.openDropDown`)){\r\n this.dataObject.forEach((item: any, i: any) => {\r\n item.isOpen = false;\r\n }\r\n );\r\n }\r\n }\r\n\r\n Dropdown(value: any, index: number,event:MouseEvent) {\r\n event.stopPropagation();\r\n if(!this.text.length) {\r\n let ele = document.querySelectorAll('.openDropDown');\r\n if(ele) {\r\n ele.forEach((element:any) => {\r\n let classList = element.getAttribute('class').split(' ');\r\n if(classList.includes('displayNone') && classList.includes(`dropdown-content${this.index}`)) {\r\n classList.pop();\r\n this.dataObject[index].isOpen = false;\r\n }\r\n else {\r\n if(!classList.includes('displayNone'))\r\n classList.push('displayNone');\r\n }\r\n element.setAttribute('class',classList.join(' '));\r\n })\r\n }\r\n }\r\n this.dataObject[index].isOpen = !this.dataObject[index].isOpen;\r\n this.selectedValuesArray = [this.product?.map((item: any) => item?.product || item)];\r\n }\r\n \r\n toggleCheckbox(issue: string, index: number) {\r\n const currentIssues = this.dataObject[index].Issues;\r\n \r\n this.selectedValuesArray[index] = this.selectedValuesArray[index] || [];\r\n const selectedValues = this.selectedValuesArray[index];\r\n\r\n if (issue === 'Select All') {\r\n const currentIssues = this.dataObject[index].Issues.map((item: any) => item.text);\r\n if (selectedValues.length === currentIssues.length) {\r\n\r\n this.selectedValuesArray[index] = ['tangoTraffic'];\r\n } else {\r\n this.selectedValuesArray[index] = [...currentIssues];\r\n }\r\n } else {\r\n if (selectedValues.includes(issue)) {\r\n\r\n this.selectedValuesArray[index] = selectedValues.filter((item: any) => item !== issue);\r\n } else {\r\n this.selectedValuesArray[index].push(issue)\r\n }\r\n }\r\n\r\n let count = 0;\r\n let existProduct = this.product.map((item:any) => item.product || item);\r\n this.selectedValuesArray[0].forEach((item:any) => {\r\n if(!existProduct.includes(item)) {\r\n count++;\r\n }\r\n });\r\n\r\n existProduct.forEach((item:any) => {\r\n if(!this.selectedValuesArray[0].includes(item)) {\r\n count++;\r\n }\r\n });\r\n\r\n if(count) {\r\n this.disabledBtn = false;\r\n }\r\n else {\r\n this.disabledBtn = true;\r\n }\r\n\r\n const selectAllId = `selectall${index}`;\r\n const selectAllElement = document.getElementById(selectAllId) as HTMLInputElement;\r\n if (selectAllElement) {\r\n selectAllElement.checked = selectedValues.length === currentIssues.length;\r\n }\r\n\r\n currentIssues.forEach((item: string) => {\r\n const isChecked = this.selectedValuesArray[index].includes(item);\r\n const checkboxId = `option${item}`;\r\n const checkboxElement = document.getElementById(checkboxId) as HTMLInputElement;\r\n if (checkboxElement) {\r\n checkboxElement.checked = isChecked;\r\n }\r\n });\r\n\r\n }\r\n\r\n Reset() {\r\n this.selectedValuesArray = [this.product?.map((item: any) => item?.product || item)];\r\n this.disabledBtn = true;\r\n this.Opendropdown = false;\r\n this.dataObject.forEach((item: any, i: any) => {\r\n item.isOpen = false;\r\n });\r\n }\r\n\r\n productconfirmation() {\r\n this.dataObject.forEach((item: any, i: any) => {\r\n item.isOpen = false;\r\n });\r\n let showPopup:boolean = false;\r\n if(this.type == 'stores') {\r\n let product = this.clientProduct.map((item: any) => item.product);\r\n if (this.selectAll) {\r\n product.forEach((item:any) => {\r\n if (!this.selectedValuesArray[0].includes(item)) {\r\n showPopup = true;\r\n }\r\n })\r\n }\r\n this.selectedValuesArray[0].forEach((item:any) => {\r\n if (!product.includes(item)) {\r\n showPopup = true;\r\n }\r\n })\r\n }\r\n if(this.type == 'products') {\r\n let existProduct = this.product.map((item:any) => item.product || item);\r\n this.selectedValuesArray[0].forEach((item:any) => {\r\n if(!existProduct.includes(item)) {\r\n showPopup = true;\r\n }\r\n });\r\n\r\n existProduct.forEach((item:any) => {\r\n if(!this.selectedValuesArray[0].includes(item)) {\r\n showPopup = true;\r\n }\r\n });\r\n }\r\n \r\n if (showPopup) {\r\n const modalRef = this.modalService.open(ProductConfirmationComponent,{\r\n centered:true,size:'md',scrollable:true\r\n });\r\n modalRef.componentInstance.productList = this.product.map((item:any)=>item?.product || item);\r\n modalRef.componentInstance.updatedProduct = this.selectedValuesArray[0];\r\n modalRef.componentInstance.type = this.type;\r\n modalRef.componentInstance.stores = this.stores;\r\n modalRef.componentInstance.clientId = this.clientId;\r\n modalRef.componentInstance.clientProduct = this.clientProduct;\r\n modalRef.result.then((result) => {\r\n this.selectedValuesArray[0] = [];\r\n this.data.emit(result);\r\n });\r\n }\r\n else {\r\n if(this.type == 'stores') {\r\n let products:any = [];\r\n this.selectedValuesArray[0].forEach((item:any) => {\r\n let details = this.clientProduct.find((ele:any)=> ele.product == item)\r\n let type = details?.status || 'trial'\r\n products.push({\r\n name: item,\r\n type: type\r\n })\r\n })\r\n this.product.forEach((item:any) => {\r\n if (!this.selectedValuesArray[0].includes(item)) {\r\n products.push({\r\n name: item,\r\n type: 'unsubscribe'\r\n })\r\n }\r\n })\r\n let params = {\r\n clientId: this.clientId,\r\n product: products,\r\n store: this.stores\r\n }\r\n this.PaymentSubscriptionService.updateStore(params).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n this.selectedValuesArray[0]=[];\r\n this.ToastService.getSuccessToast(res.message)\r\n this.data.emit('store');\r\n }\r\n })\r\n }\r\n\r\n }\r\n }\r\n\r\n convertUpper(data:any) {\r\n let [firstWord, secondWord] = data.replace(/([a-z])([A-Z])/g, '$1 $2').split(' ');\r\n firstWord = firstWord.charAt(0).toUpperCase() + firstWord.slice(1);\r\n return firstWord + ' ' + secondWord;\r\n }\r\n\r\n getClass() {\r\n return `dropdown-content${this.index} position-absolute end-0 openDropDown`\r\n }\r\n\r\n disableBtn() {\r\n if(this.type == 'stores' && this.stores.length > 1) {\r\n return false;\r\n }\r\n else {\r\n return this.disabledBtn;\r\n }\r\n }\r\n\r\n\r\n}","<div class=\"mt-2 dropdown1 position-relative\" [ngClass]=\"disabled?'': 'cursor-pointer'\" *ngFor=\"let item of dataObject; let i = index\">\r\n <a (click)=\"!disabled ? Dropdown('Clients',i,$event) : ''\">\r\n <span *ngIf=\"!text.length\">\r\n <svg width=\"44\" height=\"44\"\r\n viewBox=\"0 0 44 44\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g filter=\"url(#filter0_d_3094_38243)\">\r\n <rect x=\"2\" y=\"1\" width=\"40\"\r\n height=\"40\" rx=\"8\"\r\n fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"39\"\r\n height=\"39\" rx=\"7.5\"\r\n stroke=\"#D0D5DD\" />\r\n <path\r\n d=\"M22.0003 15.1665V26.8332M16.167 20.9998H27.8337\"\r\n stroke=\"#344054\"\r\n stroke-width=\"1.67\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_3094_38243\"\r\n x=\"0\" y=\"0\" width=\"44\"\r\n height=\"44\"\r\n filterUnits=\"userSpaceOnUse\"\r\n color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\"\r\n result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\"\r\n type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\r\n result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur\r\n stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\"\r\n in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_3094_38243\" />\r\n <feBlend mode=\"normal\"\r\n in=\"SourceGraphic\"\r\n in2=\"effect1_dropShadow_3094_38243\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>{{text}}</span>\r\n <button type=\"button\" class=\"btn-outline btn align-items-end text-nowrap me-4\" *ngIf=\"text.length\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\"\r\n viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path d=\"M10.4993 4.16675V15.8334M4.66602 10.0001H16.3327\"\r\n stroke=\"#344054\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg><span class=\"mx-2\">Add Products</span> </button>\r\n </a>\r\n <div *ngIf=\"item.isOpen\" [class]=\"getClass()\" [ngClass]=\"!text.length ? 'left' : 'addselect'\">\r\n <div class=\"form-check d-flex align-items-center px-5 mt-5\">\r\n <input class=\"form-check-input\" type=\"checkbox\" value=\"Select All\" id=\"selectall{{i}}\"\r\n [checked]=\"selectedValuesArray[i]?.length === item.Issues.length\"\r\n (change)=\"toggleCheckbox('Select All', i)\">\r\n <label class=\"form-check-label ms-3\" for=\"selectall{{i}}\">\r\n Select All\r\n </label>\r\n </div>\r\n <div class=\"border border-gray mt-3\"></div>\r\n <div class=\"mt-3 d-flex align-items-center mx-2\">\r\n \r\n <!-- <input type=\"text\" [(ngModel)]=\"searchValue\" (input)=\"searchData($event,i)\"\r\n class=\"form-control searchinput ps-14 py-2 mt-2\" placeholder=\"Search\" autocomplete=\"off\" /> -->\r\n </div>\r\n <div *ngFor=\"let issue of item.Issues\" class=\"form-check d-flex align-items-center py-3 px-5\">\r\n <input class=\"form-check-input cursor-pointer\" type=\"checkbox\" [value]=\"issue.text\" id=\"option{{issue.text}}\"\r\n [checked]=\"selectedValuesArray[i]?.includes(issue.text)\" (change)=\"toggleCheckbox(issue.text,i)\" [disabled]=\"issue.text === 'tangoTraffic'\">\r\n <label class=\"form-check-label px-3 cursor-pointer\" for=\"option{{issue.text}}\">\r\n {{ convertUpper(issue.text) }}\r\n </label>\r\n </div>\r\n <div class=\"mt-4 d-flex justify-content-center \">\r\n <span class=\"form-check-label\" *ngIf=\"noFilter\">No filters available</span>\r\n </div>\r\n <div role=\"group\" class=\"d-flex justify-content-between mb-4 mx-5\">\r\n <button class=\"btn btn-outline w-100 me-2\" (click)=\"Reset()\"> Reset </button>\r\n <button class=\"btn btn-primary w-100 ms-2\" (click)=\"productconfirmation()\" [disabled]=\"disableBtn()\">Apply</button>\r\n </div>\r\n </div>\r\n \r\n</div>\r\n\r\n","import { Component, EventEmitter, Output, ViewChild, ElementRef, inject, ChangeDetectorRef, OnInit, AfterViewInit, OnDestroy, HostListener, Pipe } from '@angular/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { UpdateComponent } from './subscription-popups/update/update.component';\r\nimport { NeedHelpComponent } from './subscription-popups/need-help/need-help.component';\r\nimport { UpgradePlanComponent } from './subscription-popups/upgrade-plan/upgrade-plan.component';\r\nimport { FormGroup, FormBuilder, Validators, FormArray } from '@angular/forms';\r\nimport { Observable, Subject, debounceTime, distinctUntilChanged, takeUntil } from 'rxjs';\r\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\r\nimport { FormControl } from '@angular/forms';\r\nimport { LiveAnnouncer } from '@angular/cdk/a11y';\r\nimport { CreditNoteComponent } from './subscription-popups/credit-note/credit-note.component';\r\nimport { PricingRevisedComponent } from './subscription-popups/pricing-revised/pricing-revised.component';\r\nimport { BehaviorSubject, map, switchMap, startWith } from 'rxjs';\r\nimport { PaymentSubscriptionService } from '../../services/payment-subscription.service';\r\nimport { AddSteppriceComponent } from './subscription-popups/add-stepprice/add-stepprice.component';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { SkipTrailComponent } from './subscription-popups/skip-trail/skip-trail.component';\r\nimport { TrailSettingsComponent } from './subscription-popups/trail-settings/trail-settings.component';\r\nimport { UnsubscribeRequestComponent } from './subscription-popups/unsubscribe-request/unsubscribe-request.component';\r\nimport Swal from 'sweetalert2';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\n@Component({\r\n selector: 'lib-payments-subscription',\r\n templateUrl: './payments-subscription.component.html',\r\n styleUrl: './payments-subscription.component.scss'\r\n})\r\n\r\nexport class PaymentsSubscriptionComponent implements OnInit, AfterViewInit, OnDestroy {\r\n\r\n clientinfo: any;\r\n list: any[];\r\n select: string = 'before15';\r\n separatorKeysCodes: number[] = [ENTER, COMMA];\r\n announcer = inject(LiveAnnouncer);\r\n plan: string = 'subscription';\r\n showNavGroup: boolean = true;\r\n PricingshowNav: boolean = true;\r\n sublevelview: boolean = true;\r\n count: number = 1;\r\n daysCount: any = '';\r\n currentplanform: FormGroup;\r\n paymentinvoiceform: FormGroup;\r\n paymentallowedList: any = []\r\n generateinvoiceList: any = []\r\n $generateinvoiceInterrupt = new BehaviorSubject<string>('')\r\n $sendpaymentInterrupt = new BehaviorSubject<string>('')\r\n $generateinvoiceccInterrupt= new BehaviorSubject<string>('')\r\n openaccordian = false;\r\n brandName: string = '';\r\n searchInput: any;\r\n gstNumber: string = '';\r\n billingAddress: string = '';\r\n pricingplan: string = 'standard';\r\n dropDown: boolean = false;\r\n invoicedropDown: boolean = false;\r\n paymenttypedropDown: boolean = false;\r\n currencydropDown: boolean = false;\r\n viewplandropDown: boolean = false;\r\n producttraildropDown: boolean = false;\r\n dropdownItems: any[] = [{ name: 'Monthly', value: 'monthly' }, { name: 'Quaterly', value: 'quaterly' }, { name: 'Annual', value: 'annual' }];\r\n generateinvoiceon: any[] = [{ name: 'Last Day of the Month', value: 'lastday' }, { name: '25th of the Month', value: '25th' }];\r\n paymenttype: any[] = [{ name: 'Online Payment', value: 'online' }, { name: 'Bank Transfer', value: 'banktransfer' }];\r\n currencytype: any[] = [{ name: 'INR', value: 'inr' }, { name: 'Dollar', value: 'dollar' }];\r\n viewplantype: any[] = ['Product Level View', 'Store Level View'];\r\n producttrailtype: any[] = ['Extend Trial', 'Subscribe Product'];\r\n selectedIssue: any = 'Monthly';\r\n invoiceonIssue: any = 'Last Day of the Month';\r\n paymentIssue: any = 'online';\r\n currencyIssue: any = 'INR';\r\n viewplanIssue: any = 'Product Level View';\r\n producttrailIssue: any = 'Extend Trial';\r\n priceValueDetails: any;\r\n originalPriceValue: any;\r\n productList: any = [];\r\n storeList: any = [];\r\n dataObject: any = [\r\n { Description: 'Products', Issues: [] },\r\n { Description: 'Store', Issues: [] },\r\n { Description: 'Location', Issues: [] },\r\n ];\r\n totalCount: number = 0;\r\n dynamicData: any = {\r\n limit: 10,\r\n offset: 1,\r\n clientId: \"\",\r\n searchValue: \"\",\r\n sortColumn: '',\r\n sortBy: '',\r\n product: [],\r\n store: [],\r\n location: []\r\n }\r\n selectAll: boolean = false;\r\n selectedStoreList: any = [];\r\n storeProduct: any;\r\n notificationDetails: any = [];\r\n currentPlan: string = 'free';\r\n paymentinvoiceinfo: any;\r\n requestData: any\r\n isExport: boolean = false;\r\n itemsPerPage = 10\r\n currentPage = 1\r\n totalItems = 0\r\n paginationSizes = [10, 20, 30]\r\n pageSize = 10\r\n isFilter = 'current';\r\n searchValue: string | null = '';\r\n invoiceList: any = [];\r\n extendPaymentPeriodDays: 0;\r\n paymentinvoiceshow: boolean = true\r\n radiobutton: boolean = false;\r\n radiooptions: any = 'before15'\r\n clientId: string = '';\r\n auth = true;\r\n loading:boolean=true;\r\n noData:boolean =false;\r\n priceNoData: boolean = true;\r\n priceLoading: boolean = false;\r\n sortColumName:string=\"invoice\";\r\n sortBy:number=1;\r\n invoiceNoData: boolean = true;\r\n invoiceLoading: boolean = false;\r\n searchDisabled:any = false\r\n userType:any = '';\r\n disabledAddIcon:boolean = false;\r\n private readonly destroy$ = new Subject();\r\n generateinvoiceCCList: any;\r\n\r\n constructor(\r\n public modalService: NgbModal, private fb: FormBuilder, private PaymentSubscriptionService: PaymentSubscriptionService, private changeDetector: ChangeDetectorRef, private toast: ToastService, public gs: GlobalStateService,private elementRef: ElementRef,\r\n ) {\r\n this.PaymentSubscriptionService.paymentinvoiceFormData.pipe(takeUntil(this.destroy$)).subscribe((res) => {\r\n if (res) {\r\n if (res.type === 'input' && res.form === 'payment-invoice') {\r\n this.getpaymentinvoice(res.value)\r\n }\r\n }\r\n })\r\n }\r\n ngOnInit(): void {\r\n this.currentplanform = this.fb.group({\r\n storecount: ['', Validators.required],\r\n avgsqft: ['', Validators.required],\r\n cameracount: ['', Validators.required],\r\n });\r\n this.paymentinvoiceform = this.fb.group({\r\n radiooptions: ['before15', Validators.required,],\r\n paymentcycle: ['monthly', Validators.required],\r\n invoiceTo: ['',Validators.required],\r\n invoiceCC: [''],\r\n generateinvoiceon: ['', Validators.required],\r\n paymenttype: ['online', Validators.required],\r\n currency: ['inr', Validators.required],\r\n paymentAgreementTo: ['',Validators.required],\r\n extendPaymentPeriodDays: [0,Validators.required],\r\n });\r\n this.gs.dataRangeValue.pipe(takeUntil(this.destroy$)).subscribe((data: any) => {\r\n if (data) {\r\n this.clientId = data.client;\r\n this.dynamicData.clientId = this.clientId\r\n this.gs.userAccess.pipe(takeUntil(this.destroy$)).subscribe((data:any) => {\r\n if(data) {\r\n this.userType = data.userType;\r\n if(data?.userType == 'tango') {\r\n this.getPricing('standard');\r\n this.getProductList();\r\n this.filterList();\r\n this.notificationList();\r\n }\r\n }\r\n })\r\n\r\n this.clientBillingInfo(this.clientId);\r\n this.getpaymentinvoice(this.clientId);\r\n this.paymentinvoiceform.disable()\r\n this.invoiceTableData();\r\n } else if(!data){\r\n const userData: any = JSON.parse(localStorage.getItem(\"user-info\") || \"{}\");\r\n this.clientId = userData.clientId;\r\n this.dynamicData.clientId = this.clientId\r\n this.gs.userAccess.pipe(takeUntil(this.destroy$)).subscribe((data:any) => {\r\n if(data) {\r\n this.userType = data.userType;\r\n if(data?.userType == 'tango') {\r\n this.getPricing('standard');\r\n this.getProductList();\r\n this.filterList();\r\n this.notificationList();\r\n }\r\n }\r\n })\r\n\r\n this.clientBillingInfo(this.clientId);\r\n this.getpaymentinvoice(this.clientId);\r\n this.paymentinvoiceform.disable()\r\n this.invoiceTableData();\r\n }\r\n });\r\n this.PaymentSubscriptionService.reloadData$.subscribe(() => {\r\n this.clientBillingInfo(this.clientId);\r\n });\r\n\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.paymentinvoiceform.get('invoiceTo')?.valueChanges.pipe(\r\n switchMap((val) => {\r\n return this.$generateinvoiceInterrupt.pipe(map((interrupt) => {\r\n if (interrupt === 'Enter') {\r\n this.$generateinvoiceInterrupt.next('')\r\n this.generateinvoiceList.push(val.trim())\r\n this.paymentinvoiceform.get('invoiceTo')?.setValue('')\r\n } else if (interrupt === 'Backspace' && !val && this.generateinvoiceList.length) {\r\n this.generateinvoiceList.pop()\r\n } else {\r\n return val\r\n }\r\n }))\r\n })\r\n ).pipe(takeUntil(this.destroy$)).subscribe()\r\n this.paymentinvoiceform.get('invoiceCC')?.valueChanges.pipe(\r\n switchMap((val) => {\r\n return this.$generateinvoiceccInterrupt.pipe(map((interrupt) => {\r\n if (interrupt === 'Enter') {\r\n this.$generateinvoiceccInterrupt.next('')\r\n this.generateinvoiceCCList.push(val)\r\n this.paymentinvoiceform.get('invoiceCC')?.setValue('')\r\n } else if (interrupt === 'Backspace' && !val && this.generateinvoiceCCList.length) {\r\n this.generateinvoiceCCList.pop()\r\n } else {\r\n return val\r\n }\r\n }))\r\n })\r\n ).pipe(takeUntil(this.destroy$)).subscribe()\r\n\r\n this.paymentinvoiceform.get('paymentAgreementTo')?.valueChanges.pipe(\r\n switchMap((val) => {\r\n return this.$sendpaymentInterrupt.pipe(map((interrupt) => {\r\n if (interrupt === 'Enter') {\r\n this.$sendpaymentInterrupt.next('')\r\n this.paymentallowedList.push(val.trim())\r\n this.paymentinvoiceform.get('paymentAgreementTo')?.setValue('')\r\n } else if (interrupt === 'Backspace' && !val && this.paymentallowedList.length) {\r\n this.paymentallowedList.pop()\r\n } else {\r\n return val\r\n }\r\n }))\r\n })\r\n ).pipe(takeUntil(this.destroy$)).subscribe()\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n receiveData(data: any) {\r\n data.forEach((item:any) => {\r\n if (item.Description == 'Products') {\r\n let product = item.Issues.map((product:any) => product.text);\r\n this.dynamicData.product = product;\r\n }\r\n if (item.Description == 'Store') {\r\n let store = item.Issues.map((store: any) => store.id);\r\n this.dynamicData.store = store;\r\n }\r\n if (item.Description == 'Location') {\r\n let location = item.Issues.map((location: any) => location.text);\r\n this.dynamicData.location = location;\r\n }\r\n })\r\n this.getStoreList();\r\n }\r\n\r\n selectPlan(plan: string) {\r\n this.noData = false;\r\n this.priceNoData= false;\r\n if(plan == 'subscription') {\r\n this.getProductList();\r\n }\r\n else {\r\n this.getPricing('standard')\r\n }\r\n this.plan = plan;\r\n this.viewplanIssue = \"Product Level View\"\r\n }\r\n\r\n selectPricePlan(pricingplan: string) {\r\n this.pricingplan = pricingplan;\r\n this.getPricing(pricingplan)\r\n }\r\n\r\n\r\n getColorClass(product: string): string {\r\n switch (product) {\r\n case 'Tango Traffic': return 'badge product-traffic mx-1';\r\n case 'Tango Zone': return 'badge product-zone mx-1';\r\n case 'Tango Sop': return 'badge product-sop mx-1';\r\n case 'Priority Support': return 'badge prioritysupport mx-1';\r\n default: return '';\r\n }\r\n }\r\n\r\n selectItem(value: any) {\r\n this.selectedIssue = value;\r\n\r\n this.paymentinvoiceform.get('dropdownItems')?.setValue(this.selectedIssue)\r\n this.dropDown = false;\r\n }\r\n\r\n invoiceItem(invoicevalue: any) {\r\n this.invoiceonIssue = invoicevalue;\r\n this.paymentinvoiceform.get('generateinvoiceon')?.setValue(this.invoiceonIssue)\r\n this.invoicedropDown = false;\r\n }\r\n\r\n paymentItem(paymentvalue: any) {\r\n this.paymentIssue = paymentvalue;\r\n this.paymentinvoiceform.get('paymenttype')?.setValue(this.paymentIssue)\r\n this.paymenttypedropDown = false;\r\n }\r\n\r\n currencyItem(currencyvalue: any) {\r\n this.currencyIssue = currencyvalue;\r\n this.paymentinvoiceform.get('currencytype')?.setValue(this.currencyIssue)\r\n this.currencydropDown = false;\r\n }\r\n\r\n producttrailItem(producttrailvalue: any, data: any) {\r\n\r\n if (producttrailvalue == 'Extend Trial') {\r\n const modalRef = this.modalService.open(TrailSettingsComponent, {\r\n centered: true, size: 'md',\r\n });\r\n modalRef.componentInstance.settingsvalue = producttrailvalue;\r\n modalRef.result.then((result) => {\r\n if (result.title == 'trialextend') {\r\n let params = {\r\n clientId: this.clientId,\r\n days: result.count,\r\n product: data.product\r\n }\r\n this.PaymentSubscriptionService.trialExtentApproval(params).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n this.toast.getSuccessToast(`${data.name} trial extended successfully`);\r\n this.notificationList();\r\n }\r\n })\r\n }\r\n });\r\n\r\n } else if (producttrailvalue == 'Subscribe Product') {\r\n const modalRef = this.modalService.open(TrailSettingsComponent, {\r\n centered: true, size: 'md',\r\n });\r\n modalRef.componentInstance.settingsvalue = producttrailvalue;\r\n modalRef.result.then((result) => {\r\n if (result == 'subscribed') {\r\n let params = {\r\n clientId: this.clientId,\r\n product: [\r\n {\r\n type: 'subscription',\r\n name: data.product\r\n }\r\n ]\r\n }\r\n this.PaymentSubscriptionService.updateProduct(params).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n this.toast.getSuccessToast(`${data.name} successfully added to the product subscription list.`);\r\n this.notificationList();\r\n }\r\n })\r\n }\r\n });\r\n }\r\n this.producttrailIssue = producttrailvalue;\r\n this.producttraildropDown = false;\r\n }\r\n\r\n viewplanItem(viewplanvalue: any) {\r\n this.selectedStoreList = [];\r\n this.disabledAddIcon = false;\r\n this.dynamicData.offset = 1;\r\n this.viewplanIssue = viewplanvalue;\r\n this.noData = false;\r\n if (viewplanvalue == 'Product Level View') {\r\n this.getProductList();\r\n }\r\n else {\r\n this.getStoreList();\r\n }\r\n this.viewplandropDown = false;\r\n }\r\n\r\n update() {\r\n const responseData = {\r\n brandName: this.clientinfo.clientName,\r\n gstNumber: this.clientinfo.billingDetails.gstNumber,\r\n billingAddress: this.clientinfo.billingDetails.billingAddress,\r\n companyName: this.clientinfo.billingDetails.companyName,\r\n PlaceOfSupply: this.clientinfo.billingDetails.PlaceOfSupply,\r\n\r\n clientId:this.clientId\r\n };\r\n let modelRef = this.modalService.open(UpdateComponent, { centered: true, size: 'md' });\r\n modelRef.componentInstance.modalData = responseData;\r\n modelRef.result.then((result) => {\r\n if (result) {\r\n this.clientinfo.billingDetails.billingAddress = result.billingAddress;\r\n }\r\n });\r\n }\r\n\r\n needhelp() {\r\n const modalRef = this.modalService.open(NeedHelpComponent, {\r\n centered: true, size: 'md',\r\n });\r\n modalRef.componentInstance.clientId = this.clientId;\r\n modalRef.result.then((result) => {\r\n if (result) {\r\n if( this.userType == 'tango')\r\n this.notificationList();\r\n }\r\n });\r\n }\r\n\r\n upgradeplan() {\r\n const modalRef = this.modalService.open(UpgradePlanComponent, {\r\n centered: true, size: 'lg'\r\n });\r\n modalRef.componentInstance.clientId = this.clientId;\r\n modalRef.result.then((result) => {\r\n if (result) {\r\n }\r\n });\r\n }\r\n \r\n creditnote() {\r\n const modalRef = this.modalService.open(CreditNoteComponent, {\r\n centered: true,\r\n size: 'md',\r\n scrollable: true\r\n });\r\n modalRef.componentInstance.clientId = this.clientId;\r\n modalRef.result.then((result) => {\r\n if (result == 'successcredit') {\r\n this.toast.getPrimaryToast('The invoice has been sent to the respective email IDs with the discount.');\r\n this.invoiceTableData();\r\n }\r\n });\r\n }\r\n\r\n\r\n pricingrevised() {\r\n const modalRef = this.modalService.open(PricingRevisedComponent, {\r\n centered: true, scrollable: true, size: 'lg'\r\n });\r\n modalRef.componentInstance.productNewDetails = this.priceValueDetails;\r\n modalRef.componentInstance.productOldDetails = this.originalPriceValue;\r\n modalRef.result.then((result) => {\r\n if (result == 'save') {\r\n let params = {\r\n type: this.pricingplan,\r\n clientId: this.clientId,\r\n products: this.priceValueDetails.product\r\n }\r\n this.PaymentSubscriptionService.updatePricing(params).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n this.toast.getSuccessToast('Revised price list has been sent to the email list')\r\n }\r\n })\r\n }\r\n });\r\n }\r\n\r\n pricingType(event: any, pricing: string) {\r\n this.select = pricing;\r\n this.radiooptions = pricing\r\n }\r\n \r\n onKeyDown(event:any){\r\n this.$generateinvoiceInterrupt.next(event.code)\r\n }\r\n onKeyDowncc(event:any){\r\n this.$generateinvoiceccInterrupt.next(event.code)\r\n }\r\n removeChipcc(i: number) {\r\n this.generateinvoiceCCList.splice(i, 1)\r\n }\r\n removeChip(i: number) {\r\n this.generateinvoiceList.splice(i, 1)\r\n }\r\n\r\n sendpaymentonKeyDown(event: any) {\r\n this.$sendpaymentInterrupt.next(event.code)\r\n }\r\n\r\n sendpaymentremoveChip(i: number) {\r\n this.paymentallowedList.splice(i, 1)\r\n }\r\n\r\n clientBillingInfo(id: any) {\r\n this.PaymentSubscriptionService.clientBillingInfo(id).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n this.clientinfo = res.data;\r\n this.changeDetector.detectChanges();\r\n }\r\n })\r\n\r\n }\r\n\r\n openDropdown(event: MouseEvent) {\r\n event.stopPropagation();\r\n this.dropDown = !this.dropDown;\r\n this.paymenttypedropDown = false;\r\n this.currencydropDown = false;\r\n this.invoicedropDown = false;\r\n }\r\n\r\n invoiceDropdown(event: MouseEvent) {\r\n event.stopPropagation();\r\n this.paymenttypedropDown = false;\r\n this.currencydropDown = false;\r\n this.dropDown = false;\r\n this.invoicedropDown = !this.invoicedropDown;\r\n }\r\n\r\n paymenttypeDropdown(event: MouseEvent) {\r\n event.stopPropagation();\r\n this.invoicedropDown = false;\r\n this.currencydropDown = false;\r\n this.dropDown = false;\r\n this.paymenttypedropDown = !this.paymenttypedropDown;\r\n }\r\n\r\n currencyDropdown(event: MouseEvent) {\r\n event.stopPropagation();\r\n this.currencydropDown = !this.currencydropDown;\r\n this.paymenttypedropDown = false;\r\n this.invoicedropDown = false;\r\n this.dropDown = false;\r\n }\r\n\r\n viewplanDropdown(event: MouseEvent) {\r\n this.selectAll = false;\r\n this.selectedStoreList = [];\r\n this.disabledAddIcon = false;\r\n event.stopPropagation();\r\n this.viewplandropDown = !this.viewplandropDown;\r\n this.changeDetector.detectChanges();\r\n }\r\n \r\n producttrailDropdown(event: MouseEvent, index: any) {\r\n event.stopPropagation();\r\n this.notificationDetails.notificationList.forEach((item:any) => {\r\n item.producttraildropDown = false;\r\n })\r\n this.notificationDetails.notificationList[index].producttraildropDown = !this.notificationDetails.notificationList[index].producttraildropDown\r\n }\r\n\r\n skiptrail() {\r\n const modalRef = this.modalService.open(SkipTrailComponent, {\r\n centered: true, size: 'md', scrollable: true\r\n });\r\n modalRef.result.then((result) => {\r\n if (result == 'subscribed') {\r\n this.toast.getSuccessToast('< Tango TRAX > successfully added to the product subscription list.')\r\n }\r\n });\r\n }\r\n\r\n addstepprice(data: any, product: any = {}, index: any = -1) {\r\n const modalRef = this.modalService.open(AddSteppriceComponent, {\r\n centered: true, scrollable: true,\r\n });\r\n if (data == 'add') {\r\n modalRef.componentInstance.steppricetitle = \"Add Step Price\";\r\n modalRef.componentInstance.steppricedescription = \"Please enter no of store to be added in next step price in intervals \";\r\n modalRef.componentInstance.steppriceicon = \"./assets/tango/custompopup-Icons/plus-icon.svg\";\r\n modalRef.componentInstance.steppricebutton = \"Apply\";\r\n }\r\n if (data == 'edit') {\r\n modalRef.componentInstance.steppricetitle = \"Edit Step Price\";\r\n modalRef.componentInstance.steppricedescription = \"Please enter no of store to be added in next step price in intervals \";\r\n modalRef.componentInstance.steppriceicon = \"./assets/tango/custompopup-Icons/edit-icon.svg\";\r\n modalRef.componentInstance.steppricebutton = \"Update\";\r\n }\r\n if (data == 'delete') {\r\n modalRef.componentInstance.steppricetitle = \"delete\";\r\n }\r\n modalRef.result.then((result) => {\r\n if (result.title == 'Add Step Price') {\r\n let oldLength = this.priceValueDetails.product.length;\r\n let products = [...new Set(this.priceValueDetails.product.map((item: any, index: any) => item.productName))]\r\n for(let data of products) {\r\n // products.forEach((data: any) => {\r\n let productDetails = this.priceValueDetails.product.find((item: any, index: any) => {\r\n if (item.productName == data && item?.lastIndex) {\r\n item.index = index;\r\n return item;\r\n }\r\n });\r\n\r\n let index = productDetails.index;\r\n delete productDetails.index;\r\n let item = productDetails;\r\n let range = item.storeRange.split('-');\r\n let differ = (parseInt(range[1]) - parseInt(range[0])) + 1;\r\n // delete this.priceValueDetails.product[index].lastIndex;\r\n // this.priceValueDetails.product[index].showEditDelete = false;\r\n let newItem = { ...item };\r\n let newStartRange = parseInt(range[1]) + 1;\r\n let newEndRange = newStartRange + parseInt(result.intravel) - 1;\r\n\r\n newItem.showImg = true\r\n newItem.showEditDelete = true\r\n newItem.lastIndex = true;\r\n if(newItem.discountPercentage) {\r\n newItem.negotiatePrice = newItem.basePrice\r\n newItem.discountPercentage = 0\r\n newItem.discountPrice = 0\r\n }\r\n newItem.storeCount = this.priceValueDetails.product[index].storeCount - differ;\r\n\r\n if(newItem.storeCount < 0) {\r\n continue;\r\n }\r\n delete this.priceValueDetails.product[index].lastIndex;\r\n this.priceValueDetails.product[index].showEditDelete = false;\r\n newItem.price = newItem.storeCount * newItem.negotiatePrice\r\n this.priceValueDetails.product[index].storeCount = differ;\r\n this.priceValueDetails.product[index].price = this.priceValueDetails.product[index].storeCount * this.priceValueDetails.product[index].negotiatePrice;\r\n\r\n newItem.storeRange = newStartRange.toString() + '-' + newEndRange.toString();\r\n this.priceValueDetails.product.splice(index + 1, 0, newItem)\r\n }\r\n // )\r\n let price:any = 0;\r\n let actualPrice = 0;\r\n let negotiatePrice = 0;\r\n let originalPrice:any = 0\r\n this.priceValueDetails.product.forEach((item: any) => {\r\n price = price + item.price;\r\n actualPrice = actualPrice + item.basePrice;\r\n negotiatePrice = negotiatePrice + item.negotiatePrice;\r\n originalPrice = originalPrice + (item.basePrice * item.storeCount);\r\n });\r\n this.priceValueDetails.actualPrice = actualPrice;\r\n this.priceValueDetails.negotiatePrice = negotiatePrice.toFixed(2);\r\n let gstAmount = this.priceValueDetails.totalNegotiatePrice * (18 / 100);\r\n this.priceValueDetails.finalValue = (parseFloat(this.priceValueDetails.totalNegotiatePrice) + gstAmount).toFixed(2);\r\n this.priceValueDetails.discountPrice = parseFloat(originalPrice) - parseFloat(price);\r\n this.priceValueDetails.discountPercentage = ((this.priceValueDetails.discountPrice / originalPrice) * 100).toFixed(2);\r\n this.priceValueDetails.totalNegotiatePrice = price.toFixed(2);\r\n\r\n if(oldLength < this.priceValueDetails.product.length) {\r\n this.toast.getSuccessToast('Step Price has been added successfully.')\r\n }\r\n else{\r\n this.toast.getErrorToast('Store Count should be above 100')\r\n }\r\n }\r\n if (result.title == 'Edit Step Price') {\r\n let range = this.priceValueDetails.product[index].storeRange.split('-');\r\n let end = parseInt(range[0]) + (parseInt(result.intravel) - 1);\r\n this.priceValueDetails.product[index].storeRange = range[0].toString() + '-' + end.toString();\r\n this.toast.getSuccessToast('Step Price has been Updated successfully.')\r\n }\r\n if (result.title == 'delete') {\r\n this.priceValueDetails.product[index - 1].storeCount = this.priceValueDetails.product[index - 1].storeCount + this.priceValueDetails.product[index].storeCount;\r\n this.priceValueDetails.actualPrice = this.priceValueDetails.actualPrice - this.priceValueDetails.product[index].basePrice;\r\n this.priceValueDetails.negotiatePrice = this.priceValueDetails.negotiatePrice - this.priceValueDetails.product[index].negotiatePrice;\r\n this.priceValueDetails.product[index - 1].price = this.priceValueDetails.product[index - 1].negotiatePrice * this.priceValueDetails.product[index - 1].storeCount;\r\n\r\n let productInfo = this.priceValueDetails.product.filter(((item: any) => item.productName == this.priceValueDetails.product[index].productName))\r\n if (productInfo.length > 2) {\r\n this.priceValueDetails.product[index - 1].showImg = true\r\n this.priceValueDetails.product[index - 1].showEditDelete = true\r\n // this.priceValueDetails.product[index - 1].lastIndex = true;\r\n }\r\n this.priceValueDetails.product[index - 1].lastIndex = true;\r\n\r\n this.priceValueDetails.product.splice(index, 1);\r\n let price:any = 0;\r\n let originalPrice:any = 0;\r\n this.priceValueDetails.product.forEach((item: any) => {\r\n price = price + item.price;\r\n originalPrice = originalPrice + (item.basePrice * item.storeCount);\r\n });\r\n\r\n let gstAmount = this.priceValueDetails.totalNegotiatePrice * (18 / 100);\r\n this.priceValueDetails.finalValue = (parseFloat(this.priceValueDetails.totalNegotiatePrice) + gstAmount).toFixed(2);\r\n this.priceValueDetails.discountPrice = parseFloat(originalPrice) - parseFloat(price);\r\n this.priceValueDetails.discountPercentage = ((this.priceValueDetails.discountPrice / originalPrice) * 100).toFixed(2);\r\n this.priceValueDetails.totalNegotiatePrice = price.toFixed(2);\r\n this.toast.getErrorToast('Column deleted successfully.')\r\n }\r\n });\r\n }\r\n\r\n approvetrial(data: any, type: string) {\r\n let params = {\r\n id: data._id,\r\n type: type\r\n }\r\n this.PaymentSubscriptionService.approveTrial(params).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n if(type == 'approve') {;\r\n this.getProductList();\r\n this.toast.getSuccessToast(`${data.name} trial has been approved successfully.`)\r\n }\r\n if(type == 'cancel') {\r\n this.toast.getSuccessToast(`${data.name} trial has been Cancelled.`)\r\n }\r\n this.notificationList();\r\n }\r\n })\r\n }\r\n\r\n approveUnsubscribe(data: any, type: any) {\r\n const modalRef = this.modalService.open(UnsubscribeRequestComponent, {\r\n centered: true, size: 'md', scrollable: true\r\n });\r\n modalRef.componentInstance.clientName = this.clientinfo.clientName;\r\n modalRef.result.then((result) => {\r\n if (result == 'unsubscribed') {\r\n let params = {\r\n id: data._id,\r\n type: type\r\n }\r\n this.approveCancelUnsubscribe(params);\r\n }\r\n });\r\n }\r\n\r\n updateCircleChart(data: any, index: any): void {\r\n let id = 'progress-circle-' + index;\r\n let text = 'percentage-text-' + index;\r\n const progressCircle = document.getElementById(id);\r\n const percentageText = document.getElementById(text);\r\n if (progressCircle && percentageText) {\r\n const circumference = Math.PI * 2 * parseFloat(progressCircle.getAttribute('r')!);\r\n const dasharray = circumference;\r\n const dashoffset = circumference - (data / 100) * circumference;\r\n\r\n progressCircle.setAttribute('stroke-dasharray', dasharray.toString());\r\n progressCircle.setAttribute('stroke-dashoffset', dashoffset.toString());\r\n\r\n percentageText.textContent = `${data}%`;\r\n }\r\n }\r\n\r\n getPricing(data: any) {\r\n this.priceLoading = true;\r\n this.priceValueDetails = '';\r\n let params = {\r\n priceType: data,\r\n clientId: this.clientId\r\n }\r\n this.PaymentSubscriptionService.getPriceDetails(params).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n this.priceLoading = false;\r\n this.priceNoData = false;\r\n if(res.data.product.length) {\r\n this.priceValueDetails = res.data;\r\n this.originalPriceValue = JSON.parse(JSON.stringify(this.priceValueDetails));\r\n }\r\n else {\r\n this.priceNoData = true;\r\n }\r\n this.changeDetector.detectChanges();\r\n }\r\n else {\r\n this.priceLoading = false;\r\n this.priceNoData = true;\r\n }\r\n },(error:any) => {\r\n this.priceLoading = false;\r\n this.priceNoData = true;\r\n })\r\n }\r\n\r\n calculate(index: any, type: any) {\r\n if(this.priceValueDetails.product[index].discountPercentage < 0 || this.priceValueDetails.product[index].negotiatePrice < 0 ||isNaN(this.priceValueDetails.product[index].negotiatePrice) || isNaN(this.priceValueDetails.product[index].discountPercentage)) {\r\n }\r\n else {\r\n this.priceValueDetails.product[index].showDiscountError = false;\r\n this.priceValueDetails.product[index].showNegotiateError = false;\r\n if (type == 'discount') {\r\n this.priceValueDetails.product[index].negotiatePrice = this.priceValueDetails.product[index].basePrice - (this.priceValueDetails.product[index].basePrice * (this.priceValueDetails.product[index].discountPercentage / 100))\r\n this.priceValueDetails.product[index].price = this.priceValueDetails.product[index].negotiatePrice * this.priceValueDetails.product[index].storeCount\r\n }\r\n else {\r\n let disPrice = this.priceValueDetails.product[index].basePrice - this.priceValueDetails.product[index].negotiatePrice\r\n this.priceValueDetails.product[index].discountPercentage = ((disPrice / this.priceValueDetails.product[index].basePrice) * 100).toFixed(2)\r\n this.priceValueDetails.product[index].price = this.priceValueDetails.product[index].negotiatePrice * this.priceValueDetails.product[index].storeCount\r\n }\r\n let negotiatePrice = 0;\r\n let price:any = 0;\r\n let originalPrice:any = 0;\r\n this.priceValueDetails.product.forEach((item: any) => {\r\n price = price + item.price;\r\n negotiatePrice = negotiatePrice + parseInt(item.negotiatePrice);\r\n originalPrice = originalPrice + (item.basePrice * item.storeCount);\r\n })\r\n \r\n this.priceValueDetails.negotiatePrice = negotiatePrice.toFixed(2);\r\n this.priceValueDetails.discountPrice = parseFloat(originalPrice) - parseFloat(price);\r\n this.priceValueDetails.discountPercentage = ((this.priceValueDetails.discountPrice /originalPrice) * 100).toFixed(2);\r\n let gstAmount:any = price * (18 / 100)\r\n this.priceValueDetails.finalValue = (parseFloat(price) + parseFloat(gstAmount)).toFixed(2);\r\n this.priceValueDetails.totalNegotiatePrice = price.toFixed(2);\r\n }\r\n this.changeDetector.detectChanges();\r\n\r\n }\r\n \r\n getpaymentinvoice(id: any) {\r\n this.PaymentSubscriptionService.getpaymentinvoice(id).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n this.paymentinvoiceinfo = res.data;\r\n this.paymentIssue = res.data.paymenttype;\r\n this.currencyIssue = res.data.currencyType;\r\n this.selectedIssue = res.data.paymentCycle;\r\n this.invoiceonIssue = res.data.invoiceOn;\r\n this.paymentinvoiceform.get('radiooptions')?.setValue(res.data.proRate);\r\n this.paymentinvoiceform.patchValue(\r\n {\r\n fileType: res.data.fileType,\r\n },\r\n { emitEvent: false, onlySelf: true }\r\n )\r\n\r\n this.generateinvoiceList = res.data?.invoiceTo\r\n this.generateinvoiceCCList = res.data?.invoiceCC\r\n\r\n this.paymentallowedList = res.data?.paymentAgreementTo\r\n this.extendPaymentPeriodDays = res.data?.extendPaymentPeriodDays != '' ? res.data?.extendPaymentPeriodDays : 0;\r\n this.paymentinvoiceform.get('extendPaymentPeriodDays')?.setValue(this.extendPaymentPeriodDays);\r\n this.changeDetector.detectChanges();\r\n }else{\r\n this.paymentinvoiceform.get('extendPaymentPeriodDays')?.setValue(0);\r\n \r\n }\r\n })\r\n }\r\n\r\n onpaymentSubmit() {\r\n const requestData = {\r\n proRate: this.radiooptions,\r\n paymenttype: this.paymentIssue,\r\n paymentCycle: this.selectedIssue,\r\n currencyType: this.currencyIssue,\r\n invoiceTo: this.generateinvoiceList,\r\n invoiceCC: this.generateinvoiceCCList,\r\n paymentAgreementTo: this.paymentallowedList,\r\n invoiceOn: this.invoiceonIssue,\r\n extendPaymentPeriodDays: this.extendPaymentPeriodDays,\r\n };\r\n this.PaymentSubscriptionService.invoiceupdate(requestData, this.clientId).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n this.toast.getPrimaryToast(res.message)\r\n this.changeDetector.detectChanges()\r\n this.onpaymentCancel()\r\n this.paymentinvoiceshow = true\r\n }\r\n },\r\n (error) => {\r\n if(error?.error?.error) {\r\n this.toast.getErrorToast(error.error.error);\r\n }\r\n else {\r\n this.toast.getErrorToast('Please Fill all Fields');\r\n }\r\n })\r\n }\r\n\r\n onpaymentCancel() {\r\n this.PaymentSubscriptionService.paymentinvoiceFormData.next({ value: null, type: 'cancel', form: 'payment-invoice' })\r\n this.paymentinvoiceshow = true\r\n this.getpaymentinvoice(this.clientId);\r\n this.paymentinvoiceform.disable()\r\n }\r\n\r\n onpaymentedit() {\r\n this.paymentinvoiceshow = false\r\n this.paymentinvoiceform.enable()\r\n }\r\n\r\n invoiceTableData() {\r\n this.searchDisabled = false;\r\n let filters: Record<string, any> = {\r\n limit: this.pageSize,\r\n offset: this.currentPage,\r\n filter: this.isFilter,\r\n clientId: this.clientId,\r\n searchValue: this.searchInput,\r\n export: false,\r\n sortColumn:this.sortColumName,\r\n sortBy:this.sortBy\r\n }\r\n this.PaymentSubscriptionService.invoiceTableData(filters).pipe(takeUntil(this.destroy$)).subscribe({\r\n \r\n next: (e) => {\r\n\r\n if (e?.data?.count) {\r\n this.invoiceLoading = false;\r\n this.invoiceNoData = false;\r\n this.invoiceList = e.data?.data\r\n this.totalItems = e.data?.count\r\n this.changeDetector.detectChanges()\r\n } else {\r\n this.invoiceLoading = false;\r\n this.invoiceNoData = true;\r\n this.searchDisabled = true;\r\n if(this.searchInput?.length) {\r\n this.searchDisabled = false\r\n }\r\n this.invoiceList = []\r\n this.totalItems = 0\r\n this.changeDetector.detectChanges()\r\n }\r\n\r\n },\r\n error: (e) => {\r\n this.invoiceList = []\r\n this.totalItems = 0\r\n this.changeDetector.detectChanges()\r\n }\r\n })\r\n }\r\n onExport() {\r\n this.currentPage = 1;\r\n let filters: Record<string, any> = {\r\n limit: this.pageSize,\r\n offset: this.currentPage,\r\n filter: this.isFilter,\r\n clientId: this.clientId,\r\n searchValue: this.searchInput,\r\n export: true\r\n }\r\n this.PaymentSubscriptionService.invoiceTableDataExport(filters).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (res) => {\r\n this.PaymentSubscriptionService.saveAsExcelFile(res, 'invoice');\r\n },\r\n error: (e) => {\r\n this.toast.getErrorToast('Something went Wrong..')\r\n }\r\n })\r\n }\r\n\r\n onPageSizeChange(pageSize: any) {\r\n this.currentPage = 1;\r\n this.pageSize = parseInt(pageSize)\r\n this.invoiceTableData()\r\n }\r\n\r\n onPageChange(pageOffset: any) {\r\n this.currentPage = parseInt(pageOffset)\r\n this.invoiceTableData()\r\n }\r\n\r\n invoiceFilter() {\r\n this.currentPage = 1\r\n this.invoiceTableData()\r\n }\r\n\r\n sortData() {\r\n this.sortBy *= -1;\r\n this.changeDetector.detectChanges();\r\n this.invoiceTableData()\r\n }\r\n\r\n searchField() {\r\n this.invoiceTableData()\r\n }\r\n\r\n revertOriginalPrice() {\r\n this.priceValueDetails = JSON.parse(JSON.stringify(this.originalPriceValue))\r\n }\r\n\r\n getProductList() {\r\n this.loading = true;\r\n let data = {\r\n id:this.clientId,\r\n sortColumn:'storeCount',\r\n sortBy:this.sortBy\r\n };\r\n this.PaymentSubscriptionService.getProductList(data).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n this.loading = false;\r\n this.noData = false;\r\n this.productList = res.data;\r\n this.changeDetector.detectChanges();\r\n }\r\n else {\r\n this.noData = true;\r\n this.loading = false;\r\n }\r\n },(error:any) => {\r\n this.loading = false;\r\n this.noData = true;\r\n })\r\n }\r\n\r\n getStoreList() {\r\n this.loading = true;\r\n this.PaymentSubscriptionService.getStoreList(this.dynamicData).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n this.loading = false;\r\n this.noData = false;\r\n this.storeList = res.data.data;\r\n this.storeList.forEach((item: any) => {\r\n item.checked = this.selectAll;\r\n })\r\n this.totalCount = res.data.count;\r\n this.changeDetector.detectChanges();\r\n }\r\n else {\r\n this.noData = true;\r\n this.loading = false;\r\n }\r\n }, (error: any) => {\r\n this.loading = false;\r\n this.noData = true;\r\n })\r\n }\r\n\r\n onStorePageChange(event: any) {\r\n this.dynamicData.offset = parseInt(event);\r\n this.getStoreList();\r\n }\r\n\r\n onStorePageSizeChange(event: any) {\r\n this.dynamicData.offset = 1;\r\n this.dynamicData.limit = parseInt(event);\r\n this.getStoreList();\r\n }\r\n\r\n filterList() {\r\n let data = this.clientId;\r\n this.PaymentSubscriptionService.getFilterDetails(data).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n res.data.store.forEach((store: any) => {\r\n let storesIndex = this.dataObject.findIndex((item: any) => item.Description == 'Store');\r\n if (storesIndex != -1) {\r\n this.dataObject[storesIndex].Issues.push({\r\n text: store.storeName,\r\n id: store.storeId\r\n })\r\n }\r\n })\r\n\r\n res.data.location.forEach((location: any, index: any) => {\r\n let locationIndex = this.dataObject.findIndex((item: any) => item.Description == 'Location');\r\n if (locationIndex != -1) {\r\n this.dataObject[locationIndex].Issues.push({\r\n text: location,\r\n id: index\r\n })\r\n }\r\n })\r\n\r\n res.data.product.forEach((product: any, index: any) => {\r\n let productIndex = this.dataObject.findIndex((item: any) => item.Description == 'Products');\r\n if (productIndex != -1) {\r\n this.dataObject[productIndex].Issues.push({\r\n text: product,\r\n id: index\r\n })\r\n }\r\n })\r\n this.changeDetector.detectChanges();\r\n }\r\n })\r\n\r\n\r\n }\r\n\r\n searchRecords(event: any) {\r\n this.dynamicData.offset = 1;\r\n this.dynamicData.searchValue = event.target.value;\r\n this.getStoreList();\r\n }\r\n\r\n selectAllStore(event: any) {\r\n this.disabledAddIcon = true;\r\n let storeIdList; \r\n if (event.target.checked) {\r\n storeIdList = this.dataObject[1].Issues.map((item:any) => item.id);\r\n let data = {\r\n clientId: this.clientId,\r\n store: []\r\n }\r\n this.PaymentSubscriptionService.storeProduct(data).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n this.storeProduct = res.data;\r\n }\r\n })\r\n }\r\n else {\r\n storeIdList = [];\r\n this.storeProduct = [];\r\n }\r\n this.selectAll = event.target.checked;\r\n this.storeList.forEach((item: any) => {\r\n item.checked = event.target.checked\r\n })\r\n this.selectedStoreList = storeIdList;\r\n }\r\n\r\n getStores() {\r\n return this.selectedStoreList\r\n }\r\n\r\n updateCheck(event: any, storeId: any) {\r\n if (event.target.checked) {\r\n this.selectedStoreList.push(storeId)\r\n }\r\n else {\r\n let index = this.selectedStoreList.findIndex((item: any) => item === storeId);\r\n if (index != -1) {\r\n this.selectedStoreList.splice(index, 1);\r\n }\r\n }\r\n\r\n if (this.selectedStoreList.length == this.totalCount)\r\n this.selectAll = true;\r\n else\r\n this.selectAll = false;\r\n\r\n if(this.selectedStoreList.length > 1)\r\n this.disabledAddIcon = true;\r\n else\r\n this.disabledAddIcon = false;\r\n \r\n let data = {\r\n clientId: this.clientId,\r\n store: this.selectedStoreList\r\n }\r\n this.PaymentSubscriptionService.storeProduct(data).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n this.storeProduct = res.data;\r\n this.changeDetector.detectChanges();\r\n }\r\n })\r\n }\r\n\r\n getProduct() {\r\n if (this.selectedStoreList.length || this.selectAll) {\r\n return this.storeProduct;\r\n }\r\n return [];\r\n }\r\n\r\n notificationList() {\r\n this.notificationDetails = [];\r\n let data = this.clientId;\r\n this.PaymentSubscriptionService.getNotification(data).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n this.notificationDetails = res.data;\r\n \r\n this.notificationDetails.notificationList.forEach((item: any) => {\r\n item.producttraildropDown = false;\r\n })\r\n this.currentPlan = res.data.currentPlan;\r\n this.changeDetector.detectChanges();\r\n }\r\n })\r\n }\r\n\r\n cancelUnsubscribe(data: any, type: any) {\r\n let params = {\r\n id: data._id,\r\n type: type\r\n }\r\n this.approveCancelUnsubscribe(params);\r\n }\r\n\r\n approveCancelUnsubscribe(data: any) {\r\n this.PaymentSubscriptionService.unsubscribeApproval(data).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n if (data.type == 'unsubscribe') {\r\n this.toast.getPrimaryToast(`Unsubscribed Tango Suite for ${this.clientinfo.clientName} successfully`)\r\n }\r\n this.notificationList();\r\n this.changeDetector.detectChanges();\r\n }\r\n })\r\n }\r\n\r\n reload(event:any) {\r\n this.selectedStoreList = [];\r\n this.disabledAddIcon = false;\r\n if(event == 'store') {\r\n this.getStoreList();\r\n this.selectAll = false;\r\n }\r\n if(event == 'product') {\r\n this.getProductList();\r\n }\r\n this.notificationList();\r\n }\r\n\r\n convertUpper(data:string) {\r\n let [firstWord, secondWord] = data.replace(/([a-z])([A-Z])/g, '$1 $2').split(' ');\r\n firstWord = firstWord.charAt(0).toUpperCase() + firstWord.slice(1);\r\n return firstWord + ' ' + secondWord;\r\n }\r\n\r\n @HostListener('document:click', ['$event'])\r\n onDocumentClick(event: MouseEvent) {\r\n if (this.paymenttypedropDown) {\r\n this.paymenttypedropDown = false;\r\n }\r\n if (this.dropDown) {\r\n this.dropDown = false;\r\n }\r\n if (this.currencydropDown) {\r\n this.currencydropDown = false;\r\n }\r\n if (this.invoicedropDown) {\r\n this.invoicedropDown = false;\r\n }\r\n if (this.viewplandropDown) {\r\n this.viewplandropDown = false;\r\n }\r\n if(this.notificationDetails?.notificationList) {\r\n this.notificationDetails.notificationList.forEach((item:any)=>{\r\n item.producttraildropDown = false\r\n })\r\n }\r\n }\r\n\r\n sortStoreSize() {\r\n this.sortBy *= -1;\r\n this.getProductList()\r\n }\r\n\r\n getPriceError(value:any) {\r\n if(value > 0 && !isNaN(value) || value == 0){\r\n return '';\r\n }\r\n else {\r\n return 'error';\r\n }\r\n }\r\n\r\n downloadInvoice(data:any) {\r\n console.log('data', data);\r\n \r\n this.PaymentSubscriptionService.invoiceDownload(data).subscribe((res:any)=> {\r\n if(res) {\r\n const blob = new Blob([res], { type: 'application/pdf' });\r\n const link = document.createElement('a');\r\n link.href = window.URL.createObjectURL(blob);\r\n link.target = '_blank';\r\n link.click();\r\n }\r\n \r\n })\r\n }\r\n showProduct(data:string) {\r\n return data.slice(2-data.length)\r\n }\r\n omit_special_char(event: any) {\r\n var k;\r\n k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return (k == 8 || k == 32 || (k >= 48 && k <= 57));\r\n }\r\n // formatToRupee(number: number): string {\r\n // return number.toLocaleString('en-IN');\r\n // }\r\n\r\n // // Example usage:\r\n // amount: number = 120000;\r\n // formattedAmount: string = this.formatToRupee(this.amount);\r\n \r\n}\r\n","<div class=\"row\">\r\n <div class=\"col-12\">\r\n <div ngbAccordion [closeOthers]=\"true\">\r\n <!-- Billing & subscription start -->\r\n <div class=\"card\" ngbAccordionItem [collapsed]=\"openaccordian\">\r\n <div class=\"d-flex\" ngbAccordionHeader>\r\n <button class=\"mainheading\" ngbAccordionButton (click)=\"clientBillingInfo(clientId)\">Billing &\r\n Subscription<div class=\"divider\"></div>\r\n </button>\r\n </div>\r\n <div ngbAccordionCollapse>\r\n <div ngbAccordionBody>\r\n <ng-template>\r\n <!--begin::plan details Card-->\r\n <div class=\"col-xl-12 billingcard\">\r\n <div class=\" h-xl-100 flex-row flex-stack flex-wrap p-6\">\r\n <div class=\"toastcard col-md-12 mb-4\"\r\n *ngIf=\"clientinfo?.currentPlanInfo?.paymentStatus==='due' && clientinfo?.currentPlanInfo?.dueLimitReached===false\">\r\n <div class=\"d-flex align-items-center justify-content-end\">\r\n <div class=\"symbol symbol-30px me-5\"><span>\r\n <img src=\"./assets/tango/custompopup-Icons/danger-alert-primary.svg\"\r\n alt=\"\">\r\n </span>\r\n </div>\r\n <span class=\"toasttext d-block\">Kind Reminder: You have a reached your due\r\n limit ,To continue enjoying our services, please renew your subscription\r\n by making the payment. Thank you for your cooperation</span>\r\n <span><a type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-primary px-4 ng-star-inserted\"\r\n style=\"white-space: nowrap;\"><span class=\"create\">Pay Now\r\n </span></a></span>\r\n </div>\r\n\r\n </div>\r\n <div class=\"toastcard col-md-12 mb-4\"\r\n *ngIf=\"clientinfo?.currentPlanInfo?.paymentStatus==='due' && clientinfo?.currentPlanInfo?.dueLimitReached===true\">\r\n <div class=\"d-flex align-items-center justify-content-end\">\r\n <div class=\"symbol symbol-30px me-5\"><span>\r\n <img src=\"./assets/tango/custompopup-Icons/danger-alert-primary.svg\"\r\n alt=\"\">\r\n </span>\r\n </div>\r\n <span class=\"toasttext d-block\">Kind Reminder: We haven't received your\r\n payment yet. To continue enjoying our services, please renew your\r\n subscription by making the payment. Thank you for your\r\n cooperation</span>\r\n <span><a type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-primary px-4 ng-star-inserted\"\r\n style=\"white-space: nowrap;\"><span class=\"create\">Pay Now\r\n </span></a></span>\r\n </div>\r\n\r\n </div>\r\n <div class=\"d-flex flex-column\"\r\n *ngIf=\"(gs.userAccess | async)?.settings_paymentSubscriptions_isView\">\r\n <div class=\"d-flex align-items-center justify-content-between border-val mb-2\">\r\n Current Plan Info<span class=\"badge-light-grey ms-2\">\r\n {{clientinfo?.currentPlanInfo?.priceType\r\n || '--' }}</span>\r\n </div>\r\n <div class=\"d-flex align-items-center pricingtext my-2\">\r\n <span>\r\n {{ clientinfo?.currentPlanInfo?.currencyType === 'dollar' ? ('$' +\r\n (clientinfo?.currentPlanInfo?.dollarPrice ||\r\n '--')?.toLocaleString('en-IN')) : ('₹' +\r\n (clientinfo?.currentPlanInfo?.price ||\r\n '--')?.toLocaleString('en-IN'))}}</span>\r\n <span class=\"pricingspan ms-2\">Store/Month</span>\r\n </div>\r\n <hr>\r\n <div class=\"d-flex justify-content-between\">\r\n <div class=\"d-flex justify-content-start flex-column plancard\">\r\n <div class=\" heading mb-3\">\r\n <span\r\n *ngIf=\"clientinfo?.currentPlanInfo?.subscriptionType\">{{clientinfo?.currentPlanInfo?.subscriptionType\r\n | titlecase}}</span> <span\r\n *ngIf=\"!clientinfo?.currentPlanInfo?.subscriptionType\">--</span>\r\n plan - {{(clientinfo?.currentPlanInfo?.storeCount\r\n || '--')?.toLocaleString('en-IN')}}\r\n <span class=\"subheading ms-2\">store\r\n onboarded</span>\r\n <span ngbTooltip=\"{{ product.toolTip }}\" placement=\"top\"\r\n triggers=\"mouseenter:mouseleave\" tooltipClass=\"custom-tooltip\"\r\n class=\"badge badge-light-primary ms-2\"\r\n *ngFor=\"let product of clientinfo?.currentPlanInfo?.trialProducts\">\r\n {{ product.aliseProductName }}\r\n <img class=\"ms-2\"\r\n src=\"./assets/tango/custompopup-Icons/primary-clock-icon.svg\"\r\n alt=\"\"> </span>\r\n <span tooltipClass=\"custom-tooltip\"\r\n ngbTooltip=\"{{ product.toolTip }}\" placement=\"top\"\r\n triggers=\"mouseenter:mouseleave\"\r\n class=\"badge badge-light-warning ms-2\"\r\n *ngFor=\"let product of clientinfo?.currentPlanInfo?.expiredProducts\">\r\n {{ product.aliseProductName }}\r\n <img class=\"ms-2\"\r\n src=\"./assets/tango/custompopup-Icons/clockexpiry-icon.svg\"\r\n alt=\"\"> </span>\r\n </div>\r\n <span class=\"sub d-block\">Cameras :\r\n {{clientinfo?.currentPlanInfo?.totalCamera\r\n || '--'}} | Avg sq.ft : {{clientinfo?.currentPlanInfo?.storeSize\r\n || '--'}} sq.ft | Products : <span\r\n *ngFor=\"let product of clientinfo?.currentPlanInfo?.liveProducts; let last = last\">\r\n {{ product.aliseProductName }}{{ !last ? ', ' : '' }} </span>\r\n </span>\r\n </div>\r\n\r\n <div class=\" d-flex align-items-end\"\r\n *ngIf=\"(gs.userAccess | async)?.settings_paymentSubscriptions_isEdit\">\r\n <span\r\n [disableTooltip]=\"!clientinfo?.currentPlanInfo?.pendingClientRequest\"\r\n ngbTooltip=\"Request is Already initiated waiting for admin approval\"\r\n placement=\"top\" triggers=\"mouseenter:mouseleave\"\r\n tooltipClass=\"custom-tooltip\">\r\n <button type=\"submit\"\r\n [disabled]=\"clientinfo?.currentPlanInfo?.pendingClientRequest\"\r\n (click)=\"needhelp()\" class=\"btn-outline btn needhelp me-4\"><span\r\n class=\"me-2\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g clip-path=\"url(#clip0_1965_2301)\">\r\n <path\r\n d=\"M7.57533 7.50033C7.77125 6.94338 8.15795 6.47375 8.66695 6.1746C9.17596 5.87546 9.77441 5.76611 10.3563 5.86592C10.9382 5.96573 11.466 6.26826 11.8462 6.71993C12.2264 7.1716 12.4345 7.74326 12.4337 8.33366C12.4337 10.0003 9.93366 10.8337 9.93366 10.8337M10.0003 14.167H10.0087M18.3337 10.0003C18.3337 14.6027 14.6027 18.3337 10.0003 18.3337C5.39795 18.3337 1.66699 14.6027 1.66699 10.0003C1.66699 5.39795 5.39795 1.66699 10.0003 1.66699C14.6027 1.66699 18.3337 5.39795 18.3337 10.0003Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1965_2301\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span><span class=\"mt-2\"> Need Help</span>\r\n </button>\r\n </span>\r\n <span\r\n [disableTooltip]=\"!clientinfo?.currentPlanInfo?.pendingClientRequest\"\r\n ngbTooltip=\"Request is Already initiated waiting for admin approval\"\r\n placement=\"top\" triggers=\"mouseenter:mouseleave\"\r\n tooltipClass=\"custom-tooltip\">\r\n <button\r\n [disabled]=\"clientinfo?.currentPlanInfo?.pendingClientRequest\"\r\n (click)=\"upgradeplan()\" type=\"button\" tabindex=\"0\"\r\n class=\"btn update btn-lg btn-light btn-active-light-primary px-4 ng-star-inserted\"\r\n style=\"white-space: nowrap;\"><span class=\"create\">Upgrade Plan\r\n </span></button>\r\n </span>\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <!--end::plan details Card-->\r\n\r\n\r\n <div class=\"row gx-4 mt-4\"\r\n *ngIf=\"(gs.userAccess | async)?.settings_paymentSubscriptions_isView\">\r\n <!--begin::Bank details Card-->\r\n <div class=\"col-xl-7 \">\r\n <div class=\"billingcard h-xl-100 flex-row flex-stack flex-wrap p-6\">\r\n <div class=\"d-flex flex-column py-2\">\r\n <div class=\"d-flex align-items-center billingtext mb-8\">\r\n Bank Details\r\n </div>\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"col-lg-4\">\r\n <div class=\"billingdetails\">Payment Type</div>\r\n <div class=\"billingmain\">Fund Transfer\r\n <!-- Virtual Acc -->\r\n </div>\r\n </div>\r\n <div class=\"col-lg-4\">\r\n <div class=\"billingdetails\">Account No </div>\r\n <div class=\"billingmain\">50200027441433\r\n <!-- {{clientinfo?.bankDetails?.accountNo ||\r\n '--'}} -->\r\n </div>\r\n </div>\r\n <div class=\"col-lg-4\">\r\n <div class=\"billingdetails\">IFSC Code</div>\r\n <div class=\"billingmain\"> HDFC0000269\r\n <!-- {{clientinfo?.bankDetails?.ifscCode ||\r\n '--'}} -->\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"d-flex align-items-center mt-8\">\r\n <div class=\"col-lg-4\">\r\n <div class=\"billingdetails\">SWIFT Code</div>\r\n <div class=\"billingmain\"> HDFCINBBCHE\r\n <!-- {{clientinfo?.bankDetails?.swiftCode ||\r\n '--'}} -->\r\n </div>\r\n </div>\r\n <div class=\"col-lg-4\">\r\n <div class=\"billingdetails\">Branch </div>\r\n <div class=\"billingmain\">RS Puram, Coimbatore\r\n <!-- {{clientinfo?.bankDetails?.branch || '--'}} -->\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!--end::Bank details Card-->\r\n\r\n\r\n <div class=\"col-xl-5 \"\r\n *ngIf=\"(gs.userAccess | async)?.settings_paymentSubscriptions_isView\">\r\n\r\n <!-- Add Billing start -->\r\n <div class=\"billing h-xl-100 w-100 flex-row flex-stack flex-wrap p-6\"\r\n *ngIf=\"!clientinfo?.billingDetails?.billingAddress\">\r\n <div class=\"modal-content align-items-center mt-2\">\r\n <div class=\"d-flex\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/addbilling_icon.svg\"\r\n alt=\"\"></div>\r\n\r\n </div>\r\n <div class=\"heading mt-4 ms-1\">Add billing address</div>\r\n <div class=\"d-flex justify-content-center mt-8 w-100\">\r\n <button type=\"button\" tabindex=\"0\" (click)=\"update()\"\r\n class=\"btn btn-primary ms-2 ng-star-inserted address w-100\"\r\n style=\"white-space: nowrap;\"\r\n *ngIf=\"(gs.userAccess | async)?.settings_paymentSubscriptions_isEdit\"><span\r\n class=\"submit\"><svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M10.0003 4.16675V15.8334M4.16699 10.0001H15.8337\"\r\n stroke=\"white\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span> New Address </button>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <!-- Add Billing end -->\r\n <!-- Billing Information start -->\r\n <div class=\"billingcard h-xl-100 flex-row flex-stack flex-wrap p-6\"\r\n *ngIf=\"clientinfo?.billingDetails?.billingAddress && clientinfo?.billingDetails?.billingAddress!==''\">\r\n <div class=\"d-flex flex-column py-2\">\r\n <div\r\n class=\"d-flex align-items-center justify-content-between billingtext mb-5\">\r\n Billing\r\n <a type=\"submit\" (click)=\"update()\"\r\n class=\"btn update btn-lg btn-light btn-active-light-primary px-4 ng-star-inserted\"\r\n *ngIf=\"(gs.userAccess | async)?.settings_paymentSubscriptions_isEdit\"><span\r\n class=\"mt-2\">\r\n Update</span></a>\r\n\r\n </div>\r\n\r\n <div class=\"align-items-center\">\r\n\r\n <div class=\"billingdetails\">Next Billing Date</div>\r\n <div class=\"billingmain\">\r\n {{clientinfo?.billingDetails?.nextBillingDate || '--'}}\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n <div class=\"align-items-center mt-8\">\r\n <div class=\"billingdetails\">Billing Address</div>\r\n <div class=\"billingmain\">\r\n {{clientinfo?.billingDetails?.billingAddress ||\r\n '--'}}\r\n </div>\r\n\r\n\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <!-- Billing Information End -->\r\n\r\n </div>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- Billing & subscription End -->\r\n\r\n <!--subscription Config start -->\r\n <div class=\"card mt-6\" ngbAccordionItem\r\n *ngIf=\"(gs.userAccess | async)?.userType === 'tango' && (gs.userAccess | async)?.settings_paymentSubscriptions_isView\">\r\n <div class=\"d-flex\" ngbAccordionHeader>\r\n <button class=\"mainheading\" ngbAccordionButton\r\n (click)=\"notificationList();getProductList()\">Subscription Config <div class=\"divider\"></div>\r\n </button>\r\n </div>\r\n <div ngbAccordionCollapse>\r\n <div ngbAccordionBody>\r\n\r\n <ng-template>\r\n <div class=\"col-xl-12 billingcard\">\r\n <div class=\" h-xl-100 flex-row flex-stack flex-wrap mx-5 pt-4\">\r\n <div class=\"d-flex flex-column\">\r\n <!-- subscription info header start -->\r\n <div class=\"d-flex justify-content-between\">\r\n\r\n <div *ngIf=\"showNavGroup\" class=\"nav-group nav-group-outline mt-2\">\r\n <button\r\n class=\"btn btn-color-gray-600 btn-active btn-active-secondary px-6 py-3 me-2\"\r\n [ngClass]=\"plan === 'subscription'? 'activePlanBtn':'inactivePlanBtn'\"\r\n data-kt-plan=\"subscription\" (click)=\"selectPlan('subscription')\">\r\n Subscription\r\n </button>\r\n\r\n <button\r\n class=\"btn btn-color-gray-600 btn-active btn-active-secondary px-6 py-3\"\r\n [ngClass]=\"plan === 'pricing'? 'activePlanBtn':'inactivePlanBtn'\"\r\n data-kt-plan=\"pricing\" (click)=\"selectPlan('pricing')\">\r\n Pricing\r\n </button>\r\n </div>\r\n </div>\r\n <!-- subscription info header end -->\r\n\r\n <!-- subscription tab starts -->\r\n <div *ngIf=\"plan === 'subscription'\">\r\n <!-- client request card start -->\r\n <div class=\"row gx-4 mt-4\">\r\n <!--begin::Bank details Card-->\r\n <div class=\"col-xl-6\" [ngClass]=\"i > 1? 'mt-5' : ''\"\r\n *ngFor=\"let notification of notificationDetails.notificationList;let i= index;\">\r\n <!-- Billing Information start -->\r\n <div\r\n class=\"billingcard h-xl-100 flex-row flex-stack flex-wrap mb-6 px-6\">\r\n <div class=\"d-flex flex-column mt-10\"\r\n *ngIf=\"notification.category === 'Trial'\">\r\n <div\r\n class=\"d-flex align-items-center justify-content-between levelviewtext mb-2\">\r\n {{notification.name}} <span\r\n class=\"badge-light-grey ms-2\">{{currentPlan |\r\n titlecase}}</span>\r\n </div>\r\n <div class=\"subtext\">Kindly make necessary action for trial\r\n request or skip product to subscription list</div>\r\n\r\n <div data-kt-subscription-table-toolbar=\"base\"\r\n class=\"d-flex mt-15\"><a\r\n (click)=\"approvetrial(notification,'cancel')\"\r\n type=\"submit\"\r\n class=\"btn-outline btn needhelp me-6 mt-3\"><span\r\n class=\"mt-6\">Skip Trial</span></a><a\r\n (click)=\"approvetrial(notification,'approve')\"\r\n type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-primary px-4 mt-3 ng-star-inserted\"\r\n *ngIf=\"(gs.userAccess | async)?.settings_paymentSubscriptions_isEdit\"><span>Approve\r\n Trial\r\n </span></a></div>\r\n </div>\r\n <div class=\"d-flex flex-column mt-11\"\r\n *ngIf=\"notification.category === 'unsubscribe'\">\r\n <div\r\n class=\"d-flex align-items-center justify-content-between levelviewtext mb-2\">\r\n Unsubscribe Request\r\n </div>\r\n <div class=\"subtext\">Client has requested to unsubscribe\r\n <span class=\"subtextbold\">Tango Suite</span>\r\n </div>\r\n\r\n <div data-kt-subscription-table-toolbar=\"base\"\r\n class=\"d-flex mt-20\"><a type=\"submit\"\r\n class=\"btn-outline btn needhelp me-6 mt-3\"\r\n (click)=\"cancelUnsubscribe(notification,'cancel')\"><span\r\n class=\"mt-6\">Cancel</span></a><a\r\n (click)=\"approveUnsubscribe(notification,'unsubscribe')\"\r\n type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-danger px-4 mt-3 ng-star-inserted\"\r\n *ngIf=\"(gs.userAccess | async)?.settings_paymentSubscriptions_isEdit\"><span>Approve\r\n </span></a></div>\r\n </div>\r\n <div class=\"d-flex flex-column mt-10\"\r\n *ngIf=\"notification.category === 'trial product'\">\r\n <div\r\n class=\"d-flex align-items-center justify-content-between levelviewtext mb-2\">\r\n {{notification.name}} <span\r\n class=\"badge-light-grey ms-2\">{{currentPlan |\r\n titlecase}}</span>\r\n </div>\r\n <div class=\"subtext\">You will not be billed during your free\r\n <span class=\"subtextbold\">trial</span>.To keep your\r\n projects running after the trial end, upgrade to a paid\r\n option.\r\n </div>\r\n <div class=\"row mt-7\">\r\n <div class=\"col-lg-8 d-flex\">\r\n <div><svg id=\"circle-chart\" width=\"94\" height=\"94\"\r\n viewBox=\"0 0 100 100\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <!-- Background circle -->\r\n <circle cx=\"50\" cy=\"50\" r=\"40\" fill=\"none\"\r\n stroke=\"#f0f0f0\" stroke-width=\"8\">\r\n </circle>\r\n <!-- Foreground circle -->\r\n <circle id=\"progress-circle-{{i}}\" cx=\"50\"\r\n cy=\"50\" r=\"40\" fill=\"none\"\r\n stroke=\"#007bff\" stroke-width=\"8\"\r\n stroke-dasharray=\"251.2\"\r\n [attr.stroke-dashoffset]=\"updateCircleChart(notification.percentage,i)\">\r\n </circle>\r\n <!-- Text displaying percentage -->\r\n <text id=\"percentage-text-{{i}}\" x=\"50\"\r\n y=\"54\" class=\"producttext\"\r\n text-anchor=\"middle\"\r\n fill=\"#333333\">{{notification.percentage}}%</text>\r\n </svg></div>\r\n <div\r\n class=\"align-items-start justify-content-between daysleft ms-6 mt-3\">\r\n {{notification.day}} Days Left\r\n <div class=\"align-items-start trail mt-4 me-16\">\r\n Free trial</div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"col-lg-4 mt-6\">\r\n <div class=\"position-relative\">\r\n <div (click)=\"producttrailDropdown($event,i)\">\r\n <span\r\n class=\"justify-content-end cursor-pointer ms-20\"><svg\r\n width=\"60\" height=\"60\"\r\n viewBox=\"0 0 60 60\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g\r\n filter=\"url(#filter0_d_5221_60143)\">\r\n <rect x=\"2\" y=\"1\" width=\"56\"\r\n height=\"56\" rx=\"8\"\r\n fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"55\"\r\n height=\"55\" rx=\"7.5\"\r\n stroke=\"#D0D5DD\" />\r\n <g\r\n clip-path=\"url(#clip0_5221_60143)\">\r\n <path\r\n d=\"M30 32C31.6569 32 33 30.6569 33 29C33 27.3431 31.6569 26 30 26C28.3431 26 27 27.3431 27 29C27 30.6569 28.3431 32 30 32Z\"\r\n stroke=\"#344054\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M37.4 32C37.2669 32.3016 37.2272 32.6362 37.286 32.9606C37.3448 33.285 37.4995 33.5843 37.73 33.82L37.79 33.88C37.976 34.0657 38.1235 34.2863 38.2241 34.5291C38.3248 34.7719 38.3766 35.0322 38.3766 35.295C38.3766 35.5578 38.3248 35.8181 38.2241 36.0609C38.1235 36.3037 37.976 36.5243 37.79 36.71C37.6043 36.896 37.3837 37.0435 37.1409 37.1441C36.8981 37.2448 36.6378 37.2966 36.375 37.2966C36.1122 37.2966 35.8519 37.2448 35.6091 37.1441C35.3663 37.0435 35.1457 36.896 34.96 36.71L34.9 36.65C34.6643 36.4195 34.365 36.2648 34.0406 36.206C33.7162 36.1472 33.3816 36.1869 33.08 36.32C32.7842 36.4468 32.532 36.6572 32.3543 36.9255C32.1766 37.1938 32.0813 37.5082 32.08 37.83V38C32.08 38.5304 31.8693 39.0391 31.4942 39.4142C31.1191 39.7893 30.6104 40 30.08 40C29.5496 40 29.0409 39.7893 28.6658 39.4142C28.2907 39.0391 28.08 38.5304 28.08 38V37.91C28.0723 37.579 27.9651 37.258 27.7725 36.9887C27.5799 36.7194 27.3107 36.5143 27 36.4C26.6984 36.2669 26.3638 36.2272 26.0394 36.286C25.715 36.3448 25.4157 36.4995 25.18 36.73L25.12 36.79C24.9343 36.976 24.7137 37.1235 24.4709 37.2241C24.2281 37.3248 23.9678 37.3766 23.705 37.3766C23.4422 37.3766 23.1819 37.3248 22.9391 37.2241C22.6963 37.1235 22.4757 36.976 22.29 36.79C22.104 36.6043 21.9565 36.3837 21.8559 36.1409C21.7552 35.8981 21.7034 35.6378 21.7034 35.375C21.7034 35.1122 21.7552 34.8519 21.8559 34.6091C21.9565 34.3663 22.104 34.1457 22.29 33.96L22.35 33.9C22.5805 33.6643 22.7352 33.365 22.794 33.0406C22.8528 32.7162 22.8131 32.3816 22.68 32.08C22.5532 31.7842 22.3428 31.532 22.0745 31.3543C21.8062 31.1766 21.4918 31.0813 21.17 31.08H21C20.4696 31.08 19.9609 30.8693 19.5858 30.4942C19.2107 30.1191 19 29.6104 19 29.08C19 28.5496 19.2107 28.0409 19.5858 27.6658C19.9609 27.2907 20.4696 27.08 21 27.08H21.09C21.421 27.0723 21.742 26.9651 22.0113 26.7725C22.2806 26.5799 22.4857 26.3107 22.6 26C22.7331 25.6984 22.7728 25.3638 22.714 25.0394C22.6552 24.715 22.5005 24.4157 22.27 24.18L22.21 24.12C22.024 23.9343 21.8765 23.7137 21.7759 23.4709C21.6752 23.2281 21.6234 22.9678 21.6234 22.705C21.6234 22.4422 21.6752 22.1819 21.7759 21.9391C21.8765 21.6963 22.024 21.4757 22.21 21.29C22.3957 21.104 22.6163 20.9565 22.8591 20.8559C23.1019 20.7552 23.3622 20.7034 23.625 20.7034C23.8878 20.7034 24.1481 20.7552 24.3909 20.8559C24.6337 20.9565 24.8543 21.104 25.04 21.29L25.1 21.35C25.3357 21.5805 25.635 21.7352 25.9594 21.794C26.2838 21.8528 26.6184 21.8131 26.92 21.68H27C27.2958 21.5532 27.548 21.3428 27.7257 21.0745C27.9034 20.8062 27.9987 20.4918 28 20.17V20C28 19.4696 28.2107 18.9609 28.5858 18.5858C28.9609 18.2107 29.4696 18 30 18C30.5304 18 31.0391 18.2107 31.4142 18.5858C31.7893 18.9609 32 19.4696 32 20V20.09C32.0013 20.4118 32.0966 20.7262 32.2743 20.9945C32.452 21.2628 32.7042 21.4732 33 21.6C33.3016 21.7331 33.6362 21.7728 33.9606 21.714C34.285 21.6552 34.5843 21.5005 34.82 21.27L34.88 21.21C35.0657 21.024 35.2863 20.8765 35.5291 20.7759C35.7719 20.6752 36.0322 20.6234 36.295 20.6234C36.5578 20.6234 36.8181 20.6752 37.0609 20.7759C37.3037 20.8765 37.5243 21.024 37.71 21.21C37.896 21.3957 38.0435 21.6163 38.1441 21.8591C38.2448 22.1019 38.2966 22.3622 38.2966 22.625C38.2966 22.8878 38.2448 23.1481 38.1441 23.3909C38.0435 23.6337 37.896 23.8543 37.71 24.04L37.65 24.1C37.4195 24.3357 37.2648 24.635 37.206 24.9594C37.1472 25.2838 37.1869 25.6184 37.32 25.92V26C37.4468 26.2958 37.6572 26.548 37.9255 26.7257C38.1938 26.9034 38.5082 26.9987 38.83 27H39C39.5304 27 40.0391 27.2107 40.4142 27.5858C40.7893 27.9609 41 28.4696 41 29C41 29.5304 40.7893 30.0391 40.4142 30.4142C40.0391 30.7893 39.5304 31 39 31H38.91C38.5882 31.0013 38.2738 31.0966 38.0055 31.2743C37.7372 31.452 37.5268 31.7042 37.4 32Z\"\r\n stroke=\"#344054\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </g>\r\n <defs>\r\n <filter\r\n id=\"filter0_d_5221_60143\"\r\n x=\"0\" y=\"0\" width=\"60\"\r\n height=\"60\"\r\n filterUnits=\"userSpaceOnUse\"\r\n color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\"\r\n result=\"BackgroundImageFix\" />\r\n <feColorMatrix\r\n in=\"SourceAlpha\"\r\n type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\r\n result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur\r\n stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\"\r\n in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_5221_60143\" />\r\n <feBlend mode=\"normal\"\r\n in=\"SourceGraphic\"\r\n in2=\"effect1_dropShadow_5221_60143\"\r\n result=\"shape\" />\r\n </filter>\r\n <clipPath id=\"clip0_5221_60143\">\r\n <rect width=\"24\" height=\"24\"\r\n fill=\"white\"\r\n transform=\"translate(18 17)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n <div *ngIf=\"notification.producttraildropDown\"\r\n class=\"card py-2 w-200px position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let producttrailitem of producttrailtype\"\r\n class=\"list-unstyled mb-2\">\r\n <li class=\"producttext px-5 items cursor-pointer py-4\"\r\n (click)=\"producttrailItem(producttrailitem,notification)\">\r\n {{producttrailitem}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n <!--end::Bank details Card-->\r\n </div>\r\n <!-- client request card end -->\r\n\r\n <!-- level view dropdown start -->\r\n <div *ngIf=\"sublevelview\"\r\n class=\"d-flex justify-content-between heading mt-6 cursor-pointer\">\r\n <div class=\"position-relative ms-2\">\r\n <div class=\"form-select levelviewtext\" id=\"currency\"\r\n (click)=\"viewplanDropdown($event)\"\r\n aria-label=\"Default select example\">{{viewplanIssue}}</div>\r\n <div *ngIf=\"viewplandropDown\"\r\n class=\"card py-2 w-100 position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let viewplanitem of viewplantype\"\r\n class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"this.viewplanIssue === viewplanitem ? 'active' : ''\"\r\n class=\"producttext px-5 items cursor-pointer py-4\"\r\n (click)=\"viewplanItem(viewplanitem)\">{{viewplanitem}}\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"text-sub\">Based on Current Subscribed Product</div>\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <div *ngIf=\"plan === 'subscription' && viewplanIssue === 'Product Level View'\"\r\n class=\" d-flex justify-content-end mt-6\">\r\n <lib-multidropdown text=\"Add Products\" [product]=\"productList\"\r\n [productList]=\"dataObject[0].Issues\" type=\"products\"\r\n [clientId]=\"clientId\" (data)=\"reload($event)\"\r\n *ngIf=\"(gs.userAccess | async)?.settings_paymentSubscriptions_isEdit\"></lib-multidropdown>\r\n </div>\r\n </div>\r\n <div class=\"card-toolbar mt-3\"\r\n *ngIf=\"viewplanIssue === 'Store Level View' && plan === 'subscription'\">\r\n <div class=\"d-flex justify-content-end\">\r\n <div class=\"d-flex align-items-end position-relative my-1\">\r\n <span *ngIf=\"storeList.length\"\r\n class=\"svg-icon svg-icon-1 position-absolute mb-3 ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\"\r\n height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <rect opacity=\"0.5\" x=\"17.0365\" y=\"15.1223\"\r\n width=\"8.15546\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(45 17.0365 15.1223)\"\r\n fill=\"currentColor\"></rect>\r\n <path\r\n d=\"M11 19C6.55556 19 3 15.4444 3 11C3 6.55556 6.55556 3 11 3C15.4444 3 19 6.55556 19 11C19 15.4444 15.4444 19 11 19ZM11 5C7.53333 5 5 7.53333 5 11C5 14.4667 7.53333 17 11 17C14.4667 17 17 14.4667 17 11C17 7.53333 14.4667 5 11 5Z\"\r\n fill=\"currentColor\"></path>\r\n </svg>\r\n </span>\r\n <input type=\"text\" class=\"form-control ps-14 me-2\"\r\n placeholder=\"Search\" autocomplete=\"off\"\r\n (change)=\"searchRecords($event)\"\r\n *ngIf=\"storeList.length\" />\r\n <lib-filters class=\"me-2\" [dataObject]=\"dataObject\"\r\n *ngIf=\"storeList.length\"\r\n (appliedFilters)=receiveData($event)></lib-filters>\r\n <lib-multidropdown text=\"Add Products\"\r\n [productList]=\"dataObject[0].Issues\" type=\"stores\"\r\n [stores]=\"getStores()\" [product]=\"getProduct()\"\r\n [clientId]=\"clientId\" [clientProduct]=\"productList\"\r\n (data)=\"reload($event)\" [selectAll]=\"selectAll\"\r\n *ngIf=\"storeList.length && (gs.userAccess | async)?.settings_paymentSubscriptions_isEdit\"></lib-multidropdown>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- subscription config toolbar end -->\r\n </div>\r\n\r\n <ng-container *ngIf=\"loading\">\r\n <div\r\n class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div\r\n class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\"\r\n src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- product subscription plan start -->\r\n <div *ngIf=\"viewplanIssue === 'Product Level View' && !loading && !noData\">\r\n <div class=\"card-body p-0 mt-4\">\r\n <div class=\"table-responsive\">\r\n <table class=\"table bottom-border\">\r\n <thead>\r\n <tr>\r\n <th>Product</th>\r\n <th>\r\n <div (click)=\"sortStoreSize()\">\r\n No of Stores\r\n <span class=\"cursor-pointer\"\r\n *ngIf=\"sortBy !== 1\">\r\n <svg width=\"12\" height=\"12\"\r\n viewBox=\"0 0 12 12\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\"\r\n stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span class=\"cursor-pointer\"\r\n *ngIf=\"sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\"\r\n viewBox=\"0 0 12 12\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\"\r\n stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n </th>\r\n <th>Cost Per Store</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let product of productList;let i=index;\">\r\n <td>\r\n <div class=\"table-title subscribedtext\">\r\n {{convertUpper(product?.product) || '--'}}\r\n </div>\r\n </td>\r\n\r\n <td>\r\n <div class=\"table-title\">{{product?.storeCount\r\n || 0}}</div>\r\n\r\n </td>\r\n\r\n <td>\r\n <div class=\"table-title\">₹ {{(product?.basePrice\r\n || 0) ?.toLocaleString('en-IN')}}</div>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- product subscription plan end -->\r\n\r\n <!-- store subscription plan start -->\r\n <div *ngIf=\"viewplanIssue === 'Store Level View' && !loading && !noData\">\r\n <div class=\"card-body p-0 mt-6\">\r\n <div class=\"\">\r\n <table class=\"table bottom-border\">\r\n <thead>\r\n <tr>\r\n <th>\r\n <div class=\"d-flex align-items-center\">\r\n <input\r\n class=\"form-check-input cursor-pointer me-4\"\r\n [(ngModel)]=\"selectAll\" type=\"checkbox\"\r\n (click)=\"selectAllStore($event)\">\r\n <label class=\"form-check-label\"\r\n for=\"flexCheckDefault\">\r\n <span>Store Info</span>\r\n </label>\r\n </div>\r\n </th>\r\n <th>Location</th>\r\n <th>Products</th>\r\n <th>Actions</th>\r\n\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let store of storeList;let i=index;\">\r\n <td>\r\n <div class=\"d-flex align-items-center\">\r\n <input\r\n class=\"form-check-input cursor-pointer me-4\"\r\n type=\"checkbox\"\r\n [(ngModel)]=\"store.checked\"\r\n (change)=\"updateCheck($event,store?.storeId)\">\r\n <div\r\n class=\"d-flex justify-content-start flex-column\">\r\n <label\r\n class=\"form-check-label table-title-primary\"\r\n for=\"flexCheckDefault\">\r\n <span>{{store?.storeName ||\r\n '--'}}</span>\r\n </label>\r\n <span class=\"table-sub d-block7\">ID :\r\n {{store?.storeId || '--'}}</span>\r\n </div>\r\n </div>\r\n\r\n <div>\r\n\r\n\r\n </div>\r\n </td>\r\n <td>\r\n <div class=\"table-title\">\r\n {{store?.storeProfile?.city || '--'}}</div>\r\n </td>\r\n\r\n <td *ngIf=\"store?.product && store?.product.length\">\r\n <span\r\n *ngFor=\"let product of store?.product;let i=index;\"><span\r\n *ngIf=\"i<2\"\r\n class=\"badge badge-light-primary me-1\">{{product}}</span></span><span\r\n *ngIf=\"store.product.length > 2\"\r\n [ngbTooltip]=\"showProduct(store.product)\">+{{store?.product.length-2}}</span>\r\n </td>\r\n <td\r\n *ngIf=\"!store?.product || !store?.product.length\">\r\n -- </td>\r\n <td>\r\n <lib-multidropdown\r\n [product]=\"store?.product || []\"\r\n [productList]=\"dataObject[0].Issues\"\r\n type=\"stores\" [stores]=\"[store?.storeId]\"\r\n [clientId]=\"clientId\"\r\n [clientProduct]=\"productList\"\r\n (data)=\"reload($event)\"\r\n *ngIf=\"(gs.userAccess | async)?.settings_paymentSubscriptions_isEdit\"\r\n [disabled]=\"disabledAddIcon\"\r\n [index]=\"i\"></lib-multidropdown>\r\n </td>\r\n\r\n </tr>\r\n </tbody>\r\n </table>\r\n <div class=\"mb-4\">\r\n <lib-pagination [itemsPerPage]=\"dynamicData.limit\"\r\n [currentPage]=\"dynamicData.offset\"\r\n [totalItems]=\"totalCount\" [paginationSizes]=\"[10,20,30]\"\r\n [pageSize]=\"dynamicData.limit\"\r\n (pageChange)=\"onStorePageChange($event)\"\r\n (pageSizeChange)=\"onStorePageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- store subscription plan end -->\r\n </div>\r\n <!-- subscription tab starts -->\r\n\r\n <!--pricing tab start -->\r\n <div *ngIf=\"plan === 'pricing'\">\r\n <div class=\"d-flex justify-content-between py-6\">\r\n <div class=\" levelviewtext mt-4\">\r\n Pricing Table<br><span class=\"text-sub\">Based on Product &\r\n stores</span> </div>\r\n <div class=\"card-toolbar\">\r\n <div class=\"justify-content-end\">\r\n <div class=\"producttext\">Switch to</div>\r\n <div *ngIf=\"PricingshowNav\"\r\n class=\"nav-group nav-group-outline mt-2\">\r\n <button\r\n class=\"btn btn-color-gray-600 btn-active btn-active-secondary px-6 py-3 me-2\"\r\n [ngClass]=\"pricingplan === 'standard'? 'activePlanBtnprimary':'inactivePlanBtn'\"\r\n data-kt-plan=\"standardprice\"\r\n (click)=\"selectPricePlan('standard')\">\r\n Standard Price\r\n </button>\r\n\r\n <button\r\n class=\"btn btn-color-gray-600 btn-active btn-active-secondary px-6 py-3\"\r\n [ngClass]=\"pricingplan === 'step'? 'activePlanBtnprimary':'inactivePlanBtn'\"\r\n data-kt-plan=\"stepprice\"\r\n (click)=\"selectPricePlan('step')\">\r\n Step Price\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"pricingplan === 'step'\" class=\"d-flex justify-content-end mb-8\">\r\n <button (click)=\"addstepprice('add')\" type=\"button\"\r\n class=\"btn-outline btn needhelp text-nowrap\"\r\n *ngIf=\"(gs.userAccess | async)?.settings_paymentSubscriptions_isEdit\"\r\n [disabled]=\"priceNoData\"><svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"21\" height=\"20\" viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path d=\"M10.4993 4.16675V15.8334M4.66602 10.0001H16.3327\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg><span class=\"ms-2\">Add Step</span> </button>\r\n </div>\r\n\r\n <ng-container *ngIf=\"priceLoading\">\r\n <div\r\n class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"priceNoData\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div\r\n class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\"\r\n src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div class=\"card-body p-0 mt-4\">\r\n <div *ngIf=\"pricingplan === 'standard' && !priceLoading && !priceNoData\"\r\n class=\"table-responsive\">\r\n <table class=\"table bottom-border\">\r\n <thead>\r\n <tr>\r\n <th>Product</th>\r\n <th>Actual Price</th>\r\n <th class=\"discountheader\">Discount %</th>\r\n <th class=\"negheader\">Negotiated Price</th>\r\n <th>Installed Stores</th>\r\n <th>Total Price</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr\r\n *ngFor=\"let product of priceValueDetails.product;let i=index;\">\r\n <td>\r\n <div class=\"producttext\">\r\n {{convertUpper(product.productName)}}</div>\r\n\r\n </td>\r\n <td>\r\n <div class=\"table-title\">{{product.basePrice}}</div>\r\n\r\n </td>\r\n <td class=\"discountprice\">\r\n <div><input type=\"text\" class=\" form-control \"\r\n id=\"discountprice\"\r\n style=\"text-transform: capitalize;\"\r\n [(ngModel)]=\"product.discountPercentage\"\r\n (change)=\"calculate(i,'discount')\"\r\n [class]=\"getPriceError(product.discountPercentage)\"\r\n (keypress)=\"omit_special_char($event)\">\r\n </div>\r\n </td>\r\n <td class=\"negprice\">\r\n <div><input type=\"text\"\r\n class=\" form-control w-100px \" id=\"negprice\"\r\n style=\"text-transform: capitalize;\"\r\n [(ngModel)]=\"product.negotiatePrice\"\r\n (change)=\"calculate(i,'price')\"\r\n [class]=\"getPriceError(product.negotiatePrice)\"\r\n (keypress)=\"omit_special_char($event)\">\r\n </div>\r\n </td>\r\n\r\n <td>\r\n <div class=\"table-title\">{{product.storeCount}}\r\n </div>\r\n </td>\r\n\r\n <td>\r\n <div class=\"table-title\">₹\r\n {{product.price?.toLocaleString('en-IN')}}</div>\r\n </td>\r\n </tr>\r\n <tr>\r\n <th>\r\n <div class=\"table-title\">Total Value</div>\r\n\r\n </th>\r\n <th>\r\n <div class=\"table-title bolddata\"> ₹\r\n {{priceValueDetails.actualPrice?.toLocaleString('en-IN')}}\r\n </div>\r\n\r\n </th>\r\n <th>\r\n <!-- <div class=\"table-title bolddata\"> ₹ {{priceValueDetails.negotiatePrice}}</div> -->\r\n </th>\r\n <th>\r\n <div class=\"table-title bolddata\"> ₹\r\n {{priceValueDetails.negotiatePrice?.toLocaleString('en-IN')}}\r\n </div>\r\n </th>\r\n <th></th>\r\n\r\n <th>\r\n <div class=\"table-title bolddata\">\r\n ₹{{priceValueDetails.totalNegotiatePrice?.toLocaleString('en-IN')}}\r\n </div>\r\n </th>\r\n\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <div *ngIf=\"pricingplan === 'step' && !priceLoading && !priceNoData\"\r\n class=\"table-responsive\">\r\n <table class=\"table bottom-border text-nowrap\">\r\n <thead>\r\n <tr>\r\n <th>Product</th>\r\n <th>Actual Price</th>\r\n <th>Discount %</th>\r\n <th>Negotiated Price</th>\r\n <th>Store Range</th>\r\n <th>Installed Stores</th>\r\n <th>Total Price</th>\r\n <th>Actions</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr\r\n *ngFor=\"let product of priceValueDetails?.product;let i=index\">\r\n <td>\r\n <div class=\"producttext\">\r\n {{convertUpper(product.productName)}}\r\n <span class=\"ms-4\" *ngIf=\"product.showImg\"><img\r\n src=\"./assets/tango/custompopup-Icons/expiry-icon.svg\"\r\n alt=\"\"></span>\r\n </div>\r\n\r\n </td>\r\n <td>\r\n <div class=\"table-title\"> ₹ {{product.basePrice}}\r\n </div>\r\n\r\n </td>\r\n <td class=\"discountprice\">\r\n <div><input type=\"text\"\r\n class=\" form-control w-100px\"\r\n id=\"discountprice\"\r\n style=\"text-transform: capitalize;\"\r\n [(ngModel)]=\"product.discountPercentage\"\r\n (change)=\"calculate(i,'discount')\"\r\n [class]=\"getPriceError(product.discountPercentage)\"\r\n (keypress)=\"omit_special_char($event)\">\r\n </div>\r\n </td>\r\n <td class=\"negprice\">\r\n <div><input type=\"text\"\r\n class=\" form-control w-100px\" id=\"negprice\"\r\n style=\"text-transform: capitalize;\"\r\n [(ngModel)]=\"product.negotiatePrice\"\r\n (change)=\"calculate(i,'price')\"\r\n [class]=\"getPriceError(product.negotiatePrice)\"\r\n (keypress)=\"omit_special_char($event)\">\r\n </div>\r\n </td>\r\n <td class=\"storerange\">\r\n <div><input type=\"text\"\r\n class=\" form-control w-150px\"\r\n id=\"storerange\"\r\n style=\"text-transform: capitalize;\"\r\n [(ngModel)]=\"product.storeRange\" readonly>\r\n </div>\r\n </td>\r\n <td>\r\n <div class=\"table-title\">{{product.storeCount}}\r\n </div>\r\n </td>\r\n\r\n <td>\r\n <div class=\"table-title\"> ₹ {{product.price}}</div>\r\n </td>\r\n <td>\r\n <div class=\"table-title d-flex\"\r\n *ngIf=\"!product.showEditDelete\">\r\n <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"21\" height=\"20\"\r\n viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path\r\n d=\"M3.16602 4.99935H4.83268M4.83268 4.99935H18.166M4.83268 4.99935V16.666C4.83268 17.108 5.00828 17.532 5.32084 17.8445C5.6334 18.1571 6.05732 18.3327 6.49935 18.3327H14.8327C15.2747 18.3327 15.6986 18.1571 16.0112 17.8445C16.3238 17.532 16.4993 17.108 16.4993 16.666V4.99935H4.83268ZM7.33268 4.99935V3.33268C7.33268 2.89065 7.50828 2.46673 7.82084 2.15417C8.1334 1.84161 8.55732 1.66602 8.99935 1.66602H12.3327C12.7747 1.66602 13.1986 1.84161 13.5112 2.15417C13.8238 2.46673 13.9993 2.89065 13.9993 3.33268V4.99935M8.99935 9.16602V14.166M12.3327 9.16602V14.166\"\r\n stroke=\"#D0D5DD\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span class=\"ms-6\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"21\" height=\"20\"\r\n viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path\r\n d=\"M14.832 2.5009C15.0509 2.28203 15.3107 2.10842 15.5967 1.98996C15.8827 1.87151 16.1892 1.81055 16.4987 1.81055C16.8082 1.81055 17.1147 1.87151 17.4007 1.98996C17.6867 2.10842 17.9465 2.28203 18.1654 2.5009C18.3842 2.71977 18.5579 2.97961 18.6763 3.26558C18.7948 3.55154 18.8557 3.85804 18.8557 4.16757C18.8557 4.4771 18.7948 4.7836 18.6763 5.06956C18.5579 5.35553 18.3842 5.61537 18.1654 5.83424L6.91536 17.0842L2.33203 18.3342L3.58203 13.7509L14.832 2.5009Z\"\r\n stroke=\"#D0D5DD\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"cursor-pointer table-title d-flex\"\r\n *ngIf=\"product.showEditDelete\">\r\n <span\r\n (click)=\"addstepprice('delete',product,i)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"21\" height=\"20\"\r\n viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path\r\n d=\"M3.16602 4.99935H4.83268M4.83268 4.99935H18.166M4.83268 4.99935V16.666C4.83268 17.108 5.00828 17.532 5.32084 17.8445C5.6334 18.1571 6.05732 18.3327 6.49935 18.3327H14.8327C15.2747 18.3327 15.6986 18.1571 16.0112 17.8445C16.3238 17.532 16.4993 17.108 16.4993 16.666V4.99935H4.83268ZM7.33268 4.99935V3.33268C7.33268 2.89065 7.50828 2.46673 7.82084 2.15417C8.1334 1.84161 8.55732 1.66602 8.99935 1.66602H12.3327C12.7747 1.66602 13.1986 1.84161 13.5112 2.15417C13.8238 2.46673 13.9993 2.89065 13.9993 3.33268V4.99935M8.99935 9.16602V14.166M12.3327 9.16602V14.166\"\r\n stroke=\"#667085\"\r\n stroke-width=\"1.66667\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span (click)=\"addstepprice('edit',product,i)\"\r\n class=\"ms-6\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"21\" height=\"20\"\r\n viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path\r\n d=\"M14.832 2.5009C15.0509 2.28203 15.3107 2.10842 15.5967 1.98996C15.8827 1.87151 16.1892 1.81055 16.4987 1.81055C16.8082 1.81055 17.1147 1.87151 17.4007 1.98996C17.6867 2.10842 17.9465 2.28203 18.1654 2.5009C18.3842 2.71977 18.5579 2.97961 18.6763 3.26558C18.7948 3.55154 18.8557 3.85804 18.8557 4.16757C18.8557 4.4771 18.7948 4.7836 18.6763 5.06956C18.5579 5.35553 18.3842 5.61537 18.1654 5.83424L6.91536 17.0842L2.33203 18.3342L3.58203 13.7509L14.832 2.5009Z\"\r\n stroke=\"#667085\"\r\n stroke-width=\"1.66667\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n </td>\r\n\r\n </tr>\r\n <tr>\r\n <th>\r\n <div class=\"table-title\">Total Value</div>\r\n\r\n </th>\r\n <th>\r\n <div class=\"table-title bolddata\"> ₹\r\n {{priceValueDetails.actualPrice}}</div>\r\n\r\n </th>\r\n <th>\r\n <!-- <div class=\"table-title bolddata\"> ₹ {{priceValueDetails.negotiatePrice}}</div> -->\r\n </th>\r\n <th>\r\n <div class=\"table-title bolddata\"> ₹\r\n {{priceValueDetails.negotiatePrice}}</div>\r\n </th>\r\n <th></th>\r\n <th></th>\r\n <th>\r\n <div class=\"table-title bolddata\"> ₹\r\n {{priceValueDetails.totalNegotiatePrice}}</div>\r\n </th>\r\n <th></th>\r\n\r\n </tr>\r\n\r\n </tbody>\r\n </table>\r\n </div>\r\n\r\n <div class=\"card-body pt-14\" *ngIf=\"!priceLoading && !priceNoData\">\r\n <div class=\"d-flex flex-stack\">\r\n <div class=\"fianlvaltext me-2\">Actual Value</div>\r\n <div class=\"d-flex align-items-senter\">\r\n <span class=\"fianlvaltext\"> ₹\r\n {{priceValueDetails.totalActualPrice?.toLocaleString('en-IN')}}</span>\r\n </div>\r\n </div>\r\n <div class=\"d-flex flex-stack pt-4\">\r\n <div class=\"fianlvaltext me-2\">Discount</div>\r\n <div class=\"d-flex align-items-senter\">\r\n <span\r\n class=\"fianlvaltext\">{{priceValueDetails.discountPercentage}}%\r\n (- ₹ {{priceValueDetails.discountPrice.toFixed(2)}})</span>\r\n </div>\r\n </div>\r\n <div class=\"d-flex flex-stack pt-4\">\r\n <div class=\"fianlvaltext me-2\">Negotiated Value</div>\r\n <div class=\"d-flex align-items-senter\">\r\n <span class=\"fianlvaltext\"> ₹\r\n {{priceValueDetails.totalNegotiatePrice?.toLocaleString('en-IN')}}</span>\r\n </div>\r\n </div>\r\n <div class=\"d-flex flex-stack pt-4\">\r\n <div class=\"fianlvaltext me-2\">Tax</div>\r\n <div class=\"d-flex align-items-senter\">\r\n <span class=\"fianlvaltext\">18% GST</span>\r\n </div>\r\n </div>\r\n <hr>\r\n\r\n <div class=\"d-flex flex-stack py-2\">\r\n <div class=\"fianlvaltext me-2\">Final Value</div>\r\n <div class=\"d-flex align-items-senter\">\r\n <span class=\"fianlvaltext\"> ₹\r\n {{priceValueDetails.finalValue?.toLocaleString('en-IN')}}</span>\r\n </div>\r\n </div>\r\n\r\n <hr>\r\n\r\n <div data-kt-subscription-table-toolbar=\"base\"\r\n class=\"d-flex justify-content-end py-3\"><a type=\"submit\"\r\n class=\"btn-outline btn needhelp me-4 mt-3\"\r\n (click)=\"revertOriginalPrice()\">Cancel</a><a\r\n (click)=\"pricingrevised()\" type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-primary px-4 mt-3 ng-star-inserted\"><span>Save\r\n </span></a></div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- pricing tab plan end -->\r\n\r\n\r\n\r\n <!-- submit plan start -->\r\n <div *ngIf=\"plan === 'storesubscription'\" class=\"row\">\r\n <div class=\"col-lg-8\">\r\n </div>\r\n <div class=\"col-lg-4\">\r\n <div data-kt-subscription-table-toolbar=\"base\"\r\n class=\"d-flex justify-content-end py-3\"><a type=\"submit\"\r\n class=\"btn-outline btn needhelp me-4 mt-3\">Cancel</a><a\r\n (click)=\"pricingrevised()\" type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-primary px-4 mt-3 ng-star-inserted\"\r\n *ngIf=\"(gs.userAccess | async)?.settings_paymentSubscriptions_isEdit\"><span>Apply\r\n Changes\r\n </span></a></div>\r\n </div>\r\n\r\n </div>\r\n <!-- submit plan end -->\r\n </div>\r\n </div>\r\n </div>\r\n <!-- product info end -->\r\n\r\n <!-- payment invoice start -->\r\n <div class=\"col-xl-12 my-4 billingcard\"\r\n *ngIf=\"(gs.userAccess | async)?.userType === 'tango' && (gs.userAccess | async)?.settings_paymentSubscriptions_isView\">\r\n <form [formGroup]=\"paymentinvoiceform\">\r\n <div class=\"d-flex justify-content-between ps-4 pt-6\">\r\n <!--begin::Title-->\r\n <h3 class=\"align-items-start flex-column\">\r\n <span class=\"heading mb-2\">Payment and Invoice</span>\r\n </h3>\r\n <!--end::Title-->\r\n\r\n <!--begin::Toolbar-->\r\n <div class=\"card-toolbar mb-2\" *ngIf=\"paymentinvoiceshow\">\r\n <button (click)=\"onpaymentedit()\" type=\"submit\"\r\n class=\"btn-outline btn align-items-end needhelp me-4\"><span\r\n class=\"me-2\"\r\n *ngIf=\"(gs.userAccess | async)?.settings_paymentSubscriptions_isEdit\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2579_25125)\">\r\n <path\r\n d=\"M14.167 2.49993C14.3859 2.28106 14.6457 2.10744 14.9317 1.98899C15.2176 1.87054 15.5241 1.80957 15.8337 1.80957C16.1432 1.80957 16.4497 1.87054 16.7357 1.98899C17.0216 2.10744 17.2815 2.28106 17.5003 2.49993C17.7192 2.7188 17.8928 2.97863 18.0113 3.2646C18.1297 3.55057 18.1907 3.85706 18.1907 4.16659C18.1907 4.47612 18.1297 4.78262 18.0113 5.06859C17.8928 5.35455 17.7192 5.61439 17.5003 5.83326L6.25033 17.0833L1.66699 18.3333L2.91699 13.7499L14.167 2.49993Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2579_25125\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>Edit Details</button>\r\n </div>\r\n <!--end::Toolbar-->\r\n </div>\r\n <!-- payment invoice form start -->\r\n <div class=\"d-flex flex-column row fv-row fv-plugins-icon-container py-4 px-4\">\r\n\r\n <div class=\"row\">\r\n <div class=\"col-lg-6\">\r\n <div class=\"form-group pt-1\">\r\n <label for=\"paymentcycle\" class=\"headingtext mb-2\">Enable Pro-Rate\r\n for Charges</label>\r\n <div class=\"d-flex mt-3\">\r\n <div class=\"form-check form-check-inline ps-0\"\r\n (click)=\"pricingType($event, 'before15')\">\r\n <input formControlName=\"radiooptions\"\r\n class=\"radio-custom cursor-pointer radioButton\"\r\n type=\"radio\" id=\"inlineRadio1\" value=\"before15\"\r\n name=\"radiooptions\">\r\n <label\r\n class=\"form-check-label radio-custom-label mx-3 headingtext cursor-pointer\"\r\n for=\"inlineRadio1\">Before 15th of Month</label>\r\n </div>\r\n <div class=\"form-check form-check-inline ps-0\"\r\n (click)=\"pricingType($event, 'after15')\">\r\n <input class=\"radio-custom cursor-pointer radioButton\"\r\n type=\"radio\" formControlName=\"radiooptions\"\r\n id=\"inlineRadio2\" value=\"after15\" name=\"radiooptions\"\r\n readonly>\r\n <label\r\n class=\"form-check-label headingtext radio-custom-label mx-3 cursor-pointer\"\r\n for=\"inlineRadio1\">After 15th of Month</label>\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n <div class=\"form-group pt-6\">\r\n <label for=\"paymentcycle\" class=\"headingtext mb-2\">Payment\r\n Cycle</label>\r\n\r\n <div class=\"position-relative\">\r\n <div class=\"form-select dropselect\" id=\"paymentcycle\"\r\n (click)=\"openDropdown($event)\"\r\n aria-label=\"Default select example\">{{selectedIssue !== '' ?\r\n selectedIssue === 'monthly'\r\n ? 'Monthly' : selectedIssue === 'quaterly' ?\r\n 'Quaterly' : 'Annual' : ''}}</div>\r\n <div *ngIf=\"dropDown && !paymentinvoiceshow\"\r\n class=\"card py-2 w-100 position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let item of dropdownItems\"\r\n class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"this.selectedIssue === item.value ? 'active' : ''\"\r\n class=\"producttext px-5 items cursor-pointer py-4\"\r\n (click)=\"selectItem(item.value)\">{{item.name}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group pt-6\">\r\n <label for=\"invoiceTo\" class=\"headingtext mb-2\">Generate\r\n Invoice To <span> <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2706_25324)\">\r\n <path\r\n d=\"M7.99967 10.6663V7.99967M7.99967 5.33301H8.00634M14.6663 7.99967C14.6663 11.6816 11.6816 14.6663 7.99967 14.6663C4.31778 14.6663 1.33301 11.6816 1.33301 7.99967C1.33301 4.31778 4.31778 1.33301 7.99967 1.33301C11.6816 1.33301 14.6663 4.31778 14.6663 7.99967Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2706_25324\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span></label>\r\n\r\n <div class=\"outer-container\">\r\n <div class=\" input-container form-control\">\r\n <ng-container\r\n *ngFor=\"let invoiceTo of generateinvoiceList; let i = index\">\r\n\r\n <span class=\"chip\">\r\n <span class=\"me-3\">{{invoiceTo}}</span>\r\n <span class=\"cursor-pointer\" *ngIf=\"paymentinvoiceform.enabled\"\r\n (click)=\"removeChip(i)\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"\r\n fill=\"none\">\r\n <path d=\"M9 3L3 9M3 3L9 9\" stroke=\"#667085\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </span>\r\n </ng-container>\r\n <input style=\"min-height: 44px;\" formControlName=\"invoiceTo\"\r\n (keydown)=\"onKeyDown($event)\" type=\"text\">\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group pt-6\">\r\n <label for=\"invoiceCC\" class=\"headingtext mb-2\">Generate Invoice\r\n CC</label>\r\n\r\n <div class=\"outer-container\">\r\n <div class=\" input-container form-control\">\r\n <ng-container\r\n *ngFor=\"let invoiceCC of generateinvoiceCCList; let i = index\">\r\n\r\n <span class=\"chip\">\r\n <span class=\"me-3\">{{invoiceCC}}</span>\r\n <span *ngIf=\"paymentinvoiceform.enabled\"\r\n (click)=\"removeChipcc(i)\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"\r\n fill=\"none\">\r\n <path d=\"M9 3L3 9M3 3L9 9\" stroke=\"#667085\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </span>\r\n </ng-container>\r\n <input style=\"min-height: 44px;\" formControlName=\"invoiceCC\"\r\n (keydown)=\"onKeyDowncc($event)\" type=\"text\">\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group pt-6\">\r\n <label for=\"generateinvoiceon\" class=\"headingtext mb-2\">Generate\r\n Invoice\r\n On\r\n </label>\r\n <div class=\"position-relative\">\r\n <div class=\"form-select dropselect\" id=\"generateinvoiceon\"\r\n (click)=\"invoiceDropdown($event)\"\r\n aria-label=\"Default select example\">{{invoiceonIssue !== ''\r\n ? invoiceonIssue === 'lastday' ? 'Last Day of the Month'\r\n :'25th of the Month':''}}\r\n </div>\r\n <div *ngIf=\"invoicedropDown && !paymentinvoiceshow\"\r\n class=\"card py-2 w-100 position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let invoiceitem of generateinvoiceon\"\r\n class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"this.invoiceonIssue === invoiceitem.value ? 'active' : ''\"\r\n class=\"producttext px-5 items cursor-pointer py-4\"\r\n (click)=\"invoiceItem(invoiceitem.value)\">\r\n {{invoiceitem.name}}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-6\">\r\n <div class=\"form-group pt-1\">\r\n <label for=\"paymenttype\" class=\"headingtext mb-2\">Payment\r\n Type</label>\r\n <div class=\"position-relative\">\r\n <div class=\"form-select dropselect\" id=\"paymenttype\"\r\n (click)=\"paymenttypeDropdown($event)\"\r\n aria-label=\"Default select example\">{{paymentIssue !== '' ?\r\n paymentIssue === 'online' ? 'Online Payment' : 'Bank\r\n Transfer' :''}}</div>\r\n <div *ngIf=\"paymenttypedropDown && !paymentinvoiceshow\"\r\n class=\"card py-2 w-100 position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let paymentitem of paymenttype\"\r\n class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"this.paymentIssue === paymentitem.value ? 'active' : ''\"\r\n class=\"producttext px-5 items cursor-pointer py-4\"\r\n (click)=\"paymentItem(paymentitem.value)\">\r\n {{paymentitem.name}}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group pt-7\">\r\n <label for=\"currency\" class=\"headingtext mb-2\">Currency</label>\r\n <div class=\"position-relative\">\r\n <div class=\"form-select dropselect\" id=\"currency\"\r\n (click)=\"currencyDropdown($event)\"\r\n aria-label=\"Default select example\">{{currencyIssue !== ''\r\n ? currencyIssue === 'inr' ? 'INR' :'Dollar' : ''}}</div>\r\n <div *ngIf=\"currencydropDown && !paymentinvoiceshow\"\r\n class=\"card py-2 w-100 position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let currencyitem of currencytype\"\r\n class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"this.currencyIssue === currencyitem.value ? 'active' : ''\"\r\n class=\"producttext px-5 items cursor-pointer py-4\"\r\n (click)=\"currencyItem(currencyitem.value)\">\r\n {{currencyitem.name}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group pt-6\">\r\n <label for=\"sendpayment\" class=\"headingtext mb-2\">Send Payment\r\n Agreement<span class=\"ms-2\"> <svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2706_25324)\">\r\n <path\r\n d=\"M7.99967 10.6663V7.99967M7.99967 5.33301H8.00634M14.6663 7.99967C14.6663 11.6816 11.6816 14.6663 7.99967 14.6663C4.31778 14.6663 1.33301 11.6816 1.33301 7.99967C1.33301 4.31778 4.31778 1.33301 7.99967 1.33301C11.6816 1.33301 14.6663 4.31778 14.6663 7.99967Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2706_25324\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span></label>\r\n\r\n\r\n <div class=\"outer-container\">\r\n <div class=\" input-container form-control\">\r\n <ng-container\r\n *ngFor=\"let paymentAgreementTo of paymentallowedList; let i = index\">\r\n <span class=\"chip\">\r\n <span class=\"me-3\">{{paymentAgreementTo}}</span>\r\n <span class=\"cursor-pointer\" *ngIf=\"paymentinvoiceform.enabled\"\r\n (click)=\"sendpaymentremoveChip(i)\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"\r\n fill=\"none\">\r\n <path d=\"M9 3L3 9M3 3L9 9\" stroke=\"#667085\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </span>\r\n </ng-container>\r\n <input style=\"min-height: 44px;\"\r\n formControlName=\"paymentAgreementTo\"\r\n (keydown)=\"sendpaymentonKeyDown($event)\" type=\"text\">\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group pt-6\">\r\n <label for=\"sendpayment\" class=\"headingtext mb-2\">POM Number\r\n </label>\r\n\r\n\r\n <div class=\"outer-container\">\r\n <div class=\" input-container form-control\">\r\n\r\n <input style=\"min-height: 44px;\"\r\n formControlName=\"paymentAgreementTo\" type=\"text\">\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group pt-6\">\r\n <label for=\"extendPaymentPeriodDays\"\r\n class=\" headingtext mb-2\">Extend Payment\r\n Period Days </label>\r\n <div class=\"w-lg-100 position-relative\">\r\n <div\r\n class=\"position-absolute translate-middle-y top-50 me-5 ps-3 ticketDays\">\r\n <span class=\"svg-icon toggle-off svg-icon-1\"\r\n (click)=\"paymentinvoiceform.enabled && paymentinvoiceform.get('extendPaymentPeriodDays')?.value > 0 ? paymentinvoiceform.get('extendPaymentPeriodDays')?.setValue(paymentinvoiceform.get('extendPaymentPeriodDays')?.value - 1) : null\">\r\n <!-- (click)=\"paymentinvoiceform.enabled ? paymentinvoiceform.get('extendPaymentPeriodDays')?.setValue(paymentinvoiceform.get('extendPaymentPeriodDays')?.value - 1) : null\" -->\r\n\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\"\r\n height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M4.16699 10H15.8337\" stroke=\"#667085\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <input type=\"text\" class=\"form-control\"\r\n id=\"extendPaymentPeriodDays\" readonly\r\n formControlName=\"extendPaymentPeriodDays\"\r\n [(ngModel)]=\"extendPaymentPeriodDays\"\r\n style=\"text-align: center;\" autocomplete=\"off\" />\r\n <div\r\n class=\"position-absolute translate-middle-y top-50 end-0 me-3\">\r\n <span class=\"svg-icon toggle-on svg-icon-1 ticketDays\"\r\n (click)=\"paymentinvoiceform.enabled ? paymentinvoiceform.get('extendPaymentPeriodDays')?.setValue(paymentinvoiceform.get('extendPaymentPeriodDays')?.value + 1) : null\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\"\r\n height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\">\r\n <path\r\n d=\"M8.49967 3.33301V12.6663M3.83301 7.99967H13.1663\"\r\n stroke=\"#667085\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n <div class=\"d-flex justify-content-end mt-6\" *ngIf=\"!paymentinvoiceshow\">\r\n <div data-kt-subscription-table-toolbar=\"base\"\r\n class=\"d-flex justify-content-end\"><a type=\"submit\"\r\n class=\"btn-outline btn needhelp me-4\"\r\n (click)=\"onpaymentCancel()\">Cancel</a><button type=\"button\"\r\n tabindex=\"0\" class=\"btn btn-primary px-4 ng-star-inserted\"\r\n (click)=\"onpaymentSubmit()\"\r\n *ngIf=\"(gs.userAccess | async)?.settings_paymentSubscriptions_isEdit\"><span>Apply\r\n Changes\r\n </span></button></div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <!-- payment invoice form end -->\r\n\r\n </form>\r\n </div>\r\n <!-- payment invoice end -->\r\n\r\n </ng-template>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <!-- subscription config End -->\r\n\r\n <!--Invoices start -->\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_paymentSubscriptions_isView\">\r\n <div class=\"card mt-6\" ngbAccordionItem>\r\n <div class=\"d-flex\" ngbAccordionHeader>\r\n <button class=\"mainheading\" ngbAccordionButton>Invoices <div class=\"divider\"></div>\r\n </button>\r\n </div>\r\n <div ngbAccordionCollapse>\r\n <div ngbAccordionBody>\r\n <ng-template>\r\n <div class=\"card-header paymenthistory\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"card-label mb-2\">Payment History</span>\r\n </h3>\r\n <div class=\"card-toolbar\">\r\n <div class=\"d-flex\">\r\n <div class=\"d-flex align-items-center position-relative my-1\">\r\n <span class=\"svg-icon invoicesearch svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\">\r\n <rect opacity=\"0.5\" x=\"17.0365\" y=\"15.1223\" width=\"8.15546\"\r\n height=\"2\" rx=\"1\" transform=\"rotate(45 17.0365 15.1223)\"\r\n fill=\"currentColor\">\r\n </rect>\r\n <path\r\n d=\"M11 19C6.55556 19 3 15.4444 3 11C3 6.55556 6.55556 3 11 3C15.4444 3 19 6.55556 19 11C19 15.4444 15.4444 19 11 19ZM11 5C7.53333 5 5 7.53333 5 11C5 14.4667 7.53333 17 11 17C14.4667 17 17 14.4667 17 11C17 7.53333 14.4667 5 11 5Z\"\r\n fill=\"currentColor\"></path>\r\n </svg>\r\n </span>\r\n <input [(ngModel)]=\"searchInput\" type=\"text\"\r\n class=\"form-control ps-14 me-4 invoicesearch\"\r\n placeholder=\"Search...\" autocomplete=\"off\" (change)=\"searchField()\"\r\n [disabled]=\"searchDisabled\" />\r\n\r\n <div class=\"me-3 monthwidth\">\r\n <div class=\"dropdown invheader\">\r\n <select class=\"form-select invheader\"\r\n aria-label=\"Default select example\" [(ngModel)]=\"isFilter\"\r\n (change)=\"invoiceFilter()\">\r\n <option value=\"current\">Current Month</option>\r\n <option value=\"prev\">Previous Month</option>\r\n <option value=\"last\">Last 3 Months</option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <button (click)=\"creditnote()\" type=\"button\"\r\n class=\"btn-outline btn align-items-end invheader text-nowrap me-4\"\r\n *ngIf=\"(gs.userAccess | async)?.userType === 'tango' && (gs.userAccess | async)?.settings_paymentSubscriptions_isEdit\"\r\n [disabled]=\"!invoiceList.length\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\"\r\n viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path d=\"M10.4993 4.16675V15.8334M4.66602 10.0001H16.3327\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg><span>Credit Note</span> </button>\r\n <button type=\"button\" (click)=\"onExport()\"\r\n class=\"btn-outline btn align-items-end text-nowrap invheader me-4\"\r\n *ngIf=\"(gs.userAccess | async)?.settings_paymentSubscriptions_isDownload\"\r\n [disabled]=\"!invoiceList.length\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg><span class=\"ms-2\"></span> Export</button>\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"invoiceLoading\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"invoiceNoData\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div\r\n class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div *ngIf=\"!invoiceLoading && !invoiceNoData\" class=\"table-responsive\">\r\n <table class=\"table bottom-border\">\r\n <thead>\r\n <tr>\r\n <th>\r\n <div (click)=\"sortData()\">\r\n Invoice #\r\n <span class=\"cursor-pointer\"\r\n *ngIf=\"sortColumName === 'invoice' && sortBy !== 1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span class=\"cursor-pointer\"\r\n *ngIf=\"sortColumName === 'invoice' && sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n </th>\r\n <th>Billing date</th>\r\n <th>Stores</th>\r\n <th *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\">Products</th>\r\n <th>Amount</th>\r\n <th *ngIf=\"(gs.userAccess | async)?.userType !== 'tango'\">Payment Method\r\n </th>\r\n <th>Actions</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let invoice of invoiceList\">\r\n <td>\r\n <div class=\"table-title-primary invoice mb-2\">{{invoice?.invoice}}\r\n </div>\r\n <span class=\"badge badge-light-success\"\r\n *ngIf=\"['free','Payment Received'].includes(invoice?.status)\">{{invoice?.status\r\n | titlecase}}</span>\r\n <span class=\"badge badge-light-warning\"\r\n *ngIf=\"invoice?.status === 'trial'\">{{invoice?.status |\r\n titlecase}}</span>\r\n </td>\r\n <td>\r\n <div class=\"table-title\">{{invoice?.billingDate}} </div>\r\n\r\n </td>\r\n <td>\r\n <div class=\"table-title\">{{invoice?.stores}}</div>\r\n\r\n </td>\r\n\r\n <td *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\"><span\r\n *ngFor=\"let product of invoice?.productList; let i = index\"><span\r\n [class]=\"getColorClass(product)\"\r\n *ngIf=\"i<2\">{{product}}</span></span><span\r\n class=\"productextend\" *ngIf=\"invoice?.products.length>2\"\r\n [ngbTooltip]=\"showProduct(invoice.productList)\">+{{invoice?.products.length\r\n - 2 }}</span>\r\n </td>\r\n <td>\r\n <div class=\"table-title\"><span *ngIf=\"clientinfo?.currentPlanInfo?.currencyType === 'inr'\"></span><span *ngIf=\"clientinfo?.currentPlanInfo?.currencyType === 'dollar'\">$</span> {{invoice.amount ?\r\n invoice?.amount?.toLocaleString('en-IN') : invoice.status |\r\n titlecase }}</div>\r\n </td>\r\n <td *ngIf=\"(gs.userAccess | async)?.userType !== 'tango'\">\r\n <div class=\"table-title\">{{invoice?.paymentMethod || '--' }}</div>\r\n </td>\r\n <td>\r\n <span class=\"pointer\" (click)=\"downloadInvoice(invoice)\"><svg\r\n class=\"mt-3\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\"\r\n height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M5.83333 8.33333L10 12.5M10 12.5L14.1667 8.33333M10 12.5V2.5\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </td>\r\n\r\n </tr>\r\n </tbody>\r\n </table>\r\n <lib-pagination class=\"text-start\" [itemsPerPage]=\"itemsPerPage\"\r\n [currentPage]=\"currentPage\" [totalItems]=\"totalItems\"\r\n [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\"\r\n (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <!--Invoices end -->\r\n </div>\r\n </div>","import { Directive, EventEmitter, HostListener, Output } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[libDnd]',\r\n standalone: false\r\n})\r\nexport class DndDirective {\r\n fileover: boolean;\r\n @Output() fileDropped: EventEmitter<any> = new EventEmitter()\r\n\r\n @HostListener('dragover', ['$event']) onDragOver(evt: any) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n }\r\n @HostListener('drag leave', ['$event']) public onDragLeave(evt: any) {\r\n\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n }\r\n @HostListener('drop', ['$event']) public ondrop(evt: any) {\r\n\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n this.fileover = false;\r\n const files = evt.dataTransfer.files;\r\n if (files.length > 0) {\r\n this.fileDropped.emit(files)\r\n }\r\n }\r\n}\r\n","import { ChangeDetectorRef, Component, ElementRef, OnDestroy, ViewChild } from '@angular/core';\r\nimport { FormGroup, FormBuilder } from '@angular/forms';\r\nimport { ClientApiService } from '../../../services/client-api.service';\r\nimport * as XLSX from 'xlsx';\r\nimport { Subject, map, takeUntil } from 'rxjs';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\n\r\n\r\n@Component({\r\n selector: 'lib-audit-configuration',\r\n templateUrl: './audit-configuration.component.html',\r\n styleUrl: './audit-configuration.component.scss'\r\n})\r\nexport class AuditConfigurationComponent implements OnDestroy {\r\n\r\n auditConfigForm: FormGroup\r\n isMultiple: boolean = false\r\n @ViewChild('bulkUploadInput') bulkUploadInput: ElementRef<HTMLElement>;\r\n bulkAddData: any;\r\n fileName: any;\r\n fileUploadTemplate: string\r\n storeList: any;\r\n selectedStore: any;\r\n private readonly destroy$ = new Subject();\r\n clientId: string;\r\n\r\n\r\n\r\n\r\n constructor(private fb: FormBuilder, private apiService: ClientApiService, private cd: ChangeDetectorRef, private toast: ToastService, public gs:GlobalStateService) {\r\n this.initForm()\r\n this.apiService.clientFormData.pipe(takeUntil(this.destroy$)).subscribe((res) => {\r\n if (res) {\r\n if (res.type === 'input' && res.form === 'audit-configuration') {\r\n this.patchForm(res.value)\r\n }\r\n }\r\n })\r\n\r\n this.apiService.clientData.pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if (e) {\r\n this.clientId = e.clientId\r\n this.getStoresList(e.clientId)\r\n }\r\n })\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n\r\n initForm() {\r\n this.auditConfigForm = this.fb.group({\r\n storeId: [''],\r\n count: [''],\r\n iteration: [''],\r\n ratio: [''],\r\n });\r\n this.auditConfigForm.disable()\r\n }\r\n\r\n\r\n getStoresList(clientId: string) {\r\n this.apiService.getStoreList(clientId).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (res) => {\r\n this.storeList = res.data.result\r\n this.selectedStore = this.storeList[0]\r\n this.getAuditData(this.storeList[0]?.storeId)\r\n },\r\n error: (err) => {\r\n }\r\n })\r\n }\r\n\r\n getAuditData(storeId: string) {\r\n this.apiService.getAuditConfig(storeId).pipe(takeUntil(this.destroy$)).pipe(map((val) => {\r\n if (val?.data?.auditConfigs?.ratio) {\r\n val.data.auditConfigs.ratio = this.normalizeNumber(val.data.auditConfigs.ratio)\r\n }\r\n return val\r\n })).subscribe({\r\n next: (res) => {\r\n this.patchForm({ ...res.data.auditConfigs, storeId: res.data.storeId })\r\n this.fileUploadTemplate = res.data.templateUrl\r\n this.cd.detectChanges()\r\n },\r\n error: (err) => {\r\n }\r\n })\r\n }\r\n\r\n normalizeNumber(num: number) {\r\n return Math.min(100, Math.max(0, Math.round(num * 100)));\r\n }\r\n\r\n\r\n patchForm(data: any) {\r\n this.auditConfigForm.patchValue(\r\n {\r\n ...data,\r\n },\r\n { emitEvent: false, onlySelf: true }\r\n )\r\n }\r\n\r\n triggerBulkUploadInput() {\r\n this.bulkUploadInput.nativeElement.click()\r\n }\r\n\r\n onBulkInputChange(event: any) {\r\n let data: any = [];\r\n const target: DataTransfer = <DataTransfer>(event.target);\r\n const reader: FileReader = new FileReader();\r\n reader.readAsBinaryString(target.files[0]);\r\n reader.onload = (e: any) => {\r\n const bstr: string = e.target.result;\r\n const wb: XLSX.WorkBook = XLSX.read(bstr, { type: 'binary' });\r\n const wsname: string = wb.SheetNames[0];\r\n const ws: XLSX.WorkSheet = wb.Sheets[wsname];\r\n if (wb.SheetNames[0] != 'data') {\r\n this.toast.getErrorToast('Invalid file')\r\n } else {\r\n data = XLSX.utils.sheet_to_json(ws);\r\n data = data.slice(1)\r\n this.fileName = event.target.files[0].name\r\n this.bulkAddData = data\r\n this.cd.detectChanges()\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n onStoreChange(event: any) {\r\n this.selectedStore = event\r\n this.getAuditData(event.storeId)\r\n }\r\n\r\n\r\n\r\n onCancel() {\r\n this.apiService.clientFormData.next({ value: null, type: 'cancel', form: 'audit-configuration' })\r\n this.auditConfigForm.disable()\r\n }\r\n\r\n onSubmit() {\r\n if (!this.isMultiple) {\r\n this.auditConfigForm.value.storeId = this.selectedStore.storeId\r\n this.apiService.updateauditConfiguration([this.auditConfigForm.value], this.clientId).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (e) => {\r\n this.toast.getSuccessToast(e.data?.result)\r\n this.apiService.clientFormData.next({ value: null, type: 'submitted', form: 'null' })\r\n },\r\n error: (e) => {\r\n this.toast.getErrorToast(e.error?.error)\r\n this.getAuditData(this.selectedStore.storeId)\r\n }\r\n })\r\n } else {\r\n this.apiService.updateauditConfiguration(this.bulkAddData, this.clientId).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (e) => {\r\n this.toast.getSuccessToast(e.data?.result)\r\n this.apiService.clientFormData.next({ value: null, type: 'submitted', form: 'null' })\r\n },\r\n error: (e) => {\r\n this.toast.getErrorToast(e.error?.error)\r\n this.fileName = null\r\n this.bulkAddData = null\r\n this.cd.detectChanges()\r\n }\r\n })\r\n }\r\n\r\n }\r\n}\r\n","<form [formGroup]=\"auditConfigForm\">\r\n <div class=\"row\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_configuration_isEdit \" >\r\n <div *ngIf=\"auditConfigForm.disabled\" class=\"col-12 mb-5\">\r\n <div class=\" d-flex justify-content-end\">\r\n <button (click)=\"auditConfigForm.disabled ? auditConfigForm.enable() : auditConfigForm.disable()\"\r\n type=\"button\" class=\"btn btn-outline align-items-end\"><span class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2579_25125)\">\r\n <path\r\n d=\"M14.167 2.49993C14.3859 2.28106 14.6457 2.10744 14.9317 1.98899C15.2176 1.87054 15.5241 1.80957 15.8337 1.80957C16.1432 1.80957 16.4497 1.87054 16.7357 1.98899C17.0216 2.10744 17.2815 2.28106 17.5003 2.49993C17.7192 2.7188 17.8928 2.97863 18.0113 3.2646C18.1297 3.55057 18.1907 3.85706 18.1907 4.16659C18.1907 4.47612 18.1297 4.78262 18.0113 5.06859C17.8928 5.35455 17.7192 5.61439 17.5003 5.83326L6.25033 17.0833L1.66699 18.3333L2.91699 13.7499L14.167 2.49993Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2579_25125\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>Edit Details</button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n </div>\r\n <div *ngIf=\"!isMultiple\" class=\"row\">\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"storeId\" class=\"form-label\">Store ID</label>\r\n <!-- <select (change)=\"onStoreChange($event)\" formControlName=\"storeId\" id=\"storeId\" class=\"form-select \"\r\n aria-label=\"Default select example\">\r\n <option *ngFor=\"let store of storeList\" [value]=\"store.storeId\">{{store.storeName}}</option>\r\n </select> -->\r\n <lib-select [items]=\"storeList\" [multi]=\"false\" [label]=\"'Stores'\" [searchField]=\"'storeName'\"\r\n [idField]=\"'storeId'\" [disabled]=\"auditConfigForm.get('storeId')?.disabled\"\r\n [selectedValues]=\"[selectedStore]\" (selected)=\"onStoreChange($event)\"></lib-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"iteration\" class=\"form-label\">No of times for re-audit <span\r\n class=\"alert-required\"></span></label>\r\n <input formControlName=\"iteration\" type=\"number\" class=\"form-control disabled-input\" id=\"iteration\"\r\n autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"ratio\" class=\"form-label\">Mapping Percentage <span class=\"alert-required\"></span></label>\r\n <input formControlName=\"ratio\" type=\"number\" class=\"form-control disabled-input\" id=\"ratio\"\r\n autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"count\" class=\"form-label\">Audit Count / Store <span class=\"alert-required\"></span></label>\r\n <input formControlName=\"count\" type=\"number\" class=\"form-control disabled-input\" id=\"count\"\r\n autocomplete=\"off\">\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n <div *ngIf=\"isMultiple\" class=\"row g-0\">\r\n <div class=\"col-5 mb-5 d-flex align-items-center\">\r\n <ul>\r\n <li class=\"mb-2\">\r\n 1. Use the template to upload multiple stores at once.\r\n </li>\r\n <li class=\"mb-2 d-flex\">\r\n 2. Download the template here - <a [href]=\"fileUploadTemplate\" class=\"d-flex\" href=\"\">\r\n <svg class=\"me-2\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M5.83333 8.33333L10 12.5M10 12.5L14.1667 8.33333M10 12.5V2.5\"\r\n stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n Download Template\r\n </a>\r\n </li>\r\n <li class=\"mb-2\">\r\n 3. Add your data to the Template File\r\n </li>\r\n <li class=\"mb-2\">\r\n 4. Upload it on the right for processing\r\n </li>\r\n </ul>\r\n\r\n </div>\r\n <div class=\"col-2 d-flex justify-content-center align-items-center mb-5\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"1\" height=\"76\" viewBox=\"0 0 1 76\" fill=\"none\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M1 2.74181e-06L1 76H0L0 2.74181e-06H1Z\"\r\n fill=\"#EAECF0\" />\r\n </svg>\r\n </div>\r\n <div class=\"col-5 mb-5\">\r\n\r\n <div class=\"drop-zone\" libDnd (fileDropped)=\"triggerBulkUploadInput()\">\r\n <svg class=\"mb-2\" width=\"46\" height=\"46\" viewBox=\"0 0 46 46\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"3\" y=\"3\" width=\"40\" height=\"40\" rx=\"20\" fill=\"#F2F4F7\" />\r\n <rect x=\"3\" y=\"3\" width=\"40\" height=\"40\" rx=\"20\" stroke=\"#F9FAFB\" stroke-width=\"6\" />\r\n <g clip-path=\"url(#clip0_4213_43399)\">\r\n <path\r\n d=\"M26.3335 26.3332L23.0002 22.9999M23.0002 22.9999L19.6669 26.3332M23.0002 22.9999V30.4999M29.9919 28.3249C30.8047 27.8818 31.4467 27.1806 31.8168 26.3321C32.1868 25.4835 32.2637 24.5359 32.0354 23.6388C31.807 22.7417 31.2865 21.9462 30.5558 21.3778C29.8251 20.8094 28.9259 20.5005 28.0002 20.4999H26.9502C26.698 19.5243 26.2278 18.6185 25.5752 17.8507C24.9225 17.0829 24.1042 16.4731 23.182 16.0671C22.2597 15.661 21.2573 15.4694 20.2503 15.5065C19.2433 15.5436 18.2578 15.8085 17.3679 16.2813C16.4779 16.7541 15.7068 17.4225 15.1124 18.2362C14.518 19.05 14.1158 19.9879 13.936 20.9794C13.7563 21.9709 13.8036 22.9903 14.0746 23.961C14.3455 24.9316 14.8329 25.8281 15.5002 26.5832\"\r\n stroke=\"#475467\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_4213_43399\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" transform=\"translate(13 13)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <div class=\"mb-2\">\r\n <a (click)=\"triggerBulkUploadInput()\">Click to upload</a> \r\n <span class=\"t1\">or drag and drop</span>\r\n </div>\r\n <div class=\"mb-2\">the data added template file for processing.</div>\r\n <ng-container *ngIf=\"fileName\">\r\n <div class=\"mb-2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"320\" height=\"1\" viewBox=\"0 0 320 1\" fill=\"none\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M320 1H0V0H320V1Z\" fill=\"#EAECF0\" />\r\n </svg>\r\n </div>\r\n <div class=\"mb-2 d-flex align-items-center\">\r\n <svg class=\"me-2\" width=\"37\" height=\"36\" viewBox=\"0 0 37 36\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"2.5\" y=\"2\" width=\"32\" height=\"32\" rx=\"16\" fill=\"#DAF1FF\" />\r\n <rect x=\"2.5\" y=\"2\" width=\"32\" height=\"32\" rx=\"16\" stroke=\"#EAF8FF\" stroke-width=\"4\" />\r\n <path\r\n d=\"M19.167 11.333H14.5003C14.1467 11.333 13.8076 11.4735 13.5575 11.7235C13.3075 11.9736 13.167 12.3127 13.167 12.6663V23.333C13.167 23.6866 13.3075 24.0258 13.5575 24.2758C13.8076 24.5259 14.1467 24.6663 14.5003 24.6663H22.5003C22.8539 24.6663 23.1931 24.5259 23.4431 24.2758C23.6932 24.0258 23.8337 23.6866 23.8337 23.333V15.9997M19.167 11.333L23.8337 15.9997M19.167 11.333V15.9997H23.8337\"\r\n stroke=\"#00A3FF\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"t3\">{{fileName}}</span>\r\n </div>\r\n </ng-container>\r\n\r\n </div>\r\n <input [disabled]=\"auditConfigForm.disabled\" (change)=\"onBulkInputChange($event)\" class=\"d-none\"\r\n #bulkUploadInput type=\"file\"\r\n accept=\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel\">\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"auditConfigForm.enabled\">\r\n <div class=\"d-flex justify-content-end\">\r\n <a type=\"button\" class=\"btn btn-outline me-4\" (click)=\"onCancel()\">Cancel</a>\r\n <a type=\"submit\" class=\"btn btn-primary px-4 \" (click)=\"onSubmit()\"><span>Save Changes</span></a>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-start g-0 mb-2 mt-2\">\r\n <div class=\"col-5\">\r\n <hr>\r\n </div>\r\n <div class=\"col-2 text-center\">\r\n Or\r\n </div>\r\n <div class=\"col-5\">\r\n <hr>\r\n </div>\r\n </div>\r\n</form>\r\n\r\n<div class=\"switch-form-card\">\r\n <div class=\"d-flex align-items-center\">\r\n <svg class=\"me-2\" width=\"36\" height=\"36\" viewBox=\"0 0 36 36\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"2\" y=\"2\" width=\"32\" height=\"32\" rx=\"16\" fill=\"#DAF1FF\" />\r\n <rect x=\"2\" y=\"2\" width=\"32\" height=\"32\" rx=\"16\" stroke=\"#EAF8FF\" stroke-width=\"4\" />\r\n <path\r\n d=\"M24 20V22.6667C24 23.0203 23.8595 23.3594 23.6095 23.6095C23.3594 23.8595 23.0203 24 22.6667 24H13.3333C12.9797 24 12.6406 23.8595 12.3905 23.6095C12.1405 23.3594 12 23.0203 12 22.6667V20M21.3333 15.3333L18 12M18 12L14.6667 15.3333M18 12V20\"\r\n stroke=\"#00A3FF\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <div class=\"txt-one\">\r\n <ng-container *ngIf=\"!isMultiple\">Add single store for configuration</ng-container>\r\n <ng-container *ngIf=\"isMultiple\">Upload multiple stores for configuration</ng-container>\r\n </div>\r\n </div>\r\n <div>\r\n <button (click)=\"isMultiple = !isMultiple\" class=\"btn btn-outline\">Click Here</button>\r\n </div>\r\n\r\n\r\n</div>","import { Component, OnDestroy} from '@angular/core';\r\nimport { FormGroup, FormBuilder } from '@angular/forms';\r\nimport { ClientApiService } from '../../../services/client-api.service';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\n\r\n@Component({\r\n selector: 'lib-ticket-configuration',\r\n templateUrl: './ticket-configuration.component.html',\r\n styleUrl: './ticket-configuration.component.scss'\r\n})\r\nexport class TicketConfigurationComponent implements OnDestroy {\r\n\r\n\r\n ticketConfigurationForm: FormGroup\r\n private readonly destroy$ = new Subject();\r\n\r\n downTimeType = [\r\n { value:0 , label: \"Single camera\" },\r\n { value:1 , label: \"All cameras\" },\r\n ]\r\n\r\n infraDownTime = [\r\n { value:1 , label: \"1 Hr\" },\r\n { value:2 , label: \"2 Hrs\" },\r\n { value:3 , label: \"3 Hrs\" },\r\n { value:4 , label: \"4 Hrs\" },\r\n { value:5 , label: \"5 Hrs\" },\r\n { value:6 , label: \"6 Hrs\" },\r\n { value:7 , label: \"7 Hrs\" },\r\n { value:8 , label: \"8 Hrs\" },\r\n { value:9 , label: \"9 Hrs\" },\r\n { value:10 , label: \"10 Hrs\" },\r\n { value:11 , label: \"11 Hrs\" },\r\n { value:12 , label: \"12 Hrs\" },\r\n\r\n ]\r\n\r\n rcaTicketAssign = [\r\n { value:1 , label: \"1 Day\" },\r\n { value:2 , label: \"2 Days\" },\r\n { value:3 , label: \"3 Days\" },\r\n { value:4 , label: \"4 Days\" },\r\n { value:5 , label: \"5 Days\" },\r\n { value:6 , label: \"6 Days\" },\r\n { value:7 , label: \"7 Days\" },\r\n { value:8 , label: \"8 Days\" },\r\n { value:9 , label: \"9 Days\" },\r\n { value:10 , label: \"10 Days\" },\r\n { value:11 , label: \"11 Days\" },\r\n { value:12 , label: \"12 Days\" },\r\n\r\n ]\r\n\r\n\r\n\r\n constructor(private fb: FormBuilder, private apiService: ClientApiService, public gs:GlobalStateService) {\r\n this.initForm()\r\n this.apiService.clientFormData.pipe(takeUntil(this.destroy$)).subscribe((res) => {\r\n if (res) {\r\n if (res.type === 'input' && res.form === 'ticket-configuration') {\r\n this.patchForm(res.value)\r\n }\r\n }\r\n })\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n\r\n initForm() {\r\n this.ticketConfigurationForm = this.fb.group({\r\n installationReAssign: [0],\r\n sendToAdmin: [false],\r\n sendToUser: [false],\r\n downTimeType: [0],\r\n infraDownTime: [1],\r\n MinFilesCount: [0],\r\n rcaTicketAssign: [1],\r\n refreshAlert: [1],\r\n statusCheckAlert: [1],\r\n accuracyPercentage: [0],\r\n reTrain: [1],\r\n });\r\n this.ticketConfigurationForm.disable()\r\n }\r\n\r\n patchForm(data: any) { \r\n this.ticketConfigurationForm.patchValue(\r\n {\r\n ...data\r\n },\r\n {emitEvent: false, onlySelf: true}\r\n )\r\n\r\n }\r\n\r\n\r\n onCancel() {\r\n this.apiService.clientFormData.next({ value: null, type: 'cancel', form: 'ticket-configuration' })\r\n this.ticketConfigurationForm.disable()\r\n\r\n }\r\n\r\n onSubmit() {\r\n this.apiService.clientFormData.next({ value: this.ticketConfigurationForm.value, type: 'submit', form: 'ticket-configuration' })\r\n }\r\n\r\n\r\n\r\n}\r\n","<form [formGroup]=\"ticketConfigurationForm\">\r\n <div class=\"row\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_configuration_isEdit \" >\r\n <div *ngIf=\"ticketConfigurationForm.disabled\" class=\"col-12 mb-5\">\r\n <div class=\" d-flex justify-content-end\">\r\n <button\r\n (click)=\"ticketConfigurationForm.disabled ? ticketConfigurationForm.enable() : ticketConfigurationForm.disable()\"\r\n type=\"button\" class=\"btn btn-outline align-items-end\"><span class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2579_25125)\">\r\n <path\r\n d=\"M14.167 2.49993C14.3859 2.28106 14.6457 2.10744 14.9317 1.98899C15.2176 1.87054 15.5241 1.80957 15.8337 1.80957C16.1432 1.80957 16.4497 1.87054 16.7357 1.98899C17.0216 2.10744 17.2815 2.28106 17.5003 2.49993C17.7192 2.7188 17.8928 2.97863 18.0113 3.2646C18.1297 3.55057 18.1907 3.85706 18.1907 4.16659C18.1907 4.47612 18.1297 4.78262 18.0113 5.06859C17.8928 5.35455 17.7192 5.61439 17.5003 5.83326L6.25033 17.0833L1.66699 18.3333L2.91699 13.7499L14.167 2.49993Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2579_25125\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>Edit Details</button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <div class=\"col-12\">\r\n <div class=\"row\">\r\n <div class=\"col-6\">\r\n <div class=\"sub-header mb-7\">Installation</div>\r\n <label for=\"installationReAssign\" class=\"form-label\">Auto Re-Assign Installation tickets in days\r\n <span class=\"alert-required\"></span></label>\r\n <div style=\"position: relative;\">\r\n <svg role=\"button\"\r\n (click)=\"ticketConfigurationForm.get('installationReAssign')?.value > 0 && ticketConfigurationForm.enabled ? ticketConfigurationForm.get('installationReAssign')?.setValue(ticketConfigurationForm.get('installationReAssign')?.value - 1) : null\"\r\n class=\"dec\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path d=\"M4.16602 10H15.8327\" stroke=\"#667085\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <input readonly type=\"number\" formControlName=\"installationReAssign\"\r\n class=\"form-control inc-dec-input\" id=\"installationReAssign\" autocomplete=\"off\">\r\n <svg role=\"button\"\r\n (click)=\"ticketConfigurationForm.enabled ? ticketConfigurationForm.get('installationReAssign')?.setValue(ticketConfigurationForm.get('installationReAssign')?.value + 1) : null\"\r\n class=\"inc\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M8.00065 3.33337V12.6667M3.33398 8.00004H12.6673\" stroke=\"#667085\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 mb-7 mt-7\">\r\n <div class=\" w-100 footer-seperator\"></div>\r\n </div>\r\n <div class=\"col-12 mb-7\">\r\n <div class=\"sub-header \">Infra</div>\r\n </div>\r\n <div class=\"col-12 mb-5\">\r\n <label for=\"brandName\" class=\"form-label\">To whom should this alert be sent? <span\r\n class=\"alert-required\"></span></label>\r\n <div class=\"d-flex\">\r\n <div class=\"form-check me-12\">\r\n <input formControlName=\"sendToAdmin\" class=\"form-check-input me-2\" type=\"checkbox\" value=\"\"\r\n id=\"sendToAdmin\">\r\n <label class=\"form-check-label\" for=\"sendToAdmin\">\r\n Admin\r\n </label>\r\n </div>\r\n <div class=\"form-check\">\r\n <input formControlName=\"sendToUser\" class=\"form-check-input me-2\" type=\"checkbox\" value=\"\"\r\n id=\"flexCheckChecked\">\r\n <label class=\"form-check-label\" for=\"flexCheckChecked\">\r\n User\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <lib-reactive-select formControlName=\"downTimeType\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"downTimeType\" [label]=\"'Downtime Type'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <lib-reactive-select formControlName=\"infraDownTime\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"infraDownTime\" [label]=\"'Downtime'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"MinFilesCount\" class=\"form-label\">Files <span class=\"alert-required\"></span></label>\r\n <input type=\"number\" formControlName=\"MinFilesCount\" class=\"form-control\" id=\"MinFilesCount\"\r\n autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-12 mb-5\">\r\n <div class=\"custom-input-container\" >\r\n <div class=\"d-flex justify-content-between\">\r\n <div class=\"d-flex align-items-center\">\r\n <svg class=\"me-5\" width=\"46\" height=\"47\" viewBox=\"0 0 46 47\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"3\" y=\"3.91626\" width=\"40\" height=\"40\" rx=\"20\" fill=\"#F2F4F7\" />\r\n <rect x=\"3\" y=\"3.91626\" width=\"40\" height=\"40\" rx=\"20\" stroke=\"#F9FAFB\" stroke-width=\"6\" />\r\n <g clip-path=\"url(#clip0_2876_59590)\">\r\n <path\r\n d=\"M23.8333 15.5829L15.5 25.5829H23L22.1667 32.2496L30.5 22.2496H23L23.8333 15.5829Z\"\r\n stroke=\"#475467\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2876_59590\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" transform=\"translate(13 13.9163)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <div>\r\n <div class=\"main-heading\">RCA Ticket</div>\r\n <div class=\"sub-heading\">Set an alert, if there is no response from the store </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex align-items-center\">\r\n <lib-reactive-select formControlName=\"rcaTicketAssign\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"infraDownTime\" ></lib-reactive-select>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 mb-5\">\r\n <div class=\"custom-input-container\" >\r\n <div class=\"d-flex justify-content-between\">\r\n <div class=\"d-flex align-items-center\">\r\n <svg class=\"me-5\" width=\"46\" height=\"47\" viewBox=\"0 0 46 47\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"3\" y=\"3.91626\" width=\"40\" height=\"40\" rx=\"20\" fill=\"#F2F4F7\" />\r\n <rect x=\"3\" y=\"3.91626\" width=\"40\" height=\"40\" rx=\"20\" stroke=\"#F9FAFB\" stroke-width=\"6\" />\r\n <g clip-path=\"url(#clip0_2876_59590)\">\r\n <path\r\n d=\"M23.8333 15.5829L15.5 25.5829H23L22.1667 32.2496L30.5 22.2496H23L23.8333 15.5829Z\"\r\n stroke=\"#475467\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2876_59590\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" transform=\"translate(13 13.9163)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <div>\r\n <div class=\"main-heading\">Refresh Ticket Alert</div>\r\n <div class=\"sub-heading\">Trigger an ticket, if the issue is not resolved or in progress\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex align-items-center\">\r\n <lib-reactive-select formControlName=\"rcaTicketAssign\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"rcaTicketAssign\" ></lib-reactive-select>\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 mb-5\">\r\n <div class=\"custom-input-container\">\r\n <div class=\"d-flex justify-content-between\">\r\n <div class=\"d-flex align-items-center\">\r\n <svg class=\"me-5\" width=\"46\" height=\"47\" viewBox=\"0 0 46 47\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"3\" y=\"3.91626\" width=\"40\" height=\"40\" rx=\"20\" fill=\"#F2F4F7\" />\r\n <rect x=\"3\" y=\"3.91626\" width=\"40\" height=\"40\" rx=\"20\" stroke=\"#F9FAFB\" stroke-width=\"6\" />\r\n <g clip-path=\"url(#clip0_2876_59590)\">\r\n <path\r\n d=\"M23.8333 15.5829L15.5 25.5829H23L22.1667 32.2496L30.5 22.2496H23L23.8333 15.5829Z\"\r\n stroke=\"#475467\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2876_59590\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" transform=\"translate(13 13.9163)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <div>\r\n <div class=\"main-heading\">Status Check Alert</div>\r\n <div class=\"sub-heading\">An alert will be sent to the store employee so they can confirm\r\n whether the problem has been fixed.</div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex align-items-center\">\r\n <lib-reactive-select formControlName=\"rcaTicketAssign\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"infraDownTime\" ></lib-reactive-select>\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 mb-7 mt-7\">\r\n <div class=\" w-100 footer-seperator\"></div>\r\n </div>\r\n <div class=\"col-12 mb-7\">\r\n <div class=\"sub-header \">Data Mismatch (High Count)</div>\r\n </div>\r\n <div class=\"col-12 mb-5\">\r\n <div class=\"row\">\r\n <div class=\"col-6\">\r\n <label for=\"accuracyPercentage\" class=\"form-label\">Accuracy Percentage less than <span\r\n class=\"alert-required\"></span></label>\r\n <div style=\"position: relative;\">\r\n <input min=\"0\" max=\"100\" type=\"number\" formControlName=\"accuracyPercentage\"\r\n class=\"form-control \" id=\"accuracyPercentage\" autocomplete=\"off\">\r\n <svg class=\"inc\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"17\" viewBox=\"0 0 16 17\"\r\n fill=\"none\">\r\n <path\r\n d=\"M12.666 4.24967L3.33268 13.583M5.99935 5.24967C5.99935 6.17015 5.25316 6.91634 4.33268 6.91634C3.41221 6.91634 2.66602 6.17015 2.66602 5.24967C2.66602 4.3292 3.41221 3.58301 4.33268 3.58301C5.25316 3.58301 5.99935 4.3292 5.99935 5.24967ZM13.3327 12.583C13.3327 13.5035 12.5865 14.2497 11.666 14.2497C10.7455 14.2497 9.99935 13.5035 9.99935 12.583C9.99935 11.6625 10.7455 10.9163 11.666 10.9163C12.5865 10.9163 13.3327 11.6625 13.3327 12.583Z\"\r\n stroke=\"#667085\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <label for=\"reTrain\" class=\"form-label\">Sent to Re-training for (in days) <span\r\n class=\"alert-required\"></span></label>\r\n <div style=\"position: relative;\">\r\n <svg role=\"button\"\r\n (click)=\"ticketConfigurationForm.get('reTrain')?.value > 0 && ticketConfigurationForm.enabled ? ticketConfigurationForm.get('reTrain')?.setValue(ticketConfigurationForm.get('reTrain')?.value - 1) : null\"\r\n class=\"dec\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path d=\"M4.16602 10H15.8327\" stroke=\"#667085\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <input readonly type=\"number\" formControlName=\"reTrain\" class=\"form-control inc-dec-input\"\r\n id=\"reTrain\" autocomplete=\"off\">\r\n <svg role=\"button\"\r\n (click)=\"ticketConfigurationForm.get('reTrain')?.value < 12 && ticketConfigurationForm.enabled ? ticketConfigurationForm.get('reTrain')?.setValue(ticketConfigurationForm.get('reTrain')?.value + 1) : null\"\r\n class=\"inc\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M8.00065 3.33337V12.6667M3.33398 8.00004H12.6673\" stroke=\"#667085\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"ticketConfigurationForm.enabled\">\r\n <div class=\"mb-5 w-100 footer-seperator\"></div>\r\n <div class=\"d-flex justify-content-end\">\r\n <a type=\"button\" class=\"btn btn-outline me-4\" (click)=\"onCancel()\">Cancel</a>\r\n <a type=\"submit\" class=\"btn btn-primary px-4 \" (click)=\"onSubmit()\"><span>Save Changes</span></a>\r\n </div>\r\n </div>\r\n\r\n</form>","import { AfterViewInit, Component, Input, OnDestroy } from '@angular/core';\r\nimport { FormGroup, FormBuilder,Validators,AbstractControl } from '@angular/forms';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ClientApiService } from '../../../../services/client-api.service';\r\nimport { BehaviorSubject, switchMap, map, Subject, takeUntil } from 'rxjs';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\n\r\n@Component({\r\n selector: 'lib-add-report',\r\n templateUrl: './add-report.component.html',\r\n styleUrl: './add-report.component.scss'\r\n})\r\nexport class AddReportComponent implements AfterViewInit, OnDestroy {\r\n addReportForm: FormGroup\r\n emailList:any = []\r\n $emailInterrupt = new BehaviorSubject<string>('')\r\n clientId: string;\r\n private readonly destroy$ = new Subject();\r\n // emailValidation: { invalidEmail: boolean; } | null;\r\n emailValidation:any[] = [];\r\n\r\n\r\n constructor(private fb: FormBuilder, private apiService: ClientApiService, private activeModal: NgbActiveModal, private toaster:ToastService,) {\r\n this.initForm()\r\n this.apiService.clientData.pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if (e) {\r\n this.clientId = e?.clientId\r\n }\r\n })\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n\r\n initForm() {\r\n this.addReportForm = this.fb.group({\r\n fileName: ['',Validators.required],\r\n fileType: ['',Validators.required],\r\n email: ['',Validators.required]\r\n });\r\n }\r\n\r\n emailValidator(value:any){\r\n const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/;\r\n const valid = emailRegex.test(value);\r\n this.emailValidation.push(valid);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.addReportForm.get('email')?.valueChanges\r\n .pipe(map((value)=> value.replace(/\\n/g, '')))\r\n .pipe(\r\n switchMap((val) => { \r\n return this.$emailInterrupt.pipe(takeUntil(this.destroy$)).pipe(map((interrupt)=>{\r\n if(interrupt === 'Enter'){\r\n this.$emailInterrupt.next('')\r\n this.emailValidation=[];\r\n this.emailList.push(val)\r\n this.emailList.forEach((element:any) => {this.emailValidator(element)});\r\n this.addReportForm.get('email')?.setValue('')\r\n }else if(interrupt === 'Backspace' && !val && this.emailList.length){\r\n this.emailList.pop()\r\n }else{\r\n return val\r\n }\r\n }))\r\n })\r\n ).subscribe()\r\n \r\n }\r\n\r\n onKeyDown(event:any){\r\n this.$emailInterrupt.next(event.code)\r\n }\r\n\r\n removeChip(i:number){\r\n this.emailList.splice(i, 1) \r\n this.emailValidation=[];\r\n this.emailList.forEach((element:any) => {this.emailValidator(element)});\r\n }\r\n\r\n onCancel() {\r\n this.activeModal.close();\r\n }\r\n\r\n onSubmit() {\r\n this.apiService.addReport(this.clientId, {...this.addReportForm.value, email:this.emailList} ).pipe(takeUntil(this.destroy$)).subscribe({\r\n next:(e)=>{this.activeModal.close({type:'add'})},\r\n error:(err)=>{\r\n this.toaster.getErrorToast(err.error?.error)\r\n }\r\n })\r\n }\r\n}\r\n","<form [formGroup]=\"addReportForm\">\r\n <div class=\"row\">\r\n <div class=\"col-12 mb-5\">\r\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#DAF1FF\"/>\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#EAF8FF\" stroke-width=\"8\"/>\r\n <path d=\"M30 18H22C21.4696 18 20.9609 18.2107 20.5858 18.5858C20.2107 18.9609 20 19.4696 20 20V36C20 36.5304 20.2107 37.0391 20.5858 37.4142C20.9609 37.7893 21.4696 38 22 38H34C34.5304 38 35.0391 37.7893 35.4142 37.4142C35.7893 37.0391 36 36.5304 36 36V24M30 18L36 24M30 18V24H36M28 34V28M25 31H31\" stroke=\"#00A3FF\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg> \r\n </div>\r\n <div class=\"col-12 mb-10 header\">\r\n Add Report\r\n </div>\r\n <div class=\"col-12 mb-5\">\r\n <label for=\"fileName\" class=\"form-label\">Report Name<span class=\"alert-required\"></span></label>\r\n <input formControlName=\"fileName\" type=\"text\" class=\"form-control disabled-input\" id=\"fileName\"\r\n autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-12 mb-5\">\r\n <label for=\"fileType\" class=\"form-label\">File Type<span class=\"alert-required\"></span></label>\r\n <input formControlName=\"fileType\" type=\"text\" class=\"form-control disabled-input\" id=\"fileType\"\r\n autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12\">\r\n <label for=\"infraDownTime\" class=\"form-label\">Receivers Email <span class=\"alert-required\"></span></label>\r\n <div class=\"outer-container\">\r\n <div class=\" input-container form-control\">\r\n <ng-container *ngFor=\"let email of emailList; let i = index\">\r\n <span class=\"chip\">\r\n <span class=\"me-3\">{{email}}</span>\r\n <span *ngIf=\"addReportForm.enabled\" (click)=\"removeChip(i)\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"\r\n fill=\"none\">\r\n <path d=\"M9 3L3 9M3 3L9 9\" stroke=\"#667085\" stroke-width=\"1.5\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </span>\r\n </ng-container>\r\n <textarea rows=\"5\" formControlName=\"email\" (keydown)=\"onKeyDown($event)\"></textarea>\r\n <!-- <input style=\"min-height: 44px;\" formControlName=\"email\" (keydown)=\"onKeyDown($event)\" type=\"text\"> -->\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"emailValidation.includes(false)\" class=\"text-danger mt-3\">Invalid Email Format</div>\r\n <div class=\"col-12 mt-10\">\r\n <div class=\"row\" >\r\n <div class=\"col \">\r\n <a type=\"button\" class=\"btn btn-outline w-100 \" (click)=\"onCancel()\">Cancel</a>\r\n </div>\r\n <div class=\"col\">\r\n <button type=\"submit\" class=\"btn btn-primary w-100\" (click)=\"onSubmit()\" [disabled]=\"addReportForm.invalid || !emailList.length || emailValidation.includes(false)\"><span>Save Changes</span></button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</form>\r\n","import { AfterViewInit, ChangeDetectorRef, Component, OnDestroy } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { BehaviorSubject, switchMap, map, Subject, takeUntil } from 'rxjs';\r\nimport { ClientApiService } from '../../../services/client-api.service';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { AddReportComponent } from './add-report/add-report.component';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\n\r\n@Component({\r\n selector: 'lib-report-configuration',\r\n templateUrl: './report-configuration.component.html',\r\n styleUrl: './report-configuration.component.scss'\r\n})\r\nexport class ReportConfigurationComponent implements AfterViewInit, OnDestroy {\r\n\r\n reportConfigurationForm: FormGroup\r\n emailList: any = []\r\n reportList: any = []\r\n $emailInterrupt = new BehaviorSubject<string>('')\r\n clientId: string;\r\n selectedReport: any\r\n private readonly destroy$ = new Subject();\r\n emailValidation:any[] = [];\r\n\r\n\r\n\r\n constructor(private fb: FormBuilder, private apiService: ClientApiService, private modalService: NgbModal, private toaster:ToastService,\r\n private cd:ChangeDetectorRef, public gs:GlobalStateService) {\r\n this.initForm()\r\n\r\n\r\n this.apiService.clientData.pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if (e) {\r\n this.clientId = e?.clientId\r\n this.getClientReports(this.clientId)\r\n }\r\n })\r\n\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n emailValidator(value:any){\r\n const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/;\r\n const valid = emailRegex.test(value);\r\n this.emailValidation.push(valid);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.reportConfigurationForm.get('email')?.valueChanges\r\n .pipe(map((value)=> value.replace(/\\n/g, '').replace(/\\s/g, '')))\r\n .pipe(\r\n switchMap((val) => {\r\n return this.$emailInterrupt.pipe(takeUntil(this.destroy$)).pipe(map((interrupt) => {\r\n if (interrupt === 'Enter') {\r\n this.$emailInterrupt.next('')\r\n this.emailValidation = [];\r\n this.emailList.push(val)\r\n this.emailList.forEach((element:any) => {this.emailValidator(element)});\r\n this.reportConfigurationForm.get('email')?.setValue('')\r\n } else if (interrupt === 'Backspace' && !val && this.emailList.length) {\r\n this.emailList.pop()\r\n } else {\r\n return val\r\n }\r\n }))\r\n })\r\n ).subscribe()\r\n\r\n }\r\n\r\n\r\n initForm() {\r\n this.reportConfigurationForm = this.fb.group({\r\n fileName: [''],\r\n fileType: ['',Validators.required],\r\n email: ['']\r\n });\r\n this.reportConfigurationForm.disable()\r\n }\r\n\r\n patchForm(data: any) {\r\n this.reportConfigurationForm.patchValue(\r\n {\r\n fileType: data.fileType,\r\n },\r\n { emitEvent: false, onlySelf: true }\r\n )\r\n\r\n this.emailList = data?.email\r\n this.cd.detectChanges()\r\n\r\n }\r\n\r\n getClientReports(clientId:string) {\r\n this.apiService.getClientReports(clientId).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (res) => {\r\n this.reportList = res.data\r\n this.selectedReport = res.data[0]\r\n this.getSingleReport(res.data[0]._id)\r\n this.cd.detectChanges()\r\n },\r\n error: (err) => {\r\n }\r\n })\r\n }\r\n\r\n\r\n onKeyDown(event: any) {\r\n this.$emailInterrupt.next(event.code)\r\n }\r\n\r\n removeChip(i: number) {\r\n this.emailList.splice(i, 1)\r\n this.emailValidation=[];\r\n this.emailList.forEach((element:any) => {this.emailValidator(element)});\r\n }\r\n\r\n onReportSelect(event: any) {\r\n this.selectedReport = event\r\n this.getSingleReport(this.selectedReport._id)\r\n }\r\n\r\n getSingleReport(reportId:string){\r\n this.apiService.getSingleReport(reportId).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (res) => {\r\n this.patchForm(res.data)\r\n },\r\n error: (err) => {\r\n }\r\n })\r\n }\r\n\r\n openAddModal() {\r\n const modalRef = this.modalService.open(AddReportComponent, { size: 'md', centered: true });\r\n modalRef.result.then((event) => { \r\n if (event?.type === 'add') { \r\n this.getClientReports(this.clientId)\r\n this.toaster.getSuccessToast('Report added successfully.') \r\n }\r\n });\r\n }\r\n\r\n\r\n onCancel() {\r\n this.getClientReports(this.clientId)\r\n this.reportConfigurationForm.disable()\r\n this.apiService.clientFormData.next({ value: null, type: 'cancel', form: 'report-configuration' })\r\n }\r\n\r\n onSubmit() {\r\n let data = {\r\n fileType:this.reportConfigurationForm.value.fileType,\r\n email:this.emailList,\r\n clientId:this.clientId\r\n }\r\n this.apiService.updateReport(this.selectedReport._id, data).pipe(takeUntil(this.destroy$)).subscribe({\r\n next:(e)=>{\r\n this.toaster.getSuccessToast(e.data?.result)\r\n this.getSingleReport(this.selectedReport._id)\r\n this.apiService.clientFormData.next({ value: null, type: 'submitted', form: 'null' })\r\n },\r\n error:(e)=>{\r\n this.toaster.getErrorToast(e.error?.error)\r\n this.getSingleReport(this.selectedReport._id)\r\n }\r\n })\r\n }\r\n}\r\n","<form [formGroup]=\"reportConfigurationForm\">\r\n <div class=\"row\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_configuration_isEdit \" >\r\n <div class=\"col-12 mb-5\">\r\n <div class=\" d-flex justify-content-end\">\r\n <button *ngIf=\"reportConfigurationForm.disabled\"\r\n (click)=\"reportConfigurationForm.disabled ? reportConfigurationForm.enable() : reportConfigurationForm.disable()\"\r\n type=\"button\" class=\"btn btn-outline align-items-end me-5\"><span class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2579_25125)\">\r\n <path\r\n d=\"M14.167 2.49993C14.3859 2.28106 14.6457 2.10744 14.9317 1.98899C15.2176 1.87054 15.5241 1.80957 15.8337 1.80957C16.1432 1.80957 16.4497 1.87054 16.7357 1.98899C17.0216 2.10744 17.2815 2.28106 17.5003 2.49993C17.7192 2.7188 17.8928 2.97863 18.0113 3.2646C18.1297 3.55057 18.1907 3.85706 18.1907 4.16659C18.1907 4.47612 18.1297 4.78262 18.0113 5.06859C17.8928 5.35455 17.7192 5.61439 17.5003 5.83326L6.25033 17.0833L1.66699 18.3333L2.91699 13.7499L14.167 2.49993Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2579_25125\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>Edit Details</button>\r\n <button [disabled]=\"reportConfigurationForm.disabled\" (click)=\"openAddModal()\" type=\"button\" class=\"btn btn-primary align-items-end\"><span\r\n class=\"me-2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M10.0003 4.16663V15.8333M4.16699 9.99996H15.8337\" stroke=\"white\" stroke-width=\"2\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>Add Report</button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"infraDownTime\" class=\"form-label\">Report Name <span class=\"alert-required\"></span></label>\r\n <lib-select [items]=\"reportList\" [multi]=\"false\" [searchField]=\"'fileName'\"\r\n [disabled]=\"reportConfigurationForm.get('fileName')?.disabled\" [idField]=\"'_id'\"\r\n (selected)=\"onReportSelect($event)\" [selectedValues]=\"[selectedReport]\"></lib-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"count\" class=\"form-label\">File Type<span class=\"alert-required\"></span></label>\r\n <input formControlName=\"fileType\" type=\"text\" class=\"form-control disabled-input\" id=\"count\"\r\n autocomplete=\"off\">\r\n </div>\r\n\r\n <div class=\"col-md-12 col-lg-12 col-xl-12 col-xxl-12 mb-5\">\r\n <label for=\"infraDownTime\" class=\"form-label\">Receivers Email <span class=\"alert-required\"></span></label>\r\n <div class=\"outer-container\">\r\n <div class=\" input-container form-control\">\r\n <ng-container *ngFor=\"let domain of emailList; let i = index\">\r\n <span class=\"chip\">\r\n <span class=\"me-3\">{{domain}}</span>\r\n <span *ngIf=\"reportConfigurationForm.enabled\" (click)=\"removeChip(i)\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"\r\n fill=\"none\">\r\n <path d=\"M9 3L3 9M3 3L9 9\" stroke=\"#667085\" stroke-width=\"1.5\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </span>\r\n </ng-container>\r\n <input style=\"min-height: 44px;\" formControlName=\"email\" (keydown)=\"onKeyDown($event)\" type=\"text\">\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div *ngIf=\"emailValidation.includes(false)\" class=\"text-danger mt-3\">Invalid Email Format</div>\r\n\r\n <div *ngIf=\"reportConfigurationForm.enabled\">\r\n <div class=\"mb-5 w-100 footer-seperator\"></div>\r\n <div class=\"d-flex justify-content-end\">\r\n <a type=\"button\" class=\"btn btn-outline me-4 align-content-center\" (click)=\"onCancel()\">Cancel</a>\r\n <button type=\"button\" class=\"btn btn-primary px-4\" [disabled]=\"reportConfigurationForm.invalid || !emailList?.length || emailValidation.includes(false)\" (click)=\"onSubmit()\"><span>Save Changes</span></button>\r\n </div>\r\n </div>\r\n\r\n</form>","import { ChangeDetectorRef, Component, OnDestroy } from '@angular/core';\r\nimport { FormGroup, FormBuilder } from '@angular/forms';\r\nimport { ClientApiService } from '../../../services/client-api.service';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\n\r\n@Component({\r\n selector: 'lib-user-configuration',\r\n templateUrl: './user-configuration.component.html',\r\n styleUrl: './user-configuration.component.scss'\r\n})\r\nexport class UserConfigurationComponent implements OnDestroy {\r\n \r\n userConfigurationForm: FormGroup\r\n csmUserList: any = [];\r\n opsUserList: any = [];\r\n selectedCsm:any = []\r\n selectedOps:any = [];\r\n private readonly destroy$ = new Subject();\r\n clienId: string;\r\n\r\n\r\n constructor(private fb: FormBuilder, private apiService: ClientApiService, private cd: ChangeDetectorRef, public gs:GlobalStateService,\r\n private toast:ToastService\r\n ) {\r\n this.initForm()\r\n this.getCsmUsers()\r\n this.getOpsUsers()\r\n this.apiService.clientId.pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if (e) {\r\n this.clienId = e\r\n this.getAssignedUsers(e)\r\n }\r\n })\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n\r\n initForm() {\r\n this.userConfigurationForm = this.fb.group({\r\n domainName: [''],\r\n isEnable: [''],\r\n });\r\n this.userConfigurationForm.disable()\r\n }\r\n\r\n patchForm(data: any) { \r\n this.selectedCsm = data?.csm \r\n this.selectedOps = data?.ops \r\n }\r\n\r\n getCsmUsers(){\r\n this.apiService.getCsmUsers().pipe(takeUntil(this.destroy$)).subscribe({\r\n next:(res)=>{\r\n if(res){\r\n this.csmUserList = res.data\r\n }\r\n }\r\n })\r\n }\r\n\r\n getOpsUsers(){\r\n this.apiService.getOpsUsers().pipe(takeUntil(this.destroy$)).subscribe({\r\n next:(res)=>{\r\n if(res){\r\n this.opsUserList = res.data\r\n }\r\n }\r\n })\r\n }\r\n\r\n getAssignedUsers(clientId:string){\r\n this.apiService.getAssignedUsers(clientId).pipe(takeUntil(this.destroy$)).subscribe({\r\n next:(e)=>{\r\n if(e?.data?.result?.length){\r\n e?.data?.result.forEach((element:any) => {\r\n if(element.tangoUserType === 'csm'){\r\n this.selectedCsm = element?.assignedUser?.[0]\r\n }\r\n if(element.tangoUserType === 'user'){\r\n this.selectedOps = element?.assignedUser\r\n }\r\n });\r\n }\r\n this.cd.detectChanges()\r\n \r\n }\r\n })\r\n }\r\n onCsmSelect(event:any){\r\n this.selectedCsm = event\r\n }\r\n\r\n onOpsSelect(event:any){\r\n this.selectedOps = event\r\n }\r\n\r\n onCancel() {\r\n this.apiService.clientFormData.next({ value: null, type: 'cancel', form: 'user-configuration' })\r\n this.userConfigurationForm.disable()\r\n }\r\n\r\n onSubmit() {\r\n let data = {\r\n clientId:this.clienId,\r\n assignedCsm:this.selectedCsm.email,\r\n assignedUser:this.selectedOps.map((csm:any)=>csm.email),\r\n } \r\n\r\n this.apiService.assignCsm(data).pipe(takeUntil(this.destroy$)).subscribe({\r\n next:(e)=>{\r\n if(e?.data?.result){\r\n this.getAssignedUsers(this.clienId)\r\n this.toast.getSuccessToast('Updated successfully.') \r\n this.apiService.clientFormData.next({ value: null, type: 'submitted', form: 'null' })\r\n }\r\n }\r\n })\r\n }\r\n\r\n}\r\n","<form [formGroup]=\"userConfigurationForm\">\r\n <div class=\"row\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_configuration_isEdit \" >\r\n <div *ngIf=\"userConfigurationForm.disabled\" class=\"col-12 mb-5\">\r\n <div class=\" d-flex justify-content-end\">\r\n <button\r\n (click)=\"userConfigurationForm.disabled ? userConfigurationForm.enable() : userConfigurationForm.disable()\"\r\n type=\"button\" class=\"btn btn-outline align-items-end\"><span class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2579_25125)\">\r\n <path\r\n d=\"M14.167 2.49993C14.3859 2.28106 14.6457 2.10744 14.9317 1.98899C15.2176 1.87054 15.5241 1.80957 15.8337 1.80957C16.1432 1.80957 16.4497 1.87054 16.7357 1.98899C17.0216 2.10744 17.2815 2.28106 17.5003 2.49993C17.7192 2.7188 17.8928 2.97863 18.0113 3.2646C18.1297 3.55057 18.1907 3.85706 18.1907 4.16659C18.1907 4.47612 18.1297 4.78262 18.0113 5.06859C17.8928 5.35455 17.7192 5.61439 17.5003 5.83326L6.25033 17.0833L1.66699 18.3333L2.91699 13.7499L14.167 2.49993Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2579_25125\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>Edit Details</button>\r\n </div>\r\n </div> \r\n </ng-container>\r\n\r\n\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"infraDownTime\" class=\"form-label\">Assign CSM <span class=\"alert-required\"></span></label>\r\n <lib-select [items]=\"csmUserList\" [disabled]=\"userConfigurationForm.disabled\" [multi]=\"false\" [searchField]=\"'userName'\" [idField]=\"'email'\"\r\n (selected)=\"onCsmSelect($event)\" [selectedValues]=\"[selectedCsm]\"></lib-select>\r\n </div>\r\n\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"infraDownTime\" class=\"form-label\">Assign Ops User <span class=\"alert-required\"></span></label>\r\n <lib-select [items]=\"opsUserList\" [disabled]=\"userConfigurationForm.disabled\" [multi]=\"true\" [searchField]=\"'userName'\" [idField]=\"'email'\"\r\n (selected)=\"onOpsSelect($event)\" [selectedValues]=\"selectedOps\"></lib-select>\r\n </div>\r\n \r\n </div>\r\n\r\n <div *ngIf=\"userConfigurationForm.enabled\">\r\n <div class=\"mb-5 w-100 footer-seperator\"></div>\r\n <div class=\"d-flex justify-content-end\">\r\n <a type=\"button\" class=\"btn btn-outline me-4\" (click)=\"onCancel()\">Cancel</a>\r\n <a type=\"submit\" class=\"btn btn-primary px-4 \" (click)=\"onSubmit()\"><span>Save Changes</span></a>\r\n </div>\r\n </div>\r\n\r\n</form>","import { AfterViewInit, Component, OnDestroy } from '@angular/core';\r\nimport { FormGroup, FormBuilder } from '@angular/forms';\r\nimport { ClientApiService } from '../../../services/client-api.service';\r\nimport { BehaviorSubject, Subject, map, switchMap, takeUntil } from 'rxjs';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\n\r\n@Component({\r\n selector: 'lib-domain-details',\r\n templateUrl: './domain-details.component.html',\r\n styleUrl: './domain-details.component.scss'\r\n})\r\nexport class DomainDetailsComponent implements AfterViewInit, OnDestroy {\r\n\r\n domainDetailsForm: FormGroup\r\n allowedDomains:any = []\r\n $domainNameInterrupt = new BehaviorSubject<string>('')\r\n private readonly destroy$ = new Subject();\r\n\r\n \r\n\r\n\r\n constructor(private fb: FormBuilder, private apiService: ClientApiService, public gs:GlobalStateService) {\r\n this.initForm()\r\n this.apiService.clientFormData.pipe(takeUntil(this.destroy$)).subscribe((res) => {\r\n if (res) {\r\n if (res.type === 'input' && res.form === 'domain-details') {\r\n this.patchForm(res.value)\r\n }\r\n }\r\n })\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.domainDetailsForm.get('domainName')?.valueChanges\r\n .pipe(map((value)=> value.replace(/\\n/g, '')))\r\n .pipe(\r\n switchMap((val) => { \r\n return this.$domainNameInterrupt.pipe(takeUntil(this.destroy$)).pipe(map((interrupt)=>{\r\n if(interrupt === 'Enter'){\r\n this.$domainNameInterrupt.next('')\r\n this.allowedDomains.push(val)\r\n this.domainDetailsForm.get('domainName')?.setValue('')\r\n }else if(interrupt === 'Backspace' && !val && this.allowedDomains.length){\r\n this.allowedDomains.pop()\r\n }else{\r\n return val\r\n }\r\n }))\r\n })\r\n ).subscribe()\r\n \r\n }\r\n\r\n\r\n initForm() {\r\n this.domainDetailsForm = this.fb.group({\r\n domainName: [''],\r\n isEnable: [''],\r\n });\r\n this.domainDetailsForm.disable()\r\n }\r\n\r\n patchForm(data: any) { \r\n \r\n this.domainDetailsForm.patchValue(\r\n {\r\n ...data,\r\n domainName:''\r\n },\r\n {emitEvent: false, onlySelf: true}\r\n )\r\n\r\n this.allowedDomains = [...data?.domainName]\r\n\r\n }\r\n\r\n onKeyDown(event:any){\r\n this.$domainNameInterrupt.next(event.code)\r\n }\r\n\r\n removeChip(i:number){\r\n this.allowedDomains.splice(i, 1) \r\n }\r\n\r\n\r\n onCancel() {\r\n this.apiService.clientFormData.next({ value: null, type: 'cancel', form: 'domain-details' })\r\n this.domainDetailsForm.disable()\r\n }\r\n\r\n onSubmit() {\r\n this.domainDetailsForm.value.domainName = this.allowedDomains \r\n this.apiService.clientFormData.next({ value: this.domainDetailsForm.value, type: 'submit', form: 'domain-details' })\r\n }\r\n\r\n}\r\n","<form [formGroup]=\"domainDetailsForm\">\r\n <div class=\"row\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_configuration_isEdit \" >\r\n <div *ngIf=\"domainDetailsForm.disabled\" class=\"col-12 mb-5\">\r\n <div class=\" d-flex justify-content-end\">\r\n <button\r\n (click)=\"domainDetailsForm.disabled ? domainDetailsForm.enable() : domainDetailsForm.disable()\"\r\n type=\"button\" class=\"btn btn-outline align-items-end\"><span class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2579_25125)\">\r\n <path\r\n d=\"M14.167 2.49993C14.3859 2.28106 14.6457 2.10744 14.9317 1.98899C15.2176 1.87054 15.5241 1.80957 15.8337 1.80957C16.1432 1.80957 16.4497 1.87054 16.7357 1.98899C17.0216 2.10744 17.2815 2.28106 17.5003 2.49993C17.7192 2.7188 17.8928 2.97863 18.0113 3.2646C18.1297 3.55057 18.1907 3.85706 18.1907 4.16659C18.1907 4.47612 18.1297 4.78262 18.0113 5.06859C17.8928 5.35455 17.7192 5.61439 17.5003 5.83326L6.25033 17.0833L1.66699 18.3333L2.91699 13.7499L14.167 2.49993Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2579_25125\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>Edit Details</button>\r\n </div>\r\n </div> \r\n </ng-container>\r\n\r\n <div class=\"col-md-12 col-lg-12 col-xl-12 col-xxl-12 mb-5\">\r\n <div class=\"outer-container\">\r\n <div class=\" input-container form-control\">\r\n <ng-container *ngFor=\"let domain of allowedDomains; let i = index\">\r\n <span class=\"chip\">\r\n <span class=\"me-3\">{{domain}}</span>\r\n <span *ngIf=\"domainDetailsForm.enabled\" (click)=\"removeChip(i)\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path d=\"M9 3L3 9M3 3L9 9\" stroke=\"#667085\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n </span>\r\n </ng-container>\r\n <input style=\"min-height: 44px;\" formControlName=\"domainName\" (keydown)=\"onKeyDown($event)\" type=\"text\">\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-12 col-xl-12 col-xxl-12 mb-5\">\r\n <div class=\"d-flex align-items-center mb-2\">\r\n <label class=\"sso-label me-5\" for=\"isPasserByData\">SSO Login</label>\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isEnable\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isPasserByData\">\r\n </div>\r\n </div>\r\n <div class=\"sso-sub\">Turn on will only allow SSO as default login</div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"domainDetailsForm.enabled\">\r\n <div class=\"mb-5 w-100 footer-seperator\"></div>\r\n <div class=\"d-flex justify-content-end\">\r\n <a type=\"button\" class=\"btn btn-outline me-4\" (click)=\"onCancel()\">Cancel</a>\r\n <a type=\"submit\" class=\"btn btn-primary px-4 \" (click)=\"onSubmit()\"><span>Save Changes</span></a>\r\n </div>\r\n </div>\r\n\r\n</form>","import { ChangeDetectorRef, Component, OnDestroy } from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { ClientApiService } from '../../../services/client-api.service';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\nimport dayjs from \"dayjs\";\r\nimport \"dayjs/locale/en\";\r\nimport utc from \"dayjs/plugin/utc\";\r\nimport timezone from \"dayjs/plugin/timezone\";\r\ndayjs.extend(utc);\r\ndayjs.extend(timezone);\r\n\r\n@Component({\r\n selector: 'lib-feature-configuration',\r\n templateUrl: './feature-configuration.component.html',\r\n styleUrl: './feature-configuration.component.scss'\r\n})\r\nexport class FeatureConfigurationComponent implements OnDestroy {\r\n\r\n\r\n featureConfigurationForm: FormGroup\r\n missedOpportunityStartTime: string;\r\n missedOpportunityEndTime: string;\r\n private readonly destroy$ = new Subject();\r\n dayjs = dayjs\r\n\r\n\r\n infraAlertValue = [\r\n { value: 1, label: \"1 hrs\" },\r\n { value: 2, label: \"2 hrs\" },\r\n { value: 3, label: \"3 hrs\" },\r\n { value: 4, label: \"4 hrs\" },\r\n { value: 5, label: \"5 hrs\" }\r\n ]\r\n\r\n infraAlertCondition = [\r\n { value: \"<\", label: \"<\" },\r\n { value: \">\", label: \">\" },\r\n { value: \"<=\", label: \"< =\" },\r\n { value: \"=>\", label: \"= >\" },\r\n ]\r\n\r\n bouncedLimitCondition = [\r\n { value: \"<=\", label: \"< =\" }\r\n ]\r\n\r\n bouncedLimitValue = [\r\n { value: 1, label: \"1 min\" },\r\n { value: 2, label: \"2 mins\" },\r\n { value: 3, label: \"3 mins\" },\r\n ]\r\n\r\n conversionCondition = [\r\n { value: \">\", label: \">\" }\r\n ]\r\n\r\n conversionValue = [\r\n { value: 5, label: \"5 mins\" },\r\n { value: 10, label: \"10 mins\" },\r\n { value: 15, label: \"15 mins\" },\r\n { value: 20, label: \"20 mins\" }\r\n ]\r\n\r\n billableCalculation = [\r\n { value: \"footfall-count\", label: \"Footfall Count\" },\r\n { value: \"engagers-count\", label: \"Engagers Count\" },\r\n ]\r\n\r\n missedOpportunityCalculation = [\r\n { value: \"engagers-conversion\", label: \"Engagers - Conversion\" },\r\n { value: \"group-conversion\", label: \"Billable Entities - Conversion\" },\r\n ]\r\n\r\n conversionCalculation = [\r\n {value:\"footfall-count\", label:\"Footfall Count\"},\r\n {value:\"engagers-count\", label:\"Engagers Count\"},\r\n {value:\"billable-entities\", label:\"Billable Entities\"},\r\n ]\r\n\r\n\r\n\r\n constructor(private fb: FormBuilder, private apiService: ClientApiService, public gs: GlobalStateService,\r\n private cd:ChangeDetectorRef\r\n ) {\r\n this.initForm()\r\n this.apiService.clientFormData.pipe(takeUntil(this.destroy$)).subscribe((res) => {\r\n if (res) {\r\n if (res.type === 'input' && res.form === 'feature-configuration') {\r\n this.patchForm(res.value)\r\n }\r\n }\r\n })\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n\r\n\r\n initForm() {\r\n this.featureConfigurationForm = this.fb.group({\r\n open: [],\r\n close: [],\r\n infraAlertCondition: [],\r\n infraAlertValue: [],\r\n bouncedLimitCondition: [],\r\n bouncedLimitValue: [],\r\n conversionCondition: [],\r\n conversionValue: [],\r\n billableCalculation: [],\r\n missedOpportunityCalculation: [],\r\n conversionCalculation: [],\r\n isNormalized: [],\r\n isPasserByData: [],\r\n isFootfallDirectory: [],\r\n });\r\n this.featureConfigurationForm.disable()\r\n\r\n this.featureConfigurationForm.get('bouncedLimitValue')?.valueChanges.pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if (e) { \r\n this.bouncedConfigTimeChange(e)\r\n }\r\n\r\n })\r\n\r\n this.featureConfigurationForm.get('conversionValue')?.valueChanges.pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if (e) {\r\n this.conversionConfigTimeChange(e)\r\n // this.setConversionCalculation(e)\r\n }\r\n\r\n })\r\n }\r\n\r\n patchForm(data: any) {\r\n this.featureConfigurationForm.patchValue(\r\n {\r\n ...data\r\n }\r\n )\r\n }\r\n\r\n bouncedConfigTimeChange(value: number) {\r\n\r\n switch (value) {\r\n case 1:\r\n this.missedOpportunityStartTime = \">1\"\r\n break;\r\n case 2:\r\n this.missedOpportunityStartTime = \">2\";\r\n break;\r\n case 3:\r\n this.missedOpportunityStartTime = \">3\";\r\n break;\r\n default:\r\n this.missedOpportunityStartTime = \"\";\r\n break;\r\n\r\n }\r\n }\r\n\r\n conversionConfigTimeChange(value: number) {\r\n switch (value) {\r\n case 5:\r\n this.missedOpportunityEndTime = '<=5';\r\n break;\r\n case 10:\r\n this.missedOpportunityEndTime = '<=10';\r\n break;\r\n case 15:\r\n this.missedOpportunityEndTime = '<=15';\r\n break;\r\n case 20:\r\n this.missedOpportunityEndTime = '<=20';\r\n break;\r\n default:\r\n this.missedOpportunityEndTime = '';\r\n break;\r\n }\r\n }\r\n\r\n setConversionCalculation(conversionVal:number){\r\n this.conversionCalculation = [\r\n {value:\"footfall-count\", label:`${conversionVal} mins/Footfall Count`},\r\n {value:\"engagers-count\", label:`${conversionVal} mins/Engagers Count`},\r\n {value:\"billable-entities\", label:`${conversionVal} mins/Billable Entities`},\r\n ]\r\n this.featureConfigurationForm.get('conversionCalculation')?.setValue(this.featureConfigurationForm?.value.conversionCalculation) \r\n }\r\n\r\n\r\n\r\n onCancel() {\r\n this.apiService.clientFormData.next({ value: null, type: 'cancel', form: 'feature-configuration' })\r\n this.featureConfigurationForm.disable()\r\n\r\n }\r\n\r\n onSubmit() {\r\n this.featureConfigurationForm.value.open = this.dayjs(`1991-01-01 ${this.featureConfigurationForm.value.open}`,'YYYY-MM-DD HH:mm').format(\"HH:mm:ss\")\r\n this.featureConfigurationForm.value.close = this.dayjs(`1991-01-01 ${this.featureConfigurationForm.value.close}`,'YYYY-MM-DD HH:mm').format(\"HH:mm:ss\") \r\n this.apiService.clientFormData.next({ value: this.featureConfigurationForm.value, type: 'submit', form: 'feature-configuration' })\r\n }\r\n\r\n\r\n\r\n}\r\n","<form [formGroup]=\"featureConfigurationForm\">\r\n <div class=\"row\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_configuration_isEdit \" >\r\n <div *ngIf=\"featureConfigurationForm.disabled\" class=\"col-12 mb-5\">\r\n <div class=\" d-flex justify-content-end\">\r\n <button\r\n (click)=\"featureConfigurationForm.disabled ? featureConfigurationForm.enable() : featureConfigurationForm.disable()\"\r\n type=\"button\" class=\"btn btn-outline align-items-end\"><span class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2579_25125)\">\r\n <path\r\n d=\"M14.167 2.49993C14.3859 2.28106 14.6457 2.10744 14.9317 1.98899C15.2176 1.87054 15.5241 1.80957 15.8337 1.80957C16.1432 1.80957 16.4497 1.87054 16.7357 1.98899C17.0216 2.10744 17.2815 2.28106 17.5003 2.49993C17.7192 2.7188 17.8928 2.97863 18.0113 3.2646C18.1297 3.55057 18.1907 3.85706 18.1907 4.16659C18.1907 4.47612 18.1297 4.78262 18.0113 5.06859C17.8928 5.35455 17.7192 5.61439 17.5003 5.83326L6.25033 17.0833L1.66699 18.3333L2.91699 13.7499L14.167 2.49993Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2579_25125\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>Edit Details</button>\r\n </div>\r\n </div> \r\n </ng-container>\r\n\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"open\" class=\"form-label\">Store Open Time <span class=\"alert-required\"></span></label>\r\n <input type=\"time\" formControlName=\"open\" class=\"form-control\" id=\"open\" autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"close\" class=\"form-label\">Store Close Time <span class=\"alert-required\"></span></label>\r\n <input type=\"time\" formControlName=\"close\" class=\"form-control\" id=\"close\" autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label class=\"form-label\">Infra Alert <span class=\"alert-required\"></span></label>\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"infraAlertCondition\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"infraAlertCondition\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"infraAlertValue\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"infraAlertValue\" ></lib-reactive-select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"downTimeType\" class=\"form-label\">Bounced Limit<span class=\"alert-required\"></span></label>\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"bouncedLimitCondition\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"bouncedLimitCondition\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"bouncedLimitValue\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"bouncedLimitValue\" ></lib-reactive-select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"MinFilesCount\" class=\"form-label\">Missed Opportunity <span\r\n class=\"alert-required\"></span></label>\r\n <div class=\"form-control mock-input d-flex justify-content-center align-items-center\">\r\n <ng-container *ngIf=\"missedOpportunityStartTime\">\r\n {{missedOpportunityStartTime }} - {{missedOpportunityEndTime}}\r\n </ng-container>\r\n </div>\r\n\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label class=\"form-label\">Conversion <span class=\"alert-required\"></span></label>\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"conversionCondition\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"conversionCondition\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"conversionValue\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"conversionValue\" ></lib-reactive-select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <lib-reactive-select formControlName=\"billableCalculation\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"billableCalculation\" [label]=\"'Billable Calculations'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <lib-reactive-select formControlName=\"missedOpportunityCalculation\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"missedOpportunityCalculation\" [label]=\"'Missed Opportunity Calculation'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <lib-reactive-select formControlName=\"conversionCalculation\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"conversionCalculation\" [label]=\"'Conversion Calculations'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5 px-6\">\r\n <div class=\"sub-header\">Normalized data during downtime</div>\r\n <div class=\"sub-text\">Choose if you want to view normalized data during downtime. </div>\r\n </div>\r\n \r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5 px-6\">\r\n <div class=\"sub-header\">Passer-by data</div>\r\n <div class=\"sub-text\">Choose if you want to view Passerby data. </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \" >\r\n <div class=\"sub-header\">Footfall Directory</div>\r\n <div class=\"sub-text\">Choose if you want to view Footfall directory </div> \r\n </ng-container>\r\n \r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5 px-6\">\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isNormalized\" class=\"form-check-input\" type=\"checkbox\" id=\"isNormalized\">\r\n <label class=\"form-check-label toggle-label\" for=\"isNormalized\"> Show Normalized data\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5 px-6\">\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isPasserByData\" class=\"form-check-input\" type=\"checkbox\" id=\"isPasserByData\">\r\n <label class=\"form-check-label toggle-label\" for=\"isPasserByData\"> Show Passer-by data\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \" >\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isFootfallDirectory\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isFootfallDirectory\">\r\n <label class=\"form-check-label toggle-label\" for=\"isFootfallDirectory\"> Show Footfall Directory\r\n </label>\r\n </div> \r\n </ng-container>\r\n \r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"featureConfigurationForm.enabled\">\r\n <div class=\"mb-5 w-100 footer-seperator\"></div>\r\n <div class=\"d-flex justify-content-end\">\r\n <a type=\"button\" class=\"btn btn-outline me-4\" (click)=\"onCancel()\">Cancel</a>\r\n <a type=\"submit\" class=\"btn btn-primary px-4 \" (click)=\"onSubmit()\"><span>Save Changes</span></a>\r\n </div>\r\n </div>\r\n\r\n</form>","import { Component, OnInit,HostListener,ViewChild,ChangeDetectorRef,OnDestroy } from '@angular/core';\r\nimport { NgbModal,NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ClientApiService } from '../../../services/client-api.service';\r\nimport { Subject, map, takeUntil } from 'rxjs';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\n\r\n@Component({\r\n selector: 'lib-email-configuration',\r\n templateUrl: './email-configuration.component.html',\r\n styleUrl: './email-configuration.component.scss'\r\n})\r\nexport class EmailConfigurationComponent implements OnInit,OnDestroy {\r\n\r\n @ViewChild('confirmationModal') confirmationModal: any;\r\n modalRef: NgbModalRef | undefined;\r\n SelectedTab:any='Infra Report'\r\n startTime:any;\r\n endTime:any;\r\n dropDown: boolean = false;\r\n dropdownItems:any[] = ['Admin','User','Super Admin']\r\n selectedRole:any = 'Super Admin' ;\r\n offset:any = 1;\r\n limit:any = 10;\r\n sortBy:any = -1;\r\n sortColumName:any;\r\n totalCount:any;\r\n searchInstallation: any;\r\n noData: any;\r\n loading: any;\r\n selectedItems: any;\r\n private readonly destroy$ = new Subject();\r\n emailuserList: any;\r\n dummyEmailList:any;\r\n clientId: any;\r\n storeList: any;\r\n Email: any;\r\n userName: any;\r\n\r\n @HostListener('document:click', ['$event'])\r\n onClick(event: MouseEvent) {\r\n const\r\n target = event.target as HTMLElement;\r\n if (!target.closest('.dropdown')) {\r\n this.dropDown = false;\r\n }\r\n }\r\n\r\n constructor(private modalService: NgbModal,private toast:ToastService,\r\n private cd:ChangeDetectorRef,private service: ClientApiService){\r\n this.service.clientData.pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if (e) {\r\n this.clientId = e.clientId\r\n }\r\n })\r\n }\r\n ngOnInit(): void {\r\n this.Selectedtabs(this.SelectedTab); \r\n this.getBrandDetails();\r\n this.userList();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n selectAll(event: any) {\r\n const checked = event.target.checked;\r\n this.emailuserList?.result.forEach((item:any) => {\r\n if(checked){\r\n item.infraAlert = checked;\r\n // this.updateSelectedItems();\r\n }else {item.infraAlert = false}\r\n });\r\n }\r\n\r\n selectItems(event: any, item: any) {\r\n item.infraAlert = event.target.checked;\r\n this.checkSelectAll();\r\n // this.updateSelectedItems();\r\n }\r\n\r\n checkSelectAll() {\r\n const allSelected = this.emailuserList?.result.every((item:any) => item.infraAlert);\r\n const selectAllCheckbox = document.getElementById('selectAllCheckbox') as HTMLInputElement;\r\n if (selectAllCheckbox) {\r\n selectAllCheckbox.checked = allSelected;\r\n }\r\n }\r\n\r\n updateSelectedItems() {\r\n if(this.endTime > this.startTime){\r\n this.selectedItems = this.emailuserList?.result.map((item:any,index:any)=>{\r\n return {email:item.email,infraAlert:item.infraAlert};\r\n });\r\n this.updateUserList();\r\n }else{\r\n this.toast.getErrorToast('Invalid Time Taken')\r\n }\r\n }\r\n\r\n cancelSelectedItems(){\r\n this.emailuserList = JSON.parse(JSON.stringify(this.dummyEmailList));\r\n this.checkSelectAll();\r\n }\r\n\r\n Selectedtabs(value:any){\r\n this.SelectedTab = value;\r\n }\r\n\r\n selectItem(value: any) {\r\n this.selectedRole = value;\r\n this.dropDown = false;\r\n this.userList();\r\n // this.tableData.filter = this.selectedItem === \"All\" ? [] : value\r\n }\r\n\r\n openDropdown(event: MouseEvent) {\r\n event.stopPropagation();\r\n this.dropDown = !this.dropDown;\r\n }\r\n searchInstallationTable() {\r\n this.userList()\r\n }\r\n\r\n onPageChange(pageOffset: any) {\r\n this.offset = pageOffset;\r\n this.userList();\r\n \r\n }\r\n \r\n onPageSizeChange(pageSize: any) {\r\n this.limit = pageSize;\r\n this.userList();\r\n \r\n }\r\n sortData(value:any){\r\n this.sortColumName = value;\r\n this.sortBy *= -1;\r\n this.userList();\r\n }\r\n\r\n storeDetails(obj:any,email:any,userName:any){\r\n this.storeList = obj;\r\n this.Email = email;\r\n this.userName = userName;\r\n const modalRef = this.modalService.open(this.confirmationModal, { centered: true });\r\n }\r\n\r\n getBrandDetails(){\r\n this.service.getBrandDetails(this.clientId).pipe(takeUntil(this.destroy$)).subscribe({\r\n next:(res:any)=>{\r\n if(res&&res.code=='200'){\r\n const responseData = res?.data?.ticketConfigs;\r\n this.startTime = responseData?.infraReport?.start;\r\n this.endTime = responseData?.infraReport?.end;\r\n }else{\r\n\r\n }\r\n },\r\n error:(err)=>{\r\n \r\n },\r\n })\r\n }\r\n\r\n userList(){\r\n let data ={\r\n \"clientId\":this.clientId,\r\n \"role\":this.selectedRole.replace(' ','').toLowerCase(),\r\n \"searchValue\":this.searchInstallation,\r\n \"sortColumName\":this.sortColumName,\r\n \"sortBy\":this.sortBy,\r\n \"offset\":this.offset,\r\n \"limit\":this.limit\r\n }\r\n this.loading = true;\r\n this.noData = false;\r\n this.service.emailUserList(data).pipe(takeUntil(this.destroy$)).subscribe({\r\n next:(res:any)=>{\r\n if(res && res.code=='200' && res?.data?.result?.length){\r\n this.loading = false;\r\n this.noData = false;\r\n this.emailuserList = res.data;\r\n this.dummyEmailList = JSON.parse(JSON.stringify(this.emailuserList))\r\n \r\n }else{\r\n this.noData = true;\r\n this.loading = false;\r\n }\r\n },\r\n error:(err)=>{\r\n this.noData = true;\r\n this.loading = false;\r\n },\r\n })\r\n\r\n }\r\n\r\n updateUserList(){\r\n let data = {\r\n clientId:this.clientId,\r\n start: this.startTime,\r\n end: this.endTime,\r\n \"userList\": this.selectedItems,\r\n }\r\n this.service.saveInfraEmailConfig(data).pipe(takeUntil(this.destroy$)).subscribe({\r\n next:(res:any)=>{\r\n if(res && res.code=='200'){\r\n this.toast.getSuccessToast(res?.message);\r\n }\r\n },\r\n error:(err)=>{\r\n this.toast.getErrorToast(err?.error)\r\n },\r\n })\r\n\r\n}\r\n\r\n}\r\n\r\n","\r\n<div class=\"mb-5 py-3 px-5\">\r\n <ul class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap mb-10\">\r\n <li class=\"nav-item\" (click)=\"Selectedtabs('Infra Report')\">\r\n <a \r\n [ngClass]=\"SelectedTab === 'Infra Report' ? 'active' : ''\" class=\"nav-link cursor-pointer no-border me-3\">\r\n Infra Report\r\n </a>\r\n </li>\r\n <!-- <li class=\"nav-item disabled-list \" (click)=\"Selectedtabs('Data Report')\">\r\n <a \r\n [ngClass]=\"SelectedTab === 'Data Report' ? 'active' : ''\" class=\"nav-link cursor-pointer no-border me-3\">\r\n Data Report\r\n </a>\r\n </li> \r\n <li class=\"nav-item disabled-list \" (click)=\"Selectedtabs('Insight Report')\">\r\n <a [ngClass]=\"SelectedTab ==='Insight Report' ? 'active' :''\" class=\"nav-link cursor-pointer me-3\">Insight Report</a>\r\n </li>\r\n <li class=\"nav-item disabled-list \" (click)=\"Selectedtabs('All')\"><a [ngClass]=\"SelectedTab ==='All' ? 'active' :''\"\r\n class=\"nav-link cursor-pointer no-border me-3\">All</a>\r\n </li> -->\r\n </ul>\r\n\r\n <div class=\"w-100 d-flex align-items-center\">\r\n <span class=\"timingtext fw-bold\">Send Daily Report at</span> <span> <input type=\"time\" [(ngModel)]=\"startTime\" class=\"form-control w-auto mx-5\"></span><span class=\"timingtext fw-bold\">and</span><span><input type=\"time\" [(ngModel)]=\"endTime\" class=\"form-control w-auto mx-5\"></span>\r\n </div>\r\n</div>\r\n<div class=\"card\">\r\n <div class=\"card-header border-0\">\r\n <div class=\"card-title d-grid\">\r\n <div class=\"title fw-bold\">Users List</div>\r\n <div class=\"sub-title\">Select your required email & schedule the mail timing accordingly</div>\r\n </div>\r\n <div class=\"card-toolbar\"> \r\n <input type=\"text\" class=\"form-control w-auto ps-3 me-2\" placeholder=\"Search\"\r\n autocomplete=\"off\" [(ngModel)]=\"searchInstallation\"\r\n (change)=\"searchInstallationTable()\" />\r\n <div class=\"position-relative w-150px mt-5 mb-5 ms-2\">\r\n <button type=\"button\" (click)=\"openDropdown($event)\"\r\n class=\"btn btn-default w-100 btn-outline btn-outline-default rounded-3 text-nowrap border-val d-flex justify-content-between\">\r\n {{selectedRole ? selectedRole : dropdownItems[0]}}\r\n <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#667085\" stroke-width=\"1.66667\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </button>\r\n <div *ngIf=\"dropDown\" class=\"card py-1 w-100 position-absolute z-1 top-50px end-0\">\r\n <ul *ngFor=\"let item of dropdownItems\" class=\"list-unstyled\">\r\n <li [ngClass]=\"selectedRole === item ? 'active' : ''\"\r\n class=\"camera px-5 items fw-semibold cursor-pointer py-2\"\r\n (click)=\"selectItem(item)\">{{item}}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div *ngIf=\"!loading && !noData \">\r\n <div class=\"table-responsive\">\r\n <table class=\"table bottom-border text-nowrap\">\r\n <thead>\r\n <tr>\r\n <th>\r\n <div class=\"d-flex align-items-center\">\r\n <input type=\"checkbox\" id=\"selectAllCheckbox\" (change)=\"selectAll($event)\">\r\n <div class=\"d-flex align-items-center cursor-pointer\" (click)=\"sortData('userName')\">\r\n <span class=\"ms-2 me-1\">User</span>\r\n <span *ngIf=\"sortColumName === 'userName' && sortBy !== 1 || sortColumName !== 'userName' \">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"sortColumName === 'userName' && sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n </th>\r\n <th><div class=\"cursor-pointer\" (click)=\"sortData('email')\">Email\r\n <span *ngIf=\"sortColumName === 'email' && sortBy !== 1 || sortColumName !== 'email' \">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"sortColumName === 'email' && sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div></th>\r\n <th><div class=\"cursor-pointer\" (click)=\"sortData('assigned')\">Store Count\r\n <span *ngIf=\"sortColumName === 'assigned' && sortBy !== 1 || sortColumName !== 'assigned' \">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"sortColumName === 'assigned' && sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let item of emailuserList?.result\">\r\n <td>\r\n <div class=\"d-flex align-items-center\">\r\n <input type=\"checkbox\" class=\"me-5\" [(ngModel)]=\"item.infraAlert\" (change)=\"selectItems($event, item)\">\r\n <div>\r\n {{ item?.userName ? item?.userName : 'NA' }}\r\n </div>\r\n </div>\r\n </td>\r\n <td>\r\n <div>{{ item?.email ? item?.email :'NA' }}</div>\r\n </td>\r\n <td>\r\n <div class=\"text-title text-primary cursor-pointer text-decoration-underline mb-1\" (click)=\"storeDetails(item?.assignedValue,item?.userName,item?.email)\">{{ item?.assigned }}</div></td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <lib-pagination [itemsPerPage]=\"limit\" [currentPage]=\"offset\"\r\n [totalItems]=\"emailuserList?.count\" [paginationSizes]=\"[10,20,30]\" [pageSize]=\"limit\"\r\n (pageChange)=\"onPageChange($event)\" (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n <div>\r\n\r\n <div class=\"mt-10 d-flex justify-content-end\">\r\n <button class=\"btn btn-outline btn-default me-3\" (click)=\"cancelSelectedItems()\">\r\n Cancel\r\n </button>\r\n <button class=\"btn btn-primary btn-default\" (click)=\"updateSelectedItems()\">\r\n Save Chages\r\n </button>\r\n </div> \r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"loading\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div> \r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n\r\n<ng-template #confirmationModal let-modal>\r\n <div class=\"p-8 card-title\">\r\n <div class=\"title\">\r\n Stores List of the user\r\n </div>\r\n <div class=\"d-flex align-items-center mt-10 mb-10\">\r\n <div class=\"rounded-5 profile d-flex align-items-center justify-content-center fw-semibold\">{{Email.slice(0,2) | uppercase}}</div>\r\n <div class=\"ms-3\">\r\n <div class=\"title1 mb-1 fw-bold\">{{userName}}</div>\r\n <div class=\"text-sub\">{{Email}}</div>\r\n </div>\r\n </div>\r\n <div class=\"mt-5 border border-gray border-1 rounded-3 p-5\">\r\n <span *ngFor=\"let list of storeList\" class=\"badge badge-light-default me-3\">{{list?.storeName}}</span>\r\n </div>\r\n <div class=\"d-flex justify-content-between mt-10\">\r\n <button type=\"button\" class=\"btn btn-default btn-outline w-100\" (click)=\"modal.dismiss()\">Close</button>\r\n </div>\r\n </div>\r\n </ng-template>","import { ChangeDetectorRef, Component, OnInit } from '@angular/core';\r\nimport { ClientApiService } from '../../../services/client-api.service';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'lib-employee-training',\r\n templateUrl: './employee-training.component.html',\r\n styleUrls: ['./employee-training.component.scss']\r\n})\r\nexport class EmployeeTrainingComponent implements OnInit {\r\n clientId: string;\r\n selectedTrainingStart: number = 4;\r\n trainingstartstype: number[] = [1, 2, 3, 4, 5, 6, 7, 8, 9];\r\n trainingstartsdropDown: boolean = false;\r\n editMode: boolean = false;\r\n isEnable: boolean | undefined;\r\n clientInfo: any;\r\n\r\n constructor(private apiService: ClientApiService, private toast: ToastService, private cd: ChangeDetectorRef,) {\r\n this.apiService.clientData.subscribe((e) => {\r\n if (e) {\r\n this.clientId = e.clientId;\r\n this.getInitialValues(e.clientId);\r\n }\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.clientId) {\r\n this.getInitialValues(this.clientId);\r\n }\r\n }\r\n getInitialValues(clientId: string) {\r\n this.apiService.getTicketConfig(clientId).subscribe({\r\n next: (response) => {\r\n this.selectedTrainingStart = response.data.result.ticketConfigs.matConfig.configureDays;\r\n this.isEnable = response.data.result.ticketConfigs.matConfig.enabled;\r\n this.cd.detectChanges();\r\n // if (response && response.data.result && response.data.result.ticketConfigs && response.data.result.ticketConfigs.matConfig) {\r\n // this.selectedTrainingStart = response.data.result.ticketConfigs.matConfig.configureDays;\r\n // this.isEnable = response.data.result.ticketConfigs.matConfig.enabled;\r\n // this.cd.detectChanges();\r\n // } else {\r\n // this.cd.detectChanges();\r\n // console.log(\"Condition is false. Unable to proceed to step2.\");\r\n // }\r\n \r\n },\r\n error: (error) => {\r\n this.cd.detectChanges();\r\n console.error('Error fetching initial values:', error);\r\n }\r\n });\r\n }\r\n\r\n toggleEditMode() {\r\n this.editMode = !this.editMode;\r\n }\r\n\r\n trainingstartsDropdown(event: Event) {\r\n event.stopPropagation();\r\n this.trainingstartsdropDown = !this.trainingstartsdropDown;\r\n }\r\n\r\n selectTrainingStarts(trainingstart: number) {\r\n this.selectedTrainingStart = trainingstart;\r\n this.trainingstartsdropDown = false;\r\n }\r\n\r\n onCancel() {\r\n this.editMode = false;\r\n }\r\n\r\n onSubmit() {\r\n if (this.selectedTrainingStart !== undefined && this.isEnable !== undefined) {\r\n const formData = {\r\n enabled: this.isEnable,\r\n configureDays: this.selectedTrainingStart\r\n };\r\n\r\n this.apiService.updateTicketConfig(this.clientId, formData).subscribe({\r\n next: (response) => {\r\n console.log('Response:', response);\r\n this.toast.getSuccessToast(response.message);\r\n this.editMode = false;\r\n },\r\n error: (error) => {\r\n console.error('Error:', error);\r\n this.toast.getErrorToast(error.error?.error);\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","<div class=\"d-flex justify-content-end\">\r\n <button *ngIf=\"!editMode\" type=\"button\" class=\"btn btn-outline align-items-end\" (click)=\"toggleEditMode()\">\r\n <span class=\"me-2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2579_25125)\">\r\n <path\r\n d=\"M14.167 2.49993C14.3859 2.28106 14.6457 2.10744 14.9317 1.98899C15.2176 1.87054 15.5241 1.80957 15.8337 1.80957C16.1432 1.80957 16.4497 1.87054 16.7357 1.98899C17.0216 2.10744 17.2815 2.28106 17.5003 2.49993C17.7192 2.7188 17.8928 2.97863 18.0113 3.2646C18.1297 3.55057 18.1907 3.85706 18.1907 4.16659C18.1907 4.47612 18.1297 4.78262 18.0113 5.06859C17.8928 5.35455 17.7192 5.61439 17.5003 5.83326L6.25033 17.0833L1.66699 18.3333L2.91699 13.7499L14.167 2.49993Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2579_25125\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>Edit Details\r\n </button>\r\n</div>\r\n\r\n<div>\r\n <div class=\"col-md-12 col-lg-12 col-xl-12 col-xxl-12 mb-5\">\r\n <div class=\"d-flex align-items-center mb-2\">\r\n <div class=\"form-check form-switch\">\r\n <input [(ngModel)]=\"isEnable\" [disabled]=\"!editMode\" class=\"form-check-input\" type=\"checkbox\" id=\"isPasserByData\">\r\n </div>\r\n <label class=\"enable-label me-5\" for=\"isPasserByData\">Enable Training </label>\r\n </div>\r\n </div>\r\n <div class=\"py-2\">\r\n <label class=\"headingtext mb-3\">Training Starts after </label>\r\n <div class=\"position-relative selectwidth\">\r\n <div class=\"form-select dropselect levelviewtext\" id=\"currency\" (click)=\"trainingstartsDropdown($event)\"\r\n aria-label=\"Default select example\" [class.disabled]=\"!editMode\">\r\n {{ selectedTrainingStart }} days\r\n </div>\r\n <div *ngIf=\"trainingstartsdropDown\" class=\"card py-2 w-100 position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let trainingstart of trainingstartstype\" class=\"list-unstyled mb-2\">\r\n <li class=\"producttext px-5 py-4 items cursor-pointer\" (click)=\"selectTrainingStarts(trainingstart)\">\r\n {{ trainingstart }}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"d-flex justify-content-end mt-6\">\r\n <div data-kt-subscription-table-toolbar=\"base\"\r\n class=\"d-flex justify-content-end\">\r\n <button *ngIf=\"editMode\" type=\"submit\"\r\n class=\"btn-outline btn needhelp me-4\"\r\n (click)=\"toggleEditMode()\">Cancel</button>\r\n <button *ngIf=\"editMode\" type=\"button\"\r\n tabindex=\"0\" class=\"btn btn-primary px-4 ng-star-inserted\"\r\n (click)=\"onSubmit()\"\r\n ><span>Save Changes\r\n </span></button></div>\r\n</div>\r\n\r\n","import { Component, ElementRef, OnDestroy, ViewChild } from '@angular/core';\r\nimport { ClientApiService } from '../../services/client-api.service';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\n\r\n@Component({\r\n selector: 'lib-configurations',\r\n templateUrl: './configurations.component.html',\r\n styleUrl: './configurations.component.scss'\r\n})\r\nexport class ConfigurationsComponent implements OnDestroy {\r\n clientData: any;\r\n private readonly destroy$ = new Subject();\r\n ticketConfigPrevValues: any;\r\n featureConfigPrevValues: any;\r\n domainConfigPrevValues: any;\r\n userConfigPrevValues: any;\r\n @ViewChild('accordion', { static: true }) accordion: any;\r\n\r\n\r\n\r\n constructor(private clientApi: ClientApiService, private toaster: ToastService, public gs:GlobalStateService) {\r\n this.clientApi.clientFormData.pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if (e.type === 'submit') {\r\n this.submitForm(e)\r\n } else if (e.type === 'cancel') {\r\n this.resetForm(e)\r\n }\r\n })\r\n\r\n this.clientApi.clientData.pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if (e) {\r\n this.clientData = e\r\n this.populateTicketConfiguration(e)\r\n this.populateFeatureConfiguration(e)\r\n this.populateDomainDetailConfiguration(e)\r\n this.populateUserConfiguration(e)\r\n }\r\n })\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n openItem() {\r\n this.populateTicketConfiguration(this.clientData)\r\n this.populateFeatureConfiguration(this.clientData)\r\n this.populateDomainDetailConfiguration(this.clientData)\r\n this.populateUserConfiguration(this.clientData)\r\n }\r\n\r\n populateTicketConfiguration(data: any) {\r\n let obj = {\r\n installationReAssign: data?.ticketConfigs?.installationReAssign,\r\n sendToAdmin: data?.ticketConfigs?.alertSentTo?.admin,\r\n sendToUser: data?.ticketConfigs?.alertSentTo?.user,\r\n downTimeType: data?.ticketConfigs?.downTimeType,\r\n infraDownTime: data?.ticketConfigs?.infraDownTime,\r\n MinFilesCount: data?.ticketConfigs?.MinFilesCount,\r\n isRcaTicketAssign: data?.ticketConfigs?.isRcaTicketAssign,\r\n rcaTicketAssign: data?.ticketConfigs?.rcaTicketAssign,\r\n isRefreshAlert: data?.ticketConfigs?.isRefreshAlert,\r\n refreshAlert: data?.ticketConfigs?.refreshAlert,\r\n isStatusCheckAlert: data?.ticketConfigs?.isStatusCheckAlert,\r\n statusCheckAlert: data?.ticketConfigs?.statusCheckAlert,\r\n reTrain: data?.ticketConfigs?.reTrain,\r\n accuracyPercentage: data?.ticketConfigs?.accuracyPercentage,\r\n }\r\n\r\n this.ticketConfigPrevValues = obj\r\n\r\n this.clientApi.clientFormData.next({ value: { ...obj }, type: 'input', form: 'ticket-configuration' })\r\n }\r\n\r\n populateFeatureConfiguration(data: any) {\r\n let obj = {\r\n open: data?.featureConfigs?.open,\r\n close: data?.featureConfigs?.close,\r\n infraAlertCondition: data?.featureConfigs?.infraAlert?.condition,\r\n infraAlertValue: data?.featureConfigs?.infraAlert?.value,\r\n bouncedLimitCondition: data?.featureConfigs?.bouncedLimit?.condition,\r\n bouncedLimitValue: data?.featureConfigs?.bouncedLimit?.value,\r\n conversionCondition: data?.featureConfigs?.conversion?.condition,\r\n conversionValue: data?.featureConfigs?.conversion?.value,\r\n billableCalculation: data?.featureConfigs?.billableCalculation,\r\n missedOpportunityCalculation: data?.featureConfigs?.missedOpportunityCalculation,\r\n conversionCalculation: data?.featureConfigs?.conversionCalculation,\r\n isNormalized: data?.featureConfigs?.isNormalized,\r\n isPasserByData: data?.featureConfigs?.isPasserByData,\r\n isFootfallDirectory: data?.featureConfigs?.isFootfallDirectory,\r\n }\r\n\r\n this.featureConfigPrevValues = obj\r\n this.clientApi.clientFormData.next({ value: { ...obj }, type: 'input', form: 'feature-configuration' })\r\n }\r\n\r\n populateDomainDetailConfiguration(data: any) {\r\n let obj = {\r\n domainName: data?.ssoLogin?.domainName,\r\n isEnable: data?.ssoLogin?.isEnable,\r\n }\r\n\r\n this.domainConfigPrevValues = obj\r\n\r\n this.clientApi.clientFormData.next({ value: { ...obj }, type: 'input', form: 'domain-details' })\r\n }\r\n\r\n populateUserConfiguration(data: any) {\r\n let obj = {\r\n csm: data?.assignedUsers?.csm,\r\n ops: data?.assignedUsers?.ops,\r\n }\r\n\r\n this.userConfigPrevValues = obj\r\n\r\n this.clientApi.clientFormData.next({ value: { ...obj }, type: 'input', form: 'user-configuration' })\r\n }\r\n\r\n\r\n\r\n submitForm(e: any) {\r\n if (e.form === 'ticket-configuration') {\r\n const data = this.getDifferentEntries(this.ticketConfigPrevValues, e.value) \r\n this.clientApi.updateTicketConfiguration(this.clientData.clientId, data).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (e) => {\r\n this.toaster.getSuccessToast(e.data?.result)\r\n this.clientApi.clientFormData.next({ value: null, type: 'submitted', form: 'null' })\r\n },\r\n error: (e) => {\r\n this.toaster.getErrorToast(e.error?.error)\r\n this.populateTicketConfiguration(this.clientData)\r\n }\r\n })\r\n\r\n } else\r\n if (e.form === 'feature-configuration') {\r\n const data = this.getDifferentEntries(this.featureConfigPrevValues, e.value) \r\n this.clientApi.updateFeatureConfiguration(this.clientData.clientId, data).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (e) => {\r\n this.toaster.getSuccessToast(e.data?.result)\r\n this.clientApi.clientFormData.next({ value: null, type: 'submitted', form: 'null' })\r\n },\r\n error: (e) => {\r\n this.toaster.getErrorToast(e.error?.error)\r\n this.populateFeatureConfiguration(this.clientData)\r\n }\r\n })\r\n\r\n } else\r\n if (e.form === 'domain-details') {\r\n const data = this.getDifferentEntries(this.domainConfigPrevValues, e.value) \r\n this.clientApi.updateDomainDetailConfiguration(this.clientData.clientId, data).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (e) => {\r\n this.toaster.getSuccessToast(e.data?.result)\r\n this.clientApi.clientFormData.next({ value: null, type: 'submitted', form: 'null' })\r\n },\r\n error: (e) => {\r\n this.toaster.getErrorToast(e.error?.error)\r\n this.populateDomainDetailConfiguration(this.clientData)\r\n }\r\n })\r\n\r\n }\r\n\r\n }\r\n\r\n resetForm(e: any) {\r\n if (e.form === 'ticket-configuration') {\r\n this.populateTicketConfiguration(this.clientData)\r\n } else\r\n if (e.form === 'feature-configuration') {\r\n this.populateFeatureConfiguration(this.clientData)\r\n } else\r\n if (e.form === 'domain-details') {\r\n this.populateDomainDetailConfiguration(this.clientData)\r\n } else\r\n if (e.form === 'user-configuration') {\r\n this.populateUserConfiguration(this.clientData)\r\n }\r\n\r\n this.accordion.collapseAll()\r\n\r\n }\r\n\r\n getDifferentEntries(obj1: Record<string, any>, obj2: Record<string, any>): Record<string, any> {\r\n const differentEntries: Record<string, any> = {};\r\n for (const key in obj2) {\r\n if (obj1.hasOwnProperty(key)) {\r\n if (Array.isArray(obj1[key]) && Array.isArray(obj2[key])) {\r\n if (JSON.stringify(obj1[key]) !== JSON.stringify(obj2[key])) {\r\n differentEntries[key] = obj2[key];\r\n }\r\n } else if (obj1[key] !== obj2[key]) {\r\n differentEntries[key] = obj2[key];\r\n }\r\n }\r\n }\r\n return differentEntries;\r\n}\r\n\r\n\r\n\r\n}\r\n","<div class=\"row\">\r\n <div class=\"col-12\">\r\n <div ngbAccordion #accordion=\"ngbAccordion\" [closeOthers]=\"true\" [destroyOnHide]=\"true\" (show)=\"openItem()\" >\r\n <div *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \" class=\"settings-accordian-card mb-6 \" ngbAccordionItem>\r\n <div class=\"d-flex\" ngbAccordionHeader>\r\n <button class=\"mainheading\" ngbAccordionButton>\r\n <div class=\"header-row\">\r\n <span >Audit Configuration</span>\r\n <span class=\"divider\"></span>\r\n </div>\r\n </button>\r\n </div>\r\n <div ngbAccordionCollapse>\r\n <div ngbAccordionBody>\r\n <ng-template>\r\n <lib-audit-configuration></lib-audit-configuration>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \" class=\"settings-accordian-card mb-6\" ngbAccordionItem>\r\n <div class=\"d-flex\" ngbAccordionHeader>\r\n <button class=\"mainheading\" ngbAccordionButton>\r\n <div class=\"header-row\">\r\n <span >Employee Training</span>\r\n <span class=\"divider\"></span>\r\n </div>\r\n </button>\r\n </div>\r\n \r\n <div ngbAccordionCollapse>\r\n <div ngbAccordionBody>\r\n <ng-template>\r\n <lib-employee-training></lib-employee-training>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \" class=\"settings-accordian-card mb-6\" ngbAccordionItem>\r\n <div class=\"d-flex\" ngbAccordionHeader>\r\n <button class=\"mainheading\" ngbAccordionButton>\r\n <div class=\"header-row\">\r\n <span >Ticket Configuration</span>\r\n <span class=\"divider\"></span>\r\n </div>\r\n </button>\r\n </div>\r\n <div ngbAccordionCollapse>\r\n <div ngbAccordionBody>\r\n <ng-template>\r\n <lib-ticket-configuration></lib-ticket-configuration>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \" class=\"settings-accordian-card mb-6\" ngbAccordionItem>\r\n <div class=\"d-flex\" ngbAccordionHeader>\r\n <button class=\"mainheading\" ngbAccordionButton>\r\n <div class=\"header-row\">\r\n <span >Email Configuration</span>\r\n <span class=\"divider\"></span>\r\n </div>\r\n </button>\r\n </div>\r\n <div ngbAccordionCollapse>\r\n <div ngbAccordionBody>\r\n <ng-template>\r\n <lib-email-configuration></lib-email-configuration>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \" class=\"settings-accordian-card mb-6\" ngbAccordionItem>\r\n <div class=\"d-flex\" ngbAccordionHeader>\r\n <button class=\"mainheading\" ngbAccordionButton>\r\n <div class=\"header-row\">\r\n <span >Report Configuration</span>\r\n <span class=\"divider\"></span>\r\n </div>\r\n </button>\r\n </div>\r\n <div ngbAccordionCollapse>\r\n <div ngbAccordionBody>\r\n <ng-template>\r\n <lib-report-configuration></lib-report-configuration>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \" class=\"settings-accordian-card mb-6\" ngbAccordionItem>\r\n <div class=\"d-flex\" ngbAccordionHeader>\r\n <button class=\"mainheading\" ngbAccordionButton>\r\n <div class=\"header-row\">\r\n <span >User Configuration</span>\r\n <span class=\"divider\"></span>\r\n </div>\r\n </button>\r\n </div>\r\n <div ngbAccordionCollapse>\r\n <div ngbAccordionBody>\r\n <ng-template>\r\n <lib-user-configuration></lib-user-configuration>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"settings-accordian-card mb-6\" ngbAccordionItem>\r\n <div class=\"d-flex\" ngbAccordionHeader>\r\n <button class=\"mainheading\" ngbAccordionButton>\r\n <div class=\"header-row\">\r\n <span >Domain Details</span>\r\n <span class=\"divider\"></span>\r\n </div>\r\n </button>\r\n </div>\r\n <div ngbAccordionCollapse>\r\n <div ngbAccordionBody>\r\n <ng-template>\r\n <lib-domain-details></lib-domain-details> \r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"settings-accordian-card mb-6\" ngbAccordionItem>\r\n <div class=\"d-flex\" ngbAccordionHeader>\r\n <button class=\"mainheading\" ngbAccordionButton>\r\n <div class=\"header-row\">\r\n <span >Feature Configuration</span>\r\n <span class=\"divider\"></span>\r\n </div>\r\n </button>\r\n </div>\r\n <div ngbAccordionCollapse>\r\n <div ngbAccordionBody>\r\n <ng-template>\r\n <lib-feature-configuration></lib-feature-configuration>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>","import { ChangeDetectorRef, Component, ElementRef, OnDestroy, ViewChild } from '@angular/core';\r\nimport { FormGroup, FormBuilder } from '@angular/forms';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { ClientApiService } from '../../services/client-api.service';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\n\r\n@Component({\r\n selector: 'lib-documents',\r\n templateUrl: './documents.component.html',\r\n styleUrl: './documents.component.scss'\r\n})\r\nexport class DocumentsComponent implements OnDestroy {\r\n\r\n documentsForm: FormGroup\r\n clientData: any;\r\n @ViewChild('gstFormInput') gstFormInput: ElementRef<HTMLElement>;\r\n @ViewChild('addressProofFormInput') addressProofFormInput: ElementRef<HTMLElement>;\r\n @ViewChild('panFormInput') panFormInput: ElementRef<HTMLElement>;\r\n @ViewChild('cinFormInput') cinFormInput: ElementRef<HTMLElement>;\r\n\r\n private readonly destroy$ = new Subject();\r\n gstFile: File | null;\r\n addressFile: File | null;\r\n panFile: File | null;\r\n cinFile: File | null;\r\n docPrevValues: any;\r\n\r\n\r\n\r\n constructor(private fb: FormBuilder, private apiService: ClientApiService, private cd: ChangeDetectorRef, private toaster: ToastService, public gs: GlobalStateService) {\r\n this.initForm()\r\n this.apiService.clientData.pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if (e) {\r\n this.clientData = e\r\n this.patchForm(e)\r\n }\r\n })\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n\r\n\r\n initForm() {\r\n this.documentsForm = this.fb.group({\r\n addressDoc: [''],\r\n gstNumber: [''],\r\n gstDoc: [''],\r\n panNumber: [''],\r\n panDoc: [''],\r\n cinNumber: [''],\r\n cinDoc: [''],\r\n });\r\n this.documentsForm.disable()\r\n }\r\n\r\n patchForm(data: any) {\r\n this.documentsForm.patchValue(\r\n {\r\n gstNumber: data?.document?.gst?.number,\r\n panNumber: data?.document?.pan?.number,\r\n cinNumber: data?.document?.cin?.number,\r\n }\r\n )\r\n\r\n this.docPrevValues = {\r\n gstNumber: data?.document?.gst?.number,\r\n panNumber: data?.document?.pan?.number,\r\n cinNumber: data?.document?.cin?.number,\r\n addressDoc: data?.document?.contact,\r\n gstDoc: data?.document?.cin?.path,\r\n panDoc: data?.document?.cin?.path,\r\n cinDoc: data?.document?.cin?.path,\r\n }\r\n this.cd.detectChanges()\r\n }\r\n\r\n triggerGstInput(type: string) {\r\n if (type === 'gst') {\r\n this.gstFormInput.nativeElement.click()\r\n } else\r\n if (type === 'address') {\r\n this.addressProofFormInput.nativeElement.click()\r\n } else\r\n if (type === 'pan') {\r\n this.panFormInput.nativeElement.click()\r\n } else\r\n if (type === 'cin') {\r\n this.cinFormInput.nativeElement.click()\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n onFileSelect(event: any, type: string) {\r\n if (!event.target.files || !event.target.files[0]) {\r\n return\r\n }\r\n if (type === 'gst') {\r\n const file: File = event.target.files[0];\r\n this.gstFile = file\r\n } else\r\n if (type === 'address') {\r\n const file: File = event.target.files[0];\r\n this.addressFile = file\r\n } else\r\n if (type === 'pan') {\r\n const file: File = event.target.files[0];\r\n this.panFile = file\r\n } else\r\n if (type === 'cin') {\r\n const file: File = event.target.files[0];\r\n this.cinFile = file\r\n }\r\n\r\n }\r\n\r\n\r\n onCancel() {\r\n this.gstFile = null;\r\n this.addressFile = null;\r\n this.panFile = null;\r\n this.cinFile = null;\r\n this.documentsForm.disable()\r\n this.patchForm(this.clientData)\r\n }\r\n\r\n onSubmit() {\r\n if (this.gstFile) {\r\n this.documentsForm.value.gstDoc = this.gstFile\r\n }\r\n if (this.addressFile) {\r\n this.documentsForm.value.addressDoc = this.addressFile\r\n }\r\n if (this.panFile) {\r\n this.documentsForm.value.panDoc = this.panFile\r\n }\r\n if (this.cinFile) {\r\n this.documentsForm.value.cinDoc = this.cinFile\r\n }\r\n const data = this.getDifferentEntries(this.docPrevValues, this.documentsForm.value)\r\n \r\n const formData = this.jsonToFormData(data)\r\n\r\n this.apiService.updateDocuments(this.clientData.clientId, formData).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (e) => {\r\n this.toaster.getSuccessToast(e.data?.result)\r\n this.apiService.clientFormData.next({ value: null, type: 'submitted', form: 'null' })\r\n },\r\n error: (e) => {\r\n this.toaster.getErrorToast(e.error?.error)\r\n this.patchForm(this.clientData)\r\n }\r\n })\r\n }\r\n\r\n getDifferentEntries(obj1: Record<string, any>, obj2: Record<string, any>): Record<string, any> {\r\n const differentEntries: Record<string, any> = {};\r\n for (const key in obj2) {\r\n if (obj1.hasOwnProperty(key) && obj1[key] !== obj2[key] && obj2[key]) {\r\n differentEntries[key] = obj2[key];\r\n }\r\n }\r\n return differentEntries;\r\n }\r\n\r\n jsonToFormData(jsonData: Record<string, any>): FormData {\r\n\r\n const formData = new FormData();\r\n for (const key in jsonData) {\r\n if (jsonData.hasOwnProperty(key)) {\r\n const value = jsonData[key];\r\n formData.append(key, value);\r\n }\r\n }\r\n\r\n return formData;\r\n }\r\n\r\n}\r\n","<div class=\"settings-accordian-card\">\r\n <form [formGroup]=\"documentsForm\">\r\n <div class=\"row\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_documents_isEdit \">\r\n <div class=\"col-12 mb-5\">\r\n <div class=\" d-flex justify-content-between\">\r\n <div class=\"header\">Upload Your Documents</div>\r\n <button *ngIf=\"documentsForm.disabled\"\r\n (click)=\"documentsForm.disabled ? documentsForm.enable() : documentsForm.disable()\"\r\n type=\"button\" class=\"btn btn-outline align-items-end\"><span class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <g clip-path=\"url(#clip0_2579_25125)\">\r\n <path\r\n d=\"M14.167 2.49993C14.3859 2.28106 14.6457 2.10744 14.9317 1.98899C15.2176 1.87054 15.5241 1.80957 15.8337 1.80957C16.1432 1.80957 16.4497 1.87054 16.7357 1.98899C17.0216 2.10744 17.2815 2.28106 17.5003 2.49993C17.7192 2.7188 17.8928 2.97863 18.0113 3.2646C18.1297 3.55057 18.1907 3.85706 18.1907 4.16659C18.1907 4.47612 18.1297 4.78262 18.0113 5.06859C17.8928 5.35455 17.7192 5.61439 17.5003 5.83326L6.25033 17.0833L1.66699 18.3333L2.91699 13.7499L14.167 2.49993Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2579_25125\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>Edit Details</button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"gstNumber\" class=\"form-label\">Address Proof <span class=\"alert-required\"></span></label>\r\n <div class=\"input-group \">\r\n <input readonly type=\"text\" class=\"form-control\" placeholder=\"\"\r\n aria-label=\"Example text with button addon\" aria-describedby=\"button-addon1\" id=\"gstNumber\">\r\n <button (click)=\"triggerGstInput('address')\" [disabled]=\"documentsForm.disabled\"\r\n class=\"btn btn-outline upload-btn\" type=\"button\" id=\"button-addon1\">\r\n <span class=\"me-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n Upload</button>\r\n </div>\r\n <input (change)=\"onFileSelect($event, 'address')\" accept=\".pdf\" class=\"d-none\" #addressProofFormInput type=\"file\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_documents_isDownload \">\r\n <a *ngIf=\"clientData?.document?.addressProof?.path && !addressFile\"\r\n [href]=\"clientData?.document?.addressProof?.path\" target=\"_blank\" class=\"mt-3\">\r\n <span class=\"uploaded-doc-text me-2\">Incorporate Certificate</span>\r\n </a>\r\n </ng-container>\r\n <span *ngIf=\"addressFile\" class=\"mt-3 d-flex align-items-center\">\r\n <span class=\"uploaded-doc-text me-2\">{{addressFile.name ? addressFile.name : ''}}</span>\r\n <svg class=\"cursor-pointer\" (click)=\"addressFile = null\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M12.5003 7.50001L7.50033 12.5M7.50033 7.50001L12.5003 12.5M18.3337 10C18.3337 14.6024 14.6027 18.3333 10.0003 18.3333C5.39795 18.3333 1.66699 14.6024 1.66699 10C1.66699 5.39763 5.39795 1.66667 10.0003 1.66667C14.6027 1.66667 18.3337 5.39763 18.3337 10Z\" stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"gstNumber\" class=\"form-label\">GST Number <span class=\"alert-required\"></span></label>\r\n <div class=\"input-group \">\r\n <input formControlName=\"gstNumber\" type=\"text\" class=\"form-control\" placeholder=\"\"\r\n aria-label=\"Example text with button addon\" aria-describedby=\"button-addon1\" id=\"gstNumber\">\r\n <button (click)=\"triggerGstInput('gst')\" [disabled]=\"documentsForm.disabled\"\r\n class=\"btn btn-outline upload-btn\" type=\"button\" id=\"button-addon1\">\r\n <span class=\"me-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n Upload</button>\r\n </div>\r\n <input (change)=\"onFileSelect($event, 'gst')\" accept=\".pdf\" class=\"d-none\" #gstFormInput type=\"file\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_documents_isDownload \" >\r\n <a *ngIf=\"clientData?.document?.gst?.path && !gstFile\" [href]=\"clientData?.document?.gst?.path\" target=\"_blank\"\r\n class=\"mt-3\">\r\n <span class=\"uploaded-doc-text me-2\">GST Certificate</span>\r\n </a> \r\n </ng-container>\r\n <span *ngIf=\"gstFile\" class=\"mt-3 d-flex align-items-center\">\r\n <span class=\"uploaded-doc-text me-2\">{{gstFile.name ? gstFile.name : ''}}</span>\r\n <svg class=\"cursor-pointer\" (click)=\"gstFile = null\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M12.5003 7.50001L7.50033 12.5M7.50033 7.50001L12.5003 12.5M18.3337 10C18.3337 14.6024 14.6027 18.3333 10.0003 18.3333C5.39795 18.3333 1.66699 14.6024 1.66699 10C1.66699 5.39763 5.39795 1.66667 10.0003 1.66667C14.6027 1.66667 18.3337 5.39763 18.3337 10Z\" stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n \r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"gstNumber\" class=\"form-label\">Pan Number <span class=\"alert-required\"></span></label>\r\n <div class=\"input-group \">\r\n <input formControlName=\"panNumber\" type=\"text\" class=\"form-control\" placeholder=\"\"\r\n aria-label=\"Example text with button addon\" aria-describedby=\"button-addon1\" id=\"gstNumber\">\r\n <button (click)=\"triggerGstInput('pan')\" [disabled]=\"documentsForm.disabled\"\r\n class=\"btn btn-outline upload-btn\" type=\"button\" id=\"button-addon1\">\r\n <span class=\"me-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n Upload</button>\r\n </div>\r\n <input (change)=\"onFileSelect($event, 'pan')\" accept=\".pdf\" class=\"d-none\" #panFormInput type=\"file\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_documents_isDownload \" >\r\n <a *ngIf=\"clientData?.document?.pan?.path && !panFile\" [href]=\"clientData?.document?.pan?.path\" target=\"_blank\"\r\n class=\"mt-3\">\r\n <span class=\"uploaded-doc-text me-2\">PAN Certificate</span>\r\n </a> \r\n </ng-container>\r\n <span *ngIf=\"panFile\" class=\"mt-3 d-flex align-items-center\">\r\n <span class=\"uploaded-doc-text me-2\">{{panFile.name ? panFile.name : ''}}</span>\r\n <svg class=\"cursor-pointer\" (click)=\"panFile = null\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M12.5003 7.50001L7.50033 12.5M7.50033 7.50001L12.5003 12.5M18.3337 10C18.3337 14.6024 14.6027 18.3333 10.0003 18.3333C5.39795 18.3333 1.66699 14.6024 1.66699 10C1.66699 5.39763 5.39795 1.66667 10.0003 1.66667C14.6027 1.66667 18.3337 5.39763 18.3337 10Z\" stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n \r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"gstNumber\" class=\"form-label\">CIN Number <span class=\"alert-required\"></span></label>\r\n <div class=\"input-group \">\r\n <input formControlName=\"cinNumber\" type=\"text\" class=\"form-control\" placeholder=\"\"\r\n aria-label=\"Example text with button addon\" aria-describedby=\"button-addon1\" id=\"gstNumber\">\r\n <button (click)=\"triggerGstInput('cin')\" [disabled]=\"documentsForm.disabled\"\r\n class=\"btn btn-outline upload-btn\" type=\"button\" id=\"button-addon1\">\r\n <span class=\"me-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n Upload</button>\r\n </div>\r\n <input (change)=\"onFileSelect($event, 'cin')\" accept=\".pdf\" class=\"d-none\" #cinFormInput type=\"file\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_documents_isDownload \" >\r\n <a *ngIf=\"clientData?.document?.cin?.path && !cinFile\" [href]=\"clientData?.document?.cin?.path\" target=\"_blank\"\r\n class=\"mt-3\">\r\n <span class=\"uploaded-doc-text me-2\">CIN Certificate</span>\r\n </a> \r\n </ng-container>\r\n <span *ngIf=\"cinFile\" class=\"mt-3 d-flex align-items-center\">\r\n <span class=\"uploaded-doc-text me-2\">{{cinFile.name ? cinFile.name : ''}}</span>\r\n <svg class=\"cursor-pointer\" (click)=\"cinFile = null\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M12.5003 7.50001L7.50033 12.5M7.50033 7.50001L12.5003 12.5M18.3337 10C18.3337 14.6024 14.6027 18.3333 10.0003 18.3333C5.39795 18.3333 1.66699 14.6024 1.66699 10C1.66699 5.39763 5.39795 1.66667 10.0003 1.66667C14.6027 1.66667 18.3337 5.39763 18.3337 10Z\" stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n \r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"invoiceAuthorityName\" class=\"form-label\">Contract Agreement <span\r\n class=\"alert-required\"></span></label>\r\n\r\n\r\n <div class=\"file-open-input\">\r\n <svg class=\"l-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"26\" viewBox=\"0 0 26 26\"\r\n fill=\"none\">\r\n <path\r\n d=\"M3.24998 0H17.0568L24.3749 7.28977V24.375C24.3749 25.2728 23.647 26 22.75 26H3.24998C2.35296 26 1.625 25.2728 1.625 24.375V1.62498C1.625 0.727203 2.35304 0 3.24998 0Z\"\r\n fill=\"#E2574C\" />\r\n <path\r\n d=\"M24.3514 7.31187H18.6875C17.7905 7.31187 17.0625 6.58391 17.0625 5.68689V0.015625L24.3514 7.31187Z\"\r\n fill=\"#B53629\" />\r\n <path\r\n d=\"M18.2793 12.318C18.5515 12.318 18.6848 12.0808 18.6848 11.8508C18.6848 11.6127 18.5458 11.3828 18.2793 11.3828H16.7291C16.426 11.3828 16.257 11.6338 16.257 11.9109V15.7207C16.257 16.0604 16.4504 16.2489 16.712 16.2489C16.972 16.2489 17.1662 16.0604 17.1662 15.7207V14.6751H18.1039C18.3947 14.6751 18.5402 14.437 18.5402 14.2006C18.5402 13.9691 18.3947 13.739 18.1039 13.739H17.1662V12.318H18.2793ZM13.0395 11.3828H11.9052C11.5973 11.3828 11.3787 11.5941 11.3787 11.9077V15.724C11.3787 16.1132 11.6931 16.2351 11.9182 16.2351H13.1085C14.5174 16.2351 15.4477 15.308 15.4477 13.8772C15.4469 12.3643 14.5711 11.3828 13.0395 11.3828ZM13.094 15.2942H12.4025V12.3237H13.0257C13.9691 12.3237 14.3793 12.9567 14.3793 13.8301C14.3793 14.6475 13.9763 15.2942 13.094 15.2942ZM8.93882 11.3828H7.81515C7.49745 11.3828 7.32031 11.5924 7.32031 11.9109V15.7207C7.32031 16.0604 7.52342 16.2489 7.7964 16.2489C8.06937 16.2489 8.27249 16.0604 8.27249 15.7207V14.6084H8.97691C9.84627 14.6084 10.5637 13.9925 10.5637 13.0021C10.5638 12.0328 9.87158 11.3828 8.93882 11.3828ZM8.92016 13.7147H8.27257V12.2774H8.92016C9.31991 12.2774 9.57422 12.5894 9.57422 12.9964C9.57338 13.4028 9.31991 13.7147 8.92016 13.7147Z\"\r\n fill=\"white\" />\r\n </svg>\r\n <input type=\"type\" value=\"Contract Agreement.pdf\" readonly class=\"form-control\"\r\n id=\"invoiceAuthorityName\" autocomplete=\"off\">\r\n <a target=\"_blank\" class=\"r-icon\" [href]=\"clientData?.document?.contract\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M0.833984 10C0.833984 10 4.16732 3.33337 10.0007 3.33337C15.834 3.33337 19.1673 10 19.1673 10C19.1673 10 15.834 16.6667 10.0007 16.6667C4.16732 16.6667 0.833984 10 0.833984 10Z\"\r\n stroke=\"#344054\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M10.0007 12.5C11.3814 12.5 12.5006 11.3808 12.5006 10C12.5006 8.61933 11.3814 7.50004 10.0007 7.50004C8.61994 7.50004 7.50065 8.61933 7.50065 10C7.50065 11.3808 8.61994 12.5 10.0007 12.5Z\"\r\n stroke=\"#344054\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </a>\r\n\r\n </div>\r\n\r\n\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"invoiceAuthorityName\" class=\"form-label\">T&C Agreement <span\r\n class=\"alert-required\"></span></label>\r\n <div class=\"file-open-input\">\r\n <svg class=\"l-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"26\" viewBox=\"0 0 26 26\"\r\n fill=\"none\">\r\n <path\r\n d=\"M3.24998 0H17.0568L24.3749 7.28977V24.375C24.3749 25.2728 23.647 26 22.75 26H3.24998C2.35296 26 1.625 25.2728 1.625 24.375V1.62498C1.625 0.727203 2.35304 0 3.24998 0Z\"\r\n fill=\"#E2574C\" />\r\n <path\r\n d=\"M24.3514 7.31187H18.6875C17.7905 7.31187 17.0625 6.58391 17.0625 5.68689V0.015625L24.3514 7.31187Z\"\r\n fill=\"#B53629\" />\r\n <path\r\n d=\"M18.2793 12.318C18.5515 12.318 18.6848 12.0808 18.6848 11.8508C18.6848 11.6127 18.5458 11.3828 18.2793 11.3828H16.7291C16.426 11.3828 16.257 11.6338 16.257 11.9109V15.7207C16.257 16.0604 16.4504 16.2489 16.712 16.2489C16.972 16.2489 17.1662 16.0604 17.1662 15.7207V14.6751H18.1039C18.3947 14.6751 18.5402 14.437 18.5402 14.2006C18.5402 13.9691 18.3947 13.739 18.1039 13.739H17.1662V12.318H18.2793ZM13.0395 11.3828H11.9052C11.5973 11.3828 11.3787 11.5941 11.3787 11.9077V15.724C11.3787 16.1132 11.6931 16.2351 11.9182 16.2351H13.1085C14.5174 16.2351 15.4477 15.308 15.4477 13.8772C15.4469 12.3643 14.5711 11.3828 13.0395 11.3828ZM13.094 15.2942H12.4025V12.3237H13.0257C13.9691 12.3237 14.3793 12.9567 14.3793 13.8301C14.3793 14.6475 13.9763 15.2942 13.094 15.2942ZM8.93882 11.3828H7.81515C7.49745 11.3828 7.32031 11.5924 7.32031 11.9109V15.7207C7.32031 16.0604 7.52342 16.2489 7.7964 16.2489C8.06937 16.2489 8.27249 16.0604 8.27249 15.7207V14.6084H8.97691C9.84627 14.6084 10.5637 13.9925 10.5637 13.0021C10.5638 12.0328 9.87158 11.3828 8.93882 11.3828ZM8.92016 13.7147H8.27257V12.2774H8.92016C9.31991 12.2774 9.57422 12.5894 9.57422 12.9964C9.57338 13.4028 9.31991 13.7147 8.92016 13.7147Z\"\r\n fill=\"white\" />\r\n </svg>\r\n <input type=\"type\" value=\"T & C Agreement.pdf\" readonly class=\"form-control\"\r\n id=\"invoiceAuthorityName\" autocomplete=\"off\">\r\n <a target=\"_blank\" class=\"r-icon\" [href]=\"clientData?.document?.termsAndconditions\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M0.833984 10C0.833984 10 4.16732 3.33337 10.0007 3.33337C15.834 3.33337 19.1673 10 19.1673 10C19.1673 10 15.834 16.6667 10.0007 16.6667C4.16732 16.6667 0.833984 10 0.833984 10Z\"\r\n stroke=\"#344054\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M10.0007 12.5C11.3814 12.5 12.5006 11.3808 12.5006 10C12.5006 8.61933 11.3814 7.50004 10.0007 7.50004C8.61994 7.50004 7.50065 8.61933 7.50065 10C7.50065 11.3808 8.61994 12.5 10.0007 12.5Z\"\r\n stroke=\"#344054\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </a>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"documentsForm.enabled\">\r\n <div class=\"mb-5 w-100 footer-seperator\"></div>\r\n <div class=\"d-flex justify-content-end\">\r\n <a type=\"button\" class=\"btn btn-outline me-4\" (click)=\"onCancel()\">Cancel</a>\r\n <a type=\"submit\" class=\"btn btn-primary px-4 \" (click)=\"onSubmit()\"><span>Save Changes</span></a>\r\n </div>\r\n </div>\r\n\r\n </form>\r\n\r\n</div>","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ClientApiService } from '../../../services/client-api.service';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\n\r\n@Component({\r\n selector: 'lib-edit-spoc',\r\n templateUrl: './edit-spoc.component.html',\r\n styleUrl: './edit-spoc.component.scss'\r\n})\r\nexport class EditSpocComponent implements OnInit, OnDestroy {\r\n\r\n editSpocForm: FormGroup\r\n @Input() spocId:string\r\n @Input() storeId:string\r\n private readonly destroy$ = new Subject();\r\n\r\n\r\n\r\n constructor(private fb: FormBuilder, private apiService: ClientApiService, private activeModal: NgbActiveModal,\r\n private toaster:ToastService\r\n ) {\r\n this.initForm()\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n ngOnInit(){\r\n this.getSpocData()\r\n }\r\n\r\n getSpocData(){\r\n this.apiService.getSpocDetails(this.storeId, this.spocId).pipe(takeUntil(this.destroy$)).subscribe({\r\n next:(e)=>{\r\n if(e){\r\n this.patchForm(e.data)\r\n }\r\n },\r\n error:()=>{\r\n\r\n }\r\n })\r\n }\r\n\r\n patchForm(data:any){\r\n this.editSpocForm.patchValue({\r\n name: data?.name,\r\n email: data?.email,\r\n contact: data?.contact,\r\n designation: data?.designation,\r\n })\r\n }\r\n\r\n\r\n initForm() {\r\n this.editSpocForm = this.fb.group({\r\n name: ['', Validators.compose([\r\n Validators.required,\r\n ])],\r\n email: ['', Validators.compose([\r\n Validators.required,\r\n ])],\r\n contact: ['', Validators.compose([\r\n Validators.required,\r\n ])],\r\n designation:[''],\r\n });\r\n }\r\n\r\n\r\n onCancel() {\r\n this.activeModal.close();\r\n }\r\n \r\n\r\n onSubmit() {\r\n let data = {\r\n spocDetail:{...this.editSpocForm.value, _id:this.spocId}\r\n }\r\n this.apiService.updateSpocDetails(this.storeId, data).pipe(takeUntil(this.destroy$)).subscribe({\r\n next:(e)=>{\r\n if(e){\r\n this.activeModal.close({type:'edit'})\r\n }\r\n },\r\n error:(e)=>{\r\n this.toaster.getErrorToast(e.error?.error)\r\n }\r\n })\r\n }\r\n\r\n}\r\n","<form [formGroup]=\"editSpocForm\">\r\n <div class=\"row\">\r\n <div class=\"col-12 mb-5\">\r\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#DAF1FF\"/>\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#EAF8FF\" stroke-width=\"8\"/>\r\n <path d=\"M36 37V35C36 33.9391 35.5786 32.9217 34.8284 32.1716C34.0783 31.4214 33.0609 31 32 31H24C22.9391 31 21.9217 31.4214 21.1716 32.1716C20.4214 32.9217 20 33.9391 20 35V37M32 23C32 25.2091 30.2091 27 28 27C25.7909 27 24 25.2091 24 23C24 20.7909 25.7909 19 28 19C30.2091 19 32 20.7909 32 23Z\" stroke=\"#00A3FF\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </div>\r\n <div class=\"col-12 mb-10 d-flex align-items-center justify-content-between\">\r\n <div>\r\n <div class=\"header mb-3\">Contact Details</div>\r\n <div class=\"sub-header\">View and edit the contact details</div>\r\n </div>\r\n <div>\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g filter=\"url(#filter0_d_5809_34049)\">\r\n <rect x=\"2\" y=\"1\" width=\"36\" height=\"36\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"35\" height=\"35\" rx=\"7.5\" stroke=\"#EAECF0\" />\r\n <g clip-path=\"url(#clip0_5809_34049)\">\r\n <path\r\n d=\"M19.167 12.3332H13.3337C12.8916 12.3332 12.4677 12.5088 12.1551 12.8214C11.8426 13.1339 11.667 13.5578 11.667 13.9999V25.6665C11.667 26.1086 11.8426 26.5325 12.1551 26.845C12.4677 27.1576 12.8916 27.3332 13.3337 27.3332H25.0003C25.4424 27.3332 25.8663 27.1576 26.1788 26.845C26.4914 26.5325 26.667 26.1086 26.667 25.6665V19.8332M25.417 11.0832C25.7485 10.7517 26.1982 10.5654 26.667 10.5654C27.1358 10.5654 27.5855 10.7517 27.917 11.0832C28.2485 11.4147 28.4348 11.8644 28.4348 12.3332C28.4348 12.802 28.2485 13.2517 27.917 13.5832L20.0003 21.4999L16.667 22.3332L17.5003 18.9999L25.417 11.0832Z\"\r\n stroke=\"#D0D5DD\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_5809_34049\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_5809_34049\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_5809_34049\"\r\n result=\"shape\" />\r\n </filter>\r\n <clipPath id=\"clip0_5809_34049\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" transform=\"translate(10 9)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </div>\r\n\r\n </div>\r\n <div class=\"col-12 mb-5\">\r\n <label for=\"name\" class=\"form-label\">SPOC Name<span class=\"alert-required\"></span></label>\r\n <input formControlName=\"name\" type=\"text\" class=\"form-control disabled-input\" id=\"name\" autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-12 mb-5\">\r\n <label for=\"email\" class=\"form-label\">SPOC Email<span class=\"alert-required\"></span></label>\r\n <input formControlName=\"email\" type=\"text\" class=\"form-control disabled-input\" id=\"email\"\r\n autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-12 mb-5\">\r\n <label for=\"contact\" class=\"form-label\">Contact Number<span class=\"alert-required\"></span></label>\r\n <input formControlName=\"contact\" type=\"text\" class=\"form-control disabled-input\" id=\"contact\"\r\n autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-12 mb-5\">\r\n <label for=\"designation\" class=\"form-label\">Designation (optional)<span\r\n class=\"alert-required\"></span></label>\r\n <input formControlName=\"designation\" type=\"text\" class=\"form-control disabled-input\" id=\"designation\"\r\n autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-12 mt-10\">\r\n <div class=\"row\">\r\n <div class=\"col \">\r\n <button type=\"button\" class=\"btn btn-outline w-100 \" (click)=\"onCancel()\">Cancel</button>\r\n </div>\r\n <div class=\"col\">\r\n <button [disabled]=\"editSpocForm.invalid\" type=\"button\" class=\"btn btn-primary w-100\"\r\n (click)=\"onSubmit()\"><span>Update</span></button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</form>","import { Component, Input, OnDestroy } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ClientApiService } from '../../../services/client-api.service';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\n\r\n@Component({\r\n selector: 'lib-detele-spoc',\r\n templateUrl: './detele-spoc.component.html',\r\n styleUrl: './detele-spoc.component.scss'\r\n})\r\nexport class DeteleSpocComponent implements OnDestroy {\r\n @Input() spocId:string\r\n @Input() storeId:string\r\n private readonly destroy$ = new Subject();\r\n\r\n\r\n constructor(private apiService: ClientApiService, private activeModal: NgbActiveModal,private toast:ToastService) {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n onCancel() {\r\n this.activeModal.close();\r\n }\r\n \r\n\r\n onSubmit() {\r\n this.apiService.deleteSpocDetails(this.storeId, this.spocId).pipe(takeUntil(this.destroy$)).subscribe({\r\n next:(e)=>{\r\n if(e){\r\n this.activeModal.close({type:'delete'})\r\n }\r\n },\r\n error:(err) =>{\r\n this.activeModal.close();\r\n if(err?.error?.error?.error)\r\n this.toast.getErrorToast(err?.error?.error?.error);\r\n else\r\n this.toast.getErrorToast('Something went wrong');\r\n\r\n }\r\n })\r\n }\r\n}\r\n"," <div class=\"row\">\r\n <div class=\"col-12 mb-5\">\r\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#FEE4E2\"/>\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#FEF3F2\" stroke-width=\"8\"/>\r\n <path d=\"M28 24V28M28 32H28.01M38 28C38 33.5228 33.5228 38 28 38C22.4772 38 18 33.5228 18 28C18 22.4772 22.4772 18 28 18C33.5228 18 38 22.4772 38 28Z\" stroke=\"#D92D20\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </div>\r\n <div class=\"col-12\">\r\n <div class=\"header mb-3\">Are you sure?</div>\r\n <div class=\"sub-header\">Do you want to delete the user globally?</div>\r\n </div>\r\n <div class=\"col-12 mt-10\">\r\n <div class=\"row\">\r\n <div class=\"col \">\r\n <button type=\"button\" class=\"btn btn-outline w-100 \" (click)=\"onCancel()\">Cancel</button>\r\n </div>\r\n <div class=\"col\">\r\n <button type=\"button\" class=\"btn btn-danger w-100\"\r\n (click)=\"onSubmit()\"><span>Delete</span></button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n","import { ChangeDetectorRef, Component, OnDestroy } from '@angular/core';\r\nimport { ClientApiService } from '../../services/client-api.service';\r\nimport { BehaviorSubject, Subject, debounceTime, distinctUntilChanged, takeUntil } from 'rxjs';\r\nimport { FormControl } from '@angular/forms';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { EditSpocComponent } from './edit-spoc/edit-spoc.component';\r\nimport { DeteleSpocComponent } from './detele-spoc/detele-spoc.component';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\nimport { Router } from '@angular/router';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'lib-contact-directory',\r\n templateUrl: './contact-directory.component.html',\r\n styleUrl: './contact-directory.component.scss'\r\n})\r\nexport class ContactDirectoryComponent implements OnDestroy {\r\n\r\n countryList: any = []\r\n stateList: any = []\r\n cityList: any = []\r\n storeList: any = []\r\n selectedCountry: any\r\n selectedState: any\r\n selectedCity: any = []\r\n selectedStore: any = []\r\n clienId: string;\r\n\r\n spocList: any = []\r\n isExport: boolean = false;\r\n searchValue: string | null = '';\r\n\r\n // paginationVariables\r\n itemsPerPage = 10\r\n currentPage = 1\r\n totalItems = 0\r\n paginationSizes = [10, 20, 30]\r\n pageSize = 10\r\n\r\n searchInput = new FormControl()\r\n\r\n private readonly destroy$ = new Subject();\r\n pageState$ = new BehaviorSubject<'loaded' | 'loading'>('loading');\r\n\r\n\r\n\r\n constructor(private clientService: ClientApiService, private cd: ChangeDetectorRef, private modalService:NgbModal, private toast:ToastService,\r\n public gs:GlobalStateService, private router:Router\r\n ) {\r\n this.clientService.clientId.pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if (e) {\r\n this.clienId = e\r\n this.getAllStores(e)\r\n this.getSpocTable()\r\n }\r\n })\r\n this.getAllCountries()\r\n this.initSearch()\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n getAllCountries() {\r\n this.clientService.getAllCountries().pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if (e?.data?.length) {\r\n this.countryList = e.data\r\n } else {\r\n this.countryList = []\r\n }\r\n }\r\n )\r\n }\r\n\r\n getAllStates(country: string) {\r\n this.clientService.getAllStates(country).pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if (e?.data?.length) {\r\n this.stateList = e.data\r\n } else {\r\n this.stateList = []\r\n }\r\n }\r\n )\r\n }\r\n\r\n getAllCities(country: string, state: string) {\r\n this.clientService.getAllCities(country, state).pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if (e?.data?.length) {\r\n this.cityList = e.data\r\n } else {\r\n this.cityList = []\r\n }\r\n }\r\n )\r\n }\r\n\r\n getAllStores(clientId: string) {\r\n this.clientService.getStoreList(clientId).pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if (e) {\r\n this.storeList = e?.data?.result\r\n } else {\r\n this.storeList = []\r\n }\r\n })\r\n }\r\n\r\n onCountrySelect(event: any) {\r\n this.selectedCountry = event\r\n this.getAllStates(this.selectedCountry.isoCode)\r\n }\r\n\r\n onStateSelect(event: any) {\r\n this.selectedState = event\r\n this.getAllCities(this.selectedCountry.isoCode, this.selectedState.isoCode)\r\n }\r\n\r\n onCitySelect(event: any) { \r\n this.selectedCity = event\r\n }\r\n\r\n onStoreSelect(event: any) {\r\n this.selectedStore = event\r\n }\r\n\r\n onFilterApply() {\r\n this.getSpocTable()\r\n }\r\n\r\n getSpocTable() {\r\n this.pageState$.next('loading')\r\n let filters: Record<string, any> = {\r\n export: this.isExport,\r\n limit: this.pageSize,\r\n offset: this.currentPage,\r\n clientId: this.clienId\r\n }\r\n if (this.searchValue) {\r\n filters.search = this.searchValue\r\n }\r\n if (this.selectedCountry) {\r\n filters.country = this.selectedCountry.name\r\n }\r\n if (this.selectedState) {\r\n filters.state = this.selectedState.name\r\n }\r\n if (this.selectedCity.length) {\r\n filters.city = this.selectedCity.map((e:any)=> e.name)\r\n }\r\n if (this.getStoreIdArray(this.selectedStore)?.length) {\r\n filters.storeId = this.getStoreIdArray(this.selectedStore)\r\n } \r\n\r\n if(this.isExport){\r\n this.clientService.spocTableDataExport(filters).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (e) => { \r\n this.pageState$.next('loaded')\r\n this.clientService.saveAsTemplate(e, 'contact_directory') \r\n this.isExport = false\r\n }\r\n })\r\n }else{\r\n this.clientService.spocTableData(filters).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (e) => { \r\n this.pageState$.next('loaded') \r\n if (e?.data?.count) {\r\n this.spocList = e.data?.data\r\n this.totalItems = e.data?.count\r\n this.cd.detectChanges()\r\n } else {\r\n this.spocList = []\r\n this.totalItems = 0\r\n this.cd.detectChanges()\r\n } \r\n \r\n },\r\n error: (e) => { \r\n this.spocList = []\r\n this.totalItems = 0\r\n this.cd.detectChanges()\r\n }\r\n }) \r\n }\r\n\r\n \r\n }\r\n\r\n initSearch() {\r\n this.searchInput.valueChanges.pipe(takeUntil(this.destroy$)).pipe(debounceTime(1000), distinctUntilChanged()).subscribe(\r\n (e) => {\r\n this.searchValue = e\r\n this.getSpocTable()\r\n }\r\n )\r\n }\r\n\r\n onPageChange(pageOffset: number) {\r\n this.currentPage = Number(pageOffset)\r\n this.getSpocTable()\r\n\r\n }\r\n\r\n onPageSizeChange(pageSize: number) {\r\n this.pageSize = Number(pageSize)\r\n this.currentPage = 1\r\n this.getSpocTable()\r\n }\r\n\r\n onExport() {\r\n this.isExport = true\r\n this.getSpocTable()\r\n }\r\n\r\n openEditSpocModal(spocId:string, storeId:string) {\r\n const modalRef = this.modalService.open(EditSpocComponent, { size: 'md', centered: true });\r\n modalRef.componentInstance.spocId = spocId\r\n modalRef.componentInstance.storeId = storeId\r\n modalRef.result.then((event) => { \r\n if (event?.type === 'edit') { \r\n this.toast.getSuccessToast('Updated successfully.') \r\n this.getSpocTable()\r\n }\r\n });\r\n }\r\n\r\n openDeleteSpocModal(spocId:string, storeId:string) {\r\n const modalRef = this.modalService.open(DeteleSpocComponent, { size: 'md', centered: true });\r\n modalRef.componentInstance.spocId = spocId\r\n modalRef.componentInstance.storeId = storeId\r\n modalRef.result.then((event) => { \r\n if (event?.type === 'delete') { \r\n this.toast.getSuccessToast('User deleted successfully.') \r\n this.getSpocTable()\r\n }\r\n });\r\n }\r\n\r\n getStoreIdArray(stores:any){\r\n const idArray = stores.map((e:any)=>e.storeId)\r\n return idArray\r\n }\r\n\r\n redirectToStore(storeId:any){\r\n this.router.navigate(\r\n ['/manage/stores/settings'],\r\n { queryParams: { storeId: storeId } }\r\n )\r\n }\r\n}\r\n","<div class=\"contact-card\">\r\n <h3 class=\"mb-5\">\r\n <span class=\"card-label mb-2\">Select Your Preferences</span>\r\n </h3>\r\n <div class=\"row\">\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"infraDownTime\" class=\"form-label\">Country <span class=\"alert-required\"></span></label>\r\n <lib-select [items]=\"countryList\" [multi]=\"false\" [searchField]=\"'name'\" [idField]=\"'isoCode'\"\r\n (selected)=\"onCountrySelect($event)\" [selectedValues]=\"[selectedCountry]\"></lib-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"infraDownTime\" class=\"form-label\">State <span class=\"alert-required\"></span></label>\r\n <lib-select [items]=\"stateList\" [multi]=\"false\" [searchField]=\"'name'\" [idField]=\"'isoCode'\"\r\n (selected)=\"onStateSelect($event)\" [selectedValues]=\"[selectedState]\"></lib-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"infraDownTime\" class=\"form-label\">City <span class=\"alert-required\"></span></label>\r\n <lib-select [items]=\"cityList\" [multi]=\"true\" [searchField]=\"'name'\" [idField]=\"'latitude'\"\r\n (selected)=\"onCitySelect($event)\" [selectedValues]=\"selectedCity\"></lib-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"infraDownTime\" class=\"form-label\">Store Id <span class=\"alert-required\"></span></label>\r\n <lib-select [items]=\"storeList\" [multi]=\"true\" [searchField]=\"'storeName'\" [idField]=\"'storeId'\"\r\n (selected)=\"onStoreSelect($event)\" [selectedValues]=\"selectedStore\"></lib-select>\r\n </div>\r\n <div class=\"col-12 mb-5\">\r\n <div class=\"d-flex justify-content-end\">\r\n <a (click)=\"onFilterApply()\" type=\"submit\" class=\"btn btn-primary px-4 \"><span>Apply</span></a>\r\n </div>\r\n </div>\r\n <div class=\"footer-seperator mb-10\"></div>\r\n\r\n <ng-container *ngIf=\"pageState$ | async as pageState\" >\r\n <ng-container [ngSwitch]=\"pageState\" >\r\n <ng-container *ngSwitchCase=\"'loaded'\" >\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"card-label mb-2\">Contacts List</span>\r\n </h3>\r\n <div class=\"d-flex align-items-center position-relative my-1\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <rect opacity=\"0.5\" x=\"17.0365\" y=\"15.1223\" width=\"8.15546\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(45 17.0365 15.1223)\" fill=\"currentColor\"></rect>\r\n <path\r\n d=\"M11 19C6.55556 19 3 15.4444 3 11C3 6.55556 6.55556 3 11 3C15.4444 3 19 6.55556 19 11C19 15.4444 15.4444 19 11 19ZM11 5C7.53333 5 5 7.53333 5 11C5 14.4667 7.53333 17 11 17C14.4667 17 17 14.4667 17 11C17 7.53333 14.4667 5 11 5Z\"\r\n fill=\"currentColor\"></path>\r\n </svg>\r\n </span>\r\n <input [formControl]=\"searchInput\" type=\"text\" class=\"form-control ps-14 me-2\" autocomplete=\"off\" placeholder=\"Search\" />\r\n <button [disabled]=\"!spocList.length\" *ngIf=\"(gs.userAccess | async)?.settings_contactDirectory_isDownload \" (click)=\"onExport()\" type=\"button\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg><span class=\"ms-2\">Export</span> </button>\r\n \r\n </div>\r\n </div>\r\n \r\n <ng-container *ngIf=\"spocList?.length\" >\r\n <div class=\"table-responsive mt-10\">\r\n <table class=\"w-100 table bottom-border\">\r\n <thead>\r\n <tr>\r\n <th>Store Info</th>\r\n <th>Spoc Name & Email</th>\r\n <th>Contact Number</th>\r\n <th>Location</th>\r\n <th>Actions</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let spoc of spocList\">\r\n <td>\r\n <div class=\"table-title-primary text-decoration-underline cursor-pointer\"\r\n (click)=\"redirectToStore(spoc?.storeId)\">{{spoc?.storeName}}</div>\r\n <div class=\"table-sub\">ID : {{spoc?.storeId}}</div>\r\n </td>\r\n \r\n <td>\r\n <div class=\"table-title\">{{spoc?.spocName}} </div>\r\n <div class=\"table-sub\">{{spoc?.spocEmail}}</div>\r\n </td>\r\n <td>\r\n <div class=\"table-title\">{{spoc?.spocNumber}} </div>\r\n </td>\r\n <td>\r\n <div class=\"table-title\">{{spoc?.storeState}} </div>\r\n <div class=\"table-sub\">{{spoc?.storeCity}}</div>\r\n </td>\r\n <td class=\"align-height\"><span class=\"cursor-pointer\">\r\n <svg *ngIf=\"(gs.userAccess | async)?.settings_contactDirectory_isEdit \" (click)=\"openEditSpocModal(spoc?.spocId, spoc?.storeId)\" class=\"me-5\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <g clip-path=\"url(#clip0_5541_6759)\">\r\n <path\r\n d=\"M9.16699 3.33332H3.33366C2.89163 3.33332 2.46771 3.50891 2.15515 3.82147C1.84259 4.13403 1.66699 4.55796 1.66699 4.99999V16.6667C1.66699 17.1087 1.84259 17.5326 2.15515 17.8452C2.46771 18.1577 2.89163 18.3333 3.33366 18.3333H15.0003C15.4424 18.3333 15.8663 18.1577 16.1788 17.8452C16.4914 17.5326 16.667 17.1087 16.667 16.6667V10.8333M15.417 2.08332C15.7485 1.7518 16.1982 1.56555 16.667 1.56555C17.1358 1.56555 17.5855 1.7518 17.917 2.08332C18.2485 2.41484 18.4348 2.86448 18.4348 3.33332C18.4348 3.80216 18.2485 4.2518 17.917 4.58332L10.0003 12.5L6.66699 13.3333L7.50033 9.99999L15.417 2.08332Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_5541_6759\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <svg *ngIf=\"(gs.userAccess | async)?.settings_contactDirectory_isDelete \" (click)=\"openDeleteSpocModal(spoc?.spocId, spoc?.storeId)\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path\r\n d=\"M2.5 5.00002H4.16667M4.16667 5.00002H17.5M4.16667 5.00002V16.6667C4.16667 17.1087 4.34226 17.5326 4.65482 17.8452C4.96738 18.1578 5.39131 18.3334 5.83333 18.3334H14.1667C14.6087 18.3334 15.0326 18.1578 15.3452 17.8452C15.6577 17.5326 15.8333 17.1087 15.8333 16.6667V5.00002H4.16667ZM6.66667 5.00002V3.33335C6.66667 2.89133 6.84226 2.4674 7.15482 2.15484C7.46738 1.84228 7.89131 1.66669 8.33333 1.66669H11.6667C12.1087 1.66669 12.5326 1.84228 12.8452 2.15484C13.1577 2.4674 13.3333 2.89133 13.3333 3.33335V5.00002M8.33333 9.16669V14.1667M11.6667 9.16669V14.1667\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <div class=\"my-3\">\r\n <lib-pagination [itemsPerPage]=\"pageSize\" [currentPage]=\"currentPage\" [totalItems]=\"totalItems\" [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\"\r\n (pageChange)=\"onPageChange($event)\" (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div> \r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!spocList?.length\" >\r\n <div class=\"d-flex align-items-center justify-content-center\" >\r\n <img width=\"300px\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\"> \r\n </div>\r\n </ng-container>\r\n \r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'loading'\" >\r\n <div class=\"shimmer-card w-100\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n </div>\r\n</div>","import { ChangeDetectorRef, Component, HostListener, OnDestroy } from '@angular/core';\r\nimport { ClientApiService } from '../../services/client-api.service';\r\nimport dayjs from \"dayjs\";\r\nimport \"dayjs/locale/en\";\r\nimport utc from \"dayjs/plugin/utc\";\r\nimport timezone from \"dayjs/plugin/timezone\";\r\nimport { BehaviorSubject, Subject, takeUntil } from 'rxjs';\r\ndayjs.extend(utc);\r\ndayjs.extend(timezone);\r\n\r\n@Component({\r\n selector: 'lib-activity-logs',\r\n templateUrl: './activity-logs.component.html',\r\n styleUrl: './activity-logs.component.scss'\r\n})\r\nexport class ActivityLogsComponent implements OnDestroy {\r\n\r\n dayjs = dayjs\r\n @HostListener('document:click', ['$event'])\r\n onClick(event: MouseEvent) {\r\n const target = event.target as HTMLElement;\r\n if (!target.closest('.dropdown')) {\r\n this.showFilters = false;\r\n }\r\n }\r\n\r\n itemsPerPage = 10\r\n currentPage = 1\r\n totalItems = 0\r\n paginationSizes = [10, 20, 30]\r\n pageSize = 10\r\n selectedDateRange: any = {\r\n startDate: this.dayjs().utc().startOf('day'),\r\n endDate: this.dayjs().utc().startOf('day')\r\n };\r\n clientList: any = []\r\n selectedClient: any\r\n private readonly destroy$ = new Subject();\r\n clientId: string;\r\n logList: any;\r\n filterStartDate: string = this.dayjs().utc().startOf('day').toISOString()\r\n filterEndDate: string = this.dayjs().utc().endOf('day').toISOString()\r\n showFilters:boolean = false\r\n pageState$ = new BehaviorSubject<'loaded' | 'loading'>('loading');\r\n\r\n\r\n filters = [\r\n {\r\n label:'Brand details',\r\n id:'brandDetails',\r\n isChecked:true\r\n },\r\n {\r\n label:'Configuration',\r\n id:'configuration',\r\n isChecked:true\r\n },\r\n {\r\n label:'Documents',\r\n id:'documents',\r\n isChecked:true\r\n },\r\n {\r\n label:'Stores',\r\n id:'stores',\r\n isChecked:true\r\n },\r\n {\r\n label:'Groups',\r\n id:'groups',\r\n isChecked:true\r\n },\r\n {\r\n label:'Users',\r\n id:'users',\r\n isChecked:true\r\n },\r\n {\r\n label:'Subscription',\r\n id:'subscription',\r\n isChecked:true\r\n },\r\n ]\r\n\r\n constructor(private apiService: ClientApiService, private cd: ChangeDetectorRef) {\r\n this.apiService.clientId.pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if (e) {\r\n this.clientId = e\r\n this.getActivityLogs()\r\n }\r\n })\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n this.pageState$.complete();\r\n\r\n }\r\n\r\n getActivityLogs() {\r\n this.pageState$.next('loading')\r\n let filters: Record<string, any> = {\r\n limit: this.pageSize,\r\n offset: this.currentPage,\r\n clientId: this.clientId\r\n }\r\n if (this.filterStartDate) {\r\n filters.startDate = this.filterStartDate\r\n }\r\n if (this.filterEndDate) {\r\n filters.endDate = this.filterEndDate\r\n }\r\n\r\n if(this.getCheckedIds(this.filters)?.length){\r\n filters.logTypeFilters = this.getCheckedIds(this.filters)\r\n }\r\n\r\n this.apiService.getActivityLogs(filters).subscribe({\r\n next: (e) => {\r\n this.pageState$.next('loaded')\r\n if (e?.data?.count) {\r\n this.logList = e.data.data\r\n this.totalItems = e.data.count\r\n this.cd.detectChanges()\r\n } else {\r\n this.logList = []\r\n this.totalItems = 0\r\n this.cd.detectChanges()\r\n }\r\n },\r\n error: (err) => {\r\n this.pageState$.next('loaded')\r\n this.logList = []\r\n this.totalItems = 0\r\n this.cd.detectChanges()\r\n }\r\n })\r\n\r\n }\r\n\r\n datechange(event: any) {\r\n if (event.startDate || event.endDate) {\r\n this.currentPage = 1\r\n this.filterStartDate = this.dayjs(event.startDate).utc().toISOString()\r\n this.filterEndDate = this.dayjs(event.endDate).utc().toISOString()\r\n this.getActivityLogs()\r\n }\r\n\r\n }\r\n\r\n ranges: any = {\r\n Today: [this.dayjs(), this.dayjs()],\r\n Yesterday: [this.dayjs().subtract(1, \"days\"), this.dayjs().subtract(1, \"days\")],\r\n \"This Week\": [this.dayjs().subtract(6, \"days\"), this.dayjs()],\r\n \"Last Week\": [\r\n this.dayjs().subtract(14, \"days\").startOf(\"days\"),\r\n this.dayjs().subtract(8, \"days\").endOf(\"days\"),\r\n ],\r\n \"This Month\": [this.dayjs().startOf(\"month\"), this.dayjs().endOf(\"month\")],\r\n \"Last Month\": [\r\n this.dayjs().subtract(1, \"month\").startOf(\"month\"),\r\n this.dayjs().subtract(1, \"month\").endOf(\"month\"),\r\n ],\r\n };\r\n\r\n\r\n onPageChange(pageOffset: number) {\r\n this.currentPage = pageOffset\r\n this.getActivityLogs()\r\n\r\n }\r\n\r\n onPageSizeChange(pageSize: number) { \r\n this.currentPage = 1 \r\n this.pageSize = pageSize\r\n this.itemsPerPage = pageSize\r\n this.getActivityLogs()\r\n }\r\n\r\n formatDate(inputDate: string) {\r\n const parsedDate = this.dayjs(inputDate);\r\n const formattedDate = parsedDate.format('DD-MM-YYYY | hh:mm A');\r\n return formattedDate;\r\n }\r\n\r\n camelCaseToWords(camelCaseString: string) {\r\n const words = camelCaseString.replace(/([A-Z])/g, ' $1');\r\n return words.charAt(0).toUpperCase() + words.slice(1).toLowerCase();\r\n }\r\n\r\n arrayToString(array: any) {\r\n return array.join(', ');\r\n }\r\n\r\n checkIfAllSelected() {\r\n return this.filters.every((item:any) => item.isChecked);\r\n }\r\n\r\n onSelectAll(event: any) {\r\n const selectAll = event.currentTarget.checked;\r\n this.filters.forEach((item: any) => item.isChecked = selectAll);\r\n }\r\n\r\n getCheckedIds(filters:any) {\r\n const checkedIds = filters.filter((filter:any) => filter.isChecked).map((filter:any) => filter.id);\r\n return checkedIds;\r\n}\r\n\r\napplyFilter(){\r\n this.currentPage = 1\r\n this.showFilters = false\r\n this.getActivityLogs();\r\n}\r\n\r\n}\r\n","<div class=\"activity-card\">\r\n <ng-container *ngIf=\"pageState$ | async as pageState\" >\r\n <ng-container [ngSwitch]=\"pageState\" >\r\n <ng-container *ngSwitchCase=\"'loaded'\" >\r\n <div class=\"d-flex justify-content-between align-items-center mb-10\">\r\n <div class=\"header\">Activity Logs</div>\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"d-flex align-items-center position-relative me-5\">\r\n <input class=\"fx-date-range form-control ps-14\" type=\"text\" matInput ngxDaterangepickerMd\r\n [drops]=\"'down'\" [opens]=\"'right'\" [ranges]=\"ranges\" [showCustomRangeLabel]=\"true\"\r\n [alwaysShowCalendars]=\"false\" [keepCalendarOpeningWithRange]=\"true\" [showCancel]=\"true\"\r\n autocomplete=\"off\" [(ngModel)]=\"selectedDateRange\"\r\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1, monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] }\"\r\n (datesUpdated)=\"datechange($event)\" name=\"daterange\" />\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <div>\r\n <div class=\"multi-select-dropdown\" >\r\n <button (click)=\"$event.stopPropagation();showFilters = !showFilters;\" class=\"btn btn-outline\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M5 10H15M2.5 5H17.5M7.5 15H12.5\" stroke=\"#344054\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <span class=\" ms-3\">{{getCheckedIds(filters).length}} selected</span>\r\n </button> \r\n <div *ngIf=\"showFilters\" class=\"input-container dropdown\" >\r\n <div>\r\n <ul>\r\n <li >\r\n <div class=\"form-check\">\r\n <input (change)=\"onSelectAll($event)\" [checked]=\"checkIfAllSelected()\" class=\"form-check-input me-3\" type=\"checkbox\"\r\n id=\"selectAll\">\r\n <label class=\"form-check-label\" for=\"selectAll\">\r\n All Logs\r\n </label>\r\n </div>\r\n </li>\r\n <li *ngFor=\"let filter of filters\" >\r\n <div class=\"form-check\">\r\n <input class=\"form-check-input me-3\" type=\"checkbox\" [(ngModel)]=\"filter.isChecked\" [id]=\"filter.id\">\r\n <label class=\"form-check-label\" [for]=\"filter.id\" >\r\n {{filter.label}}\r\n </label>\r\n </div>\r\n </li>\r\n \r\n </ul> \r\n </div>\r\n <div >\r\n <div class=\" w-100 footer-seperator\"></div>\r\n <div class=\"d-flex justify-content-end m-2\">\r\n <a type=\"button\" class=\"btn btn-outline me-4\" (click)=\"showFilters = false\" >Cancel</a>\r\n <a type=\"submit\" class=\"btn btn-primary px-4 \" (click)=\"applyFilter()\" >Apply</a>\r\n </div>\r\n </div>\r\n \r\n </div> \r\n </div>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n \r\n <ng-container *ngIf=\"logList?.length\" >\r\n <div *ngFor=\"let item of logList\" class=\"log-card mb-8\">\r\n <div class=\"d-flex me-10\">\r\n <div class=\"line me-4\"></div>\r\n <div class=\"d-flex flex-column\">\r\n <div class=\"d-flex align-items-center mb-2\">\r\n <div class=\"header me-4\">{{camelCaseToWords(item?.logSubType)}}</div>\r\n <div class=\"time\">{{formatDate(item?.date)}}</div>\r\n </div>\r\n <div class=\"sub\">{{arrayToString(item?.changes)}} <span *ngIf=\"item?.eventType\">{{item?.eventType + 'd'}}</span></div>\r\n <div class=\"sub\">By {{item?.userName}} - {{item?.email}}</div>\r\n </div>\r\n \r\n </div>\r\n <div class=\"chip\">\r\n {{camelCaseToWords(item?.logType)}}\r\n </div>\r\n </div>\r\n \r\n <div *ngIf=\"logList?.length\" class=\"my-3\">\r\n <lib-pagination [itemsPerPage]=\"itemsPerPage\" [currentPage]=\"currentPage\" [totalItems]=\"totalItems\" [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\"\r\n (pageChange)=\"onPageChange($event)\" (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div> \r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!logList?.length\">\r\n <div class=\"d-flex align-items-center justify-content-center\" >\r\n <img width=\"300px\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\"> \r\n </div>\r\n </ng-container>\r\n \r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'loading'\" >\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</div>\r\n\r\n","import { inject } from '@angular/core';\r\nimport { CanActivateFn, Router } from '@angular/router';\r\nimport { map, take } from 'rxjs';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\n\r\n\r\nexport const brandDetailGuard: CanActivateFn = (route, state) => {\r\n const gs = inject(GlobalStateService)\r\n const router = inject(Router)\r\n \r\n return gs.userAccess.pipe(take(1), map((e)=>{\r\n if(e && !e?.settings_brandDetails_isView){\r\n if(e?.settings_configuration_isView){\r\n router.navigateByUrl('/manage/settings/configuration')\r\n }else if(e?.settings_contactDirectory_isView){\r\n router.navigateByUrl('/manage/settings/contact-directory')\r\n }else if(e?.settings_paymentSubscriptions_isView){\r\n router.navigateByUrl('/manage/settings/payment-subscription')\r\n }else if(e?.settings_documents_isView){\r\n router.navigateByUrl('/manage/settings/documents')\r\n }else if(e?.settings_activityLog_isView){\r\n router.navigateByUrl('/manage/settings/activity-logs')\r\n }else{\r\n router.navigateByUrl('/manage')\r\n }\r\n return false\r\n }\r\n return true;\r\n }))\r\n};\r\n","import { inject } from '@angular/core';\r\nimport { CanActivateFn, Router } from '@angular/router';\r\nimport { map, take } from 'rxjs';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\n\r\nexport const configurationGuard: CanActivateFn = (route, state) => {\r\n const gs = inject(GlobalStateService)\r\n const router = inject(Router)\r\n \r\n return gs.userAccess.pipe(take(1), map((e)=>{\r\n if(e && !e?.settings_configuration_isView){\r\n if(e?.settings_brandDetails_isView){\r\n router.navigateByUrl('/manage/settings/brand-detail')\r\n }else if(e?.settings_contactDirectory_isView){\r\n router.navigateByUrl('/manage/settings/contact-directory')\r\n }else if(e?.settings_paymentSubscriptions_isView){\r\n router.navigateByUrl('/manage/settings/payment-subscription')\r\n }else if(e?.settings_documents_isView){\r\n router.navigateByUrl('/manage/settings/documents')\r\n }else if(e?.settings_activityLog_isView){\r\n router.navigateByUrl('/manage/settings/activity-logs')\r\n }else{\r\n router.navigateByUrl('/manage')\r\n }\r\n return false\r\n }\r\n return true;\r\n }))\r\n};\r\n","import { inject } from '@angular/core';\r\nimport { CanActivateFn, Router } from '@angular/router';\r\nimport { map, take } from 'rxjs';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\n\r\nexport const contactDirectoryGuard: CanActivateFn = (route, state) => {\r\n const gs = inject(GlobalStateService)\r\n const router = inject(Router)\r\n \r\n return gs.userAccess.pipe(take(1), map((e)=>{\r\n if(e && !e?.settings_contactDirectory_isView){\r\n if(e?.settings_brandDetails_isView){\r\n router.navigateByUrl('/manage/settings/brand-detail')\r\n }else if(e?.settings_configuration_isView){\r\n router.navigateByUrl('/manage/settings/configuration')\r\n }else if(e?.settings_paymentSubscriptions_isView){\r\n router.navigateByUrl('/manage/settings/payment-subscription')\r\n }else if(e?.settings_documents_isView){\r\n router.navigateByUrl('/manage/settings/documents')\r\n }else if(e?.settings_activityLog_isView){\r\n router.navigateByUrl('/manage/settings/activity-logs')\r\n }else{\r\n router.navigateByUrl('/manage')\r\n }\r\n return false\r\n }\r\n return true;\r\n }))\r\n};\r\n","import { inject } from '@angular/core';\r\nimport { CanActivateFn, Router } from '@angular/router';\r\nimport { map, take } from 'rxjs';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\n\r\nexport const paymentSubscriptionsGuard: CanActivateFn = (route, state) => {\r\n const gs = inject(GlobalStateService)\r\n const router = inject(Router)\r\n \r\n return gs.userAccess.pipe(take(1), map((e)=>{\r\n if(e && !e?.settings_paymentSubscriptions_isView){\r\n if(e?.settings_brandDetails_isView){\r\n router.navigateByUrl('/manage/settings/brand-detail')\r\n }else if(e?.settings_configuration_isView){\r\n router.navigateByUrl('/manage/settings/configuration')\r\n }else if(e?.settings_contactDirectory_isView){\r\n router.navigateByUrl('/manage/settings/contact-directory')\r\n }else if(e?.settings_documents_isView){\r\n router.navigateByUrl('/manage/settings/documents')\r\n }else if(e?.settings_activityLog_isView){\r\n router.navigateByUrl('/manage/settings/activity-logs')\r\n }else{\r\n router.navigateByUrl('/manage')\r\n }\r\n return false\r\n }\r\n return true;\r\n }))\r\n};\r\n","import { inject } from '@angular/core';\r\nimport { CanActivateFn, Router } from '@angular/router';\r\nimport { map, take } from 'rxjs';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\n\r\nexport const documentsGuard: CanActivateFn = (route, state) => {\r\n const gs = inject(GlobalStateService)\r\n const router = inject(Router)\r\n \r\n return gs.userAccess.pipe(take(1), map((e)=>{\r\n if(e && !e?.settings_documents_isView){\r\n if(e?.settings_brandDetails_isView){\r\n router.navigateByUrl('/manage/settings/brand-detail')\r\n }else if(e?.settings_configuration_isView){\r\n router.navigateByUrl('/manage/settings/configuration')\r\n }else if(e?.settings_contactDirectory_isView){\r\n router.navigateByUrl('/manage/settings/contact-directory')\r\n }else if(e?.settings_paymentSubscriptions_isView){\r\n router.navigateByUrl('/manage/settings/payment-subscription')\r\n }else if(e?.settings_activityLog_isView){\r\n router.navigateByUrl('/manage/settings/activity-logs')\r\n }else{\r\n router.navigateByUrl('/manage')\r\n }\r\n return false\r\n }\r\n return true;\r\n }))\r\n};\r\n","import { inject } from '@angular/core';\r\nimport { CanActivateFn, Router } from '@angular/router';\r\nimport { map, take } from 'rxjs';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\n\r\nexport const activityLogGuard: CanActivateFn = (route, state) => {\r\n const gs = inject(GlobalStateService)\r\n const router = inject(Router)\r\n \r\n return gs.userAccess.pipe(take(1), map((e)=>{\r\n if(e && !e?.settings_activityLog_isView){\r\n if(e?.settings_brandDetails_isView){\r\n router.navigateByUrl('/manage/settings/brand-detail')\r\n }else if(e?.settings_configuration_isView){\r\n router.navigateByUrl('/manage/settings/configuration')\r\n }else if(e?.settings_contactDirectory_isView){\r\n router.navigateByUrl('/manage/settings/contact-directory')\r\n }else if(e?.settings_paymentSubscriptions_isView){\r\n router.navigateByUrl('/manage/settings/payment-subscription')\r\n }else if(e?.settings_documents_isView){\r\n router.navigateByUrl('/manage/settings/documents')\r\n }else{\r\n router.navigateByUrl('/manage')\r\n }\r\n return false\r\n }\r\n return true;\r\n }))\r\n};\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { TangoManageSettingsComponent } from './components/tango-manage-settings/tango-manage-settings.component';\r\nimport { BrandDetailsComponent } from './components/brand-details/brand-details.component';\r\nimport { PaymentsSubscriptionComponent } from './components/payments-subscription/payments-subscription.component';\r\nimport { ConfigurationsComponent } from './components/configurations/configurations.component';\r\nimport { DocumentsComponent } from './components/documents/documents.component';\r\nimport { ContactDirectoryComponent } from './components/contact-directory/contact-directory.component';\r\nimport { ActivityLogsComponent } from './components/activity-logs/activity-logs.component';\r\nimport { brandDetailGuard } from './guards/brand-detail.guard';\r\nimport { configurationGuard } from './guards/configuration.guard';\r\nimport { contactDirectoryGuard } from './guards/contact-directory.guard';\r\nimport { paymentSubscriptionsGuard } from './guards/payment-subscriptions.guard';\r\nimport { documentsGuard } from './guards/documents.guard';\r\nimport { activityLogGuard } from './guards/activity-log.guard';\r\n\r\nconst routes: Routes = [\r\n {\r\n path:'',\r\n component:TangoManageSettingsComponent,\r\n children:[\r\n {\r\n path:'',\r\n redirectTo:'brand-detail',\r\n pathMatch: 'full'\r\n },\r\n {\r\n path:'brand-detail',\r\n component:BrandDetailsComponent,\r\n canActivate: [brandDetailGuard]\r\n },\r\n {\r\n path:'payment-subscription',\r\n component:PaymentsSubscriptionComponent,\r\n canActivate: [paymentSubscriptionsGuard]\r\n },\r\n {\r\n path:'configuration',\r\n component:ConfigurationsComponent,\r\n canActivate: [configurationGuard]\r\n },\r\n {\r\n path:'documents',\r\n component:DocumentsComponent,\r\n canActivate: [documentsGuard]\r\n\r\n },\r\n {\r\n path:'contact-directory',\r\n component:ContactDirectoryComponent,\r\n canActivate: [contactDirectoryGuard],\r\n },\r\n {\r\n path:'activity-logs',\r\n component:ActivityLogsComponent,\r\n canActivate: [activityLogGuard],\r\n },\r\n \r\n ]\r\n },\r\n \r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class TangoManageSettingsRoutingModule { }\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-suspended',\r\n templateUrl: './suspended.component.html',\r\n styleUrl: './suspended.component.scss'\r\n})\r\nexport class SuspendedComponent {\r\n\r\n}\r\n","<div class=\"modal-content\" >\r\n <div class=\"p-6\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/expired-icon.svg\" alt=\"\"></div>\r\n <div class=\"subtext mt-4 ms-1\">Your TangoEye Suite is suspended </div>\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n \r\n <div class=\"contenttext mt-4 mx-2\">Your subscription hasn’t been renewed.\r\n </div>\r\n <div class=\"contenttext mt-4 mx-2\">If you are a site admin, go to <span class=\"help\">Payment and Subscription</span>, complete the payment.\r\n </div> \r\n \r\n</div>\r\n </div>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TangoManageSettingsRoutingModule } from './tango-manage-settings-routing.module';\r\nimport { TangoManageSettingsComponent } from './components/tango-manage-settings/tango-manage-settings.component';\r\nimport { NgbAccordionModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { UpdateComponent } from './components/payments-subscription/subscription-popups/update/update.component';\r\nimport { NeedHelpComponent } from './components/payments-subscription/subscription-popups/need-help/need-help.component';\r\nimport { UpgradePlanComponent } from './components/payments-subscription/subscription-popups/upgrade-plan/upgrade-plan.component';\r\nimport { SuccessfullSubscriptionComponent } from './components/payments-subscription/subscription-popups/successfull-subscription/successfull-subscription.component';\r\nimport { ReactiveFormsModule, FormsModule, } from '@angular/forms';\r\nimport { MatAutocompleteModule} from '@angular/material/autocomplete';\r\nimport { MatChipsModule} from '@angular/material/chips';\r\nimport {MatIconModule} from '@angular/material/icon';\r\nimport {MatFormFieldModule} from '@angular/material/form-field';\r\nimport { BrandDetailsComponent } from './components/brand-details/brand-details.component';\r\nimport { BrandInfoComponent } from './components/brand-details/brand-info/brand-info.component';\r\nimport { BillingDetailsComponent } from './components/brand-details/billing-details/billing-details.component';\r\nimport { SignatoryDetailsComponent } from './components/brand-details/signatory-details/signatory-details.component';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { PaymentsSubscriptionComponent } from './components/payments-subscription/payments-subscription.component';\r\nimport { TrailExpiredComponent } from './components/payments-subscription/subscription-popups/trail-expired/trail-expired.component';\r\nimport { SuspendedComponent } from './components/payments-subscription/subscription-popups/suspended/suspended.component';\r\nimport { CreditNoteComponent } from './components/payments-subscription/subscription-popups/credit-note/credit-note.component';\r\nimport { PricingRevisedComponent } from './components/payments-subscription/subscription-popups/pricing-revised/pricing-revised.component';\r\nimport { AuditConfigurationComponent } from './components/configurations/audit-configuration/audit-configuration.component';\r\nimport { TicketConfigurationComponent } from './components/configurations/ticket-configuration/ticket-configuration.component';\r\nimport { ReportConfigurationComponent } from './components/configurations/report-configuration/report-configuration.component';\r\nimport { UserConfigurationComponent } from './components/configurations/user-configuration/user-configuration.component';\r\nimport { DomainDetailsComponent } from './components/configurations/domain-details/domain-details.component';\r\nimport { FeatureConfigurationComponent } from './components/configurations/feature-configuration/feature-configuration.component';\r\nimport { DocumentsComponent } from './components/documents/documents.component';\r\nimport { DndDirective } from './directives/dnd.directive';\r\nimport { AddReportComponent } from './components/configurations/report-configuration/add-report/add-report.component';\r\nimport { ContactDirectoryComponent } from './components/contact-directory/contact-directory.component';\r\nimport { ConfigurationsComponent } from './components/configurations/configurations.component';\r\nimport { MultidropdownComponent } from './components/payments-subscription/subscription-popups/multidropdown/multidropdown.component';\r\nimport { EditSpocComponent } from './components/contact-directory/edit-spoc/edit-spoc.component';\r\nimport { DeteleSpocComponent } from './components/contact-directory/detele-spoc/detele-spoc.component';\r\nimport { AddSteppriceComponent } from './components/payments-subscription/subscription-popups/add-stepprice/add-stepprice.component';\r\nimport { SkipTrailComponent } from './components/payments-subscription/subscription-popups/skip-trail/skip-trail.component';\r\nimport { TrailSettingsComponent } from './components/payments-subscription/subscription-popups/trail-settings/trail-settings.component';\r\nimport { UnsubscribeRequestComponent } from './components/payments-subscription/subscription-popups/unsubscribe-request/unsubscribe-request.component';\r\nimport { SubscriptionApprovalComponent } from './components/payments-subscription/subscription-popups/subscription-approval/subscription-approval.component';\r\nimport { ProductConfirmationComponent } from './components/payments-subscription/subscription-popups/product-confirmation/product-confirmation.component';\r\nimport { ActivityLogsComponent } from './components/activity-logs/activity-logs.component';\r\nimport { NgxDaterangepickerMd } from 'ngx-daterangepicker-material';\r\nimport { CommonSharedModule } from 'tango-app-ui-shared';\r\nimport { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ModalContentComponent } from './components/payments-subscription/subscription-popups/model-content/model-content.component';\r\nimport { ReactiveSelectComponent } from './components/reactive-select/reactive-select.component';\r\nimport { EmailConfigurationComponent } from './components/configurations/email-configuration/email-configuration.component';\r\nimport { EmployeeTrainingComponent } from './components/configurations/employee-training/employee-training.component';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n TangoManageSettingsComponent,\r\n PaymentsSubscriptionComponent,\r\n UpdateComponent,\r\n NeedHelpComponent,\r\n SuccessfullSubscriptionComponent,\r\n BrandDetailsComponent,\r\n BrandInfoComponent,\r\n BillingDetailsComponent,\r\n SignatoryDetailsComponent,\r\n UpgradePlanComponent,\r\n TrailExpiredComponent,\r\n SuspendedComponent,\r\n CreditNoteComponent,\r\n PricingRevisedComponent,\r\n ConfigurationsComponent,\r\n AuditConfigurationComponent,\r\n TicketConfigurationComponent,\r\n ReportConfigurationComponent,\r\n UserConfigurationComponent,\r\n DomainDetailsComponent,\r\n FeatureConfigurationComponent,\r\n MultidropdownComponent,\r\n DocumentsComponent,\r\n DndDirective,\r\n AddReportComponent,\r\n ContactDirectoryComponent,\r\n EditSpocComponent,\r\n DeteleSpocComponent,\r\n AddSteppriceComponent,\r\n SkipTrailComponent,\r\n TrailSettingsComponent,\r\n UnsubscribeRequestComponent,\r\n SubscriptionApprovalComponent,\r\n ProductConfirmationComponent,\r\n ActivityLogsComponent,\r\n ModalContentComponent,\r\n ReactiveSelectComponent,\r\n EmailConfigurationComponent,\r\n EmployeeTrainingComponent\r\n \r\n ],\r\n imports: [\r\n CommonModule,\r\n TangoManageSettingsRoutingModule,\r\n NgbAccordionModule,\r\n NgbModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n MatAutocompleteModule,\r\n MatChipsModule,\r\n MatIconModule,\r\n MatFormFieldModule,\r\n HttpClientModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n CommonSharedModule,\r\n NgbTooltipModule,\r\n NgxDaterangepickerMd.forRoot()\r\n\r\n ]\r\n})\r\nexport class TangoManageSettingsModule { }\r\n","/*\r\n * Public API Surface of tango-manage-settings\r\n */\r\n\r\nexport * from './lib/tango-manage-settings.module';\r\n\r\nexport * from './lib/components/tango-manage-settings/tango-manage-settings.component';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["EXCEL_TYPE","EXCEL_EXTENSION","i2","i1","i2.ClientApiService","i3","i4","i1.ClientApiService","i5.ReactiveSelectComponent","i5.BrandInfoComponent","i6.BillingDetailsComponent","i7.SignatoryDetailsComponent","i2.PaymentSubscriptionService","i5","i3.PaymentSubscriptionService","i6","i7.MultidropdownComponent","i6.DndDirective","i3.ClientApiService","i6.AuditConfigurationComponent","i7.TicketConfigurationComponent","i8.ReportConfigurationComponent","i9.UserConfigurationComponent","i10.DomainDetailsComponent","i11.FeatureConfigurationComponent","i12.EmailConfigurationComponent","i13.EmployeeTrainingComponent","i7"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tango-app-ui-manage-settings.mjs","sources":["../../../projects/tango-manage-settings/src/lib/services/client-api.service.ts","../../../projects/tango-manage-settings/src/lib/components/tango-manage-settings/tango-manage-settings.component.ts","../../../projects/tango-manage-settings/src/lib/components/tango-manage-settings/tango-manage-settings.component.html","../../../projects/tango-manage-settings/src/lib/components/reactive-select/reactive-select.component.ts","../../../projects/tango-manage-settings/src/lib/components/reactive-select/reactive-select.component.html","../../../projects/tango-manage-settings/src/lib/components/brand-details/brand-info/brand-info.component.ts","../../../projects/tango-manage-settings/src/lib/components/brand-details/brand-info/brand-info.component.html","../../../projects/tango-manage-settings/src/lib/components/brand-details/billing-details/billing-details.component.ts","../../../projects/tango-manage-settings/src/lib/components/brand-details/billing-details/billing-details.component.html","../../../projects/tango-manage-settings/src/lib/components/brand-details/signatory-details/signatory-details.component.ts","../../../projects/tango-manage-settings/src/lib/components/brand-details/signatory-details/signatory-details.component.html","../../../projects/tango-manage-settings/src/lib/components/brand-details/brand-details.component.ts","../../../projects/tango-manage-settings/src/lib/components/brand-details/brand-details.component.html","../../../projects/tango-manage-settings/src/lib/services/payment-subscription.service.ts","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/update/update.component.ts","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/update/update.component.html","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/need-help/need-help.component.ts","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/need-help/need-help.component.html","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/trail-expired/trail-expired.component.ts","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/trail-expired/trail-expired.component.html","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/successfull-subscription/successfull-subscription.component.ts","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/successfull-subscription/successfull-subscription.component.html","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/subscription-approval/subscription-approval.component.ts","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/subscription-approval/subscription-approval.component.html","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/model-content/model-content.component.ts","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/model-content/model-content.component.html","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/upgrade-plan/upgrade-plan.component.ts","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/upgrade-plan/upgrade-plan.component.html","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/credit-note/credit-note.component.ts","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/credit-note/credit-note.component.html","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/pricing-revised/pricing-revised.component.ts","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/pricing-revised/pricing-revised.component.html","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/add-stepprice/add-stepprice.component.ts","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/add-stepprice/add-stepprice.component.html","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/skip-trail/skip-trail.component.ts","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/skip-trail/skip-trail.component.html","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/trail-settings/trail-settings.component.ts","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/trail-settings/trail-settings.component.html","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/unsubscribe-request/unsubscribe-request.component.ts","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/unsubscribe-request/unsubscribe-request.component.html","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/product-confirmation/product-confirmation.component.ts","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/product-confirmation/product-confirmation.component.html","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/multidropdown/multidropdown.component.ts","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/multidropdown/multidropdown.component.html","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/payments-subscription.component.ts","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/payments-subscription.component.html","../../../projects/tango-manage-settings/src/lib/directives/dnd.directive.ts","../../../projects/tango-manage-settings/src/lib/components/configurations/audit-configuration/audit-configuration.component.ts","../../../projects/tango-manage-settings/src/lib/components/configurations/audit-configuration/audit-configuration.component.html","../../../projects/tango-manage-settings/src/lib/components/configurations/ticket-configuration/ticket-configuration.component.ts","../../../projects/tango-manage-settings/src/lib/components/configurations/ticket-configuration/ticket-configuration.component.html","../../../projects/tango-manage-settings/src/lib/components/configurations/report-configuration/add-report/add-report.component.ts","../../../projects/tango-manage-settings/src/lib/components/configurations/report-configuration/add-report/add-report.component.html","../../../projects/tango-manage-settings/src/lib/components/configurations/report-configuration/report-configuration.component.ts","../../../projects/tango-manage-settings/src/lib/components/configurations/report-configuration/report-configuration.component.html","../../../projects/tango-manage-settings/src/lib/components/configurations/user-configuration/user-configuration.component.ts","../../../projects/tango-manage-settings/src/lib/components/configurations/user-configuration/user-configuration.component.html","../../../projects/tango-manage-settings/src/lib/components/configurations/domain-details/domain-details.component.ts","../../../projects/tango-manage-settings/src/lib/components/configurations/domain-details/domain-details.component.html","../../../projects/tango-manage-settings/src/lib/components/configurations/feature-configuration/feature-configuration.component.ts","../../../projects/tango-manage-settings/src/lib/components/configurations/feature-configuration/feature-configuration.component.html","../../../projects/tango-manage-settings/src/lib/components/configurations/email-configuration/email-configuration.component.ts","../../../projects/tango-manage-settings/src/lib/components/configurations/email-configuration/email-configuration.component.html","../../../projects/tango-manage-settings/src/lib/components/configurations/employee-training/employee-training.component.ts","../../../projects/tango-manage-settings/src/lib/components/configurations/employee-training/employee-training.component.html","../../../projects/tango-manage-settings/src/lib/components/configurations/configurations.component.ts","../../../projects/tango-manage-settings/src/lib/components/configurations/configurations.component.html","../../../projects/tango-manage-settings/src/lib/components/documents/documents.component.ts","../../../projects/tango-manage-settings/src/lib/components/documents/documents.component.html","../../../projects/tango-manage-settings/src/lib/components/contact-directory/edit-spoc/edit-spoc.component.ts","../../../projects/tango-manage-settings/src/lib/components/contact-directory/edit-spoc/edit-spoc.component.html","../../../projects/tango-manage-settings/src/lib/components/contact-directory/detele-spoc/detele-spoc.component.ts","../../../projects/tango-manage-settings/src/lib/components/contact-directory/detele-spoc/detele-spoc.component.html","../../../projects/tango-manage-settings/src/lib/components/contact-directory/contact-directory.component.ts","../../../projects/tango-manage-settings/src/lib/components/contact-directory/contact-directory.component.html","../../../projects/tango-manage-settings/src/lib/components/activity-logs/activity-logs.component.ts","../../../projects/tango-manage-settings/src/lib/components/activity-logs/activity-logs.component.html","../../../projects/tango-manage-settings/src/lib/guards/brand-detail.guard.ts","../../../projects/tango-manage-settings/src/lib/guards/configuration.guard.ts","../../../projects/tango-manage-settings/src/lib/guards/contact-directory.guard.ts","../../../projects/tango-manage-settings/src/lib/guards/payment-subscriptions.guard.ts","../../../projects/tango-manage-settings/src/lib/guards/documents.guard.ts","../../../projects/tango-manage-settings/src/lib/guards/activity-log.guard.ts","../../../projects/tango-manage-settings/src/lib/tango-manage-settings-routing.module.ts","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/suspended/suspended.component.ts","../../../projects/tango-manage-settings/src/lib/components/payments-subscription/subscription-popups/suspended/suspended.component.html","../../../projects/tango-manage-settings/src/lib/tango-manage-settings.module.ts","../../../projects/tango-manage-settings/src/public-api.ts","../../../projects/tango-manage-settings/src/tango-app-ui-manage-settings.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport * as FileSaver from 'file-saver';\r\nimport * as XLSX from 'xlsx';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\nconst EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\r\nconst EXCEL_EXTENSION = '.xlsx';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ClientApiService {\r\n\r\n clientApiUrl: string\r\n middlewareApiUrl: string;\r\n storeApiUrl: string;\r\n reportApiUrl: string;\r\n userApiUrl: string;\r\n ticketsApiUrl: string;\r\n matAppApiUrl: string;\r\n\r\n\r\n\r\n clientId = new BehaviorSubject<string>('')\r\n clientData = new BehaviorSubject<any>(null)\r\n clientFormData = new BehaviorSubject<any>({ value: null, type: null, form: null })\r\n dropDownTrigger = new BehaviorSubject<any>(null)\r\n\r\n\r\n\r\n constructor(private http: HttpClient, private gs: GlobalStateService) {\r\n this.gs.environment.subscribe((e: any) => {\r\n if (e) {\r\n this.clientApiUrl = e.clientApiUrl;\r\n this.middlewareApiUrl = e.middlewareApiUrl;\r\n this.storeApiUrl = e.storeApiUrl;\r\n this.reportApiUrl = e.reportApiUrl;\r\n this.userApiUrl = e.userApiUrl;\r\n this.ticketsApiUrl = e.ticketsApiUrl;\r\n this.matAppApiUrl = e.matAppApiUrl;\r\n }\r\n })\r\n this.gs.dataRangeValue.subscribe((e: any) => {\r\n if (e) {\r\n this.clientId.next(e.client)\r\n } else if (!e) {\r\n const userData: any = JSON.parse(localStorage.getItem(\"user-info\") || \"{}\");\r\n this.clientId.next(userData?.clientId)\r\n }\r\n })\r\n }\r\n\r\n getBrandDetails(id: string): Observable<any> {\r\n return this.http.get(`${this.clientApiUrl}/client-details/${id}`)\r\n }\r\n\r\n getCountryCodes(): Observable<any> {\r\n return this.http.get(`${this.middlewareApiUrl}/country-code`,)\r\n }\r\n\r\n updateBrandInfo(id: string, fromdata: any): Observable<any> {\r\n return this.http.put(`${this.clientApiUrl}/brand-info/${id}`, fromdata)\r\n }\r\n\r\n updateBillingDetails(id: string, fromdata: any): Observable<any> {\r\n return this.http.put(`${this.clientApiUrl}/billing-details/${id}`, fromdata)\r\n }\r\n\r\n updateSignatoryDetails(id: string, fromdata: any): Observable<any> {\r\n return this.http.put(`${this.clientApiUrl}/signatory-details/${id}`, fromdata)\r\n }\r\n\r\n updateTicketConfiguration(id: string, fromdata: any): Observable<any> {\r\n return this.http.put(`${this.clientApiUrl}/ticket-configuration/${id}`, fromdata)\r\n }\r\n\r\n updateFeatureConfiguration(id: string, fromdata: any): Observable<any> {\r\n return this.http.put(`${this.clientApiUrl}/feature-configuration/${id}`, fromdata)\r\n }\r\n\r\n updateDomainDetailConfiguration(id: string, fromdata: any): Observable<any> {\r\n return this.http.put(`${this.clientApiUrl}/domain-details/${id}`, fromdata)\r\n }\r\n updateUserConfiguration(id: string, fromdata: any): Observable<any> {\r\n return this.http.put(`${this.clientApiUrl}/user-configuration/${id}`, fromdata)\r\n }\r\n updateDocuments(id: string, fromdata: any): Observable<any> {\r\n return this.http.put(`${this.clientApiUrl}/documents/${id}`, fromdata)\r\n }\r\n getStoreList(id: string): Observable<any> {\r\n return this.http.get(`${this.storeApiUrl}/get-stores?clientId=${id}`)\r\n }\r\n\r\n updateauditConfiguration(fromdata: any, id: string): Observable<any> {\r\n return this.http.post(`${this.clientApiUrl}/audit-configuration/${id}`, fromdata)\r\n }\r\n\r\n getAuditConfig(id: string): Observable<any> {\r\n return this.http.get(`${this.clientApiUrl}/audit-configuration/${id}`)\r\n }\r\n\r\n addReport(id: string, data: any): Observable<any> {\r\n return this.http.post(`${this.reportApiUrl}/create-report/${id}`, data)\r\n }\r\n\r\n getClientReports(id: string): Observable<any> {\r\n return this.http.get(`${this.reportApiUrl}/get-client-reports/${id}`)\r\n }\r\n\r\n getSingleReport(id: string): Observable<any> {\r\n return this.http.get(`${this.reportApiUrl}/get-report/${id}`)\r\n }\r\n\r\n updateReport(id: string, data: any): Observable<any> {\r\n return this.http.put(`${this.reportApiUrl}/update-report/${id}`, data)\r\n }\r\n\r\n deleteReport(reportId: string): Observable<any> {\r\n // return this.http.put(`${this.reportApiUrl}/delete-report/${id}`, data)\r\n return this.http.get<any>(`${this.reportApiUrl}/delete-report/${reportId}`);\r\n }\r\n\r\n getCsmUsers(): Observable<any> {\r\n return this.http.get(`${this.clientApiUrl}/get-csm-users`)\r\n }\r\n\r\n getOpsUsers(): Observable<any> {\r\n return this.http.get(`${this.clientApiUrl}/get-ops-users`)\r\n }\r\n\r\n getAllCountries(): Observable<any> {\r\n return this.http.get(`${this.middlewareApiUrl}/get-countries`)\r\n }\r\n\r\n getAllStates(country: string): Observable<any> {\r\n return this.http.get(`${this.middlewareApiUrl}/get-country-states?country=${country}`)\r\n }\r\n\r\n getAllCities(country: string, state: string): Observable<any> {\r\n return this.http.get(`${this.middlewareApiUrl}/get-state-cities?country=${country}&state=${state}`)\r\n }\r\n\r\n spocTableData(data: any): Observable<any> {\r\n return this.http.post(`${this.storeApiUrl}/get-spoc-list`, data)\r\n }\r\n\r\n spocTableDataExport(data: any): Observable<any> {\r\n return this.http.post(`${this.storeApiUrl}/get-spoc-list`, data, { responseType: 'arraybuffer' })\r\n }\r\n\r\n getSpocDetails(storeId: string, spocId: string): Observable<any> {\r\n return this.http.post(`${this.storeApiUrl}/get-spoc/${storeId}`, { spocId: spocId })\r\n }\r\n\r\n deleteSpocDetails(storeId: string, spocId: string): Observable<any> {\r\n return this.http.post(`${this.storeApiUrl}/delete-spoc/${storeId}`, { spocId: spocId })\r\n }\r\n\r\n updateSpocDetails(storeId: string, data: any): Observable<any> {\r\n return this.http.post(`${this.storeApiUrl}/update-spoc/${storeId}`, data)\r\n }\r\n\r\n getActivityLogs(data: any): Observable<any> {\r\n return this.http.post(`${this.clientApiUrl}/activity-log`, data)\r\n }\r\n\r\n assignCsm(data: any): Observable<any> {\r\n return this.http.post(`${this.userApiUrl}/assign-client`, data)\r\n }\r\n\r\n getAssignedUsers(clientId: string): Observable<any> {\r\n return this.http.get(`${this.userApiUrl}/get-assign-client?clientId=${clientId}`)\r\n }\r\n\r\n emailUserList(data: any): Observable<any> {\r\n return this.http.post(`${this.ticketsApiUrl}/infra/emailUserList`, data)\r\n }\r\n\r\n saveInfraEmailConfig(data: any): Observable<any> {\r\n return this.http.post(`${this.ticketsApiUrl}/infra/saveInfraEmailConfig`, data)\r\n }\r\n\r\n updateTicketConfig(id: string, fromdata: any): Observable<any> {\r\n return this.http.put(`${this.matAppApiUrl}/updateTicketConfig/?clientId=${id}`, fromdata)\r\n }\r\n getTicketConfig(id: string): Observable<any> {\r\n return this.http.get(`${this.matAppApiUrl}/getTicketConfig?clientId=${id}`)\r\n }\r\n saveAsTemplate(buffer: any, fileName: string): void {\r\n const data: Blob = new Blob([buffer], {\r\n type: EXCEL_TYPE\r\n });\r\n FileSaver.saveAs(data, fileName + EXCEL_EXTENSION);\r\n }\r\n\r\n}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { GlobalStateService, PageInfoService } from 'tango-app-ui-global';\r\nimport { ClientApiService } from '../../services/client-api.service';\r\nimport { BehaviorSubject, Subject, takeUntil } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'lib-tango-manage-settings',\r\n templateUrl: './tango-manage-settings.component.html',\r\n styleUrl: './tango-manage-settings.component.scss'\r\n})\r\nexport class TangoManageSettingsComponent implements OnInit, OnDestroy {\r\n clientData: any;\r\n private readonly destroy$ = new Subject();\r\n pageState$ = new BehaviorSubject<'loaded' | 'loading'>('loading');\r\n \r\n\r\n constructor(private pageInfo: PageInfoService, private clientApi: ClientApiService, public gs:GlobalStateService) {\r\n this.getClientData()\r\n this.clientApi.clientFormData.pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if (e.type === 'submitted') {\r\n this.getClientData()\r\n }\r\n })\r\n }\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n this.pageState$.complete();\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.setPageData()\r\n }\r\n\r\n setPageData() {\r\n this.pageInfo.setTitle('Settings')\r\n this.pageInfo.setDescription('Edit and configure your brand account details')\r\n this.pageInfo.setBreadcrumbs([\r\n { title: 'Manage', path: '/manage', isActive: false, isSeparator: false },\r\n { title: 'Manage', path: '/manage', isActive: false, isSeparator: true },\r\n ])\r\n }\r\n\r\n\r\n getClientData() {\r\n this.clientApi.clientId.pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if (e) {\r\n this.pageState$.next('loading')\r\n this.clientApi.getBrandDetails(e).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (res) => {\r\n this.clientApi.clientData.next(res.data)\r\n this.pageState$.next('loaded')\r\n },\r\n error: (error) => {\r\n console.log(error);\r\n }\r\n })\r\n }\r\n })\r\n\r\n }\r\n\r\n\r\n\r\n}\r\n","<div class=\"row mb-5\">\r\n <div class=\"col-md-3\">\r\n <div class=\"card \">\r\n <div class=\"m-0 w-100\">\r\n <div *ngIf=\"(gs.userAccess | async)?.settings_brandDetails_isView\" class=\"mb-3\"><a routerLink=\"/manage/settings/brand-detail\" routerLinkActive=\"active\"\r\n [routerLinkActiveOptions]=\"{exact: true}\"\r\n #BR=\"routerLinkActive\" class=\"custom-list d-flex align-items-center px-5 py-4\"\r\n [ngClass]=\"BR.isActive ? 'btn text-tab' : ''\">\r\n <div class=\"me-4\"><span><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g clip-path=\"url(#clip0_1842_19728)\">\r\n <path [ngClass]=\" BR.isActive ? 'fillpath' : ''\"\r\n d=\"M2.625 24C1.92881 24 1.26113 23.7234 0.768845 23.2312C0.276562 22.7389 0 22.0712 0 21.375L0 2.625C0 1.176 1.176 0 2.625 0H15.375C16.824 0 18 1.176 18 2.625V21.375C18 21.5025 17.991 21.627 17.973 21.75H21.375C21.4745 21.75 21.5698 21.7105 21.6402 21.6402C21.7105 21.5698 21.75 21.4745 21.75 21.375V12.4275C21.75 12.3658 21.7349 12.3051 21.7058 12.2506C21.6768 12.1962 21.6348 12.1498 21.5835 12.1155L20.001 11.061C19.8781 10.9791 19.7725 10.8737 19.6903 10.751C19.6081 10.6282 19.5509 10.4905 19.5219 10.3456C19.4929 10.2008 19.4928 10.0516 19.5215 9.90669C19.5501 9.76177 19.6071 9.62392 19.689 9.501C19.7709 9.37808 19.8763 9.27251 19.999 9.19031C20.1218 9.10811 20.2595 9.05089 20.4044 9.02191C20.5492 8.99294 20.6984 8.99279 20.8433 9.02145C20.9882 9.05012 21.1261 9.10706 21.249 9.189L22.8315 10.2435C23.562 10.731 24 11.55 24 12.4275V21.375C24 22.0712 23.7234 22.7389 23.2312 23.2312C22.7389 23.7234 22.0712 24 21.375 24H16.125C16.0252 23.9999 15.9259 23.9868 15.8295 23.961C15.681 23.9865 15.5295 24 15.375 24H10.875C10.5766 24 10.2905 23.8815 10.0795 23.6705C9.86853 23.4595 9.75 23.1734 9.75 22.875V21H8.25V22.875C8.25 23.1734 8.13147 23.4595 7.9205 23.6705C7.70952 23.8815 7.42337 24 7.125 24H2.625ZM2.25 21.375C2.25 21.582 2.418 21.75 2.625 21.75H6V19.875C6 19.5766 6.11853 19.2905 6.3295 19.0795C6.54048 18.8685 6.82663 18.75 7.125 18.75H10.875C11.1734 18.75 11.4595 18.8685 11.6705 19.0795C11.8815 19.2905 12 19.5766 12 19.875V21.75H15.375C15.4745 21.75 15.5698 21.7105 15.6402 21.6402C15.7105 21.5698 15.75 21.4745 15.75 21.375V2.625C15.75 2.52554 15.7105 2.43016 15.6402 2.35984C15.5698 2.28951 15.4745 2.25 15.375 2.25H2.625C2.52554 2.25 2.43016 2.28951 2.35984 2.35984C2.28951 2.43016 2.25 2.52554 2.25 2.625V21.375ZM5.625 9H6.375C6.67337 9 6.95952 9.11853 7.1705 9.3295C7.38147 9.54048 7.5 9.82663 7.5 10.125C7.5 10.4234 7.38147 10.7095 7.1705 10.9205C6.95952 11.1315 6.67337 11.25 6.375 11.25H5.625C5.32663 11.25 5.04048 11.1315 4.8295 10.9205C4.61853 10.7095 4.5 10.4234 4.5 10.125C4.5 9.82663 4.61853 9.54048 4.8295 9.3295C5.04048 9.11853 5.32663 9 5.625 9ZM4.5 5.625C4.5 5.32663 4.61853 5.04048 4.8295 4.8295C5.04048 4.61853 5.32663 4.5 5.625 4.5H6.375C6.67337 4.5 6.95952 4.61853 7.1705 4.8295C7.38147 5.04048 7.5 5.32663 7.5 5.625C7.5 5.92337 7.38147 6.20952 7.1705 6.4205C6.95952 6.63147 6.67337 6.75 6.375 6.75H5.625C5.32663 6.75 5.04048 6.63147 4.8295 6.4205C4.61853 6.20952 4.5 5.92337 4.5 5.625ZM10.5 10.125C10.5 9.82663 10.6185 9.54048 10.8295 9.3295C11.0405 9.11853 11.3266 9 11.625 9H12.375C12.6734 9 12.9595 9.11853 13.1705 9.3295C13.3815 9.54048 13.5 9.82663 13.5 10.125C13.5 10.4234 13.3815 10.7095 13.1705 10.9205C12.9595 11.1315 12.6734 11.25 12.375 11.25H11.625C11.3266 11.25 11.0405 11.1315 10.8295 10.9205C10.6185 10.7095 10.5 10.4234 10.5 10.125ZM11.625 4.5H12.375C12.6734 4.5 12.9595 4.61853 13.1705 4.8295C13.3815 5.04048 13.5 5.32663 13.5 5.625C13.5 5.92337 13.3815 6.20952 13.1705 6.4205C12.9595 6.63147 12.6734 6.75 12.375 6.75H11.625C11.3266 6.75 11.0405 6.63147 10.8295 6.4205C10.6185 6.20952 10.5 5.92337 10.5 5.625C10.5 5.32663 10.6185 5.04048 10.8295 4.8295C11.0405 4.61853 11.3266 4.5 11.625 4.5ZM4.5 14.625C4.5 14.3266 4.61853 14.0405 4.8295 13.8295C5.04048 13.6185 5.32663 13.5 5.625 13.5H6.375C6.67337 13.5 6.95952 13.6185 7.1705 13.8295C7.38147 14.0405 7.5 14.3266 7.5 14.625C7.5 14.9234 7.38147 15.2095 7.1705 15.4205C6.95952 15.6315 6.67337 15.75 6.375 15.75H5.625C5.32663 15.75 5.04048 15.6315 4.8295 15.4205C4.61853 15.2095 4.5 14.9234 4.5 14.625ZM11.625 13.5H12.375C12.6734 13.5 12.9595 13.6185 13.1705 13.8295C13.3815 14.0405 13.5 14.3266 13.5 14.625C13.5 14.9234 13.3815 15.2095 13.1705 15.4205C12.9595 15.6315 12.6734 15.75 12.375 15.75H11.625C11.3266 15.75 11.0405 15.6315 10.8295 15.4205C10.6185 15.2095 10.5 14.9234 10.5 14.625C10.5 14.3266 10.6185 14.0405 10.8295 13.8295C11.0405 13.6185 11.3266 13.5 11.625 13.5Z\"\r\n fill=\"#667085\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1842_19728\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"d-flex flex-column\">\r\n <div [ngClass]=\" BR.isActive ? ' text-tab' : ''\" class=\"sideheading mb-1\">Brand Details\r\n </div>\r\n </div>\r\n </a></div>\r\n <div *ngIf=\"(gs.userAccess | async)?.settings_configuration_isView \" class=\"mb-3\"><a routerLink=\"/manage/settings/configuration\" routerLinkActive=\"active\"\r\n #CON=\"routerLinkActive\" class=\"custom-list d-flex align-items-center px-5 py-4\"\r\n [ngClass]=\"CON.isActive ? 'btn text-tab' : ''\">\r\n <div class=\"me-4\"><span>\r\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g clip-path=\"url(#clip0_1842_19733)\">\r\n <path [ngClass]=\" CON.isActive ? 'fillstroke' : ''\"\r\n d=\"M12 15C13.6569 15 15 13.6569 15 12C15 10.3431 13.6569 9 12 9C10.3431 9 9 10.3431 9 12C9 13.6569 10.3431 15 12 15Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path [ngClass]=\" CON.isActive ? 'fillstroke' : ''\"\r\n d=\"M19.4 15C19.2669 15.3016 19.2272 15.6362 19.286 15.9606C19.3448 16.285 19.4995 16.5843 19.73 16.82L19.79 16.88C19.976 17.0657 20.1235 17.2863 20.2241 17.5291C20.3248 17.7719 20.3766 18.0322 20.3766 18.295C20.3766 18.5578 20.3248 18.8181 20.2241 19.0609C20.1235 19.3037 19.976 19.5243 19.79 19.71C19.6043 19.896 19.3837 20.0435 19.1409 20.1441C18.8981 20.2448 18.6378 20.2966 18.375 20.2966C18.1122 20.2966 17.8519 20.2448 17.6091 20.1441C17.3663 20.0435 17.1457 19.896 16.96 19.71L16.9 19.65C16.6643 19.4195 16.365 19.2648 16.0406 19.206C15.7162 19.1472 15.3816 19.1869 15.08 19.32C14.7842 19.4468 14.532 19.6572 14.3543 19.9255C14.1766 20.1938 14.0813 20.5082 14.08 20.83V21C14.08 21.5304 13.8693 22.0391 13.4942 22.4142C13.1191 22.7893 12.6104 23 12.08 23C11.5496 23 11.0409 22.7893 10.6658 22.4142C10.2907 22.0391 10.08 21.5304 10.08 21V20.91C10.0723 20.579 9.96512 20.258 9.77251 19.9887C9.5799 19.7194 9.31074 19.5143 9 19.4C8.69838 19.2669 8.36381 19.2272 8.03941 19.286C7.71502 19.3448 7.41568 19.4995 7.18 19.73L7.12 19.79C6.93425 19.976 6.71368 20.1235 6.47088 20.2241C6.22808 20.3248 5.96783 20.3766 5.705 20.3766C5.44217 20.3766 5.18192 20.3248 4.93912 20.2241C4.69632 20.1235 4.47575 19.976 4.29 19.79C4.10405 19.6043 3.95653 19.3837 3.85588 19.1409C3.75523 18.8981 3.70343 18.6378 3.70343 18.375C3.70343 18.1122 3.75523 17.8519 3.85588 17.6091C3.95653 17.3663 4.10405 17.1457 4.29 16.96L4.35 16.9C4.58054 16.6643 4.73519 16.365 4.794 16.0406C4.85282 15.7162 4.81312 15.3816 4.68 15.08C4.55324 14.7842 4.34276 14.532 4.07447 14.3543C3.80618 14.1766 3.49179 14.0813 3.17 14.08H3C2.46957 14.08 1.96086 13.8693 1.58579 13.4942C1.21071 13.1191 1 12.6104 1 12.08C1 11.5496 1.21071 11.0409 1.58579 10.6658C1.96086 10.2907 2.46957 10.08 3 10.08H3.09C3.42099 10.0723 3.742 9.96512 4.0113 9.77251C4.28059 9.5799 4.48572 9.31074 4.6 9C4.73312 8.69838 4.77282 8.36381 4.714 8.03941C4.65519 7.71502 4.50054 7.41568 4.27 7.18L4.21 7.12C4.02405 6.93425 3.87653 6.71368 3.77588 6.47088C3.67523 6.22808 3.62343 5.96783 3.62343 5.705C3.62343 5.44217 3.67523 5.18192 3.77588 4.93912C3.87653 4.69632 4.02405 4.47575 4.21 4.29C4.39575 4.10405 4.61632 3.95653 4.85912 3.85588C5.10192 3.75523 5.36217 3.70343 5.625 3.70343C5.88783 3.70343 6.14808 3.75523 6.39088 3.85588C6.63368 3.95653 6.85425 4.10405 7.04 4.29L7.1 4.35C7.33568 4.58054 7.63502 4.73519 7.95941 4.794C8.28381 4.85282 8.61838 4.81312 8.92 4.68H9C9.29577 4.55324 9.54802 4.34276 9.72569 4.07447C9.90337 3.80618 9.99872 3.49179 10 3.17V3C10 2.46957 10.2107 1.96086 10.5858 1.58579C10.9609 1.21071 11.4696 1 12 1C12.5304 1 13.0391 1.21071 13.4142 1.58579C13.7893 1.96086 14 2.46957 14 3V3.09C14.0013 3.41179 14.0966 3.72618 14.2743 3.99447C14.452 4.26276 14.7042 4.47324 15 4.6C15.3016 4.73312 15.6362 4.77282 15.9606 4.714C16.285 4.65519 16.5843 4.50054 16.82 4.27L16.88 4.21C17.0657 4.02405 17.2863 3.87653 17.5291 3.77588C17.7719 3.67523 18.0322 3.62343 18.295 3.62343C18.5578 3.62343 18.8181 3.67523 19.0609 3.77588C19.3037 3.87653 19.5243 4.02405 19.71 4.21C19.896 4.39575 20.0435 4.61632 20.1441 4.85912C20.2448 5.10192 20.2966 5.36217 20.2966 5.625C20.2966 5.88783 20.2448 6.14808 20.1441 6.39088C20.0435 6.63368 19.896 6.85425 19.71 7.04L19.65 7.1C19.4195 7.33568 19.2648 7.63502 19.206 7.95941C19.1472 8.28381 19.1869 8.61838 19.32 8.92V9C19.4468 9.29577 19.6572 9.54802 19.9255 9.72569C20.1938 9.90337 20.5082 9.99872 20.83 10H21C21.5304 10 22.0391 10.2107 22.4142 10.5858C22.7893 10.9609 23 11.4696 23 12C23 12.5304 22.7893 13.0391 22.4142 13.4142C22.0391 13.7893 21.5304 14 21 14H20.91C20.5882 14.0013 20.2738 14.0966 20.0055 14.2743C19.7372 14.452 19.5268 14.7042 19.4 15Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1842_19733\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"d-flex flex-column\">\r\n <div [ngClass]=\" CON.isActive ? ' text-tab' : ''\" class=\"sideheading mb-1\">Configuration\r\n </div>\r\n </div>\r\n </a></div>\r\n <div *ngIf=\"(gs.userAccess | async)?.settings_contactDirectory_isView \" class=\"mb-3\"><a routerLink=\"/manage/settings/contact-directory\" routerLinkActive=\"active\"\r\n #CONDIR=\"routerLinkActive\" class=\"custom-list d-flex align-items-center px-5 py-4\"\r\n [ngClass]=\"CONDIR.isActive ? 'btn text-tab' : ''\">\r\n <div class=\"me-4\"><span>\r\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path [ngClass]=\"CONDIR.isActive ? 'fillstroke' : ''\"\r\n d=\"M17 21V19C17 17.9391 16.5786 16.9217 15.8284 16.1716C15.0783 15.4214 14.0609 15 13 15H5C3.93913 15 2.92172 15.4214 2.17157 16.1716C1.42143 16.9217 1 17.9391 1 19V21M23 21V19C22.9993 18.1137 22.7044 17.2528 22.1614 16.5523C21.6184 15.8519 20.8581 15.3516 20 15.13M16 3.13C16.8604 3.3503 17.623 3.8507 18.1676 4.55231C18.7122 5.25392 19.0078 6.11683 19.0078 7.005C19.0078 7.89317 18.7122 8.75608 18.1676 9.45769C17.623 10.1593 16.8604 10.6597 16 10.88M13 7C13 9.20914 11.2091 11 9 11C6.79086 11 5 9.20914 5 7C5 4.79086 6.79086 3 9 3C11.2091 3 13 4.79086 13 7Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"d-flex flex-column\">\r\n <div [ngClass]=\" CONDIR.isActive ? ' text-tab' : ''\" class=\"sideheading mb-1\">Contact\r\n Directory</div>\r\n </div>\r\n </a></div>\r\n <div *ngIf=\"(gs.userAccess | async)?.settings_paymentSubscriptions_isView \" class=\"mb-3\"><a routerLink=\"/manage/settings/payment-subscription\" routerLinkActive=\"active\"\r\n #sa=\"routerLinkActive\" class=\"custom-list d-flex align-items-center px-5 py-4\"\r\n [ngClass]=\"sa.isActive ? 'btn text-tab' : ''\">\r\n <div class=\" me-4\"><span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path [ngClass]=\"sa.isActive ? 'fillstroke' : ''\"\r\n d=\"M14.1755 4.22225C14.1766 2.99445 11.6731 2 8.58832 2C5.50357 2 3.00224 2.99557 3 4.22225M3 4.22225C3 5.45004 5.50133 6.44449 8.58832 6.44449C11.6753 6.44449 14.1766 5.45004 14.1766 4.22225L14.1766 12.8445M3 4.22225V17.5556C3.00112 18.7834 5.50245 19.7779 8.58832 19.7779C10.0849 19.7779 11.4361 19.5412 12.4387 19.1601M3.00112 8.66672C3.00112 9.89451 5.50245 10.889 8.58944 10.889C11.6764 10.889 14.1778 9.89451 14.1778 8.66672M12.5057 14.6946C11.4976 15.0891 10.115 15.3335 8.58832 15.3335C5.50245 15.3335 3.00112 14.3391 3.00112 13.1113M20.5272 13.4646C22.4909 15.4169 22.4909 18.5836 20.5272 20.5358C18.5635 22.4881 15.3781 22.4881 13.4144 20.5358C11.4507 18.5836 11.4507 15.4169 13.4144 13.4646C15.3781 11.5124 18.5635 11.5124 20.5272 13.4646Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n\r\n </span>\r\n </div>\r\n <div class=\"d-flex flex-column \">\r\n <div [ngClass]=\"sa.isActive ? 'text-tab' : ''\" class=\"sideheading mb-1\">Payments &\r\n Subscription</div>\r\n </div>\r\n </a></div>\r\n <div *ngIf=\"(gs.userAccess | async)?.settings_documents_isView \" class=\"mb-3\"><a routerLink=\"/manage/settings/documents\" routerLinkActive=\"active\"\r\n #DOC=\"routerLinkActive\" class=\"custom-list d-flex align-items-center px-5 py-4\"\r\n [ngClass]=\"DOC.isActive ? 'btn text-tab' : ''\">\r\n <div class=\"me-4\"><span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"\r\n fill=\"none\">\r\n <path [ngClass]=\" DOC.isActive ? 'fillstroke' : ''\"\r\n d=\"M14 2H6C5.46957 2 4.96086 2.21071 4.58579 2.58579C4.21071 2.96086 4 3.46957 4 4V20C4 20.5304 4.21071 21.0391 4.58579 21.4142C4.96086 21.7893 5.46957 22 6 22H18C18.5304 22 19.0391 21.7893 19.4142 21.4142C19.7893 21.0391 20 20.5304 20 20V8M14 2L20 8M14 2V8H20M16 13H8M16 17H8M10 9H8\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"d-flex flex-column\">\r\n <div [ngClass]=\" DOC.isActive ? ' text-tab' : ''\" class=\"sideheading mb-1\">Documents</div>\r\n </div>\r\n </a></div>\r\n <div *ngIf=\"(gs.userAccess | async)?.settings_activityLog_isView \" class=\"mb-3\"><a routerLink=\"/manage/settings/activity-logs\" routerLinkActive=\"active\"\r\n #ACT=\"routerLinkActive\" class=\"custom-list d-flex align-items-center px-5 py-4\"\r\n [ngClass]=\"ACT.isActive ? 'btn text-tab' : ''\">\r\n <div class=\"me-4\"><span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path [ngClass]=\" ACT.isActive ? 'fillstroke fillpath' : ''\"\r\n d=\"M18.1539 7.72911L18.0341 7.85239L18.1539 7.72911C17.9972 7.57686 17.7859 7.49231 17.5667 7.49231H8.7C8.48081 7.49231 8.26948 7.57686 8.11279 7.72911C7.9559 7.88155 7.86667 8.08955 7.86667 8.30769C7.86667 8.52583 7.9559 8.73383 8.11279 8.88627C8.26948 9.03853 8.48081 9.12308 8.7 9.12308H17.5667C17.7859 9.12308 17.9972 9.03853 18.1539 8.88627C18.3108 8.73383 18.4 8.52583 18.4 8.30769C18.4 8.08955 18.3108 7.88155 18.1539 7.72911ZM3.04612 4.0368C2.88924 4.18924 2.8 4.39725 2.8 4.61538C2.8 4.83352 2.88924 5.04152 3.04612 5.19397C3.20282 5.34622 3.41415 5.43077 3.63333 5.43077H6.16667C6.38585 5.43077 6.59718 5.34622 6.75388 5.19397C6.91076 5.04152 7 4.83352 7 4.61538C7 4.39725 6.91076 4.18924 6.75388 4.0368C6.59718 3.88455 6.38585 3.8 6.16667 3.8H3.63333C3.41415 3.8 3.20282 3.88455 3.04612 4.0368ZM8.11279 4.0368C7.9559 4.18924 7.86667 4.39725 7.86667 4.61538C7.86667 4.83352 7.9559 5.04152 8.11279 5.19397C8.26948 5.34622 8.48081 5.43077 8.7 5.43077H21.3667C21.5859 5.43077 21.7972 5.34622 21.9539 5.19397C22.1108 5.04152 22.2 4.83352 22.2 4.61538C22.2 4.39725 22.1108 4.18924 21.9539 4.0368C21.7972 3.88455 21.5859 3.8 21.3667 3.8H8.7C8.48081 3.8 8.26948 3.88455 8.11279 4.0368ZM3.04612 11.4214C2.88924 11.5739 2.8 11.7819 2.8 12C2.8 12.2181 2.88924 12.4261 3.04612 12.5786C3.20282 12.7308 3.41414 12.8154 3.63333 12.8154H6.16667C6.38586 12.8154 6.59718 12.7308 6.75388 12.5786C6.91076 12.4261 7 12.2181 7 12C7 11.7819 6.91076 11.5739 6.75388 11.4214C6.59718 11.2692 6.38585 11.1846 6.16667 11.1846H3.63333C3.41415 11.1846 3.20282 11.2692 3.04612 11.4214ZM8.11279 11.4214C7.9559 11.5739 7.86667 11.7819 7.86667 12C7.86667 12.2181 7.9559 12.4261 8.11279 12.5786C8.26948 12.7308 8.48081 12.8154 8.7 12.8154H21.3667C21.5859 12.8154 21.7972 12.7308 21.9539 12.5786C22.1108 12.4261 22.2 12.2181 22.2 12C22.2 11.7819 22.1108 11.5739 21.9539 11.4214C21.7972 11.2692 21.5859 11.1846 21.3667 11.1846H8.7C8.48081 11.1846 8.26948 11.2692 8.11279 11.4214ZM8.11279 15.1137C7.9559 15.2662 7.86667 15.4742 7.86667 15.6923C7.86667 15.9104 7.9559 16.1184 8.11279 16.2709C8.26948 16.4231 8.48081 16.5077 8.7 16.5077H17.5667C17.7859 16.5077 17.9972 16.4231 18.1539 16.2709C18.3108 16.1184 18.4 15.9104 18.4 15.6923C18.4 15.4742 18.3108 15.2662 18.1539 15.1137C17.9972 14.9615 17.7859 14.8769 17.5667 14.8769H8.7C8.48081 14.8769 8.26948 14.9615 8.11279 15.1137ZM3.04612 18.806C2.88924 18.9585 2.8 19.1665 2.8 19.3846C2.8 19.6028 2.88924 19.8108 3.04612 19.9632C3.20282 20.1155 3.41415 20.2 3.63333 20.2H6.16667C6.38585 20.2 6.59718 20.1155 6.75388 19.9632C6.91076 19.8108 7 19.6028 7 19.3846C7 19.1665 6.91076 18.9585 6.75388 18.806C6.59718 18.6538 6.38585 18.5692 6.16667 18.5692H3.63333C3.41415 18.5692 3.20282 18.6538 3.04612 18.806ZM8.11279 18.806C7.9559 18.9585 7.86667 19.1665 7.86667 19.3846C7.86667 19.6028 7.9559 19.8108 8.11279 19.9632C8.26948 20.1155 8.48081 20.2 8.7 20.2H21.3667C21.5859 20.2 21.7972 20.1155 21.9539 19.9632C22.1108 19.8108 22.2 19.6028 22.2 19.3846C22.2 19.1665 22.1108 18.9585 21.9539 18.806C21.7972 18.6538 21.5859 18.5692 21.3667 18.5692H8.7C8.48081 18.5692 8.26948 18.6538 8.11279 18.806Z\"\r\n fill=\"#667085\" stroke=\"#667085\" stroke-width=\"0.4\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"d-flex flex-column\">\r\n <div [ngClass]=\" ACT.isActive ? ' text-tab' : ''\" class=\"sideheading mb-1\">Activity Log</div>\r\n </div>\r\n </a></div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-9\">\r\n <ng-container *ngIf=\"pageState$ | async as pageState\" >\r\n <ng-container [ngSwitch]=\"pageState\" >\r\n <ng-container *ngSwitchCase=\"'loaded'\" >\r\n <router-outlet></router-outlet>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'loading'\" >\r\n <div class=\"shimmer-card w-100\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n </div>\r\n</div>","import { ChangeDetectorRef, Component, HostListener, Input, OnInit, Provider, forwardRef } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { ClientApiService } from '../../services/client-api.service';\r\n\r\nconst SELECT_CONTROL_VALUE_ACCESSOR: Provider = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ReactiveSelectComponent),\r\n multi: true,\r\n};\r\n\r\n@Component({\r\n selector: 'lib-reactive-select',\r\n templateUrl: './reactive-select.component.html',\r\n styleUrl: './reactive-select.component.scss',\r\n providers: [SELECT_CONTROL_VALUE_ACCESSOR]\r\n})\r\nexport class ReactiveSelectComponent implements ControlValueAccessor, OnInit {\r\n\r\n private onTouched: Function;\r\n private onChanged: Function;\r\n protected isDisabled: boolean;\r\n @Input() idField: string\r\n @Input() nameField: string\r\n @Input() label: string\r\n @Input() data: any\r\n protected isOpened: boolean = false\r\n protected selected: Record<string, any> | null = null\r\n protected selectedId: string | number\r\n instanceId: string;\r\n\r\n\r\n constructor(private apiService: ClientApiService, private cd: ChangeDetectorRef) {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.instanceId = crypto.randomUUID();\r\n this.apiService.dropDownTrigger.subscribe((e) => {\r\n if (e !== this.instanceId) {\r\n this.isOpened = false\r\n this.cd.detectChanges()\r\n }\r\n })\r\n }\r\n\r\n\r\n writeValue(val: string | number): void {\r\n this.selectedId = val\r\n this.selected = this.data.filter((item: Record<string, any>) => item?.[this.idField] === val)[0]\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChanged = fn\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.isDisabled = isDisabled\r\n\r\n }\r\n\r\n onSelect(item: Record<string, any>) {\r\n this.onTouched()\r\n this.selected = item\r\n this.selectedId = item?.[this.idField]\r\n this.isOpened = false\r\n this.onChanged(this.selectedId)\r\n }\r\n\r\n @HostListener('document:click', ['$event'])\r\n onClick(event: MouseEvent) {\r\n if (!this.isDisabled) {\r\n const targetElement = event.target as HTMLElement;\r\n if (!this.isComponentClicked(targetElement)) {\r\n this.isOpened = false;\r\n }\r\n }\r\n }\r\n\r\n isComponentClicked(targetElement: HTMLElement): boolean {\r\n const parentElement = targetElement.parentElement;\r\n if (parentElement) {\r\n const clickedOnComponent = parentElement.classList.contains('custom-select');\r\n if (clickedOnComponent) {\r\n return true;\r\n } else {\r\n return this.isComponentClicked(parentElement);\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n openDropdown(){\r\n this.isOpened = !this.isOpened;\r\n this.apiService.dropDownTrigger.next(this.instanceId)\r\n }\r\n\r\n\r\n}\r\n","<div class=\"custom-select\">\r\n <div class=\"form-group\">\r\n <label *ngIf=\"label\" class=\"form-label\">{{label}}</label>\r\n <div class=\"position-relative\">\r\n <div (click)=\"openDropdown()\" [ngClass]=\"isDisabled ? 'disable' : ''\" class=\"form-select dropselect\">\r\n {{selected?.[nameField]}}</div>\r\n <div *ngIf=\"isOpened\" class=\"card py-2 w-100 position-absolute end-0 z-1 drop-list\">\r\n <ul class=\"list-unstyled mb-2\">\r\n <li *ngFor=\"let item of data\" (click)=\"onSelect(item)\"\r\n [ngClass]=\"item?.[idField] === selected?.[idField] ? 'active' : ''\"\r\n class=\"text px-5 items cursor-pointer py-4\">\r\n {{item?.[nameField]}}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { ChangeDetectorRef, Component, ElementRef, OnDestroy, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { ClientApiService } from '../../../services/client-api.service';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\n\r\n@Component({\r\n selector: 'lib-brand-info',\r\n templateUrl: './brand-info.component.html',\r\n styleUrl: './brand-info.component.scss'\r\n})\r\nexport class BrandInfoComponent implements OnDestroy {\r\n\r\n brandInfoForm: FormGroup\r\n @ViewChild('imageInput') uploadInput: ElementRef<HTMLElement>;\r\n brandLogo: any\r\n countryList: any = [];\r\n private readonly destroy$ = new Subject();\r\n logoFile: File;\r\n industry = [\r\n { value: \"apparel\", label: \"Apparel\" },\r\n { value: \"bagsandluggage\", label: \"Bags and Luggage\" },\r\n { value: \"cafesandrestaurants\", label: \"Cafes and Restaurants\" },\r\n { value: \"electronics\", label: \"Electronics\" },\r\n { value: \"ev\", label: \"EV\" },\r\n { value: \"eyewear\", label: \"Eyewear\" },\r\n { value: \"fashionaccessories\", label: \"Fashion Accessories\" },\r\n { value: \"fashionandlifestyle\", label: \"Fashion And Lifestyle\" },\r\n { value: \"fintech\", label: \"Fintech\" },\r\n { value: \"foodandbeverage\", label: \"Food and Beverage\" },\r\n { value: \"footwear\", label: \"Footwear\" },\r\n { value: \"furniture\", label: \"Furniture\" },\r\n { value: \"gamingcentre\", label: \"Gaming Centre\" },\r\n { value: \"gourmet\", label: \"Gourmet\" },\r\n { value: \"grooming\", label: \"Grooming\" },\r\n { value: \"hospital\", label: \"Hospital\" },\r\n { value: \"interiordesign\", label: \"Interior Design\" },\r\n { value: \"leather\", label: \"Leather\" },\r\n { value: \"mattress\", label: \"Mattress\" },\r\n { value: \"nutrition\", label: \"Nutrition\" },\r\n { value: \"perfume\", label: \"Perfume\" },\r\n { value: \"skincare\", label: \"Skincare\" },\r\n { value: \"techstartup\", label: \"Tech Startup\" }\r\n ]\r\n\r\n clientType = [\r\n { value: \"partnership\", label: \"Partnership\" },\r\n { value: \"proprietorship\", label: \"Proprietorship\" },\r\n { value: \"pvtltd\", label: \"Pvt. Ltd\" },\r\n { value: \"person\", label: \"Person\" },\r\n ]\r\n\r\n status = [\r\n { value: \"active\", label: \"Active\" },\r\n { value: \"hold\", label: \"Hold\" },\r\n { value: \"suspended\", label: \"Suspend\" },\r\n { value: \"deactive\", label: \"Deactive\" },\r\n ]\r\n\r\n\r\n constructor(private fb: FormBuilder, private apiService: ClientApiService, private cd: ChangeDetectorRef, public gs: GlobalStateService) {\r\n this.initForm()\r\n this.getCountryCodes()\r\n this.apiService.clientFormData.pipe(takeUntil(this.destroy$)).subscribe((res) => {\r\n if (res) {\r\n if (res.type === 'input' && res.form === 'brand-info') {\r\n this.patchForm(res.value)\r\n }\r\n }\r\n })\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n\r\n initForm() {\r\n this.brandInfoForm = this.fb.group({\r\n brandName: [''],\r\n registeredCompanyName: [''],\r\n industry: [''],\r\n clientType: [''],\r\n corporateEmail: [''],\r\n countryCode: [''],\r\n mobileNumber: [''],\r\n registeredAddress: [''],\r\n headQuarters: [''],\r\n website: [''],\r\n status: [''],\r\n logo: ['']\r\n });\r\n this.brandInfoForm.disable()\r\n }\r\n\r\n getCountryCodes() {\r\n this.apiService.getAllCountries().pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (res: any) => {\r\n this.countryList = res.data\r\n this.cd.detectChanges()\r\n },\r\n error: (err: any) => {\r\n }\r\n })\r\n }\r\n\r\n patchForm(data: any) {\r\n this.brandInfoForm.patchValue(\r\n {\r\n ...data\r\n }\r\n )\r\n\r\n this.brandLogo = data.logo\r\n this.cd.detectChanges()\r\n }\r\n\r\n triggerFileInput() {\r\n this.uploadInput.nativeElement.click()\r\n }\r\n\r\n onFileSelect(event: any) {\r\n if (event.target.files && event.target.files[0]) {\r\n let file: File = event.target.files[0];\r\n this.logoFile = file\r\n var reader = new FileReader();\r\n reader.onload = (e: any) => {\r\n this.brandLogo = e.target.result;\r\n this.cd.detectChanges()\r\n }\r\n reader.readAsDataURL(event.target.files[0]);\r\n\r\n }\r\n }\r\n\r\n onCancel() {\r\n this.brandInfoForm.disable()\r\n this.apiService.clientFormData.next({ value: null, type: 'cancel', form: 'brand-info' })\r\n }\r\n\r\n onSubmit() {\r\n if (this.logoFile) {\r\n this.brandInfoForm.value.logo = this.logoFile\r\n }\r\n\r\n delete this.brandInfoForm.value.brandName\r\n delete this.brandInfoForm.value.corporateEmail\r\n delete this.brandInfoForm.value.countryCode\r\n delete this.brandInfoForm.value.mobileNumber\r\n this.apiService.clientFormData.next({ value: this.brandInfoForm.value, type: 'submit', form: 'brand-info' })\r\n }\r\n omit_special_char(event: any) {\r\n var k;\r\n k = event.charCode;\r\n return (k == 8 || k == 32 || (k >= 48 && k <= 57));\r\n }\r\n\r\n}\r\n","<form [formGroup]=\"brandInfoForm\" >\r\n<div class=\"row\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_brandDetails_isEdit \">\r\n <div *ngIf=\"brandInfoForm.disabled\" class=\"col-12 mb-5\">\r\n <div class=\" d-flex justify-content-end\">\r\n <button (click)=\"brandInfoForm.disabled ? brandInfoForm.enable() : brandInfoForm.disable()\" type=\"button\" class=\"btn btn-outline align-items-end\"><span class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2579_25125)\">\r\n <path\r\n d=\"M14.167 2.49993C14.3859 2.28106 14.6457 2.10744 14.9317 1.98899C15.2176 1.87054 15.5241 1.80957 15.8337 1.80957C16.1432 1.80957 16.4497 1.87054 16.7357 1.98899C17.0216 2.10744 17.2815 2.28106 17.5003 2.49993C17.7192 2.7188 17.8928 2.97863 18.0113 3.2646C18.1297 3.55057 18.1907 3.85706 18.1907 4.16659C18.1907 4.47612 18.1297 4.78262 18.0113 5.06859C17.8928 5.35455 17.7192 5.61439 17.5003 5.83326L6.25033 17.0833L1.66699 18.3333L2.91699 13.7499L14.167 2.49993Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2579_25125\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>Edit Details</button>\r\n </div>\r\n </div> \r\n </ng-container>\r\n\r\n <div class=\"col-12 mb-5\">\r\n <label for=\"Brand\" class=\"form-label\">Brand Logo <span class=\"alert-required\"></span></label>\r\n <input #imageInput accept=\".png, .jpg, .jpeg\" (change)=\"onFileSelect($event)\" [disabled]=\"brandInfoForm.disabled\" style=\"display: none;\" type=\"file\">\r\n <div class=\"upload-container\">\r\n <img [src]=\"brandLogo\" alt=\"\">\r\n <svg (click)=\"triggerFileInput()\" class=\"upload-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"48\" height=\"46\" viewBox=\"0 0 48 46\"\r\n fill=\"none\">\r\n <g filter=\"url(#filter0_d_2_41755)\">\r\n <rect x=\"10\" y=\"10\" width=\"27.8037\" height=\"25.9501\" rx=\"12.9751\" fill=\"white\" />\r\n </g>\r\n <path d=\"M17.9434 26.2175V28.5348H20.4262L27.7521 21.6972L25.2693 19.3799L17.9434 26.2175Z\"\r\n fill=\"#98A2B3\" />\r\n <path\r\n d=\"M29.6671 19.0377L28.1211 17.5948C27.8629 17.3538 27.4425 17.3538 27.1843 17.5948L25.9727 18.7257L28.4555 21.0429L29.6671 19.9121C29.9253 19.6711 29.9253 19.2787 29.6671 19.0377Z\"\r\n fill=\"#98A2B3\" />\r\n <defs>\r\n <filter id=\"filter0_d_2_41755\" x=\"0\" y=\"0\" width=\"47.8037\" height=\"45.9502\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\r\n result=\"hardAlpha\" />\r\n <feOffset />\r\n <feGaussianBlur stdDeviation=\"5\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.288333 0 0 0 0 0.3129 0 0 0 0 0.4 0 0 0 0.14 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_2_41755\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_2_41755\" result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n <svg *ngIf=\"!brandLogo\" class=\"upload-placeholder\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\">\r\n <path d=\"M3.5 32C2.57174 32 1.6815 31.6313 1.02513 30.9749C0.368749 30.3185 0 29.4283 0 28.5L0 3.5C0 1.568 1.568 0 3.5 0H20.5C22.432 0 24 1.568 24 3.5V28.5C24 28.67 23.988 28.836 23.964 29H28.5C28.6326 29 28.7598 28.9473 28.8536 28.8536C28.9473 28.7598 29 28.6326 29 28.5V16.57C29.0001 16.4877 28.9798 16.4068 28.9411 16.3342C28.9024 16.2616 28.8464 16.1997 28.778 16.154L26.668 14.748C26.5041 14.6387 26.3633 14.4983 26.2537 14.3346C26.1441 14.1709 26.0678 13.9873 26.0292 13.7942C25.9906 13.601 25.9904 13.4021 26.0286 13.2089C26.0668 13.0157 26.1427 12.8319 26.252 12.668C26.3613 12.5041 26.5017 12.3633 26.6654 12.2537C26.8291 12.1441 27.0127 12.0678 27.2058 12.0292C27.399 11.9906 27.5979 11.9904 27.7911 12.0286C27.9843 12.0668 28.1681 12.1427 28.332 12.252L30.442 13.658C31.416 14.308 32 15.4 32 16.57V28.5C32 29.4283 31.6313 30.3185 30.9749 30.9749C30.3185 31.6313 29.4283 32 28.5 32H21.5C21.367 31.9998 21.2345 31.9824 21.106 31.948C20.908 31.982 20.706 32 20.5 32H14.5C14.1022 32 13.7206 31.842 13.4393 31.5607C13.158 31.2794 13 30.8978 13 30.5V28H11V30.5C11 30.8978 10.842 31.2794 10.5607 31.5607C10.2794 31.842 9.89783 32 9.5 32H3.5ZM3 28.5C3 28.776 3.224 29 3.5 29H8V26.5C8 26.1022 8.15804 25.7206 8.43934 25.4393C8.72064 25.158 9.10218 25 9.5 25H14.5C14.8978 25 15.2794 25.158 15.5607 25.4393C15.842 25.7206 16 26.1022 16 26.5V29H20.5C20.6326 29 20.7598 28.9473 20.8536 28.8536C20.9473 28.7598 21 28.6326 21 28.5V3.5C21 3.36739 20.9473 3.24022 20.8536 3.14645C20.7598 3.05268 20.6326 3 20.5 3H3.5C3.36739 3 3.24022 3.05268 3.14645 3.14645C3.05268 3.24022 3 3.36739 3 3.5V28.5ZM7.5 12H8.5C8.89782 12 9.27936 12.158 9.56066 12.4393C9.84196 12.7206 10 13.1022 10 13.5C10 13.8978 9.84196 14.2794 9.56066 14.5607C9.27936 14.842 8.89782 15 8.5 15H7.5C7.10218 15 6.72064 14.842 6.43934 14.5607C6.15804 14.2794 6 13.8978 6 13.5C6 13.1022 6.15804 12.7206 6.43934 12.4393C6.72064 12.158 7.10218 12 7.5 12ZM6 7.5C6 7.10218 6.15804 6.72064 6.43934 6.43934C6.72064 6.15804 7.10218 6 7.5 6H8.5C8.89782 6 9.27936 6.15804 9.56066 6.43934C9.84196 6.72064 10 7.10218 10 7.5C10 7.89782 9.84196 8.27936 9.56066 8.56066C9.27936 8.84196 8.89782 9 8.5 9H7.5C7.10218 9 6.72064 8.84196 6.43934 8.56066C6.15804 8.27936 6 7.89782 6 7.5ZM14 13.5C14 13.1022 14.158 12.7206 14.4393 12.4393C14.7206 12.158 15.1022 12 15.5 12H16.5C16.8978 12 17.2794 12.158 17.5607 12.4393C17.842 12.7206 18 13.1022 18 13.5C18 13.8978 17.842 14.2794 17.5607 14.5607C17.2794 14.842 16.8978 15 16.5 15H15.5C15.1022 15 14.7206 14.842 14.4393 14.5607C14.158 14.2794 14 13.8978 14 13.5ZM15.5 6H16.5C16.8978 6 17.2794 6.15804 17.5607 6.43934C17.842 6.72064 18 7.10218 18 7.5C18 7.89782 17.842 8.27936 17.5607 8.56066C17.2794 8.84196 16.8978 9 16.5 9H15.5C15.1022 9 14.7206 8.84196 14.4393 8.56066C14.158 8.27936 14 7.89782 14 7.5C14 7.10218 14.158 6.72064 14.4393 6.43934C14.7206 6.15804 15.1022 6 15.5 6ZM6 19.5C6 19.1022 6.15804 18.7206 6.43934 18.4393C6.72064 18.158 7.10218 18 7.5 18H8.5C8.89782 18 9.27936 18.158 9.56066 18.4393C9.84196 18.7206 10 19.1022 10 19.5C10 19.8978 9.84196 20.2794 9.56066 20.5607C9.27936 20.842 8.89782 21 8.5 21H7.5C7.10218 21 6.72064 20.842 6.43934 20.5607C6.15804 20.2794 6 19.8978 6 19.5ZM15.5 18H16.5C16.8978 18 17.2794 18.158 17.5607 18.4393C17.842 18.7206 18 19.1022 18 19.5C18 19.8978 17.842 20.2794 17.5607 20.5607C17.2794 20.842 16.8978 21 16.5 21H15.5C15.1022 21 14.7206 20.842 14.4393 20.5607C14.158 20.2794 14 19.8978 14 19.5C14 19.1022 14.158 18.7206 14.4393 18.4393C14.7206 18.158 15.1022 18 15.5 18Z\" fill=\"#98A2B3\"/>\r\n </svg>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"brandName\" class=\"form-label\">Brand Name <span class=\"alert-required\"></span></label>\r\n <input formControlName=\"brandName\" type=\"type\" class=\"form-control disabled-input\" id=\"brandName\" autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"registeredCompanyName\" class=\"form-label\">Registered Company Name <span\r\n class=\"alert-required\"></span></label>\r\n <input formControlName=\"registeredCompanyName\" type=\"type\" class=\"form-control\" id=\"registeredCompanyName\"\r\n autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <lib-reactive-select formControlName=\"industry\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"industry\" [label]=\"'Industry Type'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <lib-reactive-select formControlName=\"clientType\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"clientType\" [label]=\"'Type of Client'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"registeredEmail\" class=\"form-label\">Registered Email <span class=\"alert-required\"></span></label>\r\n <input formControlName=\"corporateEmail\" type=\"type\" class=\"form-control disabled-input\" id=\"registeredEmail\"\r\n autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-7\">\r\n <label for=\"contactNumber\" class=\"form-label\">Contact number <span class=\"alert-required\"></span></label>\r\n <div class=\"row\">\r\n <div class=\"col-md-12 col-lg-4 col-xl-4\">\r\n \r\n <select formControlName=\"countryCode\" class=\"form-select country-text-dropdown ps-3 pe-8\" \r\n id=\"inputGroupSelect01\">\r\n <option *ngFor=\"let country of countryList\" class=\"mx-2\" [value]=\"country.phonecode\">{{country.name}}<span class=\"text-muted\">({{ country.phonecode\r\n }})</span></option>\r\n </select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-8 col-xl-8\">\r\n\r\n <input formControlName=\"mobileNumber\" type=\"text\" class=\"form-control mobile-number-input \" (keypress)=\"omit_special_char($event)\" \r\n id=\"phonenumber\" autocomplete=\"off\" minlength=\"7\" maxlength=\"15\">\r\n </div>\r\n </div>\r\n \r\n <!-- <div class=\"input-group \">\r\n <select formControlName=\"countryCode\" class=\"form-select country-text-dropdown disabled-input\" id=\"inputGroupSelect01\">\r\n <option *ngFor=\"let country of countryList\" class=\"mx-2\" [value]=\"country?.phonecode\">{{country?.isoCode}}</option>\r\n </select>\r\n <input disabled class=\"form-control country-code-input disabled-input\" [value]=\"brandInfoForm.get('countryCode')?.value ? brandInfoForm.get('countryCode')?.value : ''\" readonly>\r\n <input formControlName=\"mobileNumber\" type=\"number\" class=\"form-control mobile-number-input disabled-input ps-0\"\r\n id=\"contactNumber\" autocomplete=\"off\">\r\n </div> -->\r\n </div>\r\n\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"registeredAddress\" class=\"form-label\">Registered Address <span\r\n class=\"alert-required\"></span></label>\r\n <input formControlName=\"registeredAddress\" type=\"type\" class=\"form-control\" id=\"registeredAddress\"\r\n autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"headQuarters\" class=\"form-label\">Head Quarters <span class=\"alert-required\"></span></label>\r\n <input formControlName=\"headQuarters\" type=\"type\" class=\"form-control\" id=\"headQuarters\" autocomplete=\"off\">\r\n\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"companyWebsite\" class=\"form-label\">Company Website <span class=\"alert-required\"></span></label>\r\n <input formControlName=\"website\" type=\"type\" class=\"form-control\" id=\"companyWebsite\" autocomplete=\"off\">\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \" class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <lib-reactive-select formControlName=\"status\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"status\" [label]=\"'Brand Status'\" ></lib-reactive-select>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"brandInfoForm.enabled\">\r\n <div class=\"mb-5 w-100 footer-seperator\"></div>\r\n <div class=\"d-flex justify-content-end\">\r\n <a type=\"button\" class=\"btn btn-outline me-4\" (click)=\"onCancel()\">Cancel</a>\r\n <a type=\"submit\" class=\"btn btn-primary px-4 \" (click)=\"onSubmit()\"><span>Save Changes</span></a>\r\n </div>\r\n</div>\r\n\r\n</form>","import { Component, ElementRef, OnDestroy, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { ClientApiService } from '../../../services/client-api.service';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\n\r\n@Component({\r\n selector: 'lib-billing-details',\r\n templateUrl: './billing-details.component.html',\r\n styleUrl: './billing-details.component.scss'\r\n})\r\nexport class BillingDetailsComponent implements OnDestroy {\r\n billingDetailsForm: FormGroup\r\n @ViewChild('gstFormInput') uploadInput: ElementRef<HTMLElement>;\r\n gstForm: string;\r\n private readonly destroy$ = new Subject();\r\n gstFile: File | null;\r\n\r\n\r\n constructor(private fb: FormBuilder, private apiService: ClientApiService, public gs: GlobalStateService) {\r\n this.initForm()\r\n this.apiService.clientFormData.pipe(takeUntil(this.destroy$)).subscribe((res) => {\r\n if (res) { \r\n if(res.type === 'input' && res.form === 'billing-details'){\r\n this.patchForm(res.value)\r\n }\r\n }\r\n })\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n\r\n initForm() {\r\n this.billingDetailsForm = this.fb.group({\r\n tradeName: [''],\r\n gstNumber: [''],\r\n gstCertificate: [''],\r\n authorityName: [''],\r\n authorityEmail: [''],\r\n billingAddress: [''],\r\n });\r\n this.billingDetailsForm.disable()\r\n }\r\n\r\n patchForm(data: any) { \r\n this.billingDetailsForm.patchValue(\r\n {\r\n ...data\r\n }\r\n )\r\n this.gstForm = data?.gstCertificate\r\n \r\n }\r\n\r\n triggerFileInput() {\r\n this.uploadInput.nativeElement.click()\r\n }\r\n\r\n onFileSelect(event: any) {\r\n if (event.target.files && event.target.files[0]) {\r\n let file: File = event.target.files[0];\r\n this.gstFile = file \r\n } \r\n }\r\n\r\n\r\n onCancel(){\r\n this.gstFile = null\r\n this.billingDetailsForm.disable()\r\n this.apiService.clientFormData.next({value:null, type:'cancel', form:'billing-details'})\r\n }\r\n\r\n onSubmit(){ \r\n if(this.gstFile){\r\n this.billingDetailsForm.value.gstCertificate = this.gstFile \r\n } \r\n this.apiService.clientFormData.next({value:this.billingDetailsForm.value, type:'submit', form:'billing-details'})\r\n }\r\n}\r\n","<form [formGroup]=\"billingDetailsForm\">\r\n <div class=\"row\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_brandDetails_isEdit \" >\r\n <div *ngIf=\"billingDetailsForm.disabled\" class=\"col-12 mb-5\">\r\n <div class=\" d-flex justify-content-end\">\r\n <button (click)=\"billingDetailsForm.disabled ? billingDetailsForm.enable() : billingDetailsForm.disable()\" type=\"button\" class=\"btn btn-outline align-items-end\"><span class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2579_25125)\">\r\n <path\r\n d=\"M14.167 2.49993C14.3859 2.28106 14.6457 2.10744 14.9317 1.98899C15.2176 1.87054 15.5241 1.80957 15.8337 1.80957C16.1432 1.80957 16.4497 1.87054 16.7357 1.98899C17.0216 2.10744 17.2815 2.28106 17.5003 2.49993C17.7192 2.7188 17.8928 2.97863 18.0113 3.2646C18.1297 3.55057 18.1907 3.85706 18.1907 4.16659C18.1907 4.47612 18.1297 4.78262 18.0113 5.06859C17.8928 5.35455 17.7192 5.61439 17.5003 5.83326L6.25033 17.0833L1.66699 18.3333L2.91699 13.7499L14.167 2.49993Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2579_25125\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>Edit Details</button>\r\n </div>\r\n </div> \r\n </ng-container>\r\n\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"tradeName\" class=\"form-label\">Trade Name <span class=\"alert-required\"></span></label>\r\n <input formControlName=\"tradeName\" type=\"type\" class=\"form-control\" id=\"tradeName\" autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"gstNumber\" class=\"form-label\">GST Number <span class=\"alert-required\"></span></label>\r\n <div class=\"input-group \">\r\n <input formControlName=\"gstNumber\" type=\"text\" class=\"form-control\" placeholder=\"\" aria-label=\"Example text with button addon\"\r\n aria-describedby=\"button-addon1\" id=\"gstNumber\">\r\n <button [disabled]=\"billingDetailsForm.disabled\" (click)=\"triggerFileInput()\" class=\"btn btn-outline upload-btn\" type=\"button\" id=\"button-addon1\">\r\n <span class=\"me-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n Upload</button>\r\n </div>\r\n <input (change)=\"onFileSelect($event)\" accept=\".pdf\" class=\"d-none\" #gstFormInput type=\"file\">\r\n <a *ngIf=\"gstForm && !gstFile\" [href]=\"gstForm\" target=\"_blank\" class=\"mt-3\">\r\n <span class=\"uploaded-doc-text me-2\">GST Certificate</span>\r\n </a>\r\n <span *ngIf=\"gstFile\" class=\"mt-3 d-flex align-items-center\">\r\n <span class=\"uploaded-doc-text me-2\">{{gstFile.name ? gstFile.name : ''}}</span>\r\n <svg class=\"cursor-pointer\" (click)=\"gstFile = null\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M12.5003 7.50001L7.50033 12.5M7.50033 7.50001L12.5003 12.5M18.3337 10C18.3337 14.6024 14.6027 18.3333 10.0003 18.3333C5.39795 18.3333 1.66699 14.6024 1.66699 10C1.66699 5.39763 5.39795 1.66667 10.0003 1.66667C14.6027 1.66667 18.3337 5.39763 18.3337 10Z\" stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"invoiceAuthorityName\" class=\"form-label\">Invoice Authority Name <span\r\n class=\"alert-required\"></span></label>\r\n <input formControlName=\"authorityName\" type=\"type\" class=\"form-control\" id=\"invoiceAuthorityName\"\r\n autocomplete=\"off\">\r\n\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"invoiceAuthorityEmail\" class=\"form-label\">Invoice Authority Email <span\r\n class=\"alert-required\"></span></label>\r\n <input formControlName=\"authorityEmail\" type=\"type\" class=\"form-control\" id=\"invoiceAuthorityEmail\"\r\n autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-12 mb-5\">\r\n <label for=\"billingAddress\" class=\"form-label\">Billing Address <span class=\"alert-required\"></span></label>\r\n <input formControlName=\"billingAddress\" type=\"type\" class=\"form-control\" id=\"billingAddress\" autocomplete=\"off\">\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"billingDetailsForm.enabled\">\r\n <div class=\"mb-5 w-100 footer-seperator\"></div>\r\n <div class=\"d-flex justify-content-end\">\r\n <a (click)=\"onCancel()\" type=\"button\" class=\"btn btn-outline me-4\">Cancel</a>\r\n <a (click)=\"onSubmit()\" type=\"submit\" class=\"btn btn-primary px-4 \"><span>Save Changes</span></a>\r\n </div>\r\n </div>\r\n</form>","import { Component, OnDestroy } from '@angular/core';\r\nimport { FormGroup, FormBuilder } from '@angular/forms';\r\nimport { ClientApiService } from '../../../services/client-api.service';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\n\r\n@Component({\r\n selector: 'lib-signatory-details',\r\n templateUrl: './signatory-details.component.html',\r\n styleUrl: './signatory-details.component.scss'\r\n})\r\nexport class SignatoryDetailsComponent implements OnDestroy {\r\n\r\n signatoryDetailsForm: FormGroup\r\n private readonly destroy$ = new Subject();\r\n\r\n\r\n constructor(private fb: FormBuilder, private apiService: ClientApiService, public gs:GlobalStateService) {\r\n this.initForm()\r\n this.apiService.clientFormData.pipe(takeUntil(this.destroy$)).subscribe((res) => {\r\n if (res) { \r\n if(res.type === 'input' && res.form === 'signatory-details'){\r\n this.patchForm(res.value)\r\n }\r\n }\r\n })\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n\r\n initForm() {\r\n this.signatoryDetailsForm = this.fb.group({\r\n name: [''],\r\n email: [''],\r\n number: [''],\r\n designation: [''],\r\n });\r\n this.signatoryDetailsForm.disable()\r\n }\r\n\r\n patchForm(data: any) { \r\n this.signatoryDetailsForm.patchValue(\r\n {\r\n ...data\r\n }\r\n )\r\n \r\n }\r\n\r\n\r\n onCancel(){\r\n this.signatoryDetailsForm.disable()\r\n this.apiService.clientFormData.next({value:null, type:'cancel', form:'signatory-details'})\r\n }\r\n\r\n onSubmit(){ \r\n this.signatoryDetailsForm.value.number = this.signatoryDetailsForm.value.number.toString()\r\n this.apiService.clientFormData.next({value:this.signatoryDetailsForm.value, type:'submit', form:'signatory-details'})\r\n }\r\n omit_special_char(event: any) {\r\n var k;\r\n k = event.charCode;\r\n return (k == 8 || k == 32 || (k >= 48 && k <= 57));\r\n }\r\n}\r\n","<form [formGroup]=\"signatoryDetailsForm\">\r\n <div class=\"row\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_brandDetails_isEdit\" >\r\n <div *ngIf=\"signatoryDetailsForm.disabled\" class=\"col-12 mb-5\">\r\n <div class=\" d-flex justify-content-end\">\r\n <button type=\"button\" (click)=\"signatoryDetailsForm.disabled ? signatoryDetailsForm.enable() : signatoryDetailsForm.disable()\" class=\"btn btn-outline align-items-end\"><span class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2579_25125)\">\r\n <path\r\n d=\"M14.167 2.49993C14.3859 2.28106 14.6457 2.10744 14.9317 1.98899C15.2176 1.87054 15.5241 1.80957 15.8337 1.80957C16.1432 1.80957 16.4497 1.87054 16.7357 1.98899C17.0216 2.10744 17.2815 2.28106 17.5003 2.49993C17.7192 2.7188 17.8928 2.97863 18.0113 3.2646C18.1297 3.55057 18.1907 3.85706 18.1907 4.16659C18.1907 4.47612 18.1297 4.78262 18.0113 5.06859C17.8928 5.35455 17.7192 5.61439 17.5003 5.83326L6.25033 17.0833L1.66699 18.3333L2.91699 13.7499L14.167 2.49993Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2579_25125\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>Edit Details</button>\r\n </div>\r\n </div> \r\n </ng-container>\r\n\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"username\" class=\"form-label\">Username <span class=\"alert-required\"></span></label>\r\n <input formControlName=\"name\" type=\"text\" class=\"form-control\" id=\"username\" autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"email\" class=\"form-label\">Email <span class=\"alert-required\"></span></label>\r\n <input formControlName=\"email\" type=\"email\" class=\"form-control\" id=\"email\" autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"contactNumber\" class=\"form-label\">Contact Number <span\r\n class=\"alert-required\"></span></label>\r\n <input formControlName=\"number\" type=\"text\" class=\"form-control\" id=\"contactNumber\"\r\n autocomplete=\"off\" minlength=\"3\" maxlength=\"15\" (keypress)=\"omit_special_char($event)\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"designation\" class=\"form-label\">Designation <span\r\n class=\"alert-required\"></span></label>\r\n <input formControlName=\"designation\" type=\"text\" class=\"form-control\" id=\"designation\"\r\n autocomplete=\"off\">\r\n </div>\r\n </div>\r\n \r\n <div *ngIf=\"signatoryDetailsForm.enabled\">\r\n <div class=\"mb-5 w-100 footer-seperator\"></div>\r\n <div class=\"d-flex justify-content-end\">\r\n <a (click)=\"onCancel()\" type=\"button\" class=\"btn btn-outline me-4\">Cancel</a>\r\n <a (click)=\" onSubmit()\" type=\"submit\" class=\"btn btn-primary px-4 \"><span>Save Changes</span></a>\r\n </div>\r\n </div>\r\n</form>\r\n","import { Component, OnDestroy, ViewChild } from '@angular/core';\r\nimport { ClientApiService } from '../../services/client-api.service';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\n\r\n@Component({\r\n selector: 'lib-brand-details',\r\n templateUrl: './brand-details.component.html',\r\n styleUrl: './brand-details.component.scss',\r\n})\r\nexport class BrandDetailsComponent implements OnDestroy {\r\n clientData:any;\r\n private readonly destroy$ = new Subject();\r\n branInfoPrevValues:any\r\n billingDetailsPrevValues:any\r\n signatoryDetailPrevValues:any\r\n @ViewChild('accordion', { static: true }) accordion: any;\r\n\r\n\r\n constructor(private clientApi: ClientApiService, private toast:ToastService, private gs:GlobalStateService) {\r\n this.clientApi.clientFormData.pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if (e.type === 'submit') {\r\n this.submitForm(e)\r\n }else if(e.type === 'cancel'){\r\n this.resetForm(e)\r\n }\r\n })\r\n \r\n this.clientApi.clientData.pipe(takeUntil(this.destroy$)).subscribe((e)=>{ \r\n if(e){\r\n this.clientData = e\r\n this.populateBrandInfo(e)\r\n this.populateBillingDetails(e)\r\n this.populateSignatoryDetails(e)\r\n }\r\n })\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n \r\n openItem(event:string){\r\n this.populateBrandInfo(this.clientData)\r\n this.populateBillingDetails(this.clientData)\r\n this.populateSignatoryDetails(this.clientData)\r\n }\r\n\r\n populateBrandInfo(data: any) {\r\n let obj = {\r\n brandName: data?.clientName,\r\n registeredCompanyName: data?.profileDetails?.registeredCompanyName,\r\n industry: data?.profileDetails?.industry,\r\n clientType: data?.profileDetails?.clientType,\r\n corporateEmail: data?.userData?.corporateEmail,\r\n countryCode: data?.userData?.countryCode,\r\n mobileNumber: data?.userData?.mobileNumber,\r\n registeredAddress: data?.profileDetails?.registeredAddress,\r\n headQuarters: data?.profileDetails?.headQuarters,\r\n website: data?.profileDetails?.website,\r\n status: data?.status,\r\n logo: data?.profileDetails?.logo,\r\n }\r\n\r\n this.branInfoPrevValues = obj\r\n this.clientApi.clientFormData.next({ value: { ...obj }, type: 'input', form: 'brand-info' })\r\n }\r\n\r\n populateBillingDetails(data: any) {\r\n let obj = {\r\n tradeName: data?.billingDetails?.tradeName,\r\n gstNumber: data?.billingDetails?.gstNumber,\r\n authorityName: data?.billingDetails?.authorityName,\r\n authorityEmail: data?.billingDetails?.authorityEmail,\r\n billingAddress: data?.billingDetails?.billingAddress,\r\n gstCertificate: data?.document?.gst?.path,\r\n }\r\n this.billingDetailsPrevValues = obj\r\n\r\n this.clientApi.clientFormData.next({ value: { ...obj }, type: 'input', form: 'billing-details' })\r\n }\r\n\r\n populateSignatoryDetails(data: any) {\r\n let obj = {\r\n name: data?.signatoryDetail?.name,\r\n email: data?.signatoryDetail?.email,\r\n number: data?.signatoryDetail?.number,\r\n designation: data?.signatoryDetail?.designation,\r\n }\r\n this.signatoryDetailPrevValues = obj\r\n this.clientApi.clientFormData.next({ value: { ...obj }, type: 'input', form: 'signatory-details' })\r\n }\r\n\r\n\r\n\r\n submitForm(e: any) { \r\n if (e.form === 'brand-info') {\r\n const data = this.getDifferentEntries(this.branInfoPrevValues, e.value) \r\n const formData = this.jsonToFormData(data)\r\n this.clientApi.updateBrandInfo(this.clientData.clientId, formData).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (e) => {\r\n this.toast.getSuccessToast(e.data?.result)\r\n this.clientApi.clientFormData.next({value:null, type:'submitted', form:'null'})\r\n this.gs.manageRefreshTrigger.next(true)\r\n },\r\n error: (e) => { \r\n this.toast.getErrorToast(e.error?.error)\r\n this.populateBrandInfo(this.clientData)\r\n }\r\n })\r\n\r\n } else if (e.form === 'billing-details') {\r\n const data = this.getDifferentEntries(this.billingDetailsPrevValues, e.value)\r\n const formData = this.jsonToFormData(data)\r\n \r\n this.clientApi.updateBillingDetails(this.clientData.clientId, formData).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (e) => {\r\n this.toast.getSuccessToast(e.data?.result)\r\n this.clientApi.clientFormData.next({value:null, type:'submitted', form:'null'})\r\n },\r\n error: (e) => {\r\n this.toast.getErrorToast(e.error?.error)\r\n this.populateBillingDetails(this.clientData)\r\n }\r\n })\r\n }else if (e.form === 'signatory-details') {\r\n const data = this.getDifferentEntries(this.signatoryDetailPrevValues, e.value)\r\n this.clientApi.updateSignatoryDetails(this.clientData.clientId, data).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (e) => {\r\n this.toast.getSuccessToast(e.data?.result)\r\n this.clientApi.clientFormData.next({value:null, type:'submitted', form:'null'})\r\n },\r\n error: (e) => {\r\n this.toast.getErrorToast(e.error?.error)\r\n this.populateSignatoryDetails(this.clientData)\r\n }\r\n })\r\n }\r\n }\r\n\r\n resetForm(e:any){\r\n if (e.form === 'brand-info') {\r\n this.populateBrandInfo(this.clientData)\r\n }else\r\n if (e.form === 'billing-details') {\r\n this.populateBillingDetails(this.clientData)\r\n }else\r\n if (e.form === 'signatory-details') {\r\n this.populateSignatoryDetails(this.clientData)\r\n }\r\n this.accordion.collapseAll()\r\n\r\n }\r\n\r\n getDifferentEntries(obj1: Record<string, any>, obj2: Record<string, any>): Record<string, any> {\r\n const differentEntries: Record<string, any> = {};\r\n for (const key in obj2) {\r\n if (obj1.hasOwnProperty(key) && obj1[key] !== obj2[key]) {\r\n differentEntries[key] = obj2[key];\r\n }\r\n }\r\n return differentEntries;\r\n}\r\n\r\n jsonToFormData(jsonData: Record<string, any>): FormData {\r\n\r\n const formData = new FormData();\r\n for (const key in jsonData) {\r\n if (jsonData.hasOwnProperty(key)) { \r\n const value = jsonData[key];\r\n formData.append(key, value);\r\n }\r\n }\r\n\r\n return formData;\r\n}\r\n\r\n\r\n\r\n}\r\n","<div class=\"row\">\r\n <div class=\"col-12\">\r\n <div ngbAccordion #accordion=\"ngbAccordion\" [closeOthers]=\"true\" [destroyOnHide]=\"true\" (show)=\"openItem($event)\">\r\n <div class=\"settings-accordian-card \" ngbAccordionItem>\r\n <div class=\"d-flex\" ngbAccordionHeader>\r\n <button type=\"button\" class=\"mainheading\" ngbAccordionButton >\r\n <div class=\"header-row\">\r\n <span >Brand Info</span>\r\n <span class=\"divider\"></span>\r\n </div>\r\n </button>\r\n </div>\r\n <div ngbAccordionCollapse>\r\n <div ngbAccordionBody>\r\n <ng-template>\r\n <lib-brand-info></lib-brand-info>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"settings-accordian-card mt-6\" ngbAccordionItem>\r\n <div class=\"d-flex\" ngbAccordionHeader>\r\n <button class=\"mainheading\" ngbAccordionButton>\r\n <div class=\"header-row\">\r\n <span >Billing Details</span>\r\n <span class=\"divider\"></span>\r\n </div>\r\n </button>\r\n </div>\r\n <div ngbAccordionCollapse>\r\n <div ngbAccordionBody>\r\n <ng-template>\r\n <lib-billing-details></lib-billing-details>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"settings-accordian-card mt-6\" ngbAccordionItem>\r\n <div class=\"d-flex\" ngbAccordionHeader>\r\n <button class=\"mainheading\" ngbAccordionButton>\r\n <div class=\"header-row\">\r\n <span >Signatory Details</span>\r\n <span class=\"divider\"></span>\r\n </div>\r\n </button>\r\n </div>\r\n <div ngbAccordionCollapse>\r\n <div ngbAccordionBody>\r\n <ng-template>\r\n <lib-signatory-details></lib-signatory-details>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable,OnDestroy } from '@angular/core';\r\nimport { BehaviorSubject, Observable, Subject, takeUntil } from 'rxjs';\r\nimport * as FileSaver from 'file-saver';\r\nimport * as XLSX from 'xlsx';\r\n \r\nconst EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\r\nconst EXCEL_EXTENSION = '.xlsx';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PaymentSubscriptionService implements OnDestroy {\r\n paymentSubscriptionApiUrl:any;\r\n private reloadDataSubject = new BehaviorSubject<boolean>(false);\r\n reloadData$ = this.reloadDataSubject.asObservable();\r\n\r\n // clientId = new BehaviorSubject<string>('')\r\n // clientData = new BehaviorSubject<any>(null)\r\n paymentinvoiceFormData = new BehaviorSubject<any>({value:null, type:null, form:null})\r\n constructor(private http: HttpClient, private gs: GlobalStateService) {\r\n this.gs.environment.pipe(takeUntil(this.destroy$)).subscribe((env) => {\r\n if (env) {\r\n this.paymentSubscriptionApiUrl = env.paymentSubscriptionApiUrl;\r\n // this.clientId.next('11')\r\n }\r\n });\r\n // this.gs.selectedClient.pipe(takeUntil(this.destroy$)).subscribe((e:any)=>{\r\n // if(e){\r\n // console.log(e,'e');\r\n // }\r\n // })\r\n }\r\n \r\n triggerReload() {\r\n this.reloadDataSubject.next(true);\r\n }\r\n\r\n \r\n public exportAsExcelFile(json: any[], excelFileName: string): void {\r\n const worksheet: XLSX.WorkSheet = XLSX.utils.json_to_sheet(json);\r\n const workbook: XLSX.WorkBook = { Sheets: { 'data': worksheet }, SheetNames: ['data'] };\r\n const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });\r\n this.saveAsExcelFile(excelBuffer, excelFileName);\r\n }\r\n \r\n public saveAsExcelFile(buffer: any, fileName: string): void {\r\n const data: Blob = new Blob([buffer], {\r\n type: EXCEL_TYPE\r\n });\r\n FileSaver.saveAs(data, fileName + 'list'+ EXCEL_EXTENSION);\r\n }\r\n \r\n public saveAsTemplate(buffer: any, fileName: string): void {\r\n const data: Blob = new Blob([buffer], {\r\n type: EXCEL_TYPE\r\n });\r\n FileSaver.saveAs(data, fileName + EXCEL_EXTENSION);\r\n }\r\n private readonly destroy$ = new Subject();\r\n \r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n \r\n\r\n clientBillingInfo(params?: any): Observable<any> {\r\n return this.http\r\n .get(`${this.paymentSubscriptionApiUrl}/clientBillingSubscriptionInfo/${params}`)\r\n }\r\n \r\n updateaddbilling(billingBodyReq: any): Observable<any> {\r\n return this.http\r\n .post<any>(`${this.paymentSubscriptionApiUrl}/addBilling`, billingBodyReq)\r\n \r\n }\r\n addstepprice(billingBodyReq: any): Observable<any> {\r\n return this.http\r\n .post<any>(`${this.paymentSubscriptionApiUrl}/addstepprice`, billingBodyReq) \r\n }\r\n\r\n getpaymentinvoice(params?: any): Observable<any> {\r\n return this.http\r\n .get(`${this.paymentSubscriptionApiUrl}/InvoiceDetails/${params}`)\r\n }\r\n invoiceTableData( data:any):Observable<any>{\r\n return this.http.post(`${this.paymentSubscriptionApiUrl}/invoiceList`, data)\r\n }\r\n invoiceTableDataExport( data:any):Observable<any>{\r\n return this.http.post(`${this.paymentSubscriptionApiUrl}/invoiceList`, data, {responseType: 'arraybuffer'})\r\n }\r\n pendinginvoicelist( data:any):Observable<any>{\r\n return this.http.post(`${this.paymentSubscriptionApiUrl}/invoiceList`, data)\r\n }\r\n getinvoice(id?: any): Observable<any> {\r\n return this.http\r\n .get(`${this.paymentSubscriptionApiUrl}/creditNotes/invoiceList/${id}`)\r\n }\r\n getextendtrail(clientId:string):Observable<any>{ \r\n return this.http.get(`${this.paymentSubscriptionApiUrl}/getTrialProducts?clientId=${clientId}` )\r\n }\r\n trailapproval( data:any):Observable<any>{\r\n return this.http.post(`${this.paymentSubscriptionApiUrl}/trialExtendRequest`, data)\r\n }\r\n unsubscribe( data:any):Observable<any>{\r\n return this.http.post(`${this.paymentSubscriptionApiUrl}/unsubscribe`, data)\r\n }\r\n invoiceupdate( data:any,id:any):Observable<any>{\r\n return this.http.put(`${this.paymentSubscriptionApiUrl}/update/InvoiceDetails/${id}`, data)\r\n }\r\n creditnoteupdate( data:any):Observable<any>{\r\n return this.http.post(`${this.paymentSubscriptionApiUrl}/creditNotes`, data)\r\n }\r\n\r\n getPriceDetails(data: any): Observable<any> {\r\n return this.http\r\n .post<any>(`${this.paymentSubscriptionApiUrl}/admin/priceList`, data,{\r\n headers:{\r\n Authorization:'Bearer 31b90e5e-451a-4e48-a9e0-8f736b5be0ca'}\r\n })\r\n }\r\n\r\n updatePricing(data: any):Observable<any> {\r\n return this.http\r\n .post<any>(`${this.paymentSubscriptionApiUrl}/admin/pricing`, data, {\r\n headers: {\r\n Authorization: 'Bearer 31b90e5e-451a-4e48-a9e0-8f736b5be0ca'\r\n }\r\n })\r\n }\r\n\r\n getProductList(data: any):Observable<any> {\r\n return this.http\r\n .get<any>(`${this.paymentSubscriptionApiUrl}/admin/getProductViewList?clientId=${data.id}&sortColumn=${data.sortColumn}&sortBy=${data.sortBy}`, {\r\n headers: {\r\n Authorization: 'Bearer 31b90e5e-451a-4e48-a9e0-8f736b5be0ca'\r\n }\r\n })\r\n }\r\n\r\n getStoreList(data: any):Observable<any> {\r\n return this.http\r\n .post<any>(`${this.paymentSubscriptionApiUrl}/admin/getstoreViewList`,data, {\r\n })\r\n }\r\n\r\n getFilterDetails(data: any): Observable<any> {\r\n return this.http\r\n .get<any>(`${this.paymentSubscriptionApiUrl}/admin/getStoreLocationList?clientId=${data}`, {\r\n })\r\n } \r\n\r\n updateProduct(data: any): Observable<any> {\r\n return this.http\r\n .post<any>(`${this.paymentSubscriptionApiUrl}/admin/subscribeproduct`,data, {\r\n })\r\n }\r\n\r\n updateStore(data: any): Observable<any> {\r\n return this.http\r\n .post<any>(`${this.paymentSubscriptionApiUrl}/admin/addStoreProduct`,data, {\r\n })\r\n }\r\n \r\n storeProduct(data: any): Observable<any> {\r\n return this.http\r\n .post<any>(`${this.paymentSubscriptionApiUrl}/admin/getStoreProducts`,data, {\r\n })\r\n }\r\n\r\n unsubscribeApproval(data: any): Observable<any> {\r\n return this.http\r\n .post<any>(`${this.paymentSubscriptionApiUrl}/admin/unsubscribeApproval`,data, {\r\n })\r\n }\r\n\r\n getNotification(id: any): Observable<any> {\r\n return this.http\r\n .get<any>(`${this.paymentSubscriptionApiUrl}/admin/notificationList?clientId=${id}`, {\r\n })\r\n }\r\n\r\n trialExtentApproval(data: any): Observable<any> {\r\n return this.http\r\n .post<any>(`${this.paymentSubscriptionApiUrl}/admin/trialExtendApproval`,data, {\r\n })\r\n }\r\n\r\n approveTrial(data: any): Observable<any> {\r\n return this.http\r\n .post<any>(`${this.paymentSubscriptionApiUrl}/admin/trialApproval`,data, {\r\n })\r\n }\r\n\r\n basePricing(data: any): Observable<any> {\r\n return this.http\r\n .post<any>(`${this.paymentSubscriptionApiUrl}/basePricing`, data, {\r\n })\r\n }\r\n\r\n updateSubscription(data: any): Observable<any> {\r\n return this.http\r\n .put<any>(`${this.paymentSubscriptionApiUrl}/update/subscription/${data.clientId}`, data, {\r\n })\r\n }\r\n\r\n invoiceDownload(data: any): Observable<any> {\r\n return this.http.post(`${this.paymentSubscriptionApiUrl}/invoiceDownload/${data._id}`, data, {responseType: 'arraybuffer'})\r\n }\r\n\r\n\r\n\r\n}\r\n\r\n","import { Component, OnInit, Input, Output, EventEmitter, ChangeDetectorRef, OnDestroy, } from '@angular/core';\r\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { PaymentSubscriptionService } from '../../../../services/payment-subscription.service';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\n\r\n\r\n@Component({\r\n selector: 'lib-update',\r\n templateUrl: './update.component.html',\r\n styleUrl: './update.component.scss'\r\n})\r\nexport class UpdateComponent implements OnInit, OnDestroy {\r\n\r\n brandName: string = '';\r\n gstNumber: string = '';\r\n billingAddress: string = '';\r\n companyName: string = '';\r\n PlaceOfSupply: string = '';\r\n updateForm: FormGroup;\r\n @Input() modalData: any;\r\n @Output() passEntry: EventEmitter<any> = new EventEmitter();\r\n private readonly destroy$ = new Subject();\r\n\r\n constructor(\r\n public activeModal: NgbActiveModal, private modalService: NgbModal, private PaymentSubscriptionService: PaymentSubscriptionService, private fb: FormBuilder,\r\n private cd: ChangeDetectorRef, private toast: ToastService\r\n ) {\r\n this.initForm()\r\n }\r\n\r\n ngOnInit() {\r\n this.patchForm()\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n initForm() {\r\n this.updateForm = this.fb.group({\r\n brandName: ['', Validators.required],\r\n gstNumber: ['', Validators.required],\r\n billingAddress: ['', Validators.required],\r\n companyName: ['', Validators.required],\r\n PlaceOfSupply: ['', Validators.required]\r\n\r\n });\r\n }\r\n // get gstnumber() { return this.updateForm.get('gstNumber'); }\r\n // get billingaddress() { return this.updateForm.get('billingAddress'); }\r\n // get companyName() { return this.updateForm.get('companyName'); }\r\n // get PlaceOfSupply() { return this.updateForm.get('PlaceOfSupply'); }\r\n\r\n patchForm() {\r\n this.updateForm.patchValue({\r\n brandName: this.modalData?.brandName,\r\n gstNumber: this.modalData?.gstNumber,\r\n billingAddress: this.modalData?.billingAddress,\r\n PlaceOfSupply: this.modalData?.PlaceOfSupply,\r\n companyName: this.modalData?.companyName\r\n\r\n })\r\n this.cd.detectChanges()\r\n }\r\n\r\n closeModal() {\r\n this.activeModal.close();\r\n }\r\n\r\n onSubmit() {\r\n const requestData = {\r\n clientId: this.modalData.clientId,\r\n gstNo: this.updateForm.value.gstNumber,\r\n billingAddress: this.updateForm.value.billingAddress,\r\n companyName: this.updateForm.value.companyName,\r\n PlaceOfSupply: this.updateForm.value.PlaceOfSupply\r\n\r\n };\r\n\r\n this.PaymentSubscriptionService.updateaddbilling(requestData).pipe(takeUntil(this.destroy$)).subscribe(\r\n (response) => {\r\n this.activeModal.close(requestData);\r\n },\r\n (error) => {\r\n console.error('Error submitting update:', error);\r\n }\r\n );\r\n }\r\n submitUpdate() { }\r\n}\r\n","<div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <div class=\"headerclass\">Add Address</div>\r\n <div class=\"btn btn-sm btn-icon btn-active-color-primary\" data-bs-dismiss=\"modal\">\r\n <span (click)=\"activeModal.dismiss()\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M15 5L5 15M5 5L15 15\" stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n <!-- <i class=\"ki-duotone ki-cross fs-1\"><span class=\"path1\"></span><span\r\n class=\"path2\"></span></i> -->\r\n </div>\r\n </div>\r\n <div class=\"modal-body \">\r\n <!--begin::Form-->\r\n <form [formGroup]=\"updateForm\" action=\"#\">\r\n\r\n <div class=\"d-flex flex-column mb-7 fv-row fv-plugins-icon-container\">\r\n <div class=\"py-2\">\r\n <label class=\"required headingtext mb-2\">Brand Name</label>\r\n <input formControlName=\"brandName\" id=\"brandName\" readonly type=\"text\" class=\" ng-pristine ng-invalid ng-touched\"\r\n style=\"text-transform: capitalize;\">\r\n </div>\r\n <div class=\"py-2\">\r\n <label class=\"required headingtext mb-2\">GST No / Tax ID</label>\r\n <input formControlName=\"gstNumber\" id=\"gstNumber\" type=\"text\" class=\"ng-pristine ng-invalid ng-touched\"\r\n style=\"text-transform: capitalize;\">\r\n <!-- <div *ngIf=\"gstnumber?.errors?.required\" class=\"text-danger\"> \r\n GST Number is required.\r\n </div> -->\r\n </div>\r\n <div class=\"py-2\">\r\n <label class=\"required headingtext mb-2\">Company Name</label>\r\n <input formControlName=\"companyName\" id=\"companyName\" type=\"text\" class=\"ng-pristine ng-invalid ng-touched\"\r\n style=\"text-transform: capitalize;\">\r\n <!-- <div *ngIf=\"billingaddress?.errors?.required\" class=\"text-danger\">\r\n Billing Address is required.\r\n </div> -->\r\n </div>\r\n <div class=\"py-2\">\r\n <label class=\"required headingtext mb-2\">Billing Address</label>\r\n <input formControlName=\"billingAddress\" id=\"billingAddress\" type=\"text\" class=\"ng-pristine ng-invalid ng-touched\"\r\n style=\"text-transform: capitalize;\">\r\n <!-- <div *ngIf=\"billingaddress?.errors?.required\" class=\"text-danger\">\r\n Billing Address is required.\r\n </div> -->\r\n </div>\r\n <div class=\"py-2\">\r\n <label class=\"required headingtext mb-2\">PlaceOfSupply</label>\r\n <input formControlName=\"PlaceOfSupply\" id=\"PlaceOfSupply\" type=\"text\" class=\"ng-pristine ng-invalid ng-touched\"\r\n style=\"text-transform: capitalize;\">\r\n <!-- <div *ngIf=\"billingaddress?.errors?.required\" class=\"text-danger\">\r\n Billing Address is required.\r\n </div> -->\r\n </div>\r\n </div>\r\n <div class=\"d-flex\">\r\n <button type=\"submit\" (click)=\"closeModal()\"\r\n class=\"btn-outline btn cancel me-4 w-50\">Cancel</button>\r\n <button type=\"button\" [disabled]=\"updateForm.invalid\" (click)=\"onSubmit()\"\r\n tabindex=\"0\" class=\"btn btn-primary px-4 ng-star-inserted w-50\" style=\"white-space: nowrap;\"><span\r\n class=\"submit\">Submit </span></button>\r\n </div>\r\n \r\n </form>\r\n </div>\r\n <!--end::Modal body-->\r\n</div>","import { ChangeDetectorRef, Component, OnDestroy, OnInit,Input } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport Swal from 'sweetalert2';\r\nimport { PaymentSubscriptionService } from '../../../../services/payment-subscription.service';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { Subject, takeUntil } from 'rxjs';\r\n@Component({\r\n selector: 'lib-need-help',\r\n templateUrl: './need-help.component.html',\r\n styleUrl: './need-help.component.scss'\r\n})\r\nexport class NeedHelpComponent implements OnInit,OnDestroy {\r\n @Input() clientId:string;\r\n status = 'help';\r\n cancellingdropDown:boolean = false;\r\n trailextenddropDown:boolean = false;\r\n datalist = [];\r\n cancellingtype:any[] = ['Product Concern', 'Price Concern', 'Others' ];\r\n // trailextendtype: any = ['Tango Zone', 'Tango Revop', 'Tango TRAX'];\r\n trailextendtype: { name: string, value: string }[] = [];\r\n cancellingIssue: any = 'Product Concern';\r\n cancellingDescription:any;\r\n // trailextendIssue: any = 'Tango Zone';\r\n trailextendIssue: any;\r\n extendtrailform: FormGroup;\r\n trailextenditem:any;\r\n cancellingItem( cancellingvalue:any){\r\n this. cancellingIssue = cancellingvalue;\r\n this. cancellingdropDown = false;\r\n }\r\n trailextendItem( trailextendvalue:any){\r\n this. trailextendIssue = trailextendvalue;\r\n this.extendtrailform.get('producttype')?.setValue(this.trailextendIssue)\r\n this. trailextenddropDown = false;\r\n }\r\n private readonly destroy$ = new Subject();\r\n \r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n constructor(\r\n public activeModal: NgbActiveModal, private PaymentSubscriptionService: PaymentSubscriptionService, private changeDetector: ChangeDetectorRef,private fb: FormBuilder,private toast:ToastService\r\n ) { \r\n \r\n }\r\n ngOnInit(): void {\r\n this.trailextend(this.clientId);\r\n this.extendtrailform = this.fb.group({\r\n producttype: ['', Validators.required]\r\n });\r\n }\r\n \r\n unscubscribed() { \r\n const requestData = {\r\n clientId: this.clientId,\r\n reason: this.cancellingIssue,\r\n description: this.cancellingDescription\r\n \r\n };\r\n this.PaymentSubscriptionService.unsubscribe(requestData).pipe(takeUntil(this.destroy$)).subscribe ((res: any) => {\r\n if (res && res.code == 200) \r\n {\r\n this.activeModal.close(requestData);\r\n this.toast.getPrimaryToast(res.message)\r\n }},\r\n (error) => {\r\n this.toast.getErrorToast(error.error.error)\r\n console.error('Error submitting update:', error);\r\n })\r\n}\r\n\r\n extendtrail() {\r\n let product = this.trailextenditem.find((item:any)=>item.name == this.trailextendIssue); \r\n const requestData = {\r\n clientId: this.clientId,\r\n product: product.value,\r\n };\r\n this.PaymentSubscriptionService.trailapproval(requestData).pipe(takeUntil(this.destroy$)).subscribe ((res: any) => {\r\n if (res && res.code == 200) \r\n {\r\n this.activeModal.close(requestData);\r\n this.toast.getPrimaryToast(\"You have raised a ticket for extending trial request.\")\r\n }},\r\n (error) => {\r\n console.error('Error submitting update:', error);\r\n })\r\n \r\n}\r\n\r\n cancellingDropdown(event:MouseEvent){\r\n event.stopPropagation();\r\n this. cancellingdropDown = !this. cancellingdropDown;\r\n }\r\n trailextendDropdown(event:MouseEvent){\r\n event.stopPropagation();\r\n this. trailextenddropDown = !this. trailextenddropDown;\r\n }\r\n\r\n trailextend(id:any){\r\n this.PaymentSubscriptionService.getextendtrail(id).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n this.trailextenditem = res?.data\r\n this.trailextendIssue = this.trailextenditem[0].name;\r\n this.changeDetector.detectChanges();\r\n }\r\n });\r\n\r\n\r\n }\r\n}\r\n\r\n","<div class=\"modal-content\" *ngIf=\"status === 'help'\">\r\n <div class=\"p-6\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/needhelp-icon.svg\" alt=\"\"></div>\r\n <div class=\"heading mt-4 ms-1\">Need Help !</div>\r\n </div>\r\n <div class=\"modal-body mb-4 \">\r\n <a class=\"bgcontent\" (click)=\"status = 'extend'\">\r\n Need to raise a ticket for extending trial request <span class=\"ms-10\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path d=\"M9 18L15 12L9 6\" stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span>\r\n </a>\r\n <a class=\"bgcontent mt-4\" (click)=\"status = 'subscription'\">\r\n Need to raise a ticket for subscription cancellation <span class=\"ms-4\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path d=\"M9 18L15 12L9 6\" stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span>\r\n </a>\r\n </div>\r\n</div>\r\n\r\n<div [formGroup]=\"extendtrailform\" class=\"modal-content\" *ngIf=\"status === 'extend'\">\r\n <div class=\"p-6\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/plus-icon.svg\" alt=\"\"></div>\r\n <div class=\"heading mt-4 ms-1\">Extend Trial</div>\r\n </div>\r\n<div class=\"modal-body\">\r\n\r\n <div class=\"\">\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n <div>\r\n <label class=\"contenttext mb-4\">The 14 days trial has got expired. You can request for <span class=\"contenttextbold\">trial extension</span></label>\r\n <label for=\"producttype\" class=\"headingtext mb-2\">Pick a Product</label>\r\n <div class=\"position-relative \">\r\n <div class=\"form-select dropselect levelviewtext\" id=\"producttype\" (click)=\"trailextendDropdown($event)\"\r\n aria-label=\"Default select example\">{{trailextendIssue}}</div>\r\n <div *ngIf=\"trailextenddropDown\" class=\"card py-2 w-100 position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let item of trailextenditem\" class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"this.trailextendIssue.name === item.name ? 'active' : ''\" class=\"producttext px-5 items cursor-pointer py-4\" (click)=\"trailextendItem(item.name)\">{{item.name}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex mt-2 py-2\">\r\n <button type=\"submit\" (click)=\"status = 'help'\"\r\n class=\"btn-outline btn cancel me-4 w-50\">Cancel</button>\r\n <button type=\"button\" (click)=\"extendtrail()\"\r\n tabindex=\"0\" class=\"btn btn-primary px-4 ng-star-inserted w-50\" style=\"white-space: nowrap;\"><span\r\n class=\"submit\">Extend</span></button>\r\n </div>\r\n</div>\r\n</div>\r\n\r\n<div class=\"modal-content\" *ngIf=\"status === 'subscription'\">\r\n <div class=\"p-6\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/alert-icon.svg\" alt=\"\"></div>\r\n <div class=\"heading mt-4 ms-1\">Are you sure you want to raise ticket for subscription cancellation?</div>\r\n </div>\r\n<div class=\"modal-body\">\r\n\r\n <div class=\"\">\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n <div>\r\n <label class=\"headingtext mb-4\">Reason for cancelling</label>\r\n <div class=\"position-relative \">\r\n <div class=\"form-select dropselect levelviewtext\" id=\"currency\" (click)=\"cancellingDropdown($event)\"\r\n aria-label=\"Default select example\">{{cancellingIssue}}</div>\r\n <div *ngIf=\"cancellingdropDown\" class=\"card py-2 w-100 position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let cancellingitem of cancellingtype\" class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"this.cancellingIssue === cancellingitem ? 'active' : ''\" class=\"producttext px-5 items cursor-pointer py-4\" (click)=\"cancellingItem(cancellingitem)\">{{cancellingitem}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n <textarea [(ngModel)]=\"this.cancellingDescription\" placeholder=\"Enter a description...\" class=\" mt-6 custom-textarea\"></textarea>\r\n \r\n </div>\r\n </div>\r\n <div class=\"d-flex mt-2 py-2\">\r\n <button type=\"submit\" (click)=\"status = 'help';cancellingDescription=''\"\r\n class=\"btn-outline btn cancel me-4 w-50\">Cancel</button>\r\n <button type=\"button\" (click)=\"status ='unsubscribe'\"\r\n tabindex=\"0\" class=\"btn btn-danger px-4 ng-star-inserted w-50\" style=\"white-space: nowrap;\"><span\r\n class=\"submit\">Request Unsubscribing</span></button>\r\n </div>\r\n</div>\r\n</div>\r\n\r\n<div class=\"modal-content\" *ngIf=\"status === 'unsubscribe'\">\r\n <div class=\"p-6\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/alert-icon.svg\" alt=\"\"></div>\r\n <div class=\"heading mt-4 ms-1\">Unsubscribed</div>\r\n <div class=\"text-sub mt-4 ms-1\">Are you sure you want the unsubscribe?</div>\r\n </div>\r\n<div class=\"modal-body\" >\r\n <div class=\"d-flex mt-2 py-2\">\r\n <button type=\"submit\" (click)=\"status ='subscription';cancellingDescription=''\"\r\n class=\"btn-outline btn cancel me-4 w-50\">Cancel</button>\r\n <button type=\"button\" (click)=\"unscubscribed()\"\r\n tabindex=\"0\" class=\"btn btn-danger px-4 ng-star-inserted w-50\" style=\"white-space: nowrap;\"><span\r\n class=\"submit\">Yes, Confirm</span></button>\r\n </div>\r\n</div>\r\n</div>\r\n\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-trail-expired',\r\n templateUrl: './trail-expired.component.html',\r\n styleUrl: './trail-expired.component.scss'\r\n})\r\nexport class TrailExpiredComponent {\r\n\r\n}\r\n","<div class=\"modal-content\">\r\n <div class=\"p-6\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/expired-icon.svg\" alt=\"\"></div>\r\n <div class=\"subtext mt-4 ms-1\">Trial Expired! </div>\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n\r\n <div class=\"contenttext mt-4 mx-2\">Unleash the Power of Data - Make smarter, informed decisions based on\r\n comprehensive data analysis.\r\n </div>\r\n <div class=\"contenttext mt-4 mx-2\"> Tango Eye offers detailed reports and analytics, empowering you to\r\n optimize operations, drive revenue, and stay ahead in the competitive retail landscape.\r\n </div>\r\n <div class=\"help mx-3 py-6\"><u>Need help <span><svg width=\"14\" height=\"14\" viewBox=\"0 0 16 16\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g clip-path=\"url(#clip0_14141_69461)\">\r\n <path\r\n d=\"M8.00016 10.6654V7.9987M8.00016 5.33203H8.00683M14.6668 7.9987C14.6668 11.6806 11.6821 14.6654 8.00016 14.6654C4.31826 14.6654 1.3335 11.6806 1.3335 7.9987C1.3335 4.3168 4.31826 1.33203 8.00016 1.33203C11.6821 1.33203 14.6668 4.3168 14.6668 7.9987Z\"\r\n stroke=\"#009BF3\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_14141_69461\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span> </u></div>\r\n\r\n\r\n </div>\r\n <div class=\"d-flex mt-2 py-2\">\r\n <button type=\"button\" tabindex=\"0\" class=\"btn btn-primary px-4 ng-star-inserted w-100\">Upgrade Plan<span\r\n class=\"submit\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\" viewBox=\"0 0 21 20\"\r\n fill=\"none\">\r\n <path\r\n d=\"M11.1927 5.3125C11.5688 5.09375 11.8194 4.69687 11.8194 4.25C11.8194 3.55937 11.229 3 10.5 3C9.77101 3 9.18056 3.55937 9.18056 4.25C9.18056 4.7 9.43125 5.09375 9.80729 5.3125L7.91719 8.89375C7.61701 9.4625 6.83854 9.625 6.31406 9.22813L3.375 7C3.53993 6.79063 3.63889 6.53125 3.63889 6.25C3.63889 5.55938 3.04844 5 2.31944 5C1.59045 5 1 5.55938 1 6.25C1 6.94062 1.59045 7.5 2.31944 7.5C2.32604 7.5 2.33594 7.5 2.34253 7.5L3.85 15.3562C4.03142 16.3062 4.90556 17 5.92812 17H15.0719C16.0911 17 16.9653 16.3094 17.15 15.3562L18.6575 7.5C18.6641 7.5 18.674 7.5 18.6806 7.5C19.4095 7.5 20 6.94062 20 6.25C20 5.55938 19.4095 5 18.6806 5C17.9516 5 17.3611 5.55938 17.3611 6.25C17.3611 6.53125 17.4601 6.79063 17.625 7L14.6859 9.22813C14.1615 9.625 13.383 9.4625 13.0828 8.89375L11.1927 5.3125Z\"\r\n fill=\"white\" />\r\n </svg></span></button>\r\n </div>\r\n\r\n </div>\r\n</div>","import { Component, Input } from '@angular/core';\r\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'lib-successfull-subscription',\r\n templateUrl: './successfull-subscription.component.html',\r\n styleUrl: './successfull-subscription.component.scss'\r\n})\r\nexport class SuccessfullSubscriptionComponent {\r\n @Input() products:any;\r\n constructor(public activeModel: NgbActiveModal) {}\r\n}\r\n","<div class=\"modal-content gifimage\" >\r\n <div class=\"p-6\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/check-icon.svg\" alt=\"\"></div>\r\n <div class=\"heading mt-4 ms-1\">Thanks for the subscription!</div>\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n \r\n <div class=\"contenttext mt-4 mx-2\">You have successfully subscribed to our products \r\n <ul class=\"mt-4\">\r\n <li *ngFor=\"let product of products\">{{product}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div class=\"d-flex mt-2 py-2\">\r\n <button type=\"button\" tabindex=\"0\" class=\"btn btn-primary px-4 ng-star-inserted w-100\" style=\"white-space: nowrap;\" (click)=\"activeModel.close()\">\r\n <span class=\"submit\">Okay</span>\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnInit, OnDestroy } from '@angular/core';\r\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { SuccessfullSubscriptionComponent } from '../successfull-subscription/successfull-subscription.component';\r\nimport { PaymentSubscriptionService } from '../../../../services/payment-subscription.service';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { UpgradePlanComponent } from '../upgrade-plan/upgrade-plan.component';\r\n\r\n@Component({\r\n selector: 'lib-subscription-approval',\r\n templateUrl: './subscription-approval.component.html',\r\n styleUrl: './subscription-approval.component.scss'\r\n})\r\nexport class SubscriptionApprovalComponent implements OnInit, OnDestroy {\r\n @Input() products: any;\r\n @Input() clientInfo: any;\r\n productList: any = [];\r\n select: string = 'continuetrial';\r\n trailselect: string = 'subscribenow';\r\n supportselect: string = 'daystrial';\r\n\r\n gifVisible: boolean = false;\r\n private readonly destroy$ = new Subject();\r\n constructor(private modalService: NgbModal, public activeModel: NgbActiveModal, private toast: ToastService, private PaymentSubscriptionService: PaymentSubscriptionService) {\r\n }\r\n ngOnInit() {\r\n this.products.forEach((item: any) => {\r\n if (typeof item.toolTip != 'undefined' && item?.toolTip == 'On Trial' && item.active) {\r\n this.productList.push({\r\n name: item.productName,\r\n productName: item.aliseProductName,\r\n type: 'trial',\r\n content: 'trial'\r\n })\r\n }\r\n if (typeof item.toolTip != 'undefined' && item?.toolTip == 'Trial Expired' && item.active) {\r\n this.productList.push({\r\n name: item.productName,\r\n productName: item.aliseProductName,\r\n type: 'trial',\r\n content: 'trialExpired'\r\n })\r\n }\r\n if (!item?.toolTip && item.active) {\r\n this.productList.push({\r\n name: item.productName,\r\n productName: item.aliseProductName,\r\n type: 'startTrial',\r\n content: 'new'\r\n })\r\n }\r\n });\r\n\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n suscribed_old() {\r\n let data = {\r\n clientId: this.clientInfo.clientId,\r\n price: this.clientInfo.currentPlanInfo.price,\r\n priceType: this.clientInfo.currentPlanInfo.priceType,\r\n subscriptionType: this.clientInfo.currentPlanInfo.subscriptionType,\r\n subscriptionPeriod: this.clientInfo.currentPlanInfo.subscriptionPeriod,\r\n totalCamera: this.clientInfo.currentPlanInfo.totalCamera,\r\n totalStores: this.clientInfo.currentPlanInfo.totalStores,\r\n storeSize: this.clientInfo.currentPlanInfo.storeSize,\r\n products: this.productList\r\n }\r\n this.PaymentSubscriptionService.updateSubscription(data).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n this.activeModel.close();\r\n const modalRef = this.modalService.open(SuccessfullSubscriptionComponent, {\r\n centered: true, size: 'md'\r\n });\r\n modalRef.componentInstance.products = this.productList.filter((item: any) => item.type != 'cancel').map((item: any) => item.productName);\r\n }\r\n\r\n });\r\n this.gifVisible = true;\r\n }\r\n suscribed() {\r\n let data = {\r\n clientId: this.clientInfo.clientId,\r\n price: this.clientInfo.currentPlanInfo.price,\r\n priceType: this.clientInfo.currentPlanInfo.priceType,\r\n subscriptionType: this.clientInfo.currentPlanInfo.subscriptionType,\r\n subscriptionPeriod: this.clientInfo.currentPlanInfo.subscriptionPeriod,\r\n totalCamera: this.clientInfo.currentPlanInfo.totalCamera,\r\n totalStores: this.clientInfo.currentPlanInfo.totalStores,\r\n storeSize: this.clientInfo.currentPlanInfo.storeSize,\r\n products: this.productList\r\n }\r\n this.PaymentSubscriptionService.updateSubscription(data).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n this.activeModel.close();\r\n const modalRef = this.modalService.open(UpgradePlanComponent, {\r\n centered: true, size: 'md'\r\n });\r\n modalRef.componentInstance.clientId = this.clientInfo.clientId;\r\n modalRef.componentInstance.subscription = \"confirmationmessage\";\r\n modalRef.componentInstance.confirmedProducts = this.productList.filter((item: any) => item.type != 'cancel').map((item: any) => item.productName);\r\n modalRef.result.then((result) => { \r\n if (result) {\r\n }\r\n });\r\n }\r\n\r\n });\r\n this.gifVisible = true;\r\n }\r\n updateProduct(index: number, type: string) {\r\n this.productList[index].type = type;\r\n }\r\n}\r\n","<div class=\"modal-content\">\r\n <div class=\"p-6\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/settings-icon.svg\" alt=\"\"></div>\r\n <div class=\"heading mt-4 ms-1\">Confirmation</div>\r\n <div class=\"contenttext mt-4 ms-1\">\r\n Please update the status of below product\r\n </div>\r\n </div>\r\n <div class=\"modal-body\">\r\n <!--begin::Form-->\r\n <form id=\"kt_modal_new_card_form\" class=\"form fv-plugins-bootstrap5 fv-plugins-framework\" action=\"#\">\r\n \r\n <div class=\"fv-row fv-plugins-icon-container \">\r\n <div class=\"confirmationborder mb-3\" *ngFor=\"let product of productList;let i=index\">\r\n <div class=\"d-flex justify-content-between\">\r\n <label for=\"TangoZone\" class=\" producttext mb-2\">{{product.productName}}</label>\r\n <span class=\"badge badge-light-primary ms-2\" *ngIf=\"product.content === 'trial'\">On Trial\r\n <img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/primary-clock-icon.svg\" alt=\"\">\r\n </span>\r\n <span class=\"badge badge-light-warning ms-2\" *ngIf=\"product.content === 'trialExpired'\">Trial Expired\r\n <img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/warning-clock-icon.svg\" alt=\"\">\r\n </span>\r\n </div>\r\n <div class=\"form-group pt-1\" *ngIf=\"product.content === 'trial'\">\r\n <div class=\"form-check form-check-inline ps-0\" (click)=\"updateProduct(i,'trial')\">\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"ontrailRadioOptions_{{i}}\"\r\n id=\"inlineRadio1\" value=\"continuetrail\" checked>\r\n <label class=\"form-check-label radio-custom-label mx-3 producttext cursor-pointer\"\r\n for=\"inlineRadio1\">Continue with Trial</label>\r\n </div><br>\r\n <div class=\"form-check form-check-inline ps-0\" (click)=\"updateProduct(i,'subscription')\">\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"ontrailRadioOptions_{{i}}\"\r\n id=\"inlineRadio1\" value=\"addsubscription\">\r\n <label class=\"form-check-label producttext radio-custom-label mx-3 cursor-pointer\"\r\n for=\"inlineRadio1\">Add to Subscription</label>\r\n </div>\r\n \r\n </div>\r\n <div class=\"form-group pt-1\" *ngIf=\"product.content === 'trialExpired'\">\r\n <div class=\"form-check form-check-inline ps-0\" (click)=\"updateProduct(i,'subscription')\">\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"TrailExpiredRadioOptions_{{i}}\" id=\"inlineRadio1\"\r\n value=\"subscribenow\" checked>\r\n <label class=\"form-check-label radio-custom-label mx-3 producttext cursor-pointer\" for=\"inlineRadio1\">Subscribe Now</label>\r\n </div><br>\r\n <div class=\"form-check form-check-inline ps-0\" (click)=\"updateProduct(i,'cancel')\">\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"TrailExpiredRadioOptions_{{i}}\" id=\"inlineRadio1\"\r\n value=\"dolater\">\r\n <label class=\"form-check-label producttext radio-custom-label mx-3 cursor-pointer\" for=\"inlineRadio1\">I'll do it\r\n later</label>\r\n </div>\r\n \r\n </div>\r\n\r\n <div class=\"form-group pt-1\" *ngIf=\"product.content === 'new'\">\r\n <div class=\"form-check form-check-inline ps-0\" (click)=\"updateProduct(i,'trial')\">\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"supportRadioOptions_{{i}}\" id=\"inlineRadio1\"\r\n value=\"daystrail\" checked>\r\n <label class=\"form-check-label radio-custom-label mx-3 producttext cursor-pointer\" for=\"inlineRadio1\">Start 14\r\n days Trial</label>\r\n </div><br>\r\n <div class=\"form-check form-check-inline ps-0\" (click)=\"updateProduct(i,'subscription')\">\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"supportRadioOptions_{{i}}\" id=\"inlineRadio1\"\r\n value=\"subscribenow\">\r\n <label class=\"form-check-label producttext radio-custom-label mx-3 cursor-pointer\" for=\"inlineRadio1\">Subscribe\r\n Now</label>\r\n </div><br>\r\n <div class=\"form-check form-check-inline ps-0\" (click)=\"updateProduct(i,'cancel')\">\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"supportRadioOptions_{{i}}\" id=\"inlineRadio1\"\r\n value=\"later\">\r\n <label class=\"form-check-label producttext radio-custom-label mx-3 cursor-pointer\" for=\"inlineRadio1\">I'll do it\r\n later</label>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n <div class=\"d-flex mt-9 my-2\">\r\n <button type=\"submit\" class=\"btn-outline btn cancel me-4 w-50\" (click)=\"activeModel.close()\">Cancel</button>\r\n <button type=\"button\" (click)=\"suscribed()\" tabindex=\"0\"\r\n class=\"btn btn-primary px-4 ng-star-inserted w-50\" style=\"white-space: nowrap;\"><span\r\n class=\"submit\">Submit</span></button>\r\n </div>\r\n </div>\r\n \r\n \r\n <!--end::Actions-->\r\n </form>\r\n <!--end::Form-->\r\n \r\n </div>\r\n</div>","import { Component, Input, OnInit } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'lib-model-content',\r\n templateUrl: './model-content.component.html',\r\n styleUrl: './model-content.component.scss'\r\n})\r\nexport class ModalContentComponent implements OnInit{\r\n @Input() user: string;\r\n @Input() width: string;\r\n @Input() height: string;\r\n expandDetails: any = {\r\n tangoTraffic: false,\r\n tangoZone: false,\r\n tangoSop: false,\r\n prioritySupport: false,\r\n };\r\n constructor(\r\n public activeModal: NgbActiveModal\r\n ) { }\r\n ngOnInit() {\r\n this.expandDetails[this.user] = true\r\n\r\n }\r\n expandPlan(key: any) {\r\n const keys = Object.keys(this.expandDetails)\r\n keys.forEach((ele: any) => {\r\n if (key === ele) this.expandDetails[ele] = !this.expandDetails[ele]\r\n else this.expandDetails[ele] = false\r\n })\r\n }\r\n passBack() {\r\n this.activeModal.close(this.user);\r\n }\r\n}","<div [style.width]=\"width\" [style.height]=\"height\">\r\n <div class=\"modal-header border-bottom-0\">\r\n <!-- <h4 class=\"modal-title\" id=\"modal-basic-title\">Simple modal</h4> -->\r\n <div class=\"col-12 text-end \">\r\n <div class=\"btn btn-sm btn-icon btn-active-color-primary\" data-bs-dismiss=\"modal\">\r\n <i (click)=\"activeModal.dismiss('Cross click')\" class=\"ki-duotone ki-cross fs-1\"><span\r\n class=\"path1\"></span><span class=\"path2\"></span></i>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"modal-body pt-0\">\r\n <div class=\"row mx-5\">\r\n <div class=\"col-lg-6 col-md-6 col-sm-6 md-offset-3\">\r\n <div class=\"align-items-center border-0 mb-4\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"main fs-lg-1 text-gray-800 mb-2 \">Product Offerings</span>\r\n </h3>\r\n </div>\r\n <div class=\"\">\r\n <div class=\"d-flex align-items-center collapsible py-3 toggle mb-0\" data-bs-toggle=\"collapse\"\r\n data-bs-target=\"#kt_job_4_1\">\r\n <div class=\"btn btn-sm btn-icon mw-20px btn-active-color-primary me-5\"\r\n (click)=\"expandPlan('tangoTraffic')\">\r\n <span class=\"svg-icon svg-icon-primary svg-icon-1\" *ngIf=\"expandDetails.tangoTraffic\"><svg\r\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"6.0104\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n <span class=\"svg-icon svg-icon-1\" *ngIf=\"!expandDetails.tangoTraffic\"><svg width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"10.8891\" y=\"17.8033\" width=\"12\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(-90 10.8891 17.8033)\" fill=\"currentColor\"></rect>\r\n <rect x=\"6.01041\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n </div>\r\n <h4 class=\"text-gray-700 fw-bold cursor-pointer mb-0\">\r\n Tango Traffic\r\n </h4>\r\n </div>\r\n <div id=\"kt_job_4_1\" class=\"collapse show fs-6 ms-1\" *ngIf=\"expandDetails.tangoTraffic\">\r\n <div class=\"mb-4 text-gray-700 sub\">\r\n <ul>\r\n <li>Footfall Analysis.</li>\r\n <li>Bounced vs Engager Analysis</li>\r\n <li>Missed Opportunity Vs Conversion Rate.</li>\r\n <li>Footfall Image Directory by the hour.</li>\r\n <li>Infra tracking ticketing system.</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"m-0\">\r\n <div class=\"d-flex align-items-center collapsible py-3 toggle mb-0\" data-bs-toggle=\"collapse\"\r\n data-bs-target=\"#kt_job_4_1\">\r\n <div class=\"btn btn-sm btn-icon mw-20px btn-active-color-primary me-5\"\r\n (click)=\"expandPlan('tangoZone')\">\r\n <span class=\"svg-icon svg-icon-primary svg-icon-1\" *ngIf=\"expandDetails.tangoZone\"><svg\r\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"6.0104\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n <span class=\"svg-icon svg-icon-1\" *ngIf=\"!expandDetails.tangoZone\"><svg width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"10.8891\" y=\"17.8033\" width=\"12\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(-90 10.8891 17.8033)\" fill=\"currentColor\"></rect>\r\n <rect x=\"6.01041\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n </div>\r\n <h4 class=\"text-gray-700 fw-bold cursor-pointer mb-0\">\r\n Tango Zone\r\n </h4>\r\n </div>\r\n <div id=\"kt_job_4_1\" class=\"collapse show fs-6 ms-1\" *ngIf=\"expandDetails.tangoZone\">\r\n <div class=\"mb-4 text-gray-700 sub\">\r\n <ul>\r\n <li>Heatmap Analysis.</li>\r\n <li>Concentration % of each of your zone.</li>\r\n <li>Customer trajectory during their visit to your store.</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"m-0\">\r\n <div class=\"d-flex align-items-center collapsible py-3 toggle mb-0\" data-bs-toggle=\"collapse\"\r\n data-bs-target=\"#kt_job_4_1\">\r\n <div class=\"btn btn-sm btn-icon mw-20px btn-active-color-primary me-5\"\r\n (click)=\"expandPlan('tangoSop')\">\r\n <span class=\"svg-icon svg-icon-primary svg-icon-1\" *ngIf=\"expandDetails.tangoSop\"><svg width=\"24\"\r\n height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"6.0104\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n <span class=\"svg-icon svg-icon-1\" *ngIf=\"!expandDetails.tangoSop\"><svg width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"10.8891\" y=\"17.8033\" width=\"12\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(-90 10.8891 17.8033)\" fill=\"currentColor\"></rect>\r\n <rect x=\"6.01041\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n </div>\r\n <h4 class=\"text-gray-700 fw-bold cursor-pointer mb-0\">\r\n Tango TRAX\r\n </h4>\r\n </div>\r\n <div id=\"kt_job_4_1\" class=\"collapse show fs-6 ms-1\" *ngIf=\"expandDetails.tangoSop\">\r\n <div class=\"mb-4 text-gray-700 sub\">\r\n <ul>\r\n <li>Daily store operation.</li>\r\n <li> Extensive summary of data points like store open and close time.\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"m-0\">\r\n <div class=\"d-flex align-items-center collapsible py-3 toggle mb-0\" data-bs-toggle=\"collapse\"\r\n data-bs-target=\"#kt_job_4_1\">\r\n <div class=\"btn btn-sm btn-icon mw-20px btn-active-color-primary me-5\"\r\n (click)=\"expandPlan('prioritySupport')\">\r\n <span class=\"svg-icon svg-icon-primary svg-icon-1\" *ngIf=\"expandDetails.prioritySupport\"><svg\r\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"6.0104\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n <span class=\"svg-icon svg-icon-1\" *ngIf=\"!expandDetails.prioritySupport\"><svg width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"10.8891\" y=\"17.8033\" width=\"12\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(-90 10.8891 17.8033)\" fill=\"currentColor\"></rect>\r\n <rect x=\"6.01041\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n </div>\r\n <h4 class=\"text-gray-700 fw-bold cursor-pointer mb-0\">\r\n Priority Support\r\n </h4>\r\n </div>\r\n <div id=\"kt_job_4_1\" class=\"collapse show fs-6 ms-1\" *ngIf=\"expandDetails.prioritySupport\">\r\n <div class=\"mb-4 text-gray-700 sub\">\r\n <ul>\r\n <li> 24*7 CCTV monitoring of all the cameras in a single screen.</li>\r\n <li>Live and Recap video option for the entire day.\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <div class=\"col-lg-6 col-md-6 col-sm-6 \">\r\n <div class=\"card-header\">\r\n <video class=\"video-width\" muted autoplay controls style=\"border-radius: 20px;\">\r\n <source src=\"https://tangoeye-dashboard-video.objectstore.e2enetworks.net/tango-main-video%201.mp4\" type=\"video/mp4\">\r\n <!-- https://tango-staticsite.s3.ap-south-1.amazonaws.com/Tango+Eye_720p_with+music_Trim.mp4\" -->\r\n </video>\r\n </div>\r\n <div class=\"card-header align-items-center border-0 mt-4\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"main fs-lg-1 text-gray-800\">Product Walk-Through</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-header align-items-center border-0 my-2 ms-6\"><span class=\"sub\">We transform your\r\n existing CCTV cameras into a powerful store analytics tool.\r\n Our industry-first Al and computer vision technology help brands identify missed sale\r\n opportunities and focus on improving conversion rates across stores.</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { ChangeDetectorRef, Component, OnDestroy, Input, OnInit, HostListener } from '@angular/core';\r\nimport { UpdateComponent } from '../update/update.component';\r\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { SuccessfullSubscriptionComponent } from '../successfull-subscription/successfull-subscription.component';\r\nimport { TrailExpiredComponent } from '../trail-expired/trail-expired.component';\r\nimport { SubscriptionApprovalComponent } from '../subscription-approval/subscription-approval.component';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { PaymentSubscriptionService } from '../../../../services/payment-subscription.service';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { ModalContentComponent } from '../model-content/model-content.component';\r\n@Component({\r\n selector: 'lib-upgrade-plan',\r\n templateUrl: './upgrade-plan.component.html',\r\n styleUrl: './upgrade-plan.component.scss'\r\n})\r\nexport class UpgradePlanComponent implements OnDestroy,OnInit {\r\n @Input() clientId:string\r\n noofstoresdropDown: boolean = false;\r\n AvgstoresdropDown: boolean = false;\r\n noofstorestype: any[] = ['1(free)', '2 - 25', '26 - 50', '51 - 75', '76 - 100', '100+'];\r\n Avgstorestype: any[] = [{name:'50 - 500 sq.ft',value:'50-500'},{name: '500 - 750 sq.ft',value:'500-750'},{name:'750 - 1000 sq.ft',value:'750-1000'}, {name:'1000 - 1500 sq.ft',value:'1000-1500'}, {name:'1500 - 2000 sq.ft',value:'1500-2000'},{name: '2000+ sq.ft',value:'2000+'}];\r\n plan: string = 'monthly';\r\n showNavGroup: boolean = true;\r\n noofstoresitem: any;\r\n noofstoresIssue: any;\r\n Avgstoresitem: any;\r\n AvgstoresIssue: any;\r\n updateinfo: any;\r\n active: boolean = false;\r\n clientInfo: any;\r\n price:any;\r\n originalPrice:any = 0;\r\n oldProducts:any;\r\n disableBtn:boolean = true;\r\n trialproducts:any = [];\r\n expiredProducts:any =[];\r\n subscription = 'pricingplan';\r\n confirmedProducts:any = [];\r\n private readonly destroy$ = new Subject();\r\n clientinfo: any;\r\n\r\n\r\n constructor(private modalService: NgbModal, public activeModel: NgbActiveModal, private toast: ToastService, private PaymentSubscriptionService: PaymentSubscriptionService, private changeDetector: ChangeDetectorRef,) {\r\n }\r\n\r\n ngOnInit():void {\r\n this.updatesubscription(this.clientId);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n selectPlan(plan: string) {\r\n this.clientInfo.currentPlanInfo.subscriptionPeriod = plan;\r\n this.basePricing();\r\n }\r\n\r\n update() {\r\n const modalRef = this.modalService.open(UpdateComponent, {\r\n centered: true, size: 'md'\r\n });\r\n modalRef.componentInstance.modalData = {\r\n brandName: this.clientInfo?.clientName,\r\n gstNumber:this.clientInfo?.billingDetails?.gstNumber|| '',\r\n billingAddress:this.clientInfo?.billingDetails?.billingAddress|| '',\r\n clientId: this.clientInfo?.clientId\r\n }\r\n modalRef.result.then((result) => {\r\n if (result) {\r\n this.clientInfo.billingDetails.billingAddress = result?.billingAddress;\r\n this.changeDetector.detectChanges();\r\n }\r\n });\r\n\r\n }\r\n\r\n trailexpired() {\r\n this.activeModel.close();\r\n const modalRef = this.modalService.open(TrailExpiredComponent, {\r\n centered: true, size: 'md'\r\n });\r\n modalRef.result.then((result) => {\r\n\r\n });\r\n }\r\n\r\n confirmation() {\r\n this.activeModel.close();\r\n const modalRef = this.modalService.open(SubscriptionApprovalComponent, {\r\n centered: true, size: 'md', scrollable: true\r\n });\r\n modalRef.componentInstance.products = this.clientInfo?.currentPlanInfo?.product;\r\n modalRef.componentInstance.clientInfo = this.clientInfo;\r\n }\r\n\r\n toggleNavGroup() {\r\n this.showNavGroup = !this.showNavGroup;\r\n }\r\n\r\n noofstoresDropdown(event: MouseEvent) {\r\n event.stopPropagation();\r\n this.AvgstoresdropDown = false;\r\n this.noofstoresdropDown = !this.noofstoresdropDown;\r\n }\r\n AvgstoresDropdown(event: MouseEvent) {\r\n event.stopPropagation();\r\n this.noofstoresdropDown = false;\r\n this.AvgstoresdropDown = !this.AvgstoresdropDown;\r\n }\r\n\r\n updatesubscription(id: any) {\r\n this.PaymentSubscriptionService.clientBillingInfo(id).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n this.clientInfo = res.data;\r\n if(this.clientInfo?.currentPlanInfo?.trialProducts) {\r\n this.trialproducts = this.clientInfo.currentPlanInfo.trialProducts.map((item:any) => item.productName) ;\r\n }\r\n if(this.clientInfo?.currentPlanInfo?.expiredProducts) {\r\n this.expiredProducts = this.clientInfo.currentPlanInfo.expiredProducts.map((item:any) => item.productName) ;\r\n }\r\n \r\n this.oldProducts = JSON.parse(JSON.stringify(this.clientInfo.currentPlanInfo.product))\r\n this.basePricing();\r\n this.changeDetector.detectChanges();\r\n }\r\n })\r\n\r\n }\r\n\r\n basePricing() {\r\n let products = this.clientInfo?.currentPlanInfo?.product.filter((product:any) => product.active == true).map((item:any) => item.productName);\r\n let params: any = {\r\n camaraPerSqft: this.clientInfo.currentPlanInfo.storeSize,\r\n storesCount: this.clientInfo.currentPlanInfo.totalStores,\r\n planName: this.clientInfo.currentPlanInfo.subscriptionPeriod,\r\n products: products,\r\n currencyType: this.clientInfo?.currentPlanInfo?.currencyType || 'rupees'\r\n }\r\n this.PaymentSubscriptionService.basePricing(params).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if(res && res.code == 200) {\r\n this.clientInfo.currentPlanInfo.price = res.data.price;\r\n this.originalPrice = res.data.OriginalPrice;\r\n this.clientInfo.currentPlanInfo.totalCamera = res.data.camaraCount;\r\n this.changeDetector.detectChanges();\r\n }\r\n });\r\n }\r\n\r\n updateProduct(event:any,data:string) {\r\n let changesCount = 0;\r\n let productIndex = this.clientInfo?.currentPlanInfo?.product.findIndex((product:any) => product.productName == data);\r\n if(productIndex != -1) {\r\n if(event.target.checked)\r\n this.clientInfo.currentPlanInfo.product[productIndex].active = true;\r\n else \r\n this.clientInfo.currentPlanInfo.product[productIndex].active = false; \r\n }\r\n\r\n this.clientInfo?.currentPlanInfo?.product.forEach((item:any) => {\r\n let details = this.oldProducts.find((ele:any) => ele.productName == item.productName);\r\n if(details) {\r\n if(details.active != item.active) {\r\n changesCount++;\r\n }\r\n }\r\n })\r\n if (changesCount == 0) {\r\n this.disableBtn = true;\r\n }\r\n else {\r\n this.disableBtn = false;\r\n }\r\n this.basePricing();\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n noofstoresdata(noofstoresvalue: any) {\r\n this.clientInfo.currentPlanInfo.totalStores = noofstoresvalue;\r\n this.noofstoresdropDown = false;\r\n this.basePricing();\r\n }\r\n Avgstoresdata(Avgstoresvalue: any) {\r\n this.clientInfo.currentPlanInfo.storeSize = Avgstoresvalue;\r\n this.basePricing();\r\n this.AvgstoresdropDown = false;\r\n }\r\n getColorClass(toolTip: string) {\r\n switch (toolTip) {\r\n case 'Subscribed': return 'badge badge-light-success mx-4';\r\n case 'Trial Expired': return 'badge badge-light-warning mx-4';\r\n case 'On Trial': return 'badge badge-light-primary mx-4';\r\n default: return '';\r\n }\r\n }\r\n\r\n @HostListener('document:click', ['$event'])\r\n onDocumentClick(event: MouseEvent) {\r\n this.AvgstoresdropDown = false;\r\n this.noofstoresdropDown = false;\r\n }\r\n\r\n showInfo(data:any) {\r\n const modalRef = this.modalService.open(ModalContentComponent, {\r\n centered: true, size: 'lg', scrollable: true,\r\n });\r\n modalRef.componentInstance.user = data;\r\n }\r\n closePopupAndReloadData() {\r\n this.clientBillingInfo(this.clientId);\r\n this.PaymentSubscriptionService.triggerReload();\r\n this.activeModel.close();\r\n }\r\n clientBillingInfo(id: any) {\r\n this.PaymentSubscriptionService.clientBillingInfo(id).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n this.clientinfo = res.data;\r\n this.changeDetector.detectChanges();\r\n }\r\n })\r\n\r\n }\r\n\r\n\r\n}\r\n","<section *ngIf=\"subscription === 'pricingplan'\">\r\n <div *ngIf=\"showNavGroup\" class=\"nav-group nav-group-outline mx-auto mt-8 d-flex justify-content-center\">\r\n <button class=\"btn btn-color-gray-600 btn-active btn-active-secondary px-6 py-3 me-2\"\r\n [ngClass]=\"clientInfo?.currentPlanInfo?.subscriptionPeriod === 'monthly' ? 'activePlanBtn':'inactivePlanBtn'\"\r\n data-kt-plan=\"month\" (click)=\"selectPlan('monthly')\">\r\n Monthly\r\n </button>\r\n\r\n <button class=\"btn btn-color-gray-600 btn-active btn-active-secondary px-6 py-3\"\r\n [ngClass]=\"clientInfo?.currentPlanInfo?.subscriptionPeriod === 'quarterly'? 'activePlanBtn':'inactivePlanBtn'\"\r\n data-kt-plan=\"Quarterly\" (click)=\"selectPlan('quarterly')\">\r\n Quarterly - 10%\r\n </button>\r\n <button class=\"btn btn-color-gray-600 btn-active btn-active-secondary px-6 py-3\"\r\n [ngClass]=\"clientInfo?.currentPlanInfo?.subscriptionPeriod === 'annual'? 'activePlanBtn':'inactivePlanBtn'\"\r\n data-kt-plan=\"annual\" (click)=\"selectPlan('annual')\">\r\n Annual - 15%\r\n </button>\r\n\r\n</div>\r\n\r\n<div class=\"modal-body row \">\r\n <div class=\"col-lg-6 pe-8 vertical\">\r\n\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n <div class=\"py-2\">\r\n <label class=\"headingtext mb-3\">No of Stores </label>\r\n <div class=\"position-relative \">\r\n <div class=\"form-select dropselect levelviewtext\" id=\"currency\" (click)=\"noofstoresDropdown($event)\"\r\n aria-label=\"Default select example\">{{clientInfo?.currentPlanInfo?.totalStores ||\r\n noofstorestype[0]}}</div>\r\n <div *ngIf=\"noofstoresdropDown\" class=\"card py-2 w-100 position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let noofstores of noofstorestype\" class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"clientInfo?.currentPlanInfo?.totalStores === noofstores ? 'active' : ''\"\r\n class=\"producttext px-5 items cursor-pointer py-4\" (click)=\"noofstoresdata(noofstores)\">\r\n {{ noofstores }}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"py-2\">\r\n <label class=\"headingtext mb-3\">Average Size of Stores </label>\r\n <div class=\"position-relative \">\r\n <div class=\"form-select dropselect levelviewtext\" id=\"currency\" (click)=\"AvgstoresDropdown($event)\"\r\n aria-label=\"Default select example\">{{clientInfo?.currentPlanInfo?.storeSize ||\r\n Avgstorestype[0].value}}</div>\r\n <div *ngIf=\"AvgstoresdropDown\" class=\"card py-2 w-100 position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let Avgstores of Avgstorestype\" class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"clientInfo?.currentPlanInfo?.storeSize === Avgstores ? 'active' : ''\"\r\n class=\"producttext px-5 items cursor-pointer py-4\" (click)=\"Avgstoresdata(Avgstores.value)\">\r\n {{Avgstores.name}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"maxcam mt-2\">\r\n Maximum {{clientInfo?.currentPlanInfo?.totalCamera}} Cameras are permitted in stores with square feet between {{clientInfo?.currentPlanInfo?.storeSize}}.\r\n </div>\r\n </div>\r\n\r\n <div class=\"selecttext my-5 mt-12\">Select Products</div>\r\n\r\n <div *ngFor=\"let productlist of clientInfo?.currentPlanInfo?.product\" class=\"form-check form-switch d-flex justify-content-between mt-6\">\r\n <div>\r\n <span><input class=\"form-check-input\" type=\"checkbox\" role=\"switch\" id=\"tangorevop\"\r\n [checked]=\"productlist.active === true\" (change)=\"updateProduct($event,productlist.productName)\" [disabled]=\"productlist.status === 'live' || productlist.status === 'trial' \"></span>\r\n <label for=\"flexSwitchCheckDefault\"\r\n class=\"form-check-label headingtext d-flex\">{{productlist.aliseProductName}} \r\n <span [class]=\"getColorClass(productlist.toolTip)\">\r\n {{productlist.toolTip}} <span *ngIf=\"expiredProducts.length && productlist.productName.includes(expiredProducts)\"><img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/clockexpiry-icon.svg\" alt=\"\"> \r\n </span> <span *ngIf=\"trialproducts.length && productlist.productName.includes(trialproducts)\">\r\n <img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/primary-clock-icon.svg\" alt=\"\"> \r\n </span>\r\n </span>\r\n </label>\r\n </div>\r\n <span class=\"view\" (click)=\"showInfo(productlist.productName)\">View Info <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"14\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path\r\n d=\"M9 6.5V9.5C9 9.76522 8.89464 10.0196 8.70711 10.2071C8.51957 10.3946 8.26522 10.5 8 10.5H2.5C2.23478 10.5 1.98043 10.3946 1.79289 10.2071C1.60536 10.0196 1.5 9.76522 1.5 9.5V4C1.5 3.73478 1.60536 3.48043 1.79289 3.29289C1.98043 3.10536 2.23478 3 2.5 3H5.5M7.5 1.5H10.5M10.5 1.5V4.5M10.5 1.5L5 7\"\r\n stroke=\"#009BF3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </div>\r\n\r\n\r\n\r\n\r\n </div>\r\n <div class=\"col-lg-6 px-8\">\r\n <div class=\"pb-6\">\r\n\r\n <div class=\"pricingtext\">{{clientInfo?.currentPlanInfo?.subscriptionType | titlecase}}</div>\r\n\r\n <div class=\"semi mt-2\">\r\n Integrated Solution for Growing Business\r\n </div>\r\n <!-- <div class=\"d-flex\"><span class=\"me-3 mt-5\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2231_42342)\">\r\n <path\r\n d=\"M7.99967 10.6673V8.00065M7.99967 5.33398H8.00634M14.6663 8.00065C14.6663 11.6826 11.6816 14.6673 7.99967 14.6673C4.31778 14.6673 1.33301 11.6826 1.33301 8.00065C1.33301 4.31875 4.31778 1.33398 7.99967 1.33398C11.6816 1.33398 14.6663 4.31875 14.6663 8.00065Z\"\r\n stroke=\"#B54708\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2231_42342\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n <div class=\"subtext mt-6\">You will only be charged for < Tango Traffic,Tango <br>Zone & Tango RevOps >\r\n </div>\r\n </div> -->\r\n <div class=\"sub1text mt-5\">Starts from <span class=\"billedtext ms-2\"><s><span *ngIf=\"clientInfo?.currentPlanInfo?.currencyType === 'inr'\">₹</span><span *ngIf=\"clientInfo?.currentPlanInfo?.currencyType === 'dollar'\">$</span>{{originalPrice}}</s></span><span\r\n class=\"billingtext ms-4\"><span *ngIf=\"clientInfo?.currentPlanInfo?.currencyType === 'inr'\">₹</span><span\r\n *ngIf=\"clientInfo?.currentPlanInfo?.currencyType === 'dollar'\">$</span>{{clientInfo?.currentPlanInfo?.price || 0}}</span></div>\r\n <div class=\"sub1text mt-2\">Per store Per month</div>\r\n\r\n </div>\r\n <div class=\"detailstext\">Billing Details</div>\r\n\r\n <div class=\"sub1text py-4\">\r\n <div class=\"mb-4\">Brand Name: {{clientInfo?.clientName}}</div>\r\n <div>Billing Address: {{clientInfo?.billingDetails?.billingAddress || '--'}}</div>\r\n </div>\r\n <div class=\"d-flex justify-content-end subscribe\"> \r\n <button (click)=\"update()\" type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-primary ms-2 ng-star-inserted w-100 btn-block text-nowrap\" *ngIf=\"!clientInfo?.billingDetails?.billingAddress\"><span class=\"submit\">Enter\r\n Billing Details </span></button>\r\n <button (click)=\"confirmation()\" type=\"button\" tabindex=\"0\" *ngIf=\"clientInfo?.billingDetails?.billingAddress\"\r\n class=\"btn btn-primary ms-2 ng-star-inserted w-100 btn-block\" style=\"white-space: nowrap;\" [disabled]=\"disableBtn\"><span\r\n class=\"submit\">Subscribe Now </span></button>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n</section>\r\n\r\n<div *ngIf=\"subscription === 'confirmationmessage'\" class=\"modal-content gifimage\" >\r\n <div class=\"p-6\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/check-icon.svg\" alt=\"\"></div>\r\n <div class=\"heading mt-4 ms-1\">Thanks for the subscription!</div>\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n \r\n <div class=\"contenttext mt-4 mx-2\">You have successfully subscribed to our products \r\n <ul class=\"mt-4\">\r\n <li *ngFor=\"let product of confirmedProducts\">{{product}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n \r\n <div class=\"d-flex mt-2 py-2\">\r\n <button type=\"button\" tabindex=\"0\" class=\"btn btn-primary px-4 ng-star-inserted w-100\" (click)=\"closePopupAndReloadData()\" style=\"white-space: nowrap;\">\r\n <span class=\"submit\">Okay</span>\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, OnInit, Input, Output, EventEmitter, ChangeDetectorRef, OnDestroy, HostListener } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport Swal from 'sweetalert2';\r\nimport { PaymentSubscriptionService } from '../../../../services/payment-subscription.service';\r\nimport { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { left } from '@popperjs/core';\r\nimport { Subject, takeUntil } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'lib-credit-note',\r\n templateUrl: './credit-note.component.html',\r\n styleUrl: './credit-note.component.scss'\r\n})\r\nexport class CreditNoteComponent implements OnInit,OnDestroy {\r\n @Input() clientId:any;\r\n invoiceIssue: any;\r\n invoicetype: { name: string, value: string }[] = []; \r\n invoicetypedropDown:boolean = false;\r\n creditnoteform: FormGroup;\r\n totalAmount: number = 0;\r\n discount: any;\r\n revisedAmount: number = 0\r\n moreThanTenPercent:boolean = false\r\n\r\n @Output() passEntry: EventEmitter<any> = new EventEmitter();\r\n invoiceitem: any;\r\n\r\n private readonly destroy$ = new Subject();\r\n \r\n constructor(\r\n public activeModal: NgbActiveModal,private PaymentSubscriptionService: PaymentSubscriptionService, private changeDetector: ChangeDetectorRef,private fb: FormBuilder,private toast:ToastService\r\n ) { \r\n }\r\n\r\n ngOnInit(): void {\r\n this.creditnote();\r\n this.creditnoteform = this.fb.group({\r\n invoicetype: ['', Validators.required],\r\n totalAmount: ['', Validators.required], \r\n revisedAmount:['', Validators.required] ,\r\n discount: ['',[ Validators.required, Validators.max(10)]],\r\n });\r\n this.creditnoteform.get('revisedAmount')?.valueChanges.pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if(e) { \r\n this.totalAmount = this.creditnoteform.get('totalAmount')?.value;\r\n this.discount = ((this.totalAmount - e) / this.totalAmount * 100).toFixed(2);\r\n this.revisedAmount=e;\r\n if(this.discount>10 || isNaN(e) || this.discount < 0 || e < 0){\r\n this.moreThanTenPercent = true; \r\n }\r\n else {\r\n this.moreThanTenPercent = false;\r\n }\r\n this.creditnoteform.get('discount')?.setValue(this.discount, {\r\n emitEvent\r\n : false });\r\n }else{\r\n let emptdiscount = ''\r\n this.creditnoteform.get('discount')?.setValue(emptdiscount, {\r\n emitEvent\r\n : false });\r\n this.moreThanTenPercent = false; \r\n } \r\n })\r\n \r\n this.creditnoteform.get('discount')?.valueChanges.pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if(e) {\r\n this.totalAmount = this.creditnoteform.get('totalAmount')?.value;\r\n this.revisedAmount = this.totalAmount * (1 - e / 100);\r\n this.revisedAmount = parseInt(this.revisedAmount.toFixed())\r\n this.discount=e;\r\n if (this.discount>10 || isNaN(e) || e < 0 || this.revisedAmount < 0){\r\n this.moreThanTenPercent = true; \r\n }\r\n else {\r\n this.moreThanTenPercent = false;\r\n }\r\n this.creditnoteform.get('revisedAmount')?.setValue(this.revisedAmount, {\r\n emitEvent\r\n : false });\r\n }else{\r\n let emptdiscount = ''\r\n this.creditnoteform.get('revisedAmount')?.setValue(emptdiscount, {\r\n emitEvent\r\n : false });\r\n this.moreThanTenPercent = false; \r\n }\r\n\r\n this.changeDetector.detectChanges();\r\n\r\n })\r\n }\r\n get revisedamount() { return this.creditnoteform.get('revisedAmount'); }\r\n get discounts() { return this.creditnoteform.get('discount'); }\r\n \r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n \r\n creditnote(){\r\n \r\n this.PaymentSubscriptionService.getinvoice(this.clientId).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n this.invoiceitem = res?.data;\r\n this.invoiceIssue = this.invoiceitem[0]?.invoice;\r\n const totalAmount = this.invoiceitem[0]?.totalAmount || \"\";\r\n this.creditnoteform.patchValue({\r\n totalAmount: totalAmount,\r\n discount:this.invoiceitem[0]?.discount\r\n });\r\n \r\n this.changeDetector.detectChanges();\r\n }\r\n });\r\n }\r\n\r\n invoiceItem(invoicevalue:any){\r\n this.creditnoteform.patchValue({\r\n totalAmount: invoicevalue.totalAmount,\r\n ...(invoicevalue?.discount ? {discount:invoicevalue?.discount} : {discount:''}),\r\n ...(invoicevalue?.revisedAmount ? {revisedAmount:invoicevalue?.revisedAmount} : {revisedAmount:''})\r\n });\r\n this.invoiceIssue = invoicevalue.invoice;\r\n this.creditnoteform.get('invoicetype')?.setValue(this.invoiceIssue)\r\n this.invoicetypedropDown = false;\r\n }\r\n invoicetypeDropdown(event:MouseEvent){\r\n event.stopPropagation();\r\n this.invoicetypedropDown = !this.invoicetypedropDown;\r\n this.revisedAmount \r\n }\r\n successcredit() {\r\n const requestData = {\r\n invoice:this.invoiceIssue,\r\n revisedAmount:this.revisedAmount,\r\n discount:this.discount\r\n };\r\n this.PaymentSubscriptionService.creditnoteupdate(requestData).pipe(takeUntil(this.destroy$)).subscribe ((res: any) => {\r\n if (res && res.code == 200) {\r\n this.activeModal.close('successcredit');\r\n // this.toast.getPrimaryToast(res.message);\r\n this.changeDetector.detectChanges()\r\n }},\r\n (error) => {\r\n console.error('Error submitting update:', error);\r\n })\r\n }\r\n \r\n @HostListener('document:click', ['$event'])\r\n onDocumentClick(event: MouseEvent) {\r\n this.invoicetypedropDown = false;\r\n }\r\n}\r\n\r\n","<div class=\"modal-content\">\r\n <div class=\"p-5 px-6\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/plus-icon.svg\" alt=\"\"></div>\r\n <div class=\"heading mt-4 ms-1\">Add Credit Note</div>\r\n <div class=\"contenttext mt-4\">\r\n You have the flexibility to select a month in which the brand can make credit payments.\r\n </div>\r\n </div>\r\n\r\n <div class=\"modal-body mb-8\">\r\n <!--begin::Form-->\r\n <form [formGroup]=\"creditnoteform\" class=\"form fv-plugins-bootstrap5 fv-plugins-framework\" action=\"#\">\r\n\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n <div class=\"form-group py-2\">\r\n <label for=\"invoicetype\" class=\"headingtext mb-2\">Invoice ID</label>\r\n <div class=\"position-relative\">\r\n <div class=\"form-select dropselect\" id=\"invoicetype\"\r\n (click)=\"invoicetypeDropdown($event)\"\r\n aria-label=\"Default select example\">{{invoiceIssue}}</div>\r\n <div *ngIf=\"invoicetypedropDown\"\r\n class=\"card py-2 w-100 invoiceidselect position-absolute end-0 z-1 invoiceDropDown\">\r\n <ul *ngFor=\"let item of invoiceitem\"\r\n class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"this.invoiceIssue === item?.invoice ? 'active' : ''\"\r\n class=\"producttext px-5 items cursor-pointer py-4\"\r\n (click)=\"invoiceItem(item)\">\r\n {{item?.invoice}}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div for=\"totalAmount\" class=\"form-group py-2\">\r\n <label class=\" headingtext mb-2 \">Total Amount</label>\r\n <div class=\"input-group\">\r\n <span class=\"dollar-sign totalamount\">₹</span><input formControlName=\"totalAmount\" type=\"text\" readonly class=\"ng-pristine ng-invalid ng-touched totalamount\"\r\n style=\"text-transform: capitalize;\"></div>\r\n\r\n </div>\r\n <div for=\"revisedAmount\" class=\"form-group mt-2\">\r\n <div class=\"py-2\">\r\n <label class=\" headingtext mb-2\"> Revised Amount</label>\r\n <div class=\"input-group dropselect\">\r\n <span class=\"dollar-sign\">₹</span><input type=\"text\" formControlName=\"revisedAmount\" [ngClass]=\"moreThanTenPercent ? 'errorinput' : ''\"\r\n style=\"text-transform: capitalize;\">\r\n <span class=\"icon\" *ngIf=\"moreThanTenPercent\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_7513_36689)\">\r\n <path d=\"M7.99967 5.33301V7.99967M7.99967 10.6663H8.00634M14.6663 7.99967C14.6663 11.6816 11.6816 14.6663 7.99967 14.6663C4.31778 14.6663 1.33301 11.6816 1.33301 7.99967C1.33301 4.31778 4.31778 1.33301 7.99967 1.33301C11.6816 1.33301 14.6663 4.31778 14.6663 7.99967Z\" stroke=\"#F04438\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_7513_36689\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\"/>\r\n </clipPath>\r\n </defs>\r\n </svg></span></div>\r\n </div>\r\n <span *ngIf=\"!moreThanTenPercent\" class=\"headingtext contenttext\">More than 10% can’t be revised from total amount</span>\r\n <span *ngIf=\"moreThanTenPercent\" class=\"text-danger contenttext\">More than 10% can’t be revised from total amount</span>\r\n </div>\r\n <div for=\"discount\" class=\"form-group mt-2\">\r\n <div class=\"py-2\">\r\n <label class=\" headingtext mb-2\"> Discount</label>\r\n <div class=\"input-group\"> <input type=\"text\" formControlName=\"discount\" class=\"totalamount\" [ngClass]=\"moreThanTenPercent ? 'errorinput' : ''\" >\r\n <span class=\"icon\" *ngIf=\"!moreThanTenPercent\" >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M12.667 3.33366L3.33366 12.667M6.00033 4.33366C6.00033 5.25413 5.25413 6.00033 4.33366 6.00033C3.41318 6.00033 2.66699 5.25413 2.66699 4.33366C2.66699 3.41318 3.41318 2.66699 4.33366 2.66699C5.25413 2.66699 6.00033 3.41318 6.00033 4.33366ZM13.3337 11.667C13.3337 12.5875 12.5875 13.3337 11.667 13.3337C10.7465 13.3337 10.0003 12.5875 10.0003 11.667C10.0003 10.7465 10.7465 10.0003 11.667 10.0003C12.5875 10.0003 13.3337 10.7465 13.3337 11.667Z\" stroke=\"#98A2B3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span>\r\n <span class=\"icon\" *ngIf=\"moreThanTenPercent\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M12.667 3.33366L3.33366 12.667M6.00033 4.33366C6.00033 5.25413 5.25413 6.00033 4.33366 6.00033C3.41318 6.00033 2.66699 5.25413 2.66699 4.33366C2.66699 3.41318 3.41318 2.66699 4.33366 2.66699C5.25413 2.66699 6.00033 3.41318 6.00033 4.33366ZM13.3337 11.667C13.3337 12.5875 12.5875 13.3337 11.667 13.3337C10.7465 13.3337 10.0003 12.5875 10.0003 11.667C10.0003 10.7465 10.7465 10.0003 11.667 10.0003C12.5875 10.0003 13.3337 10.7465 13.3337 11.667Z\" stroke=\"#F04438\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span>\r\n \r\n </div>\r\n </div>\r\n <span *ngIf=\"!moreThanTenPercent\" class=\"headingtext contenttext\">In percentage</span>\r\n <span *ngIf=\"moreThanTenPercent\" class=\"text-danger contenttext\">In percentage</span>\r\n </div>\r\n </div>\r\n <div class=\"d-flex mt-5\">\r\n <button type=\"submit\" (click)=\"activeModal.dismiss()\"\r\n class=\"btn-outline btn cancel me-4 w-50\">Cancel</button>\r\n <button [disabled]=\"moreThanTenPercent\" type=\"button\" (click)=\"successcredit()\" tabindex=\"0\" \r\n class=\"btn btn-primary px-4 ng-star-inserted w-50\" style=\"white-space: nowrap;\"><span\r\n class=\"submit\">Apply </span></button>\r\n </div>\r\n </form>\r\n </div>\r\n</div>","import { Component, Input, OnInit } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport Swal from 'sweetalert2';\r\n@Component({\r\n selector: 'lib-pricing-revised',\r\n templateUrl: './pricing-revised.component.html',\r\n styleUrl: './pricing-revised.component.scss'\r\n})\r\nexport class PricingRevisedComponent implements OnInit {\r\n @Input() productNewDetails: any;\r\n @Input() productOldDetails: any;\r\n constructor(\r\n public activeModal: NgbActiveModal\r\n ) {\r\n \r\n }\r\n\r\n ngOnInit() {\r\n this.productNewDetails.product.forEach((newProduct:any) => {\r\n let oldDetails = this.productOldDetails.product.find((oldProduct: any) => oldProduct.productName == newProduct.productName && oldProduct.storeRange == newProduct.storeRange);\r\n if(oldDetails) {\r\n newProduct.oldPrice = oldDetails.price;\r\n newProduct.oldStoreCount = oldDetails.storeCount; \r\n }\r\n else {\r\n let oldDetails = this.productOldDetails.product.filter((oldProduct: any) => oldProduct.productName == newProduct.productName);\r\n if (oldDetails.length) {\r\n newProduct.oldPrice = newProduct.storeCount * (oldDetails[oldDetails.length - 1].basePrice - oldDetails[oldDetails.length - 1].negotiatePrice);\r\n newProduct.oldStoreCount = newProduct.storeCount;\r\n }\r\n }\r\n })\r\n }\r\n\r\n revised() { \r\n this.activeModal.close('save');\r\n }\r\n\r\n convertUpper(data:string) {\r\n let [firstWord, secondWord] = data.replace(/([a-z])([A-Z])/g, '$1 $2').split(' ');\r\n firstWord = firstWord.charAt(0).toUpperCase() + firstWord.slice(1);\r\n return firstWord + ' ' + secondWord;\r\n }\r\n\r\n}\r\n","<div class=\"modal-content\">\r\n <div class=\"p-6\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/danger-icon.svg\" alt=\"\"></div>\r\n <div class=\"heading mt-4 ms-1\">Pricing has been revised</div>\r\n <div class=\"contenttext mt-4 ms-1\">\r\n Please Confirm to proceed\r\n </div>\r\n </div>\r\n <div class=\"modal-body \">\r\n <table class=\"w-100\">\r\n <tr >\r\n <th class=\"thheader\">Product</th>\r\n <th class=\"thheader\">Description</th>\r\n <th class=\"thheader\">Current Data</th>\r\n <th class=\"reviseddata\">Revised Data</th>\r\n </tr>\r\n \r\n <tbody>\r\n <ng-container *ngFor=\"let item of productNewDetails.product\">\r\n <tr>\r\n <th class=\"productprice\" rowspan=\"2\">\r\n {{convertUpper(item.productName)}}\r\n </th>\r\n <th class=\"totalproduct\">Stores</th>\r\n <td>{{item.oldStoreCount}}</td>\r\n <td class=\"bolddata\">{{item.storeCount}}</td>\r\n </tr>\r\n <tr>\r\n <!-- <td class=\"bolddata\">$200000</td> -->\r\n <th class=\"totalproduct\">Price</th>\r\n <td>₹{{item.oldPrice}}</td>\r\n <td class=\"bolddata\">₹{{item.price}}</td>\r\n </tr>\r\n </ng-container>\r\n </tbody>\r\n\r\n \r\n <div class=\"mt-4 w-100\"></div>\r\n\r\n <tr>\r\n <th class=\"totalsubproduct\">Sub Total</th>\r\n <th class=\"subproductborder\"></th>\r\n <td>₹{{productOldDetails.totalNegotiatePrice}}</td>\r\n <td class=\"bolddata\">₹{{productNewDetails.totalNegotiatePrice}}</td>\r\n </tr >\r\n <tr>\r\n <th class=\"totalsubproduct\">Tax</th>\r\n <th class=\"subproductborder\"></th>\r\n <td>18%</td>\r\n <td class=\"bolddata\">18%</td>\r\n </tr>\r\n <tr>\r\n <th class=\"totalsubproduct\">Discount</th>\r\n <th class=\"subproductborder\"></th>\r\n <td>{{productOldDetails.discountPercentage}}%</td>\r\n <td class=\"bolddata\">{{productNewDetails.discountPercentage}}%</td>\r\n </tr>\r\n <tr>\r\n <th class=\"totalsubproduct\">Total Amount</th>\r\n <th class=\"subproductborder\"></th>\r\n <td>₹{{productOldDetails.finalValue}}</td>\r\n <td class=\"bolddata\">₹{{productNewDetails.finalValue}}</td>\r\n </tr>\r\n </table>\r\n <div data-kt-subscription-table-toolbar=\"base\"\r\n class=\"d-flex justify-content-end mt-6\"><a type=\"submit\" (click)=\"activeModal.close()\"\r\n class=\"btn-outline btn cancel me-4\">Cancel</a><a \r\n type=\"button\" tabindex=\"0\" (click)=\"revised()\"\r\n class=\"btn btn-primary px-4 ng-star-inserted cancel text-nowrap\"\r\n >Send\r\n </a></div>\r\n\r\n \r\n </div>\r\n</div>","import { Component, Input} from '@angular/core';\r\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { PaymentSubscriptionService } from '../../../../services/payment-subscription.service';\r\nimport Swal from 'sweetalert2';\r\n\r\n@Component({\r\n selector: 'lib-add-stepprice',\r\n templateUrl: './add-stepprice.component.html',\r\n styleUrl: './add-stepprice.component.scss'\r\n})\r\nexport class AddSteppriceComponent {\r\n @Input() steppricetitle:string\r\n @Input() steppriceicon:string\r\n @Input() steppricedescription:string\r\n @Input() steppricebutton:string\r\n storeintervaldropDown:boolean = false;\r\n storeintervaltype: any = ['50', '100', '150', '200', '300'];\r\n storeintervalIssue: any = '50';\r\n storeintervalItem( storeintervalvalue:any){\r\n this.storeintervalIssue = storeintervalvalue;\r\n this.storeintervaldropDown = false;\r\n }\r\n\r\n constructor(\r\n public activeModal: NgbActiveModal, private modalService:NgbModal, private PaymentSubscriptionService: PaymentSubscriptionService,\r\n ) { }\r\n \r\n storeintervalDropdown(event:MouseEvent){\r\n event.stopPropagation();\r\n this. storeintervaldropDown = !this. storeintervaldropDown;\r\n }\r\n\r\n addedstepprice() {\r\n let data = {\r\n intravel: this.storeintervalIssue,\r\n title:this.steppricetitle\r\n }\r\n this.activeModal.close(data);\r\n }\r\n\r\n\r\n}\r\n\r\n\r\n","<div class=\"modal-content\" *ngIf=\"steppricetitle !== 'delete'\">\r\n <div class=\"p-6\">\r\n <div><img src={{steppriceicon}} alt=\"\"></div>\r\n <div class=\"heading mt-4 ms-1\">{{steppricetitle}}</div>\r\n </div>\r\n<div class=\"modal-body\">\r\n\r\n <div class=\"\">\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n <div>\r\n <label class=\"text-sub mb-6\">{{steppricedescription}}</label>\r\n <label class=\" producttext mb-2\">Store Interval</label>\r\n <div class=\"position-relative \">\r\n <div class=\"form-select dropselect levelviewtext\" id=\"currency\" (click)=\"storeintervalDropdown($event)\"\r\n aria-label=\"Default select example\">{{storeintervalIssue}}</div>\r\n <div *ngIf=\"storeintervaldropDown\" class=\"card stepprice py-2 w-100 position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let storeintervalitem of storeintervaltype\" class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"this.storeintervalIssue === storeintervalitem ? 'active' : ''\" class=\"producttext px-5 items cursor-pointer py-4\" (click)=\"storeintervalItem(storeintervalitem)\">{{storeintervalitem}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex mt-7 py-3\">\r\n <button type=\"submit\" (click)=\"activeModal.dismiss()\"\r\n class=\"btn-outline btn cancel me-4 w-50\">Cancel</button>\r\n <button type=\"button\" (click)=\"addedstepprice()\"\r\n tabindex=\"0\" class=\"btn btn-primary px-4 ng-star-inserted w-50\" style=\"white-space: nowrap;\"><span\r\n class=\"submit\">{{steppricebutton}}</span></button>\r\n </div>\r\n</div>\r\n</div>\r\n\r\n<div class=\"modal-content\" *ngIf=\"steppricetitle === 'delete'\">\r\n <div class=\"p-6\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/alert-icon.svg\" alt=\"\"></div>\r\n <div class=\"heading mt-4 ms-1\">Delete Step Column</div>\r\n </div>\r\n<div class=\"modal-body\">\r\n\r\n <div class=\"\">\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n <div>\r\n <label class=\"headingtext mb-4\">Are you sure you want to delete the column</label>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex mt-3 py-1\">\r\n <button type=\"submit\" (click)=\"activeModal.dismiss()\"\r\n class=\"btn-outline btn cancel me-4 w-50\">No</button>\r\n <button type=\"button\" (click)=\"addedstepprice()\"\r\n tabindex=\"0\" class=\"btn btn-danger px-4 ng-star-inserted w-50\" style=\"white-space: nowrap;\"><span\r\n class=\"submit\">Yes</span></button>\r\n </div>\r\n</div>\r\n</div>","import { Component } from '@angular/core';\r\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { PaymentSubscriptionService } from '../../../../services/payment-subscription.service';\r\n\r\n@Component({\r\n selector: 'lib-skip-trail',\r\n templateUrl: './skip-trail.component.html',\r\n styleUrl: './skip-trail.component.scss'\r\n})\r\nexport class SkipTrailComponent {\r\n constructor(\r\n public activeModal: NgbActiveModal, private modalService:NgbModal, private PaymentSubscriptionService: PaymentSubscriptionService,\r\n ) {}\r\n \r\n subscribed() {\r\n this.activeModal.close('subscribed');\r\n }\r\n\r\n}\r\n","<div class=\"modal-content\" >\r\n <div class=\"p-6\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/settings-icon.svg\" alt=\"\"></div>\r\n <div class=\"heading mt-4 ms-1\">Skip Trial and Add product to subscription</div>\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n \r\n <div class=\"contenttext mt-4 mx-2\">By clicking ‘Add to subscription’ this product will be<br> moved to subscribed products\r\n </div>\r\n </div>\r\n <div class=\"d-flex mt-5 py-3\">\r\n <button type=\"button\" (click)=\"subscribed()\"\r\n tabindex=\"0\" class=\"btn btn-primary px-4 ng-star-inserted w-100\" style=\"white-space: nowrap;\"><span\r\n class=\"submit\">Add To Subscription</span></button>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n ","import { Component, Input } from '@angular/core';\r\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { PaymentSubscriptionService } from '../../../../services/payment-subscription.service';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\n\r\n@Component({\r\n selector: 'lib-trail-settings',\r\n templateUrl: './trail-settings.component.html',\r\n styleUrl: './trail-settings.component.scss'\r\n})\r\nexport class TrailSettingsComponent {\r\n @Input() settingsvalue: string = \"\"\r\n count: number = 1;\r\n daysCount: any = '';\r\n extendtrail:boolean = true;\r\n subscribedproduct:boolean = false;\r\n\r\n\r\nconstructor(\r\n public modalService: NgbModal, private PaymentSubscriptionService: PaymentSubscriptionService,private toast:ToastService, public activeModal: NgbActiveModal,\r\n) {\r\n }\r\n\r\n decreseCount(): any {\r\n if(this.count != 1) {\r\n this.count -= 1;\r\n }\r\n }\r\n\r\n increaseCount(): any {\r\n if(this.count < 14) {\r\n this.count += 1;\r\n }\r\n }\r\n trailextended() {\r\n let data = {\r\n title:'trialextend',\r\n count:this.count\r\n }\r\n this.activeModal.close(data);\r\n }\r\n subscribed() {\r\n this.activeModal.close('subscribed');\r\n }\r\n}\r\n","<div *ngIf=\"settingsvalue === 'Extend Trial'\" class=\"mx-8 py-8\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/settings-icon.svg\" alt=\"\"></div>\r\n <div class=\"heading my-4 ms-1\">Extend your trial</div>\r\n\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n <div>\r\n <label class=\"headingtext mb-4\">Please pick no of days for trial extension.</label>\r\n <div class=\"w-lg-100 position-relative mt-2\">\r\n <div\r\n class=\"position-absolute translate-middle-y top-50 me-5 ps-3 ticketDays\">\r\n <span class=\"svg-icon toggle-off svg-icon-1\"\r\n (click)=\"decreseCount()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\"\r\n height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M4.16699 10H15.8337\" stroke=\"#667085\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <input type=\"text\" class=\"form-control\" id=\"extendpayment\"\r\n style=\"text-align: center;\"\r\n value=\"{{count}}\" placeholder=\"\" readonly/>\r\n <div\r\n class=\"position-absolute translate-middle-y top-50 end-0 me-3\">\r\n <span class=\"svg-icon toggle-on svg-icon-1 ticketDays\"\r\n (click)=\"increaseCount()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\"\r\n height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\">\r\n <path\r\n d=\"M8.49967 3.33301V12.6663M3.83301 7.99967H13.1663\"\r\n stroke=\"#667085\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex mt-6 py-3\">\r\n <button type=\"submit\" (click)=\"activeModal.dismiss()\"\r\n class=\"btn-outline btn cancel me-4 w-50\">Cancel</button>\r\n <button type=\"button\" (click)=\"trailextended()\"\r\n tabindex=\"0\" class=\"btn btn-primary px-4 ng-star-inserted w-50\" style=\"white-space: nowrap;\"><span\r\n class=\"submit\">Submit</span></button>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"settingsvalue === 'Subscribe Product'\" class=\"modal-content\" >\r\n <div class=\"p-6\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/settings-icon.svg\" alt=\"\"></div>\r\n <div class=\"heading mt-4 ms-1\">Subscribe product</div>\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n \r\n <div class=\"contenttext mt-4 mx-2\">By clicking ‘Add to subscription’ this product will be<br> moved to subscribed products\r\n </div>\r\n</div>\r\n<div class=\"d-flex mt-5 py-3\">\r\n <button type=\"button\" (click)=\"subscribed()\"\r\n tabindex=\"0\" class=\"btn btn-primary px-4 ng-star-inserted w-100\" style=\"white-space: nowrap;\"><span\r\n class=\"submit\">Add To Subscription</span></button>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n","import { Component,Input } from '@angular/core';\r\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { PaymentSubscriptionService } from '../../../../services/payment-subscription.service';\r\n\r\n@Component({\r\n selector: 'lib-unsubscribe-request',\r\n templateUrl: './unsubscribe-request.component.html',\r\n styleUrl: './unsubscribe-request.component.scss'\r\n})\r\nexport class UnsubscribeRequestComponent {\r\n @Input() clientName:string = '';\r\n constructor(\r\n public activeModal: NgbActiveModal, private modalService:NgbModal, private PaymentSubscriptionService: PaymentSubscriptionService,\r\n ) { }\r\n \r\n unsubscribed() {\r\n this.activeModal.close('unsubscribed');\r\n }\r\n\r\n\r\n}\r\n","<div class=\"modal-content\">\r\n <div class=\"mt-4 mx-5\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/alert-icon.svg\" alt=\"\"></div>\r\n <div class=\"heading mt-4 ms-1\">Unsubscribe {{clientName}}</div>\r\n </div>\r\n<div class=\"px-6 py-6\">\r\n <div>\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n <div>\r\n <label class=\"semi mb-4\">Are you sure you want to unsubscribe {{clientName}}</label>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex mt-3 py-1\">\r\n <button type=\"submit\" (click)=\"activeModal.dismiss()\"\r\n class=\"btn-outline btn cancel needhelp me-4 w-50\">No</button>\r\n <button type=\"button\" (click)=\"unsubscribed()\"\r\n tabindex=\"0\" class=\"btn btn-danger px-4 ng-star-inserted w-50\" style=\"white-space: nowrap;\"><span\r\n class=\"submit\">Yes, Unsubscribe</span></button>\r\n </div>\r\n</div>\r\n</div>","import { Component, Input, OnInit, ChangeDetectorRef } from '@angular/core';\r\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { PaymentSubscriptionService } from '../../../../services/payment-subscription.service';\r\n\r\n@Component({\r\n selector: 'lib-product-confirmation',\r\n templateUrl: './product-confirmation.component.html',\r\n styleUrl: './product-confirmation.component.scss'\r\n})\r\nexport class ProductConfirmationComponent implements OnInit {\r\n @Input() productList:any;\r\n @Input() updatedProduct:any;\r\n @Input() type:any;\r\n @Input() stores:any;\r\n @Input() clientId:any;\r\n @Input() clientProduct:any;\r\n products:any = [];\r\n // clientProduct:any;\r\n\r\n constructor(private modalService: NgbModal, public activeModal: NgbActiveModal, private toast: ToastService, private PaymentSubscriptionService: PaymentSubscriptionService, private cd: ChangeDetectorRef){\r\n }\r\n ngOnInit():void {\r\n // let data = this.clientId;\r\n // this.PaymentSubscriptionService.getProductList(data).subscribe((res: any) => {\r\n // if (res && res.code == 200) {\r\n // this.clientProduct = res.data;\r\n let clientProductList = this.clientProduct.map((item:any) => item.product);\r\n let unsubScribedProduct = this.productList.filter((item: any) => !this.updatedProduct.includes(item));\r\n let newProduct = this.updatedProduct.filter((item: any) => !this.productList.includes(item));\r\n \r\n if (this.stores.length > 1 ) {\r\n newProduct = this.updatedProduct.filter((item: any) => !unsubScribedProduct.includes(item) && !clientProductList.includes(item))\r\n }\r\n if (newProduct.length) {\r\n newProduct = newProduct.join(',');\r\n this.products.push({\r\n name: newProduct,\r\n new: true,\r\n type: 'trial'\r\n })\r\n }\r\n if (unsubScribedProduct.length) {\r\n unsubScribedProduct = unsubScribedProduct.join(',');\r\n this.products.push({\r\n name: unsubScribedProduct,\r\n new: false,\r\n type: 'unsubscribe'\r\n })\r\n }\r\n \r\n this.cd.detectChanges();\r\n // }\r\n // })\r\n }\r\n updateproduct() {\r\n let params = {\r\n clientId:this.clientId,\r\n product:this.products\r\n }\r\n this.PaymentSubscriptionService.updateProduct(params).subscribe((res:any) =>{\r\n if(res && res.code == 200) {\r\n this.activeModal.close('product');\r\n this.toast.getSuccessToast('Product Updated Successfully')\r\n \r\n }\r\n })\r\n\r\n }\r\n\r\n updateType(index:any,type:any) {\r\n this.products[index].type = type;\r\n }\r\n\r\n updateStore() {\r\n let params = {\r\n clientId: this.clientId,\r\n product: this.products,\r\n store: this.stores\r\n }\r\n this.PaymentSubscriptionService.updateStore(params).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n this.activeModal.close('store');\r\n this.toast.getSuccessToast('Product Updated Successfully')\r\n\r\n }\r\n })\r\n \r\n }\r\n convertUpper(data:any) {\r\n let products = data.split(',');\r\n products.forEach((item:any,index:number) => {\r\n let [firstWord, secondWord] = item.replace(/([a-z])([A-Z])/g, '$1 $2').split(' ');\r\n firstWord = firstWord.charAt(0).toUpperCase() + firstWord.slice(1);\r\n products[index] = firstWord + ' ' + secondWord;\r\n })\r\n return products.join(',');\r\n }\r\n}\r\n","<div class=\"modal-content\">\r\n <div class=\"p-6\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/settings-icon.svg\" alt=\"\"></div>\r\n <div class=\"heading mt-4 ms-1\">Confirmation</div>\r\n <div class=\"contenttext mt-4 ms-1\">\r\n Please update the status of below product\r\n </div>\r\n </div>\r\n <div class=\"modal-body\">\r\n <!--begin::Form-->\r\n <form id=\"kt_modal_new_card_form\" class=\"form fv-plugins-bootstrap5 fv-plugins-framework\" action=\"#\">\r\n \r\n <div class=\"fv-row fv-plugins-icon-container \">\r\n <div class=\"confirmationborder mb-3\" [ngClass]=\"i !== 0 ? 'mt-4' : ''\" *ngFor=\"let product of products;let i=index;\">\r\n <div class=\"d-flex justify-content-between\">\r\n <label for=\"TangoZone\" class=\" producttext mb-2\">{{convertUpper(product.name)}}</label>\r\n <span class=\"badge badge-light-primary ms-2\" *ngIf=\"product.new\">Subscribe\r\n <img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/primary-clock-icon.svg\" alt=\"\">\r\n </span>\r\n <span class=\"badge badge-light-warning ms-2\" *ngIf=\"!product.new\">Unsubscribe\r\n <img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/warning-clock-icon.svg\" alt=\"\">\r\n </span>\r\n </div>\r\n <div class=\"form-group pt-1\" *ngIf=\"product.new\">\r\n <div class=\"form-check form-check-inline ps-0\" >\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"ontrailRadioOptions_{{i}}\"\r\n id=\"inlineRadio1\" value=\"trial\" (click)=\"updateType(i,'trial')\" checked>\r\n <label class=\"form-check-label radio-custom-label mx-3 producttext cursor-pointer\"\r\n for=\"inlineRadio1\">Start with trial</label>\r\n </div><br>\r\n <div class=\"form-check form-check-inline ps-0\" >\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"ontrailRadioOptions_{{i}}\"\r\n id=\"inlineRadio1\" value=\"subscription\" (click)=\"updateType(i,'subscription')\">\r\n <label class=\"form-check-label producttext radio-custom-label mx-3 cursor-pointer\"\r\n for=\"inlineRadio1\">Add to Subscription</label>\r\n </div>\r\n \r\n </div>\r\n <div class=\"form-group pt-1\" *ngIf=\"!product.new\">\r\n <div class=\"form-check form-check-inline ps-0\" >\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"TrailExpiredRadioOptions_{{i}}\" id=\"inlineRadio1\"\r\n value=\"unsubscribe\" (click)=\"updateType(i,'unsubscribe')\" checked>\r\n <label class=\"form-check-label radio-custom-label mx-3 producttext cursor-pointer\"\r\n for=\"inlineRadio1\">Unsubscribe</label>\r\n </div><br>\r\n <div class=\"form-check form-check-inline ps-0\" >\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"TrailExpiredRadioOptions_{{i}}\" id=\"inlineRadio1\"\r\n value=\"cancel\" (click)=\"updateType(i,'cancel')\">\r\n <label class=\"form-check-label producttext radio-custom-label mx-3 cursor-pointer\"\r\n for=\"inlineRadio1\">Cancel</label>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n\r\n <div class=\"d-flex mt-9 my-2\">\r\n <button type=\"submit\" class=\"btn-outline btn cancel me-4 w-50\" (click)=\"activeModal.close()\">Cancel</button>\r\n <button type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-primary px-4 ng-star-inserted w-50\" style=\"white-space: nowrap;\" (click)=\"type === 'products' ? updateproduct() : updateStore()\"><span\r\n class=\"submit\">Submit</span></button>\r\n </div>\r\n </div>\r\n \r\n \r\n <!--end::Actions-->\r\n </form>\r\n <!--end::Form-->\r\n \r\n </div>\r\n</div>","import { Component, HostListener, Input, OnDestroy, OnInit, ChangeDetectorRef, Output, EventEmitter } from '@angular/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { PaymentSubscriptionService } from '../../../../services/payment-subscription.service';\r\nimport { Subject, Subscription, takeUntil } from 'rxjs';\r\nimport { GlobalStateService,LayoutService } from 'tango-app-ui-global';\r\nimport { ProductConfirmationComponent } from '../product-confirmation/product-confirmation.component';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\n\r\n@Component({\r\n selector: 'lib-multidropdown',\r\n templateUrl: './multidropdown.component.html',\r\n styleUrl: './multidropdown.component.scss'\r\n})\r\n\r\nexport class MultidropdownComponent implements OnInit, OnDestroy {\r\n @Input() text:string = \"\";\r\n @Input() product: any = [];\r\n @Input() productList:any =[];\r\n @Input() type:string=\"product\";\r\n @Input() stores:any = [];\r\n @Input() clientId:string;\r\n @Input() selectAll:boolean = false;\r\n @Input() clientProduct:any = [];\r\n @Input() disabled:boolean = false;\r\n @Input() index:number =-1;\r\n @Output() data = new EventEmitter();\r\n private unsubscribe: Subscription[] = [];\r\n private readonly destroy$ = new Subject();\r\n\r\n dataObject: any = [\r\n { Description: 'Clients', Issues: [] },\r\n \r\n ];\r\n\r\n dummyArray: any =[];\r\n noFilter: boolean =false;\r\n responseArray: any=[];\r\n disabledBtn:boolean = true;\r\n constructor(private layout: LayoutService, private globalService: GlobalStateService, private modalService: NgbModal, private PaymentSubscriptionService: PaymentSubscriptionService, private changeDetector: ChangeDetectorRef,private ToastService:ToastService) {}\r\n\r\n\r\n\r\n ngOnDestroy() {\r\n this.unsubscribe.forEach((sb) => sb.unsubscribe());\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n Opendropdown: boolean = false;\r\n\r\n permission = [\r\n { group: 'Super Admin', description: 'Lorem ipsum dolor sit amet, consectetur ' },\r\n { group: 'Admin', description: 'Lorem ipsum dolor sit amet, consectetur ' },\r\n { group: 'User', description: 'Lorem ipsum dolor sit amet, consectetur ' },\r\n ]\r\n\r\n \r\n showdropdown: any;\r\n selectedValues: string[] = [];\r\n selectedValuesArray: any[] = [];\r\n selectedFilters: any = {\r\n store: null,\r\n stores: [],\r\n date: null,\r\n\r\n };\r\n ngOnInit(): void {\r\n this.dataObject[0].Issues = this.productList;\r\n this.dummyArray = JSON.parse(JSON.stringify(this.dataObject))\r\n this.responseArray = JSON.parse(JSON.stringify(this.dataObject))\r\n const subscr = this.layout.layoutConfigSubject\r\n .asObservable()\r\n .pipe(takeUntil(this.destroy$)).subscribe(() => {\r\n });\r\n this.unsubscribe.push(subscr);\r\n this.selectedValuesArray = [this.product?.map((item: any) => item?.product || item)];\r\n this.changeDetector.detectChanges();\r\n }\r\n \r\n @HostListener('document:click', ['$event'])\r\n onClick (event: MouseEvent) {\r\n const target = event.target as HTMLElement;\r\n if(!target.closest('.dropdown1')) {\r\n this.Opendropdown = false;\r\n }\r\n if(!target.closest(`.openDropDown`)){\r\n this.dataObject.forEach((item: any, i: any) => {\r\n item.isOpen = false;\r\n }\r\n );\r\n }\r\n }\r\n\r\n Dropdown(value: any, index: number,event:MouseEvent) {\r\n event.stopPropagation();\r\n if(!this.text.length) {\r\n let ele = document.querySelectorAll('.openDropDown');\r\n if(ele) {\r\n ele.forEach((element:any) => {\r\n let classList = element.getAttribute('class').split(' ');\r\n if(classList.includes('displayNone') && classList.includes(`dropdown-content${this.index}`)) {\r\n classList.pop();\r\n this.dataObject[index].isOpen = false;\r\n }\r\n else {\r\n if(!classList.includes('displayNone'))\r\n classList.push('displayNone');\r\n }\r\n element.setAttribute('class',classList.join(' '));\r\n })\r\n }\r\n }\r\n this.dataObject[index].isOpen = !this.dataObject[index].isOpen;\r\n this.selectedValuesArray = [this.product?.map((item: any) => item?.product || item)];\r\n }\r\n \r\n toggleCheckbox(issue: string, index: number) {\r\n const currentIssues = this.dataObject[index].Issues;\r\n \r\n this.selectedValuesArray[index] = this.selectedValuesArray[index] || [];\r\n const selectedValues = this.selectedValuesArray[index];\r\n\r\n if (issue === 'Select All') {\r\n const currentIssues = this.dataObject[index].Issues.map((item: any) => item.text);\r\n if (selectedValues.length === currentIssues.length) {\r\n\r\n this.selectedValuesArray[index] = ['tangoTraffic'];\r\n } else {\r\n this.selectedValuesArray[index] = [...currentIssues];\r\n }\r\n } else {\r\n if (selectedValues.includes(issue)) {\r\n\r\n this.selectedValuesArray[index] = selectedValues.filter((item: any) => item !== issue);\r\n } else {\r\n this.selectedValuesArray[index].push(issue)\r\n }\r\n }\r\n\r\n let count = 0;\r\n let existProduct = this.product.map((item:any) => item.product || item);\r\n this.selectedValuesArray[0].forEach((item:any) => {\r\n if(!existProduct.includes(item)) {\r\n count++;\r\n }\r\n });\r\n\r\n existProduct.forEach((item:any) => {\r\n if(!this.selectedValuesArray[0].includes(item)) {\r\n count++;\r\n }\r\n });\r\n\r\n if(count) {\r\n this.disabledBtn = false;\r\n }\r\n else {\r\n this.disabledBtn = true;\r\n }\r\n\r\n const selectAllId = `selectall${index}`;\r\n const selectAllElement = document.getElementById(selectAllId) as HTMLInputElement;\r\n if (selectAllElement) {\r\n selectAllElement.checked = selectedValues.length === currentIssues.length;\r\n }\r\n\r\n currentIssues.forEach((item: string) => {\r\n const isChecked = this.selectedValuesArray[index].includes(item);\r\n const checkboxId = `option${item}`;\r\n const checkboxElement = document.getElementById(checkboxId) as HTMLInputElement;\r\n if (checkboxElement) {\r\n checkboxElement.checked = isChecked;\r\n }\r\n });\r\n\r\n }\r\n\r\n Reset() {\r\n this.selectedValuesArray = [this.product?.map((item: any) => item?.product || item)];\r\n this.disabledBtn = true;\r\n this.Opendropdown = false;\r\n this.dataObject.forEach((item: any, i: any) => {\r\n item.isOpen = false;\r\n });\r\n }\r\n\r\n productconfirmation() {\r\n this.dataObject.forEach((item: any, i: any) => {\r\n item.isOpen = false;\r\n });\r\n let showPopup:boolean = false;\r\n if(this.type == 'stores') {\r\n let product = this.clientProduct.map((item: any) => item.product);\r\n if (this.selectAll) {\r\n product.forEach((item:any) => {\r\n if (!this.selectedValuesArray[0].includes(item)) {\r\n showPopup = true;\r\n }\r\n })\r\n }\r\n this.selectedValuesArray[0].forEach((item:any) => {\r\n if (!product.includes(item)) {\r\n showPopup = true;\r\n }\r\n })\r\n }\r\n if(this.type == 'products') {\r\n let existProduct = this.product.map((item:any) => item.product || item);\r\n this.selectedValuesArray[0].forEach((item:any) => {\r\n if(!existProduct.includes(item)) {\r\n showPopup = true;\r\n }\r\n });\r\n\r\n existProduct.forEach((item:any) => {\r\n if(!this.selectedValuesArray[0].includes(item)) {\r\n showPopup = true;\r\n }\r\n });\r\n }\r\n \r\n if (showPopup) {\r\n const modalRef = this.modalService.open(ProductConfirmationComponent,{\r\n centered:true,size:'md',scrollable:true\r\n });\r\n modalRef.componentInstance.productList = this.product.map((item:any)=>item?.product || item);\r\n modalRef.componentInstance.updatedProduct = this.selectedValuesArray[0];\r\n modalRef.componentInstance.type = this.type;\r\n modalRef.componentInstance.stores = this.stores;\r\n modalRef.componentInstance.clientId = this.clientId;\r\n modalRef.componentInstance.clientProduct = this.clientProduct;\r\n modalRef.result.then((result) => {\r\n this.selectedValuesArray[0] = [];\r\n this.data.emit(result);\r\n });\r\n }\r\n else {\r\n if(this.type == 'stores') {\r\n let products:any = [];\r\n this.selectedValuesArray[0].forEach((item:any) => {\r\n let details = this.clientProduct.find((ele:any)=> ele.product == item)\r\n let type = details?.status || 'trial'\r\n products.push({\r\n name: item,\r\n type: type\r\n })\r\n })\r\n this.product.forEach((item:any) => {\r\n if (!this.selectedValuesArray[0].includes(item)) {\r\n products.push({\r\n name: item,\r\n type: 'unsubscribe'\r\n })\r\n }\r\n })\r\n let params = {\r\n clientId: this.clientId,\r\n product: products,\r\n store: this.stores\r\n }\r\n this.PaymentSubscriptionService.updateStore(params).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n this.selectedValuesArray[0]=[];\r\n this.ToastService.getSuccessToast(res.message)\r\n this.data.emit('store');\r\n }\r\n })\r\n }\r\n\r\n }\r\n }\r\n\r\n convertUpper(data:any) {\r\n let [firstWord, secondWord] = data.replace(/([a-z])([A-Z])/g, '$1 $2').split(' ');\r\n firstWord = firstWord.charAt(0).toUpperCase() + firstWord.slice(1);\r\n return firstWord + ' ' + secondWord;\r\n }\r\n\r\n getClass() {\r\n return `dropdown-content${this.index} position-absolute end-0 openDropDown`\r\n }\r\n\r\n disableBtn() {\r\n if(this.type == 'stores' && this.stores.length > 1) {\r\n return false;\r\n }\r\n else {\r\n return this.disabledBtn;\r\n }\r\n }\r\n\r\n\r\n}","<div class=\"mt-2 dropdown1 position-relative\" [ngClass]=\"disabled?'': 'cursor-pointer'\" *ngFor=\"let item of dataObject; let i = index\">\r\n <a (click)=\"!disabled ? Dropdown('Clients',i,$event) : ''\">\r\n <span *ngIf=\"!text.length\">\r\n <svg width=\"44\" height=\"44\"\r\n viewBox=\"0 0 44 44\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g filter=\"url(#filter0_d_3094_38243)\">\r\n <rect x=\"2\" y=\"1\" width=\"40\"\r\n height=\"40\" rx=\"8\"\r\n fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"39\"\r\n height=\"39\" rx=\"7.5\"\r\n stroke=\"#D0D5DD\" />\r\n <path\r\n d=\"M22.0003 15.1665V26.8332M16.167 20.9998H27.8337\"\r\n stroke=\"#344054\"\r\n stroke-width=\"1.67\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_3094_38243\"\r\n x=\"0\" y=\"0\" width=\"44\"\r\n height=\"44\"\r\n filterUnits=\"userSpaceOnUse\"\r\n color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\"\r\n result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\"\r\n type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\r\n result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur\r\n stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\"\r\n in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_3094_38243\" />\r\n <feBlend mode=\"normal\"\r\n in=\"SourceGraphic\"\r\n in2=\"effect1_dropShadow_3094_38243\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>{{text}}</span>\r\n <button type=\"button\" class=\"btn-outline btn align-items-end text-nowrap me-4\" *ngIf=\"text.length\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\"\r\n viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path d=\"M10.4993 4.16675V15.8334M4.66602 10.0001H16.3327\"\r\n stroke=\"#344054\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg><span class=\"mx-2\">Add Products</span> </button>\r\n </a>\r\n <div *ngIf=\"item.isOpen\" [class]=\"getClass()\" [ngClass]=\"!text.length ? 'left' : 'addselect'\">\r\n <div class=\"form-check d-flex align-items-center px-5 mt-5\">\r\n <input class=\"form-check-input\" type=\"checkbox\" value=\"Select All\" id=\"selectall{{i}}\"\r\n [checked]=\"selectedValuesArray[i]?.length === item.Issues.length\"\r\n (change)=\"toggleCheckbox('Select All', i)\">\r\n <label class=\"form-check-label ms-3\" for=\"selectall{{i}}\">\r\n Select All\r\n </label>\r\n </div>\r\n <div class=\"border border-gray mt-3\"></div>\r\n <div class=\"mt-3 d-flex align-items-center mx-2\">\r\n \r\n <!-- <input type=\"text\" [(ngModel)]=\"searchValue\" (input)=\"searchData($event,i)\"\r\n class=\"form-control searchinput ps-14 py-2 mt-2\" placeholder=\"Search\" autocomplete=\"off\" /> -->\r\n </div>\r\n <div *ngFor=\"let issue of item.Issues\" class=\"form-check d-flex align-items-center py-3 px-5\">\r\n <input class=\"form-check-input cursor-pointer\" type=\"checkbox\" [value]=\"issue.text\" id=\"option{{issue.text}}\"\r\n [checked]=\"selectedValuesArray[i]?.includes(issue.text)\" (change)=\"toggleCheckbox(issue.text,i)\" [disabled]=\"issue.text === 'tangoTraffic'\">\r\n <label class=\"form-check-label px-3 cursor-pointer\" for=\"option{{issue.text}}\">\r\n {{ convertUpper(issue.text) }}\r\n </label>\r\n </div>\r\n <div class=\"mt-4 d-flex justify-content-center \">\r\n <span class=\"form-check-label\" *ngIf=\"noFilter\">No filters available</span>\r\n </div>\r\n <div role=\"group\" class=\"d-flex justify-content-between mb-4 mx-5\">\r\n <button class=\"btn btn-outline w-100 me-2\" (click)=\"Reset()\"> Reset </button>\r\n <button class=\"btn btn-primary w-100 ms-2\" (click)=\"productconfirmation()\" [disabled]=\"disableBtn()\">Apply</button>\r\n </div>\r\n </div>\r\n \r\n</div>\r\n\r\n","import { Component, EventEmitter, Output, ViewChild, ElementRef, inject, ChangeDetectorRef, OnInit, AfterViewInit, OnDestroy, HostListener, Pipe } from '@angular/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { UpdateComponent } from './subscription-popups/update/update.component';\r\nimport { NeedHelpComponent } from './subscription-popups/need-help/need-help.component';\r\nimport { UpgradePlanComponent } from './subscription-popups/upgrade-plan/upgrade-plan.component';\r\nimport { FormGroup, FormBuilder, Validators, FormArray } from '@angular/forms';\r\nimport { Observable, Subject, debounceTime, distinctUntilChanged, takeUntil } from 'rxjs';\r\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\r\nimport { FormControl } from '@angular/forms';\r\nimport { LiveAnnouncer } from '@angular/cdk/a11y';\r\nimport { CreditNoteComponent } from './subscription-popups/credit-note/credit-note.component';\r\nimport { PricingRevisedComponent } from './subscription-popups/pricing-revised/pricing-revised.component';\r\nimport { BehaviorSubject, map, switchMap, startWith } from 'rxjs';\r\nimport { PaymentSubscriptionService } from '../../services/payment-subscription.service';\r\nimport { AddSteppriceComponent } from './subscription-popups/add-stepprice/add-stepprice.component';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { SkipTrailComponent } from './subscription-popups/skip-trail/skip-trail.component';\r\nimport { TrailSettingsComponent } from './subscription-popups/trail-settings/trail-settings.component';\r\nimport { UnsubscribeRequestComponent } from './subscription-popups/unsubscribe-request/unsubscribe-request.component';\r\nimport Swal from 'sweetalert2';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\n@Component({\r\n selector: 'lib-payments-subscription',\r\n templateUrl: './payments-subscription.component.html',\r\n styleUrl: './payments-subscription.component.scss'\r\n})\r\n\r\nexport class PaymentsSubscriptionComponent implements OnInit, AfterViewInit, OnDestroy {\r\n\r\n clientinfo: any;\r\n list: any[];\r\n select: string = 'before15';\r\n separatorKeysCodes: number[] = [ENTER, COMMA];\r\n announcer = inject(LiveAnnouncer);\r\n plan: string = 'subscription';\r\n showNavGroup: boolean = true;\r\n PricingshowNav: boolean = true;\r\n sublevelview: boolean = true;\r\n count: number = 1;\r\n daysCount: any = '';\r\n currentplanform: FormGroup;\r\n paymentinvoiceform: FormGroup;\r\n paymentallowedList: any = []\r\n generateinvoiceList: any = []\r\n $generateinvoiceInterrupt = new BehaviorSubject<string>('')\r\n $sendpaymentInterrupt = new BehaviorSubject<string>('')\r\n $generateinvoiceccInterrupt= new BehaviorSubject<string>('')\r\n openaccordian = false;\r\n brandName: string = '';\r\n searchInput: any;\r\n gstNumber: string = '';\r\n billingAddress: string = '';\r\n pricingplan: string = 'standard';\r\n dropDown: boolean = false;\r\n invoicedropDown: boolean = false;\r\n paymenttypedropDown: boolean = false;\r\n currencydropDown: boolean = false;\r\n viewplandropDown: boolean = false;\r\n producttraildropDown: boolean = false;\r\n dropdownItems: any[] = [{ name: 'Monthly', value: 'monthly' }, { name: 'Quaterly', value: 'quaterly' }, { name: 'Annual', value: 'annual' }];\r\n generateinvoiceon: any[] = [{ name: 'Last Day of the Month', value: 'lastday' }, { name: '25th of the Month', value: '25th' }];\r\n paymenttype: any[] = [{ name: 'Online Payment', value: 'online' }, { name: 'Bank Transfer', value: 'banktransfer' }];\r\n currencytype: any[] = [{ name: 'INR', value: 'inr' }, { name: 'Dollar', value: 'dollar' }];\r\n viewplantype: any[] = ['Product Level View', 'Store Level View'];\r\n producttrailtype: any[] = ['Extend Trial', 'Subscribe Product'];\r\n selectedIssue: any = 'Monthly';\r\n invoiceonIssue: any = 'Last Day of the Month';\r\n paymentIssue: any = 'online';\r\n currencyIssue: any = 'INR';\r\n viewplanIssue: any = 'Product Level View';\r\n producttrailIssue: any = 'Extend Trial';\r\n priceValueDetails: any;\r\n originalPriceValue: any;\r\n productList: any = [];\r\n storeList: any = [];\r\n dataObject: any = [\r\n { Description: 'Products', Issues: [] },\r\n { Description: 'Store', Issues: [] },\r\n { Description: 'Location', Issues: [] },\r\n ];\r\n totalCount: number = 0;\r\n dynamicData: any = {\r\n limit: 10,\r\n offset: 1,\r\n clientId: \"\",\r\n searchValue: \"\",\r\n sortColumn: '',\r\n sortBy: '',\r\n product: [],\r\n store: [],\r\n location: []\r\n }\r\n selectAll: boolean = false;\r\n selectedStoreList: any = [];\r\n storeProduct: any;\r\n notificationDetails: any = [];\r\n currentPlan: string = 'free';\r\n paymentinvoiceinfo: any;\r\n requestData: any\r\n isExport: boolean = false;\r\n itemsPerPage = 10\r\n currentPage = 1\r\n totalItems = 0\r\n paginationSizes = [10, 20, 30]\r\n pageSize = 10\r\n isFilter = 'current';\r\n searchValue: string | null = '';\r\n invoiceList: any = [];\r\n extendPaymentPeriodDays: 0;\r\n paymentinvoiceshow: boolean = true\r\n radiobutton: boolean = false;\r\n radiooptions: any = 'before15'\r\n clientId: string = '';\r\n auth = true;\r\n loading:boolean=true;\r\n noData:boolean =false;\r\n priceNoData: boolean = true;\r\n priceLoading: boolean = false;\r\n sortColumName:string=\"invoice\";\r\n sortBy:number=1;\r\n invoiceNoData: boolean = true;\r\n invoiceLoading: boolean = false;\r\n searchDisabled:any = false\r\n userType:any = '';\r\n disabledAddIcon:boolean = false;\r\n private readonly destroy$ = new Subject();\r\n generateinvoiceCCList: any;\r\n\r\n constructor(\r\n public modalService: NgbModal, private fb: FormBuilder, private PaymentSubscriptionService: PaymentSubscriptionService, private changeDetector: ChangeDetectorRef, private toast: ToastService, public gs: GlobalStateService,private elementRef: ElementRef,\r\n ) {\r\n this.PaymentSubscriptionService.paymentinvoiceFormData.pipe(takeUntil(this.destroy$)).subscribe((res) => {\r\n if (res) {\r\n if (res.type === 'input' && res.form === 'payment-invoice') {\r\n this.getpaymentinvoice(res.value)\r\n }\r\n }\r\n })\r\n }\r\n ngOnInit(): void {\r\n this.currentplanform = this.fb.group({\r\n storecount: ['', Validators.required],\r\n avgsqft: ['', Validators.required],\r\n cameracount: ['', Validators.required],\r\n });\r\n this.paymentinvoiceform = this.fb.group({\r\n radiooptions: ['before15', Validators.required,],\r\n paymentcycle: ['monthly', Validators.required],\r\n invoiceTo: ['',Validators.required],\r\n invoiceCC: [''],\r\n generateinvoiceon: ['', Validators.required],\r\n paymenttype: ['online', Validators.required],\r\n currency: ['inr', Validators.required],\r\n paymentAgreementTo: ['',Validators.required],\r\n extendPaymentPeriodDays: [0,Validators.required],\r\n });\r\n this.gs.dataRangeValue.pipe(takeUntil(this.destroy$)).subscribe((data: any) => {\r\n if (data) {\r\n this.clientId = data.client;\r\n this.dynamicData.clientId = this.clientId\r\n this.gs.userAccess.pipe(takeUntil(this.destroy$)).subscribe((data:any) => {\r\n if(data) {\r\n this.userType = data.userType;\r\n if(data?.userType == 'tango') {\r\n this.getPricing('standard');\r\n this.getProductList();\r\n this.filterList();\r\n this.notificationList();\r\n }\r\n }\r\n })\r\n\r\n this.clientBillingInfo(this.clientId);\r\n this.getpaymentinvoice(this.clientId);\r\n this.paymentinvoiceform.disable()\r\n this.invoiceTableData();\r\n } else if(!data){\r\n const userData: any = JSON.parse(localStorage.getItem(\"user-info\") || \"{}\");\r\n this.clientId = userData.clientId;\r\n this.dynamicData.clientId = this.clientId\r\n this.gs.userAccess.pipe(takeUntil(this.destroy$)).subscribe((data:any) => {\r\n if(data) {\r\n this.userType = data.userType;\r\n if(data?.userType == 'tango') {\r\n this.getPricing('standard');\r\n this.getProductList();\r\n this.filterList();\r\n this.notificationList();\r\n }\r\n }\r\n })\r\n\r\n this.clientBillingInfo(this.clientId);\r\n this.getpaymentinvoice(this.clientId);\r\n this.paymentinvoiceform.disable()\r\n this.invoiceTableData();\r\n }\r\n });\r\n this.PaymentSubscriptionService.reloadData$.subscribe(() => {\r\n this.clientBillingInfo(this.clientId);\r\n });\r\n\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.paymentinvoiceform.get('invoiceTo')?.valueChanges.pipe(\r\n switchMap((val) => {\r\n return this.$generateinvoiceInterrupt.pipe(map((interrupt) => {\r\n if (interrupt === 'Enter') {\r\n this.$generateinvoiceInterrupt.next('')\r\n this.generateinvoiceList.push(val.trim())\r\n this.paymentinvoiceform.get('invoiceTo')?.setValue('')\r\n } else if (interrupt === 'Backspace' && !val && this.generateinvoiceList.length) {\r\n this.generateinvoiceList.pop()\r\n } else {\r\n return val\r\n }\r\n }))\r\n })\r\n ).pipe(takeUntil(this.destroy$)).subscribe()\r\n this.paymentinvoiceform.get('invoiceCC')?.valueChanges.pipe(\r\n switchMap((val) => {\r\n return this.$generateinvoiceccInterrupt.pipe(map((interrupt) => {\r\n if (interrupt === 'Enter') {\r\n this.$generateinvoiceccInterrupt.next('')\r\n this.generateinvoiceCCList.push(val)\r\n this.paymentinvoiceform.get('invoiceCC')?.setValue('')\r\n } else if (interrupt === 'Backspace' && !val && this.generateinvoiceCCList.length) {\r\n this.generateinvoiceCCList.pop()\r\n } else {\r\n return val\r\n }\r\n }))\r\n })\r\n ).pipe(takeUntil(this.destroy$)).subscribe()\r\n\r\n this.paymentinvoiceform.get('paymentAgreementTo')?.valueChanges.pipe(\r\n switchMap((val) => {\r\n return this.$sendpaymentInterrupt.pipe(map((interrupt) => {\r\n if (interrupt === 'Enter') {\r\n this.$sendpaymentInterrupt.next('')\r\n this.paymentallowedList.push(val.trim())\r\n this.paymentinvoiceform.get('paymentAgreementTo')?.setValue('')\r\n } else if (interrupt === 'Backspace' && !val && this.paymentallowedList.length) {\r\n this.paymentallowedList.pop()\r\n } else {\r\n return val\r\n }\r\n }))\r\n })\r\n ).pipe(takeUntil(this.destroy$)).subscribe()\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n receiveData(data: any) {\r\n data.forEach((item:any) => {\r\n if (item.Description == 'Products') {\r\n let product = item.Issues.map((product:any) => product.text);\r\n this.dynamicData.product = product;\r\n }\r\n if (item.Description == 'Store') {\r\n let store = item.Issues.map((store: any) => store.id);\r\n this.dynamicData.store = store;\r\n }\r\n if (item.Description == 'Location') {\r\n let location = item.Issues.map((location: any) => location.text);\r\n this.dynamicData.location = location;\r\n }\r\n })\r\n this.getStoreList();\r\n }\r\n\r\n selectPlan(plan: string) {\r\n this.noData = false;\r\n this.priceNoData= false;\r\n if(plan == 'subscription') {\r\n this.getProductList();\r\n }\r\n else {\r\n this.getPricing('standard')\r\n }\r\n this.plan = plan;\r\n this.viewplanIssue = \"Product Level View\"\r\n }\r\n\r\n selectPricePlan(pricingplan: string) {\r\n this.pricingplan = pricingplan;\r\n this.getPricing(pricingplan)\r\n }\r\n\r\n\r\n getColorClass(product: string): string {\r\n switch (product) {\r\n case 'Tango Traffic': return 'badge product-traffic mx-1';\r\n case 'Tango Zone': return 'badge product-zone mx-1';\r\n case 'Tango Sop': return 'badge product-sop mx-1';\r\n case 'Priority Support': return 'badge prioritysupport mx-1';\r\n default: return '';\r\n }\r\n }\r\n\r\n selectItem(value: any) {\r\n this.selectedIssue = value;\r\n\r\n this.paymentinvoiceform.get('dropdownItems')?.setValue(this.selectedIssue)\r\n this.dropDown = false;\r\n }\r\n\r\n invoiceItem(invoicevalue: any) {\r\n this.invoiceonIssue = invoicevalue;\r\n this.paymentinvoiceform.get('generateinvoiceon')?.setValue(this.invoiceonIssue)\r\n this.invoicedropDown = false;\r\n }\r\n\r\n paymentItem(paymentvalue: any) {\r\n this.paymentIssue = paymentvalue;\r\n this.paymentinvoiceform.get('paymenttype')?.setValue(this.paymentIssue)\r\n this.paymenttypedropDown = false;\r\n }\r\n\r\n currencyItem(currencyvalue: any) {\r\n this.currencyIssue = currencyvalue;\r\n this.paymentinvoiceform.get('currencytype')?.setValue(this.currencyIssue)\r\n this.currencydropDown = false;\r\n }\r\n\r\n producttrailItem(producttrailvalue: any, data: any) {\r\n\r\n if (producttrailvalue == 'Extend Trial') {\r\n const modalRef = this.modalService.open(TrailSettingsComponent, {\r\n centered: true, size: 'md',\r\n });\r\n modalRef.componentInstance.settingsvalue = producttrailvalue;\r\n modalRef.result.then((result) => {\r\n if (result.title == 'trialextend') {\r\n let params = {\r\n clientId: this.clientId,\r\n days: result.count,\r\n product: data.product\r\n }\r\n this.PaymentSubscriptionService.trialExtentApproval(params).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n this.toast.getSuccessToast(`${data.name} trial extended successfully`);\r\n this.notificationList();\r\n }\r\n })\r\n }\r\n });\r\n\r\n } else if (producttrailvalue == 'Subscribe Product') {\r\n const modalRef = this.modalService.open(TrailSettingsComponent, {\r\n centered: true, size: 'md',\r\n });\r\n modalRef.componentInstance.settingsvalue = producttrailvalue;\r\n modalRef.result.then((result) => {\r\n if (result == 'subscribed') {\r\n let params = {\r\n clientId: this.clientId,\r\n product: [\r\n {\r\n type: 'subscription',\r\n name: data.product\r\n }\r\n ]\r\n }\r\n this.PaymentSubscriptionService.updateProduct(params).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n this.toast.getSuccessToast(`${data.name} successfully added to the product subscription list.`);\r\n this.notificationList();\r\n }\r\n })\r\n }\r\n });\r\n }\r\n this.producttrailIssue = producttrailvalue;\r\n this.producttraildropDown = false;\r\n }\r\n\r\n viewplanItem(viewplanvalue: any) {\r\n this.selectedStoreList = [];\r\n this.disabledAddIcon = false;\r\n this.dynamicData.offset = 1;\r\n this.viewplanIssue = viewplanvalue;\r\n this.noData = false;\r\n if (viewplanvalue == 'Product Level View') {\r\n this.getProductList();\r\n }\r\n else {\r\n this.getStoreList();\r\n }\r\n this.viewplandropDown = false;\r\n }\r\n\r\n update() {\r\n const responseData = {\r\n brandName: this.clientinfo.clientName,\r\n gstNumber: this.clientinfo.billingDetails.gstNumber,\r\n billingAddress: this.clientinfo.billingDetails.billingAddress,\r\n companyName: this.clientinfo.billingDetails.companyName,\r\n PlaceOfSupply: this.clientinfo.billingDetails.PlaceOfSupply,\r\n\r\n clientId:this.clientId\r\n };\r\n let modelRef = this.modalService.open(UpdateComponent, { centered: true, size: 'md' });\r\n modelRef.componentInstance.modalData = responseData;\r\n modelRef.result.then((result) => {\r\n if (result) {\r\n this.clientinfo.billingDetails.billingAddress = result.billingAddress;\r\n }\r\n });\r\n }\r\n\r\n needhelp() {\r\n const modalRef = this.modalService.open(NeedHelpComponent, {\r\n centered: true, size: 'md',\r\n });\r\n modalRef.componentInstance.clientId = this.clientId;\r\n modalRef.result.then((result) => {\r\n if (result) {\r\n if( this.userType == 'tango')\r\n this.notificationList();\r\n }\r\n });\r\n }\r\n\r\n upgradeplan() {\r\n const modalRef = this.modalService.open(UpgradePlanComponent, {\r\n centered: true, size: 'lg'\r\n });\r\n modalRef.componentInstance.clientId = this.clientId;\r\n modalRef.result.then((result) => {\r\n if (result) {\r\n }\r\n });\r\n }\r\n \r\n creditnote() {\r\n const modalRef = this.modalService.open(CreditNoteComponent, {\r\n centered: true,\r\n size: 'md',\r\n scrollable: true\r\n });\r\n modalRef.componentInstance.clientId = this.clientId;\r\n modalRef.result.then((result) => {\r\n if (result == 'successcredit') {\r\n this.toast.getPrimaryToast('The invoice has been sent to the respective email IDs with the discount.');\r\n this.invoiceTableData();\r\n }\r\n });\r\n }\r\n\r\n\r\n pricingrevised() {\r\n const modalRef = this.modalService.open(PricingRevisedComponent, {\r\n centered: true, scrollable: true, size: 'lg'\r\n });\r\n modalRef.componentInstance.productNewDetails = this.priceValueDetails;\r\n modalRef.componentInstance.productOldDetails = this.originalPriceValue;\r\n modalRef.result.then((result) => {\r\n if (result == 'save') {\r\n let params = {\r\n type: this.pricingplan,\r\n clientId: this.clientId,\r\n products: this.priceValueDetails.product\r\n }\r\n this.PaymentSubscriptionService.updatePricing(params).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n this.toast.getSuccessToast('Revised price list has been sent to the email list')\r\n }\r\n })\r\n }\r\n });\r\n }\r\n\r\n pricingType(event: any, pricing: string) {\r\n this.select = pricing;\r\n this.radiooptions = pricing\r\n }\r\n \r\n onKeyDown(event:any){\r\n this.$generateinvoiceInterrupt.next(event.code)\r\n }\r\n onKeyDowncc(event:any){\r\n this.$generateinvoiceccInterrupt.next(event.code)\r\n }\r\n removeChipcc(i: number) {\r\n this.generateinvoiceCCList.splice(i, 1)\r\n }\r\n removeChip(i: number) {\r\n this.generateinvoiceList.splice(i, 1)\r\n }\r\n\r\n sendpaymentonKeyDown(event: any) {\r\n this.$sendpaymentInterrupt.next(event.code)\r\n }\r\n\r\n sendpaymentremoveChip(i: number) {\r\n this.paymentallowedList.splice(i, 1)\r\n }\r\n\r\n clientBillingInfo(id: any) {\r\n this.PaymentSubscriptionService.clientBillingInfo(id).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n this.clientinfo = res.data;\r\n this.changeDetector.detectChanges();\r\n }\r\n })\r\n\r\n }\r\n\r\n openDropdown(event: MouseEvent) {\r\n event.stopPropagation();\r\n this.dropDown = !this.dropDown;\r\n this.paymenttypedropDown = false;\r\n this.currencydropDown = false;\r\n this.invoicedropDown = false;\r\n }\r\n\r\n invoiceDropdown(event: MouseEvent) {\r\n event.stopPropagation();\r\n this.paymenttypedropDown = false;\r\n this.currencydropDown = false;\r\n this.dropDown = false;\r\n this.invoicedropDown = !this.invoicedropDown;\r\n }\r\n\r\n paymenttypeDropdown(event: MouseEvent) {\r\n event.stopPropagation();\r\n this.invoicedropDown = false;\r\n this.currencydropDown = false;\r\n this.dropDown = false;\r\n this.paymenttypedropDown = !this.paymenttypedropDown;\r\n }\r\n\r\n currencyDropdown(event: MouseEvent) {\r\n event.stopPropagation();\r\n this.currencydropDown = !this.currencydropDown;\r\n this.paymenttypedropDown = false;\r\n this.invoicedropDown = false;\r\n this.dropDown = false;\r\n }\r\n\r\n viewplanDropdown(event: MouseEvent) {\r\n this.selectAll = false;\r\n this.selectedStoreList = [];\r\n this.disabledAddIcon = false;\r\n event.stopPropagation();\r\n this.viewplandropDown = !this.viewplandropDown;\r\n this.changeDetector.detectChanges();\r\n }\r\n \r\n producttrailDropdown(event: MouseEvent, index: any) {\r\n event.stopPropagation();\r\n this.notificationDetails.notificationList.forEach((item:any) => {\r\n item.producttraildropDown = false;\r\n })\r\n this.notificationDetails.notificationList[index].producttraildropDown = !this.notificationDetails.notificationList[index].producttraildropDown\r\n }\r\n\r\n skiptrail() {\r\n const modalRef = this.modalService.open(SkipTrailComponent, {\r\n centered: true, size: 'md', scrollable: true\r\n });\r\n modalRef.result.then((result) => {\r\n if (result == 'subscribed') {\r\n this.toast.getSuccessToast('< Tango TRAX > successfully added to the product subscription list.')\r\n }\r\n });\r\n }\r\n\r\n addstepprice(data: any, product: any = {}, index: any = -1) {\r\n const modalRef = this.modalService.open(AddSteppriceComponent, {\r\n centered: true, scrollable: true,\r\n });\r\n if (data == 'add') {\r\n modalRef.componentInstance.steppricetitle = \"Add Step Price\";\r\n modalRef.componentInstance.steppricedescription = \"Please enter no of store to be added in next step price in intervals \";\r\n modalRef.componentInstance.steppriceicon = \"./assets/tango/custompopup-Icons/plus-icon.svg\";\r\n modalRef.componentInstance.steppricebutton = \"Apply\";\r\n }\r\n if (data == 'edit') {\r\n modalRef.componentInstance.steppricetitle = \"Edit Step Price\";\r\n modalRef.componentInstance.steppricedescription = \"Please enter no of store to be added in next step price in intervals \";\r\n modalRef.componentInstance.steppriceicon = \"./assets/tango/custompopup-Icons/edit-icon.svg\";\r\n modalRef.componentInstance.steppricebutton = \"Update\";\r\n }\r\n if (data == 'delete') {\r\n modalRef.componentInstance.steppricetitle = \"delete\";\r\n }\r\n modalRef.result.then((result) => {\r\n if (result.title == 'Add Step Price') {\r\n let oldLength = this.priceValueDetails.product.length;\r\n let products = [...new Set(this.priceValueDetails.product.map((item: any, index: any) => item.productName))]\r\n for(let data of products) {\r\n // products.forEach((data: any) => {\r\n let productDetails = this.priceValueDetails.product.find((item: any, index: any) => {\r\n if (item.productName == data && item?.lastIndex) {\r\n item.index = index;\r\n return item;\r\n }\r\n });\r\n\r\n let index = productDetails.index;\r\n delete productDetails.index;\r\n let item = productDetails;\r\n let range = item.storeRange.split('-');\r\n let differ = (parseInt(range[1]) - parseInt(range[0])) + 1;\r\n // delete this.priceValueDetails.product[index].lastIndex;\r\n // this.priceValueDetails.product[index].showEditDelete = false;\r\n let newItem = { ...item };\r\n let newStartRange = parseInt(range[1]) + 1;\r\n let newEndRange = newStartRange + parseInt(result.intravel) - 1;\r\n\r\n newItem.showImg = true\r\n newItem.showEditDelete = true\r\n newItem.lastIndex = true;\r\n if(newItem.discountPercentage) {\r\n newItem.negotiatePrice = newItem.basePrice\r\n newItem.discountPercentage = 0\r\n newItem.discountPrice = 0\r\n }\r\n newItem.storeCount = this.priceValueDetails.product[index].storeCount - differ;\r\n\r\n if(newItem.storeCount < 0) {\r\n continue;\r\n }\r\n delete this.priceValueDetails.product[index].lastIndex;\r\n this.priceValueDetails.product[index].showEditDelete = false;\r\n newItem.price = newItem.storeCount * newItem.negotiatePrice\r\n this.priceValueDetails.product[index].storeCount = differ;\r\n this.priceValueDetails.product[index].price = this.priceValueDetails.product[index].storeCount * this.priceValueDetails.product[index].negotiatePrice;\r\n\r\n newItem.storeRange = newStartRange.toString() + '-' + newEndRange.toString();\r\n this.priceValueDetails.product.splice(index + 1, 0, newItem)\r\n }\r\n // )\r\n let price:any = 0;\r\n let actualPrice = 0;\r\n let negotiatePrice = 0;\r\n let originalPrice:any = 0\r\n this.priceValueDetails.product.forEach((item: any) => {\r\n price = price + item.price;\r\n actualPrice = actualPrice + item.basePrice;\r\n negotiatePrice = negotiatePrice + item.negotiatePrice;\r\n originalPrice = originalPrice + (item.basePrice * item.storeCount);\r\n });\r\n this.priceValueDetails.actualPrice = actualPrice;\r\n this.priceValueDetails.negotiatePrice = negotiatePrice.toFixed(2);\r\n let gstAmount = this.priceValueDetails.totalNegotiatePrice * (18 / 100);\r\n this.priceValueDetails.finalValue = (parseFloat(this.priceValueDetails.totalNegotiatePrice) + gstAmount).toFixed(2);\r\n this.priceValueDetails.discountPrice = parseFloat(originalPrice) - parseFloat(price);\r\n this.priceValueDetails.discountPercentage = ((this.priceValueDetails.discountPrice / originalPrice) * 100).toFixed(2);\r\n this.priceValueDetails.totalNegotiatePrice = price.toFixed(2);\r\n\r\n if(oldLength < this.priceValueDetails.product.length) {\r\n this.toast.getSuccessToast('Step Price has been added successfully.')\r\n }\r\n else{\r\n this.toast.getErrorToast('Store Count should be above 100')\r\n }\r\n }\r\n if (result.title == 'Edit Step Price') {\r\n let range = this.priceValueDetails.product[index].storeRange.split('-');\r\n let end = parseInt(range[0]) + (parseInt(result.intravel) - 1);\r\n this.priceValueDetails.product[index].storeRange = range[0].toString() + '-' + end.toString();\r\n this.toast.getSuccessToast('Step Price has been Updated successfully.')\r\n }\r\n if (result.title == 'delete') {\r\n this.priceValueDetails.product[index - 1].storeCount = this.priceValueDetails.product[index - 1].storeCount + this.priceValueDetails.product[index].storeCount;\r\n this.priceValueDetails.actualPrice = this.priceValueDetails.actualPrice - this.priceValueDetails.product[index].basePrice;\r\n this.priceValueDetails.negotiatePrice = this.priceValueDetails.negotiatePrice - this.priceValueDetails.product[index].negotiatePrice;\r\n this.priceValueDetails.product[index - 1].price = this.priceValueDetails.product[index - 1].negotiatePrice * this.priceValueDetails.product[index - 1].storeCount;\r\n\r\n let productInfo = this.priceValueDetails.product.filter(((item: any) => item.productName == this.priceValueDetails.product[index].productName))\r\n if (productInfo.length > 2) {\r\n this.priceValueDetails.product[index - 1].showImg = true\r\n this.priceValueDetails.product[index - 1].showEditDelete = true\r\n // this.priceValueDetails.product[index - 1].lastIndex = true;\r\n }\r\n this.priceValueDetails.product[index - 1].lastIndex = true;\r\n\r\n this.priceValueDetails.product.splice(index, 1);\r\n let price:any = 0;\r\n let originalPrice:any = 0;\r\n this.priceValueDetails.product.forEach((item: any) => {\r\n price = price + item.price;\r\n originalPrice = originalPrice + (item.basePrice * item.storeCount);\r\n });\r\n\r\n let gstAmount = this.priceValueDetails.totalNegotiatePrice * (18 / 100);\r\n this.priceValueDetails.finalValue = (parseFloat(this.priceValueDetails.totalNegotiatePrice) + gstAmount).toFixed(2);\r\n this.priceValueDetails.discountPrice = parseFloat(originalPrice) - parseFloat(price);\r\n this.priceValueDetails.discountPercentage = ((this.priceValueDetails.discountPrice / originalPrice) * 100).toFixed(2);\r\n this.priceValueDetails.totalNegotiatePrice = price.toFixed(2);\r\n this.toast.getErrorToast('Column deleted successfully.')\r\n }\r\n });\r\n }\r\n\r\n approvetrial(data: any, type: string) {\r\n let params = {\r\n id: data._id,\r\n type: type\r\n }\r\n this.PaymentSubscriptionService.approveTrial(params).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n if(type == 'approve') {;\r\n this.getProductList();\r\n this.toast.getSuccessToast(`${data.name} trial has been approved successfully.`)\r\n }\r\n if(type == 'cancel') {\r\n this.toast.getSuccessToast(`${data.name} trial has been Cancelled.`)\r\n }\r\n this.notificationList();\r\n }\r\n })\r\n }\r\n\r\n approveUnsubscribe(data: any, type: any) {\r\n const modalRef = this.modalService.open(UnsubscribeRequestComponent, {\r\n centered: true, size: 'md', scrollable: true\r\n });\r\n modalRef.componentInstance.clientName = this.clientinfo.clientName;\r\n modalRef.result.then((result) => {\r\n if (result == 'unsubscribed') {\r\n let params = {\r\n id: data._id,\r\n type: type\r\n }\r\n this.approveCancelUnsubscribe(params);\r\n }\r\n });\r\n }\r\n\r\n updateCircleChart(data: any, index: any): void {\r\n let id = 'progress-circle-' + index;\r\n let text = 'percentage-text-' + index;\r\n const progressCircle = document.getElementById(id);\r\n const percentageText = document.getElementById(text);\r\n if (progressCircle && percentageText) {\r\n const circumference = Math.PI * 2 * parseFloat(progressCircle.getAttribute('r')!);\r\n const dasharray = circumference;\r\n const dashoffset = circumference - (data / 100) * circumference;\r\n\r\n progressCircle.setAttribute('stroke-dasharray', dasharray.toString());\r\n progressCircle.setAttribute('stroke-dashoffset', dashoffset.toString());\r\n\r\n percentageText.textContent = `${data}%`;\r\n }\r\n }\r\n\r\n getPricing(data: any) {\r\n this.priceLoading = true;\r\n this.priceValueDetails = '';\r\n let params = {\r\n priceType: data,\r\n clientId: this.clientId\r\n }\r\n this.PaymentSubscriptionService.getPriceDetails(params).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n this.priceLoading = false;\r\n this.priceNoData = false;\r\n if(res.data.product.length) {\r\n this.priceValueDetails = res.data;\r\n this.originalPriceValue = JSON.parse(JSON.stringify(this.priceValueDetails));\r\n }\r\n else {\r\n this.priceNoData = true;\r\n }\r\n this.changeDetector.detectChanges();\r\n }\r\n else {\r\n this.priceLoading = false;\r\n this.priceNoData = true;\r\n }\r\n },(error:any) => {\r\n this.priceLoading = false;\r\n this.priceNoData = true;\r\n })\r\n }\r\n\r\n calculate(index: any, type: any) {\r\n if(this.priceValueDetails.product[index].discountPercentage < 0 || this.priceValueDetails.product[index].negotiatePrice < 0 ||isNaN(this.priceValueDetails.product[index].negotiatePrice) || isNaN(this.priceValueDetails.product[index].discountPercentage)) {\r\n }\r\n else {\r\n this.priceValueDetails.product[index].showDiscountError = false;\r\n this.priceValueDetails.product[index].showNegotiateError = false;\r\n if (type == 'discount') {\r\n this.priceValueDetails.product[index].negotiatePrice = this.priceValueDetails.product[index].basePrice - (this.priceValueDetails.product[index].basePrice * (this.priceValueDetails.product[index].discountPercentage / 100))\r\n this.priceValueDetails.product[index].price = this.priceValueDetails.product[index].negotiatePrice * this.priceValueDetails.product[index].storeCount\r\n }\r\n else {\r\n let disPrice = this.priceValueDetails.product[index].basePrice - this.priceValueDetails.product[index].negotiatePrice\r\n this.priceValueDetails.product[index].discountPercentage = ((disPrice / this.priceValueDetails.product[index].basePrice) * 100).toFixed(2)\r\n this.priceValueDetails.product[index].price = this.priceValueDetails.product[index].negotiatePrice * this.priceValueDetails.product[index].storeCount\r\n }\r\n let negotiatePrice = 0;\r\n let price:any = 0;\r\n let originalPrice:any = 0;\r\n this.priceValueDetails.product.forEach((item: any) => {\r\n price = price + item.price;\r\n negotiatePrice = negotiatePrice + parseInt(item.negotiatePrice);\r\n originalPrice = originalPrice + (item.basePrice * item.storeCount);\r\n })\r\n \r\n this.priceValueDetails.negotiatePrice = negotiatePrice.toFixed(2);\r\n this.priceValueDetails.discountPrice = parseFloat(originalPrice) - parseFloat(price);\r\n this.priceValueDetails.discountPercentage = ((this.priceValueDetails.discountPrice /originalPrice) * 100).toFixed(2);\r\n let gstAmount:any = price * (18 / 100)\r\n this.priceValueDetails.finalValue = (parseFloat(price) + parseFloat(gstAmount)).toFixed(2);\r\n this.priceValueDetails.totalNegotiatePrice = price.toFixed(2);\r\n }\r\n this.changeDetector.detectChanges();\r\n\r\n }\r\n \r\n getpaymentinvoice(id: any) {\r\n this.PaymentSubscriptionService.getpaymentinvoice(id).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n this.paymentinvoiceinfo = res.data;\r\n this.paymentIssue = res.data.paymenttype;\r\n this.currencyIssue = res.data.currencyType;\r\n this.selectedIssue = res.data.paymentCycle;\r\n this.invoiceonIssue = res.data.invoiceOn;\r\n this.paymentinvoiceform.get('radiooptions')?.setValue(res.data.proRate);\r\n this.paymentinvoiceform.patchValue(\r\n {\r\n fileType: res.data.fileType,\r\n },\r\n { emitEvent: false, onlySelf: true }\r\n )\r\n\r\n this.generateinvoiceList = res.data?.invoiceTo\r\n this.generateinvoiceCCList = res.data?.invoiceCC\r\n\r\n this.paymentallowedList = res.data?.paymentAgreementTo\r\n this.extendPaymentPeriodDays = res.data?.extendPaymentPeriodDays != '' ? res.data?.extendPaymentPeriodDays : 0;\r\n this.paymentinvoiceform.get('extendPaymentPeriodDays')?.setValue(this.extendPaymentPeriodDays);\r\n this.changeDetector.detectChanges();\r\n }else{\r\n this.paymentinvoiceform.get('extendPaymentPeriodDays')?.setValue(0);\r\n \r\n }\r\n })\r\n }\r\n\r\n onpaymentSubmit() {\r\n const requestData = {\r\n proRate: this.radiooptions,\r\n paymenttype: this.paymentIssue,\r\n paymentCycle: this.selectedIssue,\r\n currencyType: this.currencyIssue,\r\n invoiceTo: this.generateinvoiceList,\r\n invoiceCC: this.generateinvoiceCCList,\r\n paymentAgreementTo: this.paymentallowedList,\r\n invoiceOn: this.invoiceonIssue,\r\n extendPaymentPeriodDays: this.extendPaymentPeriodDays,\r\n };\r\n this.PaymentSubscriptionService.invoiceupdate(requestData, this.clientId).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n this.toast.getPrimaryToast(res.message)\r\n this.changeDetector.detectChanges()\r\n this.onpaymentCancel()\r\n this.paymentinvoiceshow = true\r\n }\r\n },\r\n (error) => {\r\n if(error?.error?.error) {\r\n this.toast.getErrorToast(error.error.error);\r\n }\r\n else {\r\n this.toast.getErrorToast('Please Fill all Fields');\r\n }\r\n })\r\n }\r\n\r\n onpaymentCancel() {\r\n this.PaymentSubscriptionService.paymentinvoiceFormData.next({ value: null, type: 'cancel', form: 'payment-invoice' })\r\n this.paymentinvoiceshow = true\r\n this.getpaymentinvoice(this.clientId);\r\n this.paymentinvoiceform.disable()\r\n }\r\n\r\n onpaymentedit() {\r\n this.paymentinvoiceshow = false\r\n this.paymentinvoiceform.enable()\r\n }\r\n\r\n invoiceTableData() {\r\n this.searchDisabled = false;\r\n let filters: Record<string, any> = {\r\n limit: this.pageSize,\r\n offset: this.currentPage,\r\n filter: this.isFilter,\r\n clientId: this.clientId,\r\n searchValue: this.searchInput,\r\n export: false,\r\n sortColumn:this.sortColumName,\r\n sortBy:this.sortBy\r\n }\r\n this.PaymentSubscriptionService.invoiceTableData(filters).pipe(takeUntil(this.destroy$)).subscribe({\r\n \r\n next: (e) => {\r\n\r\n if (e?.data?.count) {\r\n this.invoiceLoading = false;\r\n this.invoiceNoData = false;\r\n this.invoiceList = e.data?.data\r\n this.totalItems = e.data?.count\r\n this.changeDetector.detectChanges()\r\n } else {\r\n this.invoiceLoading = false;\r\n this.invoiceNoData = true;\r\n this.searchDisabled = true;\r\n if(this.searchInput?.length) {\r\n this.searchDisabled = false\r\n }\r\n this.invoiceList = []\r\n this.totalItems = 0\r\n this.changeDetector.detectChanges()\r\n }\r\n\r\n },\r\n error: (e) => {\r\n this.invoiceList = []\r\n this.totalItems = 0\r\n this.changeDetector.detectChanges()\r\n }\r\n })\r\n }\r\n onExport() {\r\n this.currentPage = 1;\r\n let filters: Record<string, any> = {\r\n limit: this.pageSize,\r\n offset: this.currentPage,\r\n filter: this.isFilter,\r\n clientId: this.clientId,\r\n searchValue: this.searchInput,\r\n export: true\r\n }\r\n this.PaymentSubscriptionService.invoiceTableDataExport(filters).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (res) => {\r\n this.PaymentSubscriptionService.saveAsExcelFile(res, 'invoice');\r\n },\r\n error: (e) => {\r\n this.toast.getErrorToast('Something went Wrong..')\r\n }\r\n })\r\n }\r\n\r\n onPageSizeChange(pageSize: any) {\r\n this.currentPage = 1;\r\n this.pageSize = parseInt(pageSize)\r\n this.invoiceTableData()\r\n }\r\n\r\n onPageChange(pageOffset: any) {\r\n this.currentPage = parseInt(pageOffset)\r\n this.invoiceTableData()\r\n }\r\n\r\n invoiceFilter() {\r\n this.currentPage = 1\r\n this.invoiceTableData()\r\n }\r\n\r\n sortData() {\r\n this.sortBy *= -1;\r\n this.changeDetector.detectChanges();\r\n this.invoiceTableData()\r\n }\r\n\r\n searchField() {\r\n this.invoiceTableData()\r\n }\r\n\r\n revertOriginalPrice() {\r\n this.priceValueDetails = JSON.parse(JSON.stringify(this.originalPriceValue))\r\n }\r\n\r\n getProductList() {\r\n this.loading = true;\r\n let data = {\r\n id:this.clientId,\r\n sortColumn:'storeCount',\r\n sortBy:this.sortBy\r\n };\r\n this.PaymentSubscriptionService.getProductList(data).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n this.loading = false;\r\n this.noData = false;\r\n this.productList = res.data;\r\n this.changeDetector.detectChanges();\r\n }\r\n else {\r\n this.noData = true;\r\n this.loading = false;\r\n }\r\n },(error:any) => {\r\n this.loading = false;\r\n this.noData = true;\r\n })\r\n }\r\n\r\n getStoreList() {\r\n this.loading = true;\r\n this.PaymentSubscriptionService.getStoreList(this.dynamicData).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n this.loading = false;\r\n this.noData = false;\r\n this.storeList = res.data.data;\r\n this.storeList.forEach((item: any) => {\r\n item.checked = this.selectAll;\r\n })\r\n this.totalCount = res.data.count;\r\n this.changeDetector.detectChanges();\r\n }\r\n else {\r\n this.noData = true;\r\n this.loading = false;\r\n }\r\n }, (error: any) => {\r\n this.loading = false;\r\n this.noData = true;\r\n })\r\n }\r\n\r\n onStorePageChange(event: any) {\r\n this.dynamicData.offset = parseInt(event);\r\n this.getStoreList();\r\n }\r\n\r\n onStorePageSizeChange(event: any) {\r\n this.dynamicData.offset = 1;\r\n this.dynamicData.limit = parseInt(event);\r\n this.getStoreList();\r\n }\r\n\r\n filterList() {\r\n let data = this.clientId;\r\n this.PaymentSubscriptionService.getFilterDetails(data).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n res.data.store.forEach((store: any) => {\r\n let storesIndex = this.dataObject.findIndex((item: any) => item.Description == 'Store');\r\n if (storesIndex != -1) {\r\n this.dataObject[storesIndex].Issues.push({\r\n text: store.storeName,\r\n id: store.storeId\r\n })\r\n }\r\n })\r\n\r\n res.data.location.forEach((location: any, index: any) => {\r\n let locationIndex = this.dataObject.findIndex((item: any) => item.Description == 'Location');\r\n if (locationIndex != -1) {\r\n this.dataObject[locationIndex].Issues.push({\r\n text: location,\r\n id: index\r\n })\r\n }\r\n })\r\n\r\n res.data.product.forEach((product: any, index: any) => {\r\n let productIndex = this.dataObject.findIndex((item: any) => item.Description == 'Products');\r\n if (productIndex != -1) {\r\n this.dataObject[productIndex].Issues.push({\r\n text: product,\r\n id: index\r\n })\r\n }\r\n })\r\n this.changeDetector.detectChanges();\r\n }\r\n })\r\n\r\n\r\n }\r\n\r\n searchRecords(event: any) {\r\n this.dynamicData.offset = 1;\r\n this.dynamicData.searchValue = event.target.value;\r\n this.getStoreList();\r\n }\r\n\r\n selectAllStore(event: any) {\r\n this.disabledAddIcon = true;\r\n let storeIdList; \r\n if (event.target.checked) {\r\n storeIdList = this.dataObject[1].Issues.map((item:any) => item.id);\r\n let data = {\r\n clientId: this.clientId,\r\n store: []\r\n }\r\n this.PaymentSubscriptionService.storeProduct(data).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n this.storeProduct = res.data;\r\n }\r\n })\r\n }\r\n else {\r\n storeIdList = [];\r\n this.storeProduct = [];\r\n }\r\n this.selectAll = event.target.checked;\r\n this.storeList.forEach((item: any) => {\r\n item.checked = event.target.checked\r\n })\r\n this.selectedStoreList = storeIdList;\r\n }\r\n\r\n getStores() {\r\n return this.selectedStoreList\r\n }\r\n\r\n updateCheck(event: any, storeId: any) {\r\n if (event.target.checked) {\r\n this.selectedStoreList.push(storeId)\r\n }\r\n else {\r\n let index = this.selectedStoreList.findIndex((item: any) => item === storeId);\r\n if (index != -1) {\r\n this.selectedStoreList.splice(index, 1);\r\n }\r\n }\r\n\r\n if (this.selectedStoreList.length == this.totalCount)\r\n this.selectAll = true;\r\n else\r\n this.selectAll = false;\r\n\r\n if(this.selectedStoreList.length > 1)\r\n this.disabledAddIcon = true;\r\n else\r\n this.disabledAddIcon = false;\r\n \r\n let data = {\r\n clientId: this.clientId,\r\n store: this.selectedStoreList\r\n }\r\n this.PaymentSubscriptionService.storeProduct(data).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n this.storeProduct = res.data;\r\n this.changeDetector.detectChanges();\r\n }\r\n })\r\n }\r\n\r\n getProduct() {\r\n if (this.selectedStoreList.length || this.selectAll) {\r\n return this.storeProduct;\r\n }\r\n return [];\r\n }\r\n\r\n notificationList() {\r\n this.notificationDetails = [];\r\n let data = this.clientId;\r\n this.PaymentSubscriptionService.getNotification(data).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n this.notificationDetails = res.data;\r\n \r\n this.notificationDetails.notificationList.forEach((item: any) => {\r\n item.producttraildropDown = false;\r\n })\r\n this.currentPlan = res.data.currentPlan;\r\n this.changeDetector.detectChanges();\r\n }\r\n })\r\n }\r\n\r\n cancelUnsubscribe(data: any, type: any) {\r\n let params = {\r\n id: data._id,\r\n type: type\r\n }\r\n this.approveCancelUnsubscribe(params);\r\n }\r\n\r\n approveCancelUnsubscribe(data: any) {\r\n this.PaymentSubscriptionService.unsubscribeApproval(data).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n if (data.type == 'unsubscribe') {\r\n this.toast.getPrimaryToast(`Unsubscribed Tango Suite for ${this.clientinfo.clientName} successfully`)\r\n }\r\n this.notificationList();\r\n this.changeDetector.detectChanges();\r\n }\r\n })\r\n }\r\n\r\n reload(event:any) {\r\n this.selectedStoreList = [];\r\n this.disabledAddIcon = false;\r\n if(event == 'store') {\r\n this.getStoreList();\r\n this.selectAll = false;\r\n }\r\n if(event == 'product') {\r\n this.getProductList();\r\n }\r\n this.notificationList();\r\n }\r\n\r\n convertUpper(data:string) {\r\n let [firstWord, secondWord] = data.replace(/([a-z])([A-Z])/g, '$1 $2').split(' ');\r\n firstWord = firstWord.charAt(0).toUpperCase() + firstWord.slice(1);\r\n return firstWord + ' ' + secondWord;\r\n }\r\n\r\n @HostListener('document:click', ['$event'])\r\n onDocumentClick(event: MouseEvent) {\r\n if (this.paymenttypedropDown) {\r\n this.paymenttypedropDown = false;\r\n }\r\n if (this.dropDown) {\r\n this.dropDown = false;\r\n }\r\n if (this.currencydropDown) {\r\n this.currencydropDown = false;\r\n }\r\n if (this.invoicedropDown) {\r\n this.invoicedropDown = false;\r\n }\r\n if (this.viewplandropDown) {\r\n this.viewplandropDown = false;\r\n }\r\n if(this.notificationDetails?.notificationList) {\r\n this.notificationDetails.notificationList.forEach((item:any)=>{\r\n item.producttraildropDown = false\r\n })\r\n }\r\n }\r\n\r\n sortStoreSize() {\r\n this.sortBy *= -1;\r\n this.getProductList()\r\n }\r\n\r\n getPriceError(value:any) {\r\n if(value > 0 && !isNaN(value) || value == 0){\r\n return '';\r\n }\r\n else {\r\n return 'error';\r\n }\r\n }\r\n\r\n downloadInvoice(data:any) {\r\n console.log('data', data);\r\n \r\n this.PaymentSubscriptionService.invoiceDownload(data).subscribe((res:any)=> {\r\n if(res) {\r\n const blob = new Blob([res], { type: 'application/pdf' });\r\n const link = document.createElement('a');\r\n link.href = window.URL.createObjectURL(blob);\r\n link.target = '_blank';\r\n link.click();\r\n }\r\n \r\n })\r\n }\r\n showProduct(data:string) {\r\n return data.slice(2-data.length)\r\n }\r\n omit_special_char(event: any) {\r\n var k;\r\n k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return (k == 8 || k == 32 || (k >= 48 && k <= 57));\r\n }\r\n // formatToRupee(number: number): string {\r\n // return number.toLocaleString('en-IN');\r\n // }\r\n\r\n // // Example usage:\r\n // amount: number = 120000;\r\n // formattedAmount: string = this.formatToRupee(this.amount);\r\n \r\n}\r\n","<div class=\"row\">\r\n <div class=\"col-12\">\r\n <div ngbAccordion [closeOthers]=\"true\">\r\n <!-- Billing & subscription start -->\r\n <div class=\"card\" ngbAccordionItem [collapsed]=\"openaccordian\">\r\n <div class=\"d-flex\" ngbAccordionHeader>\r\n <button class=\"mainheading\" ngbAccordionButton (click)=\"clientBillingInfo(clientId)\">Billing &\r\n Subscription<div class=\"divider\"></div>\r\n </button>\r\n </div>\r\n <div ngbAccordionCollapse>\r\n <div ngbAccordionBody>\r\n <ng-template>\r\n <!--begin::plan details Card-->\r\n <div class=\"col-xl-12 billingcard\">\r\n <div class=\" h-xl-100 flex-row flex-stack flex-wrap p-6\">\r\n <div class=\"toastcard col-md-12 mb-4\"\r\n *ngIf=\"clientinfo?.currentPlanInfo?.paymentStatus==='due' && clientinfo?.currentPlanInfo?.dueLimitReached===false\">\r\n <div class=\"d-flex align-items-center justify-content-end\">\r\n <div class=\"symbol symbol-30px me-5\"><span>\r\n <img src=\"./assets/tango/custompopup-Icons/danger-alert-primary.svg\"\r\n alt=\"\">\r\n </span>\r\n </div>\r\n <span class=\"toasttext d-block\">Kind Reminder: You have a reached your due\r\n limit ,To continue enjoying our services, please renew your subscription\r\n by making the payment. Thank you for your cooperation</span>\r\n <span><a type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-primary px-4 ng-star-inserted\"\r\n style=\"white-space: nowrap;\"><span class=\"create\">Pay Now\r\n </span></a></span>\r\n </div>\r\n\r\n </div>\r\n <div class=\"toastcard col-md-12 mb-4\"\r\n *ngIf=\"clientinfo?.currentPlanInfo?.paymentStatus==='due' && clientinfo?.currentPlanInfo?.dueLimitReached===true\">\r\n <div class=\"d-flex align-items-center justify-content-end\">\r\n <div class=\"symbol symbol-30px me-5\"><span>\r\n <img src=\"./assets/tango/custompopup-Icons/danger-alert-primary.svg\"\r\n alt=\"\">\r\n </span>\r\n </div>\r\n <span class=\"toasttext d-block\">Kind Reminder: We haven't received your\r\n payment yet. To continue enjoying our services, please renew your\r\n subscription by making the payment. Thank you for your\r\n cooperation</span>\r\n <span><a type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-primary px-4 ng-star-inserted\"\r\n style=\"white-space: nowrap;\"><span class=\"create\">Pay Now\r\n </span></a></span>\r\n </div>\r\n\r\n </div>\r\n <div class=\"d-flex flex-column\"\r\n *ngIf=\"(gs.userAccess | async)?.settings_paymentSubscriptions_isView\">\r\n <div class=\"d-flex align-items-center justify-content-between border-val mb-2\">\r\n Current Plan Info<span class=\"badge-light-grey ms-2\">\r\n {{clientinfo?.currentPlanInfo?.priceType\r\n || '--' }}</span>\r\n </div>\r\n <div class=\"d-flex align-items-center pricingtext my-2\">\r\n <span>\r\n {{ clientinfo?.currentPlanInfo?.currencyType === 'dollar' ? ('$' +\r\n (clientinfo?.currentPlanInfo?.dollarPrice ||\r\n '--')?.toLocaleString('en-IN')) : ('₹' +\r\n (clientinfo?.currentPlanInfo?.price ||\r\n '--')?.toLocaleString('en-IN'))}}</span>\r\n <span class=\"pricingspan ms-2\">Store/Month</span>\r\n </div>\r\n <hr>\r\n <div class=\"d-flex justify-content-between\">\r\n <div class=\"d-flex justify-content-start flex-column plancard\">\r\n <div class=\" heading mb-3\">\r\n <span\r\n *ngIf=\"clientinfo?.currentPlanInfo?.subscriptionType\">{{clientinfo?.currentPlanInfo?.subscriptionType\r\n | titlecase}}</span> <span\r\n *ngIf=\"!clientinfo?.currentPlanInfo?.subscriptionType\">--</span>\r\n plan - {{(clientinfo?.currentPlanInfo?.storeCount\r\n || '--')?.toLocaleString('en-IN')}}\r\n <span class=\"subheading ms-2\">store\r\n onboarded</span>\r\n <span ngbTooltip=\"{{ product.toolTip }}\" placement=\"top\"\r\n triggers=\"mouseenter:mouseleave\" tooltipClass=\"custom-tooltip\"\r\n class=\"badge badge-light-primary ms-2\"\r\n *ngFor=\"let product of clientinfo?.currentPlanInfo?.trialProducts\">\r\n {{ product.aliseProductName }}\r\n <img class=\"ms-2\"\r\n src=\"./assets/tango/custompopup-Icons/primary-clock-icon.svg\"\r\n alt=\"\"> </span>\r\n <span tooltipClass=\"custom-tooltip\"\r\n ngbTooltip=\"{{ product.toolTip }}\" placement=\"top\"\r\n triggers=\"mouseenter:mouseleave\"\r\n class=\"badge badge-light-warning ms-2\"\r\n *ngFor=\"let product of clientinfo?.currentPlanInfo?.expiredProducts\">\r\n {{ product.aliseProductName }}\r\n <img class=\"ms-2\"\r\n src=\"./assets/tango/custompopup-Icons/clockexpiry-icon.svg\"\r\n alt=\"\"> </span>\r\n </div>\r\n <span class=\"sub d-block\">Cameras :\r\n {{clientinfo?.currentPlanInfo?.totalCamera\r\n || '--'}} | Avg sq.ft : {{clientinfo?.currentPlanInfo?.storeSize\r\n || '--'}} sq.ft | Products : <span\r\n *ngFor=\"let product of clientinfo?.currentPlanInfo?.liveProducts; let last = last\">\r\n {{ product.aliseProductName }}{{ !last ? ', ' : '' }} </span>\r\n </span>\r\n </div>\r\n\r\n <div class=\" d-flex align-items-end\"\r\n *ngIf=\"(gs.userAccess | async)?.settings_paymentSubscriptions_isEdit\">\r\n <span\r\n [disableTooltip]=\"!clientinfo?.currentPlanInfo?.pendingClientRequest\"\r\n ngbTooltip=\"Request is Already initiated waiting for admin approval\"\r\n placement=\"top\" triggers=\"mouseenter:mouseleave\"\r\n tooltipClass=\"custom-tooltip\">\r\n <button type=\"submit\"\r\n [disabled]=\"clientinfo?.currentPlanInfo?.pendingClientRequest\"\r\n (click)=\"needhelp()\" class=\"btn-outline btn needhelp me-4\"><span\r\n class=\"me-2\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g clip-path=\"url(#clip0_1965_2301)\">\r\n <path\r\n d=\"M7.57533 7.50033C7.77125 6.94338 8.15795 6.47375 8.66695 6.1746C9.17596 5.87546 9.77441 5.76611 10.3563 5.86592C10.9382 5.96573 11.466 6.26826 11.8462 6.71993C12.2264 7.1716 12.4345 7.74326 12.4337 8.33366C12.4337 10.0003 9.93366 10.8337 9.93366 10.8337M10.0003 14.167H10.0087M18.3337 10.0003C18.3337 14.6027 14.6027 18.3337 10.0003 18.3337C5.39795 18.3337 1.66699 14.6027 1.66699 10.0003C1.66699 5.39795 5.39795 1.66699 10.0003 1.66699C14.6027 1.66699 18.3337 5.39795 18.3337 10.0003Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1965_2301\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span><span class=\"mt-2\"> Need Help</span>\r\n </button>\r\n </span>\r\n <span\r\n [disableTooltip]=\"!clientinfo?.currentPlanInfo?.pendingClientRequest\"\r\n ngbTooltip=\"Request is Already initiated waiting for admin approval\"\r\n placement=\"top\" triggers=\"mouseenter:mouseleave\"\r\n tooltipClass=\"custom-tooltip\">\r\n <button\r\n [disabled]=\"clientinfo?.currentPlanInfo?.pendingClientRequest\"\r\n (click)=\"upgradeplan()\" type=\"button\" tabindex=\"0\"\r\n class=\"btn update btn-lg btn-light btn-active-light-primary px-4 ng-star-inserted\"\r\n style=\"white-space: nowrap;\"><span class=\"create\">Upgrade Plan\r\n </span></button>\r\n </span>\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <!--end::plan details Card-->\r\n\r\n\r\n <div class=\"row gx-4 mt-4\"\r\n *ngIf=\"(gs.userAccess | async)?.settings_paymentSubscriptions_isView\">\r\n <!--begin::Bank details Card-->\r\n <div class=\"col-xl-7 \">\r\n <div class=\"billingcard h-xl-100 flex-row flex-stack flex-wrap p-6\">\r\n <div class=\"d-flex flex-column py-2\">\r\n <div class=\"d-flex align-items-center billingtext mb-8\">\r\n Bank Details\r\n </div>\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"col-lg-4\">\r\n <div class=\"billingdetails\">Payment Type</div>\r\n <div class=\"billingmain\">Fund Transfer\r\n <!-- Virtual Acc -->\r\n </div>\r\n </div>\r\n <div class=\"col-lg-4\">\r\n <div class=\"billingdetails\">Account No </div>\r\n <div class=\"billingmain\">50200027441433\r\n <!-- {{clientinfo?.bankDetails?.accountNo ||\r\n '--'}} -->\r\n </div>\r\n </div>\r\n <div class=\"col-lg-4\">\r\n <div class=\"billingdetails\">IFSC Code</div>\r\n <div class=\"billingmain\"> HDFC0000269\r\n <!-- {{clientinfo?.bankDetails?.ifscCode ||\r\n '--'}} -->\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"d-flex align-items-center mt-8\">\r\n <div class=\"col-lg-4\">\r\n <div class=\"billingdetails\">SWIFT Code</div>\r\n <div class=\"billingmain\"> HDFCINBBCHE\r\n <!-- {{clientinfo?.bankDetails?.swiftCode ||\r\n '--'}} -->\r\n </div>\r\n </div>\r\n <div class=\"col-lg-4\">\r\n <div class=\"billingdetails\">Branch </div>\r\n <div class=\"billingmain\">RS Puram, Coimbatore\r\n <!-- {{clientinfo?.bankDetails?.branch || '--'}} -->\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!--end::Bank details Card-->\r\n\r\n\r\n <div class=\"col-xl-5 \"\r\n *ngIf=\"(gs.userAccess | async)?.settings_paymentSubscriptions_isView\">\r\n\r\n <!-- Add Billing start -->\r\n <div class=\"billing h-xl-100 w-100 flex-row flex-stack flex-wrap p-6\"\r\n *ngIf=\"!clientinfo?.billingDetails?.billingAddress\">\r\n <div class=\"modal-content align-items-center mt-2\">\r\n <div class=\"d-flex\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/addbilling_icon.svg\"\r\n alt=\"\"></div>\r\n\r\n </div>\r\n <div class=\"heading mt-4 ms-1\">Add billing address</div>\r\n <div class=\"d-flex justify-content-center mt-8 w-100\">\r\n <button type=\"button\" tabindex=\"0\" (click)=\"update()\"\r\n class=\"btn btn-primary ms-2 ng-star-inserted address w-100\"\r\n style=\"white-space: nowrap;\"\r\n *ngIf=\"(gs.userAccess | async)?.settings_paymentSubscriptions_isEdit\"><span\r\n class=\"submit\"><svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M10.0003 4.16675V15.8334M4.16699 10.0001H15.8337\"\r\n stroke=\"white\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span> New Address </button>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <!-- Add Billing end -->\r\n <!-- Billing Information start -->\r\n <div class=\"billingcard h-xl-100 flex-row flex-stack flex-wrap p-6\"\r\n *ngIf=\"clientinfo?.billingDetails?.billingAddress && clientinfo?.billingDetails?.billingAddress!==''\">\r\n <div class=\"d-flex flex-column py-2\">\r\n <div\r\n class=\"d-flex align-items-center justify-content-between billingtext mb-5\">\r\n Billing\r\n <a type=\"submit\" (click)=\"update()\"\r\n class=\"btn update btn-lg btn-light btn-active-light-primary px-4 ng-star-inserted\"\r\n *ngIf=\"(gs.userAccess | async)?.settings_paymentSubscriptions_isEdit\"><span\r\n class=\"mt-2\">\r\n Update</span></a>\r\n\r\n </div>\r\n\r\n <div class=\"align-items-center\">\r\n\r\n <div class=\"billingdetails\">Next Billing Date</div>\r\n <div class=\"billingmain\">\r\n {{clientinfo?.billingDetails?.nextBillingDate || '--'}}\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n <div class=\"align-items-center mt-8\">\r\n <div class=\"billingdetails\">Billing Address</div>\r\n <div class=\"billingmain\">\r\n {{clientinfo?.billingDetails?.billingAddress ||\r\n '--'}}\r\n </div>\r\n\r\n\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <!-- Billing Information End -->\r\n\r\n </div>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- Billing & subscription End -->\r\n\r\n <!--subscription Config start -->\r\n <div class=\"card mt-6\" ngbAccordionItem\r\n *ngIf=\"(gs.userAccess | async)?.userType === 'tango' && (gs.userAccess | async)?.settings_paymentSubscriptions_isView\">\r\n <div class=\"d-flex\" ngbAccordionHeader>\r\n <button class=\"mainheading\" ngbAccordionButton\r\n (click)=\"notificationList();getProductList()\">Subscription Config <div class=\"divider\"></div>\r\n </button>\r\n </div>\r\n <div ngbAccordionCollapse>\r\n <div ngbAccordionBody>\r\n\r\n <ng-template>\r\n <div class=\"col-xl-12 billingcard\">\r\n <div class=\" h-xl-100 flex-row flex-stack flex-wrap mx-5 pt-4\">\r\n <div class=\"d-flex flex-column\">\r\n <!-- subscription info header start -->\r\n <div class=\"d-flex justify-content-between\">\r\n\r\n <div *ngIf=\"showNavGroup\" class=\"nav-group nav-group-outline mt-2\">\r\n <button\r\n class=\"btn btn-color-gray-600 btn-active btn-active-secondary px-6 py-3 me-2\"\r\n [ngClass]=\"plan === 'subscription'? 'activePlanBtn':'inactivePlanBtn'\"\r\n data-kt-plan=\"subscription\" (click)=\"selectPlan('subscription')\">\r\n Subscription\r\n </button>\r\n\r\n <button\r\n class=\"btn btn-color-gray-600 btn-active btn-active-secondary px-6 py-3\"\r\n [ngClass]=\"plan === 'pricing'? 'activePlanBtn':'inactivePlanBtn'\"\r\n data-kt-plan=\"pricing\" (click)=\"selectPlan('pricing')\">\r\n Pricing\r\n </button>\r\n </div>\r\n </div>\r\n <!-- subscription info header end -->\r\n\r\n <!-- subscription tab starts -->\r\n <div *ngIf=\"plan === 'subscription'\">\r\n <!-- client request card start -->\r\n <div class=\"row gx-4 mt-4\">\r\n <!--begin::Bank details Card-->\r\n <div class=\"col-xl-6\" [ngClass]=\"i > 1? 'mt-5' : ''\"\r\n *ngFor=\"let notification of notificationDetails.notificationList;let i= index;\">\r\n <!-- Billing Information start -->\r\n <div\r\n class=\"billingcard h-xl-100 flex-row flex-stack flex-wrap mb-6 px-6\">\r\n <div class=\"d-flex flex-column mt-10\"\r\n *ngIf=\"notification.category === 'Trial'\">\r\n <div\r\n class=\"d-flex align-items-center justify-content-between levelviewtext mb-2\">\r\n {{notification.name}} <span\r\n class=\"badge-light-grey ms-2\">{{currentPlan |\r\n titlecase}}</span>\r\n </div>\r\n <div class=\"subtext\">Kindly make necessary action for trial\r\n request or skip product to subscription list</div>\r\n\r\n <div data-kt-subscription-table-toolbar=\"base\"\r\n class=\"d-flex mt-15\"><a\r\n (click)=\"approvetrial(notification,'cancel')\"\r\n type=\"submit\"\r\n class=\"btn-outline btn needhelp me-6 mt-3\"><span\r\n class=\"mt-6\">Skip Trial</span></a><a\r\n (click)=\"approvetrial(notification,'approve')\"\r\n type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-primary px-4 mt-3 ng-star-inserted\"\r\n *ngIf=\"(gs.userAccess | async)?.settings_paymentSubscriptions_isEdit\"><span>Approve\r\n Trial\r\n </span></a></div>\r\n </div>\r\n <div class=\"d-flex flex-column mt-11\"\r\n *ngIf=\"notification.category === 'unsubscribe'\">\r\n <div\r\n class=\"d-flex align-items-center justify-content-between levelviewtext mb-2\">\r\n Unsubscribe Request\r\n </div>\r\n <div class=\"subtext\">Client has requested to unsubscribe\r\n <span class=\"subtextbold\">Tango Suite</span>\r\n </div>\r\n\r\n <div data-kt-subscription-table-toolbar=\"base\"\r\n class=\"d-flex mt-20\"><a type=\"submit\"\r\n class=\"btn-outline btn needhelp me-6 mt-3\"\r\n (click)=\"cancelUnsubscribe(notification,'cancel')\"><span\r\n class=\"mt-6\">Cancel</span></a><a\r\n (click)=\"approveUnsubscribe(notification,'unsubscribe')\"\r\n type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-danger px-4 mt-3 ng-star-inserted\"\r\n *ngIf=\"(gs.userAccess | async)?.settings_paymentSubscriptions_isEdit\"><span>Approve\r\n </span></a></div>\r\n </div>\r\n <div class=\"d-flex flex-column mt-10\"\r\n *ngIf=\"notification.category === 'trial product'\">\r\n <div\r\n class=\"d-flex align-items-center justify-content-between levelviewtext mb-2\">\r\n {{notification.name}} <span\r\n class=\"badge-light-grey ms-2\">{{currentPlan |\r\n titlecase}}</span>\r\n </div>\r\n <div class=\"subtext\">You will not be billed during your free\r\n <span class=\"subtextbold\">trial</span>.To keep your\r\n projects running after the trial end, upgrade to a paid\r\n option.\r\n </div>\r\n <div class=\"row mt-7\">\r\n <div class=\"col-lg-8 d-flex\">\r\n <div><svg id=\"circle-chart\" width=\"94\" height=\"94\"\r\n viewBox=\"0 0 100 100\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <!-- Background circle -->\r\n <circle cx=\"50\" cy=\"50\" r=\"40\" fill=\"none\"\r\n stroke=\"#f0f0f0\" stroke-width=\"8\">\r\n </circle>\r\n <!-- Foreground circle -->\r\n <circle id=\"progress-circle-{{i}}\" cx=\"50\"\r\n cy=\"50\" r=\"40\" fill=\"none\"\r\n stroke=\"#007bff\" stroke-width=\"8\"\r\n stroke-dasharray=\"251.2\"\r\n [attr.stroke-dashoffset]=\"updateCircleChart(notification.percentage,i)\">\r\n </circle>\r\n <!-- Text displaying percentage -->\r\n <text id=\"percentage-text-{{i}}\" x=\"50\"\r\n y=\"54\" class=\"producttext\"\r\n text-anchor=\"middle\"\r\n fill=\"#333333\">{{notification.percentage}}%</text>\r\n </svg></div>\r\n <div\r\n class=\"align-items-start justify-content-between daysleft ms-6 mt-3\">\r\n {{notification.day}} Days Left\r\n <div class=\"align-items-start trail mt-4 me-16\">\r\n Free trial</div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"col-lg-4 mt-6\">\r\n <div class=\"position-relative\">\r\n <div (click)=\"producttrailDropdown($event,i)\">\r\n <span\r\n class=\"justify-content-end cursor-pointer ms-20\"><svg\r\n width=\"60\" height=\"60\"\r\n viewBox=\"0 0 60 60\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g\r\n filter=\"url(#filter0_d_5221_60143)\">\r\n <rect x=\"2\" y=\"1\" width=\"56\"\r\n height=\"56\" rx=\"8\"\r\n fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"55\"\r\n height=\"55\" rx=\"7.5\"\r\n stroke=\"#D0D5DD\" />\r\n <g\r\n clip-path=\"url(#clip0_5221_60143)\">\r\n <path\r\n d=\"M30 32C31.6569 32 33 30.6569 33 29C33 27.3431 31.6569 26 30 26C28.3431 26 27 27.3431 27 29C27 30.6569 28.3431 32 30 32Z\"\r\n stroke=\"#344054\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M37.4 32C37.2669 32.3016 37.2272 32.6362 37.286 32.9606C37.3448 33.285 37.4995 33.5843 37.73 33.82L37.79 33.88C37.976 34.0657 38.1235 34.2863 38.2241 34.5291C38.3248 34.7719 38.3766 35.0322 38.3766 35.295C38.3766 35.5578 38.3248 35.8181 38.2241 36.0609C38.1235 36.3037 37.976 36.5243 37.79 36.71C37.6043 36.896 37.3837 37.0435 37.1409 37.1441C36.8981 37.2448 36.6378 37.2966 36.375 37.2966C36.1122 37.2966 35.8519 37.2448 35.6091 37.1441C35.3663 37.0435 35.1457 36.896 34.96 36.71L34.9 36.65C34.6643 36.4195 34.365 36.2648 34.0406 36.206C33.7162 36.1472 33.3816 36.1869 33.08 36.32C32.7842 36.4468 32.532 36.6572 32.3543 36.9255C32.1766 37.1938 32.0813 37.5082 32.08 37.83V38C32.08 38.5304 31.8693 39.0391 31.4942 39.4142C31.1191 39.7893 30.6104 40 30.08 40C29.5496 40 29.0409 39.7893 28.6658 39.4142C28.2907 39.0391 28.08 38.5304 28.08 38V37.91C28.0723 37.579 27.9651 37.258 27.7725 36.9887C27.5799 36.7194 27.3107 36.5143 27 36.4C26.6984 36.2669 26.3638 36.2272 26.0394 36.286C25.715 36.3448 25.4157 36.4995 25.18 36.73L25.12 36.79C24.9343 36.976 24.7137 37.1235 24.4709 37.2241C24.2281 37.3248 23.9678 37.3766 23.705 37.3766C23.4422 37.3766 23.1819 37.3248 22.9391 37.2241C22.6963 37.1235 22.4757 36.976 22.29 36.79C22.104 36.6043 21.9565 36.3837 21.8559 36.1409C21.7552 35.8981 21.7034 35.6378 21.7034 35.375C21.7034 35.1122 21.7552 34.8519 21.8559 34.6091C21.9565 34.3663 22.104 34.1457 22.29 33.96L22.35 33.9C22.5805 33.6643 22.7352 33.365 22.794 33.0406C22.8528 32.7162 22.8131 32.3816 22.68 32.08C22.5532 31.7842 22.3428 31.532 22.0745 31.3543C21.8062 31.1766 21.4918 31.0813 21.17 31.08H21C20.4696 31.08 19.9609 30.8693 19.5858 30.4942C19.2107 30.1191 19 29.6104 19 29.08C19 28.5496 19.2107 28.0409 19.5858 27.6658C19.9609 27.2907 20.4696 27.08 21 27.08H21.09C21.421 27.0723 21.742 26.9651 22.0113 26.7725C22.2806 26.5799 22.4857 26.3107 22.6 26C22.7331 25.6984 22.7728 25.3638 22.714 25.0394C22.6552 24.715 22.5005 24.4157 22.27 24.18L22.21 24.12C22.024 23.9343 21.8765 23.7137 21.7759 23.4709C21.6752 23.2281 21.6234 22.9678 21.6234 22.705C21.6234 22.4422 21.6752 22.1819 21.7759 21.9391C21.8765 21.6963 22.024 21.4757 22.21 21.29C22.3957 21.104 22.6163 20.9565 22.8591 20.8559C23.1019 20.7552 23.3622 20.7034 23.625 20.7034C23.8878 20.7034 24.1481 20.7552 24.3909 20.8559C24.6337 20.9565 24.8543 21.104 25.04 21.29L25.1 21.35C25.3357 21.5805 25.635 21.7352 25.9594 21.794C26.2838 21.8528 26.6184 21.8131 26.92 21.68H27C27.2958 21.5532 27.548 21.3428 27.7257 21.0745C27.9034 20.8062 27.9987 20.4918 28 20.17V20C28 19.4696 28.2107 18.9609 28.5858 18.5858C28.9609 18.2107 29.4696 18 30 18C30.5304 18 31.0391 18.2107 31.4142 18.5858C31.7893 18.9609 32 19.4696 32 20V20.09C32.0013 20.4118 32.0966 20.7262 32.2743 20.9945C32.452 21.2628 32.7042 21.4732 33 21.6C33.3016 21.7331 33.6362 21.7728 33.9606 21.714C34.285 21.6552 34.5843 21.5005 34.82 21.27L34.88 21.21C35.0657 21.024 35.2863 20.8765 35.5291 20.7759C35.7719 20.6752 36.0322 20.6234 36.295 20.6234C36.5578 20.6234 36.8181 20.6752 37.0609 20.7759C37.3037 20.8765 37.5243 21.024 37.71 21.21C37.896 21.3957 38.0435 21.6163 38.1441 21.8591C38.2448 22.1019 38.2966 22.3622 38.2966 22.625C38.2966 22.8878 38.2448 23.1481 38.1441 23.3909C38.0435 23.6337 37.896 23.8543 37.71 24.04L37.65 24.1C37.4195 24.3357 37.2648 24.635 37.206 24.9594C37.1472 25.2838 37.1869 25.6184 37.32 25.92V26C37.4468 26.2958 37.6572 26.548 37.9255 26.7257C38.1938 26.9034 38.5082 26.9987 38.83 27H39C39.5304 27 40.0391 27.2107 40.4142 27.5858C40.7893 27.9609 41 28.4696 41 29C41 29.5304 40.7893 30.0391 40.4142 30.4142C40.0391 30.7893 39.5304 31 39 31H38.91C38.5882 31.0013 38.2738 31.0966 38.0055 31.2743C37.7372 31.452 37.5268 31.7042 37.4 32Z\"\r\n stroke=\"#344054\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </g>\r\n <defs>\r\n <filter\r\n id=\"filter0_d_5221_60143\"\r\n x=\"0\" y=\"0\" width=\"60\"\r\n height=\"60\"\r\n filterUnits=\"userSpaceOnUse\"\r\n color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\"\r\n result=\"BackgroundImageFix\" />\r\n <feColorMatrix\r\n in=\"SourceAlpha\"\r\n type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\r\n result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur\r\n stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\"\r\n in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_5221_60143\" />\r\n <feBlend mode=\"normal\"\r\n in=\"SourceGraphic\"\r\n in2=\"effect1_dropShadow_5221_60143\"\r\n result=\"shape\" />\r\n </filter>\r\n <clipPath id=\"clip0_5221_60143\">\r\n <rect width=\"24\" height=\"24\"\r\n fill=\"white\"\r\n transform=\"translate(18 17)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n <div *ngIf=\"notification.producttraildropDown\"\r\n class=\"card py-2 w-200px position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let producttrailitem of producttrailtype\"\r\n class=\"list-unstyled mb-2\">\r\n <li class=\"producttext px-5 items cursor-pointer py-4\"\r\n (click)=\"producttrailItem(producttrailitem,notification)\">\r\n {{producttrailitem}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n <!--end::Bank details Card-->\r\n </div>\r\n <!-- client request card end -->\r\n\r\n <!-- level view dropdown start -->\r\n <div *ngIf=\"sublevelview\"\r\n class=\"d-flex justify-content-between heading mt-6 cursor-pointer\">\r\n <div class=\"position-relative ms-2\">\r\n <div class=\"form-select levelviewtext\" id=\"currency\"\r\n (click)=\"viewplanDropdown($event)\"\r\n aria-label=\"Default select example\">{{viewplanIssue}}</div>\r\n <div *ngIf=\"viewplandropDown\"\r\n class=\"card py-2 w-100 position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let viewplanitem of viewplantype\"\r\n class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"this.viewplanIssue === viewplanitem ? 'active' : ''\"\r\n class=\"producttext px-5 items cursor-pointer py-4\"\r\n (click)=\"viewplanItem(viewplanitem)\">{{viewplanitem}}\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"text-sub\">Based on Current Subscribed Product</div>\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <div *ngIf=\"plan === 'subscription' && viewplanIssue === 'Product Level View'\"\r\n class=\" d-flex justify-content-end mt-6\">\r\n <lib-multidropdown text=\"Add Products\" [product]=\"productList\"\r\n [productList]=\"dataObject[0].Issues\" type=\"products\"\r\n [clientId]=\"clientId\" (data)=\"reload($event)\"\r\n *ngIf=\"(gs.userAccess | async)?.settings_paymentSubscriptions_isEdit\"></lib-multidropdown>\r\n </div>\r\n </div>\r\n <div class=\"card-toolbar mt-3\"\r\n *ngIf=\"viewplanIssue === 'Store Level View' && plan === 'subscription'\">\r\n <div class=\"d-flex justify-content-end\">\r\n <div class=\"d-flex align-items-end position-relative my-1\">\r\n <span *ngIf=\"storeList.length\"\r\n class=\"svg-icon svg-icon-1 position-absolute mb-3 ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\"\r\n height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <rect opacity=\"0.5\" x=\"17.0365\" y=\"15.1223\"\r\n width=\"8.15546\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(45 17.0365 15.1223)\"\r\n fill=\"currentColor\"></rect>\r\n <path\r\n d=\"M11 19C6.55556 19 3 15.4444 3 11C3 6.55556 6.55556 3 11 3C15.4444 3 19 6.55556 19 11C19 15.4444 15.4444 19 11 19ZM11 5C7.53333 5 5 7.53333 5 11C5 14.4667 7.53333 17 11 17C14.4667 17 17 14.4667 17 11C17 7.53333 14.4667 5 11 5Z\"\r\n fill=\"currentColor\"></path>\r\n </svg>\r\n </span>\r\n <input type=\"text\" class=\"form-control ps-14 me-2\"\r\n placeholder=\"Search\" autocomplete=\"off\"\r\n (change)=\"searchRecords($event)\"\r\n *ngIf=\"storeList.length\" />\r\n <lib-filters class=\"me-2\" [dataObject]=\"dataObject\"\r\n *ngIf=\"storeList.length\"\r\n (appliedFilters)=receiveData($event)></lib-filters>\r\n <lib-multidropdown text=\"Add Products\"\r\n [productList]=\"dataObject[0].Issues\" type=\"stores\"\r\n [stores]=\"getStores()\" [product]=\"getProduct()\"\r\n [clientId]=\"clientId\" [clientProduct]=\"productList\"\r\n (data)=\"reload($event)\" [selectAll]=\"selectAll\"\r\n *ngIf=\"storeList.length && (gs.userAccess | async)?.settings_paymentSubscriptions_isEdit\"></lib-multidropdown>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- subscription config toolbar end -->\r\n </div>\r\n\r\n <ng-container *ngIf=\"loading\">\r\n <div\r\n class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div\r\n class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\"\r\n src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- product subscription plan start -->\r\n <div *ngIf=\"viewplanIssue === 'Product Level View' && !loading && !noData\">\r\n <div class=\"card-body p-0 mt-4\">\r\n <div class=\"table-responsive\">\r\n <table class=\"table bottom-border\">\r\n <thead>\r\n <tr>\r\n <th>Product</th>\r\n <th>\r\n <div (click)=\"sortStoreSize()\">\r\n No of Stores\r\n <span class=\"cursor-pointer\"\r\n *ngIf=\"sortBy !== 1\">\r\n <svg width=\"12\" height=\"12\"\r\n viewBox=\"0 0 12 12\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\"\r\n stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span class=\"cursor-pointer\"\r\n *ngIf=\"sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\"\r\n viewBox=\"0 0 12 12\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\"\r\n stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n </th>\r\n <th>Cost Per Store</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let product of productList;let i=index;\">\r\n <td>\r\n <div class=\"table-title subscribedtext\">\r\n {{convertUpper(product?.product) || '--'}}\r\n </div>\r\n </td>\r\n\r\n <td>\r\n <div class=\"table-title\">{{product?.storeCount\r\n || 0}}</div>\r\n\r\n </td>\r\n\r\n <td>\r\n <div class=\"table-title\">₹ {{(product?.basePrice\r\n || 0) ?.toLocaleString('en-IN')}}</div>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- product subscription plan end -->\r\n\r\n <!-- store subscription plan start -->\r\n <div *ngIf=\"viewplanIssue === 'Store Level View' && !loading && !noData\">\r\n <div class=\"card-body p-0 mt-6\">\r\n <div class=\"\">\r\n <table class=\"table bottom-border\">\r\n <thead>\r\n <tr>\r\n <th>\r\n <div class=\"d-flex align-items-center\">\r\n <input\r\n class=\"form-check-input cursor-pointer me-4\"\r\n [(ngModel)]=\"selectAll\" type=\"checkbox\"\r\n (click)=\"selectAllStore($event)\">\r\n <label class=\"form-check-label\"\r\n for=\"flexCheckDefault\">\r\n <span>Store Info</span>\r\n </label>\r\n </div>\r\n </th>\r\n <th>Location</th>\r\n <th>Products</th>\r\n <th>Actions</th>\r\n\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let store of storeList;let i=index;\">\r\n <td>\r\n <div class=\"d-flex align-items-center\">\r\n <input\r\n class=\"form-check-input cursor-pointer me-4\"\r\n type=\"checkbox\"\r\n [(ngModel)]=\"store.checked\"\r\n (change)=\"updateCheck($event,store?.storeId)\">\r\n <div\r\n class=\"d-flex justify-content-start flex-column\">\r\n <label\r\n class=\"form-check-label table-title-primary\"\r\n for=\"flexCheckDefault\">\r\n <span>{{store?.storeName ||\r\n '--'}}</span>\r\n </label>\r\n <span class=\"table-sub d-block7\">ID :\r\n {{store?.storeId || '--'}}</span>\r\n </div>\r\n </div>\r\n\r\n <div>\r\n\r\n\r\n </div>\r\n </td>\r\n <td>\r\n <div class=\"table-title\">\r\n {{store?.storeProfile?.city || '--'}}</div>\r\n </td>\r\n\r\n <td *ngIf=\"store?.product && store?.product.length\">\r\n <span\r\n *ngFor=\"let product of store?.product;let i=index;\"><span\r\n *ngIf=\"i<2\"\r\n class=\"badge badge-light-primary me-1\">{{product}}</span></span><span\r\n *ngIf=\"store.product.length > 2\"\r\n [ngbTooltip]=\"showProduct(store.product)\">+{{store?.product.length-2}}</span>\r\n </td>\r\n <td\r\n *ngIf=\"!store?.product || !store?.product.length\">\r\n -- </td>\r\n <td>\r\n <lib-multidropdown\r\n [product]=\"store?.product || []\"\r\n [productList]=\"dataObject[0].Issues\"\r\n type=\"stores\" [stores]=\"[store?.storeId]\"\r\n [clientId]=\"clientId\"\r\n [clientProduct]=\"productList\"\r\n (data)=\"reload($event)\"\r\n *ngIf=\"(gs.userAccess | async)?.settings_paymentSubscriptions_isEdit\"\r\n [disabled]=\"disabledAddIcon\"\r\n [index]=\"i\"></lib-multidropdown>\r\n </td>\r\n\r\n </tr>\r\n </tbody>\r\n </table>\r\n <div class=\"mb-4\">\r\n <lib-pagination [itemsPerPage]=\"dynamicData.limit\"\r\n [currentPage]=\"dynamicData.offset\"\r\n [totalItems]=\"totalCount\" [paginationSizes]=\"[10,20,30]\"\r\n [pageSize]=\"dynamicData.limit\"\r\n (pageChange)=\"onStorePageChange($event)\"\r\n (pageSizeChange)=\"onStorePageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- store subscription plan end -->\r\n </div>\r\n <!-- subscription tab starts -->\r\n\r\n <!--pricing tab start -->\r\n <div *ngIf=\"plan === 'pricing'\">\r\n <div class=\"d-flex justify-content-between py-6\">\r\n <div class=\" levelviewtext mt-4\">\r\n Pricing Table<br><span class=\"text-sub\">Based on Product &\r\n stores</span> </div>\r\n <div class=\"card-toolbar\">\r\n <div class=\"justify-content-end\">\r\n <div class=\"producttext\">Switch to</div>\r\n <div *ngIf=\"PricingshowNav\"\r\n class=\"nav-group nav-group-outline mt-2\">\r\n <button\r\n class=\"btn btn-color-gray-600 btn-active btn-active-secondary px-6 py-3 me-2\"\r\n [ngClass]=\"pricingplan === 'standard'? 'activePlanBtnprimary':'inactivePlanBtn'\"\r\n data-kt-plan=\"standardprice\"\r\n (click)=\"selectPricePlan('standard')\">\r\n Standard Price\r\n </button>\r\n\r\n <button\r\n class=\"btn btn-color-gray-600 btn-active btn-active-secondary px-6 py-3\"\r\n [ngClass]=\"pricingplan === 'step'? 'activePlanBtnprimary':'inactivePlanBtn'\"\r\n data-kt-plan=\"stepprice\"\r\n (click)=\"selectPricePlan('step')\">\r\n Step Price\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"pricingplan === 'step'\" class=\"d-flex justify-content-end mb-8\">\r\n <button (click)=\"addstepprice('add')\" type=\"button\"\r\n class=\"btn-outline btn needhelp text-nowrap\"\r\n *ngIf=\"(gs.userAccess | async)?.settings_paymentSubscriptions_isEdit\"\r\n [disabled]=\"priceNoData\"><svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"21\" height=\"20\" viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path d=\"M10.4993 4.16675V15.8334M4.66602 10.0001H16.3327\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg><span class=\"ms-2\">Add Step</span> </button>\r\n </div>\r\n\r\n <ng-container *ngIf=\"priceLoading\">\r\n <div\r\n class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"priceNoData\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div\r\n class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\"\r\n src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div class=\"card-body p-0 mt-4\">\r\n <div *ngIf=\"pricingplan === 'standard' && !priceLoading && !priceNoData\"\r\n class=\"table-responsive\">\r\n <table class=\"table bottom-border\">\r\n <thead>\r\n <tr>\r\n <th>Product</th>\r\n <th>Actual Price</th>\r\n <th class=\"discountheader\">Discount %</th>\r\n <th class=\"negheader\">Negotiated Price</th>\r\n <th>Installed Stores</th>\r\n <th>Total Price</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr\r\n *ngFor=\"let product of priceValueDetails.product;let i=index;\">\r\n <td>\r\n <div class=\"producttext\">\r\n {{convertUpper(product.productName)}}</div>\r\n\r\n </td>\r\n <td>\r\n <div class=\"table-title\">{{product.basePrice}}</div>\r\n\r\n </td>\r\n <td class=\"discountprice\">\r\n <div><input type=\"text\" class=\" form-control \"\r\n id=\"discountprice\"\r\n style=\"text-transform: capitalize;\"\r\n [(ngModel)]=\"product.discountPercentage\"\r\n (change)=\"calculate(i,'discount')\"\r\n [class]=\"getPriceError(product.discountPercentage)\"\r\n (keypress)=\"omit_special_char($event)\">\r\n </div>\r\n </td>\r\n <td class=\"negprice\">\r\n <div><input type=\"text\"\r\n class=\" form-control w-100px \" id=\"negprice\"\r\n style=\"text-transform: capitalize;\"\r\n [(ngModel)]=\"product.negotiatePrice\"\r\n (change)=\"calculate(i,'price')\"\r\n [class]=\"getPriceError(product.negotiatePrice)\"\r\n (keypress)=\"omit_special_char($event)\">\r\n </div>\r\n </td>\r\n\r\n <td>\r\n <div class=\"table-title\">{{product.storeCount}}\r\n </div>\r\n </td>\r\n\r\n <td>\r\n <div class=\"table-title\">₹\r\n {{product.price?.toLocaleString('en-IN')}}</div>\r\n </td>\r\n </tr>\r\n <tr>\r\n <th>\r\n <div class=\"table-title\">Total Value</div>\r\n\r\n </th>\r\n <th>\r\n <div class=\"table-title bolddata\"> ₹\r\n {{priceValueDetails.actualPrice?.toLocaleString('en-IN')}}\r\n </div>\r\n\r\n </th>\r\n <th>\r\n <!-- <div class=\"table-title bolddata\"> ₹ {{priceValueDetails.negotiatePrice}}</div> -->\r\n </th>\r\n <th>\r\n <div class=\"table-title bolddata\"> ₹\r\n {{priceValueDetails.negotiatePrice?.toLocaleString('en-IN')}}\r\n </div>\r\n </th>\r\n <th></th>\r\n\r\n <th>\r\n <div class=\"table-title bolddata\">\r\n ₹{{priceValueDetails.totalNegotiatePrice?.toLocaleString('en-IN')}}\r\n </div>\r\n </th>\r\n\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <div *ngIf=\"pricingplan === 'step' && !priceLoading && !priceNoData\"\r\n class=\"table-responsive\">\r\n <table class=\"table bottom-border text-nowrap\">\r\n <thead>\r\n <tr>\r\n <th>Product</th>\r\n <th>Actual Price</th>\r\n <th>Discount %</th>\r\n <th>Negotiated Price</th>\r\n <th>Store Range</th>\r\n <th>Installed Stores</th>\r\n <th>Total Price</th>\r\n <th>Actions</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr\r\n *ngFor=\"let product of priceValueDetails?.product;let i=index\">\r\n <td>\r\n <div class=\"producttext\">\r\n {{convertUpper(product.productName)}}\r\n <span class=\"ms-4\" *ngIf=\"product.showImg\"><img\r\n src=\"./assets/tango/custompopup-Icons/expiry-icon.svg\"\r\n alt=\"\"></span>\r\n </div>\r\n\r\n </td>\r\n <td>\r\n <div class=\"table-title\"> ₹ {{product.basePrice}}\r\n </div>\r\n\r\n </td>\r\n <td class=\"discountprice\">\r\n <div><input type=\"text\"\r\n class=\" form-control w-100px\"\r\n id=\"discountprice\"\r\n style=\"text-transform: capitalize;\"\r\n [(ngModel)]=\"product.discountPercentage\"\r\n (change)=\"calculate(i,'discount')\"\r\n [class]=\"getPriceError(product.discountPercentage)\"\r\n (keypress)=\"omit_special_char($event)\">\r\n </div>\r\n </td>\r\n <td class=\"negprice\">\r\n <div><input type=\"text\"\r\n class=\" form-control w-100px\" id=\"negprice\"\r\n style=\"text-transform: capitalize;\"\r\n [(ngModel)]=\"product.negotiatePrice\"\r\n (change)=\"calculate(i,'price')\"\r\n [class]=\"getPriceError(product.negotiatePrice)\"\r\n (keypress)=\"omit_special_char($event)\">\r\n </div>\r\n </td>\r\n <td class=\"storerange\">\r\n <div><input type=\"text\"\r\n class=\" form-control w-150px\"\r\n id=\"storerange\"\r\n style=\"text-transform: capitalize;\"\r\n [(ngModel)]=\"product.storeRange\" readonly>\r\n </div>\r\n </td>\r\n <td>\r\n <div class=\"table-title\">{{product.storeCount}}\r\n </div>\r\n </td>\r\n\r\n <td>\r\n <div class=\"table-title\"> ₹ {{product.price}}</div>\r\n </td>\r\n <td>\r\n <div class=\"table-title d-flex\"\r\n *ngIf=\"!product.showEditDelete\">\r\n <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"21\" height=\"20\"\r\n viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path\r\n d=\"M3.16602 4.99935H4.83268M4.83268 4.99935H18.166M4.83268 4.99935V16.666C4.83268 17.108 5.00828 17.532 5.32084 17.8445C5.6334 18.1571 6.05732 18.3327 6.49935 18.3327H14.8327C15.2747 18.3327 15.6986 18.1571 16.0112 17.8445C16.3238 17.532 16.4993 17.108 16.4993 16.666V4.99935H4.83268ZM7.33268 4.99935V3.33268C7.33268 2.89065 7.50828 2.46673 7.82084 2.15417C8.1334 1.84161 8.55732 1.66602 8.99935 1.66602H12.3327C12.7747 1.66602 13.1986 1.84161 13.5112 2.15417C13.8238 2.46673 13.9993 2.89065 13.9993 3.33268V4.99935M8.99935 9.16602V14.166M12.3327 9.16602V14.166\"\r\n stroke=\"#D0D5DD\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span class=\"ms-6\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"21\" height=\"20\"\r\n viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path\r\n d=\"M14.832 2.5009C15.0509 2.28203 15.3107 2.10842 15.5967 1.98996C15.8827 1.87151 16.1892 1.81055 16.4987 1.81055C16.8082 1.81055 17.1147 1.87151 17.4007 1.98996C17.6867 2.10842 17.9465 2.28203 18.1654 2.5009C18.3842 2.71977 18.5579 2.97961 18.6763 3.26558C18.7948 3.55154 18.8557 3.85804 18.8557 4.16757C18.8557 4.4771 18.7948 4.7836 18.6763 5.06956C18.5579 5.35553 18.3842 5.61537 18.1654 5.83424L6.91536 17.0842L2.33203 18.3342L3.58203 13.7509L14.832 2.5009Z\"\r\n stroke=\"#D0D5DD\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"cursor-pointer table-title d-flex\"\r\n *ngIf=\"product.showEditDelete\">\r\n <span\r\n (click)=\"addstepprice('delete',product,i)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"21\" height=\"20\"\r\n viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path\r\n d=\"M3.16602 4.99935H4.83268M4.83268 4.99935H18.166M4.83268 4.99935V16.666C4.83268 17.108 5.00828 17.532 5.32084 17.8445C5.6334 18.1571 6.05732 18.3327 6.49935 18.3327H14.8327C15.2747 18.3327 15.6986 18.1571 16.0112 17.8445C16.3238 17.532 16.4993 17.108 16.4993 16.666V4.99935H4.83268ZM7.33268 4.99935V3.33268C7.33268 2.89065 7.50828 2.46673 7.82084 2.15417C8.1334 1.84161 8.55732 1.66602 8.99935 1.66602H12.3327C12.7747 1.66602 13.1986 1.84161 13.5112 2.15417C13.8238 2.46673 13.9993 2.89065 13.9993 3.33268V4.99935M8.99935 9.16602V14.166M12.3327 9.16602V14.166\"\r\n stroke=\"#667085\"\r\n stroke-width=\"1.66667\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span (click)=\"addstepprice('edit',product,i)\"\r\n class=\"ms-6\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"21\" height=\"20\"\r\n viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path\r\n d=\"M14.832 2.5009C15.0509 2.28203 15.3107 2.10842 15.5967 1.98996C15.8827 1.87151 16.1892 1.81055 16.4987 1.81055C16.8082 1.81055 17.1147 1.87151 17.4007 1.98996C17.6867 2.10842 17.9465 2.28203 18.1654 2.5009C18.3842 2.71977 18.5579 2.97961 18.6763 3.26558C18.7948 3.55154 18.8557 3.85804 18.8557 4.16757C18.8557 4.4771 18.7948 4.7836 18.6763 5.06956C18.5579 5.35553 18.3842 5.61537 18.1654 5.83424L6.91536 17.0842L2.33203 18.3342L3.58203 13.7509L14.832 2.5009Z\"\r\n stroke=\"#667085\"\r\n stroke-width=\"1.66667\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n </td>\r\n\r\n </tr>\r\n <tr>\r\n <th>\r\n <div class=\"table-title\">Total Value</div>\r\n\r\n </th>\r\n <th>\r\n <div class=\"table-title bolddata\"> ₹\r\n {{priceValueDetails.actualPrice}}</div>\r\n\r\n </th>\r\n <th>\r\n <!-- <div class=\"table-title bolddata\"> ₹ {{priceValueDetails.negotiatePrice}}</div> -->\r\n </th>\r\n <th>\r\n <div class=\"table-title bolddata\"> ₹\r\n {{priceValueDetails.negotiatePrice}}</div>\r\n </th>\r\n <th></th>\r\n <th></th>\r\n <th>\r\n <div class=\"table-title bolddata\"> ₹\r\n {{priceValueDetails.totalNegotiatePrice}}</div>\r\n </th>\r\n <th></th>\r\n\r\n </tr>\r\n\r\n </tbody>\r\n </table>\r\n </div>\r\n\r\n <div class=\"card-body pt-14\" *ngIf=\"!priceLoading && !priceNoData\">\r\n <div class=\"d-flex flex-stack\">\r\n <div class=\"fianlvaltext me-2\">Actual Value</div>\r\n <div class=\"d-flex align-items-senter\">\r\n <span class=\"fianlvaltext\"> ₹\r\n {{priceValueDetails.totalActualPrice?.toLocaleString('en-IN')}}</span>\r\n </div>\r\n </div>\r\n <div class=\"d-flex flex-stack pt-4\">\r\n <div class=\"fianlvaltext me-2\">Discount</div>\r\n <div class=\"d-flex align-items-senter\">\r\n <span\r\n class=\"fianlvaltext\">{{priceValueDetails.discountPercentage}}%\r\n (- ₹ {{priceValueDetails.discountPrice.toFixed(2)}})</span>\r\n </div>\r\n </div>\r\n <div class=\"d-flex flex-stack pt-4\">\r\n <div class=\"fianlvaltext me-2\">Negotiated Value</div>\r\n <div class=\"d-flex align-items-senter\">\r\n <span class=\"fianlvaltext\"> ₹\r\n {{priceValueDetails.totalNegotiatePrice?.toLocaleString('en-IN')}}</span>\r\n </div>\r\n </div>\r\n <div class=\"d-flex flex-stack pt-4\">\r\n <div class=\"fianlvaltext me-2\">Tax</div>\r\n <div class=\"d-flex align-items-senter\">\r\n <span class=\"fianlvaltext\">18% GST</span>\r\n </div>\r\n </div>\r\n <hr>\r\n\r\n <div class=\"d-flex flex-stack py-2\">\r\n <div class=\"fianlvaltext me-2\">Final Value</div>\r\n <div class=\"d-flex align-items-senter\">\r\n <span class=\"fianlvaltext\"> ₹\r\n {{priceValueDetails.finalValue?.toLocaleString('en-IN')}}</span>\r\n </div>\r\n </div>\r\n\r\n <hr>\r\n\r\n <div data-kt-subscription-table-toolbar=\"base\"\r\n class=\"d-flex justify-content-end py-3\"><a type=\"submit\"\r\n class=\"btn-outline btn needhelp me-4 mt-3\"\r\n (click)=\"revertOriginalPrice()\">Cancel</a><a\r\n (click)=\"pricingrevised()\" type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-primary px-4 mt-3 ng-star-inserted\"><span>Save\r\n </span></a></div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- pricing tab plan end -->\r\n\r\n\r\n\r\n <!-- submit plan start -->\r\n <div *ngIf=\"plan === 'storesubscription'\" class=\"row\">\r\n <div class=\"col-lg-8\">\r\n </div>\r\n <div class=\"col-lg-4\">\r\n <div data-kt-subscription-table-toolbar=\"base\"\r\n class=\"d-flex justify-content-end py-3\"><a type=\"submit\"\r\n class=\"btn-outline btn needhelp me-4 mt-3\">Cancel</a><a\r\n (click)=\"pricingrevised()\" type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-primary px-4 mt-3 ng-star-inserted\"\r\n *ngIf=\"(gs.userAccess | async)?.settings_paymentSubscriptions_isEdit\"><span>Apply\r\n Changes\r\n </span></a></div>\r\n </div>\r\n\r\n </div>\r\n <!-- submit plan end -->\r\n </div>\r\n </div>\r\n </div>\r\n <!-- product info end -->\r\n\r\n <!-- payment invoice start -->\r\n <div class=\"col-xl-12 my-4 billingcard\"\r\n *ngIf=\"(gs.userAccess | async)?.userType === 'tango' && (gs.userAccess | async)?.settings_paymentSubscriptions_isView\">\r\n <form [formGroup]=\"paymentinvoiceform\">\r\n <div class=\"d-flex justify-content-between ps-4 pt-6\">\r\n <!--begin::Title-->\r\n <h3 class=\"align-items-start flex-column\">\r\n <span class=\"heading mb-2\">Payment and Invoice</span>\r\n </h3>\r\n <!--end::Title-->\r\n\r\n <!--begin::Toolbar-->\r\n <div class=\"card-toolbar mb-2\" *ngIf=\"paymentinvoiceshow\">\r\n <button (click)=\"onpaymentedit()\" type=\"submit\"\r\n class=\"btn-outline btn align-items-end needhelp me-4\"><span\r\n class=\"me-2\"\r\n *ngIf=\"(gs.userAccess | async)?.settings_paymentSubscriptions_isEdit\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2579_25125)\">\r\n <path\r\n d=\"M14.167 2.49993C14.3859 2.28106 14.6457 2.10744 14.9317 1.98899C15.2176 1.87054 15.5241 1.80957 15.8337 1.80957C16.1432 1.80957 16.4497 1.87054 16.7357 1.98899C17.0216 2.10744 17.2815 2.28106 17.5003 2.49993C17.7192 2.7188 17.8928 2.97863 18.0113 3.2646C18.1297 3.55057 18.1907 3.85706 18.1907 4.16659C18.1907 4.47612 18.1297 4.78262 18.0113 5.06859C17.8928 5.35455 17.7192 5.61439 17.5003 5.83326L6.25033 17.0833L1.66699 18.3333L2.91699 13.7499L14.167 2.49993Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2579_25125\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>Edit Details</button>\r\n </div>\r\n <!--end::Toolbar-->\r\n </div>\r\n <!-- payment invoice form start -->\r\n <div class=\"d-flex flex-column row fv-row fv-plugins-icon-container py-4 px-4\">\r\n\r\n <div class=\"row\">\r\n <div class=\"col-lg-6\">\r\n <div class=\"form-group pt-1\">\r\n <label for=\"paymentcycle\" class=\"headingtext mb-2\">Enable Pro-Rate\r\n for Charges</label>\r\n <div class=\"d-flex mt-3\">\r\n <div class=\"form-check form-check-inline ps-0\"\r\n (click)=\"pricingType($event, 'before15')\">\r\n <input formControlName=\"radiooptions\"\r\n class=\"radio-custom cursor-pointer radioButton\"\r\n type=\"radio\" id=\"inlineRadio1\" value=\"before15\"\r\n name=\"radiooptions\">\r\n <label\r\n class=\"form-check-label radio-custom-label mx-3 headingtext cursor-pointer\"\r\n for=\"inlineRadio1\">Before 15th of Month</label>\r\n </div>\r\n <div class=\"form-check form-check-inline ps-0\"\r\n (click)=\"pricingType($event, 'after15')\">\r\n <input class=\"radio-custom cursor-pointer radioButton\"\r\n type=\"radio\" formControlName=\"radiooptions\"\r\n id=\"inlineRadio2\" value=\"after15\" name=\"radiooptions\"\r\n readonly>\r\n <label\r\n class=\"form-check-label headingtext radio-custom-label mx-3 cursor-pointer\"\r\n for=\"inlineRadio1\">After 15th of Month</label>\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n <div class=\"form-group pt-6\">\r\n <label for=\"paymentcycle\" class=\"headingtext mb-2\">Payment\r\n Cycle</label>\r\n\r\n <div class=\"position-relative\">\r\n <div class=\"form-select dropselect\" id=\"paymentcycle\"\r\n (click)=\"openDropdown($event)\"\r\n aria-label=\"Default select example\">{{selectedIssue !== '' ?\r\n selectedIssue === 'monthly'\r\n ? 'Monthly' : selectedIssue === 'quaterly' ?\r\n 'Quaterly' : 'Annual' : ''}}</div>\r\n <div *ngIf=\"dropDown && !paymentinvoiceshow\"\r\n class=\"card py-2 w-100 position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let item of dropdownItems\"\r\n class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"this.selectedIssue === item.value ? 'active' : ''\"\r\n class=\"producttext px-5 items cursor-pointer py-4\"\r\n (click)=\"selectItem(item.value)\">{{item.name}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group pt-6\">\r\n <label for=\"invoiceTo\" class=\"headingtext mb-2\">Generate\r\n Invoice To <span> <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2706_25324)\">\r\n <path\r\n d=\"M7.99967 10.6663V7.99967M7.99967 5.33301H8.00634M14.6663 7.99967C14.6663 11.6816 11.6816 14.6663 7.99967 14.6663C4.31778 14.6663 1.33301 11.6816 1.33301 7.99967C1.33301 4.31778 4.31778 1.33301 7.99967 1.33301C11.6816 1.33301 14.6663 4.31778 14.6663 7.99967Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2706_25324\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span></label>\r\n\r\n <div class=\"outer-container\">\r\n <div class=\" input-container form-control\">\r\n <ng-container\r\n *ngFor=\"let invoiceTo of generateinvoiceList; let i = index\">\r\n\r\n <span class=\"chip\">\r\n <span class=\"me-3\">{{invoiceTo}}</span>\r\n <span class=\"cursor-pointer\" *ngIf=\"paymentinvoiceform.enabled\"\r\n (click)=\"removeChip(i)\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"\r\n fill=\"none\">\r\n <path d=\"M9 3L3 9M3 3L9 9\" stroke=\"#667085\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </span>\r\n </ng-container>\r\n <input style=\"min-height: 44px;\" formControlName=\"invoiceTo\"\r\n (keydown)=\"onKeyDown($event)\" type=\"text\">\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group pt-6\">\r\n <label for=\"invoiceCC\" class=\"headingtext mb-2\">Generate Invoice\r\n CC</label>\r\n\r\n <div class=\"outer-container\">\r\n <div class=\" input-container form-control\">\r\n <ng-container\r\n *ngFor=\"let invoiceCC of generateinvoiceCCList; let i = index\">\r\n\r\n <span class=\"chip\">\r\n <span class=\"me-3\">{{invoiceCC}}</span>\r\n <span *ngIf=\"paymentinvoiceform.enabled\"\r\n (click)=\"removeChipcc(i)\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"\r\n fill=\"none\">\r\n <path d=\"M9 3L3 9M3 3L9 9\" stroke=\"#667085\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </span>\r\n </ng-container>\r\n <input style=\"min-height: 44px;\" formControlName=\"invoiceCC\"\r\n (keydown)=\"onKeyDowncc($event)\" type=\"text\">\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group pt-6\">\r\n <label for=\"generateinvoiceon\" class=\"headingtext mb-2\">Generate\r\n Invoice\r\n On\r\n </label>\r\n <div class=\"position-relative\">\r\n <div class=\"form-select dropselect\" id=\"generateinvoiceon\"\r\n (click)=\"invoiceDropdown($event)\"\r\n aria-label=\"Default select example\">{{invoiceonIssue !== ''\r\n ? invoiceonIssue === 'lastday' ? 'Last Day of the Month'\r\n :'25th of the Month':''}}\r\n </div>\r\n <div *ngIf=\"invoicedropDown && !paymentinvoiceshow\"\r\n class=\"card py-2 w-100 position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let invoiceitem of generateinvoiceon\"\r\n class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"this.invoiceonIssue === invoiceitem.value ? 'active' : ''\"\r\n class=\"producttext px-5 items cursor-pointer py-4\"\r\n (click)=\"invoiceItem(invoiceitem.value)\">\r\n {{invoiceitem.name}}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-6\">\r\n <div class=\"form-group pt-1\">\r\n <label for=\"paymenttype\" class=\"headingtext mb-2\">Payment\r\n Type</label>\r\n <div class=\"position-relative\">\r\n <div class=\"form-select dropselect\" id=\"paymenttype\"\r\n (click)=\"paymenttypeDropdown($event)\"\r\n aria-label=\"Default select example\">{{paymentIssue !== '' ?\r\n paymentIssue === 'online' ? 'Online Payment' : 'Bank\r\n Transfer' :''}}</div>\r\n <div *ngIf=\"paymenttypedropDown && !paymentinvoiceshow\"\r\n class=\"card py-2 w-100 position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let paymentitem of paymenttype\"\r\n class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"this.paymentIssue === paymentitem.value ? 'active' : ''\"\r\n class=\"producttext px-5 items cursor-pointer py-4\"\r\n (click)=\"paymentItem(paymentitem.value)\">\r\n {{paymentitem.name}}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group pt-7\">\r\n <label for=\"currency\" class=\"headingtext mb-2\">Currency</label>\r\n <div class=\"position-relative\">\r\n <div class=\"form-select dropselect\" id=\"currency\"\r\n (click)=\"currencyDropdown($event)\"\r\n aria-label=\"Default select example\">{{currencyIssue !== ''\r\n ? currencyIssue === 'inr' ? 'INR' :'Dollar' : ''}}</div>\r\n <div *ngIf=\"currencydropDown && !paymentinvoiceshow\"\r\n class=\"card py-2 w-100 position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let currencyitem of currencytype\"\r\n class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"this.currencyIssue === currencyitem.value ? 'active' : ''\"\r\n class=\"producttext px-5 items cursor-pointer py-4\"\r\n (click)=\"currencyItem(currencyitem.value)\">\r\n {{currencyitem.name}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group pt-6\">\r\n <label for=\"sendpayment\" class=\"headingtext mb-2\">Send Payment\r\n Agreement<span class=\"ms-2\"> <svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2706_25324)\">\r\n <path\r\n d=\"M7.99967 10.6663V7.99967M7.99967 5.33301H8.00634M14.6663 7.99967C14.6663 11.6816 11.6816 14.6663 7.99967 14.6663C4.31778 14.6663 1.33301 11.6816 1.33301 7.99967C1.33301 4.31778 4.31778 1.33301 7.99967 1.33301C11.6816 1.33301 14.6663 4.31778 14.6663 7.99967Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2706_25324\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span></label>\r\n\r\n\r\n <div class=\"outer-container\">\r\n <div class=\" input-container form-control\">\r\n <ng-container\r\n *ngFor=\"let paymentAgreementTo of paymentallowedList; let i = index\">\r\n <span class=\"chip\">\r\n <span class=\"me-3\">{{paymentAgreementTo}}</span>\r\n <span class=\"cursor-pointer\" *ngIf=\"paymentinvoiceform.enabled\"\r\n (click)=\"sendpaymentremoveChip(i)\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"\r\n fill=\"none\">\r\n <path d=\"M9 3L3 9M3 3L9 9\" stroke=\"#667085\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </span>\r\n </ng-container>\r\n <input style=\"min-height: 44px;\"\r\n formControlName=\"paymentAgreementTo\"\r\n (keydown)=\"sendpaymentonKeyDown($event)\" type=\"text\">\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group pt-6\">\r\n <label for=\"sendpayment\" class=\"headingtext mb-2\">POM Number\r\n </label>\r\n\r\n\r\n <div class=\"outer-container\">\r\n <div class=\" input-container form-control\">\r\n\r\n <input style=\"min-height: 44px;\"\r\n formControlName=\"paymentAgreementTo\" type=\"text\">\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group pt-6\">\r\n <label for=\"extendPaymentPeriodDays\"\r\n class=\" headingtext mb-2\">Extend Payment\r\n Period Days </label>\r\n <div class=\"w-lg-100 position-relative\">\r\n <div\r\n class=\"position-absolute translate-middle-y top-50 me-5 ps-3 ticketDays\">\r\n <span class=\"svg-icon toggle-off svg-icon-1\"\r\n (click)=\"paymentinvoiceform.enabled && paymentinvoiceform.get('extendPaymentPeriodDays')?.value > 0 ? paymentinvoiceform.get('extendPaymentPeriodDays')?.setValue(paymentinvoiceform.get('extendPaymentPeriodDays')?.value - 1) : null\">\r\n <!-- (click)=\"paymentinvoiceform.enabled ? paymentinvoiceform.get('extendPaymentPeriodDays')?.setValue(paymentinvoiceform.get('extendPaymentPeriodDays')?.value - 1) : null\" -->\r\n\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\"\r\n height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M4.16699 10H15.8337\" stroke=\"#667085\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <input type=\"text\" class=\"form-control\"\r\n id=\"extendPaymentPeriodDays\" readonly\r\n formControlName=\"extendPaymentPeriodDays\"\r\n [(ngModel)]=\"extendPaymentPeriodDays\"\r\n style=\"text-align: center;\" autocomplete=\"off\" />\r\n <div\r\n class=\"position-absolute translate-middle-y top-50 end-0 me-3\">\r\n <span class=\"svg-icon toggle-on svg-icon-1 ticketDays\"\r\n (click)=\"paymentinvoiceform.enabled ? paymentinvoiceform.get('extendPaymentPeriodDays')?.setValue(paymentinvoiceform.get('extendPaymentPeriodDays')?.value + 1) : null\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\"\r\n height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\">\r\n <path\r\n d=\"M8.49967 3.33301V12.6663M3.83301 7.99967H13.1663\"\r\n stroke=\"#667085\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n <div class=\"d-flex justify-content-end mt-6\" *ngIf=\"!paymentinvoiceshow\">\r\n <div data-kt-subscription-table-toolbar=\"base\"\r\n class=\"d-flex justify-content-end\"><a type=\"submit\"\r\n class=\"btn-outline btn needhelp me-4\"\r\n (click)=\"onpaymentCancel()\">Cancel</a><button type=\"button\"\r\n tabindex=\"0\" class=\"btn btn-primary px-4 ng-star-inserted\"\r\n (click)=\"onpaymentSubmit()\"\r\n *ngIf=\"(gs.userAccess | async)?.settings_paymentSubscriptions_isEdit\"><span>Apply\r\n Changes\r\n </span></button></div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <!-- payment invoice form end -->\r\n\r\n </form>\r\n </div>\r\n <!-- payment invoice end -->\r\n\r\n </ng-template>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <!-- subscription config End -->\r\n\r\n <!--Invoices start -->\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_paymentSubscriptions_isView\">\r\n <div class=\"card mt-6\" ngbAccordionItem>\r\n <div class=\"d-flex\" ngbAccordionHeader>\r\n <button class=\"mainheading\" ngbAccordionButton>Invoices <div class=\"divider\"></div>\r\n </button>\r\n </div>\r\n <div ngbAccordionCollapse>\r\n <div ngbAccordionBody>\r\n <ng-template>\r\n <div class=\"card-header paymenthistory\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"card-label mb-2\">Payment History</span>\r\n </h3>\r\n <div class=\"card-toolbar\">\r\n <div class=\"d-flex\">\r\n <div class=\"d-flex align-items-center position-relative my-1\">\r\n <span class=\"svg-icon invoicesearch svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\">\r\n <rect opacity=\"0.5\" x=\"17.0365\" y=\"15.1223\" width=\"8.15546\"\r\n height=\"2\" rx=\"1\" transform=\"rotate(45 17.0365 15.1223)\"\r\n fill=\"currentColor\">\r\n </rect>\r\n <path\r\n d=\"M11 19C6.55556 19 3 15.4444 3 11C3 6.55556 6.55556 3 11 3C15.4444 3 19 6.55556 19 11C19 15.4444 15.4444 19 11 19ZM11 5C7.53333 5 5 7.53333 5 11C5 14.4667 7.53333 17 11 17C14.4667 17 17 14.4667 17 11C17 7.53333 14.4667 5 11 5Z\"\r\n fill=\"currentColor\"></path>\r\n </svg>\r\n </span>\r\n <input [(ngModel)]=\"searchInput\" type=\"text\"\r\n class=\"form-control ps-14 me-4 invoicesearch\"\r\n placeholder=\"Search...\" autocomplete=\"off\" (change)=\"searchField()\"\r\n [disabled]=\"searchDisabled\" />\r\n\r\n <div class=\"me-3 monthwidth\">\r\n <div class=\"dropdown invheader\">\r\n <select class=\"form-select invheader\"\r\n aria-label=\"Default select example\" [(ngModel)]=\"isFilter\"\r\n (change)=\"invoiceFilter()\">\r\n <option value=\"current\">Current Month</option>\r\n <option value=\"prev\">Previous Month</option>\r\n <option value=\"last\">Last 3 Months</option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <button (click)=\"creditnote()\" type=\"button\"\r\n class=\"btn-outline btn align-items-end invheader text-nowrap me-4\"\r\n *ngIf=\"(gs.userAccess | async)?.userType === 'tango' && (gs.userAccess | async)?.settings_paymentSubscriptions_isEdit\"\r\n [disabled]=\"!invoiceList.length\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\"\r\n viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path d=\"M10.4993 4.16675V15.8334M4.66602 10.0001H16.3327\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg><span>Credit Note</span> </button>\r\n <button type=\"button\" (click)=\"onExport()\"\r\n class=\"btn-outline btn align-items-end text-nowrap invheader me-4\"\r\n *ngIf=\"(gs.userAccess | async)?.settings_paymentSubscriptions_isDownload\"\r\n [disabled]=\"!invoiceList.length\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg><span class=\"ms-2\"></span> Export</button>\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"invoiceLoading\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"invoiceNoData\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div\r\n class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div *ngIf=\"!invoiceLoading && !invoiceNoData\" class=\"table-responsive\">\r\n <table class=\"table bottom-border\">\r\n <thead>\r\n <tr>\r\n <th>\r\n <div (click)=\"sortData()\">\r\n Invoice #\r\n <span class=\"cursor-pointer\"\r\n *ngIf=\"sortColumName === 'invoice' && sortBy !== 1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span class=\"cursor-pointer\"\r\n *ngIf=\"sortColumName === 'invoice' && sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n </th>\r\n <th>Billing date</th>\r\n <th>Stores</th>\r\n <th *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\">Products</th>\r\n <th>Amount</th>\r\n <th *ngIf=\"(gs.userAccess | async)?.userType !== 'tango'\">Payment Method\r\n </th>\r\n <th>Actions</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let invoice of invoiceList\">\r\n <td>\r\n <div class=\"table-title-primary invoice mb-2\">{{invoice?.invoice}}\r\n </div>\r\n <span class=\"badge badge-light-success\"\r\n *ngIf=\"['free','Payment Received'].includes(invoice?.status)\">{{invoice?.status\r\n | titlecase}}</span>\r\n <span class=\"badge badge-light-warning\"\r\n *ngIf=\"invoice?.status === 'trial'\">{{invoice?.status |\r\n titlecase}}</span>\r\n </td>\r\n <td>\r\n <div class=\"table-title\">{{invoice?.billingDate}} </div>\r\n\r\n </td>\r\n <td>\r\n <div class=\"table-title\">{{invoice?.stores}}</div>\r\n\r\n </td>\r\n\r\n <td *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\"><span\r\n *ngFor=\"let product of invoice?.productList; let i = index\"><span\r\n [class]=\"getColorClass(product)\"\r\n *ngIf=\"i<2\">{{product}}</span></span><span\r\n class=\"productextend\" *ngIf=\"invoice?.products.length>2\"\r\n [ngbTooltip]=\"showProduct(invoice.productList)\">+{{invoice?.products.length\r\n - 2 }}</span>\r\n </td>\r\n <td>\r\n <div class=\"table-title\"><span *ngIf=\"clientinfo?.currentPlanInfo?.currencyType === 'inr'\"></span><span *ngIf=\"clientinfo?.currentPlanInfo?.currencyType === 'dollar'\">$</span> {{invoice.amount ?\r\n invoice?.amount?.toLocaleString('en-IN') : invoice.status |\r\n titlecase }}</div>\r\n </td>\r\n <td *ngIf=\"(gs.userAccess | async)?.userType !== 'tango'\">\r\n <div class=\"table-title\">{{invoice?.paymentMethod || '--' }}</div>\r\n </td>\r\n <td>\r\n <span class=\"pointer\" (click)=\"downloadInvoice(invoice)\"><svg\r\n class=\"mt-3\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\"\r\n height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M5.83333 8.33333L10 12.5M10 12.5L14.1667 8.33333M10 12.5V2.5\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </td>\r\n\r\n </tr>\r\n </tbody>\r\n </table>\r\n <lib-pagination class=\"text-start\" [itemsPerPage]=\"itemsPerPage\"\r\n [currentPage]=\"currentPage\" [totalItems]=\"totalItems\"\r\n [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\"\r\n (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <!--Invoices end -->\r\n </div>\r\n </div>","import { Directive, EventEmitter, HostListener, Output } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[libDnd]',\r\n standalone: false\r\n})\r\nexport class DndDirective {\r\n fileover: boolean;\r\n @Output() fileDropped: EventEmitter<any> = new EventEmitter()\r\n\r\n @HostListener('dragover', ['$event']) onDragOver(evt: any) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n }\r\n @HostListener('drag leave', ['$event']) public onDragLeave(evt: any) {\r\n\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n }\r\n @HostListener('drop', ['$event']) public ondrop(evt: any) {\r\n\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n this.fileover = false;\r\n const files = evt.dataTransfer.files;\r\n if (files.length > 0) {\r\n this.fileDropped.emit(files)\r\n }\r\n }\r\n}\r\n","import { ChangeDetectorRef, Component, ElementRef, OnDestroy, ViewChild } from '@angular/core';\r\nimport { FormGroup, FormBuilder } from '@angular/forms';\r\nimport { ClientApiService } from '../../../services/client-api.service';\r\nimport * as XLSX from 'xlsx';\r\nimport { Subject, map, takeUntil } from 'rxjs';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\n\r\n\r\n@Component({\r\n selector: 'lib-audit-configuration',\r\n templateUrl: './audit-configuration.component.html',\r\n styleUrl: './audit-configuration.component.scss'\r\n})\r\nexport class AuditConfigurationComponent implements OnDestroy {\r\n\r\n auditConfigForm: FormGroup\r\n isMultiple: boolean = false\r\n @ViewChild('bulkUploadInput') bulkUploadInput: ElementRef<HTMLElement>;\r\n bulkAddData: any;\r\n fileName: any;\r\n fileUploadTemplate: string\r\n storeList: any;\r\n selectedStore: any;\r\n private readonly destroy$ = new Subject();\r\n clientId: string;\r\n\r\n\r\n\r\n\r\n constructor(private fb: FormBuilder, private apiService: ClientApiService, private cd: ChangeDetectorRef, private toast: ToastService, public gs:GlobalStateService) {\r\n this.initForm()\r\n this.apiService.clientFormData.pipe(takeUntil(this.destroy$)).subscribe((res) => {\r\n if (res) {\r\n if (res.type === 'input' && res.form === 'audit-configuration') {\r\n this.patchForm(res.value)\r\n }\r\n }\r\n })\r\n\r\n this.apiService.clientData.pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if (e) {\r\n this.clientId = e.clientId\r\n this.getStoresList(e.clientId)\r\n }\r\n })\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n\r\n initForm() {\r\n this.auditConfigForm = this.fb.group({\r\n storeId: [''],\r\n count: [''],\r\n iteration: [''],\r\n ratio: [''],\r\n });\r\n this.auditConfigForm.disable()\r\n }\r\n\r\n\r\n getStoresList(clientId: string) {\r\n this.apiService.getStoreList(clientId).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (res) => {\r\n this.storeList = res.data.result\r\n this.selectedStore = this.storeList[0]\r\n this.getAuditData(this.storeList[0]?.storeId)\r\n },\r\n error: (err) => {\r\n }\r\n })\r\n }\r\n\r\n getAuditData(storeId: string) {\r\n this.apiService.getAuditConfig(storeId).pipe(takeUntil(this.destroy$)).pipe(map((val) => {\r\n if (val?.data?.auditConfigs?.ratio) {\r\n val.data.auditConfigs.ratio = this.normalizeNumber(val.data.auditConfigs.ratio)\r\n }\r\n return val\r\n })).subscribe({\r\n next: (res) => {\r\n this.patchForm({ ...res.data.auditConfigs, storeId: res.data.storeId })\r\n this.fileUploadTemplate = res.data.templateUrl\r\n this.cd.detectChanges()\r\n },\r\n error: (err) => {\r\n }\r\n })\r\n }\r\n\r\n normalizeNumber(num: number) {\r\n return Math.min(100, Math.max(0, Math.round(num * 100)));\r\n }\r\n\r\n\r\n patchForm(data: any) {\r\n this.auditConfigForm.patchValue(\r\n {\r\n ...data,\r\n },\r\n { emitEvent: false, onlySelf: true }\r\n )\r\n }\r\n\r\n triggerBulkUploadInput() {\r\n this.bulkUploadInput.nativeElement.click()\r\n }\r\n\r\n onBulkInputChange(event: any) {\r\n let data: any = [];\r\n const target: DataTransfer = <DataTransfer>(event.target);\r\n const reader: FileReader = new FileReader();\r\n reader.readAsBinaryString(target.files[0]);\r\n reader.onload = (e: any) => {\r\n const bstr: string = e.target.result;\r\n const wb: XLSX.WorkBook = XLSX.read(bstr, { type: 'binary' });\r\n const wsname: string = wb.SheetNames[0];\r\n const ws: XLSX.WorkSheet = wb.Sheets[wsname];\r\n if (wb.SheetNames[0] != 'data') {\r\n this.toast.getErrorToast('Invalid file')\r\n } else {\r\n data = XLSX.utils.sheet_to_json(ws);\r\n data = data.slice(1)\r\n this.fileName = event.target.files[0].name\r\n this.bulkAddData = data\r\n this.cd.detectChanges()\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n onStoreChange(event: any) {\r\n this.selectedStore = event\r\n this.getAuditData(event.storeId)\r\n }\r\n\r\n\r\n\r\n onCancel() {\r\n this.apiService.clientFormData.next({ value: null, type: 'cancel', form: 'audit-configuration' })\r\n this.auditConfigForm.disable()\r\n }\r\n\r\n onSubmit() {\r\n if (!this.isMultiple) {\r\n this.auditConfigForm.value.storeId = this.selectedStore.storeId\r\n this.apiService.updateauditConfiguration([this.auditConfigForm.value], this.clientId).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (e) => {\r\n this.toast.getSuccessToast(e.data?.result)\r\n this.apiService.clientFormData.next({ value: null, type: 'submitted', form: 'null' })\r\n },\r\n error: (e) => {\r\n this.toast.getErrorToast(e.error?.error)\r\n this.getAuditData(this.selectedStore.storeId)\r\n }\r\n })\r\n } else {\r\n this.apiService.updateauditConfiguration(this.bulkAddData, this.clientId).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (e) => {\r\n this.toast.getSuccessToast(e.data?.result)\r\n this.apiService.clientFormData.next({ value: null, type: 'submitted', form: 'null' })\r\n },\r\n error: (e) => {\r\n this.toast.getErrorToast(e.error?.error)\r\n this.fileName = null\r\n this.bulkAddData = null\r\n this.cd.detectChanges()\r\n }\r\n })\r\n }\r\n\r\n }\r\n}\r\n","<form [formGroup]=\"auditConfigForm\">\r\n <div class=\"row\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_configuration_isEdit \" >\r\n <div *ngIf=\"auditConfigForm.disabled\" class=\"col-12 mb-5\">\r\n <div class=\" d-flex justify-content-end\">\r\n <button (click)=\"auditConfigForm.disabled ? auditConfigForm.enable() : auditConfigForm.disable()\"\r\n type=\"button\" class=\"btn btn-outline align-items-end\"><span class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2579_25125)\">\r\n <path\r\n d=\"M14.167 2.49993C14.3859 2.28106 14.6457 2.10744 14.9317 1.98899C15.2176 1.87054 15.5241 1.80957 15.8337 1.80957C16.1432 1.80957 16.4497 1.87054 16.7357 1.98899C17.0216 2.10744 17.2815 2.28106 17.5003 2.49993C17.7192 2.7188 17.8928 2.97863 18.0113 3.2646C18.1297 3.55057 18.1907 3.85706 18.1907 4.16659C18.1907 4.47612 18.1297 4.78262 18.0113 5.06859C17.8928 5.35455 17.7192 5.61439 17.5003 5.83326L6.25033 17.0833L1.66699 18.3333L2.91699 13.7499L14.167 2.49993Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2579_25125\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>Edit Details</button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n </div>\r\n <div *ngIf=\"!isMultiple\" class=\"row\">\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"storeId\" class=\"form-label\">Store ID</label>\r\n <!-- <select (change)=\"onStoreChange($event)\" formControlName=\"storeId\" id=\"storeId\" class=\"form-select \"\r\n aria-label=\"Default select example\">\r\n <option *ngFor=\"let store of storeList\" [value]=\"store.storeId\">{{store.storeName}}</option>\r\n </select> -->\r\n <lib-select [items]=\"storeList\" [multi]=\"false\" [label]=\"'Stores'\" [searchField]=\"'storeName'\"\r\n [idField]=\"'storeId'\" [disabled]=\"auditConfigForm.get('storeId')?.disabled\"\r\n [selectedValues]=\"[selectedStore]\" (selected)=\"onStoreChange($event)\"></lib-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"iteration\" class=\"form-label\">No of times for re-audit <span\r\n class=\"alert-required\"></span></label>\r\n <input formControlName=\"iteration\" type=\"number\" class=\"form-control disabled-input\" id=\"iteration\"\r\n autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"ratio\" class=\"form-label\">Mapping Percentage <span class=\"alert-required\"></span></label>\r\n <input formControlName=\"ratio\" type=\"number\" class=\"form-control disabled-input\" id=\"ratio\"\r\n autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"count\" class=\"form-label\">Audit Count / Store <span class=\"alert-required\"></span></label>\r\n <input formControlName=\"count\" type=\"number\" class=\"form-control disabled-input\" id=\"count\"\r\n autocomplete=\"off\">\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n <div *ngIf=\"isMultiple\" class=\"row g-0\">\r\n <div class=\"col-5 mb-5 d-flex align-items-center\">\r\n <ul>\r\n <li class=\"mb-2\">\r\n 1. Use the template to upload multiple stores at once.\r\n </li>\r\n <li class=\"mb-2 d-flex\">\r\n 2. Download the template here - <a [href]=\"fileUploadTemplate\" class=\"d-flex\" href=\"\">\r\n <svg class=\"me-2\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M5.83333 8.33333L10 12.5M10 12.5L14.1667 8.33333M10 12.5V2.5\"\r\n stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n Download Template\r\n </a>\r\n </li>\r\n <li class=\"mb-2\">\r\n 3. Add your data to the Template File\r\n </li>\r\n <li class=\"mb-2\">\r\n 4. Upload it on the right for processing\r\n </li>\r\n </ul>\r\n\r\n </div>\r\n <div class=\"col-2 d-flex justify-content-center align-items-center mb-5\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"1\" height=\"76\" viewBox=\"0 0 1 76\" fill=\"none\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M1 2.74181e-06L1 76H0L0 2.74181e-06H1Z\"\r\n fill=\"#EAECF0\" />\r\n </svg>\r\n </div>\r\n <div class=\"col-5 mb-5\">\r\n\r\n <div class=\"drop-zone\" libDnd (fileDropped)=\"triggerBulkUploadInput()\">\r\n <svg class=\"mb-2\" width=\"46\" height=\"46\" viewBox=\"0 0 46 46\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"3\" y=\"3\" width=\"40\" height=\"40\" rx=\"20\" fill=\"#F2F4F7\" />\r\n <rect x=\"3\" y=\"3\" width=\"40\" height=\"40\" rx=\"20\" stroke=\"#F9FAFB\" stroke-width=\"6\" />\r\n <g clip-path=\"url(#clip0_4213_43399)\">\r\n <path\r\n d=\"M26.3335 26.3332L23.0002 22.9999M23.0002 22.9999L19.6669 26.3332M23.0002 22.9999V30.4999M29.9919 28.3249C30.8047 27.8818 31.4467 27.1806 31.8168 26.3321C32.1868 25.4835 32.2637 24.5359 32.0354 23.6388C31.807 22.7417 31.2865 21.9462 30.5558 21.3778C29.8251 20.8094 28.9259 20.5005 28.0002 20.4999H26.9502C26.698 19.5243 26.2278 18.6185 25.5752 17.8507C24.9225 17.0829 24.1042 16.4731 23.182 16.0671C22.2597 15.661 21.2573 15.4694 20.2503 15.5065C19.2433 15.5436 18.2578 15.8085 17.3679 16.2813C16.4779 16.7541 15.7068 17.4225 15.1124 18.2362C14.518 19.05 14.1158 19.9879 13.936 20.9794C13.7563 21.9709 13.8036 22.9903 14.0746 23.961C14.3455 24.9316 14.8329 25.8281 15.5002 26.5832\"\r\n stroke=\"#475467\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_4213_43399\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" transform=\"translate(13 13)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <div class=\"mb-2\">\r\n <a (click)=\"triggerBulkUploadInput()\">Click to upload</a> \r\n <span class=\"t1\">or drag and drop</span>\r\n </div>\r\n <div class=\"mb-2\">the data added template file for processing.</div>\r\n <ng-container *ngIf=\"fileName\">\r\n <div class=\"mb-2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"320\" height=\"1\" viewBox=\"0 0 320 1\" fill=\"none\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M320 1H0V0H320V1Z\" fill=\"#EAECF0\" />\r\n </svg>\r\n </div>\r\n <div class=\"mb-2 d-flex align-items-center\">\r\n <svg class=\"me-2\" width=\"37\" height=\"36\" viewBox=\"0 0 37 36\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"2.5\" y=\"2\" width=\"32\" height=\"32\" rx=\"16\" fill=\"#DAF1FF\" />\r\n <rect x=\"2.5\" y=\"2\" width=\"32\" height=\"32\" rx=\"16\" stroke=\"#EAF8FF\" stroke-width=\"4\" />\r\n <path\r\n d=\"M19.167 11.333H14.5003C14.1467 11.333 13.8076 11.4735 13.5575 11.7235C13.3075 11.9736 13.167 12.3127 13.167 12.6663V23.333C13.167 23.6866 13.3075 24.0258 13.5575 24.2758C13.8076 24.5259 14.1467 24.6663 14.5003 24.6663H22.5003C22.8539 24.6663 23.1931 24.5259 23.4431 24.2758C23.6932 24.0258 23.8337 23.6866 23.8337 23.333V15.9997M19.167 11.333L23.8337 15.9997M19.167 11.333V15.9997H23.8337\"\r\n stroke=\"#00A3FF\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"t3\">{{fileName}}</span>\r\n </div>\r\n </ng-container>\r\n\r\n </div>\r\n <input [disabled]=\"auditConfigForm.disabled\" (change)=\"onBulkInputChange($event)\" class=\"d-none\"\r\n #bulkUploadInput type=\"file\"\r\n accept=\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel\">\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"auditConfigForm.enabled\">\r\n <div class=\"d-flex justify-content-end\">\r\n <a type=\"button\" class=\"btn btn-outline me-4\" (click)=\"onCancel()\">Cancel</a>\r\n <a type=\"submit\" class=\"btn btn-primary px-4 \" (click)=\"onSubmit()\"><span>Save Changes</span></a>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-start g-0 mb-2 mt-2\">\r\n <div class=\"col-5\">\r\n <hr>\r\n </div>\r\n <div class=\"col-2 text-center\">\r\n Or\r\n </div>\r\n <div class=\"col-5\">\r\n <hr>\r\n </div>\r\n </div>\r\n</form>\r\n\r\n<div class=\"switch-form-card\">\r\n <div class=\"d-flex align-items-center\">\r\n <svg class=\"me-2\" width=\"36\" height=\"36\" viewBox=\"0 0 36 36\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"2\" y=\"2\" width=\"32\" height=\"32\" rx=\"16\" fill=\"#DAF1FF\" />\r\n <rect x=\"2\" y=\"2\" width=\"32\" height=\"32\" rx=\"16\" stroke=\"#EAF8FF\" stroke-width=\"4\" />\r\n <path\r\n d=\"M24 20V22.6667C24 23.0203 23.8595 23.3594 23.6095 23.6095C23.3594 23.8595 23.0203 24 22.6667 24H13.3333C12.9797 24 12.6406 23.8595 12.3905 23.6095C12.1405 23.3594 12 23.0203 12 22.6667V20M21.3333 15.3333L18 12M18 12L14.6667 15.3333M18 12V20\"\r\n stroke=\"#00A3FF\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <div class=\"txt-one\">\r\n <ng-container *ngIf=\"!isMultiple\">Add single store for configuration</ng-container>\r\n <ng-container *ngIf=\"isMultiple\">Upload multiple stores for configuration</ng-container>\r\n </div>\r\n </div>\r\n <div>\r\n <button (click)=\"isMultiple = !isMultiple\" class=\"btn btn-outline\">Click Here</button>\r\n </div>\r\n\r\n\r\n</div>","import { Component, OnDestroy} from '@angular/core';\r\nimport { FormGroup, FormBuilder } from '@angular/forms';\r\nimport { ClientApiService } from '../../../services/client-api.service';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\n\r\n@Component({\r\n selector: 'lib-ticket-configuration',\r\n templateUrl: './ticket-configuration.component.html',\r\n styleUrl: './ticket-configuration.component.scss'\r\n})\r\nexport class TicketConfigurationComponent implements OnDestroy {\r\n\r\n\r\n ticketConfigurationForm: FormGroup\r\n private readonly destroy$ = new Subject();\r\n\r\n downTimeType = [\r\n { value:0 , label: \"Single camera\" },\r\n { value:1 , label: \"All cameras\" },\r\n ]\r\n\r\n infraDownTime = [\r\n { value:1 , label: \"1 Hr\" },\r\n { value:2 , label: \"2 Hrs\" },\r\n { value:3 , label: \"3 Hrs\" },\r\n { value:4 , label: \"4 Hrs\" },\r\n { value:5 , label: \"5 Hrs\" },\r\n { value:6 , label: \"6 Hrs\" },\r\n { value:7 , label: \"7 Hrs\" },\r\n { value:8 , label: \"8 Hrs\" },\r\n { value:9 , label: \"9 Hrs\" },\r\n { value:10 , label: \"10 Hrs\" },\r\n { value:11 , label: \"11 Hrs\" },\r\n { value:12 , label: \"12 Hrs\" },\r\n\r\n ]\r\n\r\n rcaTicketAssign = [\r\n { value:1 , label: \"1 Day\" },\r\n { value:2 , label: \"2 Days\" },\r\n { value:3 , label: \"3 Days\" },\r\n { value:4 , label: \"4 Days\" },\r\n { value:5 , label: \"5 Days\" },\r\n { value:6 , label: \"6 Days\" },\r\n { value:7 , label: \"7 Days\" },\r\n { value:8 , label: \"8 Days\" },\r\n { value:9 , label: \"9 Days\" },\r\n { value:10 , label: \"10 Days\" },\r\n { value:11 , label: \"11 Days\" },\r\n { value:12 , label: \"12 Days\" },\r\n\r\n ]\r\n\r\n\r\n\r\n constructor(private fb: FormBuilder, private apiService: ClientApiService, public gs:GlobalStateService) {\r\n this.initForm()\r\n this.apiService.clientFormData.pipe(takeUntil(this.destroy$)).subscribe((res) => {\r\n if (res) {\r\n if (res.type === 'input' && res.form === 'ticket-configuration') {\r\n this.patchForm(res.value)\r\n }\r\n }\r\n })\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n\r\n initForm() {\r\n this.ticketConfigurationForm = this.fb.group({\r\n installationReAssign: [0],\r\n sendToAdmin: [false],\r\n sendToUser: [false],\r\n downTimeType: [0],\r\n infraDownTime: [1],\r\n MinFilesCount: [0],\r\n rcaTicketAssign: [1],\r\n refreshAlert: [1],\r\n statusCheckAlert: [1],\r\n accuracyPercentage: [0],\r\n reTrain: [1],\r\n });\r\n this.ticketConfigurationForm.disable()\r\n }\r\n\r\n patchForm(data: any) { \r\n this.ticketConfigurationForm.patchValue(\r\n {\r\n ...data\r\n },\r\n {emitEvent: false, onlySelf: true}\r\n )\r\n\r\n }\r\n\r\n\r\n onCancel() {\r\n this.apiService.clientFormData.next({ value: null, type: 'cancel', form: 'ticket-configuration' })\r\n this.ticketConfigurationForm.disable()\r\n\r\n }\r\n\r\n onSubmit() {\r\n this.apiService.clientFormData.next({ value: this.ticketConfigurationForm.value, type: 'submit', form: 'ticket-configuration' })\r\n }\r\n\r\n\r\n\r\n}\r\n","<form [formGroup]=\"ticketConfigurationForm\">\r\n <div class=\"row\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_configuration_isEdit \" >\r\n <div *ngIf=\"ticketConfigurationForm.disabled\" class=\"col-12 mb-5\">\r\n <div class=\" d-flex justify-content-end\">\r\n <button\r\n (click)=\"ticketConfigurationForm.disabled ? ticketConfigurationForm.enable() : ticketConfigurationForm.disable()\"\r\n type=\"button\" class=\"btn btn-outline align-items-end\"><span class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2579_25125)\">\r\n <path\r\n d=\"M14.167 2.49993C14.3859 2.28106 14.6457 2.10744 14.9317 1.98899C15.2176 1.87054 15.5241 1.80957 15.8337 1.80957C16.1432 1.80957 16.4497 1.87054 16.7357 1.98899C17.0216 2.10744 17.2815 2.28106 17.5003 2.49993C17.7192 2.7188 17.8928 2.97863 18.0113 3.2646C18.1297 3.55057 18.1907 3.85706 18.1907 4.16659C18.1907 4.47612 18.1297 4.78262 18.0113 5.06859C17.8928 5.35455 17.7192 5.61439 17.5003 5.83326L6.25033 17.0833L1.66699 18.3333L2.91699 13.7499L14.167 2.49993Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2579_25125\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>Edit Details</button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <div class=\"col-12\">\r\n <div class=\"row\">\r\n <div class=\"col-6\">\r\n <div class=\"sub-header mb-7\">Installation</div>\r\n <label for=\"installationReAssign\" class=\"form-label\">Auto Re-Assign Installation tickets in days\r\n <span class=\"alert-required\"></span></label>\r\n <div style=\"position: relative;\">\r\n <svg role=\"button\"\r\n (click)=\"ticketConfigurationForm.get('installationReAssign')?.value > 0 && ticketConfigurationForm.enabled ? ticketConfigurationForm.get('installationReAssign')?.setValue(ticketConfigurationForm.get('installationReAssign')?.value - 1) : null\"\r\n class=\"dec\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path d=\"M4.16602 10H15.8327\" stroke=\"#667085\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <input readonly type=\"number\" formControlName=\"installationReAssign\"\r\n class=\"form-control inc-dec-input\" id=\"installationReAssign\" autocomplete=\"off\">\r\n <svg role=\"button\"\r\n (click)=\"ticketConfigurationForm.enabled ? ticketConfigurationForm.get('installationReAssign')?.setValue(ticketConfigurationForm.get('installationReAssign')?.value + 1) : null\"\r\n class=\"inc\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M8.00065 3.33337V12.6667M3.33398 8.00004H12.6673\" stroke=\"#667085\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 mb-7 mt-7\">\r\n <div class=\" w-100 footer-seperator\"></div>\r\n </div>\r\n <div class=\"col-12 mb-7\">\r\n <div class=\"sub-header \">Infra</div>\r\n </div>\r\n <div class=\"col-12 mb-5\">\r\n <label for=\"brandName\" class=\"form-label\">To whom should this alert be sent? <span\r\n class=\"alert-required\"></span></label>\r\n <div class=\"d-flex\">\r\n <div class=\"form-check me-12\">\r\n <input formControlName=\"sendToAdmin\" class=\"form-check-input me-2\" type=\"checkbox\" value=\"\"\r\n id=\"sendToAdmin\">\r\n <label class=\"form-check-label\" for=\"sendToAdmin\">\r\n Admin\r\n </label>\r\n </div>\r\n <div class=\"form-check\">\r\n <input formControlName=\"sendToUser\" class=\"form-check-input me-2\" type=\"checkbox\" value=\"\"\r\n id=\"flexCheckChecked\">\r\n <label class=\"form-check-label\" for=\"flexCheckChecked\">\r\n User\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <lib-reactive-select formControlName=\"downTimeType\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"downTimeType\" [label]=\"'Downtime Type'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <lib-reactive-select formControlName=\"infraDownTime\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"infraDownTime\" [label]=\"'Downtime'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"MinFilesCount\" class=\"form-label\">Files <span class=\"alert-required\"></span></label>\r\n <input type=\"number\" formControlName=\"MinFilesCount\" class=\"form-control\" id=\"MinFilesCount\"\r\n autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-12 mb-5\">\r\n <div class=\"custom-input-container\" >\r\n <div class=\"d-flex justify-content-between\">\r\n <div class=\"d-flex align-items-center\">\r\n <svg class=\"me-5\" width=\"46\" height=\"47\" viewBox=\"0 0 46 47\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"3\" y=\"3.91626\" width=\"40\" height=\"40\" rx=\"20\" fill=\"#F2F4F7\" />\r\n <rect x=\"3\" y=\"3.91626\" width=\"40\" height=\"40\" rx=\"20\" stroke=\"#F9FAFB\" stroke-width=\"6\" />\r\n <g clip-path=\"url(#clip0_2876_59590)\">\r\n <path\r\n d=\"M23.8333 15.5829L15.5 25.5829H23L22.1667 32.2496L30.5 22.2496H23L23.8333 15.5829Z\"\r\n stroke=\"#475467\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2876_59590\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" transform=\"translate(13 13.9163)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <div>\r\n <div class=\"main-heading\">RCA Ticket</div>\r\n <div class=\"sub-heading\">Set an alert, if there is no response from the store </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex align-items-center\">\r\n <lib-reactive-select formControlName=\"rcaTicketAssign\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"infraDownTime\" ></lib-reactive-select>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 mb-5\">\r\n <div class=\"custom-input-container\" >\r\n <div class=\"d-flex justify-content-between\">\r\n <div class=\"d-flex align-items-center\">\r\n <svg class=\"me-5\" width=\"46\" height=\"47\" viewBox=\"0 0 46 47\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"3\" y=\"3.91626\" width=\"40\" height=\"40\" rx=\"20\" fill=\"#F2F4F7\" />\r\n <rect x=\"3\" y=\"3.91626\" width=\"40\" height=\"40\" rx=\"20\" stroke=\"#F9FAFB\" stroke-width=\"6\" />\r\n <g clip-path=\"url(#clip0_2876_59590)\">\r\n <path\r\n d=\"M23.8333 15.5829L15.5 25.5829H23L22.1667 32.2496L30.5 22.2496H23L23.8333 15.5829Z\"\r\n stroke=\"#475467\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2876_59590\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" transform=\"translate(13 13.9163)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <div>\r\n <div class=\"main-heading\">Refresh Ticket Alert</div>\r\n <div class=\"sub-heading\">Trigger an ticket, if the issue is not resolved or in progress\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex align-items-center\">\r\n <lib-reactive-select formControlName=\"rcaTicketAssign\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"rcaTicketAssign\" ></lib-reactive-select>\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 mb-5\">\r\n <div class=\"custom-input-container\">\r\n <div class=\"d-flex justify-content-between\">\r\n <div class=\"d-flex align-items-center\">\r\n <svg class=\"me-5\" width=\"46\" height=\"47\" viewBox=\"0 0 46 47\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"3\" y=\"3.91626\" width=\"40\" height=\"40\" rx=\"20\" fill=\"#F2F4F7\" />\r\n <rect x=\"3\" y=\"3.91626\" width=\"40\" height=\"40\" rx=\"20\" stroke=\"#F9FAFB\" stroke-width=\"6\" />\r\n <g clip-path=\"url(#clip0_2876_59590)\">\r\n <path\r\n d=\"M23.8333 15.5829L15.5 25.5829H23L22.1667 32.2496L30.5 22.2496H23L23.8333 15.5829Z\"\r\n stroke=\"#475467\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2876_59590\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" transform=\"translate(13 13.9163)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <div>\r\n <div class=\"main-heading\">Status Check Alert</div>\r\n <div class=\"sub-heading\">An alert will be sent to the store employee so they can confirm\r\n whether the problem has been fixed.</div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex align-items-center\">\r\n <lib-reactive-select formControlName=\"rcaTicketAssign\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"infraDownTime\" ></lib-reactive-select>\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 mb-7 mt-7\">\r\n <div class=\" w-100 footer-seperator\"></div>\r\n </div>\r\n <div class=\"col-12 mb-7\">\r\n <div class=\"sub-header \">Data Mismatch (High Count)</div>\r\n </div>\r\n <div class=\"col-12 mb-5\">\r\n <div class=\"row\">\r\n <div class=\"col-6\">\r\n <label for=\"accuracyPercentage\" class=\"form-label\">Accuracy Percentage less than <span\r\n class=\"alert-required\"></span></label>\r\n <div style=\"position: relative;\">\r\n <input min=\"0\" max=\"100\" type=\"number\" formControlName=\"accuracyPercentage\"\r\n class=\"form-control \" id=\"accuracyPercentage\" autocomplete=\"off\">\r\n <svg class=\"inc\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"17\" viewBox=\"0 0 16 17\"\r\n fill=\"none\">\r\n <path\r\n d=\"M12.666 4.24967L3.33268 13.583M5.99935 5.24967C5.99935 6.17015 5.25316 6.91634 4.33268 6.91634C3.41221 6.91634 2.66602 6.17015 2.66602 5.24967C2.66602 4.3292 3.41221 3.58301 4.33268 3.58301C5.25316 3.58301 5.99935 4.3292 5.99935 5.24967ZM13.3327 12.583C13.3327 13.5035 12.5865 14.2497 11.666 14.2497C10.7455 14.2497 9.99935 13.5035 9.99935 12.583C9.99935 11.6625 10.7455 10.9163 11.666 10.9163C12.5865 10.9163 13.3327 11.6625 13.3327 12.583Z\"\r\n stroke=\"#667085\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <label for=\"reTrain\" class=\"form-label\">Sent to Re-training for (in days) <span\r\n class=\"alert-required\"></span></label>\r\n <div style=\"position: relative;\">\r\n <svg role=\"button\"\r\n (click)=\"ticketConfigurationForm.get('reTrain')?.value > 0 && ticketConfigurationForm.enabled ? ticketConfigurationForm.get('reTrain')?.setValue(ticketConfigurationForm.get('reTrain')?.value - 1) : null\"\r\n class=\"dec\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path d=\"M4.16602 10H15.8327\" stroke=\"#667085\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <input readonly type=\"number\" formControlName=\"reTrain\" class=\"form-control inc-dec-input\"\r\n id=\"reTrain\" autocomplete=\"off\">\r\n <svg role=\"button\"\r\n (click)=\"ticketConfigurationForm.get('reTrain')?.value < 12 && ticketConfigurationForm.enabled ? ticketConfigurationForm.get('reTrain')?.setValue(ticketConfigurationForm.get('reTrain')?.value + 1) : null\"\r\n class=\"inc\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M8.00065 3.33337V12.6667M3.33398 8.00004H12.6673\" stroke=\"#667085\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"ticketConfigurationForm.enabled\">\r\n <div class=\"mb-5 w-100 footer-seperator\"></div>\r\n <div class=\"d-flex justify-content-end\">\r\n <a type=\"button\" class=\"btn btn-outline me-4\" (click)=\"onCancel()\">Cancel</a>\r\n <a type=\"submit\" class=\"btn btn-primary px-4 \" (click)=\"onSubmit()\"><span>Save Changes</span></a>\r\n </div>\r\n </div>\r\n\r\n</form>","import { AfterViewInit, Component, Input, OnDestroy } from '@angular/core';\r\nimport { FormGroup, FormBuilder,Validators,AbstractControl } from '@angular/forms';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ClientApiService } from '../../../../services/client-api.service';\r\nimport { BehaviorSubject, switchMap, map, Subject, takeUntil } from 'rxjs';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\n\r\n@Component({\r\n selector: 'lib-add-report',\r\n templateUrl: './add-report.component.html',\r\n styleUrl: './add-report.component.scss'\r\n})\r\nexport class AddReportComponent implements AfterViewInit, OnDestroy {\r\n addReportForm: FormGroup\r\n emailList:any = []\r\n $emailInterrupt = new BehaviorSubject<string>('')\r\n clientId: string;\r\n private readonly destroy$ = new Subject();\r\n // emailValidation: { invalidEmail: boolean; } | null;\r\n emailValidation:any[] = [];\r\n\r\n\r\n constructor(private fb: FormBuilder, private apiService: ClientApiService, private activeModal: NgbActiveModal, private toaster:ToastService,) {\r\n this.initForm()\r\n this.apiService.clientData.pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if (e) {\r\n this.clientId = e?.clientId\r\n }\r\n })\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n\r\n initForm() {\r\n this.addReportForm = this.fb.group({\r\n fileName: ['',Validators.required],\r\n fileType: ['',Validators.required],\r\n email: ['',Validators.required]\r\n });\r\n }\r\n\r\n emailValidator(value:any){\r\n const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/;\r\n const valid = emailRegex.test(value);\r\n this.emailValidation.push(valid);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.addReportForm.get('email')?.valueChanges\r\n .pipe(map((value)=> value.replace(/\\n/g, '')))\r\n .pipe(\r\n switchMap((val) => { \r\n return this.$emailInterrupt.pipe(takeUntil(this.destroy$)).pipe(map((interrupt)=>{\r\n if(interrupt === 'Enter'){\r\n this.$emailInterrupt.next('')\r\n this.emailValidation=[];\r\n this.emailList.push(val)\r\n this.emailList.forEach((element:any) => {this.emailValidator(element)});\r\n this.addReportForm.get('email')?.setValue('')\r\n }else if(interrupt === 'Backspace' && !val && this.emailList.length){\r\n this.emailList.pop()\r\n }else{\r\n return val\r\n }\r\n }))\r\n })\r\n ).subscribe()\r\n \r\n }\r\n\r\n onKeyDown(event:any){\r\n this.$emailInterrupt.next(event.code)\r\n }\r\n\r\n removeChip(i:number){\r\n this.emailList.splice(i, 1) \r\n this.emailValidation=[];\r\n this.emailList.forEach((element:any) => {this.emailValidator(element)});\r\n }\r\n\r\n onCancel() {\r\n this.activeModal.close();\r\n }\r\n\r\n onSubmit() {\r\n this.apiService.addReport(this.clientId, {...this.addReportForm.value, email:this.emailList} ).pipe(takeUntil(this.destroy$)).subscribe({\r\n next:(e)=>{this.activeModal.close({type:'add'})},\r\n error:(err)=>{\r\n this.toaster.getErrorToast(err.error?.error)\r\n }\r\n })\r\n }\r\n}\r\n","<form [formGroup]=\"addReportForm\">\r\n <div class=\"row\">\r\n <div class=\"col-12 mb-5\">\r\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#DAF1FF\"/>\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#EAF8FF\" stroke-width=\"8\"/>\r\n <path d=\"M30 18H22C21.4696 18 20.9609 18.2107 20.5858 18.5858C20.2107 18.9609 20 19.4696 20 20V36C20 36.5304 20.2107 37.0391 20.5858 37.4142C20.9609 37.7893 21.4696 38 22 38H34C34.5304 38 35.0391 37.7893 35.4142 37.4142C35.7893 37.0391 36 36.5304 36 36V24M30 18L36 24M30 18V24H36M28 34V28M25 31H31\" stroke=\"#00A3FF\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg> \r\n </div>\r\n <div class=\"col-12 mb-10 header\">\r\n Add Report\r\n </div>\r\n <div class=\"col-12 mb-5\">\r\n <label for=\"fileName\" class=\"form-label\">Report Name<span class=\"alert-required\"></span></label>\r\n <input formControlName=\"fileName\" type=\"text\" class=\"form-control disabled-input\" id=\"fileName\"\r\n autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-12 mb-5\">\r\n <label for=\"fileType\" class=\"form-label\">File Type<span class=\"alert-required\"></span></label>\r\n <input formControlName=\"fileType\" type=\"text\" class=\"form-control disabled-input\" id=\"fileType\"\r\n autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12\">\r\n <label for=\"infraDownTime\" class=\"form-label\">Receivers Email <span class=\"alert-required\"></span></label>\r\n <div class=\"outer-container\">\r\n <div class=\" input-container form-control\">\r\n <ng-container *ngFor=\"let email of emailList; let i = index\">\r\n <span class=\"chip\">\r\n <span class=\"me-3\">{{email}}</span>\r\n <span *ngIf=\"addReportForm.enabled\" (click)=\"removeChip(i)\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"\r\n fill=\"none\">\r\n <path d=\"M9 3L3 9M3 3L9 9\" stroke=\"#667085\" stroke-width=\"1.5\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </span>\r\n </ng-container>\r\n <textarea rows=\"5\" formControlName=\"email\" (keydown)=\"onKeyDown($event)\"></textarea>\r\n <!-- <input style=\"min-height: 44px;\" formControlName=\"email\" (keydown)=\"onKeyDown($event)\" type=\"text\"> -->\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"emailValidation.includes(false)\" class=\"text-danger mt-3\">Invalid Email Format</div>\r\n <div class=\"col-12 mt-10\">\r\n <div class=\"row\" >\r\n <div class=\"col \">\r\n <a type=\"button\" class=\"btn btn-outline w-100 \" (click)=\"onCancel()\">Cancel</a>\r\n </div>\r\n <div class=\"col\">\r\n <button type=\"submit\" class=\"btn btn-primary w-100\" (click)=\"onSubmit()\" [disabled]=\"addReportForm.invalid || !emailList.length || emailValidation.includes(false)\"><span>Save Changes</span></button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</form>\r\n","import { AfterViewInit, ChangeDetectorRef, Component, OnDestroy } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators, FormArray, AbstractControl } from '@angular/forms';\r\nimport { BehaviorSubject, switchMap, map, Subject, takeUntil } from 'rxjs';\r\nimport { ClientApiService } from '../../../services/client-api.service';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { AddReportComponent } from './add-report/add-report.component';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\n\r\n@Component({\r\n selector: 'lib-report-configuration',\r\n templateUrl: './report-configuration.component.html',\r\n styleUrl: './report-configuration.component.scss'\r\n})\r\nexport class ReportConfigurationComponent implements AfterViewInit, OnDestroy {\r\n\r\n reportConfigurationForm: FormGroup;\r\n emailList: any = [] = [];\r\n reportList: any = [] = [];\r\n $emailInterrupt = new BehaviorSubject<string>('')\r\n clientId: string;\r\n selectedReport: any\r\n private readonly destroy$ = new Subject();\r\n emailValidation:any[] = [];\r\n noData:boolean =false;\r\n loading:boolean=true;\r\n\r\n\r\n constructor(private fb: FormBuilder, private apiService: ClientApiService, private modalService: NgbModal, private toaster:ToastService,\r\n private cd:ChangeDetectorRef, public gs:GlobalStateService) {\r\n this.reportConfigurationForm = this.fb.group({\r\n reports: this.fb.array([])\r\n });\r\n this.initForm()\r\n this.apiService.clientData.pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if (e) {\r\n this.clientId = e?.clientId\r\n this.getClientReports(this.clientId)\r\n }\r\n })\r\n }\r\n\r\n get reportsFormArray() {\r\n return this.reportConfigurationForm.get('reports') as FormArray;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n emailValidator(value:any){\r\n const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/;\r\n const valid = emailRegex.test(value);\r\n // this.emailValidation.push(valid);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.reportsFormArray.get('email')?.valueChanges\r\n .pipe(map((value)=> value.replace(/\\n/g, '').replace(/\\s/g, '')))\r\n .pipe(\r\n switchMap((val) => {\r\n return this.$emailInterrupt.pipe(takeUntil(this.destroy$)).pipe(map((interrupt) => {\r\n if (interrupt === 'Enter') {\r\n this.$emailInterrupt.next('')\r\n this.emailValidation = [];\r\n this.emailList.push(val)\r\n this.emailList.forEach((element:any) => {this.emailValidator(element)});\r\n this.reportConfigurationForm.get('email')?.setValue('')\r\n } else if (interrupt === 'Backspace' && !val && this.emailList.length) {\r\n this.emailList.pop()\r\n } else {\r\n return val\r\n }\r\n }))\r\n })\r\n ).subscribe()\r\n\r\n }\r\n\r\n\r\n initForm(): void {\r\n const reportFormGroup = this.fb.group({\r\n id:[''],\r\n reportName: ['', Validators.required],\r\n fileType: [''],\r\n email: this.fb.array([this.fb.control('', Validators.email)]),\r\n disabled: [ true ]\r\n });\r\n\r\n this.reportsFormArray.push(reportFormGroup);\r\n }\r\n \r\n patchForm(data: any): void {\r\n const reportsFormArray = this.reportConfigurationForm.get('reports') as FormArray;\r\n reportsFormArray.clear();\r\n data.forEach((report: any) => {\r\n reportsFormArray.push(this.fb.group({\r\n id:[report._id],\r\n reportName: [report.fileName],\r\n fileType: [report.fileType, Validators.required],\r\n email: this.fb.array(report.email),\r\n disabled: [ true]\r\n }));\r\n });\r\n this.reportConfigurationForm.disable();\r\n this.cd.detectChanges();\r\n }\r\n\r\n getClientReports(clientId:string): void {\r\n this.loading = true;\r\n this.reportList = [];\r\n this.apiService.getClientReports(clientId).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (res) => {\r\n if (res && res.code == 200 && res.data.length) {\r\n this.loading = false;\r\n this.noData = false;\r\n this.reportList = res.data\r\n this.selectedReport = res.data[0]\r\n }\r\n else {\r\n this.noData = true;\r\n this.loading = false;\r\n }\r\n this.patchForm(this.reportList);\r\n this.cd.detectChanges()\r\n },\r\n error: (err) => {\r\n this.loading = false;\r\n this.noData = true;\r\n }\r\n })\r\n }\r\n\r\n onKeyDown(event: any,index:any) {\r\n if(event.code == 'Backspace' && event.target.value == '') {\r\n let emailLen:any = ((this.reportConfigurationForm.get('reports') as FormArray).at(index)).get('email')?.value.length;\r\n (((this.reportConfigurationForm.get('reports') as FormArray).at(index)).get('email') as FormArray).removeAt(emailLen-1);\r\n event.target.value = '';\r\n }\r\n if(event.code == 'Enter') {\r\n const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/;\r\n const valid = emailRegex.test(event.target.value);\r\n if(valid) {\r\n (((this.reportConfigurationForm.get('reports') as FormArray).at(index)).get('email') as FormArray).push(this.fb.control(event.target.value));\r\n event.target.value = '';\r\n }\r\n else {\r\n this.toaster.getErrorToast('Please Enter Valid Email.')\r\n }\r\n }\r\n }\r\n\r\n removeChip(i: number,j:number) {\r\n (((this.reportConfigurationForm.get('reports') as FormArray).at(i)).get('email') as FormArray).removeAt(j);\r\n }\r\n\r\n onReportSelect(event: any): void {\r\n this.selectedReport = event;\r\n this.getClientReports(this.clientId);\r\n }\r\n getEnabledValue(i: number): boolean | null {\r\n const control = this.reportConfigurationForm.get('reports')?.get(i.toString())?.get('enabled');\r\n return control ? control.value : null;\r\n }\r\n \r\n getEmails(index: any) {\r\n return (((this.reportConfigurationForm.get('reports') as FormArray).at(index)).get('email') as FormArray)\r\n }\r\n\r\n openAddModal() {\r\n const modalRef = this.modalService.open(AddReportComponent, { size: 'md', centered: true });\r\n modalRef.result.then((event) => { \r\n if (event?.type === 'add') { \r\n this.getClientReports(this.clientId)\r\n this.toaster.getSuccessToast('Report added successfully.') \r\n }\r\n });\r\n }\r\n\r\n getReportDisabled(index:any) {\r\n return ((this.reportConfigurationForm.get('reports') as FormArray).at(index)).get('disabled')?.value;\r\n }\r\n\r\n enableForm(index:any) {\r\n this.reportConfigurationForm.enable();\r\n ((this.reportConfigurationForm.get('reports') as FormArray).at(index)).get('disabled')?.setValue(false);\r\n this.reportConfigurationForm.enable();\r\n this.cd.detectChanges(); \r\n }\r\n\r\n deleteReport(reportId: string) {\r\n this.apiService.deleteReport(reportId).subscribe({\r\n next: (res) => {\r\n this.toaster.getSuccessToast('Report has been deleted successfully') \r\n this.getClientReports(this.clientId);\r\n },\r\n error: (err) => {\r\n console.error('Error deleting report:', err);\r\n }\r\n });\r\n }\r\n\r\n onCancel() {\r\n this.getClientReports(this.clientId)\r\n this.reportConfigurationForm.disable()\r\n this.apiService.clientFormData.next({ value: null, type: 'cancel', form: 'report-configuration' })\r\n\r\n }\r\n\r\n onSubmit(data:any) {\r\n let params = {\r\n fileType:data.value.fileType,\r\n email:data.value.email,\r\n clientId:this.clientId\r\n }\r\n this.apiService.updateReport(data.value.id, params).pipe(takeUntil(this.destroy$)).subscribe({\r\n next:(e)=>{\r\n this.toaster.getSuccessToast(e.data?.result)\r\n this.getClientReports(this.clientId); \r\n this.apiService.clientFormData.next({ value: null, type: 'cancel', form: 'report-configuration' })\r\n },\r\n error:(e)=>{\r\n this.toaster.getErrorToast(e.error?.error)\r\n this.getClientReports(this.clientId); \r\n }\r\n })\r\n }\r\n}\r\n","<form [formGroup]=\"reportConfigurationForm\">\r\n <div class=\"row\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_configuration_isEdit \">\r\n <div class=\"col-12 mb-5\">\r\n <div class=\"d-flex justify-content-end\">\r\n <button (click)=\"openAddModal()\" type=\"button\"\r\n class=\"btn btn-primary align-items-end\">\r\n <span class=\"me-2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M10.0003 4.16663V15.8333M4.16699 9.99996H15.8337\" stroke=\"white\" stroke-width=\"2\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n Add Report\r\n </button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"loading\">\r\n <div\r\n class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div\r\n class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\"\r\n src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container formArrayName=\"reports\">\r\n <ng-container *ngFor=\"let report of reportsFormArray.controls; let i = index\" [formGroupName]=\"i\">\r\n <div *ngIf=\"(gs.userAccess | async)?.settings_configuration_isEdit \" class=\"d-flex justify-content-end mt-5\">\r\n <div *ngIf=\"getReportDisabled(i)\" (click)=\"enableForm(i)\" type=\"button\"\r\n class=\" align-items-end\">\r\n <span class=\"me-2\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g filter=\"url(#filter0_d_13410_52264)\">\r\n <rect x=\"2\" y=\"1\" width=\"36\" height=\"36\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"35\" height=\"35\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <g clip-path=\"url(#clip0_13410_52264)\">\r\n <path\r\n d=\"M24.167 11.4999C24.3859 11.2811 24.6457 11.1074 24.9317 10.989C25.2176 10.8705 25.5241 10.8096 25.8337 10.8096C26.1432 10.8096 26.4497 10.8705 26.7357 10.989C27.0216 11.1074 27.2815 11.2811 27.5003 11.4999C27.7192 11.7188 27.8928 11.9786 28.0113 12.2646C28.1297 12.5506 28.1907 12.8571 28.1907 13.1666C28.1907 13.4761 28.1297 13.7826 28.0113 14.0686C27.8928 14.3546 27.7192 14.6144 27.5003 14.8333L16.2503 26.0833L11.667 27.3333L12.917 22.7499L24.167 11.4999Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_13410_52264\" x=\"0\" y=\"0\" width=\"40\" height=\"40\" filterUnits=\"userSpaceOnUse\"\r\n color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\r\n result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_13410_52264\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_13410_52264\" result=\"shape\" />\r\n </filter>\r\n <clipPath id=\"clip0_13410_52264\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" transform=\"translate(10 9)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n \r\n <div *ngIf=\"getReportDisabled(i)\" (click)=\"deleteReport(selectedReport._id)\"\r\n class=\"align-items-end cursor-pointer\">\r\n <span class=\"me-2\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g filter=\"url(#filter0_d_13252_178642)\">\r\n <rect x=\"2\" y=\"1\" width=\"36\" height=\"36\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"35\" height=\"35\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path\r\n d=\"M12.5 14.0001H14.1667M14.1667 14.0001H27.5M14.1667 14.0001V25.6667C14.1667 26.1088 14.3423 26.5327 14.6548 26.8453C14.9674 27.1578 15.3913 27.3334 15.8333 27.3334H24.1667C24.6087 27.3334 25.0326 27.1578 25.3452 26.8453C25.6577 26.5327 25.8333 26.1088 25.8333 25.6667V14.0001H14.1667ZM16.6667 14.0001V12.3334C16.6667 11.8914 16.8423 11.4675 17.1548 11.1549C17.4674 10.8423 17.8913 10.6667 18.3333 10.6667H21.6667C22.1087 10.6667 22.5326 10.8423 22.8452 11.1549C23.1577 11.4675 23.3333 11.8914 23.3333 12.3334V14.0001M18.3333 18.1667V23.1667M21.6667 18.1667V23.1667\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_13252_178642\" x=\"0\" y=\"0\" width=\"40\" height=\"40\" filterUnits=\"userSpaceOnUse\"\r\n color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\r\n result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_13252_178642\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_13252_178642\" result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg></span>\r\n </div>\r\n\r\n </div>\r\n \r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label [for]=\"'reportName' + i\" class=\"form-label\">Report Name <span class=\"alert-required\"></span></label>\r\n <input formControlName=\"reportName\" type=\"text\" class=\"form-control disabled\" [id]=\"'reportName' + i\" autocomplete=\"off\">\r\n </div>\r\n\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label [for]=\"'fileType' + i\" class=\"form-label\">File Type <span class=\"alert-required\"></span></label>\r\n <input formControlName=\"fileType\" type=\"text\" class=\"form-control disabled-input\" [id]=\"'fileType' + i\"\r\n autocomplete=\"off\" [ngClass]=\"getReportDisabled(i)? 'disabled' : ''\">\r\n </div>\r\n\r\n\r\n <div class=\"col-md-12 col-lg-12 col-xl-12 col-xxl-12 mb-5\">\r\n <label [for]=\"'email' + i\" class=\"form-label\">Receivers Email <span class=\"alert-required\"></span></label>\r\n <div class=\"outer-container\">\r\n <div class=\"input-container form-control\" formArrayName=\"email\">\r\n <ng-container *ngFor=\"let email of getEmails(i)?.controls; let j = index\">\r\n <span class=\"chip\">\r\n <span class=\"me-3\">{{ email.value }}</span>\r\n <span *ngIf=\"reportConfigurationForm.enabled\" (click)=\"removeChip(i,j)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path d=\"M9 3L3 9M3 3L9 9\" stroke=\"#667085\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </span>\r\n </ng-container>\r\n <input style=\"min-height: 44px;\" (keydown)=\"onKeyDown($event,i)\" type=\"text\" id=\"emailValue\"\r\n [disabled]=\"getReportDisabled(i) == true\">\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"!getReportDisabled(i)\">\r\n <div class=\"mb-5 w-100 footer-separator\"></div>\r\n <div class=\"d-flex justify-content-end\">\r\n <a type=\"button\" class=\"btn btn-outline me-4 align-content-center\" (click)=\"onCancel()\">Cancel</a>\r\n <button type=\"button\" class=\"btn btn-primary px-4\" (click)=\"onSubmit(report)\"><span>Save\r\n Changes</span></button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n</form>","import { ChangeDetectorRef, Component, OnDestroy } from '@angular/core';\r\nimport { FormGroup, FormBuilder } from '@angular/forms';\r\nimport { ClientApiService } from '../../../services/client-api.service';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\n\r\n@Component({\r\n selector: 'lib-user-configuration',\r\n templateUrl: './user-configuration.component.html',\r\n styleUrl: './user-configuration.component.scss'\r\n})\r\nexport class UserConfigurationComponent implements OnDestroy {\r\n \r\n userConfigurationForm: FormGroup\r\n csmUserList: any = [];\r\n opsUserList: any = [];\r\n selectedCsm:any = []\r\n selectedOps:any = [];\r\n private readonly destroy$ = new Subject();\r\n clienId: string;\r\n\r\n\r\n constructor(private fb: FormBuilder, private apiService: ClientApiService, private cd: ChangeDetectorRef, public gs:GlobalStateService,\r\n private toast:ToastService\r\n ) {\r\n this.initForm()\r\n this.getCsmUsers()\r\n this.getOpsUsers()\r\n this.apiService.clientId.pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if (e) {\r\n this.clienId = e\r\n this.getAssignedUsers(e)\r\n }\r\n })\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n\r\n initForm() {\r\n this.userConfigurationForm = this.fb.group({\r\n domainName: [''],\r\n isEnable: [''],\r\n });\r\n this.userConfigurationForm.disable()\r\n }\r\n\r\n patchForm(data: any) { \r\n this.selectedCsm = data?.csm \r\n this.selectedOps = data?.ops \r\n }\r\n\r\n getCsmUsers(){\r\n this.apiService.getCsmUsers().pipe(takeUntil(this.destroy$)).subscribe({\r\n next:(res)=>{\r\n if(res){\r\n this.csmUserList = res.data\r\n }\r\n }\r\n })\r\n }\r\n\r\n getOpsUsers(){\r\n this.apiService.getOpsUsers().pipe(takeUntil(this.destroy$)).subscribe({\r\n next:(res)=>{\r\n if(res){\r\n this.opsUserList = res.data\r\n }\r\n }\r\n })\r\n }\r\n\r\n getAssignedUsers(clientId:string){\r\n this.apiService.getAssignedUsers(clientId).pipe(takeUntil(this.destroy$)).subscribe({\r\n next:(e)=>{\r\n if(e?.data?.result?.length){\r\n e?.data?.result.forEach((element:any) => {\r\n if(element.tangoUserType === 'csm'){\r\n this.selectedCsm = element?.assignedUser?.[0]\r\n }\r\n if(element.tangoUserType === 'user'){\r\n this.selectedOps = element?.assignedUser\r\n }\r\n });\r\n }\r\n this.cd.detectChanges()\r\n \r\n }\r\n })\r\n }\r\n onCsmSelect(event:any){\r\n this.selectedCsm = event\r\n }\r\n\r\n onOpsSelect(event:any){\r\n this.selectedOps = event\r\n }\r\n\r\n onCancel() {\r\n this.apiService.clientFormData.next({ value: null, type: 'cancel', form: 'user-configuration' })\r\n this.userConfigurationForm.disable()\r\n }\r\n\r\n onSubmit() {\r\n let data = {\r\n clientId:this.clienId,\r\n assignedCsm:this.selectedCsm.email,\r\n assignedUser:this.selectedOps.map((csm:any)=>csm.email),\r\n } \r\n\r\n this.apiService.assignCsm(data).pipe(takeUntil(this.destroy$)).subscribe({\r\n next:(e)=>{\r\n if(e?.data?.result){\r\n this.getAssignedUsers(this.clienId)\r\n this.toast.getSuccessToast('Updated successfully.') \r\n this.apiService.clientFormData.next({ value: null, type: 'submitted', form: 'null' })\r\n }\r\n }\r\n })\r\n }\r\n\r\n}\r\n","<form [formGroup]=\"userConfigurationForm\">\r\n <div class=\"row\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_configuration_isEdit \" >\r\n <div *ngIf=\"userConfigurationForm.disabled\" class=\"col-12 mb-5\">\r\n <div class=\" d-flex justify-content-end\">\r\n <button\r\n (click)=\"userConfigurationForm.disabled ? userConfigurationForm.enable() : userConfigurationForm.disable()\"\r\n type=\"button\" class=\"btn btn-outline align-items-end\"><span class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2579_25125)\">\r\n <path\r\n d=\"M14.167 2.49993C14.3859 2.28106 14.6457 2.10744 14.9317 1.98899C15.2176 1.87054 15.5241 1.80957 15.8337 1.80957C16.1432 1.80957 16.4497 1.87054 16.7357 1.98899C17.0216 2.10744 17.2815 2.28106 17.5003 2.49993C17.7192 2.7188 17.8928 2.97863 18.0113 3.2646C18.1297 3.55057 18.1907 3.85706 18.1907 4.16659C18.1907 4.47612 18.1297 4.78262 18.0113 5.06859C17.8928 5.35455 17.7192 5.61439 17.5003 5.83326L6.25033 17.0833L1.66699 18.3333L2.91699 13.7499L14.167 2.49993Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2579_25125\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>Edit Details</button>\r\n </div>\r\n </div> \r\n </ng-container>\r\n\r\n\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"infraDownTime\" class=\"form-label\">Assign CSM <span class=\"alert-required\"></span></label>\r\n <lib-select [items]=\"csmUserList\" [disabled]=\"userConfigurationForm.disabled\" [multi]=\"false\" [searchField]=\"'userName'\" [idField]=\"'email'\"\r\n (selected)=\"onCsmSelect($event)\" [selectedValues]=\"[selectedCsm]\"></lib-select>\r\n </div>\r\n\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"infraDownTime\" class=\"form-label\">Assign Ops User <span class=\"alert-required\"></span></label>\r\n <lib-select [items]=\"opsUserList\" [disabled]=\"userConfigurationForm.disabled\" [multi]=\"true\" [searchField]=\"'userName'\" [idField]=\"'email'\"\r\n (selected)=\"onOpsSelect($event)\" [selectedValues]=\"selectedOps\"></lib-select>\r\n </div>\r\n \r\n </div>\r\n\r\n <div *ngIf=\"userConfigurationForm.enabled\">\r\n <div class=\"mb-5 w-100 footer-seperator\"></div>\r\n <div class=\"d-flex justify-content-end\">\r\n <a type=\"button\" class=\"btn btn-outline me-4\" (click)=\"onCancel()\">Cancel</a>\r\n <a type=\"submit\" class=\"btn btn-primary px-4 \" (click)=\"onSubmit()\"><span>Save Changes</span></a>\r\n </div>\r\n </div>\r\n\r\n</form>","import { AfterViewInit, Component, OnDestroy } from '@angular/core';\r\nimport { FormGroup, FormBuilder } from '@angular/forms';\r\nimport { ClientApiService } from '../../../services/client-api.service';\r\nimport { BehaviorSubject, Subject, map, switchMap, takeUntil } from 'rxjs';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\n\r\n@Component({\r\n selector: 'lib-domain-details',\r\n templateUrl: './domain-details.component.html',\r\n styleUrl: './domain-details.component.scss'\r\n})\r\nexport class DomainDetailsComponent implements AfterViewInit, OnDestroy {\r\n\r\n domainDetailsForm: FormGroup\r\n allowedDomains:any = []\r\n $domainNameInterrupt = new BehaviorSubject<string>('')\r\n private readonly destroy$ = new Subject();\r\n\r\n \r\n\r\n\r\n constructor(private fb: FormBuilder, private apiService: ClientApiService, public gs:GlobalStateService) {\r\n this.initForm()\r\n this.apiService.clientFormData.pipe(takeUntil(this.destroy$)).subscribe((res) => {\r\n if (res) {\r\n if (res.type === 'input' && res.form === 'domain-details') {\r\n this.patchForm(res.value)\r\n }\r\n }\r\n })\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.domainDetailsForm.get('domainName')?.valueChanges\r\n .pipe(map((value)=> value.replace(/\\n/g, '')))\r\n .pipe(\r\n switchMap((val) => { \r\n return this.$domainNameInterrupt.pipe(takeUntil(this.destroy$)).pipe(map((interrupt)=>{\r\n if(interrupt === 'Enter'){\r\n this.$domainNameInterrupt.next('')\r\n this.allowedDomains.push(val)\r\n this.domainDetailsForm.get('domainName')?.setValue('')\r\n }else if(interrupt === 'Backspace' && !val && this.allowedDomains.length){\r\n this.allowedDomains.pop()\r\n }else{\r\n return val\r\n }\r\n }))\r\n })\r\n ).subscribe()\r\n \r\n }\r\n\r\n\r\n initForm() {\r\n this.domainDetailsForm = this.fb.group({\r\n domainName: [''],\r\n isEnable: [''],\r\n });\r\n this.domainDetailsForm.disable()\r\n }\r\n\r\n patchForm(data: any) { \r\n \r\n this.domainDetailsForm.patchValue(\r\n {\r\n ...data,\r\n domainName:''\r\n },\r\n {emitEvent: false, onlySelf: true}\r\n )\r\n\r\n this.allowedDomains = [...data?.domainName]\r\n\r\n }\r\n\r\n onKeyDown(event:any){\r\n this.$domainNameInterrupt.next(event.code)\r\n }\r\n\r\n removeChip(i:number){\r\n this.allowedDomains.splice(i, 1) \r\n }\r\n\r\n\r\n onCancel() {\r\n this.apiService.clientFormData.next({ value: null, type: 'cancel', form: 'domain-details' })\r\n this.domainDetailsForm.disable()\r\n }\r\n\r\n onSubmit() {\r\n this.domainDetailsForm.value.domainName = this.allowedDomains \r\n this.apiService.clientFormData.next({ value: this.domainDetailsForm.value, type: 'submit', form: 'domain-details' })\r\n }\r\n\r\n}\r\n","<form [formGroup]=\"domainDetailsForm\">\r\n <div class=\"row\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_configuration_isEdit \" >\r\n <div *ngIf=\"domainDetailsForm.disabled\" class=\"col-12 mb-5\">\r\n <div class=\" d-flex justify-content-end\">\r\n <button\r\n (click)=\"domainDetailsForm.disabled ? domainDetailsForm.enable() : domainDetailsForm.disable()\"\r\n type=\"button\" class=\"btn btn-outline align-items-end\"><span class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2579_25125)\">\r\n <path\r\n d=\"M14.167 2.49993C14.3859 2.28106 14.6457 2.10744 14.9317 1.98899C15.2176 1.87054 15.5241 1.80957 15.8337 1.80957C16.1432 1.80957 16.4497 1.87054 16.7357 1.98899C17.0216 2.10744 17.2815 2.28106 17.5003 2.49993C17.7192 2.7188 17.8928 2.97863 18.0113 3.2646C18.1297 3.55057 18.1907 3.85706 18.1907 4.16659C18.1907 4.47612 18.1297 4.78262 18.0113 5.06859C17.8928 5.35455 17.7192 5.61439 17.5003 5.83326L6.25033 17.0833L1.66699 18.3333L2.91699 13.7499L14.167 2.49993Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2579_25125\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>Edit Details</button>\r\n </div>\r\n </div> \r\n </ng-container>\r\n\r\n <div class=\"col-md-12 col-lg-12 col-xl-12 col-xxl-12 mb-5\">\r\n <div class=\"outer-container\">\r\n <div class=\" input-container form-control\">\r\n <ng-container *ngFor=\"let domain of allowedDomains; let i = index\">\r\n <span class=\"chip\">\r\n <span class=\"me-3\">{{domain}}</span>\r\n <span *ngIf=\"domainDetailsForm.enabled\" (click)=\"removeChip(i)\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path d=\"M9 3L3 9M3 3L9 9\" stroke=\"#667085\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n </span>\r\n </ng-container>\r\n <input style=\"min-height: 44px;\" formControlName=\"domainName\" (keydown)=\"onKeyDown($event)\" type=\"text\">\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-12 col-xl-12 col-xxl-12 mb-5\">\r\n <div class=\"d-flex align-items-center mb-2\">\r\n <label class=\"sso-label me-5\" for=\"isPasserByData\">SSO Login</label>\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isEnable\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isPasserByData\">\r\n </div>\r\n </div>\r\n <div class=\"sso-sub\">Turn on will only allow SSO as default login</div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"domainDetailsForm.enabled\">\r\n <div class=\"mb-5 w-100 footer-seperator\"></div>\r\n <div class=\"d-flex justify-content-end\">\r\n <a type=\"button\" class=\"btn btn-outline me-4\" (click)=\"onCancel()\">Cancel</a>\r\n <a type=\"submit\" class=\"btn btn-primary px-4 \" (click)=\"onSubmit()\"><span>Save Changes</span></a>\r\n </div>\r\n </div>\r\n\r\n</form>","import { ChangeDetectorRef, Component, OnDestroy } from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { ClientApiService } from '../../../services/client-api.service';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\nimport dayjs from \"dayjs\";\r\nimport \"dayjs/locale/en\";\r\nimport utc from \"dayjs/plugin/utc\";\r\nimport timezone from \"dayjs/plugin/timezone\";\r\ndayjs.extend(utc);\r\ndayjs.extend(timezone);\r\n\r\n@Component({\r\n selector: 'lib-feature-configuration',\r\n templateUrl: './feature-configuration.component.html',\r\n styleUrl: './feature-configuration.component.scss'\r\n})\r\nexport class FeatureConfigurationComponent implements OnDestroy {\r\n\r\n\r\n featureConfigurationForm: FormGroup\r\n missedOpportunityStartTime: string;\r\n missedOpportunityEndTime: string;\r\n private readonly destroy$ = new Subject();\r\n dayjs = dayjs\r\n\r\n\r\n infraAlertValue = [\r\n { value: 1, label: \"1 hrs\" },\r\n { value: 2, label: \"2 hrs\" },\r\n { value: 3, label: \"3 hrs\" },\r\n { value: 4, label: \"4 hrs\" },\r\n { value: 5, label: \"5 hrs\" }\r\n ]\r\n\r\n infraAlertCondition = [\r\n { value: \"<\", label: \"<\" },\r\n { value: \">\", label: \">\" },\r\n { value: \"<=\", label: \"< =\" },\r\n { value: \"=>\", label: \"= >\" },\r\n ]\r\n\r\n bouncedLimitCondition = [\r\n { value: \"<=\", label: \"< =\" }\r\n ]\r\n\r\n bouncedLimitValue = [\r\n { value: 1, label: \"1 min\" },\r\n { value: 2, label: \"2 mins\" },\r\n { value: 3, label: \"3 mins\" },\r\n ]\r\n\r\n conversionCondition = [\r\n { value: \">\", label: \">\" }\r\n ]\r\n\r\n conversionValue = [\r\n { value: 5, label: \"5 mins\" },\r\n { value: 10, label: \"10 mins\" },\r\n { value: 15, label: \"15 mins\" },\r\n { value: 20, label: \"20 mins\" }\r\n ]\r\n\r\n billableCalculation = [\r\n { value: \"footfall-count\", label: \"Footfall Count\" },\r\n { value: \"engagers-count\", label: \"Engagers Count\" },\r\n ]\r\n\r\n missedOpportunityCalculation = [\r\n { value: \"engagers-conversion\", label: \"Engagers - Conversion\" },\r\n { value: \"group-conversion\", label: \"Billable Entities - Conversion\" },\r\n ]\r\n\r\n conversionCalculation = [\r\n {value:\"footfall-count\", label:\"Footfall Count\"},\r\n {value:\"engagers-count\", label:\"Engagers Count\"},\r\n {value:\"billable-entities\", label:\"Billable Entities\"},\r\n ]\r\n\r\n\r\n\r\n constructor(private fb: FormBuilder, private apiService: ClientApiService, public gs: GlobalStateService,\r\n private cd:ChangeDetectorRef\r\n ) {\r\n this.initForm()\r\n this.apiService.clientFormData.pipe(takeUntil(this.destroy$)).subscribe((res) => {\r\n if (res) {\r\n if (res.type === 'input' && res.form === 'feature-configuration') {\r\n this.patchForm(res.value)\r\n }\r\n }\r\n })\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n\r\n\r\n initForm() {\r\n this.featureConfigurationForm = this.fb.group({\r\n open: [],\r\n close: [],\r\n infraAlertCondition: [],\r\n infraAlertValue: [],\r\n bouncedLimitCondition: [],\r\n bouncedLimitValue: [],\r\n conversionCondition: [],\r\n conversionValue: [],\r\n billableCalculation: [],\r\n missedOpportunityCalculation: [],\r\n conversionCalculation: [],\r\n isNormalized: [],\r\n isPasserByData: [],\r\n isFootfallDirectory: [],\r\n });\r\n this.featureConfigurationForm.disable()\r\n\r\n this.featureConfigurationForm.get('bouncedLimitValue')?.valueChanges.pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if (e) { \r\n this.bouncedConfigTimeChange(e)\r\n }\r\n\r\n })\r\n\r\n this.featureConfigurationForm.get('conversionValue')?.valueChanges.pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if (e) {\r\n this.conversionConfigTimeChange(e)\r\n // this.setConversionCalculation(e)\r\n }\r\n\r\n })\r\n }\r\n\r\n patchForm(data: any) {\r\n this.featureConfigurationForm.patchValue(\r\n {\r\n ...data\r\n }\r\n )\r\n }\r\n\r\n bouncedConfigTimeChange(value: number) {\r\n\r\n switch (value) {\r\n case 1:\r\n this.missedOpportunityStartTime = \">1\"\r\n break;\r\n case 2:\r\n this.missedOpportunityStartTime = \">2\";\r\n break;\r\n case 3:\r\n this.missedOpportunityStartTime = \">3\";\r\n break;\r\n default:\r\n this.missedOpportunityStartTime = \"\";\r\n break;\r\n\r\n }\r\n }\r\n\r\n conversionConfigTimeChange(value: number) {\r\n switch (value) {\r\n case 5:\r\n this.missedOpportunityEndTime = '<=5';\r\n break;\r\n case 10:\r\n this.missedOpportunityEndTime = '<=10';\r\n break;\r\n case 15:\r\n this.missedOpportunityEndTime = '<=15';\r\n break;\r\n case 20:\r\n this.missedOpportunityEndTime = '<=20';\r\n break;\r\n default:\r\n this.missedOpportunityEndTime = '';\r\n break;\r\n }\r\n }\r\n\r\n setConversionCalculation(conversionVal:number){\r\n this.conversionCalculation = [\r\n {value:\"footfall-count\", label:`${conversionVal} mins/Footfall Count`},\r\n {value:\"engagers-count\", label:`${conversionVal} mins/Engagers Count`},\r\n {value:\"billable-entities\", label:`${conversionVal} mins/Billable Entities`},\r\n ]\r\n this.featureConfigurationForm.get('conversionCalculation')?.setValue(this.featureConfigurationForm?.value.conversionCalculation) \r\n }\r\n\r\n\r\n\r\n onCancel() {\r\n this.apiService.clientFormData.next({ value: null, type: 'cancel', form: 'feature-configuration' })\r\n this.featureConfigurationForm.disable()\r\n\r\n }\r\n\r\n onSubmit() {\r\n this.featureConfigurationForm.value.open = this.dayjs(`1991-01-01 ${this.featureConfigurationForm.value.open}`,'YYYY-MM-DD HH:mm').format(\"HH:mm:ss\")\r\n this.featureConfigurationForm.value.close = this.dayjs(`1991-01-01 ${this.featureConfigurationForm.value.close}`,'YYYY-MM-DD HH:mm').format(\"HH:mm:ss\") \r\n this.apiService.clientFormData.next({ value: this.featureConfigurationForm.value, type: 'submit', form: 'feature-configuration' })\r\n }\r\n\r\n\r\n\r\n}\r\n","<form [formGroup]=\"featureConfigurationForm\">\r\n <div class=\"row\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_configuration_isEdit \" >\r\n <div *ngIf=\"featureConfigurationForm.disabled\" class=\"col-12 mb-5\">\r\n <div class=\" d-flex justify-content-end\">\r\n <button\r\n (click)=\"featureConfigurationForm.disabled ? featureConfigurationForm.enable() : featureConfigurationForm.disable()\"\r\n type=\"button\" class=\"btn btn-outline align-items-end\"><span class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2579_25125)\">\r\n <path\r\n d=\"M14.167 2.49993C14.3859 2.28106 14.6457 2.10744 14.9317 1.98899C15.2176 1.87054 15.5241 1.80957 15.8337 1.80957C16.1432 1.80957 16.4497 1.87054 16.7357 1.98899C17.0216 2.10744 17.2815 2.28106 17.5003 2.49993C17.7192 2.7188 17.8928 2.97863 18.0113 3.2646C18.1297 3.55057 18.1907 3.85706 18.1907 4.16659C18.1907 4.47612 18.1297 4.78262 18.0113 5.06859C17.8928 5.35455 17.7192 5.61439 17.5003 5.83326L6.25033 17.0833L1.66699 18.3333L2.91699 13.7499L14.167 2.49993Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2579_25125\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>Edit Details</button>\r\n </div>\r\n </div> \r\n </ng-container>\r\n\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"open\" class=\"form-label\">Store Open Time <span class=\"alert-required\"></span></label>\r\n <input type=\"time\" formControlName=\"open\" class=\"form-control\" id=\"open\" autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"close\" class=\"form-label\">Store Close Time <span class=\"alert-required\"></span></label>\r\n <input type=\"time\" formControlName=\"close\" class=\"form-control\" id=\"close\" autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label class=\"form-label\">Infra Alert <span class=\"alert-required\"></span></label>\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"infraAlertCondition\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"infraAlertCondition\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"infraAlertValue\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"infraAlertValue\" ></lib-reactive-select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"downTimeType\" class=\"form-label\">Bounced Limit<span class=\"alert-required\"></span></label>\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"bouncedLimitCondition\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"bouncedLimitCondition\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"bouncedLimitValue\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"bouncedLimitValue\" ></lib-reactive-select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"MinFilesCount\" class=\"form-label\">Missed Opportunity <span\r\n class=\"alert-required\"></span></label>\r\n <div class=\"form-control mock-input d-flex justify-content-center align-items-center\">\r\n <ng-container *ngIf=\"missedOpportunityStartTime\">\r\n {{missedOpportunityStartTime }} - {{missedOpportunityEndTime}}\r\n </ng-container>\r\n </div>\r\n\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label class=\"form-label\">Conversion <span class=\"alert-required\"></span></label>\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"conversionCondition\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"conversionCondition\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"conversionValue\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"conversionValue\" ></lib-reactive-select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <lib-reactive-select formControlName=\"billableCalculation\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"billableCalculation\" [label]=\"'Billable Calculations'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <lib-reactive-select formControlName=\"missedOpportunityCalculation\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"missedOpportunityCalculation\" [label]=\"'Missed Opportunity Calculation'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <lib-reactive-select formControlName=\"conversionCalculation\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"conversionCalculation\" [label]=\"'Conversion Calculations'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5 px-6\">\r\n <div class=\"sub-header\">Normalized data during downtime</div>\r\n <div class=\"sub-text\">Choose if you want to view normalized data during downtime. </div>\r\n </div>\r\n \r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5 px-6\">\r\n <div class=\"sub-header\">Passer-by data</div>\r\n <div class=\"sub-text\">Choose if you want to view Passerby data. </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \" >\r\n <div class=\"sub-header\">Footfall Directory</div>\r\n <div class=\"sub-text\">Choose if you want to view Footfall directory </div> \r\n </ng-container>\r\n \r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5 px-6\">\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isNormalized\" class=\"form-check-input\" type=\"checkbox\" id=\"isNormalized\">\r\n <label class=\"form-check-label toggle-label\" for=\"isNormalized\"> Show Normalized data\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5 px-6\">\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isPasserByData\" class=\"form-check-input\" type=\"checkbox\" id=\"isPasserByData\">\r\n <label class=\"form-check-label toggle-label\" for=\"isPasserByData\"> Show Passer-by data\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \" >\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isFootfallDirectory\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isFootfallDirectory\">\r\n <label class=\"form-check-label toggle-label\" for=\"isFootfallDirectory\"> Show Footfall Directory\r\n </label>\r\n </div> \r\n </ng-container>\r\n \r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"featureConfigurationForm.enabled\">\r\n <div class=\"mb-5 w-100 footer-seperator\"></div>\r\n <div class=\"d-flex justify-content-end\">\r\n <a type=\"button\" class=\"btn btn-outline me-4\" (click)=\"onCancel()\">Cancel</a>\r\n <a type=\"submit\" class=\"btn btn-primary px-4 \" (click)=\"onSubmit()\"><span>Save Changes</span></a>\r\n </div>\r\n </div>\r\n\r\n</form>","import { Component, OnInit,HostListener,ViewChild,ChangeDetectorRef,OnDestroy } from '@angular/core';\r\nimport { NgbModal,NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ClientApiService } from '../../../services/client-api.service';\r\nimport { Subject, map, takeUntil } from 'rxjs';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\n\r\n@Component({\r\n selector: 'lib-email-configuration',\r\n templateUrl: './email-configuration.component.html',\r\n styleUrl: './email-configuration.component.scss'\r\n})\r\nexport class EmailConfigurationComponent implements OnInit,OnDestroy {\r\n\r\n @ViewChild('confirmationModal') confirmationModal: any;\r\n modalRef: NgbModalRef | undefined;\r\n SelectedTab:any='Infra Report'\r\n startTime:any;\r\n endTime:any;\r\n dropDown: boolean = false;\r\n dropdownItems:any[] = ['Admin','User','Super Admin']\r\n selectedRole:any = 'Super Admin' ;\r\n offset:any = 1;\r\n limit:any = 10;\r\n sortBy:any = -1;\r\n sortColumName:any;\r\n totalCount:any;\r\n searchInstallation: any;\r\n noData: any;\r\n loading: any;\r\n selectedItems: any;\r\n private readonly destroy$ = new Subject();\r\n emailuserList: any;\r\n dummyEmailList:any;\r\n clientId: any;\r\n storeList: any;\r\n Email: any;\r\n userName: any;\r\n\r\n @HostListener('document:click', ['$event'])\r\n onClick(event: MouseEvent) {\r\n const\r\n target = event.target as HTMLElement;\r\n if (!target.closest('.dropdown')) {\r\n this.dropDown = false;\r\n }\r\n }\r\n\r\n constructor(private modalService: NgbModal,private toast:ToastService,\r\n private cd:ChangeDetectorRef,private service: ClientApiService){\r\n this.service.clientData.pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if (e) {\r\n this.clientId = e.clientId\r\n }\r\n })\r\n }\r\n ngOnInit(): void {\r\n this.Selectedtabs(this.SelectedTab); \r\n this.getBrandDetails();\r\n this.userList();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n selectAll(event: any) {\r\n const checked = event.target.checked;\r\n this.emailuserList?.result.forEach((item:any) => {\r\n if(checked){\r\n item.infraAlert = checked;\r\n // this.updateSelectedItems();\r\n }else {item.infraAlert = false}\r\n });\r\n }\r\n\r\n selectItems(event: any, item: any) {\r\n item.infraAlert = event.target.checked;\r\n this.checkSelectAll();\r\n // this.updateSelectedItems();\r\n }\r\n\r\n checkSelectAll() {\r\n const allSelected = this.emailuserList?.result.every((item:any) => item.infraAlert);\r\n const selectAllCheckbox = document.getElementById('selectAllCheckbox') as HTMLInputElement;\r\n if (selectAllCheckbox) {\r\n selectAllCheckbox.checked = allSelected;\r\n }\r\n }\r\n\r\n updateSelectedItems() {\r\n if(this.endTime > this.startTime){\r\n this.selectedItems = this.emailuserList?.result.map((item:any,index:any)=>{\r\n return {email:item.email,infraAlert:item.infraAlert};\r\n });\r\n this.updateUserList();\r\n }else{\r\n this.toast.getErrorToast('Invalid Time Taken')\r\n }\r\n }\r\n\r\n cancelSelectedItems(){\r\n this.emailuserList = JSON.parse(JSON.stringify(this.dummyEmailList));\r\n this.checkSelectAll();\r\n }\r\n\r\n Selectedtabs(value:any){\r\n this.SelectedTab = value;\r\n }\r\n\r\n selectItem(value: any) {\r\n this.selectedRole = value;\r\n this.dropDown = false;\r\n this.userList();\r\n // this.tableData.filter = this.selectedItem === \"All\" ? [] : value\r\n }\r\n\r\n openDropdown(event: MouseEvent) {\r\n event.stopPropagation();\r\n this.dropDown = !this.dropDown;\r\n }\r\n searchInstallationTable() {\r\n this.userList()\r\n }\r\n\r\n onPageChange(pageOffset: any) {\r\n this.offset = pageOffset;\r\n this.userList();\r\n \r\n }\r\n \r\n onPageSizeChange(pageSize: any) {\r\n this.limit = pageSize;\r\n this.userList();\r\n \r\n }\r\n sortData(value:any){\r\n this.sortColumName = value;\r\n this.sortBy *= -1;\r\n this.userList();\r\n }\r\n\r\n storeDetails(obj:any,email:any,userName:any){\r\n this.storeList = obj;\r\n this.Email = email;\r\n this.userName = userName;\r\n const modalRef = this.modalService.open(this.confirmationModal, { centered: true });\r\n }\r\n\r\n getBrandDetails(){\r\n this.service.getBrandDetails(this.clientId).pipe(takeUntil(this.destroy$)).subscribe({\r\n next:(res:any)=>{\r\n if(res&&res.code=='200'){\r\n const responseData = res?.data?.ticketConfigs;\r\n this.startTime = responseData?.infraReport?.start;\r\n this.endTime = responseData?.infraReport?.end;\r\n }else{\r\n\r\n }\r\n },\r\n error:(err)=>{\r\n \r\n },\r\n })\r\n }\r\n\r\n userList(){\r\n let data ={\r\n \"clientId\":this.clientId,\r\n \"role\":this.selectedRole.replace(' ','').toLowerCase(),\r\n \"searchValue\":this.searchInstallation,\r\n \"sortColumName\":this.sortColumName,\r\n \"sortBy\":this.sortBy,\r\n \"offset\":this.offset,\r\n \"limit\":this.limit\r\n }\r\n this.loading = true;\r\n this.noData = false;\r\n this.service.emailUserList(data).pipe(takeUntil(this.destroy$)).subscribe({\r\n next:(res:any)=>{\r\n if(res && res.code=='200' && res?.data?.result?.length){\r\n this.loading = false;\r\n this.noData = false;\r\n this.emailuserList = res.data;\r\n this.dummyEmailList = JSON.parse(JSON.stringify(this.emailuserList))\r\n \r\n }else{\r\n this.noData = true;\r\n this.loading = false;\r\n }\r\n },\r\n error:(err)=>{\r\n this.noData = true;\r\n this.loading = false;\r\n },\r\n })\r\n\r\n }\r\n\r\n updateUserList(){\r\n let data = {\r\n clientId:this.clientId,\r\n start: this.startTime,\r\n end: this.endTime,\r\n \"userList\": this.selectedItems,\r\n }\r\n this.service.saveInfraEmailConfig(data).pipe(takeUntil(this.destroy$)).subscribe({\r\n next:(res:any)=>{\r\n if(res && res.code=='200'){\r\n this.toast.getSuccessToast(res?.message);\r\n }\r\n },\r\n error:(err)=>{\r\n this.toast.getErrorToast(err?.error)\r\n },\r\n })\r\n\r\n}\r\n\r\n}\r\n\r\n","\r\n<div class=\"mb-5 py-3 px-5\">\r\n <ul class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap mb-10\">\r\n <li class=\"nav-item\" (click)=\"Selectedtabs('Infra Report')\">\r\n <a \r\n [ngClass]=\"SelectedTab === 'Infra Report' ? 'active' : ''\" class=\"nav-link cursor-pointer no-border me-3\">\r\n Infra Report\r\n </a>\r\n </li>\r\n <!-- <li class=\"nav-item disabled-list \" (click)=\"Selectedtabs('Data Report')\">\r\n <a \r\n [ngClass]=\"SelectedTab === 'Data Report' ? 'active' : ''\" class=\"nav-link cursor-pointer no-border me-3\">\r\n Data Report\r\n </a>\r\n </li> \r\n <li class=\"nav-item disabled-list \" (click)=\"Selectedtabs('Insight Report')\">\r\n <a [ngClass]=\"SelectedTab ==='Insight Report' ? 'active' :''\" class=\"nav-link cursor-pointer me-3\">Insight Report</a>\r\n </li>\r\n <li class=\"nav-item disabled-list \" (click)=\"Selectedtabs('All')\"><a [ngClass]=\"SelectedTab ==='All' ? 'active' :''\"\r\n class=\"nav-link cursor-pointer no-border me-3\">All</a>\r\n </li> -->\r\n </ul>\r\n\r\n <div class=\"w-100 d-flex align-items-center\">\r\n <span class=\"timingtext fw-bold\">Send Daily Report at</span> <span> <input type=\"time\" [(ngModel)]=\"startTime\" class=\"form-control w-auto mx-5\"></span><span class=\"timingtext fw-bold\">and</span><span><input type=\"time\" [(ngModel)]=\"endTime\" class=\"form-control w-auto mx-5\"></span>\r\n </div>\r\n</div>\r\n<div class=\"card\">\r\n <div class=\"card-header border-0\">\r\n <div class=\"card-title d-grid\">\r\n <div class=\"title fw-bold\">Users List</div>\r\n <div class=\"sub-title\">Select your required email & schedule the mail timing accordingly</div>\r\n </div>\r\n <div class=\"card-toolbar\"> \r\n <input type=\"text\" class=\"form-control w-auto ps-3 me-2\" placeholder=\"Search\"\r\n autocomplete=\"off\" [(ngModel)]=\"searchInstallation\"\r\n (change)=\"searchInstallationTable()\" />\r\n <div class=\"position-relative w-150px mt-5 mb-5 ms-2\">\r\n <button type=\"button\" (click)=\"openDropdown($event)\"\r\n class=\"btn btn-default w-100 btn-outline btn-outline-default rounded-3 text-nowrap border-val d-flex justify-content-between\">\r\n {{selectedRole ? selectedRole : dropdownItems[0]}}\r\n <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#667085\" stroke-width=\"1.66667\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </button>\r\n <div *ngIf=\"dropDown\" class=\"card py-1 w-100 position-absolute z-1 top-50px end-0\">\r\n <ul *ngFor=\"let item of dropdownItems\" class=\"list-unstyled\">\r\n <li [ngClass]=\"selectedRole === item ? 'active' : ''\"\r\n class=\"camera px-5 items fw-semibold cursor-pointer py-2\"\r\n (click)=\"selectItem(item)\">{{item}}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div *ngIf=\"!loading && !noData \">\r\n <div class=\"table-responsive\">\r\n <table class=\"table bottom-border text-nowrap\">\r\n <thead>\r\n <tr>\r\n <th>\r\n <div class=\"d-flex align-items-center\">\r\n <input type=\"checkbox\" id=\"selectAllCheckbox\" (change)=\"selectAll($event)\">\r\n <div class=\"d-flex align-items-center cursor-pointer\" (click)=\"sortData('userName')\">\r\n <span class=\"ms-2 me-1\">User</span>\r\n <span *ngIf=\"sortColumName === 'userName' && sortBy !== 1 || sortColumName !== 'userName' \">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"sortColumName === 'userName' && sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n </th>\r\n <th><div class=\"cursor-pointer\" (click)=\"sortData('email')\">Email\r\n <span *ngIf=\"sortColumName === 'email' && sortBy !== 1 || sortColumName !== 'email' \">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"sortColumName === 'email' && sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div></th>\r\n <th><div class=\"cursor-pointer\" (click)=\"sortData('assigned')\">Store Count\r\n <span *ngIf=\"sortColumName === 'assigned' && sortBy !== 1 || sortColumName !== 'assigned' \">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"sortColumName === 'assigned' && sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let item of emailuserList?.result\">\r\n <td>\r\n <div class=\"d-flex align-items-center\">\r\n <input type=\"checkbox\" class=\"me-5\" [(ngModel)]=\"item.infraAlert\" (change)=\"selectItems($event, item)\">\r\n <div>\r\n {{ item?.userName ? item?.userName : 'NA' }}\r\n </div>\r\n </div>\r\n </td>\r\n <td>\r\n <div>{{ item?.email ? item?.email :'NA' }}</div>\r\n </td>\r\n <td>\r\n <div class=\"text-title text-primary cursor-pointer text-decoration-underline mb-1\" (click)=\"storeDetails(item?.assignedValue,item?.userName,item?.email)\">{{ item?.assigned }}</div></td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <lib-pagination [itemsPerPage]=\"limit\" [currentPage]=\"offset\"\r\n [totalItems]=\"emailuserList?.count\" [paginationSizes]=\"[10,20,30]\" [pageSize]=\"limit\"\r\n (pageChange)=\"onPageChange($event)\" (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n <div>\r\n\r\n <div class=\"mt-10 d-flex justify-content-end\">\r\n <button class=\"btn btn-outline btn-default me-3\" (click)=\"cancelSelectedItems()\">\r\n Cancel\r\n </button>\r\n <button class=\"btn btn-primary btn-default\" (click)=\"updateSelectedItems()\">\r\n Save Chages\r\n </button>\r\n </div> \r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"loading\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div> \r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n\r\n<ng-template #confirmationModal let-modal>\r\n <div class=\"p-8 card-title\">\r\n <div class=\"title\">\r\n Stores List of the user\r\n </div>\r\n <div class=\"d-flex align-items-center mt-10 mb-10\">\r\n <div class=\"rounded-5 profile d-flex align-items-center justify-content-center fw-semibold\">{{Email.slice(0,2) | uppercase}}</div>\r\n <div class=\"ms-3\">\r\n <div class=\"title1 mb-1 fw-bold\">{{userName}}</div>\r\n <div class=\"text-sub\">{{Email}}</div>\r\n </div>\r\n </div>\r\n <div class=\"mt-5 border border-gray border-1 rounded-3 p-5\">\r\n <span *ngFor=\"let list of storeList\" class=\"badge badge-light-default me-3\">{{list?.storeName}}</span>\r\n </div>\r\n <div class=\"d-flex justify-content-between mt-10\">\r\n <button type=\"button\" class=\"btn btn-default btn-outline w-100\" (click)=\"modal.dismiss()\">Close</button>\r\n </div>\r\n </div>\r\n </ng-template>","import { ChangeDetectorRef, Component, OnInit } from '@angular/core';\r\nimport { ClientApiService } from '../../../services/client-api.service';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'lib-employee-training',\r\n templateUrl: './employee-training.component.html',\r\n styleUrls: ['./employee-training.component.scss']\r\n})\r\nexport class EmployeeTrainingComponent implements OnInit {\r\n clientId: string;\r\n selectedTrainingStart: number = 4;\r\n trainingstartstype: number[] = [1, 2, 3, 4, 5, 6, 7, 8, 9];\r\n trainingstartsdropDown: boolean = false;\r\n editMode: boolean = false;\r\n isEnable: boolean | undefined;\r\n clientInfo: any;\r\n\r\n constructor(private apiService: ClientApiService, private toast: ToastService, private cd: ChangeDetectorRef,) {\r\n this.apiService.clientData.subscribe((e) => {\r\n if (e) {\r\n this.clientId = e.clientId;\r\n this.getInitialValues(e.clientId);\r\n }\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.clientId) {\r\n this.getInitialValues(this.clientId);\r\n }\r\n }\r\n getInitialValues(clientId: string) {\r\n this.apiService.getTicketConfig(clientId).subscribe({\r\n next: (response) => {\r\n this.selectedTrainingStart = response.data.result.ticketConfigs.matConfig.configureDays;\r\n this.isEnable = response.data.result.ticketConfigs.matConfig.enabled;\r\n this.cd.detectChanges();\r\n // if (response && response.data.result && response.data.result.ticketConfigs && response.data.result.ticketConfigs.matConfig) {\r\n // this.selectedTrainingStart = response.data.result.ticketConfigs.matConfig.configureDays;\r\n // this.isEnable = response.data.result.ticketConfigs.matConfig.enabled;\r\n // this.cd.detectChanges();\r\n // } else {\r\n // this.cd.detectChanges();\r\n // console.log(\"Condition is false. Unable to proceed to step2.\");\r\n // }\r\n \r\n },\r\n error: (error) => {\r\n this.cd.detectChanges();\r\n console.error('Error fetching initial values:', error);\r\n }\r\n });\r\n }\r\n\r\n toggleEditMode() {\r\n this.editMode = !this.editMode;\r\n }\r\n\r\n trainingstartsDropdown(event: Event) {\r\n event.stopPropagation();\r\n this.trainingstartsdropDown = !this.trainingstartsdropDown;\r\n }\r\n\r\n selectTrainingStarts(trainingstart: number) {\r\n this.selectedTrainingStart = trainingstart;\r\n this.trainingstartsdropDown = false;\r\n }\r\n\r\n onCancel() {\r\n this.editMode = false;\r\n this.apiService.clientFormData.next({ value: null, type: 'cancel', form: '' })\r\n \r\n }\r\n\r\n onSubmit() {\r\n if (this.selectedTrainingStart !== undefined && this.isEnable !== undefined) {\r\n const formData = {\r\n enabled: this.isEnable,\r\n configureDays: this.selectedTrainingStart\r\n };\r\n\r\n this.apiService.updateTicketConfig(this.clientId, formData).subscribe({\r\n next: (response) => {\r\n console.log('Response:', response);\r\n this.toast.getSuccessToast(response.message);\r\n this.editMode = false;\r\n this.apiService.clientFormData.next({ value: null, type: 'cancel',form:'' })\r\n },\r\n error: (error) => {\r\n console.error('Error:', error);\r\n this.toast.getErrorToast(error.error?.error);\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","<div class=\"d-flex justify-content-end\">\r\n <button *ngIf=\"!editMode\" type=\"button\" class=\"btn btn-outline align-items-end\" (click)=\"toggleEditMode()\">\r\n <span class=\"me-2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2579_25125)\">\r\n <path\r\n d=\"M14.167 2.49993C14.3859 2.28106 14.6457 2.10744 14.9317 1.98899C15.2176 1.87054 15.5241 1.80957 15.8337 1.80957C16.1432 1.80957 16.4497 1.87054 16.7357 1.98899C17.0216 2.10744 17.2815 2.28106 17.5003 2.49993C17.7192 2.7188 17.8928 2.97863 18.0113 3.2646C18.1297 3.55057 18.1907 3.85706 18.1907 4.16659C18.1907 4.47612 18.1297 4.78262 18.0113 5.06859C17.8928 5.35455 17.7192 5.61439 17.5003 5.83326L6.25033 17.0833L1.66699 18.3333L2.91699 13.7499L14.167 2.49993Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2579_25125\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>Edit Details\r\n </button>\r\n</div>\r\n\r\n<div>\r\n <div class=\"col-md-12 col-lg-12 col-xl-12 col-xxl-12 mb-5\">\r\n <div class=\"d-flex align-items-center mb-2\">\r\n <div class=\"form-check form-switch\">\r\n <input [(ngModel)]=\"isEnable\" [disabled]=\"!editMode\" class=\"form-check-input\" type=\"checkbox\" id=\"isPasserByData\">\r\n </div>\r\n <label class=\"enable-label me-5\" for=\"isPasserByData\">Enable Training </label>\r\n </div>\r\n </div>\r\n <div class=\"py-2\">\r\n <label class=\"headingtext mb-3\">Training Starts after </label>\r\n <div class=\"position-relative selectwidth\">\r\n <div class=\"form-select dropselect levelviewtext\" id=\"currency\" (click)=\"trainingstartsDropdown($event)\"\r\n aria-label=\"Default select example\" [class.disabled]=\"!editMode\">\r\n {{ selectedTrainingStart }} days\r\n </div>\r\n <div *ngIf=\"trainingstartsdropDown\" class=\"card py-2 w-100 position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let trainingstart of trainingstartstype\" class=\"list-unstyled mb-2\">\r\n <li class=\"producttext px-5 py-4 items cursor-pointer\" (click)=\"selectTrainingStarts(trainingstart)\">\r\n {{ trainingstart }}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"d-flex justify-content-end mt-6\">\r\n <div data-kt-subscription-table-toolbar=\"base\"\r\n class=\"d-flex justify-content-end\">\r\n <button *ngIf=\"editMode\" type=\"submit\"\r\n class=\"btn-outline btn needhelp me-4\"\r\n (click)=\"onCancel()\">Cancel</button>\r\n <button *ngIf=\"editMode\" type=\"button\"\r\n tabindex=\"0\" class=\"btn btn-primary px-4 ng-star-inserted\"\r\n (click)=\"onSubmit()\"\r\n ><span>Save Changes\r\n </span></button></div>\r\n</div>\r\n\r\n","import { Component, ElementRef, OnDestroy, ViewChild } from '@angular/core';\r\nimport { ClientApiService } from '../../services/client-api.service';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\n\r\n@Component({\r\n selector: 'lib-configurations',\r\n templateUrl: './configurations.component.html',\r\n styleUrl: './configurations.component.scss'\r\n})\r\nexport class ConfigurationsComponent implements OnDestroy {\r\n clientData: any;\r\n private readonly destroy$ = new Subject();\r\n ticketConfigPrevValues: any;\r\n featureConfigPrevValues: any;\r\n domainConfigPrevValues: any;\r\n userConfigPrevValues: any;\r\n @ViewChild('accordion', { static: true }) accordion: any;\r\n\r\n\r\n\r\n constructor(private clientApi: ClientApiService, private toaster: ToastService, public gs:GlobalStateService) {\r\n this.clientApi.clientFormData.pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if (e.type === 'submit') {\r\n this.submitForm(e)\r\n } else if (e.type === 'cancel') {\r\n this.resetForm(e)\r\n }\r\n })\r\n\r\n this.clientApi.clientData.pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if (e) {\r\n this.clientData = e\r\n this.populateTicketConfiguration(e)\r\n this.populateFeatureConfiguration(e)\r\n this.populateDomainDetailConfiguration(e)\r\n this.populateUserConfiguration(e)\r\n }\r\n })\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n openItem() {\r\n this.populateTicketConfiguration(this.clientData)\r\n this.populateFeatureConfiguration(this.clientData)\r\n this.populateDomainDetailConfiguration(this.clientData)\r\n this.populateUserConfiguration(this.clientData)\r\n }\r\n\r\n populateTicketConfiguration(data: any) {\r\n let obj = {\r\n installationReAssign: data?.ticketConfigs?.installationReAssign,\r\n sendToAdmin: data?.ticketConfigs?.alertSentTo?.admin,\r\n sendToUser: data?.ticketConfigs?.alertSentTo?.user,\r\n downTimeType: data?.ticketConfigs?.downTimeType,\r\n infraDownTime: data?.ticketConfigs?.infraDownTime,\r\n MinFilesCount: data?.ticketConfigs?.MinFilesCount,\r\n isRcaTicketAssign: data?.ticketConfigs?.isRcaTicketAssign,\r\n rcaTicketAssign: data?.ticketConfigs?.rcaTicketAssign,\r\n isRefreshAlert: data?.ticketConfigs?.isRefreshAlert,\r\n refreshAlert: data?.ticketConfigs?.refreshAlert,\r\n isStatusCheckAlert: data?.ticketConfigs?.isStatusCheckAlert,\r\n statusCheckAlert: data?.ticketConfigs?.statusCheckAlert,\r\n reTrain: data?.ticketConfigs?.reTrain,\r\n accuracyPercentage: data?.ticketConfigs?.accuracyPercentage,\r\n }\r\n\r\n this.ticketConfigPrevValues = obj\r\n\r\n this.clientApi.clientFormData.next({ value: { ...obj }, type: 'input', form: 'ticket-configuration' })\r\n }\r\n\r\n populateFeatureConfiguration(data: any) {\r\n let obj = {\r\n open: data?.featureConfigs?.open,\r\n close: data?.featureConfigs?.close,\r\n infraAlertCondition: data?.featureConfigs?.infraAlert?.condition,\r\n infraAlertValue: data?.featureConfigs?.infraAlert?.value,\r\n bouncedLimitCondition: data?.featureConfigs?.bouncedLimit?.condition,\r\n bouncedLimitValue: data?.featureConfigs?.bouncedLimit?.value,\r\n conversionCondition: data?.featureConfigs?.conversion?.condition,\r\n conversionValue: data?.featureConfigs?.conversion?.value,\r\n billableCalculation: data?.featureConfigs?.billableCalculation,\r\n missedOpportunityCalculation: data?.featureConfigs?.missedOpportunityCalculation,\r\n conversionCalculation: data?.featureConfigs?.conversionCalculation,\r\n isNormalized: data?.featureConfigs?.isNormalized,\r\n isPasserByData: data?.featureConfigs?.isPasserByData,\r\n isFootfallDirectory: data?.featureConfigs?.isFootfallDirectory,\r\n }\r\n\r\n this.featureConfigPrevValues = obj\r\n this.clientApi.clientFormData.next({ value: { ...obj }, type: 'input', form: 'feature-configuration' })\r\n }\r\n\r\n populateDomainDetailConfiguration(data: any) {\r\n let obj = {\r\n domainName: data?.ssoLogin?.domainName,\r\n isEnable: data?.ssoLogin?.isEnable,\r\n }\r\n\r\n this.domainConfigPrevValues = obj\r\n\r\n this.clientApi.clientFormData.next({ value: { ...obj }, type: 'input', form: 'domain-details' })\r\n }\r\n\r\n populateUserConfiguration(data: any) {\r\n let obj = {\r\n csm: data?.assignedUsers?.csm,\r\n ops: data?.assignedUsers?.ops,\r\n }\r\n\r\n this.userConfigPrevValues = obj\r\n\r\n this.clientApi.clientFormData.next({ value: { ...obj }, type: 'input', form: 'user-configuration' })\r\n }\r\n\r\n\r\n\r\n submitForm(e: any) {\r\n if (e.form === 'ticket-configuration') {\r\n const data = this.getDifferentEntries(this.ticketConfigPrevValues, e.value) \r\n this.clientApi.updateTicketConfiguration(this.clientData.clientId, data).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (e) => {\r\n this.toaster.getSuccessToast(e.data?.result)\r\n this.clientApi.clientFormData.next({ value: null, type: 'submitted', form: 'null' })\r\n },\r\n error: (e) => {\r\n this.toaster.getErrorToast(e.error?.error)\r\n this.populateTicketConfiguration(this.clientData)\r\n }\r\n })\r\n\r\n } else\r\n if (e.form === 'feature-configuration') {\r\n const data = this.getDifferentEntries(this.featureConfigPrevValues, e.value) \r\n this.clientApi.updateFeatureConfiguration(this.clientData.clientId, data).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (e) => {\r\n this.toaster.getSuccessToast(e.data?.result)\r\n this.clientApi.clientFormData.next({ value: null, type: 'submitted', form: 'null' })\r\n },\r\n error: (e) => {\r\n this.toaster.getErrorToast(e.error?.error)\r\n this.populateFeatureConfiguration(this.clientData)\r\n }\r\n })\r\n\r\n } else\r\n if (e.form === 'domain-details') {\r\n const data = this.getDifferentEntries(this.domainConfigPrevValues, e.value) \r\n this.clientApi.updateDomainDetailConfiguration(this.clientData.clientId, data).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (e) => {\r\n this.toaster.getSuccessToast(e.data?.result)\r\n this.clientApi.clientFormData.next({ value: null, type: 'submitted', form: 'null' })\r\n },\r\n error: (e) => {\r\n this.toaster.getErrorToast(e.error?.error)\r\n this.populateDomainDetailConfiguration(this.clientData)\r\n }\r\n })\r\n\r\n }\r\n\r\n }\r\n\r\n resetForm(e: any) {\r\n if (e.form === 'ticket-configuration') {\r\n this.populateTicketConfiguration(this.clientData)\r\n } else\r\n if (e.form === 'feature-configuration') {\r\n this.populateFeatureConfiguration(this.clientData)\r\n } else\r\n if (e.form === 'domain-details') {\r\n this.populateDomainDetailConfiguration(this.clientData)\r\n } else\r\n if (e.form === 'user-configuration') {\r\n this.populateUserConfiguration(this.clientData)\r\n }\r\n\r\n this.accordion.collapseAll()\r\n\r\n }\r\n\r\n getDifferentEntries(obj1: Record<string, any>, obj2: Record<string, any>): Record<string, any> {\r\n const differentEntries: Record<string, any> = {};\r\n for (const key in obj2) {\r\n if (obj1.hasOwnProperty(key)) {\r\n if (Array.isArray(obj1[key]) && Array.isArray(obj2[key])) {\r\n if (JSON.stringify(obj1[key]) !== JSON.stringify(obj2[key])) {\r\n differentEntries[key] = obj2[key];\r\n }\r\n } else if (obj1[key] !== obj2[key]) {\r\n differentEntries[key] = obj2[key];\r\n }\r\n }\r\n }\r\n return differentEntries;\r\n}\r\n\r\n\r\n\r\n}\r\n","<div class=\"row\">\r\n <div class=\"col-12\">\r\n <div ngbAccordion #accordion=\"ngbAccordion\" [closeOthers]=\"true\" [destroyOnHide]=\"true\" (show)=\"openItem()\" >\r\n <div *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \" class=\"settings-accordian-card mb-6 \" ngbAccordionItem>\r\n <div class=\"d-flex\" ngbAccordionHeader>\r\n <button class=\"mainheading\" ngbAccordionButton>\r\n <div class=\"header-row\">\r\n <span >Audit Configuration</span>\r\n <span class=\"divider\"></span>\r\n </div>\r\n </button>\r\n </div>\r\n <div ngbAccordionCollapse>\r\n <div ngbAccordionBody>\r\n <ng-template>\r\n <lib-audit-configuration></lib-audit-configuration>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \" class=\"settings-accordian-card mb-6\" ngbAccordionItem>\r\n <div class=\"d-flex\" ngbAccordionHeader>\r\n <button class=\"mainheading\" ngbAccordionButton>\r\n <div class=\"header-row\">\r\n <span >Employee Training</span>\r\n <span class=\"divider\"></span>\r\n </div>\r\n </button>\r\n </div>\r\n \r\n <div ngbAccordionCollapse>\r\n <div ngbAccordionBody>\r\n <ng-template>\r\n <lib-employee-training></lib-employee-training>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \" class=\"settings-accordian-card mb-6\" ngbAccordionItem>\r\n <div class=\"d-flex\" ngbAccordionHeader>\r\n <button class=\"mainheading\" ngbAccordionButton>\r\n <div class=\"header-row\">\r\n <span >Ticket Configuration</span>\r\n <span class=\"divider\"></span>\r\n </div>\r\n </button>\r\n </div>\r\n <div ngbAccordionCollapse>\r\n <div ngbAccordionBody>\r\n <ng-template>\r\n <lib-ticket-configuration></lib-ticket-configuration>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \" class=\"settings-accordian-card mb-6\" ngbAccordionItem>\r\n <div class=\"d-flex\" ngbAccordionHeader>\r\n <button class=\"mainheading\" ngbAccordionButton>\r\n <div class=\"header-row\">\r\n <span >Email Configuration</span>\r\n <span class=\"divider\"></span>\r\n </div>\r\n </button>\r\n </div>\r\n <div ngbAccordionCollapse>\r\n <div ngbAccordionBody>\r\n <ng-template>\r\n <lib-email-configuration></lib-email-configuration>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \" class=\"settings-accordian-card mb-6\" ngbAccordionItem>\r\n <div class=\"d-flex\" ngbAccordionHeader>\r\n <button class=\"mainheading\" ngbAccordionButton>\r\n <div class=\"header-row\">\r\n <span >Report Configuration</span>\r\n <span class=\"divider\"></span>\r\n </div>\r\n </button>\r\n </div>\r\n <div ngbAccordionCollapse>\r\n <div ngbAccordionBody>\r\n <ng-template>\r\n <lib-report-configuration></lib-report-configuration>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \" class=\"settings-accordian-card mb-6\" ngbAccordionItem>\r\n <div class=\"d-flex\" ngbAccordionHeader>\r\n <button class=\"mainheading\" ngbAccordionButton>\r\n <div class=\"header-row\">\r\n <span >User Configuration</span>\r\n <span class=\"divider\"></span>\r\n </div>\r\n </button>\r\n </div>\r\n <div ngbAccordionCollapse>\r\n <div ngbAccordionBody>\r\n <ng-template>\r\n <lib-user-configuration></lib-user-configuration>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"settings-accordian-card mb-6\" ngbAccordionItem>\r\n <div class=\"d-flex\" ngbAccordionHeader>\r\n <button class=\"mainheading\" ngbAccordionButton>\r\n <div class=\"header-row\">\r\n <span >Domain Details</span>\r\n <span class=\"divider\"></span>\r\n </div>\r\n </button>\r\n </div>\r\n <div ngbAccordionCollapse>\r\n <div ngbAccordionBody>\r\n <ng-template>\r\n <lib-domain-details></lib-domain-details> \r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"settings-accordian-card mb-6\" ngbAccordionItem>\r\n <div class=\"d-flex\" ngbAccordionHeader>\r\n <button class=\"mainheading\" ngbAccordionButton>\r\n <div class=\"header-row\">\r\n <span >Feature Configuration</span>\r\n <span class=\"divider\"></span>\r\n </div>\r\n </button>\r\n </div>\r\n <div ngbAccordionCollapse>\r\n <div ngbAccordionBody>\r\n <ng-template>\r\n <lib-feature-configuration></lib-feature-configuration>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>","import { ChangeDetectorRef, Component, ElementRef, OnDestroy, ViewChild } from '@angular/core';\r\nimport { FormGroup, FormBuilder } from '@angular/forms';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { ClientApiService } from '../../services/client-api.service';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\n\r\n@Component({\r\n selector: 'lib-documents',\r\n templateUrl: './documents.component.html',\r\n styleUrl: './documents.component.scss'\r\n})\r\nexport class DocumentsComponent implements OnDestroy {\r\n\r\n documentsForm: FormGroup\r\n clientData: any;\r\n @ViewChild('gstFormInput') gstFormInput: ElementRef<HTMLElement>;\r\n @ViewChild('addressProofFormInput') addressProofFormInput: ElementRef<HTMLElement>;\r\n @ViewChild('panFormInput') panFormInput: ElementRef<HTMLElement>;\r\n @ViewChild('cinFormInput') cinFormInput: ElementRef<HTMLElement>;\r\n\r\n private readonly destroy$ = new Subject();\r\n gstFile: File | null;\r\n addressFile: File | null;\r\n panFile: File | null;\r\n cinFile: File | null;\r\n docPrevValues: any;\r\n\r\n\r\n\r\n constructor(private fb: FormBuilder, private apiService: ClientApiService, private cd: ChangeDetectorRef, private toaster: ToastService, public gs: GlobalStateService) {\r\n this.initForm()\r\n this.apiService.clientData.pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if (e) {\r\n this.clientData = e\r\n this.patchForm(e)\r\n }\r\n })\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n\r\n\r\n initForm() {\r\n this.documentsForm = this.fb.group({\r\n addressDoc: [''],\r\n gstNumber: [''],\r\n gstDoc: [''],\r\n panNumber: [''],\r\n panDoc: [''],\r\n cinNumber: [''],\r\n cinDoc: [''],\r\n });\r\n this.documentsForm.disable()\r\n }\r\n\r\n patchForm(data: any) {\r\n this.documentsForm.patchValue(\r\n {\r\n gstNumber: data?.document?.gst?.number,\r\n panNumber: data?.document?.pan?.number,\r\n cinNumber: data?.document?.cin?.number,\r\n }\r\n )\r\n\r\n this.docPrevValues = {\r\n gstNumber: data?.document?.gst?.number,\r\n panNumber: data?.document?.pan?.number,\r\n cinNumber: data?.document?.cin?.number,\r\n addressDoc: data?.document?.contact,\r\n gstDoc: data?.document?.cin?.path,\r\n panDoc: data?.document?.cin?.path,\r\n cinDoc: data?.document?.cin?.path,\r\n }\r\n this.cd.detectChanges()\r\n }\r\n\r\n triggerGstInput(type: string) {\r\n if (type === 'gst') {\r\n this.gstFormInput.nativeElement.click()\r\n } else\r\n if (type === 'address') {\r\n this.addressProofFormInput.nativeElement.click()\r\n } else\r\n if (type === 'pan') {\r\n this.panFormInput.nativeElement.click()\r\n } else\r\n if (type === 'cin') {\r\n this.cinFormInput.nativeElement.click()\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n onFileSelect(event: any, type: string) {\r\n if (!event.target.files || !event.target.files[0]) {\r\n return\r\n }\r\n if (type === 'gst') {\r\n const file: File = event.target.files[0];\r\n this.gstFile = file\r\n } else\r\n if (type === 'address') {\r\n const file: File = event.target.files[0];\r\n this.addressFile = file\r\n } else\r\n if (type === 'pan') {\r\n const file: File = event.target.files[0];\r\n this.panFile = file\r\n } else\r\n if (type === 'cin') {\r\n const file: File = event.target.files[0];\r\n this.cinFile = file\r\n }\r\n\r\n }\r\n\r\n\r\n onCancel() {\r\n this.gstFile = null;\r\n this.addressFile = null;\r\n this.panFile = null;\r\n this.cinFile = null;\r\n this.documentsForm.disable()\r\n this.patchForm(this.clientData)\r\n }\r\n\r\n onSubmit() {\r\n if (this.gstFile) {\r\n this.documentsForm.value.gstDoc = this.gstFile\r\n }\r\n if (this.addressFile) {\r\n this.documentsForm.value.addressDoc = this.addressFile\r\n }\r\n if (this.panFile) {\r\n this.documentsForm.value.panDoc = this.panFile\r\n }\r\n if (this.cinFile) {\r\n this.documentsForm.value.cinDoc = this.cinFile\r\n }\r\n const data = this.getDifferentEntries(this.docPrevValues, this.documentsForm.value)\r\n \r\n const formData = this.jsonToFormData(data)\r\n\r\n this.apiService.updateDocuments(this.clientData.clientId, formData).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (e) => {\r\n this.toaster.getSuccessToast(e.data?.result)\r\n this.apiService.clientFormData.next({ value: null, type: 'submitted', form: 'null' })\r\n },\r\n error: (e) => {\r\n this.toaster.getErrorToast(e.error?.error)\r\n this.patchForm(this.clientData)\r\n }\r\n })\r\n }\r\n\r\n getDifferentEntries(obj1: Record<string, any>, obj2: Record<string, any>): Record<string, any> {\r\n const differentEntries: Record<string, any> = {};\r\n for (const key in obj2) {\r\n if (obj1.hasOwnProperty(key) && obj1[key] !== obj2[key] && obj2[key]) {\r\n differentEntries[key] = obj2[key];\r\n }\r\n }\r\n return differentEntries;\r\n }\r\n\r\n jsonToFormData(jsonData: Record<string, any>): FormData {\r\n\r\n const formData = new FormData();\r\n for (const key in jsonData) {\r\n if (jsonData.hasOwnProperty(key)) {\r\n const value = jsonData[key];\r\n formData.append(key, value);\r\n }\r\n }\r\n\r\n return formData;\r\n }\r\n\r\n}\r\n","<div class=\"settings-accordian-card\">\r\n <form [formGroup]=\"documentsForm\">\r\n <div class=\"row\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_documents_isEdit \">\r\n <div class=\"col-12 mb-5\">\r\n <div class=\" d-flex justify-content-between\">\r\n <div class=\"header\">Upload Your Documents</div>\r\n <button *ngIf=\"documentsForm.disabled\"\r\n (click)=\"documentsForm.disabled ? documentsForm.enable() : documentsForm.disable()\"\r\n type=\"button\" class=\"btn btn-outline align-items-end\"><span class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <g clip-path=\"url(#clip0_2579_25125)\">\r\n <path\r\n d=\"M14.167 2.49993C14.3859 2.28106 14.6457 2.10744 14.9317 1.98899C15.2176 1.87054 15.5241 1.80957 15.8337 1.80957C16.1432 1.80957 16.4497 1.87054 16.7357 1.98899C17.0216 2.10744 17.2815 2.28106 17.5003 2.49993C17.7192 2.7188 17.8928 2.97863 18.0113 3.2646C18.1297 3.55057 18.1907 3.85706 18.1907 4.16659C18.1907 4.47612 18.1297 4.78262 18.0113 5.06859C17.8928 5.35455 17.7192 5.61439 17.5003 5.83326L6.25033 17.0833L1.66699 18.3333L2.91699 13.7499L14.167 2.49993Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2579_25125\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>Edit Details</button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"gstNumber\" class=\"form-label\">Address Proof <span class=\"alert-required\"></span></label>\r\n <div class=\"input-group \">\r\n <input readonly type=\"text\" class=\"form-control\" placeholder=\"\"\r\n aria-label=\"Example text with button addon\" aria-describedby=\"button-addon1\" id=\"gstNumber\">\r\n <button (click)=\"triggerGstInput('address')\" [disabled]=\"documentsForm.disabled\"\r\n class=\"btn btn-outline upload-btn\" type=\"button\" id=\"button-addon1\">\r\n <span class=\"me-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n Upload</button>\r\n </div>\r\n <input (change)=\"onFileSelect($event, 'address')\" accept=\".pdf\" class=\"d-none\" #addressProofFormInput type=\"file\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_documents_isDownload \">\r\n <a *ngIf=\"clientData?.document?.addressProof?.path && !addressFile\"\r\n [href]=\"clientData?.document?.addressProof?.path\" target=\"_blank\" class=\"mt-3\">\r\n <span class=\"uploaded-doc-text me-2\">Incorporate Certificate</span>\r\n </a>\r\n </ng-container>\r\n <span *ngIf=\"addressFile\" class=\"mt-3 d-flex align-items-center\">\r\n <span class=\"uploaded-doc-text me-2\">{{addressFile.name ? addressFile.name : ''}}</span>\r\n <svg class=\"cursor-pointer\" (click)=\"addressFile = null\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M12.5003 7.50001L7.50033 12.5M7.50033 7.50001L12.5003 12.5M18.3337 10C18.3337 14.6024 14.6027 18.3333 10.0003 18.3333C5.39795 18.3333 1.66699 14.6024 1.66699 10C1.66699 5.39763 5.39795 1.66667 10.0003 1.66667C14.6027 1.66667 18.3337 5.39763 18.3337 10Z\" stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"gstNumber\" class=\"form-label\">GST Number <span class=\"alert-required\"></span></label>\r\n <div class=\"input-group \">\r\n <input formControlName=\"gstNumber\" type=\"text\" class=\"form-control\" placeholder=\"\"\r\n aria-label=\"Example text with button addon\" aria-describedby=\"button-addon1\" id=\"gstNumber\">\r\n <button (click)=\"triggerGstInput('gst')\" [disabled]=\"documentsForm.disabled\"\r\n class=\"btn btn-outline upload-btn\" type=\"button\" id=\"button-addon1\">\r\n <span class=\"me-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n Upload</button>\r\n </div>\r\n <input (change)=\"onFileSelect($event, 'gst')\" accept=\".pdf\" class=\"d-none\" #gstFormInput type=\"file\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_documents_isDownload \" >\r\n <a *ngIf=\"clientData?.document?.gst?.path && !gstFile\" [href]=\"clientData?.document?.gst?.path\" target=\"_blank\"\r\n class=\"mt-3\">\r\n <span class=\"uploaded-doc-text me-2\">GST Certificate</span>\r\n </a> \r\n </ng-container>\r\n <span *ngIf=\"gstFile\" class=\"mt-3 d-flex align-items-center\">\r\n <span class=\"uploaded-doc-text me-2\">{{gstFile.name ? gstFile.name : ''}}</span>\r\n <svg class=\"cursor-pointer\" (click)=\"gstFile = null\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M12.5003 7.50001L7.50033 12.5M7.50033 7.50001L12.5003 12.5M18.3337 10C18.3337 14.6024 14.6027 18.3333 10.0003 18.3333C5.39795 18.3333 1.66699 14.6024 1.66699 10C1.66699 5.39763 5.39795 1.66667 10.0003 1.66667C14.6027 1.66667 18.3337 5.39763 18.3337 10Z\" stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n \r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"gstNumber\" class=\"form-label\">Pan Number <span class=\"alert-required\"></span></label>\r\n <div class=\"input-group \">\r\n <input formControlName=\"panNumber\" type=\"text\" class=\"form-control\" placeholder=\"\"\r\n aria-label=\"Example text with button addon\" aria-describedby=\"button-addon1\" id=\"gstNumber\">\r\n <button (click)=\"triggerGstInput('pan')\" [disabled]=\"documentsForm.disabled\"\r\n class=\"btn btn-outline upload-btn\" type=\"button\" id=\"button-addon1\">\r\n <span class=\"me-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n Upload</button>\r\n </div>\r\n <input (change)=\"onFileSelect($event, 'pan')\" accept=\".pdf\" class=\"d-none\" #panFormInput type=\"file\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_documents_isDownload \" >\r\n <a *ngIf=\"clientData?.document?.pan?.path && !panFile\" [href]=\"clientData?.document?.pan?.path\" target=\"_blank\"\r\n class=\"mt-3\">\r\n <span class=\"uploaded-doc-text me-2\">PAN Certificate</span>\r\n </a> \r\n </ng-container>\r\n <span *ngIf=\"panFile\" class=\"mt-3 d-flex align-items-center\">\r\n <span class=\"uploaded-doc-text me-2\">{{panFile.name ? panFile.name : ''}}</span>\r\n <svg class=\"cursor-pointer\" (click)=\"panFile = null\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M12.5003 7.50001L7.50033 12.5M7.50033 7.50001L12.5003 12.5M18.3337 10C18.3337 14.6024 14.6027 18.3333 10.0003 18.3333C5.39795 18.3333 1.66699 14.6024 1.66699 10C1.66699 5.39763 5.39795 1.66667 10.0003 1.66667C14.6027 1.66667 18.3337 5.39763 18.3337 10Z\" stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n \r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"gstNumber\" class=\"form-label\">CIN Number <span class=\"alert-required\"></span></label>\r\n <div class=\"input-group \">\r\n <input formControlName=\"cinNumber\" type=\"text\" class=\"form-control\" placeholder=\"\"\r\n aria-label=\"Example text with button addon\" aria-describedby=\"button-addon1\" id=\"gstNumber\">\r\n <button (click)=\"triggerGstInput('cin')\" [disabled]=\"documentsForm.disabled\"\r\n class=\"btn btn-outline upload-btn\" type=\"button\" id=\"button-addon1\">\r\n <span class=\"me-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n Upload</button>\r\n </div>\r\n <input (change)=\"onFileSelect($event, 'cin')\" accept=\".pdf\" class=\"d-none\" #cinFormInput type=\"file\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_documents_isDownload \" >\r\n <a *ngIf=\"clientData?.document?.cin?.path && !cinFile\" [href]=\"clientData?.document?.cin?.path\" target=\"_blank\"\r\n class=\"mt-3\">\r\n <span class=\"uploaded-doc-text me-2\">CIN Certificate</span>\r\n </a> \r\n </ng-container>\r\n <span *ngIf=\"cinFile\" class=\"mt-3 d-flex align-items-center\">\r\n <span class=\"uploaded-doc-text me-2\">{{cinFile.name ? cinFile.name : ''}}</span>\r\n <svg class=\"cursor-pointer\" (click)=\"cinFile = null\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M12.5003 7.50001L7.50033 12.5M7.50033 7.50001L12.5003 12.5M18.3337 10C18.3337 14.6024 14.6027 18.3333 10.0003 18.3333C5.39795 18.3333 1.66699 14.6024 1.66699 10C1.66699 5.39763 5.39795 1.66667 10.0003 1.66667C14.6027 1.66667 18.3337 5.39763 18.3337 10Z\" stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n \r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"invoiceAuthorityName\" class=\"form-label\">Contract Agreement <span\r\n class=\"alert-required\"></span></label>\r\n\r\n\r\n <div class=\"file-open-input\">\r\n <svg class=\"l-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"26\" viewBox=\"0 0 26 26\"\r\n fill=\"none\">\r\n <path\r\n d=\"M3.24998 0H17.0568L24.3749 7.28977V24.375C24.3749 25.2728 23.647 26 22.75 26H3.24998C2.35296 26 1.625 25.2728 1.625 24.375V1.62498C1.625 0.727203 2.35304 0 3.24998 0Z\"\r\n fill=\"#E2574C\" />\r\n <path\r\n d=\"M24.3514 7.31187H18.6875C17.7905 7.31187 17.0625 6.58391 17.0625 5.68689V0.015625L24.3514 7.31187Z\"\r\n fill=\"#B53629\" />\r\n <path\r\n d=\"M18.2793 12.318C18.5515 12.318 18.6848 12.0808 18.6848 11.8508C18.6848 11.6127 18.5458 11.3828 18.2793 11.3828H16.7291C16.426 11.3828 16.257 11.6338 16.257 11.9109V15.7207C16.257 16.0604 16.4504 16.2489 16.712 16.2489C16.972 16.2489 17.1662 16.0604 17.1662 15.7207V14.6751H18.1039C18.3947 14.6751 18.5402 14.437 18.5402 14.2006C18.5402 13.9691 18.3947 13.739 18.1039 13.739H17.1662V12.318H18.2793ZM13.0395 11.3828H11.9052C11.5973 11.3828 11.3787 11.5941 11.3787 11.9077V15.724C11.3787 16.1132 11.6931 16.2351 11.9182 16.2351H13.1085C14.5174 16.2351 15.4477 15.308 15.4477 13.8772C15.4469 12.3643 14.5711 11.3828 13.0395 11.3828ZM13.094 15.2942H12.4025V12.3237H13.0257C13.9691 12.3237 14.3793 12.9567 14.3793 13.8301C14.3793 14.6475 13.9763 15.2942 13.094 15.2942ZM8.93882 11.3828H7.81515C7.49745 11.3828 7.32031 11.5924 7.32031 11.9109V15.7207C7.32031 16.0604 7.52342 16.2489 7.7964 16.2489C8.06937 16.2489 8.27249 16.0604 8.27249 15.7207V14.6084H8.97691C9.84627 14.6084 10.5637 13.9925 10.5637 13.0021C10.5638 12.0328 9.87158 11.3828 8.93882 11.3828ZM8.92016 13.7147H8.27257V12.2774H8.92016C9.31991 12.2774 9.57422 12.5894 9.57422 12.9964C9.57338 13.4028 9.31991 13.7147 8.92016 13.7147Z\"\r\n fill=\"white\" />\r\n </svg>\r\n <input type=\"type\" value=\"Contract Agreement.pdf\" readonly class=\"form-control\"\r\n id=\"invoiceAuthorityName\" autocomplete=\"off\">\r\n <a target=\"_blank\" class=\"r-icon\" [href]=\"clientData?.document?.contract\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M0.833984 10C0.833984 10 4.16732 3.33337 10.0007 3.33337C15.834 3.33337 19.1673 10 19.1673 10C19.1673 10 15.834 16.6667 10.0007 16.6667C4.16732 16.6667 0.833984 10 0.833984 10Z\"\r\n stroke=\"#344054\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M10.0007 12.5C11.3814 12.5 12.5006 11.3808 12.5006 10C12.5006 8.61933 11.3814 7.50004 10.0007 7.50004C8.61994 7.50004 7.50065 8.61933 7.50065 10C7.50065 11.3808 8.61994 12.5 10.0007 12.5Z\"\r\n stroke=\"#344054\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </a>\r\n\r\n </div>\r\n\r\n\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"invoiceAuthorityName\" class=\"form-label\">T&C Agreement <span\r\n class=\"alert-required\"></span></label>\r\n <div class=\"file-open-input\">\r\n <svg class=\"l-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"26\" viewBox=\"0 0 26 26\"\r\n fill=\"none\">\r\n <path\r\n d=\"M3.24998 0H17.0568L24.3749 7.28977V24.375C24.3749 25.2728 23.647 26 22.75 26H3.24998C2.35296 26 1.625 25.2728 1.625 24.375V1.62498C1.625 0.727203 2.35304 0 3.24998 0Z\"\r\n fill=\"#E2574C\" />\r\n <path\r\n d=\"M24.3514 7.31187H18.6875C17.7905 7.31187 17.0625 6.58391 17.0625 5.68689V0.015625L24.3514 7.31187Z\"\r\n fill=\"#B53629\" />\r\n <path\r\n d=\"M18.2793 12.318C18.5515 12.318 18.6848 12.0808 18.6848 11.8508C18.6848 11.6127 18.5458 11.3828 18.2793 11.3828H16.7291C16.426 11.3828 16.257 11.6338 16.257 11.9109V15.7207C16.257 16.0604 16.4504 16.2489 16.712 16.2489C16.972 16.2489 17.1662 16.0604 17.1662 15.7207V14.6751H18.1039C18.3947 14.6751 18.5402 14.437 18.5402 14.2006C18.5402 13.9691 18.3947 13.739 18.1039 13.739H17.1662V12.318H18.2793ZM13.0395 11.3828H11.9052C11.5973 11.3828 11.3787 11.5941 11.3787 11.9077V15.724C11.3787 16.1132 11.6931 16.2351 11.9182 16.2351H13.1085C14.5174 16.2351 15.4477 15.308 15.4477 13.8772C15.4469 12.3643 14.5711 11.3828 13.0395 11.3828ZM13.094 15.2942H12.4025V12.3237H13.0257C13.9691 12.3237 14.3793 12.9567 14.3793 13.8301C14.3793 14.6475 13.9763 15.2942 13.094 15.2942ZM8.93882 11.3828H7.81515C7.49745 11.3828 7.32031 11.5924 7.32031 11.9109V15.7207C7.32031 16.0604 7.52342 16.2489 7.7964 16.2489C8.06937 16.2489 8.27249 16.0604 8.27249 15.7207V14.6084H8.97691C9.84627 14.6084 10.5637 13.9925 10.5637 13.0021C10.5638 12.0328 9.87158 11.3828 8.93882 11.3828ZM8.92016 13.7147H8.27257V12.2774H8.92016C9.31991 12.2774 9.57422 12.5894 9.57422 12.9964C9.57338 13.4028 9.31991 13.7147 8.92016 13.7147Z\"\r\n fill=\"white\" />\r\n </svg>\r\n <input type=\"type\" value=\"T & C Agreement.pdf\" readonly class=\"form-control\"\r\n id=\"invoiceAuthorityName\" autocomplete=\"off\">\r\n <a target=\"_blank\" class=\"r-icon\" [href]=\"clientData?.document?.termsAndconditions\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M0.833984 10C0.833984 10 4.16732 3.33337 10.0007 3.33337C15.834 3.33337 19.1673 10 19.1673 10C19.1673 10 15.834 16.6667 10.0007 16.6667C4.16732 16.6667 0.833984 10 0.833984 10Z\"\r\n stroke=\"#344054\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M10.0007 12.5C11.3814 12.5 12.5006 11.3808 12.5006 10C12.5006 8.61933 11.3814 7.50004 10.0007 7.50004C8.61994 7.50004 7.50065 8.61933 7.50065 10C7.50065 11.3808 8.61994 12.5 10.0007 12.5Z\"\r\n stroke=\"#344054\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </a>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"documentsForm.enabled\">\r\n <div class=\"mb-5 w-100 footer-seperator\"></div>\r\n <div class=\"d-flex justify-content-end\">\r\n <a type=\"button\" class=\"btn btn-outline me-4\" (click)=\"onCancel()\">Cancel</a>\r\n <a type=\"submit\" class=\"btn btn-primary px-4 \" (click)=\"onSubmit()\"><span>Save Changes</span></a>\r\n </div>\r\n </div>\r\n\r\n </form>\r\n\r\n</div>","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ClientApiService } from '../../../services/client-api.service';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\n\r\n@Component({\r\n selector: 'lib-edit-spoc',\r\n templateUrl: './edit-spoc.component.html',\r\n styleUrl: './edit-spoc.component.scss'\r\n})\r\nexport class EditSpocComponent implements OnInit, OnDestroy {\r\n\r\n editSpocForm: FormGroup\r\n @Input() spocId:string\r\n @Input() storeId:string\r\n private readonly destroy$ = new Subject();\r\n\r\n\r\n\r\n constructor(private fb: FormBuilder, private apiService: ClientApiService, private activeModal: NgbActiveModal,\r\n private toaster:ToastService\r\n ) {\r\n this.initForm()\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n ngOnInit(){\r\n this.getSpocData()\r\n }\r\n\r\n getSpocData(){\r\n this.apiService.getSpocDetails(this.storeId, this.spocId).pipe(takeUntil(this.destroy$)).subscribe({\r\n next:(e)=>{\r\n if(e){\r\n this.patchForm(e.data)\r\n }\r\n },\r\n error:()=>{\r\n\r\n }\r\n })\r\n }\r\n\r\n patchForm(data:any){\r\n this.editSpocForm.patchValue({\r\n name: data?.name,\r\n email: data?.email,\r\n contact: data?.contact,\r\n designation: data?.designation,\r\n })\r\n }\r\n\r\n\r\n initForm() {\r\n this.editSpocForm = this.fb.group({\r\n name: ['', Validators.compose([\r\n Validators.required,\r\n ])],\r\n email: ['', Validators.compose([\r\n Validators.required,\r\n ])],\r\n contact: ['', Validators.compose([\r\n Validators.required,\r\n ])],\r\n designation:[''],\r\n });\r\n }\r\n\r\n\r\n onCancel() {\r\n this.activeModal.close();\r\n }\r\n \r\n\r\n onSubmit() {\r\n let data = {\r\n spocDetail:{...this.editSpocForm.value, _id:this.spocId}\r\n }\r\n this.apiService.updateSpocDetails(this.storeId, data).pipe(takeUntil(this.destroy$)).subscribe({\r\n next:(e)=>{\r\n if(e){\r\n this.activeModal.close({type:'edit'})\r\n }\r\n },\r\n error:(e)=>{\r\n this.toaster.getErrorToast(e.error?.error)\r\n }\r\n })\r\n }\r\n\r\n}\r\n","<form [formGroup]=\"editSpocForm\">\r\n <div class=\"row\">\r\n <div class=\"col-12 mb-5\">\r\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#DAF1FF\"/>\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#EAF8FF\" stroke-width=\"8\"/>\r\n <path d=\"M36 37V35C36 33.9391 35.5786 32.9217 34.8284 32.1716C34.0783 31.4214 33.0609 31 32 31H24C22.9391 31 21.9217 31.4214 21.1716 32.1716C20.4214 32.9217 20 33.9391 20 35V37M32 23C32 25.2091 30.2091 27 28 27C25.7909 27 24 25.2091 24 23C24 20.7909 25.7909 19 28 19C30.2091 19 32 20.7909 32 23Z\" stroke=\"#00A3FF\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </div>\r\n <div class=\"col-12 mb-10 d-flex align-items-center justify-content-between\">\r\n <div>\r\n <div class=\"header mb-3\">Contact Details</div>\r\n <div class=\"sub-header\">View and edit the contact details</div>\r\n </div>\r\n <div>\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g filter=\"url(#filter0_d_5809_34049)\">\r\n <rect x=\"2\" y=\"1\" width=\"36\" height=\"36\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"35\" height=\"35\" rx=\"7.5\" stroke=\"#EAECF0\" />\r\n <g clip-path=\"url(#clip0_5809_34049)\">\r\n <path\r\n d=\"M19.167 12.3332H13.3337C12.8916 12.3332 12.4677 12.5088 12.1551 12.8214C11.8426 13.1339 11.667 13.5578 11.667 13.9999V25.6665C11.667 26.1086 11.8426 26.5325 12.1551 26.845C12.4677 27.1576 12.8916 27.3332 13.3337 27.3332H25.0003C25.4424 27.3332 25.8663 27.1576 26.1788 26.845C26.4914 26.5325 26.667 26.1086 26.667 25.6665V19.8332M25.417 11.0832C25.7485 10.7517 26.1982 10.5654 26.667 10.5654C27.1358 10.5654 27.5855 10.7517 27.917 11.0832C28.2485 11.4147 28.4348 11.8644 28.4348 12.3332C28.4348 12.802 28.2485 13.2517 27.917 13.5832L20.0003 21.4999L16.667 22.3332L17.5003 18.9999L25.417 11.0832Z\"\r\n stroke=\"#D0D5DD\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_5809_34049\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_5809_34049\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_5809_34049\"\r\n result=\"shape\" />\r\n </filter>\r\n <clipPath id=\"clip0_5809_34049\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" transform=\"translate(10 9)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </div>\r\n\r\n </div>\r\n <div class=\"col-12 mb-5\">\r\n <label for=\"name\" class=\"form-label\">SPOC Name<span class=\"alert-required\"></span></label>\r\n <input formControlName=\"name\" type=\"text\" class=\"form-control disabled-input\" id=\"name\" autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-12 mb-5\">\r\n <label for=\"email\" class=\"form-label\">SPOC Email<span class=\"alert-required\"></span></label>\r\n <input formControlName=\"email\" type=\"text\" class=\"form-control disabled-input\" id=\"email\"\r\n autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-12 mb-5\">\r\n <label for=\"contact\" class=\"form-label\">Contact Number<span class=\"alert-required\"></span></label>\r\n <input formControlName=\"contact\" type=\"text\" class=\"form-control disabled-input\" id=\"contact\"\r\n autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-12 mb-5\">\r\n <label for=\"designation\" class=\"form-label\">Designation (optional)<span\r\n class=\"alert-required\"></span></label>\r\n <input formControlName=\"designation\" type=\"text\" class=\"form-control disabled-input\" id=\"designation\"\r\n autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-12 mt-10\">\r\n <div class=\"row\">\r\n <div class=\"col \">\r\n <button type=\"button\" class=\"btn btn-outline w-100 \" (click)=\"onCancel()\">Cancel</button>\r\n </div>\r\n <div class=\"col\">\r\n <button [disabled]=\"editSpocForm.invalid\" type=\"button\" class=\"btn btn-primary w-100\"\r\n (click)=\"onSubmit()\"><span>Update</span></button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</form>","import { Component, Input, OnDestroy } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ClientApiService } from '../../../services/client-api.service';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\n\r\n@Component({\r\n selector: 'lib-detele-spoc',\r\n templateUrl: './detele-spoc.component.html',\r\n styleUrl: './detele-spoc.component.scss'\r\n})\r\nexport class DeteleSpocComponent implements OnDestroy {\r\n @Input() spocId:string\r\n @Input() storeId:string\r\n private readonly destroy$ = new Subject();\r\n\r\n\r\n constructor(private apiService: ClientApiService, private activeModal: NgbActiveModal,private toast:ToastService) {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n onCancel() {\r\n this.activeModal.close();\r\n }\r\n \r\n\r\n onSubmit() {\r\n this.apiService.deleteSpocDetails(this.storeId, this.spocId).pipe(takeUntil(this.destroy$)).subscribe({\r\n next:(e)=>{\r\n if(e){\r\n this.activeModal.close({type:'delete'})\r\n }\r\n },\r\n error:(err) =>{\r\n this.activeModal.close();\r\n if(err?.error?.error?.error)\r\n this.toast.getErrorToast(err?.error?.error?.error);\r\n else\r\n this.toast.getErrorToast('Something went wrong');\r\n\r\n }\r\n })\r\n }\r\n}\r\n"," <div class=\"row\">\r\n <div class=\"col-12 mb-5\">\r\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#FEE4E2\"/>\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#FEF3F2\" stroke-width=\"8\"/>\r\n <path d=\"M28 24V28M28 32H28.01M38 28C38 33.5228 33.5228 38 28 38C22.4772 38 18 33.5228 18 28C18 22.4772 22.4772 18 28 18C33.5228 18 38 22.4772 38 28Z\" stroke=\"#D92D20\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </div>\r\n <div class=\"col-12\">\r\n <div class=\"header mb-3\">Are you sure?</div>\r\n <div class=\"sub-header\">Do you want to delete the user globally?</div>\r\n </div>\r\n <div class=\"col-12 mt-10\">\r\n <div class=\"row\">\r\n <div class=\"col \">\r\n <button type=\"button\" class=\"btn btn-outline w-100 \" (click)=\"onCancel()\">Cancel</button>\r\n </div>\r\n <div class=\"col\">\r\n <button type=\"button\" class=\"btn btn-danger w-100\"\r\n (click)=\"onSubmit()\"><span>Delete</span></button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n","import { ChangeDetectorRef, Component, OnDestroy } from '@angular/core';\r\nimport { ClientApiService } from '../../services/client-api.service';\r\nimport { BehaviorSubject, Subject, debounceTime, distinctUntilChanged, takeUntil } from 'rxjs';\r\nimport { FormControl } from '@angular/forms';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { EditSpocComponent } from './edit-spoc/edit-spoc.component';\r\nimport { DeteleSpocComponent } from './detele-spoc/detele-spoc.component';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\nimport { Router } from '@angular/router';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'lib-contact-directory',\r\n templateUrl: './contact-directory.component.html',\r\n styleUrl: './contact-directory.component.scss'\r\n})\r\nexport class ContactDirectoryComponent implements OnDestroy {\r\n\r\n countryList: any = []\r\n stateList: any = []\r\n cityList: any = []\r\n storeList: any = []\r\n selectedCountry: any\r\n selectedState: any\r\n selectedCity: any = []\r\n selectedStore: any = []\r\n clienId: string;\r\n\r\n spocList: any = []\r\n isExport: boolean = false;\r\n searchValue: string | null = '';\r\n\r\n // paginationVariables\r\n itemsPerPage = 10\r\n currentPage = 1\r\n totalItems = 0\r\n paginationSizes = [10, 20, 30]\r\n pageSize = 10\r\n\r\n searchInput = new FormControl()\r\n\r\n private readonly destroy$ = new Subject();\r\n pageState$ = new BehaviorSubject<'loaded' | 'loading'>('loading');\r\n\r\n\r\n\r\n constructor(private clientService: ClientApiService, private cd: ChangeDetectorRef, private modalService:NgbModal, private toast:ToastService,\r\n public gs:GlobalStateService, private router:Router\r\n ) {\r\n this.clientService.clientId.pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if (e) {\r\n this.clienId = e\r\n this.getAllStores(e)\r\n this.getSpocTable()\r\n }\r\n })\r\n this.getAllCountries()\r\n this.initSearch()\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n getAllCountries() {\r\n this.clientService.getAllCountries().pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if (e?.data?.length) {\r\n this.countryList = e.data\r\n } else {\r\n this.countryList = []\r\n }\r\n }\r\n )\r\n }\r\n\r\n getAllStates(country: string) {\r\n this.clientService.getAllStates(country).pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if (e?.data?.length) {\r\n this.stateList = e.data\r\n } else {\r\n this.stateList = []\r\n }\r\n }\r\n )\r\n }\r\n\r\n getAllCities(country: string, state: string) {\r\n this.clientService.getAllCities(country, state).pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if (e?.data?.length) {\r\n this.cityList = e.data\r\n } else {\r\n this.cityList = []\r\n }\r\n }\r\n )\r\n }\r\n\r\n getAllStores(clientId: string) {\r\n this.clientService.getStoreList(clientId).pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if (e) {\r\n this.storeList = e?.data?.result\r\n } else {\r\n this.storeList = []\r\n }\r\n })\r\n }\r\n\r\n onCountrySelect(event: any) {\r\n this.selectedCountry = event\r\n this.getAllStates(this.selectedCountry.isoCode)\r\n }\r\n\r\n onStateSelect(event: any) {\r\n this.selectedState = event\r\n this.getAllCities(this.selectedCountry.isoCode, this.selectedState.isoCode)\r\n }\r\n\r\n onCitySelect(event: any) { \r\n this.selectedCity = event\r\n }\r\n\r\n onStoreSelect(event: any) {\r\n this.selectedStore = event\r\n }\r\n\r\n onFilterApply() {\r\n this.getSpocTable()\r\n }\r\n\r\n getSpocTable() {\r\n this.pageState$.next('loading')\r\n let filters: Record<string, any> = {\r\n export: this.isExport,\r\n limit: this.pageSize,\r\n offset: this.currentPage,\r\n clientId: this.clienId\r\n }\r\n if (this.searchValue) {\r\n filters.search = this.searchValue\r\n }\r\n if (this.selectedCountry) {\r\n filters.country = this.selectedCountry.name\r\n }\r\n if (this.selectedState) {\r\n filters.state = this.selectedState.name\r\n }\r\n if (this.selectedCity.length) {\r\n filters.city = this.selectedCity.map((e:any)=> e.name)\r\n }\r\n if (this.getStoreIdArray(this.selectedStore)?.length) {\r\n filters.storeId = this.getStoreIdArray(this.selectedStore)\r\n } \r\n\r\n if(this.isExport){\r\n this.clientService.spocTableDataExport(filters).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (e) => { \r\n this.pageState$.next('loaded')\r\n this.clientService.saveAsTemplate(e, 'contact_directory') \r\n this.isExport = false\r\n }\r\n })\r\n }else{\r\n this.clientService.spocTableData(filters).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (e) => { \r\n this.pageState$.next('loaded') \r\n if (e?.data?.count) {\r\n this.spocList = e.data?.data\r\n this.totalItems = e.data?.count\r\n this.cd.detectChanges()\r\n } else {\r\n this.spocList = []\r\n this.totalItems = 0\r\n this.cd.detectChanges()\r\n } \r\n \r\n },\r\n error: (e) => { \r\n this.spocList = []\r\n this.totalItems = 0\r\n this.cd.detectChanges()\r\n }\r\n }) \r\n }\r\n\r\n \r\n }\r\n\r\n initSearch() {\r\n this.searchInput.valueChanges.pipe(takeUntil(this.destroy$)).pipe(debounceTime(1000), distinctUntilChanged()).subscribe(\r\n (e) => {\r\n this.searchValue = e\r\n this.getSpocTable()\r\n }\r\n )\r\n }\r\n\r\n onPageChange(pageOffset: number) {\r\n this.currentPage = Number(pageOffset)\r\n this.getSpocTable()\r\n\r\n }\r\n\r\n onPageSizeChange(pageSize: number) {\r\n this.pageSize = Number(pageSize)\r\n this.currentPage = 1\r\n this.getSpocTable()\r\n }\r\n\r\n onExport() {\r\n this.isExport = true\r\n this.getSpocTable()\r\n }\r\n\r\n openEditSpocModal(spocId:string, storeId:string) {\r\n const modalRef = this.modalService.open(EditSpocComponent, { size: 'md', centered: true });\r\n modalRef.componentInstance.spocId = spocId\r\n modalRef.componentInstance.storeId = storeId\r\n modalRef.result.then((event) => { \r\n if (event?.type === 'edit') { \r\n this.toast.getSuccessToast('Updated successfully.') \r\n this.getSpocTable()\r\n }\r\n });\r\n }\r\n\r\n openDeleteSpocModal(spocId:string, storeId:string) {\r\n const modalRef = this.modalService.open(DeteleSpocComponent, { size: 'md', centered: true });\r\n modalRef.componentInstance.spocId = spocId\r\n modalRef.componentInstance.storeId = storeId\r\n modalRef.result.then((event) => { \r\n if (event?.type === 'delete') { \r\n this.toast.getSuccessToast('User deleted successfully.') \r\n this.getSpocTable()\r\n }\r\n });\r\n }\r\n\r\n getStoreIdArray(stores:any){\r\n const idArray = stores.map((e:any)=>e.storeId)\r\n return idArray\r\n }\r\n\r\n redirectToStore(storeId:any){\r\n this.router.navigate(\r\n ['/manage/stores/settings'],\r\n { queryParams: { storeId: storeId } }\r\n )\r\n }\r\n}\r\n","<div class=\"contact-card\">\r\n <h3 class=\"mb-5\">\r\n <span class=\"card-label mb-2\">Select Your Preferences</span>\r\n </h3>\r\n <div class=\"row\">\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"infraDownTime\" class=\"form-label\">Country <span class=\"alert-required\"></span></label>\r\n <lib-select [items]=\"countryList\" [multi]=\"false\" [searchField]=\"'name'\" [idField]=\"'isoCode'\"\r\n (selected)=\"onCountrySelect($event)\" [selectedValues]=\"[selectedCountry]\"></lib-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"infraDownTime\" class=\"form-label\">State <span class=\"alert-required\"></span></label>\r\n <lib-select [items]=\"stateList\" [multi]=\"false\" [searchField]=\"'name'\" [idField]=\"'isoCode'\"\r\n (selected)=\"onStateSelect($event)\" [selectedValues]=\"[selectedState]\"></lib-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"infraDownTime\" class=\"form-label\">City <span class=\"alert-required\"></span></label>\r\n <lib-select [items]=\"cityList\" [multi]=\"true\" [searchField]=\"'name'\" [idField]=\"'latitude'\"\r\n (selected)=\"onCitySelect($event)\" [selectedValues]=\"selectedCity\"></lib-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"infraDownTime\" class=\"form-label\">Store Id <span class=\"alert-required\"></span></label>\r\n <lib-select [items]=\"storeList\" [multi]=\"true\" [searchField]=\"'storeName'\" [idField]=\"'storeId'\"\r\n (selected)=\"onStoreSelect($event)\" [selectedValues]=\"selectedStore\"></lib-select>\r\n </div>\r\n <div class=\"col-12 mb-5\">\r\n <div class=\"d-flex justify-content-end\">\r\n <a (click)=\"onFilterApply()\" type=\"submit\" class=\"btn btn-primary px-4 \"><span>Apply</span></a>\r\n </div>\r\n </div>\r\n <div class=\"footer-seperator mb-10\"></div>\r\n\r\n <ng-container *ngIf=\"pageState$ | async as pageState\" >\r\n <ng-container [ngSwitch]=\"pageState\" >\r\n <ng-container *ngSwitchCase=\"'loaded'\" >\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"card-label mb-2\">Contacts List</span>\r\n </h3>\r\n <div class=\"d-flex align-items-center position-relative my-1\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <rect opacity=\"0.5\" x=\"17.0365\" y=\"15.1223\" width=\"8.15546\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(45 17.0365 15.1223)\" fill=\"currentColor\"></rect>\r\n <path\r\n d=\"M11 19C6.55556 19 3 15.4444 3 11C3 6.55556 6.55556 3 11 3C15.4444 3 19 6.55556 19 11C19 15.4444 15.4444 19 11 19ZM11 5C7.53333 5 5 7.53333 5 11C5 14.4667 7.53333 17 11 17C14.4667 17 17 14.4667 17 11C17 7.53333 14.4667 5 11 5Z\"\r\n fill=\"currentColor\"></path>\r\n </svg>\r\n </span>\r\n <input [formControl]=\"searchInput\" type=\"text\" class=\"form-control ps-14 me-2\" autocomplete=\"off\" placeholder=\"Search\" />\r\n <button [disabled]=\"!spocList.length\" *ngIf=\"(gs.userAccess | async)?.settings_contactDirectory_isDownload \" (click)=\"onExport()\" type=\"button\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg><span class=\"ms-2\">Export</span> </button>\r\n \r\n </div>\r\n </div>\r\n \r\n <ng-container *ngIf=\"spocList?.length\" >\r\n <div class=\"table-responsive mt-10\">\r\n <table class=\"w-100 table bottom-border\">\r\n <thead>\r\n <tr>\r\n <th>Store Info</th>\r\n <th>Spoc Name & Email</th>\r\n <th>Contact Number</th>\r\n <th>Location</th>\r\n <th>Actions</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let spoc of spocList\">\r\n <td>\r\n <div class=\"table-title-primary text-decoration-underline cursor-pointer\"\r\n (click)=\"redirectToStore(spoc?.storeId)\">{{spoc?.storeName}}</div>\r\n <div class=\"table-sub\">ID : {{spoc?.storeId}}</div>\r\n </td>\r\n \r\n <td>\r\n <div class=\"table-title\">{{spoc?.spocName}} </div>\r\n <div class=\"table-sub\">{{spoc?.spocEmail}}</div>\r\n </td>\r\n <td>\r\n <div class=\"table-title\">{{spoc?.spocNumber}} </div>\r\n </td>\r\n <td>\r\n <div class=\"table-title\">{{spoc?.storeState}} </div>\r\n <div class=\"table-sub\">{{spoc?.storeCity}}</div>\r\n </td>\r\n <td class=\"align-height\"><span class=\"cursor-pointer\">\r\n <svg *ngIf=\"(gs.userAccess | async)?.settings_contactDirectory_isEdit \" (click)=\"openEditSpocModal(spoc?.spocId, spoc?.storeId)\" class=\"me-5\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <g clip-path=\"url(#clip0_5541_6759)\">\r\n <path\r\n d=\"M9.16699 3.33332H3.33366C2.89163 3.33332 2.46771 3.50891 2.15515 3.82147C1.84259 4.13403 1.66699 4.55796 1.66699 4.99999V16.6667C1.66699 17.1087 1.84259 17.5326 2.15515 17.8452C2.46771 18.1577 2.89163 18.3333 3.33366 18.3333H15.0003C15.4424 18.3333 15.8663 18.1577 16.1788 17.8452C16.4914 17.5326 16.667 17.1087 16.667 16.6667V10.8333M15.417 2.08332C15.7485 1.7518 16.1982 1.56555 16.667 1.56555C17.1358 1.56555 17.5855 1.7518 17.917 2.08332C18.2485 2.41484 18.4348 2.86448 18.4348 3.33332C18.4348 3.80216 18.2485 4.2518 17.917 4.58332L10.0003 12.5L6.66699 13.3333L7.50033 9.99999L15.417 2.08332Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_5541_6759\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <svg *ngIf=\"(gs.userAccess | async)?.settings_contactDirectory_isDelete \" (click)=\"openDeleteSpocModal(spoc?.spocId, spoc?.storeId)\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path\r\n d=\"M2.5 5.00002H4.16667M4.16667 5.00002H17.5M4.16667 5.00002V16.6667C4.16667 17.1087 4.34226 17.5326 4.65482 17.8452C4.96738 18.1578 5.39131 18.3334 5.83333 18.3334H14.1667C14.6087 18.3334 15.0326 18.1578 15.3452 17.8452C15.6577 17.5326 15.8333 17.1087 15.8333 16.6667V5.00002H4.16667ZM6.66667 5.00002V3.33335C6.66667 2.89133 6.84226 2.4674 7.15482 2.15484C7.46738 1.84228 7.89131 1.66669 8.33333 1.66669H11.6667C12.1087 1.66669 12.5326 1.84228 12.8452 2.15484C13.1577 2.4674 13.3333 2.89133 13.3333 3.33335V5.00002M8.33333 9.16669V14.1667M11.6667 9.16669V14.1667\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <div class=\"my-3\">\r\n <lib-pagination [itemsPerPage]=\"pageSize\" [currentPage]=\"currentPage\" [totalItems]=\"totalItems\" [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\"\r\n (pageChange)=\"onPageChange($event)\" (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div> \r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!spocList?.length\" >\r\n <div class=\"d-flex align-items-center justify-content-center\" >\r\n <img width=\"300px\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\"> \r\n </div>\r\n </ng-container>\r\n \r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'loading'\" >\r\n <div class=\"shimmer-card w-100\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n </div>\r\n</div>","import { ChangeDetectorRef, Component, HostListener, OnDestroy } from '@angular/core';\r\nimport { ClientApiService } from '../../services/client-api.service';\r\nimport dayjs from \"dayjs\";\r\nimport \"dayjs/locale/en\";\r\nimport utc from \"dayjs/plugin/utc\";\r\nimport timezone from \"dayjs/plugin/timezone\";\r\nimport { BehaviorSubject, Subject, takeUntil } from 'rxjs';\r\ndayjs.extend(utc);\r\ndayjs.extend(timezone);\r\n\r\n@Component({\r\n selector: 'lib-activity-logs',\r\n templateUrl: './activity-logs.component.html',\r\n styleUrl: './activity-logs.component.scss'\r\n})\r\nexport class ActivityLogsComponent implements OnDestroy {\r\n\r\n dayjs = dayjs\r\n @HostListener('document:click', ['$event'])\r\n onClick(event: MouseEvent) {\r\n const target = event.target as HTMLElement;\r\n if (!target.closest('.dropdown')) {\r\n this.showFilters = false;\r\n }\r\n }\r\n\r\n itemsPerPage = 10\r\n currentPage = 1\r\n totalItems = 0\r\n paginationSizes = [10, 20, 30]\r\n pageSize = 10\r\n selectedDateRange: any = {\r\n startDate: this.dayjs().utc().startOf('day'),\r\n endDate: this.dayjs().utc().startOf('day')\r\n };\r\n clientList: any = []\r\n selectedClient: any\r\n private readonly destroy$ = new Subject();\r\n clientId: string;\r\n logList: any;\r\n filterStartDate: string = this.dayjs().utc().startOf('day').toISOString()\r\n filterEndDate: string = this.dayjs().utc().endOf('day').toISOString()\r\n showFilters:boolean = false\r\n pageState$ = new BehaviorSubject<'loaded' | 'loading'>('loading');\r\n\r\n\r\n filters = [\r\n {\r\n label:'Brand details',\r\n id:'brandDetails',\r\n isChecked:true\r\n },\r\n {\r\n label:'Configuration',\r\n id:'configuration',\r\n isChecked:true\r\n },\r\n {\r\n label:'Documents',\r\n id:'documents',\r\n isChecked:true\r\n },\r\n {\r\n label:'Stores',\r\n id:'stores',\r\n isChecked:true\r\n },\r\n {\r\n label:'Groups',\r\n id:'groups',\r\n isChecked:true\r\n },\r\n {\r\n label:'Users',\r\n id:'users',\r\n isChecked:true\r\n },\r\n {\r\n label:'Subscription',\r\n id:'subscription',\r\n isChecked:true\r\n },\r\n ]\r\n\r\n constructor(private apiService: ClientApiService, private cd: ChangeDetectorRef) {\r\n this.apiService.clientId.pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if (e) {\r\n this.clientId = e\r\n this.getActivityLogs()\r\n }\r\n })\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n this.pageState$.complete();\r\n\r\n }\r\n\r\n getActivityLogs() {\r\n this.pageState$.next('loading')\r\n let filters: Record<string, any> = {\r\n limit: this.pageSize,\r\n offset: this.currentPage,\r\n clientId: this.clientId\r\n }\r\n if (this.filterStartDate) {\r\n filters.startDate = this.filterStartDate\r\n }\r\n if (this.filterEndDate) {\r\n filters.endDate = this.filterEndDate\r\n }\r\n\r\n if(this.getCheckedIds(this.filters)?.length){\r\n filters.logTypeFilters = this.getCheckedIds(this.filters)\r\n }\r\n\r\n this.apiService.getActivityLogs(filters).subscribe({\r\n next: (e) => {\r\n this.pageState$.next('loaded')\r\n if (e?.data?.count) {\r\n this.logList = e.data.data\r\n this.totalItems = e.data.count\r\n this.cd.detectChanges()\r\n } else {\r\n this.logList = []\r\n this.totalItems = 0\r\n this.cd.detectChanges()\r\n }\r\n },\r\n error: (err) => {\r\n this.pageState$.next('loaded')\r\n this.logList = []\r\n this.totalItems = 0\r\n this.cd.detectChanges()\r\n }\r\n })\r\n\r\n }\r\n\r\n datechange(event: any) {\r\n if (event.startDate || event.endDate) {\r\n this.currentPage = 1\r\n this.filterStartDate = this.dayjs(event.startDate).utc().toISOString()\r\n this.filterEndDate = this.dayjs(event.endDate).utc().toISOString()\r\n this.getActivityLogs()\r\n }\r\n\r\n }\r\n\r\n ranges: any = {\r\n Today: [this.dayjs(), this.dayjs()],\r\n Yesterday: [this.dayjs().subtract(1, \"days\"), this.dayjs().subtract(1, \"days\")],\r\n \"This Week\": [this.dayjs().subtract(6, \"days\"), this.dayjs()],\r\n \"Last Week\": [\r\n this.dayjs().subtract(14, \"days\").startOf(\"days\"),\r\n this.dayjs().subtract(8, \"days\").endOf(\"days\"),\r\n ],\r\n \"This Month\": [this.dayjs().startOf(\"month\"), this.dayjs().endOf(\"month\")],\r\n \"Last Month\": [\r\n this.dayjs().subtract(1, \"month\").startOf(\"month\"),\r\n this.dayjs().subtract(1, \"month\").endOf(\"month\"),\r\n ],\r\n };\r\n\r\n\r\n onPageChange(pageOffset: number) {\r\n this.currentPage = pageOffset\r\n this.getActivityLogs()\r\n\r\n }\r\n\r\n onPageSizeChange(pageSize: number) { \r\n this.currentPage = 1 \r\n this.pageSize = pageSize\r\n this.itemsPerPage = pageSize\r\n this.getActivityLogs()\r\n }\r\n\r\n formatDate(inputDate: string) {\r\n const parsedDate = this.dayjs(inputDate);\r\n const formattedDate = parsedDate.format('DD-MM-YYYY | hh:mm A');\r\n return formattedDate;\r\n }\r\n\r\n camelCaseToWords(camelCaseString: string) {\r\n const words = camelCaseString.replace(/([A-Z])/g, ' $1');\r\n return words.charAt(0).toUpperCase() + words.slice(1).toLowerCase();\r\n }\r\n\r\n arrayToString(array: any) {\r\n return array.join(', ');\r\n }\r\n\r\n checkIfAllSelected() {\r\n return this.filters.every((item:any) => item.isChecked);\r\n }\r\n\r\n onSelectAll(event: any) {\r\n const selectAll = event.currentTarget.checked;\r\n this.filters.forEach((item: any) => item.isChecked = selectAll);\r\n }\r\n\r\n getCheckedIds(filters:any) {\r\n const checkedIds = filters.filter((filter:any) => filter.isChecked).map((filter:any) => filter.id);\r\n return checkedIds;\r\n}\r\n\r\napplyFilter(){\r\n this.currentPage = 1\r\n this.showFilters = false\r\n this.getActivityLogs();\r\n}\r\n\r\n}\r\n","<div class=\"activity-card\">\r\n <ng-container *ngIf=\"pageState$ | async as pageState\" >\r\n <ng-container [ngSwitch]=\"pageState\" >\r\n <ng-container *ngSwitchCase=\"'loaded'\" >\r\n <div class=\"d-flex justify-content-between align-items-center mb-10\">\r\n <div class=\"header\">Activity Logs</div>\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"d-flex align-items-center position-relative me-5\">\r\n <input class=\"fx-date-range form-control ps-14\" type=\"text\" matInput ngxDaterangepickerMd\r\n [drops]=\"'down'\" [opens]=\"'right'\" [ranges]=\"ranges\" [showCustomRangeLabel]=\"true\"\r\n [alwaysShowCalendars]=\"false\" [keepCalendarOpeningWithRange]=\"true\" [showCancel]=\"true\"\r\n autocomplete=\"off\" [(ngModel)]=\"selectedDateRange\"\r\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1, monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] }\"\r\n (datesUpdated)=\"datechange($event)\" name=\"daterange\" />\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <div>\r\n <div class=\"multi-select-dropdown\" >\r\n <button (click)=\"$event.stopPropagation();showFilters = !showFilters;\" class=\"btn btn-outline\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M5 10H15M2.5 5H17.5M7.5 15H12.5\" stroke=\"#344054\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <span class=\" ms-3\">{{getCheckedIds(filters).length}} selected</span>\r\n </button> \r\n <div *ngIf=\"showFilters\" class=\"input-container dropdown\" >\r\n <div>\r\n <ul>\r\n <li >\r\n <div class=\"form-check\">\r\n <input (change)=\"onSelectAll($event)\" [checked]=\"checkIfAllSelected()\" class=\"form-check-input me-3\" type=\"checkbox\"\r\n id=\"selectAll\">\r\n <label class=\"form-check-label\" for=\"selectAll\">\r\n All Logs\r\n </label>\r\n </div>\r\n </li>\r\n <li *ngFor=\"let filter of filters\" >\r\n <div class=\"form-check\">\r\n <input class=\"form-check-input me-3\" type=\"checkbox\" [(ngModel)]=\"filter.isChecked\" [id]=\"filter.id\">\r\n <label class=\"form-check-label\" [for]=\"filter.id\" >\r\n {{filter.label}}\r\n </label>\r\n </div>\r\n </li>\r\n \r\n </ul> \r\n </div>\r\n <div >\r\n <div class=\" w-100 footer-seperator\"></div>\r\n <div class=\"d-flex justify-content-end m-2\">\r\n <a type=\"button\" class=\"btn btn-outline me-4\" (click)=\"showFilters = false\" >Cancel</a>\r\n <a type=\"submit\" class=\"btn btn-primary px-4 \" (click)=\"applyFilter()\" >Apply</a>\r\n </div>\r\n </div>\r\n \r\n </div> \r\n </div>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n \r\n <ng-container *ngIf=\"logList?.length\" >\r\n <div *ngFor=\"let item of logList\" class=\"log-card mb-8\">\r\n <div class=\"d-flex me-10\">\r\n <div class=\"line me-4\"></div>\r\n <div class=\"d-flex flex-column\">\r\n <div class=\"d-flex align-items-center mb-2\">\r\n <div class=\"header me-4\">{{camelCaseToWords(item?.logSubType)}}</div>\r\n <div class=\"time\">{{formatDate(item?.date)}}</div>\r\n </div>\r\n <div class=\"sub\">{{arrayToString(item?.changes)}} <span *ngIf=\"item?.eventType\">{{item?.eventType + 'd'}}</span></div>\r\n <div class=\"sub\">By {{item?.userName}} - {{item?.email}}</div>\r\n </div>\r\n \r\n </div>\r\n <div class=\"chip\">\r\n {{camelCaseToWords(item?.logType)}}\r\n </div>\r\n </div>\r\n \r\n <div *ngIf=\"logList?.length\" class=\"my-3\">\r\n <lib-pagination [itemsPerPage]=\"itemsPerPage\" [currentPage]=\"currentPage\" [totalItems]=\"totalItems\" [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\"\r\n (pageChange)=\"onPageChange($event)\" (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div> \r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!logList?.length\">\r\n <div class=\"d-flex align-items-center justify-content-center\" >\r\n <img width=\"300px\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\"> \r\n </div>\r\n </ng-container>\r\n \r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'loading'\" >\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</div>\r\n\r\n","import { inject } from '@angular/core';\r\nimport { CanActivateFn, Router } from '@angular/router';\r\nimport { map, take } from 'rxjs';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\n\r\n\r\nexport const brandDetailGuard: CanActivateFn = (route, state) => {\r\n const gs = inject(GlobalStateService)\r\n const router = inject(Router)\r\n \r\n return gs.userAccess.pipe(take(1), map((e)=>{\r\n if(e && !e?.settings_brandDetails_isView){\r\n if(e?.settings_configuration_isView){\r\n router.navigateByUrl('/manage/settings/configuration')\r\n }else if(e?.settings_contactDirectory_isView){\r\n router.navigateByUrl('/manage/settings/contact-directory')\r\n }else if(e?.settings_paymentSubscriptions_isView){\r\n router.navigateByUrl('/manage/settings/payment-subscription')\r\n }else if(e?.settings_documents_isView){\r\n router.navigateByUrl('/manage/settings/documents')\r\n }else if(e?.settings_activityLog_isView){\r\n router.navigateByUrl('/manage/settings/activity-logs')\r\n }else{\r\n router.navigateByUrl('/manage')\r\n }\r\n return false\r\n }\r\n return true;\r\n }))\r\n};\r\n","import { inject } from '@angular/core';\r\nimport { CanActivateFn, Router } from '@angular/router';\r\nimport { map, take } from 'rxjs';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\n\r\nexport const configurationGuard: CanActivateFn = (route, state) => {\r\n const gs = inject(GlobalStateService)\r\n const router = inject(Router)\r\n \r\n return gs.userAccess.pipe(take(1), map((e)=>{\r\n if(e && !e?.settings_configuration_isView){\r\n if(e?.settings_brandDetails_isView){\r\n router.navigateByUrl('/manage/settings/brand-detail')\r\n }else if(e?.settings_contactDirectory_isView){\r\n router.navigateByUrl('/manage/settings/contact-directory')\r\n }else if(e?.settings_paymentSubscriptions_isView){\r\n router.navigateByUrl('/manage/settings/payment-subscription')\r\n }else if(e?.settings_documents_isView){\r\n router.navigateByUrl('/manage/settings/documents')\r\n }else if(e?.settings_activityLog_isView){\r\n router.navigateByUrl('/manage/settings/activity-logs')\r\n }else{\r\n router.navigateByUrl('/manage')\r\n }\r\n return false\r\n }\r\n return true;\r\n }))\r\n};\r\n","import { inject } from '@angular/core';\r\nimport { CanActivateFn, Router } from '@angular/router';\r\nimport { map, take } from 'rxjs';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\n\r\nexport const contactDirectoryGuard: CanActivateFn = (route, state) => {\r\n const gs = inject(GlobalStateService)\r\n const router = inject(Router)\r\n \r\n return gs.userAccess.pipe(take(1), map((e)=>{\r\n if(e && !e?.settings_contactDirectory_isView){\r\n if(e?.settings_brandDetails_isView){\r\n router.navigateByUrl('/manage/settings/brand-detail')\r\n }else if(e?.settings_configuration_isView){\r\n router.navigateByUrl('/manage/settings/configuration')\r\n }else if(e?.settings_paymentSubscriptions_isView){\r\n router.navigateByUrl('/manage/settings/payment-subscription')\r\n }else if(e?.settings_documents_isView){\r\n router.navigateByUrl('/manage/settings/documents')\r\n }else if(e?.settings_activityLog_isView){\r\n router.navigateByUrl('/manage/settings/activity-logs')\r\n }else{\r\n router.navigateByUrl('/manage')\r\n }\r\n return false\r\n }\r\n return true;\r\n }))\r\n};\r\n","import { inject } from '@angular/core';\r\nimport { CanActivateFn, Router } from '@angular/router';\r\nimport { map, take } from 'rxjs';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\n\r\nexport const paymentSubscriptionsGuard: CanActivateFn = (route, state) => {\r\n const gs = inject(GlobalStateService)\r\n const router = inject(Router)\r\n \r\n return gs.userAccess.pipe(take(1), map((e)=>{\r\n if(e && !e?.settings_paymentSubscriptions_isView){\r\n if(e?.settings_brandDetails_isView){\r\n router.navigateByUrl('/manage/settings/brand-detail')\r\n }else if(e?.settings_configuration_isView){\r\n router.navigateByUrl('/manage/settings/configuration')\r\n }else if(e?.settings_contactDirectory_isView){\r\n router.navigateByUrl('/manage/settings/contact-directory')\r\n }else if(e?.settings_documents_isView){\r\n router.navigateByUrl('/manage/settings/documents')\r\n }else if(e?.settings_activityLog_isView){\r\n router.navigateByUrl('/manage/settings/activity-logs')\r\n }else{\r\n router.navigateByUrl('/manage')\r\n }\r\n return false\r\n }\r\n return true;\r\n }))\r\n};\r\n","import { inject } from '@angular/core';\r\nimport { CanActivateFn, Router } from '@angular/router';\r\nimport { map, take } from 'rxjs';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\n\r\nexport const documentsGuard: CanActivateFn = (route, state) => {\r\n const gs = inject(GlobalStateService)\r\n const router = inject(Router)\r\n \r\n return gs.userAccess.pipe(take(1), map((e)=>{\r\n if(e && !e?.settings_documents_isView){\r\n if(e?.settings_brandDetails_isView){\r\n router.navigateByUrl('/manage/settings/brand-detail')\r\n }else if(e?.settings_configuration_isView){\r\n router.navigateByUrl('/manage/settings/configuration')\r\n }else if(e?.settings_contactDirectory_isView){\r\n router.navigateByUrl('/manage/settings/contact-directory')\r\n }else if(e?.settings_paymentSubscriptions_isView){\r\n router.navigateByUrl('/manage/settings/payment-subscription')\r\n }else if(e?.settings_activityLog_isView){\r\n router.navigateByUrl('/manage/settings/activity-logs')\r\n }else{\r\n router.navigateByUrl('/manage')\r\n }\r\n return false\r\n }\r\n return true;\r\n }))\r\n};\r\n","import { inject } from '@angular/core';\r\nimport { CanActivateFn, Router } from '@angular/router';\r\nimport { map, take } from 'rxjs';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\n\r\nexport const activityLogGuard: CanActivateFn = (route, state) => {\r\n const gs = inject(GlobalStateService)\r\n const router = inject(Router)\r\n \r\n return gs.userAccess.pipe(take(1), map((e)=>{\r\n if(e && !e?.settings_activityLog_isView){\r\n if(e?.settings_brandDetails_isView){\r\n router.navigateByUrl('/manage/settings/brand-detail')\r\n }else if(e?.settings_configuration_isView){\r\n router.navigateByUrl('/manage/settings/configuration')\r\n }else if(e?.settings_contactDirectory_isView){\r\n router.navigateByUrl('/manage/settings/contact-directory')\r\n }else if(e?.settings_paymentSubscriptions_isView){\r\n router.navigateByUrl('/manage/settings/payment-subscription')\r\n }else if(e?.settings_documents_isView){\r\n router.navigateByUrl('/manage/settings/documents')\r\n }else{\r\n router.navigateByUrl('/manage')\r\n }\r\n return false\r\n }\r\n return true;\r\n }))\r\n};\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { TangoManageSettingsComponent } from './components/tango-manage-settings/tango-manage-settings.component';\r\nimport { BrandDetailsComponent } from './components/brand-details/brand-details.component';\r\nimport { PaymentsSubscriptionComponent } from './components/payments-subscription/payments-subscription.component';\r\nimport { ConfigurationsComponent } from './components/configurations/configurations.component';\r\nimport { DocumentsComponent } from './components/documents/documents.component';\r\nimport { ContactDirectoryComponent } from './components/contact-directory/contact-directory.component';\r\nimport { ActivityLogsComponent } from './components/activity-logs/activity-logs.component';\r\nimport { brandDetailGuard } from './guards/brand-detail.guard';\r\nimport { configurationGuard } from './guards/configuration.guard';\r\nimport { contactDirectoryGuard } from './guards/contact-directory.guard';\r\nimport { paymentSubscriptionsGuard } from './guards/payment-subscriptions.guard';\r\nimport { documentsGuard } from './guards/documents.guard';\r\nimport { activityLogGuard } from './guards/activity-log.guard';\r\n\r\nconst routes: Routes = [\r\n {\r\n path:'',\r\n component:TangoManageSettingsComponent,\r\n children:[\r\n {\r\n path:'',\r\n redirectTo:'brand-detail',\r\n pathMatch: 'full'\r\n },\r\n {\r\n path:'brand-detail',\r\n component:BrandDetailsComponent,\r\n canActivate: [brandDetailGuard]\r\n },\r\n {\r\n path:'payment-subscription',\r\n component:PaymentsSubscriptionComponent,\r\n canActivate: [paymentSubscriptionsGuard]\r\n },\r\n {\r\n path:'configuration',\r\n component:ConfigurationsComponent,\r\n canActivate: [configurationGuard]\r\n },\r\n {\r\n path:'documents',\r\n component:DocumentsComponent,\r\n canActivate: [documentsGuard]\r\n\r\n },\r\n {\r\n path:'contact-directory',\r\n component:ContactDirectoryComponent,\r\n canActivate: [contactDirectoryGuard],\r\n },\r\n {\r\n path:'activity-logs',\r\n component:ActivityLogsComponent,\r\n canActivate: [activityLogGuard],\r\n },\r\n \r\n ]\r\n },\r\n \r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class TangoManageSettingsRoutingModule { }\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-suspended',\r\n templateUrl: './suspended.component.html',\r\n styleUrl: './suspended.component.scss'\r\n})\r\nexport class SuspendedComponent {\r\n\r\n}\r\n","<div class=\"modal-content\" >\r\n <div class=\"p-6\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/expired-icon.svg\" alt=\"\"></div>\r\n <div class=\"subtext mt-4 ms-1\">Your TangoEye Suite is suspended </div>\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n \r\n <div class=\"contenttext mt-4 mx-2\">Your subscription hasn’t been renewed.\r\n </div>\r\n <div class=\"contenttext mt-4 mx-2\">If you are a site admin, go to <span class=\"help\">Payment and Subscription</span>, complete the payment.\r\n </div> \r\n \r\n</div>\r\n </div>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TangoManageSettingsRoutingModule } from './tango-manage-settings-routing.module';\r\nimport { TangoManageSettingsComponent } from './components/tango-manage-settings/tango-manage-settings.component';\r\nimport { NgbAccordionModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { UpdateComponent } from './components/payments-subscription/subscription-popups/update/update.component';\r\nimport { NeedHelpComponent } from './components/payments-subscription/subscription-popups/need-help/need-help.component';\r\nimport { UpgradePlanComponent } from './components/payments-subscription/subscription-popups/upgrade-plan/upgrade-plan.component';\r\nimport { SuccessfullSubscriptionComponent } from './components/payments-subscription/subscription-popups/successfull-subscription/successfull-subscription.component';\r\nimport { ReactiveFormsModule, FormsModule, } from '@angular/forms';\r\nimport { MatAutocompleteModule} from '@angular/material/autocomplete';\r\nimport { MatChipsModule} from '@angular/material/chips';\r\nimport {MatIconModule} from '@angular/material/icon';\r\nimport {MatFormFieldModule} from '@angular/material/form-field';\r\nimport { BrandDetailsComponent } from './components/brand-details/brand-details.component';\r\nimport { BrandInfoComponent } from './components/brand-details/brand-info/brand-info.component';\r\nimport { BillingDetailsComponent } from './components/brand-details/billing-details/billing-details.component';\r\nimport { SignatoryDetailsComponent } from './components/brand-details/signatory-details/signatory-details.component';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { PaymentsSubscriptionComponent } from './components/payments-subscription/payments-subscription.component';\r\nimport { TrailExpiredComponent } from './components/payments-subscription/subscription-popups/trail-expired/trail-expired.component';\r\nimport { SuspendedComponent } from './components/payments-subscription/subscription-popups/suspended/suspended.component';\r\nimport { CreditNoteComponent } from './components/payments-subscription/subscription-popups/credit-note/credit-note.component';\r\nimport { PricingRevisedComponent } from './components/payments-subscription/subscription-popups/pricing-revised/pricing-revised.component';\r\nimport { AuditConfigurationComponent } from './components/configurations/audit-configuration/audit-configuration.component';\r\nimport { TicketConfigurationComponent } from './components/configurations/ticket-configuration/ticket-configuration.component';\r\nimport { ReportConfigurationComponent } from './components/configurations/report-configuration/report-configuration.component';\r\nimport { UserConfigurationComponent } from './components/configurations/user-configuration/user-configuration.component';\r\nimport { DomainDetailsComponent } from './components/configurations/domain-details/domain-details.component';\r\nimport { FeatureConfigurationComponent } from './components/configurations/feature-configuration/feature-configuration.component';\r\nimport { DocumentsComponent } from './components/documents/documents.component';\r\nimport { DndDirective } from './directives/dnd.directive';\r\nimport { AddReportComponent } from './components/configurations/report-configuration/add-report/add-report.component';\r\nimport { ContactDirectoryComponent } from './components/contact-directory/contact-directory.component';\r\nimport { ConfigurationsComponent } from './components/configurations/configurations.component';\r\nimport { MultidropdownComponent } from './components/payments-subscription/subscription-popups/multidropdown/multidropdown.component';\r\nimport { EditSpocComponent } from './components/contact-directory/edit-spoc/edit-spoc.component';\r\nimport { DeteleSpocComponent } from './components/contact-directory/detele-spoc/detele-spoc.component';\r\nimport { AddSteppriceComponent } from './components/payments-subscription/subscription-popups/add-stepprice/add-stepprice.component';\r\nimport { SkipTrailComponent } from './components/payments-subscription/subscription-popups/skip-trail/skip-trail.component';\r\nimport { TrailSettingsComponent } from './components/payments-subscription/subscription-popups/trail-settings/trail-settings.component';\r\nimport { UnsubscribeRequestComponent } from './components/payments-subscription/subscription-popups/unsubscribe-request/unsubscribe-request.component';\r\nimport { SubscriptionApprovalComponent } from './components/payments-subscription/subscription-popups/subscription-approval/subscription-approval.component';\r\nimport { ProductConfirmationComponent } from './components/payments-subscription/subscription-popups/product-confirmation/product-confirmation.component';\r\nimport { ActivityLogsComponent } from './components/activity-logs/activity-logs.component';\r\nimport { NgxDaterangepickerMd } from 'ngx-daterangepicker-material';\r\nimport { CommonSharedModule } from 'tango-app-ui-shared';\r\nimport { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ModalContentComponent } from './components/payments-subscription/subscription-popups/model-content/model-content.component';\r\nimport { ReactiveSelectComponent } from './components/reactive-select/reactive-select.component';\r\nimport { EmailConfigurationComponent } from './components/configurations/email-configuration/email-configuration.component';\r\nimport { EmployeeTrainingComponent } from './components/configurations/employee-training/employee-training.component';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n TangoManageSettingsComponent,\r\n PaymentsSubscriptionComponent,\r\n UpdateComponent,\r\n NeedHelpComponent,\r\n SuccessfullSubscriptionComponent,\r\n BrandDetailsComponent,\r\n BrandInfoComponent,\r\n BillingDetailsComponent,\r\n SignatoryDetailsComponent,\r\n UpgradePlanComponent,\r\n TrailExpiredComponent,\r\n SuspendedComponent,\r\n CreditNoteComponent,\r\n PricingRevisedComponent,\r\n ConfigurationsComponent,\r\n AuditConfigurationComponent,\r\n TicketConfigurationComponent,\r\n ReportConfigurationComponent,\r\n UserConfigurationComponent,\r\n DomainDetailsComponent,\r\n FeatureConfigurationComponent,\r\n MultidropdownComponent,\r\n DocumentsComponent,\r\n DndDirective,\r\n AddReportComponent,\r\n ContactDirectoryComponent,\r\n EditSpocComponent,\r\n DeteleSpocComponent,\r\n AddSteppriceComponent,\r\n SkipTrailComponent,\r\n TrailSettingsComponent,\r\n UnsubscribeRequestComponent,\r\n SubscriptionApprovalComponent,\r\n ProductConfirmationComponent,\r\n ActivityLogsComponent,\r\n ModalContentComponent,\r\n ReactiveSelectComponent,\r\n EmailConfigurationComponent,\r\n EmployeeTrainingComponent\r\n \r\n ],\r\n imports: [\r\n CommonModule,\r\n TangoManageSettingsRoutingModule,\r\n NgbAccordionModule,\r\n NgbModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n MatAutocompleteModule,\r\n MatChipsModule,\r\n MatIconModule,\r\n MatFormFieldModule,\r\n HttpClientModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n CommonSharedModule,\r\n NgbTooltipModule,\r\n NgxDaterangepickerMd.forRoot()\r\n\r\n ]\r\n})\r\nexport class TangoManageSettingsModule { }\r\n","/*\r\n * Public API Surface of tango-manage-settings\r\n */\r\n\r\nexport * from './lib/tango-manage-settings.module';\r\n\r\nexport * from './lib/components/tango-manage-settings/tango-manage-settings.component';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["EXCEL_TYPE","EXCEL_EXTENSION","i2","i1","i2.ClientApiService","i3","i4","i1.ClientApiService","i5.ReactiveSelectComponent","i5.BrandInfoComponent","i6.BillingDetailsComponent","i7.SignatoryDetailsComponent","i2.PaymentSubscriptionService","i5","i3.PaymentSubscriptionService","i6","i7.MultidropdownComponent","i6.DndDirective","i3.ClientApiService","i6.AuditConfigurationComponent","i7.TicketConfigurationComponent","i8.ReportConfigurationComponent","i9.UserConfigurationComponent","i10.DomainDetailsComponent","i11.FeatureConfigurationComponent","i12.EmailConfigurationComponent","i13.EmployeeTrainingComponent","i7"],"mappings":"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"}
|