jconsumer-shared 1.1.7 → 1.1.8
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/consumer-service.mjs +2 -2
- package/esm2022/public-api.mjs +1 -3
- package/fesm2022/jconsumer-shared.mjs +2 -37
- package/fesm2022/jconsumer-shared.mjs.map +1 -1
- package/jconsumer-shared-1.1.8.tgz +0 -0
- package/package.json +1 -1
- package/public-api.d.ts +0 -2
- package/esm2022/lib/pipes/nl2br/nl2br.module.mjs +0 -20
- package/esm2022/lib/pipes/nl2br/nl2br.pipe.mjs +0 -22
- package/jconsumer-shared-1.1.7.tgz +0 -0
- package/lib/pipes/nl2br/nl2br.module.d.ts +0 -8
- package/lib/pipes/nl2br/nl2br.pipe.d.ts +0 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jconsumer-shared.mjs","sources":["../../../projects/jconsumer-shared/src/lib/utility/remote-loader.ts","../../../projects/jconsumer-shared/src/lib/service-meta.ts","../../../projects/jconsumer-shared/src/lib/subscription.service.ts","../../../projects/jconsumer-shared/src/lib/toast.service.ts","../../../projects/jconsumer-shared/src/lib/shared.service.ts","../../../projects/jconsumer-shared/src/lib/theme.service.ts","../../../projects/jconsumer-shared/src/lib/i8n.module.ts","../../../projects/jconsumer-shared/src/lib/order.service.ts","../../../projects/jconsumer-shared/src/lib/account-service.ts","../../../projects/jconsumer-shared/src/lib/shared-account.resolver.ts","../../../projects/jconsumer-shared/src/lib/shared-account.guard.ts","../../../projects/jconsumer-shared/src/lib/local-storage.service.ts","../../../projects/jconsumer-shared/src/lib/session-storage.service.ts","../../../projects/jconsumer-shared/src/lib/group-storage.service.ts","../../../projects/jconsumer-shared/src/lib/auth-service.ts","../../../projects/jconsumer-shared/src/lib/file-service.ts","../../../projects/jconsumer-shared/src/lib/common.service.ts","../../../projects/jconsumer-shared/src/lib/storage.service.ts","../../../projects/jconsumer-shared/src/lib/consumer-service.ts","../../../projects/jconsumer-shared/src/lib/project-messages.ts","../../../projects/jconsumer-shared/src/lib/project-constants.ts","../../../projects/jconsumer-shared/src/lib/form-message/form-message-display.service.ts","../../../projects/jconsumer-shared/src/lib/form-message/field-error-display/field-error-display.component.ts","../../../projects/jconsumer-shared/src/lib/form-message/field-error-display/field-error-display.component.html","../../../projects/jconsumer-shared/src/lib/form-message/form-success-display/form-success-display.component.ts","../../../projects/jconsumer-shared/src/lib/form-message/form-success-display/form-success-display.component.html","../../../projects/jconsumer-shared/src/lib/confirm/confirm-box.component.ts","../../../projects/jconsumer-shared/src/lib/confirm/confirm-box.component.html","../../../projects/jconsumer-shared/src/lib/booking-service.ts","../../../projects/jconsumer-shared/src/lib/error-message.service.ts","../../../projects/jconsumer-shared/src/lib/error-message.module.ts","../../../projects/jconsumer-shared/src/lib/word-processor.service.ts","../../../projects/jconsumer-shared/src/lib/currency-service.ts","../../../projects/jconsumer-shared/src/lib/razorpay.service.ts","../../../projects/jconsumer-shared/src/lib/paytm.service.ts","../../../projects/jconsumer-shared/src/lib/pipes/safe-html/safehtml.pipe.ts","../../../projects/jconsumer-shared/src/lib/pipes/safe-html/safehtml.module.ts","../../../projects/jconsumer-shared/src/lib/pipes/limit-to/limitTo.pipe.ts","../../../projects/jconsumer-shared/src/lib/pipes/limit-to/limitTo.module.ts","../../../projects/jconsumer-shared/src/lib/pipes/filter/filter.pipe.ts","../../../projects/jconsumer-shared/src/lib/pipes/filter/filter.module.ts","../../../projects/jconsumer-shared/src/lib/pipes/capitalize/capitalize.pipe.ts","../../../projects/jconsumer-shared/src/lib/pipes/capitalize/capitalize.module.ts","../../../projects/jconsumer-shared/src/lib/pipes/nl2br/nl2br.pipe.ts","../../../projects/jconsumer-shared/src/lib/pipes/nl2br/nl2br.module.ts","../../../projects/jconsumer-shared/src/lib/pipes/autolink/autolink.pipe.ts","../../../projects/jconsumer-shared/src/lib/pipes/autolink/autolink.module.ts","../../../projects/jconsumer-shared/src/lib/pipes/date-format/date-format.pipe.ts","../../../projects/jconsumer-shared/src/lib/pipes/date-format/date-format.module.ts","../../../projects/jconsumer-shared/src/lib/pipes/short-filename/short-file-name.pipe.ts","../../../projects/jconsumer-shared/src/lib/pipes/short-filename/short-file-name.module.ts","../../../projects/jconsumer-shared/src/lib/form-message/form-message-display.module.ts","../../../projects/jconsumer-shared/src/lib/calendar/date-time/datetime-processor.service.ts","../../../projects/jconsumer-shared/src/lib/timezone-converter.ts","../../../projects/jconsumer-shared/src/lib/skeleton/skeleton-loading.component.ts","../../../projects/jconsumer-shared/src/lib/skeleton/skeleton-loading.component.html","../../../projects/jconsumer-shared/src/lib/skeleton/skeleton-loading.module.ts","../../../projects/jconsumer-shared/src/lib/spinner/loading-spinner.component.ts","../../../projects/jconsumer-shared/src/lib/spinner/loading-spinner.component.html","../../../projects/jconsumer-shared/src/lib/spinner/loading-spinner.module.ts","../../../projects/jconsumer-shared/src/lib/questionaire/questionaire-service.ts","../../../projects/jconsumer-shared/src/lib/showuploadfile/showuploadfile.component.ts","../../../projects/jconsumer-shared/src/lib/showuploadfile/showuploadfile.component.html","../../../projects/jconsumer-shared/src/lib/j-gallery/j-gallery.component.ts","../../../projects/jconsumer-shared/src/lib/j-gallery/j-gallery.component.html","../../../projects/jconsumer-shared/src/lib/j-gallery/j-gallery.service.ts","../../../projects/jconsumer-shared/src/lib/questionaire/edit/questionnaire.component.ts","../../../projects/jconsumer-shared/src/lib/questionaire/edit/questionnaire.component.html","../../../projects/jconsumer-shared/src/lib/j-gallery/j-gallery.module.ts","../../../projects/jconsumer-shared/src/lib/questionaire/edit/questionnaire.module.ts","../../../projects/jconsumer-shared/src/lib/showuploadfile/showuploadfile.module.ts","../../../projects/jconsumer-shared/src/lib/phone-input/phone-input.component.ts","../../../projects/jconsumer-shared/src/lib/phone-input/phone-input.component.html","../../../projects/jconsumer-shared/src/lib/phone-input/phone-input.module.ts","../../../projects/jconsumer-shared/src/lib/confirm/confirm-box.module.ts","../../../projects/jconsumer-shared/src/lib/payment/modes/payment-modes.component.ts","../../../projects/jconsumer-shared/src/lib/payment/modes/payment-modes.component.html","../../../projects/jconsumer-shared/src/lib/payment/modes/payment-modes.module.ts","../../../projects/jconsumer-shared/src/lib/payment/payment.module.ts","../../../projects/jconsumer-shared/src/lib/request-dialog/request-dialog.component.ts","../../../projects/jconsumer-shared/src/lib/request-dialog/request-dialog.component.html","../../../projects/jconsumer-shared/src/lib/request-dialog/request-dialog.module.ts","../../../projects/jconsumer-shared/src/lib/twilio-service.ts","../../../projects/jconsumer-shared/src/lib/media-service.ts","../../../projects/jconsumer-shared/src/lib/environment.service.ts","../../../projects/jconsumer-shared/src/lib/injector-resolver.ts","../../../projects/jconsumer-shared/src/public-api.ts","../../../projects/jconsumer-shared/src/jconsumer-shared.ts"],"sourcesContent":["import { loadRemoteModule } from \"@angular-architects/native-federation\";\r\n\r\nconst remoteEntryCache: Record<string, Promise<any>> = {};\r\n\r\n/**\r\n * Load remote module with caching to avoid redundant network requests\r\n */\r\nexport function loadRemoteModuleWithCache(options: {\r\n remoteEntry: string;\r\n exposedModule: string;\r\n}): Promise<any> {\r\n const { remoteEntry, exposedModule } = options;\r\n\r\n if (!remoteEntryCache[remoteEntry]) {\r\n remoteEntryCache[remoteEntry] = loadRemoteModule({\r\n remoteEntry,\r\n exposedModule,\r\n });\r\n }\r\n\r\n return remoteEntryCache[remoteEntry];\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class ServiceMeta {\r\n constructor(private http: HttpClient) { }\r\n\r\n getJSON(path: any): Observable<any> {\r\n return this.http.get(path);\r\n }\r\n\r\n httpGetArrayBuffer(url: any) {\r\n return this.http.get(url, { responseType: 'arraybuffer' });\r\n }\r\n\r\n httpGet(url: any, header?: any, params?: any) {\r\n const options: any = {}; // Create a request option\r\n if (header) {\r\n const httpHeads = new HttpHeaders(header);\r\n options.headers = httpHeads;\r\n }\r\n\r\n if (params) {\r\n let httpParams = new HttpParams();\r\n Object.keys(params).forEach(function (key) {\r\n httpParams = httpParams.append(key, params[key]);\r\n });\r\n options.params = httpParams;\r\n options.showLoader = true;\r\n }\r\n return this.http.get(url, options);\r\n }\r\n httpGetText(url: any, header?: any, params?: any) {\r\n const options: any = {}; // Create a request option\r\n const httpHeads = new HttpHeaders({\r\n 'Accept': 'text/html, application/xhtml+xml, */*',\r\n 'Content-Type': 'application/x-www-form-urlencoded'\r\n });\r\n options.headers = httpHeads;\r\n options.responseType = 'Text';\r\n if (params) {\r\n let httpParams = new HttpParams();\r\n Object.keys(params).forEach(function (key) {\r\n httpParams = httpParams.append(key, params[key]);\r\n\r\n });\r\n options.params = httpParams;\r\n options.showLoader = true;\r\n }\r\n return this.http.get(url, options);\r\n }\r\n httpPost(url: any, body?: any, header?: any, params?: any) {\r\n const options: any = {}; // Create a request option\r\n if (header) {\r\n const httpHeads = new HttpHeaders(header);\r\n options.headers = httpHeads;\r\n }\r\n if (params) {\r\n let httpParams = new HttpParams();\r\n Object.keys(params).forEach(function (key) {\r\n httpParams = httpParams.append(key, params[key]);\r\n });\r\n options.params = httpParams;\r\n }\r\n return this.http.post(url, body, options); // ...using post request\r\n }\r\n\r\n httpPatch(url: any, body?: any, header?: any, params?: any) {\r\n const options: any = {}; // Create a request option\r\n if (header) {\r\n const httpHeads = new HttpHeaders(header);\r\n options.headers = httpHeads;\r\n }\r\n if (params) {\r\n let httpParams = new HttpParams();\r\n Object.keys(params).forEach(function (key) {\r\n httpParams = httpParams.append(key, params[key]);\r\n });\r\n options.params = httpParams;\r\n }\r\n return this.http.patch(url, body, options); // ...using patch request\r\n }\r\n\r\n httpPut(url: any, body?: any, header?: any, params?: any) {\r\n const options: any = {}; // Create a request option\r\n if (header) {\r\n const httpHeads = new HttpHeaders(header);\r\n options.headers = httpHeads;\r\n }\r\n if (params) {\r\n let httpParams = new HttpParams();\r\n Object.keys(params).forEach(function (key) {\r\n httpParams = httpParams.append(key, params[key]);\r\n });\r\n options.params = httpParams;\r\n }\r\n return this.http.put(url, body, options); // ...using put request\r\n }\r\n\r\n httpDelete(url: any, body?: any, header?: any, params?: any) {\r\n const options: any = {}; // Create a request option\r\n if (header) {\r\n const httpHeads = new HttpHeaders(header);\r\n options.headers = httpHeads;\r\n }\r\n if (params) {\r\n let httpParams = new HttpParams();\r\n Object.keys(params).forEach(function (key) {\r\n httpParams = httpParams.append(key, params[key]);\r\n });\r\n options.params = httpParams;\r\n }\r\n if (body) {\r\n options.body = body;\r\n }\r\n return this.http.delete(url, options);\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable, Subject } from \"rxjs\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class SubscriptionService {\r\n\r\n private subject = new Subject<any>();\r\n\r\n sendMessage(message: any) {\r\n this.subject.next(message);\r\n }\r\n clearMessage() {\r\n this.subject.next(null);\r\n }\r\n getMessage(): Observable<any> {\r\n return this.subject.asObservable();\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { MessageService } from 'primeng/api';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ToastService {\r\n\r\n constructor(\r\n private messageService: MessageService\r\n ) { }\r\n // Types : success,info,warn,error\r\n showToast(type: any, heading: any, content: any) {\r\n this.messageService.add({ severity: type, summary: heading, detail: content });\r\n }\r\n\r\n showSuccess(message: any) {\r\n this.messageService.add({ severity: 'success', detail: message });\r\n }\r\n\r\n showInfo(message: any) {\r\n this.messageService.add({ severity: 'info', detail: message });\r\n }\r\n\r\n showWarn(message: any) {\r\n this.messageService.add({ severity: 'warn', detail: message });\r\n }\r\n\r\n showError(message: any) {\r\n this.messageService.add({ severity: 'error', detail: message });\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SharedService {\r\n \r\n environment: any = {\r\n i8nPath: null,\r\n uiPath: null\r\n };\r\n accountID: string = '';\r\n customID: string = '';\r\n templateJSON: any;\r\n templateID: string = '';\r\n uniqueID: string = '';\r\n apiEndPoint: string | undefined;\r\n S3EndPoint: string | undefined;\r\n SAPath: string | undefined;\r\n CDNPath: string;\r\n routeID: string = '';\r\n dateFormat: string = 'EEE, MMM dd, y';\r\n theme: string = '';\r\n accountInfo: any;\r\n accountConfig: any;\r\n accountCache$: any = null;\r\n templateCache$: any= null;\r\n templateLoaded: boolean;\r\n\r\n constructor() { }\r\n\r\n setUniqueID(uniqueId: string) {\r\n this.uniqueID = uniqueId;\r\n }\r\n\r\n getUniqueID() {\r\n return this.uniqueID;\r\n }\r\n\r\n setCDNPath(path: string) {\r\n this.CDNPath = path;\r\n }\r\n\r\n getCDNPath() {\r\n return this.CDNPath;\r\n }\r\n\r\n getUIPath() {\r\n return this.environment['uiPath'];\r\n }\r\n\r\n setUIPath(path: any) {\r\n this.environment['uiPath'] = path;\r\n }\r\n\r\n isTemplateLoaded() {\r\n return this.templateLoaded;\r\n }\r\n\r\n setTemplateCache(templateCache) {\r\n this.templateCache$ = templateCache;\r\n this.templateLoaded = true;\r\n }\r\n\r\n getTemplateCache() {\r\n return this.templateCache$;\r\n }\r\n\r\n clearTemplateCache() {\r\n this.templateCache$ = null;\r\n }\r\n\r\n setAccountCache(accountCache) {\r\n this.accountCache$ = accountCache;\r\n }\r\n\r\n getAccountCache() {\r\n return this.accountCache$;\r\n }\r\n\r\n clearAccountCache() {\r\n this.accountCache$ = null;\r\n }\r\n\r\n getI8nPath() {\r\n return this.environment['i8nPath'];\r\n }\r\n\r\n setI8nPath(path: any) {\r\n this.environment['i8nPath'] = path;\r\n }\r\n\r\n setTemplateID(templateID: string) {\r\n this.templateID = templateID;\r\n localStorage.setItem('_tid', templateID);\r\n }\r\n\r\n getTemplateID() {\r\n return this.templateID;\r\n }\r\n\r\n getDateFormat() {\r\n return this.dateFormat;\r\n }\r\n\r\n setDateFormat(dateFormat: string) {\r\n this.dateFormat = dateFormat;\r\n }\r\n\r\n setTemplateJSON(templateJSON: any) {\r\n this.templateJSON = templateJSON;\r\n }\r\n\r\n getAccountID() {\r\n let accountProfile = this.getJson(this.accountInfo['businessProfile']);\r\n return accountProfile.id;\r\n }\r\n\r\n getCustomID() {\r\n let accountProfile = this.getJson(this.accountInfo['businessProfile']);\r\n return accountProfile['customId'] ? accountProfile['customId'] : accountProfile['accEncUid'];\r\n }\r\n\r\n getTemplateJSON() {\r\n return this.templateJSON;\r\n }\r\n\r\n getConfigPath () {\r\n return this.S3EndPoint;\r\n }\r\n\r\n setSAPath(SAPath: string) {\r\n this.SAPath = SAPath;\r\n }\r\n\r\n getSAPath() {\r\n return this.SAPath;\r\n }\r\n\r\n setConfigPath(s3EndPoint: string) {\r\n this.S3EndPoint = s3EndPoint;\r\n }\r\n\r\n setAPIEndPoint(apiEndPoint: string) {\r\n this.apiEndPoint = apiEndPoint;\r\n }\r\n\r\n getAPIEndPoint() {\r\n return this.apiEndPoint;\r\n }\r\n\r\n setRouteID(routeID: string) {\r\n this.routeID = routeID;\r\n }\r\n\r\n getRouteID() {\r\n return this.routeID;\r\n }\r\n\r\n setAccountInfo(accountInfo) {\r\n this.accountInfo = accountInfo;\r\n }\r\n\r\n getAccountInfo() {\r\n return this.accountInfo;\r\n }\r\n \r\n setAccountConfig(config) {\r\n this.accountConfig = config;\r\n }\r\n\r\n getAccountConfig() {\r\n return this.accountConfig;\r\n }\r\n\r\n /**\r\n * \r\n * @param jsonStr_Obj \r\n */\r\n getJson(jsonStr_Obj: any) {\r\n if (jsonStr_Obj) {\r\n if (typeof jsonStr_Obj === 'object') {\r\n return jsonStr_Obj;\r\n } else {\r\n return JSON.parse(jsonStr_Obj);\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n getTerminologies() {\r\n return this.getJson(this.accountInfo['terminologies']);\r\n }\r\n\r\n callMaintanance() {\r\n const promise = new Promise<void>((resolve) => {\r\n resolve();\r\n });\r\n return promise;\r\n }\r\n\r\n}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport { Inject, Injectable, Renderer2, RendererFactory2 } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ThemeService {\r\n private renderer: Renderer2;\r\n private themeLinkElement: HTMLLinkElement | null = null;\r\n\r\n constructor(\r\n rendererFactory: RendererFactory2,\r\n @Inject(DOCUMENT) private document: Document // Inject DOCUMENT\r\n ) {\r\n this.renderer = rendererFactory.createRenderer(null, null);\r\n }\r\n\r\n loadTheme(themeBasePath: string, themeName: string): void {\r\n // Construct the full CDN path\r\n const themePath = `${themeBasePath}${themeName}.css`;\r\n\r\n // Remove existing theme if it’s set\r\n if (this.themeLinkElement) {\r\n this.renderer.removeChild(this.document.head, this.themeLinkElement);\r\n this.themeLinkElement = null; // Reset reference\r\n }\r\n\r\n // Create a new link element for the theme\r\n this.themeLinkElement = this.renderer.createElement('link') as HTMLLinkElement;\r\n this.renderer.setAttribute(this.themeLinkElement, 'rel', 'stylesheet');\r\n this.renderer.setAttribute(this.themeLinkElement, 'href', themePath);\r\n\r\n // Handle successful load\r\n this.themeLinkElement.onload = () => {\r\n console.log(`Theme loaded: ${themePath}`);\r\n this.renderer.addClass(this.document.body, themeName); // Apply theme class to body\r\n };\r\n\r\n // Handle load failure\r\n this.themeLinkElement.onerror = () => {\r\n console.error(`Failed to load theme: ${themePath}`);\r\n // Optionally load a fallback theme\r\n };\r\n\r\n // Append the new theme to the document head\r\n this.renderer.appendChild(this.document.head, this.themeLinkElement);\r\n }\r\n}","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\r\nimport { TranslateLoader, TranslateModule } from '@ngx-translate/core';\r\nimport { SharedService } from './shared.service';\r\n\r\nexport function HttpLoaderFactory(http: HttpClient, sharedService: SharedService) {\r\n return new TranslateHttpLoader(http, sharedService.getI8nPath() + 'assets/i18n/', '.json');\r\n}\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n CommonModule,\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: HttpLoaderFactory,\r\n deps: [HttpClient, SharedService]\r\n }\r\n })\r\n ],\r\n exports : [\r\n TranslateModule\r\n ]\r\n})\r\nexport class I8nModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { SharedService } from './shared.service';\r\nimport { ServiceMeta } from './service-meta';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class OrderService {\r\n\r\n constructor(\r\n private servicemeta: ServiceMeta,\r\n private sharedService: SharedService\r\n ) { }\r\n\r\n getStores(filter = {}) {\r\n const url = 'consumer/store';\r\n return this.servicemeta.httpGet(url, null, filter);\r\n }\r\n\r\n getStoreCatalogItems(filter = {}) {\r\n const url = 'consumer/so/catalog/item';\r\n return this.servicemeta.httpGet(url, null, filter);\r\n }\r\n\r\n getStoreCatalogItemsCount(filter = {}) {\r\n const url = 'consumer/so/catalog/item/count';\r\n return this.servicemeta.httpGet(url, null, filter);\r\n }\r\n\r\n createCart(data: any) {\r\n const url = 'consumer/cart';\r\n return this.servicemeta.httpPost(url, data);\r\n }\r\n\r\n getCart(id: string) {\r\n const url = 'consumer/cart/procon/' + id;\r\n return this.servicemeta.httpGet(url, null);\r\n }\r\n\r\n getCartItems(cartUid: string) {\r\n const url = 'consumer/cart/' + cartUid + '/getitems';\r\n return this.servicemeta.httpGet(url, null);\r\n }\r\n\r\n removeItemFromCart(itemUid: string) {\r\n const url = 'consumer/cart/item/' + itemUid;\r\n return this.servicemeta.httpDelete(url, null);\r\n }\r\n\r\n updateCartItems(cartUid: string, data: any) {\r\n const url = 'consumer/cart/' + cartUid + '/updateitems';\r\n return this.servicemeta.httpPut(url, data);\r\n }\r\n\r\n updateCart(cartUid: string, data: any) {\r\n const url = 'consumer/cart/update/' + cartUid;\r\n return this.servicemeta.httpPut(url, data);\r\n }\r\n\r\n checkoutCartItems(cartUid: string, data: any) {\r\n const url = 'consumer/cart/' + cartUid + '/checkout';\r\n return this.servicemeta.httpPost(url, data);\r\n }\r\n\r\n getOrderByUid(orderUid: string) {\r\n const url = 'consumer/sorder/' + orderUid;\r\n return this.servicemeta.httpGet(url, null);\r\n }\r\n\r\n getSoCatalogItemById(accountId: string, itemEncid: string) {\r\n const url = 'consumer/so/catalog/' + accountId + '/item/' + itemEncid;\r\n return this.servicemeta.httpGet(url, null);\r\n }\r\n\r\n getInvoiceByOrderUid(accountId: string, orderUid: string) {\r\n const url = 'consumer/so/invoice/' + accountId + '/order/' + orderUid + '/invoice';\r\n return this.servicemeta.httpGet(url, null);\r\n }\r\n\r\n getConsumeraddress() {\r\n const url = 'consumer/deliveryAddress';\r\n return this.servicemeta.httpGet(url);\r\n }\r\n\r\n updateConsumeraddress(data: any) {\r\n const url = 'consumer/deliveryAddress';\r\n return this.servicemeta.httpPut(url, data);\r\n }\r\n\r\n consumerSoPayment(data: any) {\r\n const url = 'consumer/so/pay';\r\n return this.servicemeta.httpPost(url, data);\r\n }\r\n\r\n getItemCategory(accountId: string) {\r\n const url = 'consumer/spitem/settings/' + accountId + '/category?status-eq=Enable';\r\n return this.servicemeta.httpGet(url);\r\n }\r\n\r\n applyCoupon(cartUid: string, data: any) {\r\n const url = 'consumer/cart/' + cartUid + '/apply/providercoupon';\r\n return this.servicemeta.httpPut(url, data);\r\n }\r\n\r\n getSoCoupons(catalogId: string) {\r\n const url = 'consumer/cart/' + catalogId + '/get/providercoupon';\r\n return this.servicemeta.httpGet(url);\r\n }\r\n\r\n removeCoupon(cartUid: string, data: any) {\r\n const url = 'consumer/cart/' + cartUid + '/remove/providercoupon';\r\n return this.servicemeta.httpPut(url, data);\r\n }\r\n\r\n searchSpItem(accountId: any, value: any) {\r\n const url =\r\n this.sharedService.getSAPath() + `searchdetails/${accountId}/sordercatalog/item/suggestion/search?name=${value}*`;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getQnrOrder(itemId: string) {\r\n const url = 'consumer/questionnaire/sorder/item/' + itemId + '/ONLINE';\r\n return this.servicemeta.httpGet(url);\r\n }\r\n\r\n submitQnrOrder(body: any, uuid: string) {\r\n const url = 'consumer/sorder/questionnaire/submit/' + uuid;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n getShipmentDetails(orderId) {\r\n const url = 'consumer/sorder/' + orderId + '/shipment/track';\r\n return this.servicemeta.httpPut(url);\r\n }\r\n getInvoiceByOrderYnwuuid(accountId, orderUid) {\r\n const url = 'consumer/so/invoice/' + accountId + '/' + orderUid;\r\n return this.servicemeta.httpGet(url, null);\r\n }\r\n getOrders(filter) {\r\n return this.servicemeta.httpGet('consumer/sorder', null, filter);\r\n }\r\n getRequireOTPForAddingToCart(category, accountId) {\r\n const url = `consumer/sorder/settings/${category}/${accountId}`;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Meta, Title } from '@angular/platform-browser';\r\nimport { SharedService } from './shared.service';\r\nimport { ServiceMeta } from './service-meta';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AccountService {\r\n\r\n accountConfig: any;\r\n activeLocation: any;\r\n accountLocations: any;\r\n activeStore: any;\r\n stores: any = [];\r\n\r\n constructor(\r\n private titleService: Title,\r\n private metaService: Meta,\r\n private serviceMeta: ServiceMeta,\r\n private sharedService: SharedService) { }\r\n\r\n setActiveStore(store: any) {\r\n this.activeStore = store;\r\n }\r\n\r\n getActiveStore() {\r\n return this.activeStore;\r\n }\r\n\r\n getAccountConfig() {\r\n return this.accountConfig;\r\n }\r\n setStores(stores) {\r\n this.stores = stores;\r\n }\r\n getStores() {\r\n return this.stores;\r\n }\r\n setActiveLocation(location) {\r\n this.activeLocation = location;\r\n }\r\n getActiveLocation() {\r\n return this.activeLocation;\r\n }\r\n setAccountLocations(locations) {\r\n this.accountLocations = locations;\r\n }\r\n getAccountLocations() {\r\n return this.accountLocations;\r\n }\r\n\r\n /**\r\n * Method which returns the Jsons\r\n * @param accountUniqueId The Unique Id which represents S3 Bucket for a particular Account\r\n * @param listOfUrlTypes Type of the Url eg. services, businessProfile etc.\r\n * @returns { \"services\": 'services.json', \"businessProfile\": businessprofile.json}\r\n */\r\n getJsonsbyTypes(accountUniqueId: any, userId: any, listOfUrlTypes: any) {\r\n let path = 'provider/account/settings/config/' + accountUniqueId;\r\n if (userId) {\r\n path = path + '/' + userId;\r\n }\r\n path = path + '/' + listOfUrlTypes;\r\n return this.serviceMeta.httpGet(path);\r\n }\r\n /**\r\n * \r\n * @param jsonStr_Obj \r\n */\r\n getJson(jsonStr_Obj: any) {\r\n if (jsonStr_Obj) {\r\n if (typeof jsonStr_Obj === 'object') {\r\n return jsonStr_Obj;\r\n } else {\r\n return JSON.parse(jsonStr_Obj);\r\n }\r\n }\r\n return null;\r\n }\r\n setIcon(url) {\r\n let link = document.createElement('link'),\r\n oldLink = document.getElementById('dynamic-favicon');\r\n link.id = 'dynamic-favicon';\r\n link.rel = 'shortcut icon';\r\n link.href = url;\r\n if (oldLink) {\r\n document.head.removeChild(oldLink);\r\n }\r\n document.head.appendChild(link);\r\n }\r\n getAccountInfoById() {\r\n const _this = this;\r\n return new Promise(function (resolve, reject) {\r\n if (_this.sharedService.getAccountInfo()) {\r\n resolve(_this.sharedService.getAccountInfo());\r\n } else {\r\n _this.getAccountInfoPromise().then((account) => {\r\n _this.getAccountConfiguration().then((config: any) => {\r\n _this.sharedService.setAccountConfig(config);\r\n })\r\n _this.sharedService.setAccountInfo(account);\r\n const accountProfile = _this.getJson(account['businessProfile']);\r\n _this.titleService.setTitle(accountProfile.businessName);\r\n if (accountProfile.logo && accountProfile.logo.url) {\r\n _this.setIcon(accountProfile.logo.url);\r\n }\r\n _this.metaService.addTags([\r\n { name: 'description', content: accountProfile.businessDesc },\r\n { name: 'og:title', content: accountProfile.businessName },\r\n { name: 'og:site_name', content: accountProfile.businessName },\r\n { name: 'og:description', content: accountProfile.businessDesc },\r\n { name: 'og:image', content: (accountProfile.logo && accountProfile.logo.url) ? accountProfile.logo.url : '' }\r\n // <meta property=\"og:url\" content=\"https://yourwebsite.com/page-url\">\r\n // <meta property=\"og:image\" content=\"https://yourwebsite.com/image.jpg\">\r\n // {name: 'keywords', content: 'Angular, Universal, Example'},\r\n // {name: 'robots', content: 'index, follow'}\r\n ]);\r\n resolve(_this.sharedService.getAccountInfo());\r\n }).catch((error) => {\r\n console.log(error);\r\n resolve(_this.sharedService.getAccountInfo());\r\n })\r\n }\r\n });\r\n }\r\n getAccountInfoPromise() {\r\n const _this = this;\r\n return new Promise(function (resolve, reject) {\r\n let accountS3List = 'settings,coupon,providerCoupon,appointmentsettings,terminologies,location,businessProfile,virtualFields,services,apptServices,donationServices,departmentProviders,gallery';\r\n _this.getJsonsbyTypes(_this.sharedService.getUniqueID(), null, accountS3List).subscribe(\r\n (account: any) => {\r\n resolve(account)\r\n }, (error) => {\r\n reject(error);\r\n });\r\n })\r\n }\r\n getAccountConfiguration() {\r\n const _this = this;\r\n return new Promise(function (resolve) {\r\n _this.getUIAccountConfig().subscribe(\r\n (config: any) => {\r\n resolve(config);\r\n }, () => {\r\n resolve(null);\r\n })\r\n })\r\n }\r\n /**\r\n * \r\n */\r\n getUIAccountConfig() {\r\n const path = this.sharedService.getConfigPath() + this.sharedService.getUniqueID() + '/account_config.json?t=' + new Date();\r\n return this.serviceMeta.httpGet(path);\r\n }\r\n \r\n getUserInformation(uniqueId, userId) {\r\n const _this = this;\r\n let listOfTypes = 'providerBusinessProfile,providerVirtualFields';\r\n return new Promise(function (resolve) {\r\n _this.getJsonsbyTypes(uniqueId, userId, listOfTypes).subscribe(\r\n (userAccount: any) => {\r\n resolve(userAccount);\r\n }\r\n )\r\n })\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from '@angular/router';\r\nimport { AccountService } from './account-service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SharedAccountResolver implements Resolve<any> {\r\n\r\n constructor(private accountService: AccountService) { \r\n console.log(\"Account Resolver Constructor\");\r\n }\r\n\r\n resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n \r\n return this.accountService.getAccountInfoById();\r\n }\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { ActivatedRouteSnapshot, CanLoad, Route, RouterStateSnapshot } from \"@angular/router\";\r\nimport { SharedAccountResolver } from \"./shared-account.resolver\";\r\nimport { Observable } from \"rxjs\";\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SharedAccountGuard implements CanLoad {\r\n\r\n constructor(private accountResolver: SharedAccountResolver) {\r\n console.log(\"Account Resolver\");\r\n\r\n }\r\n // The canLoad method checks if the module can be loaded\r\n canLoad(route: Route): Observable<boolean> | Promise<boolean> | boolean {\r\n // We need to pass both ActivatedRouteSnapshot and RouterStateSnapshot to resolve\r\n const activatedRouteSnapshot = route as ActivatedRouteSnapshot;\r\n const routerStateSnapshot: RouterStateSnapshot = null; // You'll need to pass the actual state if necessary\r\n console.log(\"Account Resolver\");\r\n // Resolving data using the AccountResolver\r\n return this.accountResolver.resolve(activatedRouteSnapshot, routerStateSnapshot).then(accountInfo => {\r\n // Now accountInfo will be available to check if the route should be loaded\r\n if (accountInfo) {\r\n console.log(\"Account Info Found:\", accountInfo);\r\n return true; // Allow loading the route if account info is valid\r\n } else {\r\n console.log(\"Account Info Not Found\");\r\n return false; // Prevent navigation if no account info is available\r\n }\r\n }).catch(error => {\r\n console.error('Error resolving account information:', error);\r\n return false; // Prevent navigation in case of an error\r\n });\r\n }\r\n}","import { Injectable } from \"@angular/core\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n/**\r\n * Handle Local Storage related actions\r\n */\r\nexport class LocalStorageService {\r\n\r\n /* holds the variables which not removed by clearLocalstorage() method */\r\n dont_delete_localstorage = ['refreshToken', 'userType', 'version', 'qrp', 'mUniqueId', 'authToken', 'reqFrom', 'source', 'translatevariable', 'appId', 'installId', 'appUniqueId', 'cleared', 'googleToken', 'sysdate', 'pt_pwd', 'target', 'activeLocation', 'busId'];\r\n\r\n /**\r\n * Default constructor\r\n */\r\n constructor(\r\n // @Inject(PLATFORM_ID) private platformId: object\r\n ) {\r\n }\r\n\r\n /**\r\n * function to get local storage item value\r\n * @param itemname name of variable\r\n */\r\n public getitemfromLocalStorage(itemname: string) {\r\n // if (isPlatformBrowser(this.platformId)) {\r\n if (localStorage.getItem(itemname) !== 'undefined') {\r\n return JSON.parse(localStorage.getItem(itemname));\r\n }\r\n // }\r\n // return null;\r\n }\r\n /**\r\n * // function to set local storage item value\r\n * @param itemname name of variable \r\n * @param itemvalue value to set\r\n */\r\n public setitemonLocalStorage(itemname: string, itemvalue: any) {\r\n // if (isPlatformBrowser(this.platformId)) {\r\n localStorage.setItem(itemname, JSON.stringify(itemvalue));\r\n // }\r\n }\r\n /**\r\n * Method to remove an item from local storage\r\n * @param itemname item to be removed\r\n */\r\n public removeitemfromLocalStorage(itemname: string) {\r\n // if (isPlatformBrowser(this.platformId)) {\r\n localStorage.removeItem(itemname);\r\n // }\r\n }\r\n /**\r\n * Method to clear the local storage items except the ones contained in 'dont_delete_localstorage'\r\n */\r\n public clearLocalstorage() {\r\n // if (isPlatformBrowser(this.platformId)) {\r\n this.removeitemfromLocalStorage('ynw-credentials');\r\n for (let index = 0; index < localStorage.length; index++) {\r\n if (this.dont_delete_localstorage.indexOf(localStorage.key(index)) === -1) {\r\n localStorage.removeItem(localStorage.key(index));\r\n index = index - 1; // manage index after remove\r\n }\r\n }\r\n // }\r\n }\r\n /**\r\n * Method to clear the local storage items\r\n */\r\n public clearAll() {\r\n for (let index = 0; index < localStorage.length; index++) {\r\n localStorage.removeItem(localStorage.key(index));\r\n index = index - 1; // manage index after remove\r\n }\r\n }\r\n}\r\n","// import { isPlatformBrowser } from \"@angular/common\";\r\n// import { Inject, Injectable, PLATFORM_ID } from \"@angular/core\";\r\nimport { Injectable } from \"@angular/core\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n/**\r\n * Handle Session Storage related actions\r\n */\r\nexport class SessionStorageService {\r\n constructor(\r\n // @Inject(PLATFORM_ID) private platformId: Object\r\n ) {\r\n\r\n }\r\n /**\r\n * Method to set an item on session storage\r\n * @param itemname \r\n * @param itemvalue \r\n */\r\n public setitemOnSessionStorage(itemname: string, itemvalue: any) {\r\n // if (isPlatformBrowser(this.platformId)) {\r\n sessionStorage.setItem(itemname, JSON.stringify(itemvalue));\r\n // }\r\n }\r\n /**\r\n * Method to get an item from session storage\r\n * @param itemname \r\n */\r\n public getitemfromSessionStorage(itemname: string) { // function to get local storage item value\r\n const itemValue = sessionStorage.getItem(itemname); \r\n if (sessionStorage.getItem(itemname) !== 'undefined') {\r\n return JSON.parse(itemValue !== null ? JSON.parse(itemValue) : null);\r\n }\r\n }\r\n /**\r\n * Method to remove an item from session storage\r\n * @param itemname \r\n */\r\n public removeitemfromSessionStorage(itemname: string) {\r\n sessionStorage.removeItem(itemname);\r\n }\r\n /**\r\n * Method to clear all the items from session storage\r\n */\r\n public clearSessionStorage() {\r\n for (let index = 0; index < sessionStorage.length; index++) {\r\n const itemValue = sessionStorage.key(index); \r\n sessionStorage.removeItem(itemValue !== null ? itemValue: '');\r\n index = index - 1; // manage index after remove\r\n }\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { SessionStorageService } from \"./session-storage.service\";\r\nimport { LocalStorageService } from \"./local-storage.service\";\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class GroupStorageService {\r\n constructor(private sessionStorageService: SessionStorageService, private lStorageService: LocalStorageService) {}\r\n\r\n public getGroup() {\r\n if (this.sessionStorageService.getitemfromSessionStorage('tabId')) {\r\n return this.sessionStorageService.getitemfromSessionStorage('accountid');\r\n } else {\r\n return 0;\r\n }\r\n }\r\n \r\n public setitemToGroupStorage(itemname: any, itemvalue: any) {\r\n const group = this.getGroup();\r\n let groupObj: any = {};\r\n if (this.lStorageService.getitemfromLocalStorage(group)) {\r\n groupObj = JSON.parse(this.lStorageService.getitemfromLocalStorage(group))?JSON.parse(this.lStorageService.getitemfromLocalStorage(group)): {};\r\n if (groupObj) {\r\n groupObj[itemname] = itemvalue;\r\n }\r\n } else {\r\n groupObj[itemname] = itemvalue;\r\n }\r\n this.lStorageService.setitemonLocalStorage(group, JSON.stringify(groupObj));\r\n }\r\n public getitemFromGroupStorage(itemname: string, type?: any) {\r\n let group;\r\n if (type) {\r\n group = 0;\r\n } else {\r\n group = this.getGroup();\r\n }\r\n if (this.lStorageService.getitemfromLocalStorage(group)) {\r\n const groupObj = JSON.parse(this.lStorageService.getitemfromLocalStorage(group));\r\n if (groupObj[itemname] || (itemname === 'isCheckin' && groupObj[itemname] !== undefined)) {\r\n return groupObj[itemname];\r\n }\r\n }\r\n }\r\n public removeitemFromGroupStorage(itemname: string | number) {\r\n const group = this.getGroup();\r\n const groupObj = JSON.parse(this.lStorageService.getitemfromLocalStorage(group));\r\n if (groupObj[itemname]) {\r\n delete groupObj[itemname];\r\n this.lStorageService.setitemonLocalStorage(group, JSON.stringify(groupObj));\r\n }\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable, Subject } from \"rxjs\";\r\nimport { ServiceMeta } from \"./service-meta\";\r\nimport { LocalStorageService } from \"./local-storage.service\";\r\nimport { SessionStorageService } from \"./session-storage.service\";\r\nimport { GroupStorageService } from \"./group-storage.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n/**\r\n * \r\n * Service handles authentication\r\n */\r\nexport class AuthService {\r\n\r\n private subject = new Subject<any>();\r\n\r\n getMessage(): Observable<any> {\r\n return this.subject.asObservable();\r\n }\r\n\r\n sendMessage(message: any) {\r\n this.subject.next(message);\r\n }\r\n\r\n constructor(\r\n private serviceMeta: ServiceMeta,\r\n private lStorageService: LocalStorageService,\r\n private sessionStorageService: SessionStorageService,\r\n private groupService: GroupStorageService\r\n ) { }\r\n\r\n login(post_data: any) {\r\n const _this = this;\r\n this.lStorageService.setitemonLocalStorage('login', true);\r\n post_data.mUniqueId = this.lStorageService.getitemfromLocalStorage('mUniqueId');\r\n console.log(post_data);\r\n const promise = new Promise((resolve, reject) => {\r\n _this.loginConsumer(post_data).subscribe(data => {\r\n this.lStorageService.removeitemfromLocalStorage('login');\r\n _this.setLoginData(data, post_data);\r\n this.sendMessage({ ttype: 'refresh', action: false });\r\n resolve(data);\r\n }, error => {\r\n if (error.status === 401 && error.error === 'Session Already Exist') {\r\n const authToken = this.lStorageService.getitemfromLocalStorage('c_authorizationToken');\r\n _this.doLogout().then(\r\n () => {\r\n this.lStorageService.setitemonLocalStorage('c_authorizationToken', authToken);\r\n _this.login(post_data);\r\n })\r\n }\r\n reject(error);\r\n });\r\n });\r\n return promise;\r\n }\r\n /**\r\n * Set Credentials and User Type (provider/consumer) in Local Storage\r\n * @param data \r\n * @param post_data \r\n * @param mod \r\n */\r\n setLoginData(data: any, post_data: any) {\r\n console.log(\"Set Login Data:\", data);\r\n this.groupService.setitemToGroupStorage('jld_scon', data);\r\n this.lStorageService.setitemonLocalStorage('isBusinessOwner', 'false');\r\n if (post_data['password']) {\r\n delete post_data['password'];\r\n }\r\n this.lStorageService.setitemonLocalStorage('ynw-credentials', JSON.stringify(post_data));\r\n }\r\n signUp(post_data: any) {\r\n const promise = new Promise((resolve, reject) => {\r\n this.signUpConsumer(post_data).subscribe(\r\n data => {\r\n resolve(data);\r\n }, error => {\r\n reject(error);\r\n });\r\n });\r\n return promise;\r\n }\r\n doLogout() {\r\n console.log(\"Do Logout\")\r\n const _this = this;\r\n this.lStorageService.setitemonLocalStorage('logout', true);\r\n this.lStorageService.removeitemfromLocalStorage('authorization');\r\n const promise = new Promise<void>((resolve, reject) => {\r\n _this.consumerLogout().subscribe(() => {\r\n _this.lStorageService.clearLocalstorage();\r\n _this.sessionStorageService.clearSessionStorage();\r\n this.sendMessage({ ttype: 'refresh', action: false });\r\n resolve();\r\n });\r\n });\r\n return promise;\r\n }\r\n\r\n signUpConsumer(body: any) {\r\n return this.serviceMeta.httpPost('consumer', body);\r\n }\r\n\r\n loginConsumer(body: any) {\r\n console.log(\"LoginConsumer\", body);\r\n return this.serviceMeta.httpPost('consumer/login', body);\r\n }\r\n\r\n consumerLogout() {\r\n return this.serviceMeta.httpDelete('consumer/login');\r\n }\r\n sendConsumerOTP(body: any) {\r\n const url = 'consumer/oauth/identify';\r\n return this.serviceMeta.httpPost(url, body);\r\n }\r\n verifyConsumerOTP(purpose,otp) {\r\n const url = 'consumer/oauth/'+ purpose +'/otp/' + otp + '/verify';\r\n return this.serviceMeta.httpPost(url);\r\n }\r\n verifyNewPhoneOTP(otp: string, body: any, origin?: string) {\r\n const path = origin + '/login/' + otp + '/verifyLogin';\r\n return this.serviceMeta.httpPut(path, body);\r\n }\r\n verifyNewPhone(phonenumber: string, origin?: string, countryCode?: string) {\r\n const path = origin + '/login/verifyLogin/' + phonenumber + '?countryCode=' + countryCode;\r\n return this.serviceMeta.httpPost(path);\r\n }\r\n\r\n getProviderConsumer() {\r\n return this.serviceMeta.httpGet('spconsumer');\r\n }\r\n /**\r\n * To check whether user logged in or not\r\n * @returns true/false\r\n */\r\n goThroughLogin() {\r\n const _this = this;\r\n return new Promise(function (resolve) {\r\n if (_this.lStorageService.getitemfromLocalStorage('ynw-credentials')) {\r\n resolve(true);\r\n } else {\r\n resolve(false);\r\n }\r\n })\r\n }\r\n shareOTPforForm(uuid: string) {\r\n const url = 'consumer/consentform/sendOtp/' + uuid;\r\n return this.serviceMeta.httpPut(url);\r\n }\r\n verifyOTPforForm(otp: string, uuid: string) {\r\n const url = 'consumer/consentform/verifyOtp/' + otp + '/' + uuid;\r\n return this.serviceMeta.httpPatch(url);\r\n }\r\n\r\n isLoggedIn() {\r\n if (this.lStorageService.getitemfromLocalStorage('ynw-credentials')) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { SharedService } from './shared.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\n/**\r\n * \r\n */\r\nexport class FileService {\r\n // Supported images types\r\n IMAGE_FORMATS = [\r\n 'image/gif',\r\n 'image/png',\r\n 'image/jpeg',\r\n 'image/bmp',\r\n 'image/webp'\r\n ];\r\n\r\n FILETYPES_UPLOAD = [\r\n 'image/jpg',\r\n 'image/png',\r\n 'image/jpeg',\r\n 'image/bmp',\r\n 'application/pdf',\r\n 'application/jfif',\r\n 'video/mp4',\r\n 'video/mpeg',\r\n 'audio/mpeg',\r\n 'audio/mp3',\r\n 'audio/ogg',\r\n 'application/vnd.ms-excel',\r\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\r\n 'application/doc',\r\n 'application/ms-doc',\r\n 'application/msword',\r\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\r\n 'docx',\r\n 'doc'\r\n ];\r\n cdnPath: string = '';\r\n imageSize = 15000000;\r\n FILE_MAX_SIZE = 10000000;\r\n constructor(private sharedService: SharedService) { \r\n this.cdnPath = this.sharedService.getCDNPath();\r\n }\r\n\r\n /**\r\n * Method returns supported formats of files which has to be uploaded\r\n * @param source image/file\r\n * @returns available formats\r\n */\r\n getSupportedFormats(source: any) {\r\n console.log(source);\r\n let formats = [];\r\n if (source == 'image') {\r\n formats = this.IMAGE_FORMATS;\r\n //return this.IMAGE_FORMATS;\r\n } else {\r\n formats = this.FILETYPES_UPLOAD;\r\n //return this.FILETYPES_UPLOAD;\r\n }\r\n console.log(formats);\r\n return formats;\r\n }\r\n\r\n /**\r\n * Method will return the maximum uploadable size of a file/image\r\n * @returns Maximum size of the image to upload\r\n */\r\n getMaximumImageSize() {\r\n return this.imageSize;\r\n }\r\n\r\n imageValidation(file: any, source?: any) {\r\n console.log(\"In Image Validation:\", source);\r\n let file_types = [];\r\n if (source === 'attachment' || source === 'consumerimages') {\r\n file_types = this.getSupportedFormats('file');\r\n } else {\r\n file_types = this.getSupportedFormats('image');\r\n }\r\n const image_max_size = this.getMaximumImageSize();\r\n const error: any = [];\r\n console.log(file_types);\r\n console.log(file.type);\r\n let is_error = false;\r\n if (!file.type || (file.type && file_types.indexOf(file.type) === -1)) {\r\n error['type'] = true;\r\n is_error = true;\r\n }\r\n if (file.size && file.size > image_max_size) {\r\n error['size'] = true;\r\n is_error = true;\r\n }\r\n if (is_error === false) {\r\n return true;\r\n } else {\r\n return error;\r\n }\r\n }\r\n getImage(url: any, fileObj: any) {\r\n let file = fileObj;\r\n if (fileObj && fileObj['mimeType']) {\r\n file['type'] = fileObj['mimeType'];\r\n }\r\n // console.log(\"File :\", file);\r\n // console.log(\"File Type :\", file.type)\r\n // console.log(\"File Name :\", file.name.includes('docx'))\r\n if (file.type) {\r\n if (file.type == 'application/pdf') {\r\n return (this.cdnPath + 'assets/images/pdf.png');\r\n } else if (file.type == 'application/vnd.ms-excel' || file.type == 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') {\r\n return (this.cdnPath + 'assets/images/xls.png');\r\n } else if (file.type == 'audio/mp3' || file.type == 'audio/mpeg' || file.type == 'audio/ogg') {\r\n return (this.cdnPath + 'assets/images/audio.png');\r\n } else if (file.type == 'video/mp4' || file.type == 'video/mpeg') {\r\n return (this.cdnPath + 'assets/images/video.png');\r\n } else if (file.type == 'application/msword' || file.type == 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' || file.type.includes('docx') || file.type.includes('doc')) {\r\n return (this.cdnPath + 'assets/images/ImgeFileIcon/wordDocsBgWhite.jpg');\r\n } else if (file.type.includes('txt')) {\r\n return (this.cdnPath + 'assets/images/ImgeFileIcon/docTxt.png');\r\n } else {\r\n return url;\r\n }\r\n }\r\n return url;\r\n }\r\n getImageByType(type: any) {\r\n if (type == 'pdf') {\r\n return (this.cdnPath + 'assets/images/pdf.png');\r\n } else if (type == 'vnd.ms-excel' || type == 'vnd.openxmlformats-officedocument.spreadsheetml.sheet' || type == 'xls' || type == 'xlsx') {\r\n return (this.cdnPath + 'assets/images/xls.png');\r\n } else if (type == 'mp3' || type == 'mpeg' || type == 'ogg') {\r\n return (this.cdnPath + 'assets/images/audio.png');\r\n } else if (type == 'mp4' || type == 'mpeg') {\r\n return (this.cdnPath + 'assets/images/video.png');\r\n } else if (type == 'application/msword' || type == 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' || type == 'docx' || type == 'doc' || type == 'msword') {\r\n return (this.cdnPath + 'assets/images/ImgeFileIcon/wordDocsBgWhite.jpg');\r\n } else if (type == 'txt') {\r\n return (this.cdnPath + 'assets/images/ImgeFileIcon/docTxt.png');\r\n } else {\r\n return (this.cdnPath + 'assets/images/img_uplod.png');\r\n }\r\n }\r\n\r\n filesSelected(event: any, selectedMessage: any) {\r\n const _this = this;\r\n return new Promise(function (resolve, reject) {\r\n // const input = event.target.files;\r\n let input = event.files;\r\n if (event.target && event.target.files) {\r\n input = event.target.files;\r\n }\r\n console.log(\"File Selected :\", input);\r\n if (input) {\r\n let count = 0;\r\n let filesCount = input.length;\r\n for (const file of input) {\r\n if (_this.FILETYPES_UPLOAD.indexOf(file.type) === -1) {\r\n reject(\"Selected file type not supported\");\r\n } else if (file.size > _this.FILE_MAX_SIZE) {\r\n reject(\"Please upload files with size < 10mb\");\r\n } else {\r\n selectedMessage.files.push(file);\r\n const reader = new FileReader();\r\n reader.onload = (e: any) => {\r\n selectedMessage.base64.push(e.target[\"result\"]);\r\n count++;\r\n if (count === filesCount) {\r\n resolve(true);\r\n }\r\n };\r\n reader.readAsDataURL(file);\r\n }\r\n }\r\n }\r\n })\r\n }\r\n filessSelected(event: any, selectedMessage: any) {\r\n const _this = this;\r\n return new Promise(function (resolve, reject) {\r\n // const input = event.target.files;\r\n let input = event.files;\r\n if (event.target && event.target.files) {\r\n input = event.target.files;\r\n }\r\n console.log(\"File Selected :\", input);\r\n if (input) {\r\n let count = 0;\r\n let filesCount = input.length;\r\n for (const file of input) {\r\n if (_this.IMAGE_FORMATS.indexOf(file.type) === -1) {\r\n reject(\"Selected file type not supported\");\r\n } else if (file.size > _this.FILE_MAX_SIZE) {\r\n reject(\"Please upload files with size < 10mb\");\r\n } else {\r\n selectedMessage.files.push(file);\r\n const reader = new FileReader();\r\n reader.onload = (e: any) => {\r\n selectedMessage.base64.push(e.target[\"result\"]);\r\n count++;\r\n if (count === filesCount) {\r\n resolve(true);\r\n }\r\n };\r\n reader.readAsDataURL(file);\r\n }\r\n }\r\n }\r\n })\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { SharedService } from './shared.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CommonService {\r\n\r\n constructor(private sharedService: SharedService) { }\r\n\r\n groupBy(xs: any, key: any) {\r\n return xs.reduce(function (rv: any, x: any) {\r\n (rv[x[key]] = rv[x[key]] || []).push(x);\r\n return rv;\r\n }, {});\r\n }\r\n\r\n isValid(evt) {\r\n const value = parseInt(evt.target.value);\r\n const max = parseInt(evt.target.max);\r\n if (value > max) {\r\n let numString = evt.target.value;\r\n evt.preventDefault();\r\n numString = numString.substr(0, numString.length - 1);\r\n evt.target.value = parseInt(numString);\r\n return false;\r\n }\r\n return true;\r\n }\r\n isNumericwithoutdot(evt) {\r\n const inputKeyCode = evt.keyCode ? evt.keyCode : evt.which;\r\n if ((inputKeyCode >= 48 && inputKeyCode <= 57) || inputKeyCode === 8) {\r\n return true;\r\n } else {\r\n evt.preventDefault();\r\n return false;\r\n }\r\n }\r\n isNumber(evt) {\r\n evt = (evt) ? evt : window.event;\r\n const charCode = (evt.which) ? evt.which : evt.keyCode;\r\n if (charCode > 31 && (charCode < 48 || charCode > 57)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n isNumeric(evt: any) {\r\n const inputKeyCode = evt.keyCode ? evt.keyCode : evt.which;\r\n if ((inputKeyCode >= 48 && inputKeyCode <= 57) || inputKeyCode === 8 || inputKeyCode === 46) {\r\n return true;\r\n } else {\r\n evt.preventDefault();\r\n return false;\r\n }\r\n }\r\n isNumericSign(evt) {\r\n const inputKeyCode = evt.keyCode ? evt.keyCode : evt.which;\r\n if ((inputKeyCode >= 48 && inputKeyCode <= 57) || inputKeyCode === 8 || inputKeyCode === 46 || inputKeyCode === 43) {\r\n return true;\r\n } else {\r\n evt.preventDefault();\r\n return false;\r\n }\r\n }\r\n showlogoicon(logo: any) {\r\n if (logo == null || logo === '') {\r\n return this.sharedService.getCDNPath() + 'assets/images/no_image_icon.png';\r\n } else {\r\n return logo;\r\n }\r\n }\r\n getDistanceFromLatLonInKm(lat1, lon1, lat2, lon2) {\r\n const R = 6371; // Radius of the earth in km\r\n const dLat = this.deg2rad(lat2 - lat1); // deg2rad below\r\n const dLon = this.deg2rad(lon2 - lon1);\r\n const a =\r\n Math.sin(dLat / 2) * Math.sin(dLat / 2) +\r\n Math.cos(this.deg2rad(lat1)) * Math.cos(this.deg2rad(lat2)) *\r\n Math.sin(dLon / 2) * Math.sin(dLon / 2);\r\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\r\n const d = R * c; // Distance in km\r\n return d;\r\n }\r\n deg2rad(deg) {\r\n return deg * Math.PI / 180;\r\n }\r\n getCurrentLocation() {\r\n return new Promise(function (resolve, reject) {\r\n if (navigator) {\r\n let lat_lng = {\r\n latitude: 0,\r\n longitude: 0\r\n };\r\n navigator.geolocation.getCurrentPosition(pos => {\r\n lat_lng.longitude = +pos.coords.longitude;\r\n lat_lng.latitude = +pos.coords.latitude;\r\n resolve(lat_lng);\r\n },\r\n error => {\r\n reject(error);\r\n });\r\n }\r\n })\r\n }\r\n sortVfields(dataF: any) {\r\n let temp;\r\n const temp1 = new Array();\r\n let temp2 = new Array();\r\n let temp3 = new Array();\r\n console.log(dataF);\r\n for (let i = 0; i < dataF.length; i++) {\r\n temp2 = [];\r\n let str = '';\r\n dataF[i]['type'] = typeof dataF[i].value;\r\n switch (dataF[i].dataType) {\r\n case 'Gender':\r\n break;\r\n case 'Enum':\r\n break;\r\n case 'EnumList':\r\n str = '';\r\n temp3 = [];\r\n for (let jj = 0; jj < dataF[i].value.length; jj++) {\r\n if (str !== '') {\r\n str += ', ';\r\n }\r\n str += dataF[i].value[jj].displayName;\r\n }\r\n temp3.push(str);\r\n temp2.push(temp3);\r\n dataF[i].value = temp2;\r\n temp1.push(dataF[i]);\r\n break;\r\n case 'DataGrid':\r\n for (let ii = 0; ii < dataF[i].value.length; ii++) {\r\n temp3 = [];\r\n Object.keys(dataF[i].value[ii]).forEach(nkeys => {\r\n temp3.push(dataF[i].value[ii][nkeys]);\r\n });\r\n temp2.push(temp3);\r\n }\r\n dataF[i].value = temp2;\r\n temp1.push(dataF[i]);\r\n break;\r\n case 'Boolean':\r\n if (dataF[i].value === 'true') {\r\n dataF[i].value = 'Yes';\r\n } else {\r\n dataF[i].value = 'No';\r\n }\r\n temp1.push(dataF[i]);\r\n break;\r\n default:\r\n temp1.push(dataF[i]);\r\n break;\r\n }\r\n }\r\n dataF = temp1;\r\n for (let i = 0; i < dataF.length; i++) {\r\n for (let j = i + 1; j < dataF.length; j++) {\r\n if (parseInt(dataF[i].order, 10) > parseInt(dataF[j].order, 10)) {\r\n temp = dataF[i];\r\n dataF[i] = dataF[j];\r\n dataF[j] = temp;\r\n }\r\n }\r\n }\r\n return dataF;\r\n }\r\n b64toBlobforSign(b64Data) {\r\n const byteString = atob(b64Data.split(',')[1]);\r\n const ab = new ArrayBuffer(byteString.length);\r\n const ia = new Uint8Array(ab);\r\n\r\n for (let i = 0; i < byteString.length; i++) {\r\n ia[i] = byteString.charCodeAt(i);\r\n }\r\n return new Blob([ab], { type: 'image/jpeg' });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ServiceMeta } from './service-meta';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StorageService {\r\n\r\n private storage: any = {\r\n 'spconsumer': null,\r\n 'salutation': null\r\n }\r\n\r\n constructor(\r\n private servicemeta: ServiceMeta\r\n ) { }\r\n\r\n clear() {\r\n this.storage = {\r\n 'spconsumer': null,\r\n 'salutation': null\r\n }\r\n }\r\n\r\n set(key: string, value: any) {\r\n this.storage[key] = value;\r\n }\r\n\r\n get(key: string) {\r\n return this.storage[key];\r\n }\r\n\r\n getSPConsumer() {\r\n return this.servicemeta.httpGet('spconsumer');\r\n }\r\n\r\n getProviderConsumer() {\r\n const _this = this;\r\n\r\n return new Promise(function (resolve, reject) {\r\n\r\n const spConsumer = _this.get('spconsumer');\r\n if (spConsumer) {\r\n resolve(spConsumer);\r\n } else {\r\n _this.getSPConsumer().subscribe((spconsumer) => {\r\n _this.set('spconsumer', spconsumer);\r\n resolve(spconsumer);\r\n }, (error) => {\r\n reject(error);\r\n })\r\n }\r\n });\r\n }\r\n getSalutationsRest() {\r\n const url = 'consumer/userTitle';\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getSalutations() {\r\n const _this = this;\r\n return new Promise(function (resolve, reject) {\r\n const salutations = _this.get('salutations');\r\n if (salutations) {\r\n resolve(salutations);\r\n } else {\r\n _this.getSalutationsRest().subscribe((salutations) => {\r\n _this.set('salutations', salutations);\r\n resolve(salutations);\r\n }, (error) => {\r\n reject(error);\r\n }\r\n )\r\n }\r\n })\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { ServiceMeta } from \"./service-meta\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class ConsumerService {\r\n orderdata: any;\r\n constructor(\r\n private servicemeta: ServiceMeta\r\n ) { }\r\n setOrderDetails(data) {\r\n this.orderdata = data;\r\n console.log(this.orderdata);\r\n }\r\n getOrderDetails() {\r\n return this.orderdata;\r\n }\r\n getProviderConsumer() {\r\n return this.servicemeta.httpGet('spconsumer');\r\n }\r\n updateSPConsumer(post_data: any) {\r\n return this.servicemeta.httpPut('spconsumer', post_data);\r\n }\r\n getFavProvider() {\r\n return this.servicemeta.httpGet('consumer/providers');\r\n }\r\n removeProviderfromFavourite(accountid) {\r\n const url = 'consumer/providers/' + accountid;\r\n return this.servicemeta.httpDelete(url);\r\n }\r\n doDeleteFavProvider(fav, cthis?) {\r\n return new Promise((resolve, reject) => {\r\n this.deleteFavProvider(fav.id)\r\n .then(\r\n data => {\r\n resolve(data);\r\n },\r\n error => {\r\n reject(error);\r\n }\r\n );\r\n });\r\n }\r\n deleteFavProvider(id) {\r\n return new Promise((resolve, reject) => {\r\n this.removeProviderfromFavourite(id)\r\n .subscribe(\r\n data => {\r\n resolve('reloadlist');\r\n },\r\n error => {\r\n reject(error);\r\n }\r\n );\r\n });\r\n }\r\n addProvidertoFavourite(accountid) {\r\n const url = 'consumer/providers/' + accountid;\r\n return this.servicemeta.httpPost(url);\r\n }\r\n changePasswordProfile(data, origin?) {\r\n const url = origin + '/login/chpwd';\r\n return this.servicemeta.httpPut(url, data);\r\n }\r\n consumertelegramChat(countryCode, loginId) {\r\n const url = 'chatbot/telegram/consumer/chatId/' + countryCode + '/' + loginId;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getConsumerRateService(params, type) {\r\n let path;\r\n if (type === 'checkin') {\r\n path = 'consumer/waitlist/rating';\r\n } else if (type === 'appointment') {\r\n path = 'consumer/appointment/rating';\r\n } else if (type === 'order') {\r\n path = 'consumer/orders/rating';\r\n }\r\n return this.servicemeta.httpGet(path, null, params);\r\n }\r\n updateConsumerRateService(params, data, type) {\r\n let path;\r\n if (type === 'checkin') {\r\n path = 'consumer/waitlist/rating';\r\n } else if (type === 'appointment') {\r\n path = 'consumer/appointment/rating';\r\n } else if (type === 'order') {\r\n path = 'consumer/orders/rating';\r\n }\r\n return this.servicemeta.httpPut(path, data, null, params);\r\n }\r\n postConsumerRateService(params, data, type) {\r\n let path;\r\n if (type === 'checkin') {\r\n path = 'consumer/waitlist/rating';\r\n } else if (type === 'appointment') {\r\n path = 'consumer/appointment/rating';\r\n } else if (type === 'order') {\r\n path = 'consumer/orders/rating';\r\n }\r\n return this.servicemeta.httpPost(path, data, null, params);\r\n }\r\n //Waitlist Urls\r\n getWaitlist(params) {\r\n return this.servicemeta.httpGet('consumer/waitlist', null, params);\r\n }\r\n getWaitlistFuture(params?) {\r\n return this.servicemeta.httpGet('consumer/waitlist/future', null, params);\r\n }\r\n addConsumerWaitlistAttachment(accountid, uuid, body) {\r\n const url = 'consumer/waitlist/' + uuid + '/attachment' + '?account=' + accountid;;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n addWaitlistAttachment(accountid, uuid, body) {\r\n const url = '/consumer/waitlist/share/attachments/' + uuid + '?account=' + accountid;;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n getConsumerWaitlistAttachmentsByUuid(uuid, accountid) {\r\n const url = 'consumer/waitlist/attachment/' + uuid + '?account=' + accountid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getWaitlistToday() {\r\n const path = 'consumer/waitlist/today';\r\n return this.servicemeta.httpGet(path);\r\n }\r\n //Appointment Urls\r\n getAppointmentFuture(params?) {\r\n return this.servicemeta.httpGet('consumer/appointment/future', null, params);\r\n }\r\n getApptlist(params) {\r\n return this.servicemeta.httpGet('consumer/appointment', null, params);\r\n }\r\n getAppointmentToday(params?) {\r\n return this.servicemeta.httpGet('consumer/appointment/today', null, params);\r\n }\r\n addConsumerAppointmentAttachment(accountid, uuid, body) {\r\n const url = 'consumer/appointment/' + uuid + '/attachment' + '?account=' + accountid;;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n addAppointmentAttachment(accountid, uuid, body) {\r\n const url = 'consumer/appointment/share/attachments/' + uuid + '?account=' + accountid;;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n getConsumerAppointmentAttachmentsByUuid(uuid, accountid) {\r\n const url = 'consumer/appointment/attachment/' + uuid + '?account=' + accountid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n //Order Urls\r\n getConsumerFutOrders() {\r\n const url = 'consumer/orders/future';\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getConsumerOrders(params) {\r\n return this.servicemeta.httpGet('consumer/orders', null, params);\r\n }\r\n //Donation Urls\r\n getConsumerDonations(params = null) {\r\n const url = 'consumer/donation';\r\n return this.servicemeta.httpGet(url, null, params);\r\n }\r\n getConsumerWaitlistMeetingDetails(uuid, mode, accountId) {\r\n const url = 'consumer/waitlist/' + uuid + '/meetingDetails/' + mode + '?account=' + accountId;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getConsumerApptMeetingDetails(uuid, mode, accountId) {\r\n const url = 'consumer/appointment/' + uuid + '/meetingDetails/' + mode + '?account=' + accountId;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getProfile(consumerId) {\r\n const promise = new Promise((resolve, reject) => {\r\n this.getMyProfile(consumerId).subscribe(\r\n data => {\r\n resolve(data);\r\n },\r\n error => {\r\n reject(error);\r\n });\r\n });\r\n return promise;\r\n }\r\n getTelegramstat() {\r\n const url = 'consumer/telegram/settings';\r\n return this.servicemeta.httpGet(url);\r\n }\r\n enableTelegramNoti(status) {\r\n const url = 'consumer/telegram/settings/' + status;\r\n return this.servicemeta.httpPut(url);\r\n }\r\n getMyProfile(id) {\r\n let path = 'consumer/' + id;\r\n return this.servicemeta.httpGet(path);\r\n }\r\n updateProfile(data, origin) {\r\n return this.servicemeta.httpPatch(origin, data);\r\n }\r\n updateSPConsumerProfile(data, origin) {\r\n return this.servicemeta.httpPut(origin, data);\r\n }\r\n addMembers(data) {\r\n return this.servicemeta.httpPost('consumer/family/member', data);\r\n }\r\n editMember(data) {\r\n return this.servicemeta.httpPut('consumer/family/member', data);\r\n }\r\n getConsumerPayments(filter?) {\r\n const url = 'consumer/payment';\r\n return this.servicemeta.httpGet(url, null, filter);\r\n }\r\n getOrderByConsumerUUID(uuid, accountid) {\r\n const url = 'consumer/orders/' + uuid + '?account=' + accountid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getCheckinByConsumerUUID(uuid, accountid) {\r\n console.log(\"UUID:\", uuid);\r\n const url = 'consumer/waitlist/' + uuid + '?account=' + accountid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getAppointmentByConsumerUUID(uuid, accountid) {\r\n const url = 'consumer/appointment/' + uuid + '?account=' + accountid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getConsumerDonationByUid(uid) {\r\n const url = 'consumer/donation/' + uid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getConsumerPaymentById(id) {\r\n const url = 'consumer/payment/' + id;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getMembers(providerCustomerID) {\r\n const url = 'consumer/family/member/' + providerCustomerID;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n deleteMember(memberId, parentID) {\r\n const path = 'consumer/family/member/' + memberId + '/' + parentID;\r\n return this.servicemeta.httpDelete(path);\r\n }\r\n getWaitlistHistory(params = {}) {\r\n return this.servicemeta.httpGet('consumer/waitlist/history', null, params);\r\n // set no_redirect_path in interceptor to avoid redirect on 401\r\n }\r\n getHistoryWaitlistCount(params = {}) {\r\n return this.servicemeta.httpGet('consumer/waitlist/history/count', null, params);\r\n }\r\n getWaitlistBill(params, uuid) {\r\n const path = 'consumer/bill/' + uuid;\r\n return this.servicemeta.httpGet(path, null, params);\r\n }\r\n getPaymentDetail(params, uuid) {\r\n const url = 'consumer/payment/details/' + uuid;\r\n return this.servicemeta.httpGet(url, null, params);\r\n }\r\n getAppointmentHistory(params?) {\r\n return this.servicemeta.httpGet('consumer/appointment/history', null, params);\r\n }\r\n getAppointmentHistoryCount() {\r\n return this.servicemeta.httpGet('consumer/appointment/history/count');\r\n }\r\n getOrderHistory(params?) {\r\n const url = 'consumer/orders/history';\r\n return this.servicemeta.httpGet(url, null, params);\r\n }\r\n getPaymentModesofProvider(provid, serviceId, purpose?) {\r\n const url = 'consumer/payment/modes/service/' + provid + '/' + serviceId + '/' + purpose;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n consumerPayment(data) {\r\n const url = 'consumer/payment';\r\n return this.servicemeta.httpPost(url, data);\r\n }\r\n consumerPayment_invocie(data) {\r\n const url = 'consumer/jp/finance/pay';\r\n return this.servicemeta.httpPost(url, data);\r\n }\r\n\r\n applyCoupon(jCouponCode, checkinId, accountid) {\r\n const url = 'consumer/jaldee/coupons/' + jCouponCode + '/' + checkinId + '?account=' + accountid;\r\n return this.servicemeta.httpPost(url);\r\n }\r\n getConsumerCommunications(provider_id) {\r\n const url = 'consumer/communications?account=' + provider_id;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getWtlistHistory(uuid, accountid) {\r\n const path = 'consumer/waitlist/states/' + uuid + '?account=' + accountid;\r\n return this.servicemeta.httpGet(path);\r\n }\r\n getWaitlistQuestionnaireByUid(uid, accountId) {\r\n const url = 'consumer/waitlist/questionnaire/' + uid + '?account=' + accountId;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getApptHistory(uuid, accountid) {\r\n const path = 'consumer/appointment/state/' + uuid + '?account=' + accountid;\r\n return this.servicemeta.httpGet(path);\r\n }\r\n getApptQuestionnaireByUid(uid, accountId) {\r\n const url = 'consumer/appointment/questionnaire/' + uid + '?account=' + accountId;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getAppointmentDetail(uuid, params) {\r\n const path = 'consumer/appointment/' + uuid;\r\n return this.servicemeta.httpGet(path, null, params);\r\n }\r\n getJaldeeCashandJcredit() {\r\n const url = 'consumer/wallet/redeem/eligible/amt';\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getRemainingPrepaymentAmount(jcash?, jcredit?, advanceamount?) {\r\n const url = 'consumer/wallet/redeem/remaining/amt' + '?useJcash=' + jcash + '&useJcredit=' + jcredit + '&advancePayAmount=' + advanceamount;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n PayByJaldeewallet(postData) {\r\n return this.servicemeta.httpPost('consumer/payment/wallet', postData);\r\n }\r\n getWaitlistDetail(uuid, params) {\r\n const path = 'consumer/waitlist/' + uuid;\r\n return this.servicemeta.httpGet(path, null, params);\r\n }\r\n generateDonationLink(accountid, data) {\r\n const url = 'consumer/payment/generate/paylink?account=' + accountid;\r\n return this.servicemeta.httpPost(url, data);\r\n }\r\n addCustomerDonation(postData, accountid) {\r\n return this.servicemeta.httpPost('consumer/donation?account=' + accountid, postData);\r\n }\r\n getDonationLinkUuid(uuid) {\r\n const url = 'consumer/payment/paylink/donation/' + uuid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n addConsumerWaitlistNote(accountid, uuid, body) {\r\n const url = 'consumer/waitlist/communication/' + uuid + '?account=' + accountid;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n getDonationQuestionnaire(serviceId, account_id) {\r\n const url = 'consumer/questionnaire/donation/' + serviceId + '?account=' + account_id;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n submitDonationQuestionnaire(uuid, body, account_id) {\r\n const url = 'consumer/donation/questionnaire/submit/' + uuid + '?account=' + account_id;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n consumerDonationQnrUploadStatusUpdate(uid, account, data) {\r\n const url = 'consumer/donation/questionnaire/upload/status/' + uid + '?account=' + account;\r\n return this.servicemeta.httpPut(url, data);\r\n }\r\n validateConsumerQuestionnaire(body, accountId) {\r\n const url = 'consumer/questionnaire/validate' + '?account=' + accountId;\r\n return this.servicemeta.httpPut(url, body);\r\n }\r\n validateConsumerOneTimeQuestionnaire(body, accountId, providerConsumerId) {\r\n const url = 'consumer/questionnaire/validate/onetimequestionnaire/' + providerConsumerId + '?account=' + accountId;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n getProviderCustomerOnetimeInfo(providerConsumerID, accountId) {\r\n const url = 'consumer/providerCustomer/' + providerConsumerID + \"?account=\" + accountId;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n submitCustomerOnetimeInfo(body, userId, accountId) {\r\n const url = 'consumer/questionnaire/' + userId + '?account=' + accountId;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n submitConsumerApptServiceOption(body, uuid, account) {\r\n const url = 'consumer/appointment/serviceoption/' + uuid + '?account=' + account;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n rescheduleConsumerApptmnt(accountid, postData) {\r\n return this.servicemeta.httpPut('consumer/appointment/reschedule?account=' + accountid, postData);\r\n }\r\n\r\n addCustomerAppointment(accountid, postData) {\r\n return this.servicemeta.httpPost('consumer/appointment/add?account=' + accountid, postData);\r\n }\r\n getConvenientFeeOfProvider(provid, data?) {\r\n const url = 'consumer/payment/modes/convenienceFee/' + provid;\r\n return this.servicemeta.httpPut(url, data);\r\n }\r\n addApptAdvancePayment(param, body) {\r\n const url = 'consumer/appointment/advancePayment';\r\n return this.servicemeta.httpPut(url, body, null, param);\r\n }\r\n getConsumerQuestionnaire(serviceId, consumerId, accountId) {\r\n const url = 'consumer/questionnaire/service/' + serviceId + '/consumer/' + consumerId + '?account=' + accountId;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getServiceoptionsAppt(servid, account) {\r\n const url = 'consumer/questionnaire/serviceoptions/' + servid + '/0?account=' + account;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getAppointmentReschedulePricelist(serviceid) {\r\n const url = 'consumer/appointment/schedule/' + serviceid + '/pricelist';\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getSlotsByLocationServiceandDate(locid, servid, pdate, accountid) {\r\n const url = 'consumer/appointment/schedule/date/' + pdate + '/location/' + locid + '/service/' + servid + '?account=' + accountid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getAvailableDatessByLocationService(locid, servid, accountid?) {\r\n const url = 'consumer/appointment/availability/location/' + locid + '/service/' + servid + '?account=' + accountid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getServicesforAppontmntByLocationId(locid) {\r\n if (locid) {\r\n const url = 'consumer/appointment/service/' + locid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n return null;\r\n }\r\n rescheduleConsumerWaitlist(accountid, postData) {\r\n return this.servicemeta.httpPut('consumer/waitlist/reschedule?account=' + accountid, postData);\r\n }\r\n getQueuesbyLocationandServiceIdAvailableDates(locid, servid, accountid) {\r\n const url = 'consumer/waitlist/queues/available/' + locid + '/' + servid + '?account=' + accountid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n addCheckin(accountid, postData) {\r\n return this.servicemeta.httpPost('consumer/waitlist/add?account=' + accountid, postData);\r\n }\r\n submitConsumerWaitlistServiceOption(body, uuid, account) {\r\n const url = 'consumer/waitlist/serviceoption/' + uuid + '/?account=' + account;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n getPartysizeDetails(domain, subdomain) {\r\n const url = 'ynwConf/settings/' + domain + '/' + subdomain;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n addWaitlistAdvancePayment(param, body) {\r\n const url = 'consumer/waitlist/advancePayment';\r\n return this.servicemeta.httpPut(url, body, null, param);\r\n }\r\n getServiceoptionsWaitlist(servid, account) {\r\n const url = 'consumer/questionnaire/serviceoptions/' + servid + '/0?account=' + account;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getQueuesbyLocationandServiceId(locid, servid, pdate?, accountid?) {\r\n const dd = (pdate !== undefined) ? '/' + pdate + '?account=' + accountid : '';\r\n const url = 'consumer/waitlist/queues/' + locid + '/' + servid + dd;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getServicesByLocationId(locid) {\r\n const url = 'consumer/waitlist/services/' + locid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getOrderQuestionnaireByUid(uid, accountId) {\r\n const url = 'consumer/orders/questionnaire/' + uid + '?account=' + accountId;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getStoreContact(accountid?) {\r\n return this.servicemeta.httpGet('consumer/orders/settings/store/contact/info/' + accountid);\r\n }\r\n getConsumerCatalogs(accountid) {\r\n const url = 'consumer/orders/catalogs/' + accountid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getAvailableDatesForHome(catalogid, accountid?) {\r\n return this.servicemeta.httpGet('consumer/orders/catalogs/delivery/dates/' + catalogid + '?account=' + accountid);\r\n }\r\n getAvailableDatesForPickup(catalogid, accountid?) {\r\n return this.servicemeta.httpGet('consumer/orders/catalogs/pickUp/dates/' + catalogid + '?account=' + accountid);\r\n }\r\n updateConsumeraddress(data) {\r\n const url = 'consumer/deliveryAddress';\r\n return this.servicemeta.httpPut(url, data);\r\n }\r\n CreateConsumerOrder(accountid, postData) {\r\n return this.servicemeta.httpPost('consumer/orders?account=' + accountid, postData);\r\n }\r\n CreateConsumerEmail(uuid, accountid, post_Data) {\r\n return this.servicemeta.httpPut('consumer/orders/' + uuid + '/email?account=' + accountid, post_Data);\r\n }\r\n getConsumerOrderQuestionnaire(catelogId, accountId) {\r\n const url = 'consumer/questionnaire/order/' + catelogId + '?account=' + accountId;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getConsumeraddress() {\r\n const url = 'consumer/deliveryAddress';\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getCartdetails(accountid, data) {\r\n const url = 'consumer/orders/amount?account=' + accountid;\r\n return this.servicemeta.httpPut(url, data);\r\n }\r\n getUserApptTime(prov_arr) {\r\n if (prov_arr.length > 0) {\r\n const path = 'consumer/appointment/schedule/nextAvailableSchedule/' + prov_arr.join(',');\r\n const encodedPath = encodeURI(path);\r\n return this.servicemeta.httpGet(encodedPath);\r\n }\r\n return null;\r\n }\r\n // getUserEstimatedWaitingTime(prov_arr) {\r\n // let str = '';\r\n // for (let i = 0; i < prov_arr.length; i++) {\r\n // if (str !== '') {\r\n // str += '%2C'; // comma\r\n // }\r\n // str += prov_arr[i];\r\n // }\r\n // if (str === '') {\r\n // return null;\r\n // }\r\n\r\n // const path = 'provider/waitlist/queues/providerWaitingTime/' + str;\r\n // return this.servicemeta.httpGet(path);\r\n // }\r\n // updateAnalytics(body) {\r\n // const url = 'provider/analytics/update';\r\n // return this.servicemeta.httpPost(url, body);\r\n // }\r\n // getSearchCatalogItem(account: any, tempName: any, name: any) {\r\n // const url = projectConstants.SAPATH + 'searchdetails/' + account + '/Item/search?' + tempName + '=' + name + '*';\r\n // return this.servicemeta.httpGet(url);\r\n // }\r\n getOrderSettings(accountid) {\r\n const url = 'consumer/orders/settings' + '?account=' + accountid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n addConsumertoProviderNote(message, filter) {\r\n const url = 'consumer/message/communications';\r\n return this.servicemeta.httpPost(url, message, null, filter);\r\n }\r\n telegramChat(countryCode, phNumber) {\r\n if (countryCode === '') {\r\n const url = 'chatbot/telegram/provider/chatId/91/' + phNumber;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n else {\r\n const url = 'chatbot/telegram/provider/chatId/' + countryCode + '/' + phNumber;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n }\r\n // addProviderAppointmentNote(uuid, body) {\r\n // const url = 'provider/appointment/communicate/' + uuid;\r\n // return this.servicemeta.httpPost(url, body);\r\n // }\r\n // addProviderOrderNote(uuid, body) {\r\n // const url = 'provider/orders/communicate/' + uuid;\r\n // return this.servicemeta.httpPost(url, body);\r\n // }\r\n // addProviderDonationNote(uuid, body) {\r\n // const url = 'provider/donation/communicate/' + uuid;\r\n // return this.servicemeta.httpPost(url, body);\r\n // }\r\n // addProviderWaitlistNote(uuid, body) {\r\n // const url = 'provider/waitlist/communicate/' + uuid;\r\n // return this.servicemeta.httpPost(url, body);\r\n // }\r\n getMembership(accountId) {\r\n const url = 'consumer/membership/services?account=' + accountId;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n addConsumerAppointmentNote(accountid, uuid, body) {\r\n const url = 'consumer/appointment/communicate/message/' + uuid + '?account=' + accountid;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n\r\n addConsumerOrderNote(accountid, uuid, body) {\r\n const url = 'consumer/order/communicate/' + uuid + '?account=' + accountid;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n addConsumerOrderNotecomm(accountid, uuid, body) {\r\n const url = 'consumer/orders/communicate/message/' + uuid + '?account=' + accountid;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n addConsumerDonationNote(accountid, uuid, body) {\r\n const url = 'consumer/donation/communicate/' + uuid + '?account=' + accountid;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n deactiveAccount(user: any) {\r\n const url = user + '/login/deActivate';\r\n return this.servicemeta.httpDelete(url);\r\n }\r\n getCatalogById(catalogs, catalogId) {\r\n console.log(\"CAtalogs:\", catalogs);\r\n console.log(\"ID:\", catalogId);\r\n let catalogArray = catalogs.filter(catalog => catalog.id == catalogId);\r\n console.log(\"CatalogArray\", catalogArray);\r\n if (catalogArray.length > 0) {\r\n return catalogArray[0];\r\n }\r\n return null;\r\n }\r\n getCatalogItemById(catalog, catalogItemId) {\r\n let catalogItemArray = catalog.catalogItem.filter(catalogItem => catalogItem.id == catalogItemId);\r\n if (catalogItemArray.length > 0) {\r\n return catalogItemArray[0];\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * \r\n * @param orders \r\n * @param item \r\n * @returns \r\n */\r\n getItemQty(orders, itemId) {\r\n const orderList = orders;\r\n console.log(\"Cart Items:\", orderList);\r\n let qty = 0;\r\n if (orderList !== null && orderList.filter(i => i.id == itemId)) {\r\n qty = orderList.filter(i => i.id == itemId).length;\r\n }\r\n return qty;\r\n }\r\n getApptRequestList(accountId) {\r\n return this.servicemeta.httpGet('consumer/appointment/service/request?account-eq=' + accountId);\r\n }\r\n postAppointmentRequest(accountid, postData) {\r\n return this.servicemeta.httpPost('consumer/appointment/service/request?account=' + accountid, postData);\r\n }\r\n getPrescriptions() {\r\n const url = 'spconsumer/medicalrecord/prescription';\r\n return this.servicemeta.httpGet(url);\r\n }\r\n submitItemOptions(itemId, orderId, accountId, postData) {\r\n return this.servicemeta.httpPost('consumer/orders/item/serviceoption/' + itemId + '/' + orderId + '?account=' + accountId, postData);\r\n }\r\n getServiceoptionsOrder(itemId, account) {\r\n const url = 'consumer/questionnaire/serviceoptions/order/item/' + itemId + '?account=' + account;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n removeProfilePhoto(consumerId, body) {\r\n const path = 'spconsumer/remove/profilePhoto/' + consumerId;\r\n return this.servicemeta.httpDelete(path, body);\r\n }\r\n addProfilePhoto(customerId: number, post_data: any) {\r\n const url = 'spconsumer/upload/profilePhoto/' + customerId;\r\n return this.servicemeta.httpPost(url, post_data);\r\n }\r\n getDocument() {\r\n const url = 'spconsumer/medicalrecord/prescription';\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getItemsListWithItemOptions(catalogId, account) {\r\n const url = 'consumer/questionnaire/serviceoption/order/catalog/item/' + catalogId + '/ONLINE?account=' + account;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n videoaudioS3Upload(url, file) {\r\n console.log(\"VideoAudio Upload\", url);\r\n return this.servicemeta.httpPut(url, file);\r\n }\r\n getApptCoupons(servId, locId) {\r\n const url = 'consumer/appointment/service/' + servId + '/location/' + locId + '/coupons';\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getCheckinCoupons(servId, locId) {\r\n const url = 'consumer/waitlist/service/' + servId + '/location/' + locId + '/coupons';\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getCheckinbyEncId(encId) {\r\n const url = 'consumer/waitlist/enc/' + encId;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getApptbyEncId(encId) {\r\n const url = 'consumer/appointment/enc/' + encId;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getOrderbyEncId(encId) {\r\n const url = 'consumer/orders/enc/' + encId;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getSorderbyEncId(encId) {\r\n const url = 'consumer/sorder/encId/' + encId;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getIvrQuestionnaireByUid(uid, accountId) {\r\n const url = 'consumer/ivr/questionnaire/' + uid + '?account=' + accountId;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getivrByConsumerUUID(uuid, accountid) {\r\n const url = 'consumer/ivr/' + uuid + '?account=' + accountid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getAppointmentById(appmntId) {\r\n const url = 'provider/appointment/' + appmntId;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getProviderOrderDetailById(uuid) {\r\n const url = 'provider/orders/' + uuid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getProviderWaitlistDetailById(uuid) {\r\n const url = 'provider/waitlist/' + uuid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n Paymentlinkcheck(uuid) {\r\n const url = 'consumer/payment/pay/' + uuid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getIdTerminologies(domain, subDomain) {\r\n const url = 'ynwConf/terminologies/' + domain + '/' + subDomain;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n linkPayment(data) {\r\n const url = 'provider/payment/paylink/order/create';\r\n return this.servicemeta.httpPost(url, data);\r\n }\r\n linkPayment_invoic(data) {\r\n const url = 'consumer/jp/finance/pay';\r\n return this.servicemeta.httpPost(url, data);\r\n }\r\n linkMembershipPayment_invoic(data) {\r\n const url = 'consumer/membership/pay';\r\n return this.servicemeta.httpPost(url, data);\r\n }\r\n getmembershipInvocieDetailsById(uuid,accId) {\r\n const url = 'consumer/membership/member/subscription/' + uuid + '?account=' + accId;;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n linkSoPayment_invoic(data) {\r\n const url = 'consumer/so/pay';\r\n return this.servicemeta.httpPost(url, data);\r\n }\r\n getInvoiceDetailsById(accId, uuid) {\r\n const url = 'consumer/jp/finance/invoice/' + accId + '/' + uuid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getSoInvoiceDetailsById(accId, uuid) {\r\n const url = 'consumer/so/invoice/' + accId + '/' + uuid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n uploadFilesToS3(data, accountId) {\r\n const url = 'consumer/fileShare/upload' + '?account=' + accountId;\r\n return this.servicemeta.httpPost(url, data);\r\n }\r\n videoaudioS3UploadStatusUpdate(status, id, accountId) {\r\n const url = 'consumer/fileShare/upload/' + status + '/' + id + '?account=' + accountId;\r\n return this.servicemeta.httpPut(url, null);\r\n }\r\n getApptBill(uuid) {\r\n const url = 'consumer/appointment/' + uuid + '/' + 'billdetails';\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getWaitBill(uuid) {\r\n const url = 'consumer/waitlist/' + uuid + '/' + 'billdetails';\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getInvoiceDetailsByuuid(uuid) {\r\n const url = 'consumer/jp/finance/invoice/ynwuid' + '/' + uuid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getInvoice(accountId, invoiceUid) {\r\n const url = 'consumer/jp/finance/invoice' + '/' + accountId + '/' + invoiceUid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getConsentForm(id) {\r\n const url = 'consumer/consentform/' + id;\r\n return this.servicemeta.httpGet(url, null);\r\n }\r\n getconsentFormQuestionaire(uuid) {\r\n const url = 'consumer/consentform/questionnaire/' + uuid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n submitQuestionnaire(body, uuid) {\r\n const url = 'consumer/consentform/questionnaire/submit/' + uuid;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n verifySign(uuid, body) {\r\n const url = 'consumer/consentform/verifysign/' + uuid;\r\n return this.servicemeta.httpPatch(url, body);\r\n }\r\n verifyQnr(uuid) {\r\n const url = 'consumer/consentform/verifyStatus/' + uuid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n isProviderReady(post_data) {\r\n return this.servicemeta.httpPut('consumer/appointment/videocall/ready', post_data);\r\n }\r\n updateAnalytics(body) {\r\n const url = 'consumer/analytics/update';\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n getUsersByLocation(locationId, uniqueId, listOfUrls) {\r\n let path = 'provider/account/settings/location/' + locationId + '/' + uniqueId + '/' + listOfUrls;\r\n return this.servicemeta.httpGet(path);\r\n }\r\n getInbox(usertype) {\r\n return this.servicemeta.httpGet(usertype + '/communications');\r\n }\r\n readProviderMessages(providerId, messageIds, accountId) {\r\n const url = 'consumer/communications/readMessages/' + providerId + '/' + messageIds + '?account=' + accountId;\r\n return this.servicemeta.httpPut(url);\r\n }\r\n}","export const Messages: any = {\r\n 'OTP_SENT_EMAIL': 'Enter the OTP sent to [your_email]',\r\n 'OTP_SENT_LABEL': 'Enter the OTP sent to [your_mobile]',\r\n 'PROFILE_UPDATE': 'Profile has been updated successfully',\r\n 'EMAIL_MISMATCH': 'Email and Re-entered Email do not match',\r\n 'PHONE_VERIFIED': 'Your mobile number has been verified',\r\n 'MEMBER_CREATED': 'Member added successfully',\r\n 'MEMBER_UPDATED': 'Member updated successfully',\r\n 'APPLIED_INBILLTIME': ' Coupon will be applied on the final bill',\r\n 'CONSUMERTOPROVIDER_NOTE_ADD': 'Message has been successfully sent',\r\n 'PROVIDERTOCONSUMER_NOTE_ADD': 'Message has been successfully sent',\r\n 'MSG_ERROR': 'Please enter the message',\r\n 'CHECKIN_SUCC_REDIRECT': 'Please wait ... You are being redirected to the Payment Gateway ...',\r\n 'CHECKIN_ERROR': 'Sorry! an error occured',\r\n 'SERVICE_RATE_UPDATE': 'Thank you for your feedback',\r\n 'INBOXICON_TOOPTIP': 'Messages',\r\n 'FILE_TOOLTIP': 'Upload Files',\r\n 'NXT_AVAILABLE_TIME_CAPTION': 'Next Available Time',\r\n 'ESTIMATED_TIME_SMALL_CAPTION': 'Est Wait Time',\r\n 'SAVE_BTN': 'Save',\r\n 'CANCEL_BTN': 'Cancel',\r\n 'UPDATE_BTN': 'Update',\r\n 'EDIT_BTN': 'Edit',\r\n 'DELETE_BTN': 'Delete',\r\n 'SEND_BTN': 'Send',\r\n 'OK_BTN': 'Ok',\r\n 'YES_BTN': 'Yes',\r\n 'NO_BTN': 'No',\r\n 'CLOSE_BTN': 'Close',\r\n 'DONE_BTN': 'Complete',\r\n 'RESEND_BTN': 'Resend',\r\n 'CONFIRM_BTN': 'Confirm',\r\n 'FAMILY_MEMBERS': 'Family Members',\r\n 'FAMILY_MEMBER': 'Family Member',\r\n 'MEMBER_CAPTION': 'Member',\r\n 'ADD_FAMILY_MEMBER': 'Add Family Member',\r\n 'FIRST_NAME_CAP': 'First Name',\r\n 'LAST_NAME_CAP': 'Last Name',\r\n 'MOBILE_NUMBER_CAP': 'Mobile #',\r\n 'GENDER_CAP': 'Gender',\r\n 'DOB_CAP': 'Date of Birth',\r\n 'RELATED_LINKS': 'Related Links',\r\n 'USER_PROF_CAP': 'My Account',\r\n 'CHANGE_MOB_CAP': 'Change Mobile',\r\n 'ADD_CHANGE_EMAIL': 'Update Email',\r\n 'SEND_MSGS_CAP': 'Enquiry',\r\n 'SEND_MSG_CAP': 'Send Message',\r\n 'SEND_MSG': 'Enquiry',\r\n 'MAKE_PAYMENT_CAP': 'Make Payment',\r\n 'PAYMENT_REDIRECT': 'Please wait ... You are being redirected to the Payment Gateway ...',\r\n 'PROVIDER_BILL_PAYMENT': 'Payment completed successfully',\r\n 'BILL_CAPTION': 'Bill',\r\n 'RATE_VISIT': 'Rate Your Visit',\r\n 'DATE_CAP': 'Date:',\r\n 'LOCATION_CAP': 'Location',\r\n 'NAME_CAP': 'Name:',\r\n 'RATE_YOU_VISIT': 'Rate Your Visit',\r\n 'RATING_CAP': 'Rate *',\r\n 'MESSAGE_CAP': 'Message',\r\n 'RATE_BTN_CAP': 'Rate',\r\n 'OTHERMESSAGE_CAP': 'Please Enter Reason For Cancellation',\r\n 'F_NAME_CAP': 'First Name *',\r\n 'L_NAME_CAP': 'Last Name *',\r\n 'TERMS_CONDITIONS_CAP': 'Terms & Conditions',\r\n 'FILL_FOLL_DETAILS_CAP': 'Please fill in the following details',\r\n 'MALE_CAP': 'Male',\r\n 'FEMALE_CAP': 'Female',\r\n 'EMAIL_CAP': 'Email',\r\n 'CHANGEMOBILE_CAP': 'Change Mobile #',\r\n 'APPLY_CAP': 'Apply',\r\n 'ADD_MEMBER_CAP': 'Add Member',\r\n 'SERV_PROVIDER_CAP': 'Service Provider',\r\n 'DATE_COL_CAP': 'Date',\r\n 'BILL_PAYMENT_CAP': 'Bill Payment',\r\n 'COUPON_CODE_CAP': 'Coupon Code',\r\n 'AMNT_TO_PAY_CAP': 'Amount to pay',\r\n 'NO_PAY_OPT_AVIL_CAP': 'No payment options available.',\r\n 'PHONE_NO_CAP': 'Phone Number',\r\n 'EMAIL_ID_CAP': 'Email Id',\r\n 'DATE_TIME_CAP': 'Date/Time',\r\n 'LOGOUT_CAP': 'Logout',\r\n 'PROVIDER_CONSUMER_CAP': 'Provider / Consumer',\r\n 'REPLY_CAP': 'Reply',\r\n 'DELETE_MSG_CAP': 'Delete Message',\r\n 'NO_MSG_EXISTS_CAP': 'No messages found',\r\n 'ENTER_OTP_CAP': 'Enter OTP *',\r\n 'RESEND_OTP_TO_CAP': 'Resend OTP',\r\n 'RESEND_OTP_EMAIL_CAP': 'Resend OTP via email',\r\n 'RESEND_OTP_OPT_ACTIVE_IN_CAP': 'Resend OTP option will be active in',\r\n 'SECONDS_CAP': 'seconds.',\r\n 'ENTER_EMAIL_CAP': 'Enter Email',\r\n 'TIME_CAP': 'Time',\r\n 'BILL_NO_CAP': 'Bill #',\r\n 'GSTIN_CAP': 'GSTIN',\r\n 'QTY_CAP': 'Qty',\r\n 'DISCOUNT_CAP': 'Discount',\r\n 'COUPON_CAP': 'Coupon',\r\n 'SUB_TOT_CAP': 'Sub Total',\r\n 'GROSS_AMNT_CAP': 'Gross Amount',\r\n 'TAX_CAP': 'Tax',\r\n 'AMNT_PAID_CAP': 'Amount Paid',\r\n 'BACK_TO_BILL_CAP': 'Back to Bill',\r\n 'PAY_LOGS_CAP': 'Payment Logs',\r\n 'AMOUNT_CAP': 'Amount',\r\n 'REFUNDABLE_CAP': 'Refundable',\r\n 'MODE_CAP': 'Mode',\r\n 'REFUNDS_CAP': 'Refunds',\r\n 'PAY_STATUS': 'Status',\r\n 'GALLERY_CAP': 'Gallery',\r\n 'SELECT_IMAGE_CAP': 'Click here to select the files',\r\n 'NEW_CAP': 'New',\r\n 'ADD_SER_ITEM_CAP': 'Add Service/Item',\r\n 'AVAILABLE_CAP': 'Available',\r\n 'QTY_CAPITAL_CAP': 'Qty',\r\n 'SEL_DISC_CAP': 'Select Discount',\r\n 'SEL_COUPON_CAP': 'Select Coupon ',\r\n 'DISCOUNTS_COUPONS_CAP': 'Discounts / Coupons',\r\n 'BILL_DISCOUNT_CAP': 'Discount',\r\n 'ADD_BTN': 'Add',\r\n 'CUSTOMER_MOBILE_CAP': 'Mobile',\r\n 'COUPONS_CAP': 'Coupons',\r\n 'SERVICE_PHOTO_CAP': 'photos',\r\n 'POPUP_SELECT_REASON_CAP': 'Select a reason',\r\n 'POPUP_SEND_MSG_CAP': 'Create your own message for',\r\n 'DASHBOARD_TITLE': 'Dashboard',\r\n 'CONS_NOTE_NOTE_CAP': 'Note',\r\n 'CURRENTMOBMSG': 'Your Current Mobile # :',\r\n 'GET_TOKEN': 'Get Token',\r\n 'CHECK_DET_NO_CUS_NOTES_FOUND_CAP': 'No [customer] note found',\r\n 'NOUSERCAP': 'Global Services',\r\n 'SEND_MESSAGE': 'The [customer] does not have a mobile number/email',\r\n 'ATTACHMENT_SEND': 'Attachment sent successfully',\r\n 'QUESTIONNAIRE_CONSUMER_HEADING': 'More info',\r\n 'CHECK_DET_DATE_CAP': 'Date',\r\n 'CHECK_DET_LOCATION_CAP': 'Location',\r\n 'CHECK_DET_SERVICE_CAP': 'Service',\r\n 'CHECK_DET_SEND_MSG_CAP': 'Send Message',\r\n 'CHECK_DET_CUST_NOTES_CAP': '[customer] Note',\r\n 'BPROFILE_HAVE_NOT_ADD_CAP': 'You haven\\'t added ',\r\n 'BPROFILE_ADD_IT_NOW_CAP': 'Add It Now',\r\n 'BPROFILE_PHONENO': 'Please enter the phone number',\r\n 'BPROFILE_PRIVACY_PHONE_10DIGITS': 'Mobile number should have 10 digits',\r\n 'PRO_STATUS_CAP': 'Status',\r\n 'PRO_SERVICE_CAP': 'Service'\r\n};","export const projectConstantsLocal = {\r\n GOOGLEAPIKEY: 'AIzaSyDYIC4RIJNisNqXWDhe8y07EPSy9rHJ3-o',\r\n PERPAGING_LIMIT: 10,\r\n CONSUMER_DASHBOARD_REFRESH_TIME: 300, // seconds\r\n INBOX_REFRESH_TIME: 300, // seconds\r\n SMALL_DEVICE_BOUNDARY: 991,\r\n MY_DATE_FORMATS: {\r\n parse: {\r\n dateInput: 'L'\r\n },\r\n display: {\r\n dateInput: 'L',\r\n monthYearLabel: 'MMM YYYY',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'MMMM YYYY'\r\n }\r\n },\r\n TIMEOUT_DELAY: 2000, // msec\r\n TIMEOUT_DELAY_SMALL: 200, // msec\r\n TIMEOUT_DELAY_LARGE: 4100, // msec\r\n TIMEOUT_DELAY_LARGE6: 6000, // msec\r\n TIMEOUT_DELAY_LARGE10: 10000, // msec\r\n TIMEOUT_DELAY_600: 600,\r\n TIMEOUT_MEETING: 120000,\r\n DISPLAY_DATE_FORMAT: 'DD/MM/YYYY',\r\n DISPLAY_DATE_FORMAT_NEW: 'dd/MM/yyyy',\r\n PIPE_DISPLAY_DATE_FORMAT: 'dd/MM/y',\r\n PIPE_DISPLAY_DATE_FORMAT_WITH_DAY: 'E, dd/MM/y',\r\n PIPE_DISPLAY_TIME_FORMAT: 'h:mm a',\r\n // PIPE_DISPLAY_TIME_FORMAT: 'HH:mm a',\r\n PIPE_DISPLAY_DATE_TIME_FORMAT: 'dd/MM/y h:mm a',\r\n POST_DATE_FORMAT: 'YYYY-MM-DD',\r\n POST_DATE_FORMAT_WITHTIME: 'YYYY-MM-DD HH:mm a',\r\n POST_DATE_FORMAT_WITHTIME_A: 'YYYY-MM-DD HH:mm A',\r\n DATE_FORMAT_WITH_MONTH: 'd MMM',\r\n DATE_FORMAT_STARTS_MONTH: 'MMM d',\r\n DATE_MM_DD_YY_FORMAT: 'MMM d, y',\r\n DATE_EE_MM_DD_YY_FORMAT: 'EEE, MMM dd, y',\r\n DATE_MM_DD_YY_HH_MM_A_FORMAT: 'medium',\r\n DATE_FORMAT_WITH_TIME: 'MMM d, y h:mm a',\r\n DATE_FORMAT_WITH_DATE_TIME: 'EEE, MMM d, y hh:mm a',\r\n DEFAULT_STARTTIME: '09:00 AM',\r\n DEFAULT_ENDTIME: '06:00 PM',\r\n IMAGE_FORMATS: [\r\n 'image/gif',\r\n 'image/png',\r\n 'image/jpeg',\r\n 'image/bmp',\r\n 'image/webp'\r\n ],\r\n IMAGE_MAX_SIZE: 5000000, // byte\r\n FILE_MAX_SIZE: 10000000,\r\n MAP_BASE_URL: 'https://www.google.com/maps/place/', // this is used to implement google map related API calls\r\n\r\n SOCIAL_MEDIA_CONSUMER: [\r\n { key: 'phone', iconClass: 'phone_no', iconImage: 'phone.png', displayName: 'Phone' },\r\n { key: 'whatsapp', iconClass: 'whatsapp wa', iconImage: 'whatsapp.svg', displayName: 'WhatsApp' },\r\n { key: 'facebook', iconClass: 'facebook fb', iconImg: 'facebook.png', displayName: 'Facebook' },\r\n { key: 'twitter', iconClass: 'twitter tw', iconImg: 'twitter.png', displayName: 'Twitter' },\r\n { key: 'youtube', iconClass: 'youTube youtube', iconImg: 'youtube.png', displayName: 'Youtube' },\r\n { key: 'linkedin', iconClass: 'linkedin lkd', iconImg: 'linkedin.png', displayName: 'LinkedIn' },\r\n { key: 'pinterest', iconClass: 'pinterest pntr', iconImg: 'pinterest.png', displayName: 'Pinterest' },\r\n { key: 'instagram', iconClass: 'instagram insta', iconImg: 'instagram.png', displayName: 'Instagram' },\r\n { key: 'bizyGlobe', iconClass: 'bizyGlobe bglobe', iconImg: 'bizyglobe.png', displayName: 'BizyGlobe' },\r\n { key: 'website', iconClass: 'globe site', iconImg: 'website.png', displayName: 'Website' },\r\n { key: 'email', iconClass: 'email_id', iconImage: 'email.png', displayName: 'Email' },\r\n { key: 'googleplus', iconClass: 'google-plus red', displayName: 'Google+' },\r\n { key: 'share', iconClass: 'share-QR sh', iconImage: 'Share.png', displayName: 'share' }\r\n ],\r\n PRIVACY_PERMISSIONS: {\r\n 'all': 'Public (All can see)',\r\n 'customersOnly': 'Customer',\r\n 'self': 'Private (None can see)'\r\n },\r\n HealthcareService: {\r\n 'service_cap': 'Consultations and Services'\r\n },\r\n PersonalFitness: {\r\n personalFitness: { helphint: 'Personal training session, diet consultation' }\r\n },\r\n TOOLTIP_CLS: 'ynwtooltipcls',\r\n TOOLTIP_PRIVACYPHONE: 'Example : Cell Phone, Mobile, Emergency, Main Line, others etc',\r\n TOOLTIP_PRIVACYEMAIL: 'Example : Office Email id, Personal Email id etc',\r\n TOOLTIP_MALE: 'Male',\r\n TOOLTIP_FEMALE: 'Female',\r\n VALIDATOR_BLANK_FALSE: /^((?!\\s{2,}).)*$/,\r\n VALIDATOR_BLANK: /^\\s*$/,\r\n VALIDATOR_URL: /^(http:\\/\\/www\\.|https:\\/\\/www\\.|http:\\/\\/|https:\\/\\/)[a-z0-9]+([\\-\\.\\_]{1}[a-z0-9]+)*\\.[a-z]{2,5}(:[0-9]{1,5})?(\\/.*)?$/,\r\n VALIDATOR_NUMBERONLY: /^\\d+$/,\r\n VALIDATOR_ONLYNUMBER: /^[0-9]+$/,\r\n VALIDATOR_COUNTRYCODE: /^[+]?[0-9]+$/,\r\n VALIDATOR_PHONENUMBERONLY: /^[1-9]\\d{9}$/,\r\n VALIDATOR_FLOAT: /^[+-]?([0-9]*[.])?[0-9]+$/,\r\n VALIDATOR_PHONENUMBERCOUNT10: /^\\d{10}$/,\r\n VALIDATOR_CHARONLY: /^[a-zA-Z\\. ]+$/,\r\n VALIDATOR_ALPHANUMERIC: /^[a-zA-Z0-9\\s]+$/,\r\n VALIDATOR_ALPHANUMERIC_HYPHEN: /^[a-zA-Z0-9-]*$/,\r\n VALIDATOR_ALPHANUMERIC_DOT: /^[a-zA-Z0-9\"':;,-.% ]*$/,\r\n VALIDATOR_EMAIL: /^([A-Za-z0-9_\\-\\.])+\\@([A-Za-z0-9_\\-\\.])+\\.([A-Za-z]{2,4})$/,\r\n VALIDATOR_NUMBER_COMMA: /^[0-9\\,]+$/,\r\n VALIDATOR_MAX6: 6, // max char count\r\n VALIDATOR_MAX9: 9, // max char count\r\n VALIDATOR_MAX10: 10, // max char count\r\n VALIDATOR_MAX15_DEPT_CDE: 15, // max char count\r\n VALIDATOR_MAX100_DEPT_NME: 100, // max char count\r\n VALIDATOR_MAX50: 50, // max char count\r\n VALIDATOR_MAX100: 100, // max char count\r\n VALIDATOR_MAX150: 150, // max char count\r\n VALIDATOR_MAX200: 200, // max char count\r\n VALIDATOR_MAX250: 250, // max char count\r\n VALIDATOR_MAX500: 500, // max char count\r\n VALIDATOR_MAX_LAKH: 100,\r\n VALIDATOR_MOBILE_AND_EMAIL: /^(?:\\d{10}|[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[a-z]{2,4})$/,\r\n VALIDATOR_SPACE_NOT_ALLOWED: /^\\S*$/,\r\n QTY_MAX_VALUE: 100000,\r\n PRICE_MAX_VALUE: 100000,\r\n TIME_MAX_VALUE: 3600,\r\n PERC_MAX_VALUE: 100,\r\n WAITLIST_CANCEL_RESON: [{ title: 'No Show Up', value: 'noshowup', reasonkey: 'noShowUpCancel', type: 2 },\r\n { title: 'Self', value: 'self', reasonkey: 'selfCancel' },\r\n { title: 'Blocked', value: 'blocked', reasonkey: 'blockedCancel' },\r\n { title: 'Closing Soon', value: 'closingSoon', reasonkey: 'closingSoonCancel', type: 2 },\r\n { title: 'Conflict In Schedule', value: 'SCHEDULECONFLICT', reasonkey: 'SCHEDULECONFLICTCancel', type: 2, },\r\n { title: 'Too Full', value: 'tooFull', reasonkey: 'tooFullCancel' },\r\n { title: 'PrePayment Pending', value: 'prePaymentPending', reasonkey: 'tooFullCancel' },\r\n { title: 'Queue Disabled', value: 'QueueDisabled', reasonkey: 'tooFullCancel' },\r\n { title: 'Other', value: 'other', reasonkey: 'other', type: 2 },\r\n { title: 'Holiday', value: 'holiday', reasonkey: 'tooFullCancel' }],\r\n\r\n DOMAINLIST_APIFETCH_HOURS: 1, // hours which decides whether domain list api should be execured or not\r\n COUPON_NOTES: {\r\n // MINIMUM_BILL_AMT_REQUIRED: 'Minimum bill amount',\r\n COUPON_APPLIED: 'Coupon already applied',\r\n SELF_PAY_REQUIRED: 'Self pay required',\r\n NO_OTHER_COUPONS_ALLOWED: 'No other coupons allowed',\r\n EXCEEDS_APPLY_LIMIT: 'Exceeds apply limit',\r\n ONLY_WHEN_FITST_CHECKIN: 'Only for first check-in',\r\n ONLINE_CHECKIN_REQUIRED: 'Online booking required',\r\n CANT_COMBINE_WITH_OTHER_COUPONES: 'Can\\'t combine with other coupons',\r\n CONSUMER_CAN_NOT_APPLY_COUPON: 'Coupon cannot be applied.',\r\n PROVIDER_COUPON_NOT_APPLICABLE_SERVICE: 'Provider coupon not applicable for this service',\r\n PROVIDER_COUPON_NOT_APPLICABLE_USER: 'Provider coupon not applicable for this user',\r\n PROVIDER_COUPON_NOT_APPLICABLE_GROUP: 'Provider coupon not applicable for this group',\r\n PROVIDER_COUPON_NOT_APPLICABLE_ITEM: 'Provider coupon not applicable for this item',\r\n PROVIDER_COUPON_NOT_APPLICABLE_CATALOG: 'Provider coupon not applicable for this catalog',\r\n PROVIDER_COUPON_NOT_APPLICABLE_LABEL: 'Provider coupon not applicable for this label',\r\n PROVIDER_COUPON_NOT_APPLICABLE_BOOKING_MODE: 'Provider coupon not applicable for this booking mode',\r\n PROVIDER_COUPON_NOT_APPLICABLE: 'Provider coupon not applicable on this day',\r\n PROVIDER_COUPON_NOT_APPLICABLE_NOW: 'Provider coupon not applicable now',\r\n JC_NOT_APPLICABLE_DAY: 'Jaldee Coupon not applicable on this day',\r\n ONLY_WHEN_FITST_CHECKIN_ON_PROVIDER: 'Coupon can be applied only for first check in with this provider',\r\n MINIMUM_BILL_AMT_REQUIRED: 'A minimum bill amount is required to redeem this coupon',\r\n PROVIDER_COUPON_NOT_APPLICABLE_ORDER: 'Provider coupon not applicable for order',\r\n PROVIDER_COUPON_NOT_APPLICABLE_WAITLIST: 'Provider coupon not applicable for booking',\r\n PROVIDER_COUPON_NOT_APPLICABLE_APPOINTMENT: 'Provider coupon not applicable for appointment',\r\n EXCEEDS_PRO_COUP_APPLY_LIMIT: 'Coupon reached limit of usage'\r\n },\r\n CHECK_IN_STATUSES: {\r\n Done: 'Completed',\r\n Started: 'Started',\r\n Arrived: 'Arrived',\r\n CheckedIn: 'Checked in',\r\n Cancelled: 'Cancelled',\r\n Completed: 'Completed',\r\n Rejected: 'Cancelled',\r\n Confirmed: 'Confirmed',\r\n Rescheduled: 'Rescheduled',\r\n PrepaymentPending: 'Prepayment Pending',\r\n Requested: 'Requested',\r\n RequestRejected: 'RequestRejected',\r\n Failed: 'Failed'\r\n },\r\n MONTH: [\r\n { value: '01', name: 'Jan' },\r\n { value: '02', name: 'Feb' },\r\n { value: '03', name: 'Mar' },\r\n { value: '04', name: 'Apr' },\r\n { value: '05', name: 'May' },\r\n { value: '06', name: 'Jun' },\r\n { value: '07', name: 'Jul' },\r\n { value: '08', name: 'Aug' },\r\n { value: '09', name: 'Sep' },\r\n { value: '10', name: 'Oct' },\r\n { value: '11', name: 'Nov' },\r\n { value: '12', name: 'Dec' }\r\n\r\n ],\r\n REGION_LANGUAGE: 'en-US',\r\n TIME_ZONE_REGION: 'Asia/Kolkata',\r\n KEY: 'JALDEESOFT',\r\n FILETYPES_UPLOAD: [\r\n 'image/jpg',\r\n 'image/png',\r\n 'image/jpeg',\r\n 'application/pdf',\r\n 'application/jfif',\r\n 'video/mp4',\r\n 'video/mpeg',\r\n 'audio/mpeg',\r\n 'audio/mp3',\r\n 'audio/ogg',\r\n 'docx',\r\n 'doc'\r\n ],\r\n\r\n CALLING_MODES: {\r\n WHATSAPP: 'Whatsapp',\r\n HANGOUTS: 'Hangouts',\r\n SKYPE: 'Skype',\r\n BOTIM: 'Botim',\r\n IMO: 'Imo'\r\n },\r\n WAITLIST_CANCEL_REASON: [{ title: 'No Show Up', value: 'noshowup', reasonkey: 'noShowUpCancel' },\r\n { title: 'Self', value: 'self', reasonkey: 'selfCancel' },\r\n { title: 'Blocked', value: 'blocked', reasonkey: 'blockedCancel' },\r\n { title: 'Closing Soon', value: 'closingSoon', reasonkey: 'closingSoonCancel' },\r\n { title: 'Too Full', value: 'tooFull', reasonkey: 'tooFullCancel' },\r\n { title: 'Conflict In Schedule', value: 'SCHEDULECONFLICT', reasonkey: 'SCHEDULECONFLICTCancel', type: 2 },\r\n { title: 'Change of Plans', value: 'CHANGEOFPLAN', reasonkey: 'CHANGEOFPLANCancel', type: 2 },\r\n { title: 'Health Issue', value: 'HEALTHISSUE', reasonkey: 'HEALTHISSUECancel', type: 2 },\r\n { title: 'Other', value: 'other', reasonkey: 'other', type: 2 },\r\n ],\r\n BOOKING_STATUS_CLASS: [\r\n { value: 'Done', class: 'dark-green' },\r\n { value: 'Started', class: 'orange' },\r\n { value: 'Arrived', class: 'yellow' },\r\n { value: 'CheckedIn', class: 'greenc' },\r\n { value: 'Cancelled', class: 'red' },\r\n { value: 'Completed', class: 'dark-green' },\r\n { value: 'Rejected', class: 'red' },\r\n { value: 'Confirmed', class: 'greenc' },\r\n { value: 'RequestRejected', class: 'red' },\r\n { value: 'Requested', class: 'dark-green' },\r\n //voilet\r\n //#673ab7f2\r\n ],\r\n ITEM_TYPES: [\r\n { displayName: 'physical', value: 'PHYSICAL' },\r\n { displayName: 'virtual', value: 'VIRTUAL' }\r\n ],\r\n INBOX_MSG_TYPES: {\r\n CHAT: 'Chat',\r\n ENQUIRY: 'Enquiry',\r\n ALERT: 'System Generated',\r\n BOOKINGS: 'Bookings'\r\n },\r\n WALLET_NOTES: {\r\n APP_SIGNUP: 'APP SIGNUP',\r\n\r\n },\r\n PAYTMLOCAL_URL: 'https://securegw-stage.paytm.in',\r\n PAYTM_URL: 'https://securegw.paytm.in',\r\n SUPPORTEDLANGUAGES: [\r\n { value: 'en', viewValue: 'English' },\r\n { value: 'hd', viewValue: 'Hindi' },\r\n { value: 'kan', viewValue: 'Kannada' },\r\n { value: 'tel', viewValue: 'Telugu' },\r\n { value: 'mal', viewValue: 'Malayalam' },\r\n { value: 'tam', viewValue: 'Tamil' }\r\n ],\r\n INDIAN_STATES: [\r\n { name: 'Andhra Pradesh', displayName: 'Andhra Pradesh' },\r\n { name: 'Arunachal Pradesh', displayName: 'Arunachal Pradesh' },\r\n { name: 'Assam', displayName: 'Assam' },\r\n { name: 'Bihar', displayName: 'Bihar' },\r\n { name: 'Chattisgarh', displayName: 'Chattisgarh' },\r\n { name: 'Goa', displayName: 'Goa' },\r\n { name: 'Gujarat', displayName: 'Gujarat' },\r\n { name: 'Haryana', displayName: 'Haryana' },\r\n { name: 'Himachal Pradesh', displayName: 'Himachal Pradesh' },\r\n { name: 'Jammu & Kashmir', displayName: 'Jammu & Kashmir' },\r\n { name: 'Jharkhand', displayName: 'Jharkhand' },\r\n { name: 'Karnataka', displayName: 'Karnataka' },\r\n { name: 'Kerala', displayName: 'Kerala' },\r\n { name: 'Madhya Pradesh', displayName: 'Madhya Pradesh' },\r\n { name: 'Maharashtra', displayName: 'Maharashtra' },\r\n { name: 'Manipur', displayName: 'Manipur' },\r\n { name: 'Meghalaya', displayName: 'Meghalaya' },\r\n { name: 'Mizoram', displayName: 'Mizoram' },\r\n { name: 'Nagaland', displayName: 'Nagaland' },\r\n { name: 'Orissa', displayName: 'Orissa' },\r\n { name: 'Punjab', displayName: 'Punjab' },\r\n { name: 'Rajasthan', displayName: 'Rajasthan' },\r\n { name: 'Sikkim', displayName: 'Sikkim' },\r\n { name: 'Tamil Nadu', displayName: 'Tamil Nadu' },\r\n { name: 'Telangana', displayName: 'Telangana' },\r\n { name: 'Tripura', displayName: 'Tripura' },\r\n { name: 'Uttarakhand', displayName: 'Uttarakhand' },\r\n { name: 'Uttar Pradesh', displayName: 'Uttar Pradesh' },\r\n { name: 'West Bengal', displayName: 'West Bengal' },\r\n { name: 'Andaman & Nicobar', displayName: 'Andaman & Nicobar' },\r\n { name: 'Dadra and Nagar Haveli', displayName: 'Dadra and Nagar Haveli' },\r\n { name: 'Daman & Diu', displayName: 'Daman & Diu' },\r\n { name: 'Delhi', displayName: 'Delhi' },\r\n { name: 'Lakshadweep', displayName: 'Lakshadweep' },\r\n { name: 'Pondicherry', displayName: 'Pondicherry' }\r\n ],\r\n RELATIONSHIPS: [\r\n { name: 'Father', displayName: 'Father' },\r\n { name: 'Husband', displayName: 'Husband' },\r\n { name: 'Mother', displayName: 'Mother' },\r\n { name: 'Son', displayName: 'Son' },\r\n { name: 'Daughter', displayName: 'Daughter' },\r\n { name: 'Wife', displayName: 'Wife' },\r\n { name: 'Brother', displayName: 'Brother' },\r\n { name: 'MotherInlaw', displayName: 'MotherInlaw' },\r\n { name: 'FatherInlaw', displayName: 'FatherInlaw' },\r\n { name: 'DaughterInlaw', displayName: 'Daughter In law' },\r\n { name: 'SisterInLaw', displayName: 'Sister In Law' },\r\n { name: 'BrotherInlaw', displayName: 'Brother In law' },\r\n { name: 'SonInlaw', displayName: 'Son In law' },\r\n { name: 'Other', displayName: 'Other' }\r\n ],\r\n};\r\n","import { Injectable } from '@angular/core';\r\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\r\n\r\n// Import RxJs required methods\r\n\r\n@Injectable()\r\nexport class FormMessageDisplayService {\r\n\r\n // form: FormGroup, field: string\r\n isFieldValid(form: any, field: string) {\r\n return !form.get(field).valid && form.get(field).touched;\r\n }\r\n\r\n displayFieldCss(form: UntypedFormGroup, field: string) {\r\n return {\r\n 'has-error': this.isFieldValid(form, field),\r\n 'has-feedback': this.isFieldValid(form, field)\r\n };\r\n }\r\n\r\n validateAllFormFields(formGroup: UntypedFormGroup) {\r\n Object.keys(formGroup.controls).forEach(field => {\r\n const control = formGroup.get(field);\r\n if (control instanceof UntypedFormControl) {\r\n control.markAsTouched({ onlySelf: true });\r\n } else if (control instanceof UntypedFormGroup) {\r\n this.validateAllFormFields(control);\r\n }\r\n });\r\n }\r\n\r\n getErrorMessage(form: any, field: string, errorMsgs: any) {\r\n const error_ob = form.get(field).errors;\r\n if (error_ob == null) {\r\n return null;\r\n }\r\n const keys = Object.keys(error_ob);\r\n const errors = keys.map(key => {\r\n return errorMsgs[key] || '';\r\n });\r\n return errors[0];\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-field-error-display',\r\n templateUrl: './field-error-display.component.html',\r\n styleUrls: ['./field-error-display.component.css']\r\n})\r\nexport class FieldErrorDisplayComponent {\r\n\r\n @Input() errorMsg: string | undefined;\r\n @Input() displayError: boolean | undefined;\r\n @Input() errorMsgs: string | undefined;\r\n\r\n}\r\n\r\n","<div *ngIf=\"displayError\" tabindex=\"-1\">\r\n <div class=\"sts-msg error\">{{ errorMsg || errorMsgs }}</div>\r\n</div>\r\n\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-form-success-display',\r\n templateUrl: './form-success-display.component.html',\r\n styleUrls: ['./form-success-display.component.css']\r\n})\r\nexport class FormSuccessDisplayComponent {\r\n\r\n @Input() successMsg: string | undefined;\r\n @Input() displayMsg: boolean | undefined;\r\n\r\n}\r\n\r\n","<div *ngIf=\"displayMsg\" >\r\n <div class=\"sts-msg success\">\r\n {{ successMsg }}\r\n </div>\r\n</div>\r\n","\r\nimport { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Messages } from '../project-messages';\r\nimport { projectConstantsLocal } from '../project-constants';\r\nimport { FormMessageDisplayService } from '../form-message/form-message-display.service';\r\n\r\n@Component({\r\n selector: 'app-confirm-box',\r\n templateUrl: './confirm-box.component.html',\r\n styleUrls: ['./confirm-box.component.css']\r\n})\r\nexport class ConfirmBoxComponent implements OnInit {\r\n ok_btn_cap = Messages.CONFIRM_BTN;\r\n cancel_btn_cap = Messages.CANCEL_BTN;\r\n newDateFormat = projectConstantsLocal.DATE_MM_DD_YY_FORMAT;\r\n send_message_cap = Messages.POPUP_SEND_MSG_CAP;\r\n select_reason_cap = Messages.POPUP_SELECT_REASON_CAP;\r\n messgae_cap = Messages.OTHERMESSAGE_CAP;\r\n amForm: FormGroup;\r\n api_error = null;\r\n api_success = null;\r\n cancel_reasonobj;\r\n cancel_reason = '';\r\n cancel_reason_key = '';\r\n default_message_arr: any = [];\r\n def_msg = '';\r\n deptName;\r\n showError = false;\r\n okCancelBtn = false;\r\n cancel_reasons: any = [];\r\n rep_username: string;\r\n rep_service: string;\r\n rep_date: string;\r\n rep_time: string;\r\n rep_provname: string;\r\n constructor(\r\n public dialogRef: MatDialogRef<ConfirmBoxComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private formBuilder:FormBuilder,\r\n public fed_service: FormMessageDisplayService,\r\n ) { \r\n this.amForm = this.formBuilder.group({\r\n reason: ['', Validators.compose([Validators.required])],\r\n message: [''],\r\n send_message: [{ value: false, disabled: true }]\r\n });\r\n}\r\n ngOnInit() {\r\n console.log(\"data-data\",this.data)\r\n if (this.data && this.data.wtlist && this.data.wtlist.providerAccount && this.data.wtlist.providerAccount.businessName) {\r\n this.rep_username = this.data.wtlist.providerAccount.businessName;\r\n }\r\n const reasons_list = [];\r\n const reasons = projectConstantsLocal.WAITLIST_CANCEL_REASON;\r\n for (let i = 0; i < reasons.length; i++) {\r\n if (reasons[i].type) {\r\n reasons_list.push(reasons[i]);\r\n }\r\n }\r\n this.cancel_reasons = reasons_list;\r\n console.log(\"this.cancel_reasons\",this.cancel_reasons);\r\n if (this.data.type) {\r\n this.ok_btn_cap = Messages.CONFIRM_BTN;\r\n this.cancel_btn_cap = Messages.CANCEL_BTN;\r\n }\r\n if (this.data.buttons === 'okCancel') {\r\n this.ok_btn_cap = Messages.CONFIRM_BTN;\r\n this.cancel_btn_cap = Messages.CANCEL_BTN;\r\n }\r\n }\r\n onClick(data) {\r\n if (this.data.filterByDept && data) {\r\n const param = {};\r\n if (this.deptName) {\r\n param['deptName'] = this.deptName;\r\n data = param;\r\n this.dialogRef.close(data);\r\n } else {\r\n this.showError = true;\r\n }\r\n } else {\r\n this.dialogRef.close(data);\r\n }\r\n }\r\n selectReason(cancel_reason) {\r\n this.amForm.get('reason').setValue(cancel_reason.value);\r\n this.cancel_reasonobj = cancel_reason;\r\n this.cancel_reason = cancel_reason.title;\r\n this.cancel_reason_key = cancel_reason.reasonkey;\r\n this.amForm.controls['send_message'].enable();\r\n if (this.data.isBatch) {\r\n } else {\r\n this.def_msg = this.replacedMessage();\r\n } \r\n }\r\n replacedMessage() {\r\n let retmsg = '';\r\n if (this.cancel_reason_key) {\r\n retmsg = this.default_message_arr[this.cancel_reason_key];\r\n }\r\n if (retmsg && retmsg !== '') {\r\n retmsg = retmsg.replace(/\\[consumer\\]/g, this.rep_username);\r\n retmsg = retmsg.replace(/\\[service\\]/g, this.rep_service);\r\n retmsg = retmsg.replace(/\\[date\\]/g, this.rep_date);\r\n retmsg = retmsg.replace(/\\[time\\]/g, this.rep_time);\r\n retmsg = retmsg.replace(/\\[.*?\\]/g, this.rep_provname);\r\n if (this.cancel_reason && this.cancel_reason !== '') {\r\n retmsg = retmsg.replace('[reason]', this.cancel_reason);\r\n }\r\n }\r\n return retmsg;\r\n }\r\n resetApiErrors() {\r\n this.api_error = null;\r\n this.api_success = null;\r\n }\r\n\r\n onSubmit(form_data) {\r\n console.log(form_data)\r\n this.resetApiErrors();\r\n let post_data = {\r\n 'cancelReason': form_data.reason\r\n };\r\n if (form_data.send_message) {\r\n if (!form_data.message.replace(/\\s/g, '').length) {\r\n this.api_error = 'Message cannot be empty';\r\n return;\r\n }\r\n post_data['communicationMessage'] = form_data.message;\r\n }\r\n if (this.data.isBatch && !post_data['communicationMessage']) {\r\n this.api_error = 'Message cannot be empty';\r\n return;\r\n }\r\n this.dialogRef.close(post_data);\r\n }\r\n\r\n}\r\n","<form [formGroup]=\"amForm\" [ngClass]=\"this.data.theme\" novalidate (ngSubmit)=\"amForm.valid && onSubmit(amForm.value)\">\r\n <h1 class=\"mat-dialog-title\">\r\n <button #queue mat-dialog-close class=\"modal_close\" id=\"btnClose\">\r\n <i class=\"fa fa-window-close\" aria-hidden=\"true\"></i>\r\n </button>\r\n </h1>\r\n <div mat-dialog-content>\r\n <p class=\"mb-4 fontsize\"> {{data.message}}</p>\r\n <div *ngIf=\"data && data.cancelPolicy\" class=\"policies\">\r\n <p-accordion [multiple]=\"true\">\r\n <p-accordionTab>\r\n <ng-template pTemplate=\"header\">\r\n <h4>Cancellation Policies</h4>\r\n </ng-template>\r\n <p>You can cancel your {{data.book}}s any time until\r\n <span *ngIf=\"data.wtlist.date\">{{data.wtlist.date| date:\r\n newDateFormat}}</span><span *ngIf=\"data.wtlist.appmtDate\">{{data.wtlist.appmtDate| date:\r\n newDateFormat}}</span><span *ngIf=\"data.wtlist.orderDate\">{{data.wtlist.orderDate| date:\r\n newDateFormat}}</span>.<span\r\n *ngIf=\"data.wtlist && data.wtlist.providerAccount && data.wtlist.providerAccount.businessName\">\r\n If the system doesn’t permit your cancellation,\r\n contact your provider, {{data.wtlist.providerAccount.businessName}}.\r\n It’s important to note that the\r\n provider may cancel your bookings at their discretion for their own reasons.\r\n Jaldee will keep you informed promptly regarding the changes through timely notifications.\r\n </span>\r\n </p>\r\n </p-accordionTab>\r\n <p-accordionTab>\r\n <ng-template pTemplate=\"header\">\r\n <h4>Refund policy for Advance Payments(only)</h4>\r\n </ng-template>\r\n <p>\r\n In the case of your cancellation, a 3% (payment gateway fee) will be deducted from the refund\r\n of the advanced payment made. For same-day cancellations, kindly contact your service provider,\r\n {{data.wtlist.providerAccount.businessName}} to initiate the refund. For any refund-related queries, reach\r\n out to\r\n {{data.wtlist.providerAccount.businessName}} for assistance.\r\n </p>\r\n </p-accordionTab>\r\n </p-accordion>\r\n <p class=\"mt-4\"> Are you sure you want to cancel this {{data.book}}? <br/></p>\r\n </div>\r\n <div *ngIf=\"data.book !== 'Order' && data.cancelPolicy\">\r\n <div class=\"form-group\">\r\n <label class=\"col-form-label\" for=\"displayName\">{{select_reason_cap}}*</label><br>\r\n <mat-chip-list>\r\n <mat-chip *ngFor=\"let cancel_reason of cancel_reasons\" class=\"me-2 mb-2\"\r\n color=\"{{(cancel_reason.value === amForm.get('reason').value) ? 'primary' : ''}}\"\r\n selected=\"{{(cancel_reason.value === amForm.get('reason').value) ? true : false}}\"\r\n [class.selected]=\"(cancel_reason.value === amForm.get('reason').value) ? true : false\"\r\n (click)=\"selectReason(cancel_reason)\">\r\n {{cancel_reason.title}}\r\n </mat-chip>\r\n </mat-chip-list>\r\n </div>\r\n <div class=\"form-group mt-2\">\r\n <mat-checkbox formControlName=\"send_message\">{{send_message_cap}} {{rep_username}}</mat-checkbox>\r\n </div>\r\n <div class=\"form-group reason-area\" *ngIf=\"amForm.get('send_message').value\">\r\n <textarea class=\"form-control\" rows=\"3\" id=\"message\" maxlength=\"1000\" pInputTextarea placeholder=\"Message\" formControlName=\"message\"></textarea>\r\n <app-field-error-display [displayError]=\"fed_service.isFieldValid(amForm,'message')\"\r\n errorMsg=\"Please enter a message.\">\r\n </app-field-error-display>\r\n </div>\r\n </div>\r\n </div>\r\n <div mat-dialog-actions *ngIf=\"data.book !== 'Order'&& data.cancelPolicy\" class=\"mb-2\">\r\n <div class=\"col-md-12\" style=\"margin-top: 15px;display: inline-flex;\">\r\n <button type=\"button\" mat-dialog-close class=\"cs-btn bt2\" id=\"btnCancel\">{{cancel_btn_cap}}</button>\r\n <button type=\"submit\" mat-button [disabled]=\"!amForm.valid\" class=\"cs-btn bt1\" id=\"btnOk\">{{ok_btn_cap}}</button>\r\n </div>\r\n </div>\r\n <app-field-error-display [displayError]=\"true\" *ngIf=\"api_error\" errorMsg=\"{{api_error}}\"></app-field-error-display>\r\n <app-form-success-display [displayMsg]=\"true\" *ngIf=\"api_success\" successMsg=\"{{api_success}}\">\r\n </app-form-success-display>\r\n <div mat-dialog-actions class=\"paddingtop\" *ngIf=\"data.book !== 'Order' && !data.cancelPolicy\">\r\n <button tabindex=\"-1\" (click)=\"onClick(0)\" class=\"cs-btn bt2\" id=\"btnCancel\">{{cancel_btn_cap}}</button>\r\n <button tabindex=\"2\" (click)=\"onClick(1)\" id=\"btnOk\"\r\n class=\"cs-btn bt1 reddelete checkavailabilitybutton\">{{ok_btn_cap}}</button>\r\n </div>\r\n <app-field-error-display [displayError]=\"true\" *ngIf=\"showError\" errorMsg=\"Department name is required\">\r\n </app-field-error-display>\r\n</form>","import { Injectable } from \"@angular/core\";\r\nimport { ServiceMeta } from \"./service-meta\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { ConfirmBoxComponent } from \"./confirm/confirm-box.component\";\r\nimport { of } from \"rxjs\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BookingService {\r\n\r\n services: any = [];\r\n activeServices: any = [];\r\n selectedApptsTime: any;\r\n bookingDate: any;\r\n \r\n constructor(\r\n private serviceMeta: ServiceMeta,\r\n private dialog: MatDialog) { }\r\n\r\n getServices() {\r\n return this.services;\r\n }\r\n setServices(services: any) {\r\n let activeServices = services.filter(service => service.serviceAvailability);\r\n this.services = activeServices;\r\n this.activeServices = activeServices;\r\n }\r\n setActiveServices(services) {\r\n this.activeServices = services;\r\n }\r\n getActiveServices() {\r\n return this.activeServices;\r\n }\r\n setBookingDate(bookingDate) {\r\n this.bookingDate = bookingDate;\r\n }\r\n getBookingDate() {\r\n return this.bookingDate;\r\n }\r\n getTimings() {\r\n return this.selectedApptsTime;\r\n }\r\n setTimings(selectedApptsTime: any) {\r\n this.selectedApptsTime = selectedApptsTime;\r\n }\r\n doCancelWaitlist(waitlist, type, theme_data, cthis?) {\r\n let msg;\r\n if (type === 'checkin') {\r\n if (waitlist.token) {\r\n msg = 'booking';\r\n } else {\r\n msg = 'booking';\r\n }\r\n } else if (type === 'appointment') {\r\n msg = 'booking';\r\n } else if (type === 'order') {\r\n msg = 'Order';\r\n }\r\n const tdata = {};\r\n tdata['theme'] = theme_data;\r\n tdata['message'] = 'Cancellation and Refund policy';\r\n tdata['heading'] = 'Confirm';\r\n tdata['type'] = 'yes/no';\r\n tdata['cancelPolicy'] = 'show';\r\n tdata['book'] = msg;\r\n tdata['wtlist'] = waitlist;\r\n return new Promise((resolve, reject) => {\r\n cthis.canceldialogRef = this.dialog.open(ConfirmBoxComponent, {\r\n width: '50%',\r\n panelClass: ['commonpopupmainclass', 'confirmationmainclass'],\r\n disableClose: true,\r\n data: tdata\r\n });\r\n\r\n cthis.canceldialogRef.afterClosed().subscribe(result => {\r\n if (result && (result.cancelReason || result.rejectReason) || result) {\r\n let id;\r\n if (type === 'checkin') {\r\n id = waitlist.ynwUuid;\r\n } else if (type === 'appointment') {\r\n id = waitlist.uid;\r\n } else if (type === 'order') {\r\n id = waitlist.uid;\r\n }\r\n this.cancelWaitlist(id, waitlist.providerAccount.id, type, result)\r\n .then(\r\n data => {\r\n resolve(data);\r\n },\r\n error => {\r\n reject(error);\r\n }\r\n );\r\n } else {\r\n resolve(null);\r\n }\r\n });\r\n });\r\n }\r\n\r\n cancelWaitlist(id, provider_id, type, result?) {\r\n return new Promise((resolve, reject) => {\r\n const params = {\r\n 'account': provider_id\r\n };\r\n this.deleteWaitlist(id, params, type, result).subscribe(data => {\r\n resolve('reloadlist');\r\n },\r\n error => {\r\n reject(error);\r\n }\r\n );\r\n });\r\n }\r\n deleteWaitlist(id, params, type, result?) {\r\n if (type === 'checkin') {\r\n return this.serviceMeta.httpPut('consumer/waitlist/cancel/' + id + '?account=' + params['account'], result);\r\n } else if (type === 'appointment') {\r\n return this.serviceMeta.httpPut('consumer/appointment/cancel/' + id + '?account=' + params['account'], result);\r\n } else if (type === 'order') {\r\n return this.serviceMeta.httpPut('consumer/orders/' + id + '?account=' + params['account']);\r\n }\r\n return of({});\r\n }\r\n\r\n /**\r\n * Cancel a Booking (Waitlist/Appointment/Order)\r\n * @param bookingId Booking Id\r\n * @param params accountId\r\n * @param type order/checkin/appointment\r\n * @returns true if success\r\n */\r\n cancelBookingAPI(bookingId, params, type) {\r\n if (type === 'checkin') {\r\n return this.serviceMeta.httpDelete('consumer/waitlist/' + bookingId + '?account=' + params['account']);\r\n } else if (type === 'appointment') {\r\n return this.serviceMeta.httpPut('consumer/appointment/cancel/' + bookingId + '?account=' + params['account']);\r\n } else if (type === 'order') {\r\n return this.serviceMeta.httpPut('consumer/orders/' + bookingId + '?account=' + params['account']);\r\n }\r\n return null;\r\n }\r\n\r\n\r\n /**\r\n * To get all the checkin services of a particular location\r\n * @param locationId location id\r\n * @returns Promise of services\r\n */\r\n getCheckinServices(locationId) {\r\n const _this = this;\r\n return new Promise(function (resolve) {\r\n _this.getServicesByLocationId(locationId)\r\n .subscribe((wlServices: any) => {\r\n resolve(wlServices);\r\n },\r\n () => {\r\n resolve([]);\r\n }\r\n );\r\n });\r\n }\r\n\r\n /**\r\n * To get all the appointent services of a particular location\r\n * @param locid location id\r\n * @returns services\r\n */\r\n getServicesforAppontmntByLocationId(locid) {\r\n const url = 'consumer/appointment/service/' + locid;\r\n return this.serviceMeta.httpGet(url);\r\n }\r\n\r\n /**\r\n * To get all the appointment services of a particular location\r\n * @param locationId location id\r\n * @returns Promise of services\r\n */\r\n getAppointmentServices(locationId) {\r\n const _this = this;\r\n return new Promise(function (resolve) {\r\n _this.getServicesforAppontmntByLocationId(locationId)\r\n .subscribe((services: any) => {\r\n resolve(services);\r\n },\r\n () => {\r\n resolve([]);\r\n }\r\n );\r\n });\r\n }\r\n\r\n sortBookings(bookings) {\r\n bookings.sort(function (message1, message2) {\r\n if (message1.date < message2.date) {\r\n return 11;\r\n } else if (message1.date > message2.date) {\r\n return -1;\r\n } else {\r\n return 0;\r\n }\r\n });\r\n }\r\n\r\n getAppointmentRequests(accountId) {\r\n return this.serviceMeta.httpGet('consumer/appointment/service/request?account-eq=' + accountId);\r\n }\r\n getWaitlist(params) {\r\n return this.serviceMeta.httpGet('consumer/waitlist', null, params);\r\n }\r\n getFutureWaitlist(filter = {}) {\r\n const url = 'consumer/waitlist/future';\r\n return this.serviceMeta.httpGet(url, null, filter);\r\n }\r\n getAppointmentToday(params?) {\r\n return this.serviceMeta.httpGet('consumer/appointment/today', null, params);\r\n }\r\n getAppointmentFuture(params?) {\r\n return this.serviceMeta.httpGet('consumer/appointment/future', null, params);\r\n }\r\n getWaitlistHistory(params = {}) {\r\n return this.serviceMeta.httpGet('consumer/waitlist/history', null, params);\r\n }\r\n getAppointmentHistory(params?) {\r\n return this.serviceMeta.httpGet('consumer/appointment/history', null, params);\r\n }\r\n getAppointmentHistoryCount() {\r\n return this.serviceMeta.httpGet('consumer/appointment/history/count');\r\n }\r\n getAppointmentAttachmentsByUuid(uuid, accountid) {\r\n const url = 'consumer/appointment/share/attachments/' + uuid + '?account=' + accountid;\r\n return this.serviceMeta.httpGet(url);\r\n }\r\n getConsumerAppointmentAttachmentsByUuid(uuid, accountid) {\r\n const url = 'consumer/appointment/attachment/' + uuid + '?account=' + accountid;\r\n return this.serviceMeta.httpGet(url);\r\n }\r\n getWaitlistAttachmentsByUuid(uuid, accountid) {\r\n const url = 'consumer/waitlist/share/attachments/' + uuid + '?account=' + accountid;\r\n return this.serviceMeta.httpGet(url);\r\n }\r\n getConsumerWaitlistAttachmentsByUuid(uuid, accountid) {\r\n const url = 'consumer/waitlist/attachment/' + uuid + '?account=' + accountid;\r\n return this.serviceMeta.httpGet(url);\r\n }\r\n removeBooking(id: string, bookingType: string, accountID: any, data: any) {\r\n return this.serviceMeta.httpPut('consumer/' + bookingType + '/cancel/' + id + '?account=' + accountID, data);\r\n }\r\n getVirtualServiceInput(selectedService, callingModes, commObj) {\r\n let virtualServiceArray = {};\r\n if (callingModes !== '') {\r\n if (selectedService.virtualCallingModes[0].callingMode === 'GoogleMeet' || selectedService.virtualCallingModes[0].callingMode === 'Zoom') {\r\n virtualServiceArray[selectedService.virtualCallingModes[0].callingMode] = selectedService.virtualCallingModes[0].value;\r\n } else {\r\n virtualServiceArray[selectedService.virtualCallingModes[0].callingMode] = commObj['comWhatsappCountryCode'] + commObj['comWhatsappNo'];;\r\n }\r\n }\r\n for (const i in virtualServiceArray) {\r\n if (i === 'WhatsApp') {\r\n return virtualServiceArray;\r\n } else if (i === 'GoogleMeet') {\r\n return virtualServiceArray;\r\n } else if (i === 'Zoom') {\r\n return virtualServiceArray;\r\n } else if (i === 'Phone') {\r\n return virtualServiceArray;\r\n } else if (i === 'VideoCall') {\r\n return { 'VideoCall': '' };\r\n }\r\n }\r\n return '';\r\n }\r\n getServicesByDepartment(selectedDeptId: any) {\r\n console.log(\"Whole Services getServicesByDepartment:\", this.services);\r\n let activeServices = this.services.filter(service => (service.department === selectedDeptId && service.serviceAvailability && !service.provider));\r\n this.activeServices = activeServices;\r\n return activeServices;\r\n }\r\n getServicesByUser(selectedUserId: any) {\r\n console.log(\"Services getServicesByUser:\", this.services);\r\n console.log(\"User:\", selectedUserId);\r\n let activeServices = this.services.filter(service => (service.provider?.id === selectedUserId) && service.serviceAvailability);\r\n this.activeServices = activeServices;\r\n return activeServices;\r\n }\r\n getGlobalServices(deptId?) {\r\n console.log(\"Services getGlobalServices:\", this.services);\r\n let activeServices = [];\r\n if (deptId) {\r\n activeServices = this.services.filter(service => (!service.provider && service.department == deptId && service.serviceAvailability));\r\n } else {\r\n activeServices = this.services.filter(service => (!service.provider && service.serviceAvailability));\r\n }\r\n this.activeServices = activeServices;\r\n return activeServices;\r\n }\r\n getAppointmentByConsumerUUID(uuid, accountid) {\r\n const url = 'consumer/appointment/' + uuid + '?account=' + accountid;\r\n return this.serviceMeta.httpGet(url);\r\n }\r\n\r\n getServicesByLocationId(locid) {\r\n const url = 'consumer/waitlist/services/' + locid;\r\n return this.serviceMeta.httpGet(url);\r\n }\r\n getLocationsByServiceId(serviceId) {\r\n const url = 'consumer/service/' + serviceId + '/location';\r\n return this.serviceMeta.httpGet(url);\r\n }\r\n getWaitlistServices(locationId) {\r\n const _this = this;\r\n return new Promise(function (resolve, reject) {\r\n _this.getServicesByLocationId(locationId).subscribe(\r\n (services: any) => {\r\n resolve(services);\r\n }\r\n ), () => {\r\n resolve([]);\r\n }\r\n })\r\n }\r\n getAvailableDatessByLocationService(locid, servid, accountid?) {\r\n const url = 'consumer/appointment/availability/location/' + locid + '/service/' + servid + '?account=' + accountid;\r\n return this.serviceMeta.httpGet(url);\r\n }\r\n getServicebyLocationId(locationId) {\r\n console.log(\"Location Id:\", locationId);\r\n const _this = this;\r\n return new Promise(function (resolve, reject) {\r\n if (_this.services && _this.services.length > 0) {\r\n resolve(_this.services);\r\n } else {\r\n _this.getAppointmentServices(locationId).then(\r\n (appointmentServices: any) => {\r\n _this.getWaitlistServices(locationId).then(\r\n (wlServices: any) => {\r\n let services = [...appointmentServices, ...wlServices];\r\n resolve(services);\r\n }\r\n )\r\n }\r\n )\r\n }\r\n });\r\n }\r\n /**\r\n * returns Available dates for calendar\r\n * @param locid location id\r\n * @param servid service id\r\n * @param accountid account id\r\n */\r\n getSchedulesbyLocationandServiceIdavailability(locid, servid, accountid) {\r\n const _this = this;\r\n return new Promise(function (resolve) {\r\n if (locid && servid && accountid) {\r\n _this.getAvailableDatessByLocationService(locid, servid, accountid)\r\n .subscribe((data: any) => {\r\n const availables = data.filter(obj => obj.availableSlots);\r\n const availDates = availables.map(function (a) { return a.date; });\r\n let availableDates = availDates.filter(function (elem, index, self) {\r\n return index === self.indexOf(elem);\r\n });\r\n resolve(availableDates);\r\n }, () => {\r\n resolve([]);\r\n });\r\n }\r\n })\r\n }\r\n getQueuesbyLocationandServiceIdavailability(locid, servid, accountid) {\r\n const _this = this;\r\n let availableDates = [];\r\n if (locid && servid && accountid) {\r\n this.getQueuesbyLocationandServiceIdAvailableDates(locid, servid, accountid)\r\n .subscribe((data: any) => {\r\n const availables = data.filter(obj => obj.isAvailable);\r\n const availDates = availables.map(function (a) { return a.date; });\r\n availableDates = availDates.filter(function (elem, index, self) {\r\n return index === self.indexOf(elem);\r\n });\r\n });\r\n }\r\n return availableDates;\r\n }\r\n getQueuesbyLocationandServiceIdAvailableDates(locid, servid, accountid) {\r\n const url = 'consumer/waitlist/queues/available/' + locid + '/' + servid + '?account=' + accountid;\r\n return this.serviceMeta.httpGet(url);\r\n }\r\n validateVirtualCallInfo(callingModes, selectedService, commObj) {\r\n let valid = true;\r\n console.log(\"Calling Modes:\", callingModes);\r\n if (callingModes === '' || callingModes.length < 10) {\r\n for (const i in selectedService.virtualCallingModes) {\r\n if (selectedService.virtualCallingModes[i].callingMode === 'WhatsApp' || selectedService.virtualCallingModes[i].callingMode === 'Phone') {\r\n if (!commObj['comWhatsappNo'] && selectedService.serviceBookingType !== 'request') {\r\n valid = false;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n return valid;\r\n }\r\n getRescheduledInfo(bookingId, accountId, bookingMode) {\r\n const _this = this;\r\n return new Promise(function (resolve, reject) {\r\n if (!bookingId) {\r\n resolve(false);\r\n } else {\r\n if (bookingMode === 'Appointment') {\r\n _this.getAppointmentByConsumerUUID(bookingId, accountId).subscribe(\r\n (appointmentInfo) => {\r\n resolve(appointmentInfo);\r\n }\r\n )\r\n } else {\r\n _this.getCheckinByConsumerUUID(bookingId, accountId).subscribe(\r\n (waitlistInfo) => {\r\n resolve(waitlistInfo);\r\n }\r\n )\r\n }\r\n\r\n }\r\n })\r\n }\r\n addApptAdvancePayment(param, body) {\r\n const url = 'consumer/appointment/advancePayment';\r\n return this.serviceMeta.httpPut(url, body, null, param);\r\n }\r\n addWaitlistAdvancePayment(param, body) {\r\n const url = 'consumer/waitlist/advancePayment';\r\n return this.serviceMeta.httpPut(url, body, null, param);\r\n }\r\n getCheckinByConsumerUUID(uuid, accountid) {\r\n console.log(\"UUID:\", uuid);\r\n const url = 'consumer/waitlist/' + uuid + '?account=' + accountid;\r\n return this.serviceMeta.httpGet(url);\r\n }\r\n getSlotsByLocationServiceandDate(locid, servid, pdate, accountid) {\r\n const url = 'consumer/appointment/schedule/date/' + pdate + '/location/' + locid + '/service/' + servid + '?account=' + accountid;\r\n return this.serviceMeta.httpGet(url);\r\n }\r\n /**\r\n * \r\n * @param locid Location Id\r\n * @returns services of location\r\n */\r\n getQueuesbyLocationServiceAndDate(locid, servid, pdate, accountid) {\r\n const _this = this;\r\n return new Promise(function (resolve, reject) {\r\n _this.getQueuesbyLocationandServiceId(locid, servid, pdate, accountid)\r\n .subscribe((queues: any) => {\r\n resolve(queues);\r\n }, () => {\r\n resolve([]);\r\n })\r\n })\r\n }\r\n getQueuesbyLocationandServiceId(locid, servid, pdate?, accountid?) {\r\n const dd = (pdate !== undefined) ? '/' + pdate + '?account=' + accountid : '';\r\n const url = 'consumer/waitlist/queues/' + locid + '/' + servid + dd;\r\n return this.serviceMeta.httpGet(url);\r\n }\r\n getConvenientFeeOfProvider(provid, data?) {\r\n const url = 'consumer/payment/modes/convenienceFee/' + provid;\r\n return this.serviceMeta.httpPut(url, data);\r\n }\r\n getApptCoupons(servId, locId) {\r\n const url = 'consumer/appointment/service/' + servId + '/location/' + locId + '/coupons';\r\n return this.serviceMeta.httpGet(url);\r\n }\r\n getCheckinCoupons(servId, locId) {\r\n const url = 'consumer/waitlist/service/' + servId + '/location/' + locId + '/coupons';\r\n return this.serviceMeta.httpGet(url);\r\n }\r\n getServiceById(serviceId, type) {\r\n let service = this.services.filter(service => (service.id === serviceId && service.bType === type));\r\n return service[0];\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\n\r\nInjectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class ErrorMessagingService {\r\n\r\n API_ERROR = 'There was a problem while connecting to our server. Please try again.';\r\n\r\n constructor() {\r\n }\r\n getApiError(error: any) {\r\n console.log(\"Get Api Error:\", error);\r\n if (error.error && typeof error.error === 'string') {\r\n return error.error;\r\n } else if (typeof error === 'string') {\r\n return error;\r\n } else {\r\n return this.API_ERROR;\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ErrorMessagingService } from './error-message.service';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [ CommonModule ],\r\n exports: [],\r\n providers: [\r\n ErrorMessagingService\r\n ]\r\n})\r\nexport class ErrrorMessageModule { }\r\n","import { Injectable } from \"@angular/core\"\r\nimport { Messages } from \"./project-messages\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n/**\r\n * Terminology/Word Factory\r\n */\r\nexport class WordProcessor {\r\n TIMEOUT_DELAY_LARGE10 = 10000; // msec\r\n terminologies: any;\r\n spterminologies: any;\r\n\r\n constructor() { }\r\n /**\r\n * Method to set the terminlogies for Jaldee\r\n * @param terminologies \r\n */\r\n setTerminologies(terminologies: any) {\r\n // console.log(\"Set Terminologies:\", terminologies);\r\n this.terminologies = terminologies;\r\n }\r\n /**\r\n * Method to get the terminologies\r\n */\r\n getTerminologies() {\r\n return this.terminologies;\r\n }\r\n\r\n /**\r\n * Method to set the sp terminlogies for Jaldee\r\n * @param terminology \r\n */\r\n setSPTerminologies(terminology: any) {\r\n this.spterminologies = terminology;\r\n }\r\n\r\n /**\r\n * Method to get the sp terminologies\r\n */\r\n getSPTerminologies() {\r\n return this.spterminologies;\r\n }\r\n\r\n /**\r\n * Method returns the CamelCase\r\n * @param str text to convert\r\n */\r\n toCamelCase(str: any) {\r\n return str;\r\n }\r\n\r\n /**\r\n * Convert the first letter to Uppercase\r\n * @param str \r\n */\r\n firstToUpper(str: any) {\r\n if (str) {\r\n if (str.substr(0, 7) === 'http://' || str.substr(0, 8) === 'https://') {\r\n return str;\r\n } else {\r\n return str.charAt(0).toUpperCase() + str.substr(1);\r\n }\r\n }\r\n }\r\n /**\r\n * Show/Hide Success or Error Messages\r\n * @param ob Object to put the message\r\n * @param message Message to show\r\n */\r\n apiSuccessAutoHide(ob: any, message: any) {\r\n const replaced_message = this.findTerminologyTerm(message);\r\n ob.api_success = this.firstToUpper(replaced_message);\r\n setTimeout(() => {\r\n ob.api_success = null;\r\n }, this.TIMEOUT_DELAY_LARGE10);\r\n }\r\n /**\r\n * Show error and hide it automatically\r\n * @param ob Object holds the message\r\n * @param error Message to be shown\r\n */\r\n apiErrorAutoHide(ob: any, error: any) {\r\n // error = this.errorService.getApiError(error);\r\n const replaced_message = this.findTerminologyTerm(error);\r\n ob.api_error = this.firstToUpper(replaced_message);\r\n setTimeout(() => {\r\n ob.api_error = null;\r\n }, this.TIMEOUT_DELAY_LARGE10);\r\n }\r\n /**\r\n * Get the terminology from terminologies\r\n * @param term \r\n */\r\n getTerminologyTerm(term: any, terminologies?: any) {\r\n if (terminologies) {\r\n this.setTerminologies(terminologies);\r\n } else {\r\n terminologies = this.getTerminologies();\r\n }\r\n const term_only = term.replace(/[\\[\\]']/g, '').toLowerCase();\r\n // console.log(\"Get Terminology Term\", terminologies);\r\n if (terminologies) {\r\n return (terminologies[term_only]) ? terminologies[term_only] : ((term === term_only) ? term_only : term);\r\n } else {\r\n return (term === term_only) ? term_only : term;\r\n }\r\n }\r\n /**\r\n * Replace the term within the full message\r\n * @param term term to be replaced\r\n * @param full_message full message\r\n */\r\n removeTerminologyTerm(term: any, full_message: any) {\r\n const term_replace = this.getTerminologyTerm(term);\r\n // console.log(\"Term To replace:\", term_replace);\r\n const term_only = term.replace(/[\\[\\]']/g, ''); // term may me with or without '[' ']'\r\n // console.log(\"Term:\", term_only);\r\n return full_message.replace('[' + term_only + ']', term_replace);\r\n }\r\n /**\r\n * Find the terminology\r\n * @param message \r\n */\r\n findTerminologyTerm(message: any) {\r\n // console.log(\"Message:\", message);\r\n let replaced_msg = message;\r\n if (message) {\r\n const matches = message.match(/\\[(.*?)\\]/g);\r\n replaced_msg = message;\r\n // console.log(\"Matches\", matches);\r\n if (matches) {\r\n for (const match of matches) {\r\n replaced_msg = this.removeTerminologyTerm(match, replaced_msg);\r\n }\r\n }\r\n }\r\n return replaced_msg;\r\n }\r\n /**\r\n * get the message from the messages list\r\n * @param key identifier for the message\r\n */\r\n getProjectMesssages(key: any) {\r\n let message = Messages[key] || '';\r\n message = this.findTerminologyTerm(message);\r\n return this.firstToUpper(message);\r\n }\r\n /**\r\n * Extract error message from the error object\r\n * @param error error message to shown\r\n */\r\n getProjectErrorMesssages(message: any, terminologies?: any) {\r\n if (terminologies) {\r\n this.setTerminologies(this.terminologies);\r\n }\r\n // let message = this.errorService.getApiError(error);\r\n message = this.findTerminologyTerm(message);\r\n return this.firstToUpper(message);\r\n }\r\n /**\r\n * Get the terminology from terminologies\r\n * @param term \r\n */\r\n getSPTerminologyTerm(term: any) {\r\n const term_only = term;\r\n const terminologies = this.getSPTerminologies();\r\n // console.log(\"Terminologies:\", terminologies);\r\n if (terminologies) {\r\n return (terminologies[term_only]) ? terminologies[term_only] : ((term === term_only) ? term_only : term);\r\n } else {\r\n return (term === term_only) ? term_only : term;\r\n }\r\n }\r\n}","import { Injectable } from \"@angular/core\";\r\n\r\nInjectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class CurrencyService {\r\n\r\n constructor() {\r\n }\r\n\r\n print_PricewithCurrency(price: any) {\r\n return '₹' + ' ' + price.toFixed(2);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { ServiceMeta } from './service-meta';\r\n\r\n\r\n@Injectable()\r\n// tslint:disable-next-line: component-class-suffix\r\nexport class RazorpayService {\r\n status_check: any;\r\n private paidStatus = new BehaviorSubject<string>('false');\r\n currentStatus = this.paidStatus.asObservable();\r\n paymentModes = [{ method: \"netbanking\" }, { method: \"paylater\" }, { method: \"card\" },\r\n { method: \"upi\" }, { method: \"wallet\" }];\r\n\r\n constructor(private servicemeta: ServiceMeta\r\n ) { }\r\n\r\n changePaidStatus(value: string) {\r\n this.paidStatus.next(value);\r\n }\r\n onReloadPage() {\r\n window.location.reload();\r\n }\r\n \r\n updateResult(payload: any, accountId?: any){\r\n let url = 'provider/payment/razorpay/update';\r\n if (accountId) {\r\n url+='?account='+accountId;\r\n }\r\n return this.servicemeta.httpPost(url, payload);\r\n }\r\n\r\n updateRazorPay(payload: any, accountId?: any) {\r\n const self = this;\r\n return new Promise((resolve, reject) => {\r\n self.updateResult(payload, accountId).subscribe((result:any) => {\r\n resolve(result);\r\n }, (error: any) => {\r\n reject(false);\r\n })\r\n })\r\n }\r\n\r\n initializePayment(pData: any, accountId: any, referrer: any, type?: any) {\r\n let razorInterval: any;\r\n let prefillModel: any = {}\r\n if (type === 'provider') {\r\n prefillModel['name'] = pData.providerName;\r\n } else {\r\n prefillModel['name'] = pData.consumerName;\r\n }\r\n prefillModel['name'] = pData.consumerName;\r\n prefillModel['email'] = pData.ConsumerEmail;\r\n prefillModel['contact'] = pData.consumerPhoneumber;\r\n\r\n let razorModel: any = {\r\n prefill: prefillModel,\r\n key: pData.razorpayId,\r\n amount: pData.amount,\r\n currency: 'INR',\r\n order_id: pData.orderId,\r\n name: pData.providerName,\r\n description: pData.description,\r\n mode: pData.paymentMode,\r\n retry: false,\r\n theme: {\r\n color: '#F37254'\r\n },\r\n modal: {\r\n // We should prevent closing of the form when esc key is pressed.\r\n escape: false\r\n },\r\n notes: {\r\n // include notes if any\r\n }\r\n }\r\n let selectedmode = pData.paymentMode;\r\n\r\n if (selectedmode === 'DC' || selectedmode === 'CC') {\r\n selectedmode = 'CARD';\r\n }\r\n if (selectedmode === 'NB') {\r\n selectedmode = 'NETBANKING';\r\n }\r\n console.log(selectedmode);\r\n const hiddenObject = this.paymentModes.filter((mode) => mode.method !== selectedmode.toLowerCase());\r\n console.log('hideenobject' + JSON.stringify(hiddenObject));\r\n razorModel['config'] = {\r\n display: {\r\n hide: hiddenObject\r\n }\r\n }\r\n const options = razorModel;\r\n options['handler'] = ((response: any, error: any) => {\r\n console.log(error);\r\n options['response'] = response;\r\n console.log('orpitons.response' + JSON.stringify(options['response']));\r\n\r\n const razorpay_payload = {\r\n \"paymentId\": response.razorpay_payment_id,\r\n \"orderId\": response.razorpay_order_id,\r\n \"signature\": response.razorpay_signature\r\n };\r\n\r\n let successResponse = {\r\n STATUS: 'TXN_SUCCESS',\r\n SRC: 'razorPay'\r\n }\r\n clearTimeout(razorInterval);\r\n referrer.transactionCompleted(successResponse, razorpay_payload, accountId);\r\n // call your backend api to verify payment signature & capture transaction\r\n // });\r\n // options.modal.ondismiss = (() => {\r\n // // handle the case when user closes the form while transaction is in progress\r\n });\r\n\r\n options.modal['ondismiss'] = (() => {\r\n let failureResponse = {\r\n STATUS: 'TXN_FAILURE',\r\n SRC: 'razorPay'\r\n }\r\n referrer.transactionCompleted(failureResponse, null, accountId);\r\n });\r\n\r\n this.loadRazorpayScript(pData, referrer).onload = () => {\r\n const rzp = new this.nativeWindow.Razorpay(options);\r\n rzp.open();\r\n rzp.on('payment.failed', function (response: any) {\r\n let failureResponse: any = {\r\n STATUS: 'TXN_FAILURE',\r\n SRC: 'razorPay'\r\n }\r\n failureResponse['error'] = response.error;\r\n referrer.transactionCompleted(failureResponse, null, accountId);\r\n });\r\n razorInterval = setTimeout(() => {\r\n rzp.close();\r\n location.reload();\r\n }, 540000);\r\n };\r\n }\r\n get nativeWindow(): ICustomWindow {\r\n return this.getWindow();\r\n }\r\n getWindow(): any {\r\n return window;\r\n }\r\n public loadRazorpayScript(pData: any, isfrom: any): HTMLScriptElement {\r\n const url = \"https://checkout.razorpay.com/v1/checkout.js\";\r\n console.log('preparing to load...');\r\n let script: any = document.createElement('script');\r\n script.id = pData.orderId;\r\n script.src = url;\r\n script.type = 'text/javascript';\r\n script.async = true;\r\n script['crossorigin'] = \"anonymous\"\r\n console.log(isfrom.paytmview);\r\n isfrom.paytmview.nativeElement.appendChild(script);\r\n return script;\r\n }\r\n}\r\nexport interface ICustomWindow extends Window {\r\n Razorpay: any;\r\n __custom_global_stuff: string;\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { ServiceMeta } from \"./service-meta\";\r\nimport { projectConstantsLocal } from \"./project-constants\";\r\n\r\n\r\n@Injectable()\r\nexport class PaytmService {\r\n paymentModes = [\r\n 'NB', 'CC', 'DC', 'UPI', 'PPI', 'CARD'\r\n ];\r\n constructor(\r\n private servicemeta: ServiceMeta\r\n ) { }\r\n initializePayment(pData: any, accountId: any, referrer: any) {\r\n let response = JSON.parse(pData.response);\r\n if (pData.paymentMode === 'CC' || pData.paymentMode === 'DC') {\r\n pData.paymentMode = 'CARD';\r\n }\r\n const paymentModesHidden = this.paymentModes.filter(obj => obj !== pData.paymentMode);\r\n const paytm_payload = {\r\n \"paymentId\": pData.txnid,\r\n \"orderId\": pData.orderId,\r\n \"siganature\": response.signature\r\n\r\n };\r\n console.log('response' + JSON.stringify(response));\r\n this.loadPayTMScript(pData, referrer).onload = () => {\r\n var config = {\r\n \"root\": \"\",\r\n \"flow\": \"DEFAULT\",\r\n \"data\": {\r\n \"orderId\": pData.orderId, /* update order id */\r\n \"token\": response.body.txnToken, /* update token value */\r\n \"tokenType\": \"TXN_TOKEN\",\r\n \"amount\": pData.amount\r\n },\r\n \"merchant\": {\r\n \"mid\": pData.merchantId,\r\n \"redirect\": false,\r\n \"multipleWindowWebview\": true\r\n },\r\n \"payMode\": {\r\n \"filter\": {\r\n 'exclude': paymentModesHidden\r\n }\r\n },\r\n \"handler\": {\r\n \"notifyMerchant\": function (eventName: any, data: any) {\r\n console.log(\"notifyMerchant handler function called\");\r\n console.log(\"eventName => \", eventName);\r\n console.log(\"data => \", data);\r\n referrer.closeloading();\r\n },\r\n \"transactionStatus\": function (data: any) {\r\n console.log(\"payment status \", data);\r\n console.log(paytm_payload);\r\n window['Paytm'].CheckoutJS.close();\r\n if (data) {\r\n referrer.transactionCompleted(data, paytm_payload, accountId);\r\n } else {\r\n referrer.transactionCompleted({ STATUS: 'TXN_SUCCESS' }, paytm_payload, accountId);\r\n }\r\n }\r\n }\r\n };\r\n console.log(JSON.stringify(config));\r\n if (window['Paytm'] && window['Paytm'].CheckoutJS) {\r\n window['Paytm'].CheckoutJS.onLoad(function excecuteAfterCompleteLoad() {\r\n // initialze configuration using init method \r\n window['Paytm'].CheckoutJS.init(config).then(function onSuccess() {\r\n // after successfully updating configuration, invoke JS Checkout\r\n window['Paytm'].CheckoutJS.invoke();\r\n }).catch(function onError(error: any) {\r\n console.log(\"error => \", error);\r\n window['Paytm'].CheckoutJS.close();\r\n referrer.closeloading();\r\n });\r\n });\r\n }\r\n };\r\n\r\n setTimeout(() => {\r\n window['Paytm'].CheckoutJS.close();\r\n referrer.closeloading();\r\n }, 600000);\r\n }\r\n\r\n public loadPayTMScript(pData: any, isfrom: any): HTMLScriptElement {\r\n let payTmurl;\r\n if (pData.paymentEnv == 'production') {\r\n payTmurl = projectConstantsLocal.PAYTM_URL;\r\n } else {\r\n payTmurl = projectConstantsLocal.PAYTMLOCAL_URL;\r\n }\r\n const url = payTmurl + '/merchantpgpui/checkoutjs/merchants/' + pData.merchantId + '.js';\r\n console.log('preparing to load...');\r\n let script: any = document.createElement('script');\r\n script.id = pData.orderId;\r\n script.src = url;\r\n script.type = 'text/javascript';\r\n script.async = true;\r\n script['crossorigin'] = \"anonymous\"\r\n // node.charset = 'utf-8';\r\n // this.renderer.appendChild(document.body, script);\r\n console.log(isfrom.paytmview);\r\n // document.getElementById('consumer_donation').appendChild(script);\r\n isfrom.paytmview.nativeElement.appendChild(script);\r\n return script;\r\n }\r\n updateResult(payload: any, accountId?: any) {\r\n let url = 'provider/payment/paytm/update';\r\n if (accountId) {\r\n url += '?account=' + accountId;\r\n }\r\n return this.servicemeta.httpPost(url, payload);\r\n }\r\n\r\n updatePaytmPay(payload: any, accountId?: any) {\r\n const self = this;\r\n return new Promise((resolve, reject) => {\r\n self.updateResult(payload, accountId).subscribe((result: any) => {\r\n resolve(result);\r\n }, (error: any) => {\r\n reject(false);\r\n })\r\n })\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from \"@angular/core\";\r\nimport { DomSanitizer } from \"@angular/platform-browser\";\r\n\r\n@Pipe({ name: 'safeHtml'})\r\nexport class SafeHtmlPipe implements PipeTransform {\r\n constructor(private sanitized: DomSanitizer) {}\r\n transform(value: any) {\r\n return this.sanitized.bypassSecurityTrustHtml(value);\r\n }\r\n}","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SafeHtmlPipe } from './safehtml.pipe';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [SafeHtmlPipe],\r\n exports: [SafeHtmlPipe]\r\n})\r\nexport class SafeHtmlModule {}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'limitTo'\r\n})\r\n\r\nexport class TruncatePipe implements PipeTransform {\r\n transform(value: string, args: any[]): string {\r\n const limit = args.length > 0 ? parseInt(args[0], 10) : 20;\r\n const trail = args.length > 1 ? args[1] : '...';\r\n return value.length > limit ? value.substring(0, limit) + trail : value;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TruncatePipe } from './limitTo.pipe';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [TruncatePipe],\r\n exports: [TruncatePipe]\r\n})\r\nexport class TruncateModule {\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'filter'\r\n})\r\nexport class FilterPipe implements PipeTransform {\r\n transform(items: any[], searchText: string): any[] {\r\n if (!items) return [];\r\n if (!searchText) return items;\r\n \r\n return items.filter(item => {\r\n return Object.keys(item).some(key => {\r\n return String(item[key]).toLowerCase().includes(searchText.toLowerCase());\r\n });\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FilterPipe } from './filter.pipe';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [FilterPipe],\r\n exports: [FilterPipe],\r\n providers: [FilterPipe]\r\n})\r\nexport class FilterPipeModule {\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({name: 'capitalizeFirst'})\r\nexport class CapitalizeFirstPipe implements PipeTransform {\r\n transform(value: string): string {\r\n if (value !== null && value !== undefined ) {\r\n value = value.toString().trim();\r\n return value.charAt(0).toUpperCase() + value.slice(1);\r\n }\r\n return '';\r\n }\r\n }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CapitalizeFirstPipe } from './capitalize.pipe';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [CapitalizeFirstPipe],\r\n exports: [CapitalizeFirstPipe]\r\n})\r\nexport class CapitalizeFirstPipeModule {\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n\r\n@Pipe({ name: 'nl2br'})\r\nexport class Nl2BrPipe implements PipeTransform {\r\n constructor(private sanitizer: DomSanitizer) { }\r\n\r\n transform(value: string): SafeHtml {\r\n if (!value) return '';\r\n const formatted = value.replace(/\\n/g, '<br>');\r\n return this.sanitizer.bypassSecurityTrustHtml(formatted);\r\n }\r\n}","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { Nl2BrPipe } from './nl2br.pipe';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [Nl2BrPipe],\r\n exports: [Nl2BrPipe]\r\n})\r\nexport class Nl2BrModule {\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'autolink'\r\n})\r\nexport class AutolinkPipe implements PipeTransform {\r\n\r\n transform(value: string): string {\r\n if (!value) return value;\r\n\r\n const urlPattern = /(\\b(https?|ftp|file):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;]*[-A-Z0-9+&@#\\/%=~_|])/ig;\r\n const emailPattern = /([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\\.[a-zA-Z0-9._-]+)/ig;\r\n\r\n return value\r\n .replace(urlPattern, '<a href=\"$1\" target=\"_blank\">$1</a>')\r\n .replace(emailPattern, '<a href=\"mailto:$1\">$1</a>');\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AutolinkPipe } from './autolink.pipe';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [AutolinkPipe],\r\n exports: [AutolinkPipe]\r\n})\r\nexport class AutolinkPipeModule {}","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DatePipe } from '@angular/common';\r\n\r\n@Pipe({\r\n name: 'dateFormat'\r\n})\r\nexport class DateFormatPipe implements PipeTransform {\r\n\r\n transform(value: any, args?: any): any {\r\n return null;\r\n }\r\n\r\n transformTofilterDate(value: any) {\r\n const datePipe = new DatePipe('en-US');\r\n value = datePipe.transform(value, 'yyyy-MM-dd');\r\n return value;\r\n }\r\n transformTomciDate(value: any) {\r\n const datePipe = new DatePipe('en-US');\r\n value = datePipe.transform(value, 'yyyy/MM/dd');\r\n return value;\r\n }\r\n transformToDIsplayFormat(value: any) {\r\n const datePipe = new DatePipe('en-US');\r\n value = datePipe.transform(value, 'dd/MM/y');\r\n return value;\r\n }\r\n transformToMonthlyDate(value: any) {\r\n const datePipe = new DatePipe('en-US');\r\n value = datePipe.transform(value, 'MMM d, y');\r\n return value;\r\n\r\n }\r\n transformToDateWithTime(value: any) {\r\n const datePipe = new DatePipe('en-US');\r\n value = datePipe.transform(value, 'dd/MM/yyyy HH:mm a');\r\n return value;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { DateFormatPipe } from './date-format.pipe';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [DateFormatPipe],\r\n exports: [DateFormatPipe],\r\n providers: [DateFormatPipe]\r\n})\r\nexport class DateFormatPipeModule {\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'shortFileName'\r\n})\r\nexport class ShortFileNamePipe implements PipeTransform {\r\n\r\n transform(value: string, len: number): string {\r\n const dotIndex = value.lastIndexOf('.');\r\n if (dotIndex === -1) return value;\r\n\r\n const prefix = value.slice(0, len);\r\n const extension = value.slice(dotIndex);\r\n return `${prefix}...${extension}`;\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ShortFileNamePipe } from './short-file-name.pipe';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n ShortFileNamePipe\r\n ],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [\r\n ShortFileNamePipe\r\n ]\r\n})\r\nexport class ShortFileNameModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule } from '@angular/router';\r\n\r\nimport { FieldErrorDisplayComponent } from './field-error-display/field-error-display.component';\r\nimport { FormSuccessDisplayComponent } from './form-success-display/form-success-display.component';\r\nimport { FormMessageDisplayService } from './form-message-display.service';\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n RouterModule\r\n ],\r\n declarations: [FieldErrorDisplayComponent,\r\n FormSuccessDisplayComponent],\r\n exports: [FieldErrorDisplayComponent,\r\n FormSuccessDisplayComponent],\r\n providers: [\r\n FormMessageDisplayService\r\n ]\r\n})\r\nexport class FormMessageDisplayModule { }\r\n","import { Injectable } from \"@angular/core\";\r\nimport moment from 'moment';\r\nimport { ServiceMeta } from \"../../service-meta\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\n/**\r\n * Class which handles date/time related functions\r\n */\r\nexport class DateTimeProcessor {\r\n\r\n REGION_LANGUAGE = \"en-US\";\r\n TIME_ZONE_REGION = \"Asia/Kolkata\";\r\n myweekdaysSchedule = [\r\n \"\",\r\n \"Sun\",\r\n \"Mon\",\r\n \"Tue\",\r\n \"Wed\",\r\n \"Thu\",\r\n \"Fri\",\r\n \"Sat\"\r\n ];\r\n\r\n constructor(private servicemeta: ServiceMeta) { }\r\n\r\n /**\r\n * \r\n * @param date1 \r\n * @param date2 \r\n * @returns difference between the two dates\r\n */\r\n getdaysdifffromDates(date1: any, date2: any) {\r\n let firstdate;\r\n let seconddate;\r\n if (date1 === 'now') {\r\n firstdate = new Date();\r\n } else {\r\n firstdate = new Date(date1);\r\n }\r\n seconddate = new Date(date2);\r\n const hours = Math.abs(firstdate.getTime() - seconddate.getTime()) / 36e5; // 36e5 is the scientific notation for 60*60*1000\r\n return { 'hours': hours };\r\n }\r\n\r\n /**\r\n * \r\n * @param time \r\n * @returns \r\n */\r\n getTimeAsNumberOfMinutes(time: string) {\r\n const timeParts = time.split(':');\r\n const timeInMinutes = (parseInt(timeParts[0], 10) * 60) + parseInt(timeParts[1], 10);\r\n return timeInMinutes;\r\n }\r\n /**\r\n * convert year-month-day to day-monthname-year\r\n * @param psdate \r\n * @param params \r\n * @returns \r\n */\r\n formatDate(psdate: string, params: any = []) {\r\n const monthNames: any = {\r\n '01': 'Jan',\r\n '02': 'Feb',\r\n '03': 'Mar',\r\n '04': 'Apr',\r\n '05': 'May',\r\n '06': 'Jun',\r\n '07': 'Jul',\r\n '08': 'Aug',\r\n '09': 'Sep',\r\n '10': 'Oct',\r\n '11': 'Nov',\r\n '12': 'Dec'\r\n };\r\n const darr = psdate.split('-');\r\n if (params['rettype'] === 'monthname') {\r\n darr[1] = monthNames[darr[1]];\r\n return darr[1] + ' ' + darr[2];\r\n } else if (params['rettype'] === 'fullarr') {\r\n darr[1] = monthNames[darr[1]];\r\n return darr;\r\n } else {\r\n return darr[1] + ' ' + darr[2];\r\n }\r\n }\r\n /**\r\n * \r\n * @param i \r\n * @returns \r\n */\r\n addZero(i: any) {\r\n if (i < 10) {\r\n i = '0' + i;\r\n }\r\n return i;\r\n }\r\n /**\r\n * \r\n * @param time \r\n * @param secreq \r\n * @returns \r\n */\r\n convert24HourtoAmPm(time: string, secreq?:any) {\r\n const timesp = time.split(':');\r\n let hr = parseInt(timesp[0], 10);\r\n const min = parseInt(timesp[1], 10);\r\n const sec = parseInt(timesp[2], 10);\r\n let ampm = '';\r\n let retstr = '';\r\n if (hr >= 12) {\r\n hr = hr - 12;\r\n if (hr === 0) {\r\n hr = 12;\r\n ampm = 'PM';\r\n } else if (hr < 0) {\r\n ampm = 'AM';\r\n } else {\r\n ampm = 'PM';\r\n }\r\n } else if (hr === 0) {\r\n hr = 12;\r\n ampm = 'AM';\r\n } else {\r\n ampm = 'AM';\r\n }\r\n retstr = this.addZero(hr) + ':' + this.addZero(min);\r\n if (secreq) {\r\n retstr += ':' + sec;\r\n }\r\n retstr += ' ' + ampm;\r\n return retstr;\r\n }\r\n\r\n /**\r\n * \r\n * @param mins \r\n * @returns \r\n */\r\n providerConvertMinutesToHourMinute(mins: any) {\r\n let rethr = '';\r\n let retmin = '';\r\n if (mins > 0) {\r\n const hr = Math.floor(mins / 60);\r\n const min = Math.floor(mins % 60);\r\n if (hr > 0) {\r\n if (hr > 1) {\r\n rethr = hr + ' Hrs';\r\n } else {\r\n rethr = hr + ' Hr';\r\n }\r\n }\r\n if (min > 0) {\r\n if (min > 1) {\r\n retmin = ' ' + min + ' Mins';\r\n } else {\r\n retmin = ' ' + min + ' Min';\r\n }\r\n }\r\n } else {\r\n retmin = '' + 0 + ' Min';\r\n }\r\n return rethr + retmin;\r\n }\r\n /**\r\n * \r\n * @param mins \r\n * @returns \r\n */\r\n convertMinutesToHourMinute(mins: any) {\r\n let rethr = '';\r\n let retmin = '';\r\n if (mins > 0) {\r\n const hr = Math.floor(mins / 60);\r\n const min = Math.floor(mins % 60);\r\n if (hr > 0) {\r\n if (hr > 1) {\r\n rethr = hr + ' hours';\r\n } else {\r\n rethr = hr + ' hour';\r\n }\r\n }\r\n if (min > 0) {\r\n if (min > 1) {\r\n retmin = ' ' + min + ' minutes';\r\n } else {\r\n retmin = ' ' + min + ' minute';\r\n }\r\n }\r\n } else {\r\n retmin = '' + 0 + ' minutes';\r\n }\r\n return rethr + retmin;\r\n }\r\n /**\r\n * \r\n * @param mins \r\n * @returns \r\n */\r\n convertMinutesToHourMinuteForCheckin(mins: any) {\r\n let rethr = '';\r\n let retmin = '';\r\n if (mins > 0) {\r\n const hr = Math.floor(mins / 60);\r\n const min = Math.floor(mins % 60);\r\n if (hr > 0) {\r\n if (hr > 1) {\r\n rethr = hr + 'Hrs';\r\n } else {\r\n rethr = hr + 'Hr';\r\n }\r\n }\r\n if (min > 0) {\r\n if (min > 1) {\r\n retmin = ' ' + min + 'Mins';\r\n } else {\r\n retmin = ' ' + min + 'Min';\r\n }\r\n }\r\n } else {\r\n retmin = '' + 0 + 'Min';\r\n }\r\n return rethr + retmin;\r\n }\r\n /**\r\n * \r\n * @param time \r\n * @returns \r\n */\r\n getDateFromTimeString(time: string) {\r\n const startTime = new Date();\r\n const parts = time.match(/(\\d+):(\\d+) (AM|PM)/);\r\n if (parts) {\r\n let hours = parseInt(parts[1], 0);\r\n const minutes = parseInt(parts[2], 0);\r\n const tt = parts[3];\r\n if (tt === 'PM' && hours < 12) {\r\n hours += 12;\r\n }\r\n startTime.setHours(hours, minutes, 0, 0);\r\n }\r\n return startTime;\r\n }\r\n /**\r\n * \r\n * @param dt \r\n * @param mod \r\n * @returns \r\n */\r\n stringtoDate(dt: string, mod: string) {\r\n let dtsarr;\r\n if (dt) {\r\n dtsarr = dt.split(' ');\r\n const dtarr = dtsarr[0].split('-');\r\n let retval = '';\r\n if (mod === 'all') {\r\n retval = dtarr[2] + '/' + dtarr[1] + '/' + dtarr[0] + ' ' + dtsarr[1] + ' ' + dtsarr[2];\r\n } else if (mod === 'date') {\r\n retval = dtarr[2] + '/' + dtarr[1] + '/' + dtarr[0];\r\n } else if (mod === 'time') {\r\n retval = dtsarr[1] + ' ' + dtsarr[2];\r\n }\r\n return retval;\r\n } else {\r\n return '';\r\n }\r\n }\r\n /**\r\n * \r\n * @param date \r\n * @returns \r\n */\r\n transformToYMDFormat(date: any) {\r\n console.log(\"In transformToYMDFormat:\", date);\r\n const server = date.toLocaleString(this.REGION_LANGUAGE, { timeZone: this.TIME_ZONE_REGION });\r\n const serverdate = moment(server).format();\r\n const newdate = new Date(serverdate);\r\n const dd = newdate.getDate();\r\n const mm = newdate.getMonth() + 1;\r\n const y = newdate.getFullYear();\r\n const date1 = y + '-' + mm + '-' + dd;\r\n return date1;\r\n }\r\n /**\r\n * \r\n * @param dateStr \r\n * @returns \r\n */\r\n formatDateDisplay(dateStr: string) {\r\n const pubDate = new Date(dateStr);\r\n const obtshowdate = this.addZero(pubDate.getDate()) + '/' + this.addZero((pubDate.getMonth() + 1)) + '/' + pubDate.getFullYear();\r\n return obtshowdate;\r\n }\r\n /**\r\n * \r\n * @returns \r\n */\r\n getMoment() {\r\n return moment;\r\n }\r\n /**\r\n * \r\n * @param num \r\n * @returns \r\n */\r\n getDay(num: any) {\r\n return this.myweekdaysSchedule[num];\r\n }\r\n\r\n /**\r\n * Convert Date to String in YYYYMMDD format\r\n * @param inputDate input date\r\n * @returns string\r\n */\r\n getStringFromDate_YYYYMMDD(inputDate: any) {\r\n const today = new Date(inputDate);\r\n const dd = today.getDate();\r\n const mm = today.getMonth() + 1; // January is 0!\r\n const yyyy = today.getFullYear();\r\n let cday = '';\r\n if (dd < 10) {\r\n cday = '0' + dd;\r\n } else {\r\n cday = '' + dd;\r\n }\r\n let cmon;\r\n if (mm < 10) {\r\n cmon = '0' + mm;\r\n } else {\r\n cmon = '' + mm;\r\n }\r\n const dateString = yyyy + '-' + cmon + '-' + cday;\r\n return dateString;\r\n }\r\n\r\n getLocaleDateFromServer(serverDate: any) {\r\n return new Date(serverDate.split(' ')[0]).toLocaleString(this.REGION_LANGUAGE, { timeZone: this.TIME_ZONE_REGION })\r\n }\r\n\r\n getToday(serverDate: any) {\r\n let today: any;\r\n today = new Date(serverDate.split(' ')[0]).toLocaleString(this.REGION_LANGUAGE, { timeZone: this.TIME_ZONE_REGION });\r\n today = new Date(today);\r\n const dd = today.getDate();\r\n const mm = today.getMonth() + 1; // January is 0!\r\n const yyyy = today.getFullYear();\r\n let cday = '';\r\n if (dd < 10) {\r\n cday = '0' + dd;\r\n } else {\r\n cday = '' + dd;\r\n }\r\n let cmon;\r\n if (mm < 10) {\r\n cmon = '0' + mm;\r\n } else {\r\n cmon = '' + mm;\r\n }\r\n const dtoday = yyyy + '-' + cmon + '-' + cday;\r\n return dtoday;\r\n }\r\n\r\n isFutureDate(serverDate: any, appmtDate: any) {\r\n let today: any;\r\n today = this.getToday(serverDate);\r\n const dt0 = today.toLocaleString(this.REGION_LANGUAGE, { timeZone: this.TIME_ZONE_REGION });\r\n const dt2 = moment(dt0, 'YYYY-MM-DD HH:mm').format();\r\n const date2 = new Date(dt2);\r\n const dte0 = appmtDate.toLocaleString(this.REGION_LANGUAGE, { timeZone: this.TIME_ZONE_REGION });\r\n const dte2 = moment(dte0, 'YYYY-MM-DD HH:mm').format();\r\n const datee2 = new Date(dte2);\r\n if (datee2.getTime() !== date2.getTime()) { // this is to decide whether future date selection is to be displayed. This is displayed if the sel_checkindate is a future date\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n getMomentDate(pdate: any) {\r\n return moment(pdate, 'YYYY-MM-DD HH:mm').format();\r\n }\r\n\r\n /**\r\n * \r\n * @param date \r\n * @returns \r\n */\r\n transformToMMDDYYYY_(date: any) {\r\n const server = date.toLocaleString(this.REGION_LANGUAGE, { timeZone: this.TIME_ZONE_REGION });\r\n const serverdate = moment(server).format();\r\n const newdate = new Date(serverdate);\r\n const dd = newdate.getDate();\r\n const mm = newdate.getMonth() + 1;\r\n const y = newdate.getFullYear();\r\n const date1 = mm + '/' + dd + '/' + y;\r\n return date1;\r\n }\r\n\r\n getCurrentUTCdatetimestring() {\r\n const curdate = new Date();\r\n const cdate = new Date(Date.UTC(curdate.getUTCFullYear(), curdate.getUTCMonth(), curdate.getUTCDate(), curdate.getUTCHours(),\r\n curdate.getUTCMinutes(), curdate.getUTCSeconds(), curdate.getUTCMilliseconds()));\r\n return cdate.toISOString();\r\n }\r\n\r\n getSystemDate() {\r\n return this.servicemeta.httpGet('provider/server/date');\r\n }\r\n \r\n AMHourto24(date: any, time12: any) {\r\n const time = time12;\r\n let hours = Number(time.match(/^(\\d+)/)[1]);\r\n const minutes = Number(time.match(/:(\\d+)/)[1]);\r\n const AMPM = time.match(/\\s(.*)$/)[1];\r\n if (AMPM === 'PM' && hours < 12) { hours = hours + 12; }\r\n if (AMPM === 'AM' && hours === 12) { hours = hours - 12; }\r\n const sHours = hours;\r\n const sMinutes = minutes;\r\n const mom_date = moment(date);\r\n mom_date.set('hour', sHours);\r\n mom_date.set('minute', sMinutes);\r\n return mom_date;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TimezoneConverter {\r\n\r\n constructor() {\r\n\r\n }\r\n // Function to dynamically fetch timezone abbreviation\r\n private getTimezoneAbbreviation(timeZone: string): string {\r\n const date = new Date();\r\n const options: Intl.DateTimeFormatOptions = {\r\n timeZone,\r\n timeStyle: 'short', // Use valid options for timeStyle\r\n hourCycle: 'h12'\r\n };\r\n // Create a formatter for the time zone\r\n const formatter = new Intl.DateTimeFormat([], options);\r\n // Get the timezone abbreviation\r\n const parts = formatter.formatToParts(date);\r\n const timeZoneAbbr = parts.find(part => part.type === 'timeZoneName')?.value;\r\n // If the abbreviation isn't available, return the full timezone\r\n return timeZoneAbbr || 'IST'; // Default to IST if abbreviation is not found\r\n }\r\n\r\n getZonedTime(message) {\r\n const timestamp = JSON.parse(message.timeStamp); // Parse the timestamp\r\n const timeZone = message.timeZone.trim(); // Trim the time zone\r\n const date = new Date(timestamp); // Create a Date object\r\n const formatter = new Intl.DateTimeFormat('en-US', {\r\n timeZone,\r\n year: 'numeric',\r\n month: 'short',\r\n day: '2-digit',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n hour12: true,\r\n });\r\n\r\n // Format the date using Intl.DateTimeFormat\r\n const formattedDate = formatter.format(date);\r\n const timeZoneAbbreviation = this.getTimezoneAbbreviation(timeZone);\r\n return `${formattedDate} (${timeZoneAbbreviation})`;\r\n }\r\n}","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-skeleton-loading',\r\n templateUrl: './skeleton-loading.component.html',\r\n styleUrls: ['./skeleton-loading.component.css']\r\n})\r\nexport class SkeletonLoadingComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<ul class=\"o-vertical-spacing o-vertical-spacing--l\">\r\n <li class=\"blog-post o-media\">\r\n <div class=\"o-media__figure\">\r\n <span class=\"skeleton-box\" style=\"width:100px;height:80px;\"></span>\r\n </div>\r\n <div class=\"o-media__body\">\r\n <div class=\"o-vertical-spacing\">\r\n <h3 class=\"blog-post__headline\">\r\n <span class=\"skeleton-box\" style=\"width:55%;\"></span>\r\n </h3>\r\n <p>\r\n <span class=\"skeleton-box\" style=\"width:80%;\"></span>\r\n <span class=\"skeleton-box\" style=\"width:90%;\"></span>\r\n <span class=\"skeleton-box\" style=\"width:83%;\"></span>\r\n <span class=\"skeleton-box\" style=\"width:80%;\"></span>\r\n </p>\r\n <div class=\"blog-post__meta\">\r\n <span class=\"skeleton-box\" style=\"width:70px;\"></span>\r\n </div>\r\n </div>\r\n </div>\r\n </li>\r\n <li class=\"blog-post o-media\">\r\n <div class=\"o-media__figure\">\r\n <span class=\"skeleton-box\" style=\"width:100px;height:80px;\"></span>\r\n </div>\r\n <div class=\"o-media__body\">\r\n <div class=\"o-vertical-spacing\">\r\n <h3 class=\"blog-post__headline\">\r\n <span class=\"skeleton-box\" style=\"width:55%;\"></span>\r\n </h3>\r\n <p>\r\n <span class=\"skeleton-box\" style=\"width:80%;\"></span>\r\n <span class=\"skeleton-box\" style=\"width:90%;\"></span>\r\n <span class=\"skeleton-box\" style=\"width:83%;\"></span>\r\n <span class=\"skeleton-box\" style=\"width:80%;\"></span>\r\n </p>\r\n <div class=\"blog-post__meta\">\r\n <span class=\"skeleton-box\" style=\"width:70px;\"></span>\r\n </div>\r\n </div>\r\n </div>\r\n </li>\r\n <li class=\"blog-post o-media\">\r\n <div class=\"o-media__figure\">\r\n <span class=\"skeleton-box\" style=\"width:100px;height:80px;\"></span>\r\n </div>\r\n <div class=\"o-media__body\">\r\n <div class=\"o-vertical-spacing\">\r\n <h3 class=\"blog-post__headline\">\r\n <span class=\"skeleton-box\" style=\"width:55%;\"></span>\r\n </h3>\r\n <p>\r\n <span class=\"skeleton-box\" style=\"width:80%;\"></span>\r\n <span class=\"skeleton-box\" style=\"width:90%;\"></span>\r\n <span class=\"skeleton-box\" style=\"width:83%;\"></span>\r\n <span class=\"skeleton-box\" style=\"width:80%;\"></span>\r\n </p>\r\n <div class=\"blog-post__meta\">\r\n <span class=\"skeleton-box\" style=\"width:70px;\"></span>\r\n </div>\r\n </div>\r\n </div>\r\n </li>\r\n <li class=\"blog-post o-media\">\r\n <div class=\"o-media__figure\">\r\n <span class=\"skeleton-box\" style=\"width:100px;height:80px;\"></span>\r\n </div>\r\n <div class=\"o-media__body\">\r\n <div class=\"o-vertical-spacing\">\r\n <h3 class=\"blog-post__headline\">\r\n <span class=\"skeleton-box\" style=\"width:55%;\"></span>\r\n </h3>\r\n <p>\r\n <span class=\"skeleton-box\" style=\"width:80%;\"></span>\r\n <span class=\"skeleton-box\" style=\"width:90%;\"></span>\r\n <span class=\"skeleton-box\" style=\"width:83%;\"></span>\r\n <span class=\"skeleton-box\" style=\"width:80%;\"></span>\r\n </p>\r\n <div class=\"blog-post__meta\">\r\n <span class=\"skeleton-box\" style=\"width:70px;\"></span>\r\n </div>\r\n </div>\r\n </div>\r\n </li>\r\n <li class=\"blog-post o-media\">\r\n <div class=\"o-media__figure\">\r\n <span class=\"skeleton-box\" style=\"width:100px;height:80px;\"></span>\r\n </div>\r\n <div class=\"o-media__body\">\r\n <div class=\"o-vertical-spacing\">\r\n <h3 class=\"blog-post__headline\">\r\n <span class=\"skeleton-box\" style=\"width:55%;\"></span>\r\n </h3>\r\n <p>\r\n <span class=\"skeleton-box\" style=\"width:80%;\"></span>\r\n <span class=\"skeleton-box\" style=\"width:90%;\"></span>\r\n <span class=\"skeleton-box\" style=\"width:83%;\"></span>\r\n <span class=\"skeleton-box\" style=\"width:80%;\"></span>\r\n </p>\r\n <div class=\"blog-post__meta\">\r\n <span class=\"skeleton-box\" style=\"width:70px;\"></span>\r\n </div>\r\n </div>\r\n </div>\r\n </li>\r\n\r\n</ul>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SkeletonLoadingComponent } from './skeleton-loading.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n SkeletonLoadingComponent\r\n ],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [\r\n SkeletonLoadingComponent\r\n ]\r\n})\r\nexport class SkeletonLoadingModule { }\r\n","import { Component, OnInit, Input } from '@angular/core';\r\n@Component({\r\n selector: 'app-common-innerloading-spinner',\r\n templateUrl: './loading-spinner.component.html',\r\n styleUrls: ['./loading-spinner.component.scss']\r\n})\r\n\r\nexport class LoadingSpinnerComponent implements OnInit {\r\n @Input() spinnerParams: any = [];\r\n diameter: any;\r\n stroke: any;\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.diameter = (this.spinnerParams['diameter']) ? this.spinnerParams['diameter'] : 40;\r\n this.stroke = (this.spinnerParams['strokewidth']) ? this.spinnerParams['strokewidth'] : 5;\r\n }\r\n}\r\n","<mat-spinner class=\"inner-load-spinner\" [strokeWidth]=\"stroke\" [diameter]=\"diameter\"></mat-spinner>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LoadingSpinnerComponent } from './loading-spinner.component';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatProgressSpinnerModule\r\n ],\r\n declarations: [\r\n LoadingSpinnerComponent\r\n ],\r\n exports: [\r\n LoadingSpinnerComponent\r\n ]\r\n})\r\n\r\nexport class LoadingSpinnerModule { }\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable, Subject } from \"rxjs\";\r\nimport { ServiceMeta } from \"../service-meta\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\n/**\r\n * Class which handle Questionaire\r\n */\r\nexport class QuestionaireService {\r\n\r\n private subject = new Subject<any>();\r\n\r\n getMessage(): Observable<any> {\r\n return this.subject.asObservable();\r\n }\r\n\r\n sendMessage(message: any) {\r\n this.subject.next(message);\r\n }\r\n\r\n constructor(private servicemeta: ServiceMeta) { }\r\n validateConsumerQuestionnaire(body: any, accountId: string) {\r\n const url = 'consumer/questionnaire/validate' + '?account=' + accountId;\r\n return this.servicemeta.httpPut(url, body);\r\n }\r\n validateConsumerQuestionnaireResbumit(body: any, accountId: string) {\r\n const url = 'consumer/questionnaire/resubmit/validate' + '?account=' + accountId;\r\n return this.servicemeta.httpPut(url, body);\r\n }\r\n consumerOrderQnrUploadStatusUpdate(uid: string, account: string, data: any) {\r\n const url = 'consumer/orders/questionnaire/upload/status/' + uid + '?account=' + account;\r\n return this.servicemeta.httpPut(url, data);\r\n }\r\n consumerDonationQnrUploadStatusUpdate(uid: string, account: string, data: any) {\r\n const url = 'consumer/donation/questionnaire/upload/status/' + uid + '?account=' + account;\r\n return this.servicemeta.httpPut(url, data);\r\n }\r\n consumerApptQnrUploadStatusUpdate(uid: string, account: string, data: any) {\r\n const url = 'consumer/appointment/questionnaire/upload/status/' + uid + '?account=' + account;\r\n return this.servicemeta.httpPut(url, data);\r\n }\r\n consumerWaitlistQnrUploadStatusUpdate(uid: string, account: string, data: any) {\r\n const url = 'consumer/waitlist/questionnaire/upload/status/' + uid + '?account=' + account;\r\n return this.servicemeta.httpPut(url, data);\r\n }\r\n videoaudioS3Upload(file: any, url: any) {\r\n return this.servicemeta.httpPut(url, file);\r\n }\r\n resubmitConsumerWaitlistQuestionnaire(body: any, uuid: string, accountId: string) {\r\n const url = 'consumer/waitlist/questionnaire/resubmit/' + uuid + '?account=' + accountId;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n submitConsumerWaitlistQuestionnaire(body: any, uuid: string, accountId: string) {\r\n const url = 'consumer/waitlist/questionnaire/' + uuid + '?account=' + accountId;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n resubmitConsumerDonationQuestionnaire(body: any, uuid: string, accountId: string) {\r\n const url = 'consumer/donation/questionnaire/resubmit/' + uuid + '?account=' + accountId;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n resubmitConsumerApptQuestionnaire(body: any, uuid: string, accountId: string) {\r\n const url = 'consumer/appointment/questionnaire/resubmit/' + uuid + '?account=' + accountId;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n submitConsumerApptQuestionnaire(body: any, uuid: string, accountId: string) {\r\n const url = 'consumer/appointment/questionnaire/' + uuid + '?account=' + accountId;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n resubmitConsumerOrderQuestionnaire(body: any, uuid: string, accountId: string) {\r\n const url = 'consumer/orders/questionnaire/resubmit/' + uuid + '?account=' + accountId;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n submitConsumerOrderQuestionnaire(body: any, uuid: string, accountId: string) {\r\n const url = 'consumer/orders/questionnaire/' + uuid + '?account=' + accountId;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n validateConsumerIvrQuestionnaire(body: any, id: string) {\r\n const url = 'consumer/ivr/questionnaire/submit/' + id;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n submitDonationQuestionnaire(uuid: string, body: any, account_id: string) {\r\n const url = 'consumer/donation/questionnaire/submit/' + uuid + '?account=' + account_id;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n}","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { CommonService } from '../common.service';\r\n@Component({\r\n selector: 'app-showuploadfile',\r\n templateUrl: './showuploadfile.component.html',\r\n styleUrls: ['./showuploadfile.component.scss']\r\n})\r\nexport class ShowuploadfileComponent implements OnInit {\r\n details: any = [];\r\n locationImg: any;\r\n cacheavoider = '';\r\n title = 'Detailed View';\r\n type: any;\r\n theme: any;\r\n constructor(\r\n private dialogRef: MatDialogRef<ShowuploadfileComponent>,\r\n private commonService: CommonService,\r\n @Inject(MAT_DIALOG_DATA) public data: any\r\n ) {\r\n this.details = this.data.file;\r\n console.log('details',this.details);\r\n if (this.data.source === 'qnr') {\r\n this.title = (this.details.comments) ? this.details.comments : '';\r\n if (this.details.s3path) {\r\n this.details.url = this.details.s3path;\r\n } else {\r\n this.details.url = this.details.path;\r\n }\r\n this.type = this.details.type.split('/');\r\n this.type = this.type[0];\r\n }\r\n }\r\n ngOnInit() {\r\n this.theme = this.data.theme; \r\n const cnow = new Date();\r\n const dd = cnow.getHours() + '' + cnow.getMinutes() + '' + cnow.getSeconds();\r\n this.cacheavoider = dd;\r\n\r\n }\r\n showimg(imgurl: any) {\r\n let logourl = '';\r\n if (imgurl) {\r\n logourl = (imgurl) ? imgurl + '?' + this.cacheavoider : '';\r\n }\r\n return this.commonService.showlogoicon(logourl);\r\n }\r\n closeDialog() {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","<form [ngClass]=\"theme\">\r\n <h1 class=\"mat-dialog-title\"> {{title}}\r\n <button #locte mat-dialog-close class=\"modal_close\" tabindex=\"-1\" id=\"btnClose\">\r\n <i class=\"fa fa-window-close\" aria-hidden=\"true\"></i>\r\n </button>\r\n </h1>\r\n <div class=\"pad-20 image-scroll\">\r\n <img style=\"width:100%;margin-top: -20px;\" [src]=\"details.url||details.s3path\" alt=\"\"\r\n *ngIf=\"details.type && details.type == 'image/bmp'|| details.type =='image/png'|| details.type == 'image/gif' || details.type == 'image/jpg' ||details.type =='image/jpeg'||details.type == 'image/webp'\r\n ||details.type == 'bmp' ||details.type == 'png' ||details.type == 'gif' ||details.type == 'jpg' ||details.type == 'jpeg' ||details.type == 'webp'\" />\r\n <video style=\"width:100%;height: 75vh;\" controls\r\n *ngIf=\"(data.source === 'qnr' && type === 'video') || (data.source === 'mr' && details.type && details.type == 'video/mp4' || details.type == 'video/mpeg'||details.type == 'video/quicktime')\">\r\n <source [src]=\"details.url\" />\r\n </video>\r\n <audio style=\"width:100%;\" controls\r\n *ngIf=\"(data.source === 'qnr' && type === 'audio') || (data.source === 'mr' && details.type && details.type == 'audio/ogg'|| details.type == 'audio/mpeg'|| details.type == 'audio/mp3')\">\r\n <source [src]=\"details.url\" />\r\n </audio>\r\n </div>\r\n</form>","import { Component, HostListener, Inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-j-gallery',\r\n templateUrl: './j-gallery.component.html',\r\n styleUrl: './j-gallery.component.scss'\r\n})\r\nexport class JGalleryComponent {\r\n currentIndex: number;\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: { images: string[]; index: number },\r\n private dialogRef: MatDialogRef<JGalleryComponent>\r\n ) {\r\n this.currentIndex = data.index;\r\n }\r\n\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n\r\n prevImage() {\r\n if (this.currentIndex > 0) {\r\n this.currentIndex--;\r\n }\r\n }\r\n\r\n nextImage() {\r\n if (this.currentIndex < this.data.images.length - 1) {\r\n this.currentIndex++;\r\n }\r\n }\r\n\r\n @HostListener('document:keydown', ['$event'])\r\n handleKeyboardEvent(event: KeyboardEvent) {\r\n if (event.key === 'ArrowLeft') {\r\n this.prevImage();\r\n } else if (event.key === 'ArrowRight') {\r\n this.nextImage();\r\n } else if (event.key === 'Escape') {\r\n this.close();\r\n }\r\n }\r\n}\r\n","<div class=\"modal-overlay\" (click)=\"close()\">\r\n <div class=\"modal-content\" (click)=\"$event.stopPropagation()\">\r\n <button class=\"close-btn\" (click)=\"close()\">✖</button>\r\n <img [src]=\"data.images[currentIndex]['source']\" alt=\"Gallery Image\">\r\n \r\n <button class=\"nav-btn prev\" *ngIf=\"currentIndex > 0\" (click)=\"prevImage()\">❮</button>\r\n <button class=\"nav-btn next\" *ngIf=\"currentIndex < data.images.length - 1\" (click)=\"nextImage()\">❯</button>\r\n </div>\r\n </div>","import { Injectable } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { JGalleryComponent } from './j-gallery.component';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class JGalleryService {\r\n\r\n constructor(private dialog: MatDialog) {}\r\n\r\n open(images: string[], index: number) {\r\n this.dialog.open(JGalleryComponent, {\r\n data: { images, index },\r\n width: '80vw',\r\n maxHeight: '90vh',\r\n panelClass: 'custom-modal'\r\n });\r\n }\r\n}\r\n","import { Location } from '@angular/common';\r\nimport { Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Subscription } from 'rxjs';\r\nimport { QuestionaireService } from '../questionaire-service';\r\nimport { LocalStorageService } from '../../local-storage.service';\r\nimport { FileService } from '../../file-service';\r\nimport { CommonService } from '../../common.service';\r\nimport { ToastService } from '../../toast.service';\r\nimport { ShowuploadfileComponent } from '../../showuploadfile/showuploadfile.component';\r\nimport { DateTimeProcessor } from '../../calendar/date-time/datetime-processor.service';\r\nimport { ErrorMessagingService } from '../../error-message.service';\r\nimport { WordProcessor } from '../../word-processor.service';\r\nimport { SharedService } from '../../shared.service';\r\nimport { JGalleryService } from '../../j-gallery/j-gallery.service';\r\n@Component({\r\n selector: 'app-questionnaire',\r\n templateUrl: './questionnaire.component.html',\r\n styleUrls: ['./questionnaire.component.css']\r\n})\r\nexport class QuestionnaireComponent implements OnInit, OnChanges {\r\n @Input() questionnaireList: any;\r\n @Input() source: any;\r\n @Input() accountId: any;\r\n @Input() questionAnswers: any;\r\n @Input() customerDetails: any;\r\n @Input() uuid: any;\r\n @Input() type: any;\r\n @Input() waitlistStatus: any;\r\n @Input() orderStatus: any;\r\n @Input() donationDetails: any;\r\n @Input() service: any;\r\n @Input() mode: any; // Added by mani to check the file upload\r\n @Output() fileChanged = new EventEmitter<any>();\r\n @Output() returnAnswers = new EventEmitter<any>();\r\n @Input() tempType: any;\r\n @Input() bookingType: any;\r\n answers: any = {};\r\n showDataGrid: any = {};\r\n selectedMessage: any = [];\r\n apiError: any = [];\r\n params: any;\r\n fileuploadpreAnswers: any = {};\r\n loading = false;\r\n buttonDisable = false;\r\n questions: any = [];\r\n selectedDocs: any = [];\r\n documentsToUpload: any = [];\r\n subscription: Subscription;\r\n uploadFilesTemp: any = [];\r\n filestoUpload: any = [];\r\n changeHappened = false;\r\n uploadedFiles: any = [];\r\n uploadedImages: any = [];\r\n bookingDetails: any = [];\r\n @ViewChild('logofile1') file2!: ElementRef;\r\n image_list_popup;\r\n questionnaire_heading = '';\r\n customer_label = '';\r\n editQuestionnaire = false;\r\n audioVideoFiles: any = [];\r\n groupedQnr: any = [];\r\n dataGridColumns: any = {};\r\n dataGridColumnsAnswerList: any = [];\r\n updatedGridIndex: any = {};\r\n newTimeDateFormat = '';\r\n qnrStatus = '';\r\n comments: any = {};\r\n tday = new Date();\r\n minday = new Date(1900, 0, 1);\r\n dataGridListColumns: any = {};\r\n showqnr!: boolean;\r\n item: any;\r\n showItem = false;\r\n totalPrice: any;\r\n itemLength: any;\r\n itemArray: any = [];\r\n dataGridList: any = [];\r\n id: number = 0;\r\n post_Data: any;\r\n dgList: any;\r\n sequenceId: any;\r\n finalObjectList: any = [];\r\n showservice = false;\r\n quesStore: any;\r\n allList: string = '';\r\n popSearches: any;\r\n serviceTotalPrice: number = 0;\r\n editableItem: any;\r\n cdnPath: string = '';\r\n customID;\r\n constructor(\r\n private activated_route: ActivatedRoute,\r\n private wordProcessor: WordProcessor,\r\n private lStorageService: LocalStorageService,\r\n private dateProcessor: DateTimeProcessor,\r\n public dialog: MatDialog,\r\n private fileService: FileService,\r\n private commonService: CommonService,\r\n private questionaireService: QuestionaireService,\r\n private errorService: ErrorMessagingService,\r\n private toastService: ToastService,\r\n private sharedService: SharedService,\r\n private galleryService: JGalleryService,\r\n private location: Location) {\r\n this.cdnPath = this.sharedService.getCDNPath();\r\n this.activated_route.queryParams.subscribe(qparams => {\r\n this.params = qparams;\r\n if (this.params.type) {\r\n this.source = this.params.type;\r\n console.log(this.source)\r\n }\r\n this.accountId = this.sharedService.getAccountID();\r\n this.customID = this.sharedService.getCustomID();\r\n if (this.params.uuid) {\r\n this.uuid = this.params.uuid;\r\n }\r\n });\r\n this.subscription = this.questionaireService.getMessage().subscribe(message => {\r\n switch (message.type) {\r\n case 'qnrValidateError':\r\n this.setValidateError(message.value);\r\n break;\r\n }\r\n });\r\n }\r\n ngOnDestroy() {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n ngOnChanges() {\r\n if (this.questionAnswers && this.questionAnswers.filestoUpload && this.source === 'proLead') {\r\n this.filestoUpload = this.questionAnswers.filestoUpload;\r\n }\r\n\r\n }\r\n ngOnInit(): void {\r\n console.log(\"Service Details:\", this.questionnaireList);\r\n console.log(\"Service Details:\", this.service);\r\n if (this.lStorageService.getitemfromLocalStorage('itemArray')) {\r\n this.itemArray = this.lStorageService.getitemfromLocalStorage('itemArray');\r\n if (this.itemArray) {\r\n this.showItem = true;\r\n console.log(\"this.itemArray\", this.itemArray)\r\n }\r\n }\r\n\r\n this.customer_label = this.wordProcessor.getTerminologyTerm('customer');\r\n\r\n if (this.questionnaireList) {\r\n console.log(this.source)\r\n if (this.source === 'customer-create' || this.source === 'onetime') {\r\n if (this.questionnaireList.labels && this.questionnaireList.labels.length > 0) {\r\n this.questions = this.questionnaireList.labels[0].questions;\r\n this.groupQuestionsBySection();\r\n // this.getAnswers(this.questions, 'get');\r\n }\r\n if (this.customerDetails && this.customerDetails[0] && this.customerDetails[0].questionnaire && this.customerDetails[0].questionnaire.questionAnswers) {\r\n this.getAnswers(this.customerDetails[0].questionnaire.questionAnswers, 'get');\r\n }\r\n } else if (this.source === 'qnrDetails') {\r\n this.questions = this.questionnaireList.questions;\r\n this.groupQuestionsBySection();\r\n } else if (this.source === 'serviceOptionAppt') {\r\n this.showservice = true;\r\n this.questions = this.questionnaireList.labels;\r\n this.groupQuestionsBySection();\r\n } else if (this.source === 'qnrpaper') {\r\n this.questions = this.questionnaireList[0].labels;\r\n this.groupQuestionsBySection();\r\n } else if (!this.uuid && this.questionnaireList.labels) {\r\n this.questions = this.questionnaireList.labels;\r\n this.groupQuestionsBySection();\r\n } else if (this.source === 'qnrView' && this.questionnaireList.labels) {\r\n this.questions = this.questionnaireList.labels;\r\n this.groupQuestionsBySection();\r\n }\r\n else if (this.source === 'condumerOrder' && this.questionnaireList.labels) {\r\n this.questions = this.questionnaireList.labels;\r\n this.groupQuestionsBySection();\r\n } else if (this.source === 'ivr' && this.questionnaireList && this.questionnaireList[0].labels) {\r\n this.questions = this.questionnaireList[0].labels;\r\n console.log(\"Questions:\", this.questions);\r\n this.groupQuestionsBySection();\r\n }\r\n\r\n }\r\n if (this.source === 'customer-details' && this.customerDetails[0] && this.customerDetails[0].questionnaire) {\r\n this.questionnaireList = this.customerDetails[0].questionnaire;\r\n this.questions = this.customerDetails[0].questionnaire.questionAnswers;\r\n this.groupQuestionsBySection();\r\n this.getAnswers(this.questions, 'get');\r\n }\r\n if (this.questionAnswers) {\r\n if (this.questionAnswers.files) {\r\n this.selectedMessage = this.questionAnswers.files;\r\n }\r\n if (this.questionAnswers.audioVideo) {\r\n this.audioVideoFiles = this.questionAnswers.audioVideo;\r\n }\r\n if (this.questionAnswers.filestoUpload) {\r\n this.filestoUpload = this.questionAnswers.filestoUpload;\r\n }\r\n if (this.questionAnswers.dataGridColumnsAnswerList) {\r\n this.dataGridColumnsAnswerList = this.questionAnswers.dataGridColumnsAnswerList;\r\n }\r\n if (this.questionAnswers.comments) {\r\n this.comments = this.questionAnswers.comments;\r\n }\r\n if (this.questionAnswers.answers) {\r\n this.getAnswers(this.questionAnswers.answers.answerLine, 'init');\r\n }\r\n if (this.source == 'ivr') {\r\n this.getAnswers(this.questionAnswers, 'get');\r\n }\r\n }\r\n if (this.donationDetails && this.donationDetails.questionnaire) {\r\n this.questionnaireList = this.donationDetails.questionnaire;\r\n this.questions = this.questionnaireList.questionAnswers;\r\n this.groupQuestionsBySection();\r\n if (this.questions && this.questions.length > 0) {\r\n this.getAnswers(this.questions, 'get');\r\n }\r\n }\r\n\r\n if (this.uuid) {\r\n if (this.questionnaireList.questionAnswers) {\r\n this.questions = this.questionnaireList.questionAnswers;\r\n this.qnrStatus = 'submitted';\r\n this.groupQuestionsBySection();\r\n } else if (this.questionnaireList.labels) {\r\n this.questions = this.questionnaireList.labels;\r\n this.qnrStatus = 'released';\r\n this.groupQuestionsBySection();\r\n }\r\n else if (this.questionnaireList[0] && this.questionnaireList[0].labels) {\r\n this.questions = this.questionnaireList[0].labels;\r\n this.qnrStatus = 'released';\r\n this.groupQuestionsBySection();\r\n }\r\n if (this.questions && this.questions.length > 0) {\r\n this.getAnswers(this.questions, 'get');\r\n }\r\n }\r\n\r\n this.disableField()\r\n }\r\n\r\n //disable field\r\n disableField() {\r\n if (this.tempType && (this.tempType === 'Loan Sanction' || this.tempType === 'Rejected')) {\r\n this.buttonDisable = true;\r\n // this.disableInput();\r\n }\r\n }\r\n // *.component.ts\r\n asIsOrder(a: any, b: any) {\r\n return 1;\r\n }\r\n groupQuestionsBySection() {\r\n if (this.source === 'customer-create' || this.source === 'qnrDetails' || this.source === 'onetime') {\r\n this.groupedQnr = this.commonService.groupBy(this.questions, 'sectionName');\r\n }\r\n else if (this.source === 'proLead') {\r\n this.groupedQnr = this.questions.reduce(function (rv: any, x: any) {\r\n (rv[x.question['sequnceId']] = rv[x.question['sequnceId']] || []).push(x);\r\n return rv;\r\n }, {});\r\n }\r\n else {\r\n this.groupedQnr = this.questions.reduce(function (rv: any, x: any) {\r\n (rv[x.question['sectionOrder']] = rv[x.question['sectionOrder']] || []).push(x);\r\n return rv;\r\n }, {});\r\n }\r\n }\r\n setValidateError(errors: any) {\r\n this.apiError = [];\r\n if (errors.length > 0) {\r\n for (let error of errors) {\r\n this.apiError[error.questionField] = [];\r\n this.apiError[error.questionField].push(error.error);\r\n }\r\n this.buttonDisable = false;\r\n }\r\n }\r\n getAnswers(answerData: any, type?: any) {\r\n this.answers = new Object();\r\n this.dataGridColumns = {};\r\n if (type === 'get') {\r\n this.selectedMessage = [];\r\n this.uploadedImages = [];\r\n this.uploadedFiles = [];\r\n for (let answ of answerData) {\r\n\r\n if (answ.answerLine) {\r\n if (answ.question.fieldDataType === 'fileUpload') {\r\n\r\n if (this.source === 'proLead') {\r\n if (answ.answerLine.answer[answ.question.fieldDataType] && answ.answerLine.answer[answ.question.fieldDataType].length > 0) {\r\n for (let i = 0; i < answ.answerLine.answer[answ.question.fieldDataType].length; i++) {\r\n answ.answerLine.answer[answ.question.fieldDataType][i].action = 'add';\r\n answ.answerLine.answer[answ.question.fieldDataType][i].status = 'COMPLETE';\r\n answ.answerLine.answer[answ.question.fieldDataType][i].s3path = answ.answerLine.answer[answ.question.fieldDataType][i].s3path;\r\n answ.answerLine.answer[answ.question.fieldDataType][i].uid = answ.answerLine.answer[answ.question.fieldDataType][i].uid;\r\n answ.answerLine.answer[answ.question.fieldDataType][i].driveId = answ.answerLine.answer[answ.question.fieldDataType][i].driveId;\r\n answ.answerLine.answer[answ.question.fieldDataType][i].url = answ.answerLine.answer[answ.question.fieldDataType][i].keyName;\r\n }\r\n this.answers[answ.answerLine.labelName] = answ.answerLine.answer[answ.question.fieldDataType];\r\n }\r\n }\r\n\r\n if (answ.answerLine.answer && answ.answerLine.answer[answ.question.fieldDataType] && answ.answerLine.answer[answ.question.fieldDataType].length > 0) {\r\n for (let i = 0; i < answ.answerLine.answer[answ.question.fieldDataType].length; i++) {\r\n if (type === 'get') {\r\n this.uploadedImages.push(answ.answerLine.answer[answ.question.fieldDataType][i]);\r\n if (!this.uploadedFiles[answ.answerLine.labelName]) {\r\n this.uploadedFiles[answ.answerLine.labelName] = {};\r\n }\r\n if (!this.uploadedFiles[answ.answerLine.labelName][answ.answerLine.answer[answ.question.fieldDataType][i].caption]) {\r\n this.uploadedFiles[answ.answerLine.labelName][answ.answerLine.answer[answ.question.fieldDataType][i].caption] = {};\r\n }\r\n this.comments[answ.answerLine.labelName + '=' + answ.answerLine.answer[answ.question.fieldDataType][i].caption] = answ.answerLine.answer[answ.question.fieldDataType][i].comments;\r\n this.uploadedFiles[answ.answerLine.labelName][answ.answerLine.answer[answ.question.fieldDataType][i].caption] = answ.answerLine.answer[answ.question.fieldDataType][i];\r\n\r\n\r\n } else {\r\n this.selectedMessage.push(answ.answerLine.answer[answ.question.fieldDataType][i]);\r\n if (!this.filestoUpload[answ.answerLine.labelName]) {\r\n this.filestoUpload[answ.answerLine.labelName] = {};\r\n }\r\n if (!this.filestoUpload[answ.answerLine.labelName][answ.answerLine.answer[answ.question.fieldDataType][i].caption]) {\r\n this.filestoUpload[answ.answerLine.labelName][answ.answerLine.answer[answ.question.fieldDataType][i].caption] = {};\r\n }\r\n this.filestoUpload[answ.answerLine.labelName][answ.answerLine.answer[answ.question.fieldDataType][i].caption] = answ.answerLine.answer[answ.question.fieldDataType][i];\r\n\r\n }\r\n }\r\n }\r\n } else if (answ.question.fieldDataType === 'dataGrid') {\r\n for (let row of answ.answerLine.answer[answ.question.fieldDataType]) {\r\n let columns = [];\r\n for (let i = 0; i < row.dataGridColumn.length; i++) {\r\n columns[i + 1] = row.dataGridColumn[i].column[Object.keys(row.dataGridColumn[i].column)[0]];\r\n }\r\n if (!this.dataGridColumnsAnswerList[answ.answerLine.labelName]) {\r\n this.dataGridColumnsAnswerList[answ.answerLine.labelName] = [];\r\n }\r\n this.dataGridColumnsAnswerList[answ.answerLine.labelName].push(columns);\r\n }\r\n } else {\r\n this.answers[answ.answerLine.labelName] = answ.answerLine.answer[answ.question.fieldDataType];\r\n }\r\n }\r\n }\r\n } else {\r\n for (let answ of answerData) {\r\n if (answ.answer[Object.keys(answ.answer)[0]]) {\r\n this.answers[answ.labelName] = answ.answer[Object.keys(answ.answer)[0]];\r\n }\r\n }\r\n }\r\n if (type === 'get') {\r\n Object.keys(this.uploadedFiles).forEach(key => {\r\n this.uploadFilesTemp[key] = [];\r\n Object.keys(this.uploadedFiles[key]).forEach(key1 => {\r\n if (this.uploadedFiles[key][key1]) {\r\n if (!this.uploadFilesTemp[key]) {\r\n this.uploadFilesTemp[key] = [];\r\n }\r\n const type = this.uploadedFiles[key][key1].type.split('/');\r\n\r\n if (type[0] !== 'audio' && type[0] !== 'video' || ((type[0] === 'audio' || type[0] === 'video') && this.uploadedFiles[key][key1].status === 'COMPLETE')) {\r\n this.uploadFilesTemp[key].push(key1);\r\n }\r\n }\r\n });\r\n });\r\n } else {\r\n Object.keys(this.filestoUpload).forEach(key => {\r\n Object.keys(this.filestoUpload[key]).forEach(key1 => {\r\n if (this.filestoUpload[key][key1]) {\r\n if (!this.uploadFilesTemp[key]) {\r\n this.uploadFilesTemp[key] = [];\r\n }\r\n this.uploadFilesTemp[key].push(key1);\r\n }\r\n });\r\n });\r\n }\r\n this.onSubmit('init');\r\n }\r\n filesSelected(event: any, question: any, document: any) {\r\n const input = event.target.files;\r\n if (input) {\r\n for (const file of input) {\r\n const fileInput = {\r\n caption: document,\r\n file: file,\r\n labelName: question.labelName\r\n }\r\n this.fileChanged.emit(fileInput);\r\n let type = file.type.split('/');\r\n\r\n this.apiError[question.labelName] = [];\r\n if (!this.filestoUpload[question.labelName]) {\r\n this.filestoUpload[question.labelName] = {};\r\n }\r\n if (!this.filestoUpload[question.labelName][document]) {\r\n this.filestoUpload[question.labelName][document] = {};\r\n }\r\n if (this.filestoUpload[question.labelName] && this.filestoUpload[question.labelName][document]) {\r\n let index;\r\n if (type[0] === 'application' || type[0] === 'image') {\r\n index = this.selectedMessage.indexOf(this.filestoUpload[question.labelName][document]);\r\n } else {\r\n index = this.audioVideoFiles.indexOf(this.filestoUpload[question.labelName][document]);\r\n }\r\n if (index !== -1) {\r\n if (type[0] === 'application' || type[0] === 'image') {\r\n this.selectedMessage.splice(index, 1);\r\n } else {\r\n this.audioVideoFiles.splice(index, 1);\r\n }\r\n delete this.filestoUpload[question.labelName][document];\r\n delete this.answers[question.labelName][index];\r\n }\r\n }\r\n this.filestoUpload[question.labelName][document] = file;\r\n if (type[0] === 'application' || type[0] === 'image') {\r\n this.selectedMessage.push(file);\r\n const indx = this.selectedMessage.indexOf(file);\r\n if (indx !== -1) {\r\n const reader = new FileReader();\r\n reader.onload = (e: any) => {\r\n this.selectedMessage[indx]['path'] = e.target['result'];\r\n };\r\n reader.readAsDataURL(file);\r\n }\r\n } else {\r\n this.audioVideoFiles.push(file);\r\n const indx = this.audioVideoFiles.indexOf(file);\r\n if (indx !== -1) {\r\n const reader = new FileReader();\r\n reader.onload = (e: any) => {\r\n this.audioVideoFiles[indx]['path'] = e.target['result'];\r\n };\r\n reader.readAsDataURL(file);\r\n }\r\n }\r\n }\r\n if (this.file2 && this.file2.nativeElement.value) {\r\n this.file2.nativeElement.value = '';\r\n }\r\n this.onSubmit('inputChange');\r\n }\r\n }\r\n changeImageSelected(question: any, document: any) {\r\n if (this.filestoUpload[question.labelName] && this.filestoUpload[question.labelName][document]) {\r\n let type = this.filestoUpload[question.labelName][document].type.split('/');\r\n type = type[0];\r\n let index;\r\n if (type === 'application' || type === 'image') {\r\n index = this.selectedMessage.indexOf(this.filestoUpload[question.labelName][document]);\r\n } else {\r\n index = this.audioVideoFiles.indexOf(this.filestoUpload[question.labelName][document]);\r\n }\r\n if (index !== -1) {\r\n if (type === 'application' || type === 'image') {\r\n this.selectedMessage.splice(index, 1);\r\n } else {\r\n this.audioVideoFiles.splice(index, 1);\r\n }\r\n delete this.filestoUpload[question.labelName][document];\r\n this.comments[question.labelName + '=' + document] = '';\r\n if (this.answers[question.labelName] && this.answers[question.labelName].length > 0) {\r\n const filteredAnswer = this.answers[question.labelName].filter((answer: any) => answer.caption === document);\r\n if (filteredAnswer[0]) {\r\n const index = this.answers[question.labelName].indexOf(filteredAnswer[0]);\r\n if (index !== -1) {\r\n this.answers[question.labelName].splice(index, 1);\r\n }\r\n }\r\n }\r\n }\r\n if (Object.keys(this.filestoUpload[question.labelName]).length === 0) {\r\n delete this.filestoUpload[question.labelName];\r\n }\r\n if (this.answers[question.labelName] && this.answers[question.labelName].length === 0) {\r\n delete this.answers[question.labelName];\r\n }\r\n } else if (this.uploadedFiles[question.labelName] && this.uploadedFiles[question.labelName][document]) {\r\n const index = this.uploadedImages.indexOf(this.uploadedFiles[question.labelName][document]);\r\n if (index !== -1) {\r\n this.uploadedFiles[question.labelName][document] = 'remove';\r\n this.comments[question.labelName + '=' + document] = '';\r\n }\r\n }\r\n this.onSubmit('inputChange');\r\n }\r\n isNumeric(evt: any) {\r\n return this.commonService.isNumeric(evt);\r\n }\r\n onSubmit(keytype?: any) {\r\n\r\n Object.keys(this.filestoUpload).forEach(key => {\r\n if (!this.answers[key]) {\r\n this.answers[key] = [];\r\n }\r\n if (Object.keys(this.filestoUpload[key]).length > 0) {\r\n Object.keys(this.filestoUpload[key]).forEach(key1 => {\r\n if (this.filestoUpload[key][key1]) {\r\n let type = this.filestoUpload[key][key1].type.split('/');\r\n type = type[0];\r\n let indx;\r\n if (type === 'application' || type === 'image') {\r\n indx = this.selectedMessage.indexOf(this.filestoUpload[key][key1]);\r\n } else {\r\n indx = this.audioVideoFiles.indexOf(this.filestoUpload[key][key1]);\r\n }\r\n if (indx !== -1) {\r\n let status = 'add';\r\n if (this.uploadedFiles[key] && this.uploadedFiles[key][key1]) {\r\n status = 'update';\r\n }\r\n if (this.answers[key] && this.answers[key].length > 0) {\r\n const filteredAnswer = this.answers[key].filter((answer: any) => answer.caption === key1);\r\n if (filteredAnswer[0]) {\r\n const index = this.answers[key].indexOf(filteredAnswer[0]);\r\n if (index !== -1) {\r\n this.answers[key].splice(index, 1);\r\n }\r\n }\r\n }\r\n let type = this.filestoUpload[key][key1].type.split('/');\r\n type = type[0];\r\n if (type === 'application' || type === 'image') {\r\n this.answers[key].push({ caption: key1, action: status, mimeType: this.filestoUpload[key][key1].type, url: this.filestoUpload[key][key1].name, size: this.filestoUpload[key][key1].size, comments: this.comments[key + '=' + key1], driveId: this.filestoUpload[key][key1].driveId, uid: this.filestoUpload[key][key1].uid, status: 'COMPLETE' });\r\n } else {\r\n this.answers[key].push({ caption: key1, action: status, mimeType: this.filestoUpload[key][key1].type, url: this.filestoUpload[key][key1].name, size: this.filestoUpload[key][key1].size, comments: this.comments[key + '=' + key1], driveId: this.filestoUpload[key][key1].driveId, uid: this.filestoUpload[key][key1].uid, status: 'COMPLETE' });\r\n }\r\n }\r\n } else {\r\n if (this.answers[key] && this.answers[key].length > 0) {\r\n const filteredAnswer = this.answers[key].filter((answer: any) => answer.caption === key1);\r\n if (filteredAnswer[0]) {\r\n const index = this.answers[key].indexOf(filteredAnswer[0]);\r\n if (index !== -1) {\r\n this.answers[key].splice(index, 1);\r\n }\r\n }\r\n }\r\n }\r\n });\r\n } else {\r\n delete this.answers[key];\r\n }\r\n if (this.answers[key] && this.answers[key].length === 0) {\r\n delete this.answers[key];\r\n }\r\n });\r\n\r\n Object.keys(this.uploadedFiles).forEach(key => {\r\n if (!this.answers[key]) {\r\n this.answers[key] = [];\r\n }\r\n if (this.uploadedFiles[key] && Object.keys(this.uploadedFiles[key]).length > 0) {\r\n Object.keys(this.uploadedFiles[key]).forEach(key1 => {\r\n if ((!this.filestoUpload[key] || (this.filestoUpload[key] && !this.filestoUpload[key][key1])) && this.uploadedFiles[key][key1] && this.uploadedFiles[key][key1] === 'remove') {\r\n if (this.answers[key] && this.answers[key].length > 0) {\r\n const filteredAnswer = this.answers[key].filter((answer: any) => answer.caption === key1);\r\n if (filteredAnswer[0]) {\r\n const index = this.answers[key].indexOf(filteredAnswer[0]);\r\n if (index !== -1) {\r\n this.answers[key].splice(index, 1);\r\n }\r\n }\r\n }\r\n this.answers[key].push({ caption: key1, action: 'remove' });\r\n }\r\n });\r\n if (this.answers[key].length === 0) {\r\n delete this.answers[key];\r\n }\r\n }\r\n });\r\n\r\n let data: any = [];\r\n Object.keys(this.dataGridColumnsAnswerList).forEach(key => {\r\n let newFiled: any = {};\r\n let question = this.questions.filter((quest: any) => this.getQuestion(quest).labelName === key);\r\n question = question[0].question;\r\n for (let gridAnswer of this.dataGridColumnsAnswerList[key]) {\r\n let columnData: any = [];\r\n Object.keys(gridAnswer).forEach(key1 => {\r\n let newType: any = {};\r\n const columnDetails = question.dataGridProperties.dataGridColumns.filter((clmn: any) => clmn.order === JSON.parse(key1));\r\n if (columnDetails[0]) {\r\n const columnType = columnDetails[0].dataType;\r\n newType[columnType] = gridAnswer[key1];\r\n columnData.push({\r\n columnId: columnDetails[0].columnId,\r\n column: newType\r\n });\r\n }\r\n });\r\n let newMap: any = {};\r\n newMap['dataGridColumn'] = columnData;\r\n if (!newFiled[question.fieldDataType]) {\r\n newFiled[question.fieldDataType] = [];\r\n }\r\n newFiled[question.fieldDataType].push(newMap);\r\n }\r\n data.push({\r\n 'labelName': key,\r\n 'answer': newFiled\r\n });\r\n });\r\n\r\n Object.keys(this.answers).forEach(key => {\r\n\r\n this.apiError[key] = [];\r\n let newMap: any = {};\r\n let question = this.questions.filter((quest: any) => this.getQuestion(quest).labelName === key);\r\n if (this.source === 'customer-create' || this.source === 'qnrDetails' || this.source === 'onetime') {\r\n question = question[0];\r\n } else {\r\n question = question[0].question;\r\n }\r\n if (this.answers[key] || question.fieldDataType === 'bool') {\r\n let answer = this.answers[key];\r\n if (question.fieldDataType === 'date') {\r\n answer = this.dateProcessor.transformToYMDFormat(answer);\r\n }\r\n newMap[question.fieldDataType] = answer;\r\n data.push({\r\n 'labelName': key,\r\n 'answer': newMap\r\n });\r\n } else {\r\n // newMap = '';\r\n // data.push({\r\n // 'labelName': key,\r\n // });\r\n }\r\n });\r\n let postData;\r\n if (this.source === 'qnrpaper') {\r\n postData = {\r\n 'questionnaireId': (this.questionnaireList[0].id) ? this.questionnaireList[0].id : this.questionnaireList[0].questionnaireId,\r\n 'answerLine': data\r\n }\r\n }\r\n else if (keytype === 'serviceOption') {\r\n postData = {\r\n 'questionnaireId': (this.questionnaireList.id) ? this.questionnaireList.id : this.questionnaireList[0].questionnaireId,\r\n 'answerLine': this.finalObjectList\r\n }\r\n }\r\n else if (this.source === 'ivr' && this.customID) {\r\n console.log('fffffffffffffffffffff', this.questionnaireList)\r\n postData = {\r\n 'questionnaireId': (this.questionnaireList[0].id) ? this.questionnaireList[0].id : this.questionnaireList[0].questionnaireId,\r\n 'answerLine': data\r\n }\r\n }\r\n else {\r\n console.log('questionnaireList', this.questionnaireList)\r\n postData = {\r\n 'questionnaireId': (this.questionnaireList.id) ? this.questionnaireList.id : this.questionnaireList.questionnaireId,\r\n 'answerLine': data\r\n }\r\n }\r\n const passData = { 'answers': postData, 'files': this.selectedMessage, 'audioVideo': this.audioVideoFiles, 'filestoUpload': this.filestoUpload, 'dataGridColumnsAnswerList': this.dataGridColumnsAnswerList, 'comments': this.comments };\r\n if (keytype === 'inputChange') {\r\n this.changeHappened = true;\r\n }\r\n if (keytype === 'submit') {\r\n if (this.changeHappened) {\r\n this.submitQuestionnaire(passData);\r\n } else {\r\n if (!this.type) {\r\n this.location.back();\r\n } else {\r\n if (this.type === 'qnr-link') {\r\n this.returnAnswers.emit('nochange');\r\n } else {\r\n this.editQnr();\r\n }\r\n }\r\n }\r\n } else {\r\n\r\n this.returnAnswers.emit(passData);\r\n }\r\n }\r\n getDate(date: any) {\r\n return new Date(date);\r\n }\r\n listChange(ev: any, value: any, question: any, column?: any) {\r\n if (question.fieldDataType !== 'dataGrid') {\r\n if (ev.target.checked) {\r\n if (!this.answers[question.labelName]) {\r\n this.answers[question.labelName] = [];\r\n }\r\n if (question.listPropertie && question.listPropertie.maxAnswers && question.listPropertie.maxAnswers > 1) {\r\n this.answers[question.labelName].push(value);\r\n } else {\r\n this.answers[question.labelName][0] = value;\r\n }\r\n } else {\r\n const indx = this.answers[question.labelName].indexOf(value);\r\n this.answers[question.labelName].splice(indx, 1);\r\n }\r\n if (this.answers[question.labelName].length === 0) {\r\n this.answers[question.labelName] = '';\r\n }\r\n } else {\r\n if (ev.target.checked) {\r\n if (!this.dataGridColumns[question.labelName + '=' + column.order]) {\r\n this.dataGridColumns[question.labelName + '=' + column.order] = [];\r\n }\r\n this.dataGridColumns[question.labelName + '=' + column.order].push(value);\r\n } else {\r\n const indx = this.dataGridColumns[question.labelName + '=' + column.order].indexOf(value);\r\n this.dataGridColumns[question.labelName + '=' + column.order].splice(indx, 1);\r\n }\r\n }\r\n this.onSubmit('inputChange');\r\n }\r\n isChecked(value: any, question: any, column?: any) {\r\n if (question.fieldDataType !== 'dataGrid') {\r\n if (this.answers[question.labelName]) {\r\n const indx = this.answers[question.labelName].indexOf(value);\r\n if (indx !== -1) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n if (this.dataGridColumns[question.labelName + '=' + column.order]) {\r\n const indx = this.dataGridColumns[question.labelName + '=' + column.order].indexOf(value);\r\n if (indx !== -1) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n }\r\n }\r\n booleanChange(ev: any, value: any, question: any, column?: any) {\r\n if (question.fieldDataType !== 'dataGrid') {\r\n if (ev.target.checked) {\r\n if (!this.answers[question.labelName]) {\r\n this.answers[question.labelName] = {};\r\n }\r\n this.answers[question.labelName] = (value.toLowerCase() === 'yes') ? true : false;\r\n }\r\n } else {\r\n if (ev.target.checked) {\r\n this.dataGridColumns[question.labelName + '=' + column.order] = (value === 'yes') ? true : false;\r\n }\r\n }\r\n this.onSubmit('inputChange');\r\n }\r\n isBooleanChecked(value: any, question: any, column?: any) {\r\n value = (value.toLowerCase() === 'yes') ? true : false;\r\n if (question.fieldDataType !== 'dataGrid') {\r\n if (this.answers[question.labelName] !== '' && typeof this.answers[question.labelName] === 'string') {\r\n this.answers[question.labelName] = JSON.parse(this.answers[question.labelName])\r\n }\r\n if (this.answers[question.labelName] === value) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n if (this.dataGridColumns[question.labelName + '=' + column.order] !== '' && typeof this.dataGridColumns[question.labelName + '=' + column.order] === 'string') {\r\n this.dataGridColumns[question.labelName + '=' + column.order] = JSON.parse(this.dataGridColumns[question.labelName + '=' + column.order])\r\n }\r\n if (this.dataGridColumns[question.labelName + '=' + column.order] === value) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n }\r\n submitQuestionnaire(passData: any) {\r\n console.log('fdff', passData)\r\n const dataToSend: FormData = new FormData();\r\n const blobpost_Data = new Blob([JSON.stringify(passData.answers)], { type: 'application/json' });\r\n dataToSend.append('question', blobpost_Data);\r\n this.buttonDisable = true;\r\n\r\n }\r\n\r\n\r\n uploadAudioVideo(data: any, type: any) {\r\n if (data.urls && data.urls.length > 0) {\r\n let postData: any = {\r\n urls: []\r\n };\r\n for (const url of data.urls) {\r\n const file = this.filestoUpload[url.labelName][url.document];\r\n this.questionaireService.videoaudioS3Upload(file, url.url)\r\n .subscribe(() => {\r\n postData['urls'].push({ uid: url.uid, labelName: url.labelName });\r\n if (data.urls.length === postData['urls'].length) {\r\n if (type === 'consCheckin') {\r\n this.questionaireService.consumerWaitlistQnrUploadStatusUpdate(this.uuid, this.accountId, postData)\r\n .subscribe((data) => {\r\n this.successGoback();\r\n },\r\n error => {\r\n let errorObj = this.errorService.getApiError(error);\r\n this.toastService.showError(this.wordProcessor.getProjectErrorMesssages(errorObj));\r\n this.buttonDisable = false;\r\n });\r\n } else if (type === 'consAppt') {\r\n this.questionaireService.consumerApptQnrUploadStatusUpdate(this.uuid, this.accountId, postData)\r\n .subscribe((data) => {\r\n this.successGoback();\r\n },\r\n error => {\r\n let errorObj = this.errorService.getApiError(error);\r\n this.toastService.showError(this.wordProcessor.getProjectErrorMesssages(errorObj));\r\n this.buttonDisable = false;\r\n });\r\n } else if (type === 'consOrder' || type === 'paper') {\r\n this.questionaireService.consumerOrderQnrUploadStatusUpdate(this.uuid, this.accountId, postData)\r\n .subscribe((data) => {\r\n this.successGoback();\r\n },\r\n error => {\r\n this.toastService.showError(this.wordProcessor.getProjectErrorMesssages(error));\r\n this.buttonDisable = false;\r\n });\r\n } else if (type === 'consDonationDetails') {\r\n this.questionaireService.consumerDonationQnrUploadStatusUpdate(this.uuid, this.accountId, postData)\r\n .subscribe(() => {\r\n this.successGoback();\r\n }, (error: any) => {\r\n let errorObj = this.errorService.getApiError(error);\r\n this.toastService.showError(this.wordProcessor.getProjectErrorMesssages(errorObj));\r\n this.buttonDisable = false;\r\n });\r\n }\r\n }\r\n }, (error: any) => {\r\n let errorObj = this.errorService.getApiError(error);\r\n this.toastService.showError(this.wordProcessor.getProjectErrorMesssages(errorObj));\r\n this.buttonDisable = false;\r\n });\r\n }\r\n } else {\r\n this.successGoback();\r\n }\r\n }\r\n goBack() {\r\n this.location.back();\r\n }\r\n getQuestion(question: any) {\r\n if (this.source === 'customer-create' || this.source === 'qnrDetails' || this.source === 'onetime' || this.source === 'serviceOptionAppt') {\r\n return question;\r\n } else {\r\n return question.question;\r\n }\r\n }\r\n validateQuestionnaire(src?: any) {\r\n if (!this.questionAnswers) {\r\n this.questionAnswers = {\r\n answers: {\r\n answerLine: [],\r\n questionnaireId: (this.questionnaireList.id) ? this.questionnaireList.id : this.questionnaireList.questionnaireId,\r\n }\r\n }\r\n }\r\n }\r\n\r\n getImg(question: any, document: any) {\r\n if (this.filestoUpload[question.labelName] && this.filestoUpload[question.labelName][document]) {\r\n let type = this.filestoUpload[question.labelName][document].type.split('/');\r\n let file;\r\n if (type[0] === 'video' || type[0] === 'audio') {\r\n file = this.audioVideoFiles;\r\n } else {\r\n file = this.selectedMessage;\r\n }\r\n const indx = file.indexOf(this.filestoUpload[question.labelName][document]);\r\n if (indx !== -1) {\r\n let path = this.fileService.getImage(null, this.filestoUpload[question.labelName][document]);\r\n\r\n if (path && path !== null) {\r\n return path;\r\n }\r\n path = file[indx].path;\r\n return path;\r\n }\r\n } else if (this.uploadedFiles[question.labelName] && this.uploadedFiles[question.labelName][document]) {\r\n const indx = this.uploadedImages.indexOf(this.uploadedFiles[question.labelName][document]);\r\n if (indx !== -1) {\r\n let path = this.fileService.getImage(null, this.uploadedImages[indx]);\r\n if (path && path !== null) {\r\n return path;\r\n }\r\n path = this.uploadedImages[indx].s3path;\r\n return path;\r\n }\r\n }\r\n }\r\n // onButtonBeforeHook(event: any) {\r\n // if (!event || !event.button) {\r\n // return;\r\n // }\r\n // if (event.button.type === ButtonType.DOWNLOAD) {\r\n // }\r\n // }\r\n openAttachmentGallery(question: any, document: any) {\r\n this.image_list_popup = [];\r\n let count = 0;\r\n let imagePath;\r\n let caption = '';\r\n if (this.filestoUpload[question.labelName] && this.filestoUpload[question.labelName][document]) {\r\n let type = this.filestoUpload[question.labelName][document].type.split('/');\r\n if (type[0] === 'video' || type[0] === 'audio') {\r\n const indx = this.audioVideoFiles.indexOf(this.filestoUpload[question.labelName][document]);\r\n this.showAudioVideoFile(this.audioVideoFiles[indx]);\r\n } else {\r\n const indx = this.selectedMessage.indexOf(this.filestoUpload[question.labelName][document]);\r\n if (indx !== -1) {\r\n if (type[1] === 'pdf' || type[1] === 'docx' || type[1] === 'txt' || type[1] === 'doc') {\r\n if (this.selectedMessage[indx].s3path) {\r\n window.open(this.selectedMessage[indx].s3path, '_blank');\r\n } else {\r\n window.open(this.selectedMessage[indx].path, '_blank');\r\n }\r\n } else {\r\n imagePath = this.uploadedImages[indx].path;\r\n caption = this.comments[question.labelName + '=' + document];\r\n }\r\n }\r\n }\r\n } else if (this.uploadedFiles[question.labelName] && this.uploadedFiles[question.labelName][document]) {\r\n const indx = this.uploadedImages.indexOf(this.uploadedFiles[question.labelName][document]);\r\n let type = this.uploadedFiles[question.labelName][document].type.split('/');\r\n let ext = type[1];\r\n type = type[0];\r\n if (indx !== -1) {\r\n if (type === 'video' || type === 'audio') {\r\n this.showAudioVideoFile(this.uploadedImages[indx]);\r\n } else if (ext === 'pdf' || ext === 'docx' || ext === 'txt' || ext === 'doc' || ext === 'vnd.openxmlformats-officedocument.spreadsheetml.sheet') {\r\n window.open(this.uploadedFiles[question.labelName][document].s3path, '_blank');\r\n } else {\r\n // console.log('typetxt2',this.uploadedImages[indx]);\r\n if (this.uploadedImages && this.uploadedImages[indx] && this.uploadedImages[indx]['keyName'] &&\r\n this.uploadedImages[indx]['keyName'].includes('docx')) {\r\n window.open(this.uploadedFiles[question.labelName][document].s3path, '_blank');\r\n }\r\n else {\r\n imagePath = this.uploadedImages[indx].s3path;\r\n caption = this.uploadedImages[indx].comments;\r\n }\r\n }\r\n }\r\n }\r\n if (imagePath) {\r\n const imgobj = {\r\n src: imagePath,\r\n thumb: imagePath,\r\n alt: caption\r\n }\r\n this.image_list_popup.push(imgobj);\r\n count++;\r\n }\r\n if (count > 0) {\r\n setTimeout(() => {\r\n this.openGallery(this.image_list_popup[0]);\r\n }, 200);\r\n }\r\n }\r\n showAudioVideoFile(file: any) {\r\n const fileviewdialogRef = this.dialog.open(ShowuploadfileComponent, {\r\n width: '50%',\r\n panelClass: ['popup-class', 'commonpopupmainclass', 'uploadfilecomponentclass'],\r\n disableClose: true,\r\n data: {\r\n file: file,\r\n source: 'qnr'\r\n }\r\n });\r\n fileviewdialogRef.afterClosed().subscribe(result => {\r\n });\r\n }\r\n editQnr() {\r\n this.editQuestionnaire = !this.editQuestionnaire;\r\n }\r\n getDocuments(question: any) {\r\n if (question.filePropertie.maxNoOfFile > 1 && question.filePropertie.minNoOfFile !== question.filePropertie.maxNoOfFile) {\r\n return this.uploadFilesTemp[question.labelName];\r\n } else {\r\n return question.filePropertie.allowedDocuments;\r\n }\r\n }\r\n showProviderText(question: any) {\r\n if (question.whoCanAnswer && question.whoCanAnswer === 'PROVIDER_ONLY') {\r\n return true;\r\n }\r\n return false;\r\n }\r\n successGoback() {\r\n this.buttonDisable = false;\r\n if (!this.type) {\r\n this.location.back();\r\n } else {\r\n this.filestoUpload = [];\r\n this.editQnr();\r\n this.returnAnswers.emit('reload');\r\n if (this.type !== 'qnr-link') {\r\n this.toastService.showSuccess('Updated Successfully');\r\n }\r\n }\r\n }\r\n showDataGridAddSection(question: any, value: any) {\r\n this.showDataGrid[question.labelName] = value;\r\n this.updatedGridIndex[question.labelName] = null;\r\n }\r\n showDataGridAddSectionn(question: any, value: any) {\r\n this.quesStore = question;\r\n this.lStorageService.setitemonLocalStorage('quesStore', this.quesStore);\r\n this.showDataGrid[question.labelName] = value;\r\n this.updatedGridIndex[question.labelName] = null;\r\n this.qnrPopup(question, true)\r\n }\r\n saveDataGridColumn(question: any) {\r\n let columns = [];\r\n for (let column of question.dataGridProperties.dataGridColumns) {\r\n if (this.dataGridColumns[question.labelName + '=' + column.order] || column.dataType === 'bool') {\r\n columns[column.order] = this.dataGridColumns[question.labelName + '=' + column.order];\r\n } else {\r\n if (column.dataType === 'list' || column.dataType === 'fileUpload') {\r\n columns[column.order] = [];\r\n } else {\r\n columns[column.order] = '';\r\n }\r\n }\r\n }\r\n if (!this.dataGridColumnsAnswerList[question.labelName]) {\r\n this.dataGridColumnsAnswerList[question.labelName] = [];\r\n }\r\n if (this.updatedGridIndex[question.labelName] !== null) {\r\n this.dataGridColumnsAnswerList[question.labelName][this.updatedGridIndex[question.labelName]] = columns;\r\n } else {\r\n this.dataGridColumnsAnswerList[question.labelName].push(columns);\r\n }\r\n this.cancelAddorUpdate(question);\r\n this.onSubmit('inputChange');\r\n }\r\n editDataGrid(question: any, column: any) {\r\n const index = this.dataGridColumnsAnswerList[question.labelName].indexOf(column);\r\n Object.keys(column).forEach(key => {\r\n this.dataGridColumns[question.labelName + '=' + key] = column[key];\r\n });\r\n this.updatedGridIndex[question.labelName] = index;\r\n this.showDataGrid[question.labelName] = true;\r\n }\r\n deleteDataGrid(question: any, column: any) {\r\n const index = this.dataGridColumnsAnswerList[question.labelName].indexOf(column);\r\n this.dataGridColumnsAnswerList[question.labelName].splice(index, 1);\r\n this.onSubmit('inputChange');\r\n }\r\n cancelAddorUpdate(question: any) {\r\n this.showDataGrid[question.labelName] = false;\r\n this.updatedGridIndex[question.labelName] = null;\r\n for (let column of question.dataGridProperties.dataGridColumns) {\r\n this.dataGridColumns[question.labelName + '=' + column.order] = '';\r\n }\r\n }\r\n getColumnType(columns: any, column: any) {\r\n const columnDetails = columns.filter((clmn: any) => clmn.order === JSON.parse(column));\r\n if (columnDetails[0]) {\r\n return columnDetails[0].dataType;\r\n }\r\n }\r\n getSectionCount() {\r\n return Object.keys(this.groupedQnr).length;\r\n }\r\n getBoolValue(value: any) {\r\n value = (value !== '' && typeof value === 'string') ? JSON.parse(value) : value;\r\n if (value === true) {\r\n return 'Yes';\r\n }\r\n return 'No';\r\n }\r\n getMaxdate(data: any) {\r\n let date;\r\n if (this.getQuestion(data).dateProperties && this.getQuestion(data).dateProperties.endDate) {\r\n const dt = this.reverse(this.getQuestion(data).dateProperties.endDate);\r\n date = new Date(dt)\r\n } else {\r\n date = this.tday;\r\n }\r\n return date;\r\n }\r\n getMindate(data: any) {\r\n let date;\r\n if (this.getQuestion(data).dateProperties && this.getQuestion(data).dateProperties.startDate) {\r\n const dt = this.reverse(this.getQuestion(data).dateProperties.startDate);\r\n date = new Date(dt)\r\n } else {\r\n date = this.minday;\r\n }\r\n\r\n return date;\r\n }\r\n reverse(s: string) {\r\n return s.split(\"-\").reverse().join(\"-\");\r\n }\r\n qnrPopup(question: any, value: any) {\r\n // if (value === 'edit') {\r\n // this.quesStore = this.lStorageService.getitemfromLocalStorage('quesStore');\r\n // this.showqnr = true;\r\n // this.editableItem = question;\r\n // console.log(JSON.stringify(this.quesStore))\r\n // const removeitemdialogRef = this.dialog.open(QnrDialogComponent, {\r\n // width: '50%',\r\n // panelClass: ['popup-class', 'commonpopupmainclass', 'confirmationmainclass'],\r\n // disableClose: true,\r\n // data: {\r\n // data: this.quesStore,\r\n // qnr_type: 'service_option',\r\n // view: 'qnrView',\r\n // isEdit: 'edit',\r\n // editableItem: this.editableItem,\r\n // servDetails: this.service\r\n // }\r\n // });\r\n // removeitemdialogRef.afterClosed().subscribe(result => {\r\n // if (result) {\r\n // console.log(\"result.data.answerLine\", result.data.answerLine)\r\n // this.dataGridList = result.data.answerLine;\r\n // this.post_Data = result.data;\r\n // this.showItem = true;\r\n // this.item = result.data.answerLine[0].answer.dataGridList[0].dataGridListColumn[0].column.list[0];\r\n // if (result.data.totalPrice) {\r\n // this.totalPrice = result.data.totalPrice\r\n // }\r\n // let index1 = this.itemArray.findIndex(x => x.id === this.editableItem.id)\r\n // if (index1 > -1) {\r\n // this.itemArray.splice(index1, 1);\r\n // }\r\n // let dummyArray = { id: this.id, sequenceId: this.sequenceId, item: this.item, price: this.totalPrice, columnItem: this.dataGridList }\r\n // this.itemArray.push(dummyArray)\r\n // if (this.itemArray) {\r\n // this.lStorageService.setitemonLocalStorage('itemArray', this.itemArray);\r\n // }\r\n // this.serviceTotalPrice = 0;\r\n // this.itemArray.forEach((item: any) => {\r\n // this.serviceTotalPrice = this.serviceTotalPrice + item.price;\r\n // this.lStorageService.setitemonLocalStorage('serviceTotalPrice', this.serviceTotalPrice);\r\n // });\r\n // this.id = this.id + 1\r\n // let obj = { sequenceId: this.sequenceId, dgList: this.post_Data.answerLine };\r\n // this.finalObjectList.push(obj);\r\n // this.onSubmit('serviceOption')\r\n // }\r\n // });\r\n // }\r\n // else {\r\n // this.showqnr = true;\r\n // console.log(\"this.sequenceId\", question)\r\n // this.sequenceId = question.sequnceId;\r\n // const removeitemdialogRef = this.dialog.open(QnrDialogComponent, {\r\n // width: '50%',\r\n // panelClass: ['popup-class', 'commonpopupmainclass', 'confirmationmainclass'],\r\n // disableClose: true,\r\n // data: {\r\n // data: question,\r\n // qnr_type: 'service_option',\r\n // view: 'qnrView',\r\n // isEdit: 'add',\r\n // servDetails: this.service\r\n // }\r\n // });\r\n // removeitemdialogRef.afterClosed().subscribe(result => {\r\n // if (result) {\r\n // this.dataGridList = result.data.answerLine;\r\n // this.post_Data = result.data;\r\n // this.showItem = true;\r\n // this.item = result.data.answerLine[0].answer.dataGridList[0].dataGridListColumn[0].column.list[0];\r\n\r\n // if (result.data.totalPrice) {\r\n // this.totalPrice = result.data.totalPrice\r\n // }\r\n // let dummyArray = { id: this.id, sequenceId: this.sequenceId, item: this.item, price: this.totalPrice, columnItem: this.dataGridList }\r\n // this.itemArray.push(dummyArray)\r\n\r\n // if (this.itemArray) {\r\n // this.lStorageService.setitemonLocalStorage('itemArray', this.itemArray);\r\n // }\r\n // this.serviceTotalPrice = 0;\r\n // this.itemArray.forEach((item: any) => {\r\n // let quantity = item.columnItem[0].answer.dataGridList[0].dataGridListColumn[0].quantity;\r\n // this.serviceTotalPrice = (this.serviceTotalPrice + item.price) * quantity;\r\n // this.lStorageService.setitemonLocalStorage('serviceTotalPrice', this.serviceTotalPrice);\r\n // });\r\n // this.id = this.id + 1\r\n // let obj = { sequenceId: this.sequenceId, dgList: this.post_Data.answerLine };\r\n // this.finalObjectList.push(obj);\r\n // this.onSubmit('serviceOption')\r\n // }\r\n // });\r\n // }\r\n }\r\n increment(item: any) {\r\n // const removeitemdialogRef = this.dialog.open(QnrDialogComponent, {\r\n // width: '100%',\r\n // panelClass: ['popup-class', 'commonpopupmainclass', 'confirmationmainclass'],\r\n // disableClose: true,\r\n // data: {\r\n // item: item,\r\n // data: this.questionnaireList,\r\n // view: 'qnrrepeatView',\r\n // servDetails: this.service\r\n // }\r\n // });\r\n // removeitemdialogRef.afterClosed().subscribe(result => {\r\n // if (result) {\r\n // if (result === 'addNew') {\r\n // this.quesStore = this.lStorageService.getitemfromLocalStorage('quesStore');\r\n // this.qnrPopup(this.quesStore, true)\r\n // } else {\r\n // if (!this.sequenceId) {\r\n // this.sequenceId = item.sequenceId\r\n // }\r\n // let dummyArray = { id: this.id, sequenceId: this.sequenceId, item: result.repeatItem.item, price: result.repeatItem.price, columnItem: result.repeatItem.columnItem }\r\n // let items = dummyArray.columnItem[0].answer.dataGridList[0].dataGridListColumn;\r\n // for (let i = 0; i < items.length; i++) {\r\n // items[i].quantity = items[i].quantity + 1;\r\n // }\r\n // if (this.itemArray) {\r\n // this.lStorageService.setitemonLocalStorage('itemArray', this.itemArray);\r\n // }\r\n // console.log(\"This.ItemArray\", this.itemArray)\r\n // this.serviceTotalPrice = 0;\r\n // this.itemArray.forEach((item: any) => {\r\n // let quantity = item.columnItem[0].answer.dataGridList[0].dataGridListColumn[0].quantity;\r\n // console.log(\"quantity\", quantity)\r\n // this.serviceTotalPrice += item.price * quantity;\r\n // });\r\n // console.log(\"serviceTotalPrice\", this.serviceTotalPrice)\r\n // this.lStorageService.setitemonLocalStorage('serviceTotalPrice', this.serviceTotalPrice);\r\n // this.id = this.id + 1\r\n // let obj = { sequenceId: this.sequenceId, dgList: result.repeatItem.columnItem };\r\n // this.finalObjectList.push(obj);\r\n // this.onSubmit('serviceOption')\r\n // }\r\n\r\n // }\r\n // });\r\n }\r\n getItemQuantity(item: any) {\r\n let quantity = item.columnItem[0].answer.dataGridList[0].dataGridListColumn[0].quantity;\r\n return quantity\r\n // console.log(\"item\", item)\r\n }\r\n decrement(removingItem: any) {\r\n let index = this.itemArray.findIndex((x: any) => x.id === removingItem.id)\r\n if (index > -1) {\r\n console.log(\"this.itemArray[index]\", this.itemArray[index])\r\n if (this.getItemQuantity(this.itemArray[index]) == 1) {\r\n this.itemArray.splice(index, 1); // 2nd parameter means remove one item only\r\n }\r\n else {\r\n let items = this.itemArray[index].columnItem[0].answer.dataGridList[0].dataGridListColumn;\r\n for (let i = 0; i < items.length; i++) {\r\n items[i].quantity = items[i].quantity - 1;\r\n }\r\n }\r\n if (this.itemArray) {\r\n this.lStorageService.setitemonLocalStorage('itemArray', this.itemArray);\r\n }\r\n this.serviceTotalPrice = 0;\r\n this.itemArray.forEach((item: any) => {\r\n this.serviceTotalPrice = this.serviceTotalPrice + item.price;\r\n });\r\n this.lStorageService.setitemonLocalStorage('serviceTotalPrice', this.serviceTotalPrice);\r\n this.finalObjectList.splice(index, 1);\r\n }\r\n this.onSubmit('serviceOption')\r\n }\r\n disableInput() {\r\n return false;\r\n }\r\n private getCurrentIndexCustomLayout(image, images): number {\r\n return image ? images.indexOf(image) : -1;\r\n }\r\n openGallery(image): void {\r\n let imageIndex = this.getCurrentIndexCustomLayout(image, this.image_list_popup);\r\n this.galleryService.open(this.image_list_popup, imageIndex);\r\n }\r\n}\r\n","<section class=\"cons-inbox no-padding-small\" *ngIf=\"!showservice\">\r\n <div class=\"container consumer-dashhome p-0\" *ngIf=\"!type && source!='proLead'\">\r\n <div class=\"card title-gb rounded-0\" *ngIf=\"uuid\">\r\n <h5 class=\"mt-2 bold\">{{questionnaire_heading | capitalizeFirst}} <a class=\"pull-left me-4 back-btn\"\r\n (click)=\"goBack()\"><i class=\"fa fa-arrow-left\"></i></a></h5>\r\n </div>\r\n </div>\r\n <app-common-innerloading-spinner *ngIf=\"loading\"></app-common-innerloading-spinner>\r\n <div class=\"d-flex flex-column-fluid pull-right me-2 mb-4\"\r\n *ngIf=\"type !== 'qnrLinkProvider' && !buttonDisable && waitlistStatus\">\r\n <button class=\"normal-btn edit\" mat-flat-button (click)=\"editQnr()\" id=\"btnEdit\">Edit</button>\r\n </div>\r\n <div class=\"d-flex flex-column-fluid width-100\" [class.qnrDisableState]=\"disableInput()\"\r\n [class.p-0]=\"uuid && (source === 'consCheckin' || source === 'consAppt' || source === 'consOrder' || source === 'paper' || source === 'consDonationDetails' || source === 'ivr')\">\r\n <div class=\"col-xl-12 force_center\" [class.p-0]=\"uuid\" [class.no-padding-small]=\"source && source=='ivr'\">\r\n <div class=\"\">\r\n <div class=\"qnrsec\" *ngFor=\"let qnr of groupedQnr | keyvalue: asIsOrder\"\r\n [class.section-shadow]=\"getSectionCount() > 1\" [class.no-padding-small]=\"source && source=='ivr'\">\r\n <div class=\"form-group card mgn-0\" *ngFor=\"let question of qnr.value\">\r\n <label class=\"col-12 quest\">{{getQuestion(question).label}}\r\n <i class=\"fa fa-plus-circle pull-right\" aria-hidden=\"true\"\r\n [class.addicon]=\"!buttonDisable && !disableInput()\"\r\n *ngIf=\"getQuestion(question).fieldDataType === 'dataGrid' && !showDataGrid[getQuestion(question).labelName]\"\r\n (click)=\"!buttonDisable && !disableInput() && showDataGridAddSection(getQuestion(question), true)\"></i>\r\n <div class=\"pro-only\" *ngIf=\"showProviderText(getQuestion(question))\">For Providers</div>\r\n <span class=\"red\" *ngIf=\"getQuestion(question).mandatory\">*</span>\r\n <div class=\"form-level-settings\" *ngIf=\"getQuestion(question).hint\"\r\n [innerHTML]=\"getQuestion(question).hint | safeHtml\">\r\n </div>\r\n </label>\r\n <!-- for file upload -->\r\n <div class=\"col-12\" *ngIf=\"getQuestion(question).fieldDataType === 'fileUpload'\">\r\n <mat-select multiple #deptsel [disabled]=\"buttonDisable || disableInput()\"\r\n *ngIf=\"getQuestion(question).filePropertie.maxNoOfFile > 1 && getQuestion(question).filePropertie.minNoOfFile !== getQuestion(question).filePropertie.maxNoOfFile\"\r\n [(ngModel)]=\"uploadFilesTemp[getQuestion(question).labelName]\" class=\"select-box\" placeholder=\"Select\">\r\n <mat-option *ngFor=\"let document of getQuestion(question).filePropertie.allowedDocuments\"\r\n [value]=\"document\" (click)=\"changeImageSelected(getQuestion(question), document)\">\r\n {{document}}</mat-option>\r\n </mat-select>\r\n <div class=\"col-lg-12 col-12 col-md-12 col-sm-12 p-0 mt-4\"\r\n *ngIf=\"getDocuments(getQuestion(question)) && getDocuments(getQuestion(question)).length > 0\">\r\n <div class=\"dropzone dropzone-default dropzone-primary dz-clickable\"\r\n [class.single-file]=\"getQuestion(question).filePropertie.allowedDocuments.length==1\"\r\n style=\"cursor: auto;\">\r\n <ng-container *ngFor=\"let doc of getDocuments(getQuestion(question))\">\r\n <div class=\"dz-preview dz-processing dz-image-preview dz-error dz-complete\"\r\n *ngIf=\"getImg(getQuestion(question), doc)\">\r\n <div class=\"docname\" *ngIf=\"getQuestion(question).filePropertie.allowedDocuments.length > 1\">\r\n {{doc}}</div>\r\n <div class=\"dzimage pointer-cursor\" (click)=\"openAttachmentGallery(getQuestion(question), doc)\">\r\n <img alt=\"\" class=\"img_fit\" [src]=\"getImg(getQuestion(question), doc)\">\r\n </div>\r\n <input [disabled]=\"buttonDisable || disableInput()\" (blur)=\"onSubmit('inputChange');\"\r\n [(ngModel)]=\"comments[getQuestion(question).labelName + '=' + doc]\">\r\n <div class=\"gal_action\" *ngIf=\"!buttonDisable && !disableInput() && mode!=='read'\"\r\n (click)=\"changeImageSelected(getQuestion(question), doc)\">\r\n <i class=\"fa fa-times-circle\" aria-hidden=\"true\"></i>\r\n </div>\r\n </div>\r\n <div class=\"dz-preview dz-processing dz-image-preview dz-error dz-complete\"\r\n (click)=\"logofile1.click()\" *ngIf=\"!getImg(getQuestion(question), doc)\">\r\n <div class=\"docname\" *ngIf=\"getQuestion(question).filePropertie.allowedDocuments.length > 1\">\r\n {{doc}}</div>\r\n <div class=\"dz-image pointer-cursor\">\r\n </div>\r\n <input #logofile1 type=\"file\" accept=\"/*;capture=camera\" style=\"display:none;\"\r\n [disabled]=\"buttonDisable || disableInput()\"\r\n (change)=\"filesSelected($event, getQuestion(question), doc)\">\r\n <div class=\"dz-error-mark\">\r\n <a class=\"btn btn-icon btn-light-success btn-circle mr-2\"><i\r\n class=\"text-dark-50 flaticon-upload\"></i></a>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"mt-2 text-danger\" *ngIf=\"apiError[getQuestion(question).labelName]\">\r\n {{apiError[getQuestion(question).labelName]}}</div>\r\n </div>\r\n <!-- for checkbox -->\r\n <div class=\"col-12\"\r\n *ngIf=\"getQuestion(question).fieldDataType === 'list' && getQuestion(question).listPropertie.maxAnswers > 1\">\r\n <div class=\"checkbox-list\">\r\n <label class=\"checkbox\" *ngFor=\"let value of getQuestion(question).labelValues\">\r\n <input type=\"checkbox\" [checked]=\"isChecked(value, getQuestion(question))\"\r\n (change)=\"listChange($event, value, getQuestion(question))\"\r\n [disabled]=\"buttonDisable || disableInput()\">\r\n <span></span>\r\n {{value}}\r\n </label>\r\n </div>\r\n <div class=\"mt-2 text-danger\" *ngIf=\"apiError[getQuestion(question).labelName]\">\r\n {{apiError[getQuestion(question).labelName]}}</div>\r\n </div>\r\n <!-- for radio -->\r\n <div class=\"col-12\"\r\n *ngIf=\"getQuestion(question).fieldDataType === 'list' && getQuestion(question).listPropertie.maxAnswers === 1\">\r\n <div class=\"radio-list\">\r\n <label class=\"radio\" *ngFor=\"let value of getQuestion(question).labelValues\">\r\n <input type=\"radio\" [disabled]=\"buttonDisable || disableInput()\"\r\n [checked]=\"isChecked(value, getQuestion(question))\"\r\n (change)=\"listChange($event, value, getQuestion(question))\">\r\n <span></span>\r\n {{value}}\r\n </label>\r\n </div>\r\n <div class=\"mt-2 text-danger\" *ngIf=\"apiError[getQuestion(question).labelName]\">\r\n {{apiError[getQuestion(question).labelName]}}</div>\r\n </div>\r\n <!-- for toggel boolean -->\r\n <div class=\"col-12\" *ngIf=\"getQuestion(question).fieldDataType === 'bool'\">\r\n <div class=\"radio-list\">\r\n <label class=\"radio\" *ngFor=\"let value of getQuestion(question).labelValues\">\r\n <input type=\"radio\" [disabled]=\"buttonDisable || disableInput()\"\r\n [checked]=\"isBooleanChecked(value, getQuestion(question))\"\r\n (change)=\"booleanChange($event, value, getQuestion(question))\">\r\n <span></span>\r\n {{value}}\r\n </label>\r\n </div>\r\n <div class=\"mt-2 text-danger\" *ngIf=\"apiError[getQuestion(question).labelName]\">\r\n {{apiError[getQuestion(question).labelName]}}</div>\r\n </div>\r\n <!-- for Text -->\r\n <div class=\"col-12\" *ngIf=\"getQuestion(question).fieldDataType === 'plainText'\">\r\n <input *ngIf=\"getQuestion(question).plainTextPropertie.maxNoOfLetter<=100\"\r\n [(ngModel)]=\"answers[getQuestion(question).labelName]\" (input)=\"onSubmit('inputChange');\" \r\n [minlength]=\"getQuestion(question).plainTextPropertie.minNoOfLetter\"\r\n [maxlength]=\"getQuestion(question).plainTextPropertie.maxNoOfLetter\"\r\n class=\"form-control1 form-control-solid\" type=\"text\" [disabled]=\"buttonDisable || disableInput()\">\r\n <textarea rows=\"3\" *ngIf=\"getQuestion(question).plainTextPropertie.maxNoOfLetter>100\"\r\n [(ngModel)]=\"answers[getQuestion(question).labelName]\" (input)=\"onSubmit('inputChange');\"\r\n [minlength]=\"getQuestion(question).plainTextPropertie.minNoOfLetter\"\r\n [maxlength]=\"getQuestion(question).plainTextPropertie.maxNoOfLetter\" [disabled]=\"buttonDisable || disableInput()\"\r\n class=\"form-control2 form-control-solid\"></textarea>\r\n <div class=\"mt-2 text-danger\" *ngIf=\"apiError[getQuestion(question).labelName]\">\r\n {{apiError[getQuestion(question).labelName]}}</div>\r\n </div>\r\n <!-- for Number -->\r\n <div class=\"col-12\" *ngIf=\"getQuestion(question).fieldDataType === 'number'\">\r\n <input [(ngModel)]=\"answers[getQuestion(question).labelName]\" (input)=\"onSubmit('inputChange');\"\r\n [min]=\"getQuestion(question).numberPropertie.start\" [max]=\"getQuestion(question).numberPropertie.end\"\r\n [disabled]=\"buttonDisable || disableInput()\" class=\"form-control1 form-control-solid\" type=\"number\"\r\n (keypress)=\"isNumeric($event)\">\r\n <div class=\"mt-2 text-danger\" *ngIf=\"apiError[getQuestion(question).labelName]\">\r\n {{apiError[getQuestion(question).labelName]}}</div>\r\n </div>\r\n <!-- for Date -->\r\n <div class=\"col-12 d-flex\" *ngIf=\"getQuestion(question).fieldDataType === 'date'\">\r\n <input class=\"form-control1\" [matDatepicker]=\"picker\" [max]=\"getMaxdate(question)\"\r\n [min]=\"getMindate(question)\" [(ngModel)]=\"answers[getQuestion(question).labelName]\"\r\n (dateChange)=\"onSubmit('inputChange')\" [disabled]=\"buttonDisable || disableInput()\"\r\n (click)=\"picker.open()\">\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n <mat-datepicker #picker [disabled]=\"buttonDisable || disableInput()\"></mat-datepicker>\r\n <div class=\"mt-2 text-danger\" *ngIf=\"apiError[getQuestion(question).labelName]\">\r\n {{apiError[getQuestion(question).labelName]}}</div>\r\n </div>\r\n <!-- for Datagrid -->\r\n <div class=\"table-responsive1\"\r\n *ngIf=\"getQuestion(question).fieldDataType === 'dataGrid' && dataGridColumnsAnswerList[getQuestion(question).labelName] && dataGridColumnsAnswerList[getQuestion(question).labelName].length > 0\">\r\n <table class=\"table table-head-custom table-head-bg table-borderless table-vertical-center\">\r\n <thead>\r\n <th *ngFor=\"let column of getQuestion(question).dataGridProperties.dataGridColumns\">\r\n {{column.columnId}}</th>\r\n <th *ngIf=\"!buttonDisable && !disableInput() && !showDataGrid[getQuestion(question).labelName]\">\r\n </th>\r\n <th *ngIf=\"!buttonDisable && !disableInput() && !showDataGrid[getQuestion(question).labelName]\">\r\n </th>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let column of dataGridColumnsAnswerList[getQuestion(question).labelName];let i =index\">\r\n <td *ngFor=\"let data of column | keyvalue\">\r\n <div\r\n *ngIf=\"getColumnType(getQuestion(question).dataGridProperties.dataGridColumns, data.key) === 'date'\">\r\n {{data.value | date : newTimeDateFormat}}\r\n </div>\r\n <div\r\n *ngIf=\"getColumnType(getQuestion(question).dataGridProperties.dataGridColumns, data.key) === 'bool'\">\r\n {{getBoolValue(data.value)}}\r\n </div>\r\n <div\r\n *ngIf=\"getColumnType(getQuestion(question).dataGridProperties.dataGridColumns, data.key) !== 'date' && getColumnType(getQuestion(question).dataGridProperties.dataGridColumns, data.key) !== 'bool'\">\r\n {{data.value}}\r\n </div>\r\n </td>\r\n <td *ngIf=\"!buttonDisable && !disableInput() && !showDataGrid[getQuestion(question).labelName]\">\r\n <i class=\"fa fa-pen\" (click)=\"editDataGrid(getQuestion(question), column)\"></i>\r\n </td>\r\n <td *ngIf=\"!buttonDisable && !disableInput() && !showDataGrid[getQuestion(question).labelName]\">\r\n <i class=\"fa fa-trash\" (click)=\"deleteDataGrid(getQuestion(question), column)\"></i>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <div class=\"gridSection\" *ngIf=\"showDataGrid[getQuestion(question).labelName]\">\r\n <div class=\"gridColumn\" *ngFor=\"let column of getQuestion(question).dataGridProperties.dataGridColumns\">\r\n <label>{{column.label}}\r\n <span class=\"red\" *ngIf=\"column.mandatory\">*</span>\r\n </label>\r\n <!-- for checkbox -->\r\n <div class=\"col-12\" *ngIf=\"column.dataType === 'list'\">\r\n <div class=\"checkbox-list\">\r\n <label class=\"checkbox\" *ngFor=\"let value of column.listPropertie.values\">\r\n <input type=\"checkbox\" [checked]=\"isChecked(value, getQuestion(question), column)\"\r\n (change)=\"listChange($event, value, getQuestion(question), column)\"\r\n [disabled]=\"buttonDisable || disableInput()\">\r\n <span></span>\r\n {{value}}\r\n </label>\r\n </div>\r\n </div>\r\n <!-- for toggel boolean -->\r\n <div class=\"col-12\" *ngIf=\"column.dataType === 'bool'\">\r\n <div class=\"radio-list\">\r\n <label class=\"radio\">\r\n <input type=\"radio\" [disabled]=\"buttonDisable || disableInput()\"\r\n [checked]=\"isBooleanChecked('yes', getQuestion(question), column)\"\r\n (change)=\"booleanChange($event, 'yes', getQuestion(question), column)\">\r\n <span></span>\r\n Yes\r\n </label>\r\n <label class=\"radio\">\r\n <input type=\"radio\" [disabled]=\"buttonDisable || disableInput()\"\r\n [checked]=\"isBooleanChecked('no', getQuestion(question), column)\"\r\n (change)=\"booleanChange($event, 'no', getQuestion(question), column)\">\r\n <span></span>\r\n No\r\n </label>\r\n </div>\r\n </div>\r\n <!-- for Text -->\r\n <div class=\"col-12\" *ngIf=\"column.dataType === 'plainText'\">\r\n <input [(ngModel)]=\"dataGridColumns[getQuestion(question).labelName + '=' + column.order]\"\r\n [disabled]=\"buttonDisable || disableInput()\" class=\"form-control1 form-control-solid\" type=\"text\">\r\n </div>\r\n <!-- for Number -->\r\n <div class=\"col-12\" *ngIf=\"column.dataType === 'number'\">\r\n <input [(ngModel)]=\"dataGridColumns[getQuestion(question).labelName + '=' + column.order]\"\r\n [disabled]=\"buttonDisable || disableInput()\" [min]=\"column.numberPropertie.start\"\r\n [max]=\"column.numberPropertie.end\" class=\"form-control1 form-control-solid\" type=\"number\">\r\n </div>\r\n <!-- for Date -->\r\n <div class=\"col-12 d-flex\" *ngIf=\"column.dataType === 'date'\">\r\n <input class=\"form-control1\" [matDatepicker]=\"picker\" [max]=\"getMaxdate(question)\"\r\n [min]=\"getMindate(question)\"\r\n [(ngModel)]=\"dataGridColumns[getQuestion(question).labelName + '=' + column.order]\"\r\n [disabled]=\"buttonDisable || disableInput()\" (click)=\"picker.open()\">\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n <mat-datepicker #picker [disabled]=\"buttonDisable || disableInput()\">\r\n </mat-datepicker>\r\n </div>\r\n </div>\r\n <div class=\"act-btns\">\r\n <button type=\"button\" class=\"btn btn-light-primary font-weight-bold\" id=\"btnCancelQ\"\r\n (click)=\"cancelAddorUpdate(getQuestion(question))\">\r\n Cancel\r\n </button>\r\n <button type=\"button\" class=\"btn btn-primary font-weight-bold\" id=\"btnSaveQ\"\r\n (click)=\"saveDataGridColumn(getQuestion(question))\">Add</button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-12 col-sm-12 col-lg-12 p-0 submit-pad\"\r\n *ngIf=\"type !== 'qnrLinkProvider' && source!=='proLead' && (uuid || source === 'customer-details' || source === 'proDonation') && !disableInput()\">\r\n <button class=\"normal-btn\" mat-flat-button [class.spinner]=\"buttonDisable\" id=\"btnSubmit\"\r\n [class.spinner-darker-success]=\"buttonDisable\" [class.spinner-center]=\"buttonDisable\"\r\n (click)=\"!buttonDisable && onSubmit('submit')\" [disabled]=\"buttonDisable\"\r\n [class.disabled]=\"buttonDisable\">{{(type == 'qnr-link') ? 'Submit' : 'Update'}}</button>\r\n </div>\r\n </div>\r\n </div>\r\n</section>\r\n<section class=\"cons-inbox no-padding-small\" *ngIf=\"showservice\">\r\n <div class=\"container consumer-dashhome\" *ngIf=\"!type\">\r\n <div class=\"card title-gb rounded-0\" *ngIf=\"uuid\">\r\n <h5 class=\"mt-2 bold\">{{questionnaire_heading | capitalizeFirst}} <a class=\"pull-left me-4 back-btn\"\r\n (click)=\"goBack()\"><i class=\"fa fa-arrow-left\"></i></a></h5>\r\n </div>\r\n </div>\r\n <app-common-innerloading-spinner *ngIf=\"loading\"></app-common-innerloading-spinner>\r\n <div class=\"d-flex flex-column-fluid pull-right me-2 mb-4\"\r\n *ngIf=\"type !== 'qnrLinkProvider' && !buttonDisable && waitlistStatus\">\r\n <button class=\"normal-btn edit\" mat-flat-button (click)=\"editQnr()\" id=\"btnEditQNR\">Edit</button>\r\n </div>\r\n <div class=\"d-flex flex-column-fluid width-100\" [class.qnrDisableState]=\"disableInput()\"\r\n [class.p-0]=\"uuid && (source === 'consCheckin' || source === 'consAppt' || source === 'consDonationDetails' )\">\r\n <div class=\"col-xl-12 force_center p-0\" [class.p-0]=\"uuid\"\r\n [class.no-padding-small]=\"source && source=='ivr'\">\r\n <div class=\"\">\r\n <div class=\"\" *ngFor=\"let qnr of groupedQnr | keyvalue\" [class.section-shadow]=\"getSectionCount() > 1\">\r\n <div *ngIf=\"itemArray.length == 0 \">\r\n <div class=\"form-group mgn-0 border-dashed text-center\" *ngFor=\"let question of qnr.value\">\r\n <div class=\"qnr-section\" *ngIf=\"getSectionCount() > 1\">\r\n {{getQuestion(question).question.sectionName}}</div>\r\n <label class=\"col-12 quest pointer-cursor\"\r\n (click)=\"showDataGridAddSectionn(getQuestion(question).question, true)\">\r\n <div>\r\n <img src=\"{{cdnPath}}assets/images/service-options.svg\" alt=\"Service Options\" class=\"img-fluid pb-0\"\r\n width=\"300\" height=\"300\">\r\n </div>\r\n <div class=\"pro-only\" *ngIf=\"showProviderText(getQuestion(question).question)\">For Providers</div>\r\n <span class=\"red\" *ngIf=\"getQuestion(question).question.mandatory\">*</span>\r\n <div>\r\n <span class=\"text-primary font-weight-bold\">Please Choose your Pet</span>\r\n </div>\r\n <div class=\"mt-3\">\r\n <span class=\"btn btn-light font-weight-bold\">Continue</span>\r\n </div>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-12 col-sm-12 mb-4 p-0\" *ngIf=\"showItem\">\r\n <div>\r\n <div class=\"card-border\" *ngFor=\" let items of itemArray\">\r\n\r\n <div class=\"d-flex justify-content-between\">\r\n <div>\r\n <div class=\"text-capitalize\">\r\n <div class=\"\">\r\n <span class=\"text-primary\">\r\n {{items.item}}<br>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex border-apply px-0\">\r\n <div (click)=\"decrement(items);\" class=\"pointer-cursor quantity quantity-1\">\r\n <span class=\"p-10\">-</span>\r\n </div>\r\n <div class=\"mx-2 pointer-cursor\"><span class=\"quantity\"\r\n *ngIf=\"items && items.columnItem && items.columnItem[0] && items.columnItem[0].answer && items.columnItem[0].answer.dataGridList && items.columnItem[0].answer.dataGridList[0] && items.columnItem[0].answer.dataGridList[0].dataGridListColumn && items.columnItem[0].answer.dataGridList[0].dataGridListColumn[0] && items.columnItem[0].answer.dataGridList[0].dataGridListColumn[0].quantity\">\r\n {{items.columnItem[0].answer.dataGridList[0].dataGridListColumn[0].quantity}}</span>\r\n </div>\r\n <div (click)=\"increment(items);\" class=\"pointer-cursor quantity quantity-1\">\r\n <span class=\"p-10\">+</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div>\r\n <span class=\"text-primary\"><span><i class=\"fa fa-inr\"></i>\r\n {{items.price * getItemQuantity(items)}}/-\r\n </span>\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n <div *ngIf=\"showItem &&itemArray.length > 0\">\r\n <div *ngFor=\"let qnr of groupedQnr | keyvalue\" [class.section-shadow]=\"getSectionCount() > 1\">\r\n <div *ngFor=\"let question of qnr.value\">\r\n <label class=\"col-12 quest pointer-cursor\"\r\n (click)=\"showDataGridAddSectionn(getQuestion(question).question, true)\">\r\n <span class=\"btn btn-light font-weight-bold\"><i class=\"fa fa-plus text-white\"></i>Add</span>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</section>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { JGalleryComponent } from './j-gallery.component';\r\nimport { JGalleryService } from './j-gallery.service';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n JGalleryComponent\r\n ],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [\r\n JGalleryComponent\r\n ],\r\n providers:[\r\n JGalleryService\r\n ]\r\n})\r\nexport class JGalleryModule { }\r\n","import { CommonModule } from '@angular/common';\r\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatOptionModule } from '@angular/material/core';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { QuestionnaireComponent } from './questionnaire.component';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { LoadingSpinnerModule } from '../../spinner/loading-spinner.module';\r\nimport { CapitalizeFirstPipeModule } from '../../pipes/capitalize/capitalize.module';\r\nimport { SafeHtmlModule } from '../../pipes/safe-html/safehtml.module';\r\nimport { ErrrorMessageModule } from '../../error-message.module';\r\nimport { JGalleryModule } from '../../j-gallery/j-gallery.module';\r\n\r\n@NgModule({\r\n declarations: [\r\n QuestionnaireComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n LoadingSpinnerModule,\r\n CapitalizeFirstPipeModule,\r\n MatDatepickerModule,\r\n MatCheckboxModule,\r\n MatSlideToggleModule,\r\n MatOptionModule,\r\n MatSelectModule,\r\n SafeHtmlModule,\r\n ErrrorMessageModule,\r\n MatIconModule,\r\n JGalleryModule\r\n ],\r\n providers:[],\r\n schemas: [\r\n NO_ERRORS_SCHEMA,\r\n CUSTOM_ELEMENTS_SCHEMA\r\n ],\r\n exports: [QuestionnaireComponent]\r\n})\r\nexport class QuestionnaireModule { }\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { MatDialogModule } from \"@angular/material/dialog\";\r\nimport { ShowuploadfileComponent } from \"./showuploadfile.component\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatDialogModule\r\n ],\r\n exports: [\r\n ShowuploadfileComponent\r\n ],\r\n declarations: [\r\n ShowuploadfileComponent\r\n ]\r\n})\r\nexport class ShowuploadfileModule {}","import { AfterViewInit, Component, ElementRef, forwardRef, Input, Output, EventEmitter, ViewChild } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor, NgModel } from '@angular/forms';\r\nimport intlTelInput from 'intl-tel-input';\r\n\r\n@Component({\r\n selector: 'app-phone-input',\r\n templateUrl: './phone-input.component.html',\r\n styleUrls: ['./phone-input.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => PhoneInputComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class PhoneInputComponent implements AfterViewInit, ControlValueAccessor {\r\n @Input() initialCountry: string = 'us';\r\n @Input() preferredCountries: string[] = [];\r\n @Input() nationalMode: boolean = true;\r\n @Input() separateDialCode: boolean = true;\r\n @Input() otherOptions: any = {};\r\n\r\n @ViewChild('phoneInput', { static: false }) phoneInput: ElementRef;\r\n @ViewChild(NgModel) ngModelRef: NgModel; // Reference to NgModel instance\r\n\r\n @Output() phoneNumberChange = new EventEmitter<any>();\r\n @Output() ngModelChange = new EventEmitter<any>();\r\n\r\n phoneNumber: any = { dialCode: '', countryCode: '', e164Number: '', number: '' };\r\n phoneInputInstance: any;\r\n\r\n onChange = (value: any) => {};\r\n onTouched = () => {};\r\n\r\n ngAfterViewInit(): void {\r\n if (this.phoneInput && this.phoneInput.nativeElement) {\r\n this.initializePhoneInput();\r\n }\r\n if (this.phoneInputInstance) {\r\n this.phoneInputInstance.setNumber(this.phoneNumber.e164Number || ''); // Set initial value if available\r\n }\r\n }\r\n\r\n initializePhoneInput(): void {\r\n const options = {\r\n initialCountry: this.initialCountry,\r\n preferredCountries: this.preferredCountries,\r\n nationalMode: this.nationalMode,\r\n separateDialCode: this.separateDialCode,\r\n utilsScript: 'https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.8/js/utils.js',\r\n ...this.otherOptions\r\n };\r\n\r\n this.phoneInputInstance = intlTelInput(this.phoneInput.nativeElement, options);\r\n\r\n this.phoneInput.nativeElement.addEventListener('countrychange', () => {\r\n this.updatePhoneNumber();\r\n });\r\n\r\n this.phoneInput.nativeElement.addEventListener('input', () => {\r\n this.updatePhoneNumber();\r\n });\r\n\r\n if (this.phoneNumber.e164Number) {\r\n this.phoneInputInstance.setNumber(this.phoneNumber.e164Number);\r\n }\r\n }\r\n\r\n updatePhoneNumber(): void {\r\n const dialCode = '+' + this.phoneInputInstance.getSelectedCountryData().dialCode;\r\n const countryCode = this.phoneInputInstance.getSelectedCountryData().iso2;\r\n const e164Number = this.phoneInputInstance.getNumber();\r\n const number = e164Number.split(dialCode)[1];\r\n\r\n this.phoneNumber = { dialCode, countryCode, e164Number, number };\r\n\r\n // Emit changes for FormControl and ngModel\r\n this.phoneNumberChange.emit(this.phoneNumber);\r\n this.ngModelChange.emit(this.phoneNumber); // For ngModel two-way binding\r\n this.onChange(this.phoneNumber); // For reactive form support\r\n }\r\n\r\n writeValue(value: any): void {\r\n console.log(\"In Write Value:\", value);\r\n \r\n if (value && value.e164Number) {\r\n this.phoneNumber = value;\r\n setTimeout(() => {\r\n if (this.phoneInput && this.phoneInput.nativeElement) {\r\n // Set the number in intl-tel-input, which will automatically set the country\r\n // If you need to get the selected country code after setting the number\r\n const countryData = this.phoneInputInstance.getSelectedCountryData();\r\n this.phoneNumber.countryCode = countryData.iso2;\r\n this.phoneNumber.dialCode = `+${countryData.dialCode}`;\r\n this.phoneNumber.number = value.e164Number.split( this.phoneNumber.dialCode)[1];\r\n this.phoneNumber.e164Number = value.e164Number;\r\n // this.phoneInputInstance.setNumber(value.e164Number);\r\n console.log(\"Phone:\", this.phoneInput); \r\n }\r\n }, 0);\r\n }\r\n \r\n \r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n validatePhoneNumber(): boolean {\r\n if (this.phoneInputInstance) {\r\n const isValid = this.phoneInputInstance.isValidNumber() || this.phoneNumber?.number?.startsWith('555');\r\n return isValid;\r\n }\r\n return false;\r\n }\r\n}","<div class=\"phone-input-wrapper tel-input-container\">\r\n <input #phoneInput type=\"tel\" [(ngModel)]=\"phoneNumber.number\"\r\n name=\"phoneNumber\" [required]=\"true\" #phone=\"ngModel\"\r\n [ngClass]=\"{'is-invalid': !validatePhoneNumber() && phone.touched}\">\r\n\r\n <!-- Validation feedback -->\r\n <!-- <div *ngIf=\"!validatePhoneNumber() && phone.touched\" class=\"text-danger\">\r\n Invalid phone number.\r\n </div> -->\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PhoneInputComponent } from './phone-input.component';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [PhoneInputComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule\r\n ],\r\n exports: [PhoneInputComponent]\r\n})\r\nexport class PhoneInputModule { }\r\n","import { CommonModule, DatePipe } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { MatDialogModule } from \"@angular/material/dialog\";\r\nimport { ConfirmBoxComponent } from \"./confirm-box.component\";\r\nimport {AccordionModule} from 'primeng/accordion';\r\nimport { MatChipsModule } from \"@angular/material/chips\";\r\nimport { MatButtonModule } from \"@angular/material/button\";\r\nimport { MatCheckboxModule } from \"@angular/material/checkbox\";\r\nimport { InputTextareaModule } from \"primeng/inputtextarea\";\r\nimport { FormMessageDisplayModule } from \"../form-message/form-message-display.module\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatDialogModule,\r\n FormsModule,\r\n AccordionModule,\r\n MatChipsModule,\r\n MatCheckboxModule,\r\n MatButtonModule,\r\n FormMessageDisplayModule,\r\n ReactiveFormsModule,\r\n InputTextareaModule\r\n\r\n ],\r\n exports: [ConfirmBoxComponent],\r\n declarations: [\r\n ConfirmBoxComponent\r\n ],\r\n providers: [\r\n DatePipe\r\n ]\r\n})\r\nexport class ConfirmBoxModule {}","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { SharedService } from '../../shared.service';\r\n\r\n@Component({\r\n selector: 'app-payment-modes',\r\n templateUrl: './payment-modes.component.html',\r\n styleUrls: ['./payment-modes.component.css']\r\n})\r\nexport class PaymentModesComponent implements OnInit {\r\n\r\n @Input() cashPay;\r\n @Input() paymentModes;\r\n @Output() modeSelected = new EventEmitter<any>();\r\n\r\n constructor(private sharedService: SharedService) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n getImageSrc(mode) {\r\n return this.sharedService.getCDNPath() + 'assets/images/payment-modes/' + mode + '.png';\r\n }\r\n\r\n paymentModeSelected(event) {\r\n this.modeSelected.emit(event);\r\n }\r\n\r\n}\r\n","<mat-radio-group class=\"text-center mx-auto payment-mode-fw\" name=\"paymentMode\" (change)=\"paymentModeSelected($event)\">\r\n <div *ngFor=\"let modes of paymentModes\">\r\n <mat-radio-button class=\"pay-rad mt-1 ml-auto\" [value]=\"modes.mode\" >\r\n <div>\r\n <div>\r\n <img class=\"pay-icons\" [src]=\"getImageSrc(modes.mode)\" alt=\"\">\r\n </div>\r\n <div class=\"modeName\">\r\n <div *ngIf=\"modes.modeDisplayName === 'UPI'\"> \r\n <div>{{modes.modeDisplayName |uppercase }}</div>\r\n </div>\r\n <div *ngIf=\"modes.modeDisplayName === 'Credit Card'\">\r\n <div>{{modes.modeDisplayName |uppercase }}</div>\r\n </div>\r\n <div *ngIf=\"modes.modeDisplayName === 'Debit Card'\">\r\n <div> {{modes.modeDisplayName |uppercase }}</div>\r\n </div>\r\n <div *ngIf=\"modes.modeDisplayName === 'Net Banking'\">\r\n <div> {{modes.modeDisplayName |uppercase }}</div>\r\n </div>\r\n <div *ngIf=\"modes.modeDisplayName === 'Wallet'\">\r\n <div> {{modes.modeDisplayName |uppercase }} </div>\r\n </div>\r\n <div *ngIf=\"modes.mode === 'PAYLATER'\">\r\n <div> {{modes.modeDisplayName |uppercase }} </div>\r\n </div> \r\n </div>\r\n </div>\r\n </mat-radio-button> \r\n </div>\r\n <div>\r\n <mat-radio-button class=\"pay-rad mt-1 ml-auto\" [value]=\"'cash'\" *ngIf=\"cashPay\">\r\n <div class=\"clearfix\"></div>\r\n <div class=\"col-12 p-0 pay-mode \">\r\n <div class=\"d-flex\">\r\n <img class=\"pay-icons\" [src]=\"getImageSrc('PAYCASH')\" alt=\"\">\r\n </div>\r\n <div class=\"col-12 p-0 text-center\">\r\n Pay by Cash\r\n </div>\r\n </div>\r\n </mat-radio-button>\r\n </div>\r\n</mat-radio-group>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { PaymentModesComponent } from './payment-modes.component';\r\n\r\n@NgModule({\r\n declarations: [PaymentModesComponent],\r\n exports: [PaymentModesComponent],\r\n imports: [\r\n CommonModule,\r\n MatRadioModule\r\n ]\r\n})\r\nexport class PaymentModesModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PaytmService } from '../paytm.service';\r\nimport { RazorpayService } from '../razorpay.service';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [ CommonModule ],\r\n exports: [],\r\n providers: [\r\n PaytmService,\r\n RazorpayService\r\n ]\r\n})\r\nexport class PaymentsModule { }\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-request-dialog',\r\n templateUrl: './request-dialog.component.html',\r\n styleUrls: ['./request-dialog.component.css']\r\n})\r\nexport class RequestDialogComponent {\r\n mode: string;\r\n constructor(\r\n public dialogRef: MatDialogRef<RequestDialogComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n ) {\r\n console.log(data);\r\n this.mode = data.mode;\r\n }\r\n dismissModal() {\r\n this.dialogRef.close('success');\r\n }\r\n}\r\n","<h1 class=\"mat-dialog-title head\" *ngIf=\"mode==='b-cam'\">\r\n Your camera is blocked\r\n</h1>\r\n<h1 class=\"mat-dialog-title\" *ngIf=\"mode==='b-both'\">\r\n Camera and microphone are blocked\r\n</h1>\r\n<h1 class=\"mat-dialog-title\" *ngIf=\"mode==='b-mic'\">\r\n Your microphone are blocked\r\n</h1>\r\n<h1 class=\"mat-dialog-title\" *ngIf=\"mode==='sys-mic'\">\r\n No audio devices found\r\n</h1>\r\n<h1 class=\"mat-dialog-title\" *ngIf=\"mode==='sys-cam'\">\r\n No video devices found\r\n</h1>\r\n<h1 class=\"mat-dialog-title\" *ngIf=\"mode==='sys-both'\">\r\n No audio/video devices found\r\n</h1>\r\n<div mat-dialog-content class=\"text-container\">\r\n <div class=\"col-md-12 no-padding text-content\" *ngIf=\"mode==='b-both' || mode==='b-cam' || mode==='b-mic'\">\r\n <div class=\"col-md-12 mgn-bt-20 no-padding text-content-text\">\r\n Jaldee Videocall requires access to your camera/microphone so that other participants can hear/see\r\n you.\r\n\r\n To unblock,\r\n\r\n <ul>\r\n <li>\r\n Make sure you close any applications in your system that currently uses your microphone/camera.\r\n </li>\r\n <li style=\"list-style: none !important; margin-top: 10px;margin-bottom: 10px;\">Or</li>\r\n <li>\r\n Click the camera blocked icon on your browser's address bar, allow access and refresh your page.\r\n </li>\r\n <li style=\"list-style: none !important; margin-top: 10px;margin-bottom: 10px;\">Or</li>\r\n <li>\r\n Allow access to your microphone/camera in your in your App settings.\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"col-md-12 no-padding\">\r\n <a class=\"pull-right dismiss-action\" (click)=\"dismissModal()\">Dismiss</a>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 no-padding text-content\" *ngIf=\"mode==='sys-both'\">\r\n <div class=\"col-md-12 mgn-bt-20 no-padding text-content-text\">\r\n Jaldee Videocall requires access to your camera and microphone so that other participants can see and hear\r\n you, but no audio/video devices found.\r\n </div>\r\n <div class=\"col-md-12 no-padding\">\r\n <a class=\"pull-right dismiss-action\" (click)=\"dismissModal()\">Dismiss</a>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 no-padding text-content\" *ngIf=\"mode==='sys-cam'\">\r\n <div class=\"col-md-12 mgn-bt-20 no-padding text-content-text\">\r\n Jaldee Videocall requires access to your camera so that other participants can hear\r\n you, but no video devices found.\r\n </div>\r\n <div class=\"col-md-12 no-padding\">\r\n <a class=\"pull-right dismiss-action\" (click)=\"dismissModal()\">Dismiss</a>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 no-padding text-content\" *ngIf=\"mode==='sys-mic'\">\r\n <div class=\"col-md-12 mgn-bt-20 no-padding text-content-text\">\r\n Jaldee Videocall requires access to your microphone so that other participants can hear\r\n you but no audio devices found.\r\n </div>\r\n <div class=\"col-md-12 no-padding\">\r\n <a class=\"pull-right dismiss-action\" (click)=\"dismissModal()\">Dismiss</a>\r\n </div>\r\n </div>\r\n</div>","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { MatDialogModule } from \"@angular/material/dialog\";\r\nimport { RequestDialogComponent } from \"./request-dialog.component\";\r\n\r\n@NgModule({\r\n imports: [\r\n MatDialogModule,\r\n CommonModule\r\n ],\r\n declarations: [RequestDialogComponent],\r\n exports: [RequestDialogComponent]\r\n})\r\nexport class RequestDialogModule {}","import { Injectable, ElementRef, Renderer2, RendererFactory2 } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport Video from 'twilio-video';\r\n@Injectable({\r\n providedIn: 'any'\r\n})\r\nexport class TwilioService {\r\n remoteVideo: ElementRef;\r\n localVideo: ElementRef;\r\n previewContainer: ElementRef;\r\n microphone = true;\r\n video = true;\r\n preview = true;\r\n roomParticipants;\r\n participantsCount = 0;\r\n showParticipant = false;\r\n previewTrack;\r\n camDeviceCount = 0;\r\n private renderer: Renderer2;\r\n cameraMode: string;\r\n previewTracks;\r\n timerSubject = new Subject<any>();\r\n errorSubject = new Subject<any>();\r\n public static signalStrength: any;\r\n selectedVideoId: string;\r\n activeCamIndex;\r\n cam1Device: string;\r\n cam2Device: string;\r\n activeRoom;\r\n previewTracksClone;\r\n btnClicked = false;\r\n loading = false;\r\n constructor(public rendererFactory: RendererFactory2) {\r\n this.renderer = rendererFactory.createRenderer(null, null);\r\n }\r\n\r\n activateTimer(timer: any) {\r\n this.timerSubject.next(timer);\r\n }\r\n getTimer(): Observable<any> {\r\n return this.timerSubject.asObservable();\r\n }\r\n\r\n sendError(error: any) {\r\n this.errorSubject.next(error);\r\n }\r\n getError(): Observable<any> {\r\n return this.errorSubject.asObservable();\r\n }\r\n // private static getSignalStrength () {\r\n // return TwilioService.signalStrength;\r\n // }\r\n unmuteVideo() {\r\n const _this = this;\r\n _this.previewTracks.forEach(localTrack => {\r\n if(localTrack.kind === 'video') {\r\n _this.previewTracksClone.push(localTrack);\r\n _this.addPreviewTrackToDom(localTrack);\r\n }\r\n \r\n });\r\n this.video = true;\r\n }\r\n muteVideo() {\r\n const _this = this;\r\n _this.previewTracks.forEach(localTrack => {\r\n if(localTrack.kind === 'video') {\r\n _this.previewTracksClone.splice(this.previewTracksClone.indexOf(localTrack), 1);\r\n _this.removePreviewTrackToDom(localTrack);\r\n }\r\n });\r\n this.video = false;\r\n }\r\n removePreviewTrackToDom(localTrack) {\r\n const _this=this;\r\n if (_this.previewContainer) {\r\n const localElement = _this.previewContainer.nativeElement;\r\n while (localElement.firstChild) {\r\n localElement.removeChild(localElement.firstChild);\r\n }\r\n }\r\n \r\n }\r\n muteAudio() {\r\n const _this = this;\r\n _this.previewTracks.forEach(localTrack => {\r\n if(localTrack.kind === 'audio') {\r\n _this.previewTracksClone.splice(this.previewTracksClone.indexOf(localTrack), 1);\r\n }\r\n });\r\n this.microphone = false;\r\n }\r\n unmuteAudio() {\r\n const _this = this;\r\n _this.previewTracks.forEach(localTrack => {\r\n if(localTrack.kind === 'audio') {\r\n _this.previewTracksClone.push(localTrack);\r\n }\r\n });\r\n this.microphone = true;\r\n }\r\n addPreviewTrackToDom(previewTrack) {\r\n const _this = this;\r\n const element = previewTrack.attach();\r\n _this.renderer.addClass(element, 'rem-video');\r\n _this.renderer.appendChild(_this.previewContainer.nativeElement, element);\r\n }\r\n\r\n enableVideo() {\r\n const _this= this;\r\n Video.createLocalVideoTrack({\r\n deviceId: { exact: _this.selectedVideoId }\r\n }).then(function (localVideoTrack) {\r\n _this.activeRoom.localParticipant.publishTrack(localVideoTrack);\r\n console.log(_this.activeRoom.localParticipant.identity + ' added track: ' + localVideoTrack.kind);\r\n _this.attachTracks([localVideoTrack], _this.localVideo.nativeElement, _this.activeRoom);\r\n });\r\n this.video = true;\r\n }\r\n disableVideo() {\r\n const _this = this;\r\n _this.activeRoom.localParticipant.videoTracks.forEach(publication => {\r\n publication.track.stop();\r\n publication.unpublish();\r\n if (_this.localVideo) {\r\n const localElement = _this.localVideo.nativeElement;\r\n while (localElement.firstChild) {\r\n localElement.removeChild(localElement.firstChild);\r\n }\r\n }\r\n });\r\n this.video = false;\r\n }\r\n mute() {\r\n this.activeRoom.localParticipant.audioTracks.forEach(function (audioTrack) {\r\n audioTrack.track.disable();\r\n });\r\n this.microphone = false;\r\n }\r\n unmute() {\r\n this.activeRoom.localParticipant.audioTracks.forEach(function (audioTrack) {\r\n audioTrack.track.enable();\r\n });\r\n this.microphone = true;\r\n }\r\n // media?\r\n switchCamera(videoDevices) {\r\n const _this = this;\r\n this.activeCamIndex++;\r\n if (this.activeCamIndex >= videoDevices.length) {\r\n this.activeCamIndex = 0;\r\n }\r\n console.log(\"Video Devices:\", videoDevices);\r\n console.log(\"Active Cam Index:\", this.activeCamIndex);\r\n // _this.selectedVideoId =media.deviceId;\r\n _this.selectedVideoId = videoDevices[this.activeCamIndex].deviceId;\r\n \r\n // if (_this.selectedVideoId === _this.cam1Device) {\r\n // _this.selectedVideoId = _this.cam2Device;\r\n // } else {\r\n // _this.selectedVideoId = _this.cam1Device;\r\n // }\r\n const localParticipant = _this.activeRoom.localParticipant;\r\n const tracks = Array.from(localParticipant.videoTracks.values()).map(\r\n function (trackPublication) {\r\n return trackPublication['track'];\r\n }\r\n );\r\n localParticipant.unpublishTracks(tracks);\r\n console.log(localParticipant.identity + ' removed track: ' + tracks[0].kind);\r\n _this.detachTracks(tracks);\r\n _this.stopTracks(tracks);\r\n const videoid = _this.selectedVideoId;\r\n Video.createLocalVideoTrack({\r\n deviceId: { exact: videoid }\r\n }).then(function (localVideoTrack) {\r\n localParticipant.publishTrack(localVideoTrack);\r\n console.log(localParticipant.identity + ' added track: ' + localVideoTrack.kind);\r\n _this.attachTracks([localVideoTrack], _this.localVideo.nativeElement, _this.activeRoom);\r\n });\r\n }\r\n\r\n connectToRoom(accessToken, options, tracks?) {\r\n // return new Promise(function (resolve, reject) {\r\n const _this = this;\r\n console.log(\"In Connect Room\");\r\n console.log(tracks);\r\n if(tracks) {\r\n _this.previewTracks = tracks;\r\n _this.previewTracksClone = tracks.slice();\r\n }\r\n if (_this.previewTracks) {\r\n options['tracks'] = _this.previewTracks;\r\n } \r\n console.log(_this.previewTracks);\r\n Video.connect(accessToken, options).then(\r\n (room: any) => {\r\n room.localParticipant.setNetworkQualityConfiguration({\r\n local: 2,\r\n remote: 1\r\n });\r\n _this.preview = false;\r\n _this.loading= false;\r\n _this.activeRoom = room;\r\n if (options['video']) {\r\n if (!_this.localVideo.nativeElement.querySelector('video')) {\r\n console.log(\"in connect method\");\r\n _this.attachParticipantTracks(room.localParticipant, _this.localVideo.nativeElement, room);\r\n }\r\n }\r\n this.btnClicked = false;\r\n _this.roomJoined(room);\r\n }, (error) => {\r\n // reject(error);\r\n }\r\n );\r\n // });\r\n }\r\n networkQualityChanged(networkQualityLevel, networkQualityStats) {\r\n TwilioService.signalStrength = networkQualityLevel;\r\n console.log({\r\n 1: '▃',\r\n 2: '▃▄',\r\n 3: '▃▄▅',\r\n 4: '▃▄▅▆',\r\n 5: '▃▄▅▆▇'\r\n }[networkQualityLevel] || '');\r\n if (networkQualityStats) {\r\n // Print in console the networkQualityStats, which is non-null only if Network Quality\r\n // verbosity is 2 (moderate) or greater\r\n console.log('Network Quality statistics:', networkQualityStats);\r\n \r\n }\r\n }\r\n // Attach the Tracks to the DOM.\r\n attachTracks(tracks, container, room) {\r\n const _this = this;\r\n console.log(\"attachTracks\");\r\n tracks.forEach(function (track) {\r\n if (track) {\r\n console.log(track);\r\n const element = track.attach();\r\n _this.renderer.data['id'] = track.sid;\r\n _this.renderer.addClass(element, 'rem-video');\r\n _this.renderer.appendChild(container, element);\r\n }\r\n });\r\n }\r\n\r\n\r\n // Attach the Participant's Tracks to the DOM.\r\n attachParticipantTracks(participant, container, room) {\r\n const _this = this;\r\n var tracks = Array.from(participant.tracks.values()).map(function (trackPublication) {\r\n return trackPublication['track'];\r\n });\r\n console.log(\"attachParticipantTracks\");\r\n _this.attachTracks(tracks, container, room);\r\n }\r\n\r\n // Detach the Tracks from the DOM.\r\n detachTracks(tracks) {\r\n console.log(\"detachTracks\");\r\n tracks.forEach(function (track) {\r\n if (track) {\r\n track.detach().forEach(function (detachedElement) {\r\n detachedElement.remove();\r\n });\r\n }\r\n });\r\n }\r\n\r\n // Detach the Participant's Tracks from the DOM.\r\n detachParticipantTracks(participant, room, _this) {\r\n console.log(\"detachParticipantTracks\");\r\n var tracks = Array.from(participant.tracks.values()).map(function (trackPublication) {\r\n return trackPublication['track'];\r\n });\r\n _this.detachTracks(tracks, room);\r\n }\r\n\r\n // \r\n stopTracks(tracks) {\r\n console.log(\"stopTracks\");\r\n tracks.forEach(function (track) {\r\n if (track) { track.stop(); }\r\n })\r\n }\r\n // Successfully connected!\r\n roomJoined(room) {\r\n const _this = this;\r\n // Attach the Tracks of the Room's Participants.\r\n if (!_this.video) {\r\n _this.disableVideo();\r\n }\r\n if (!_this.microphone) {\r\n _this.mute();\r\n }\r\n room.localParticipant.on('networkQualityLevelChanged', this.networkQualityChanged);\r\n room.participants.forEach((participant) => {\r\n console.log(\"Participant:\", participant);\r\n console.log(\"Already in Room: '\" + participant.identity + \"'\");\r\n _this.attachParticipantTracks(participant, _this.remoteVideo.nativeElement, room);\r\n _this.participantsCount = room.participants.size;\r\n console.log('first:participantsCount:' + _this.participantsCount);\r\n });\r\n\r\n // When a Participant joins the Room, log the event.\r\n room.on('participantConnected', function (participant) {\r\n console.log(\"Participant:\", participant);\r\n console.log(\"Joining: '\" + participant.identity + \"'\");\r\n _this.participantsCount = room.participants.size;\r\n console.log(\"connected - Participants:\" + room.participants.size);\r\n if (_this.participantsCount === 0) {\r\n _this.activateTimer(true);\r\n } else {\r\n _this.activateTimer(false);\r\n }\r\n });\r\n\r\n // When a Participant adds a Track, attach it to the DOM.\r\n room.on('trackSubscribed', function (track, trackPublication, participant) {\r\n console.log(\"Local Participant:\", room.localParticipant);\r\n console.log(\"Remote Participant:\", room.remoteParticipant);\r\n console.log(participant.identity + ' added track: ' + track.kind);\r\n _this.participantsCount = room.participants.size;\r\n console.log(\"Participants:\" +_this.participantsCount);\r\n // var previewContainer = document.getElementById('remoteVideo');\r\n _this.attachTracks([track], _this.remoteVideo.nativeElement, room);\r\n console.log('tracksubscribed');\r\n if(track.kind === 'video') {\r\n _this.removeRemoteParticipantDetails(_this.remoteVideo.nativeElement);\r\n }\r\n if (_this.participantsCount === 0) {\r\n _this.activateTimer(true);\r\n } else {\r\n _this.activateTimer(false);\r\n }\r\n });\r\n\r\n // When a Participant removes a Track, detach it from the DOM.\r\n room.on('trackUnsubscribed', function (track, trackPublication, participant) {\r\n console.log(participant.identity + ' removed track: ' + track.kind);\r\n _this.detachTracks([track]);\r\n console.log('trackUnsubscribed');\r\n if(track.kind === 'video') {\r\n _this.addRemoteParticipantDetails(_this.remoteVideo.nativeElement, participant);\r\n }\r\n });\r\n room.on('participantReconnecting', remoteParticipant => {\r\n console.log(remoteParticipant.state, 'reconnecting');\r\n console.log(`${remoteParticipant.identity} is reconnecting the signaling connection to the Room!`);\r\n /* Update the RemoteParticipant UI here */\r\n });\r\n room.on('participantReconnected', remoteParticipant => {\r\n console.log(remoteParticipant.state, 'connected');\r\n console.log(`${remoteParticipant.identity} has reconnected the signaling connection to the Room!`);\r\n /* Update the RemoteParticipant UI here */\r\n });\r\n // When a Participant leaves the Room, detach its Tracks.\r\n room.on('participantDisconnected', function (participant) {\r\n console.log(\"Participant '\" + participant.identity + \"' left the room\");\r\n _this.detachParticipantTracks(participant, room, _this);\r\n _this.participantsCount = room.participants.size;\r\n console.log(\"disConnected - Participants Size:\" + room.participants.size);\r\n _this.removeRemoteParticipantDetails(_this.remoteVideo.nativeElement);\r\n _this.activateTimer(true);\r\n });\r\n \r\n room.on('reconnecting', error => {\r\n console.log(room.state, 'reconnecting');\r\n _this.sendError(error);\r\n _this.participantsCount = room.participants.size;\r\n console.log(\"connected - Participants:\" + room.participants.size);\r\n if (_this.participantsCount === 0) {\r\n _this.activateTimer(true);\r\n } else {\r\n _this.activateTimer(false);\r\n }\r\n /* Update the application UI here */\r\n });\r\n room.on('reconnected', () => {\r\n console.log(room.state, 'connected');\r\n console.log('Reconnected your signaling and media connections!');\r\n _this.participantsCount = room.participants.size;\r\n console.log(\"connected - Participants:\" + room.participants.size);\r\n if (_this.participantsCount === 0) {\r\n _this.activateTimer(true);\r\n } else {\r\n _this.activateTimer(false);\r\n }\r\n /* Update the application UI here */\r\n });\r\n \r\n // Once the LocalParticipant leaves the room, detach the Tracks\r\n // of all Participants, including that of the LocalParticipant.\r\n room.on('disconnected', function (room, error) {\r\n console.log('Left');\r\n console.log(room.state, 'disconnected');\r\n console.log(\"Error:\", error);\r\n _this.sendError(error); \r\n room.localParticipant.tracks.forEach(publication => {\r\n publication.track.stop();\r\n publication.unpublish();\r\n const attachedElements = publication.track.detach();\r\n attachedElements.forEach(element => element.remove());\r\n });\r\n if (_this.localVideo) {\r\n const localElement = _this.localVideo.nativeElement;\r\n while (localElement.firstChild) {\r\n localElement.removeChild(localElement.firstChild);\r\n }\r\n }\r\n if (_this.remoteVideo) {\r\n const remoteElement = _this.remoteVideo.nativeElement;\r\n while (remoteElement.firstChild) {\r\n remoteElement.removeChild(remoteElement.firstChild);\r\n }\r\n }\r\n _this.participantsCount = room.participants.size;\r\n _this.disconnect();\r\n });\r\n }\r\n removeRemoteParticipantDetails(container) {\r\n const div = document.getElementById('remoteImg');\r\n if(div) {\r\n this.renderer.removeChild(container, div);\r\n }\r\n }\r\n addRemoteParticipantDetails(container, participant) {\r\n const div = document.createElement('div');\r\n div.setAttribute('id','remoteImg');\r\n const div1 = document.createElement('div');\r\n div1.setAttribute('class', 'avatar-img');\r\n div.appendChild(div1);\r\n \r\n const div2 = document.createElement('div');\r\n div2.setAttribute('class', 'avatar-text');\r\n\r\n const contentDiv = document.createTextNode(participant.identity);\r\n div2.appendChild(contentDiv);\r\n div.appendChild(div2);\r\n // const image = document.createElement('image');\r\n // image.setAttribute('class', '');\r\n // image.setAttribute('alt', participant.identity);\r\n // div1.appendChild(image);\r\n \r\n this.renderer.appendChild(container, div);\r\n }\r\n disconnect() {\r\n const _this = this;\r\n if (_this.previewTracks) {\r\n _this.previewTracks.forEach(localTrack => {\r\n localTrack.stop();\r\n });\r\n }\r\n _this.previewTracks = null;\r\n if (_this.activeRoom && _this.activeRoom.localParticipant && _this.activeRoom.localParticipant.localTracks) {\r\n _this.activeRoom.localParticipant.localTracks.forEach(localTrack => {\r\n localTrack.stop();\r\n });\r\n }\r\n if (_this.activeRoom && _this.activeRoom !== null) {\r\n _this.activeRoom.disconnect();\r\n _this.activeRoom = null;\r\n _this.cam1Device = null;\r\n _this.cam2Device = null;\r\n _this.selectedVideoId = null; \r\n }\r\n _this.video = true;\r\n _this.microphone = true;\r\n if (_this.remoteVideo) {\r\n _this.removeRemoteParticipantDetails(_this.remoteVideo.nativeElement);\r\n } \r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { ServiceMeta } from \"./service-meta\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MediaService {\r\n\r\n constructor(\r\n private serviceMeta: ServiceMeta\r\n ) { }\r\n\r\n getMediaDevices() {\r\n return new Promise(function (resolve, reject) {\r\n let media: any = {};\r\n navigator.mediaDevices.enumerateDevices().then(devices => {\r\n let videoDevices: any = [];\r\n let audioDevices: any = [];\r\n let count = devices.length;\r\n console.log(count);\r\n if (count > 0) {\r\n console.log(devices);\r\n devices.forEach(device => {\r\n if (device.kind === 'videoinput') {\r\n videoDevices.push(device);\r\n } else if (device.kind === 'audioinput') {\r\n audioDevices.push(device);\r\n }\r\n count--;\r\n if (count === 0) {\r\n media['videoDevices'] = videoDevices;\r\n media['audioDevices'] = audioDevices;\r\n resolve(media);\r\n }\r\n });\r\n } else {\r\n reject(media);\r\n }\r\n });\r\n })\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EnvironmentService {\r\n\r\n constructor() { }\r\n\r\n private environment: any = {};\r\n\r\n // Set environment variables dynamically\r\n setEnvironment(environment: any): void {\r\n this.environment = environment;\r\n}\r\n\r\n // Get environment variable by key\r\n getEnvironment(key: string): any {\r\n return this.environment[key];\r\n }\r\n}\r\n","import { ENVIRONMENT_INITIALIZER, inject, Injector, Provider, runInInjectionContext } from \"@angular/core\";\r\nimport { Route } from \"@angular/router\";\r\n\r\nexport function setupInjectionContextForLoadChildren(route: Route): Route {\r\n let injector: Injector | undefined = undefined;\r\n const injectorInitializerProvider: Provider = {\r\n provide: ENVIRONMENT_INITIALIZER,\r\n multi: true,\r\n useFactory:\r\n (instance = inject(Injector)) =>\r\n () => {\r\n injector = instance;\r\n },\r\n };\r\n \r\n const transformRoute = (child: Route) => {\r\n if (!child.loadChildren) return child;\r\n const loadChildren = child.loadChildren;\r\n child.loadChildren = (...args) => {\r\n if (!injector) throw new Error('Missing injector');\r\n return runInInjectionContext(injector, () => loadChildren(...args));\r\n };\r\n return child;\r\n };\r\n \r\n return {\r\n path: '',\r\n providers: [injectorInitializerProvider],\r\n children: [transformRoute(route)],\r\n };\r\n }","/*\r\n * Public API Surface of jconsumer-shared\r\n */\r\nexport * from './lib/utility/remote-loader';\r\nexport * from './lib/service-meta';\r\nexport * from './lib/subscription.service';\r\nexport * from './lib/toast.service';\r\nexport * from './lib/shared.service';\r\nexport * from './lib/theme.service';\r\nexport * from './lib/i8n.module';\r\nexport * from './lib/order.service';\r\nexport * from './lib/account-service';\r\nexport * from './lib/shared-account.guard';\r\nexport * from './lib/shared-account.resolver';\r\nexport * from './lib/auth-service';\r\nexport * from './lib/file-service';\r\nexport * from './lib/common.service';\r\nexport * from './lib/storage.service';\r\nexport * from './lib/consumer-service';\r\nexport * from './lib/booking-service';\r\nexport * from './lib/group-storage.service';\r\nexport * from './lib/local-storage.service';\r\nexport * from './lib/error-message.service';\r\nexport * from './lib/error-message.module';\r\nexport * from './lib/session-storage.service';\r\nexport * from './lib/project-constants';\r\nexport * from './lib/word-processor.service';\r\nexport * from './lib/currency-service';\r\nexport * from './lib/project-messages';\r\nexport * from './lib/razorpay.service';\r\nexport * from './lib/paytm.service';\r\nexport * from './lib/pipes/safe-html/safehtml.pipe';\r\nexport * from './lib/pipes/safe-html/safehtml.module';\r\nexport * from './lib/pipes/limit-to/limitTo.pipe';\r\nexport * from './lib/pipes/limit-to/limitTo.module';\r\nexport * from './lib/pipes/filter/filter.pipe';\r\nexport * from './lib/pipes/filter/filter.module';\r\nexport * from './lib/pipes/capitalize/capitalize.pipe';\r\nexport * from './lib/pipes/capitalize/capitalize.module';\r\nexport * from './lib/pipes/nl2br/nl2br.pipe';\r\nexport * from './lib/pipes/nl2br/nl2br.module';\r\nexport * from './lib/pipes/autolink/autolink.pipe';\r\nexport * from './lib/pipes/autolink/autolink.module';\r\nexport * from './lib/pipes/date-format/date-format.module';\r\nexport * from './lib/pipes/date-format/date-format.pipe';\r\nexport * from './lib/pipes/short-filename/short-file-name.module';\r\nexport * from './lib/pipes/short-filename/short-file-name.pipe';\r\nexport * from './lib/form-message/form-message-display.service';\r\nexport * from './lib/form-message/form-message-display.module';\r\nexport * from './lib/calendar/date-time/datetime-processor.service';\r\nexport * from './lib/timezone-converter';\r\nexport * from './lib/form-message/form-success-display/form-success-display.component';\r\nexport * from './lib/form-message/field-error-display/field-error-display.component';\r\nexport * from './lib/skeleton/skeleton-loading.component';\r\nexport * from './lib/skeleton/skeleton-loading.module';\r\nexport * from './lib/spinner/loading-spinner.component';\r\nexport * from './lib/spinner/loading-spinner.module';\r\nexport * from './lib/questionaire/questionaire-service';\r\nexport * from './lib/questionaire/edit/questionnaire.component';\r\nexport * from './lib/questionaire/edit/questionnaire.module';\r\nexport * from './lib/showuploadfile/showuploadfile.component';\r\nexport * from './lib/showuploadfile/showuploadfile.module';\r\nexport * from './lib/phone-input/phone-input.component';\r\nexport * from './lib/phone-input/phone-input.module';\r\nexport * from './lib/confirm/confirm-box.component';\r\nexport * from './lib/confirm/confirm-box.module';\r\nexport * from './lib/payment/modes/payment-modes.component';\r\nexport * from './lib/payment/modes/payment-modes.module';\r\nexport * from './lib/payment/payment.module';\r\nexport * from './lib/request-dialog/request-dialog.component';\r\nexport * from './lib/request-dialog/request-dialog.module';\r\nexport * from './lib/twilio-service';\r\nexport * from './lib/media-service';\r\nexport * from './lib/environment.service';\r\nexport * from './lib/injector-resolver';\r\nexport * from './lib/j-gallery/j-gallery.service';\r\nexport * from './lib/j-gallery/j-gallery.module';\r\nexport * from './lib/j-gallery/j-gallery.component';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i1.ServiceMeta","i2.SharedService","i2.ServiceMeta","i3.SharedService","i1.AccountService","i1.SharedAccountResolver","i1.SessionStorageService","i2.LocalStorageService","i3.SessionStorageService","i4.GroupStorageService","i1.SharedService","i3.FormMessageDisplayService","i4","i6","i10.FieldErrorDisplayComponent","i11.FormSuccessDisplayComponent","i2","i3","i2.WordProcessor","i3.LocalStorageService","i4.DateTimeProcessor","i5","i6.FileService","i7.CommonService","i8.QuestionaireService","i9.ErrorMessagingService","i10.ToastService","i11.SharedService","i12.JGalleryService","i14","i15.LoadingSpinnerComponent","i20.CapitalizeFirstPipe","i21.SafeHtmlPipe"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"jconsumer-shared.mjs","sources":["../../../projects/jconsumer-shared/src/lib/utility/remote-loader.ts","../../../projects/jconsumer-shared/src/lib/service-meta.ts","../../../projects/jconsumer-shared/src/lib/subscription.service.ts","../../../projects/jconsumer-shared/src/lib/toast.service.ts","../../../projects/jconsumer-shared/src/lib/shared.service.ts","../../../projects/jconsumer-shared/src/lib/theme.service.ts","../../../projects/jconsumer-shared/src/lib/i8n.module.ts","../../../projects/jconsumer-shared/src/lib/order.service.ts","../../../projects/jconsumer-shared/src/lib/account-service.ts","../../../projects/jconsumer-shared/src/lib/shared-account.resolver.ts","../../../projects/jconsumer-shared/src/lib/shared-account.guard.ts","../../../projects/jconsumer-shared/src/lib/local-storage.service.ts","../../../projects/jconsumer-shared/src/lib/session-storage.service.ts","../../../projects/jconsumer-shared/src/lib/group-storage.service.ts","../../../projects/jconsumer-shared/src/lib/auth-service.ts","../../../projects/jconsumer-shared/src/lib/file-service.ts","../../../projects/jconsumer-shared/src/lib/common.service.ts","../../../projects/jconsumer-shared/src/lib/storage.service.ts","../../../projects/jconsumer-shared/src/lib/consumer-service.ts","../../../projects/jconsumer-shared/src/lib/project-messages.ts","../../../projects/jconsumer-shared/src/lib/project-constants.ts","../../../projects/jconsumer-shared/src/lib/form-message/form-message-display.service.ts","../../../projects/jconsumer-shared/src/lib/form-message/field-error-display/field-error-display.component.ts","../../../projects/jconsumer-shared/src/lib/form-message/field-error-display/field-error-display.component.html","../../../projects/jconsumer-shared/src/lib/form-message/form-success-display/form-success-display.component.ts","../../../projects/jconsumer-shared/src/lib/form-message/form-success-display/form-success-display.component.html","../../../projects/jconsumer-shared/src/lib/confirm/confirm-box.component.ts","../../../projects/jconsumer-shared/src/lib/confirm/confirm-box.component.html","../../../projects/jconsumer-shared/src/lib/booking-service.ts","../../../projects/jconsumer-shared/src/lib/error-message.service.ts","../../../projects/jconsumer-shared/src/lib/error-message.module.ts","../../../projects/jconsumer-shared/src/lib/word-processor.service.ts","../../../projects/jconsumer-shared/src/lib/currency-service.ts","../../../projects/jconsumer-shared/src/lib/razorpay.service.ts","../../../projects/jconsumer-shared/src/lib/paytm.service.ts","../../../projects/jconsumer-shared/src/lib/pipes/safe-html/safehtml.pipe.ts","../../../projects/jconsumer-shared/src/lib/pipes/safe-html/safehtml.module.ts","../../../projects/jconsumer-shared/src/lib/pipes/limit-to/limitTo.pipe.ts","../../../projects/jconsumer-shared/src/lib/pipes/limit-to/limitTo.module.ts","../../../projects/jconsumer-shared/src/lib/pipes/filter/filter.pipe.ts","../../../projects/jconsumer-shared/src/lib/pipes/filter/filter.module.ts","../../../projects/jconsumer-shared/src/lib/pipes/capitalize/capitalize.pipe.ts","../../../projects/jconsumer-shared/src/lib/pipes/capitalize/capitalize.module.ts","../../../projects/jconsumer-shared/src/lib/pipes/autolink/autolink.pipe.ts","../../../projects/jconsumer-shared/src/lib/pipes/autolink/autolink.module.ts","../../../projects/jconsumer-shared/src/lib/pipes/date-format/date-format.pipe.ts","../../../projects/jconsumer-shared/src/lib/pipes/date-format/date-format.module.ts","../../../projects/jconsumer-shared/src/lib/pipes/short-filename/short-file-name.pipe.ts","../../../projects/jconsumer-shared/src/lib/pipes/short-filename/short-file-name.module.ts","../../../projects/jconsumer-shared/src/lib/form-message/form-message-display.module.ts","../../../projects/jconsumer-shared/src/lib/calendar/date-time/datetime-processor.service.ts","../../../projects/jconsumer-shared/src/lib/timezone-converter.ts","../../../projects/jconsumer-shared/src/lib/skeleton/skeleton-loading.component.ts","../../../projects/jconsumer-shared/src/lib/skeleton/skeleton-loading.component.html","../../../projects/jconsumer-shared/src/lib/skeleton/skeleton-loading.module.ts","../../../projects/jconsumer-shared/src/lib/spinner/loading-spinner.component.ts","../../../projects/jconsumer-shared/src/lib/spinner/loading-spinner.component.html","../../../projects/jconsumer-shared/src/lib/spinner/loading-spinner.module.ts","../../../projects/jconsumer-shared/src/lib/questionaire/questionaire-service.ts","../../../projects/jconsumer-shared/src/lib/showuploadfile/showuploadfile.component.ts","../../../projects/jconsumer-shared/src/lib/showuploadfile/showuploadfile.component.html","../../../projects/jconsumer-shared/src/lib/j-gallery/j-gallery.component.ts","../../../projects/jconsumer-shared/src/lib/j-gallery/j-gallery.component.html","../../../projects/jconsumer-shared/src/lib/j-gallery/j-gallery.service.ts","../../../projects/jconsumer-shared/src/lib/questionaire/edit/questionnaire.component.ts","../../../projects/jconsumer-shared/src/lib/questionaire/edit/questionnaire.component.html","../../../projects/jconsumer-shared/src/lib/j-gallery/j-gallery.module.ts","../../../projects/jconsumer-shared/src/lib/questionaire/edit/questionnaire.module.ts","../../../projects/jconsumer-shared/src/lib/showuploadfile/showuploadfile.module.ts","../../../projects/jconsumer-shared/src/lib/phone-input/phone-input.component.ts","../../../projects/jconsumer-shared/src/lib/phone-input/phone-input.component.html","../../../projects/jconsumer-shared/src/lib/phone-input/phone-input.module.ts","../../../projects/jconsumer-shared/src/lib/confirm/confirm-box.module.ts","../../../projects/jconsumer-shared/src/lib/payment/modes/payment-modes.component.ts","../../../projects/jconsumer-shared/src/lib/payment/modes/payment-modes.component.html","../../../projects/jconsumer-shared/src/lib/payment/modes/payment-modes.module.ts","../../../projects/jconsumer-shared/src/lib/payment/payment.module.ts","../../../projects/jconsumer-shared/src/lib/request-dialog/request-dialog.component.ts","../../../projects/jconsumer-shared/src/lib/request-dialog/request-dialog.component.html","../../../projects/jconsumer-shared/src/lib/request-dialog/request-dialog.module.ts","../../../projects/jconsumer-shared/src/lib/twilio-service.ts","../../../projects/jconsumer-shared/src/lib/media-service.ts","../../../projects/jconsumer-shared/src/lib/environment.service.ts","../../../projects/jconsumer-shared/src/lib/injector-resolver.ts","../../../projects/jconsumer-shared/src/public-api.ts","../../../projects/jconsumer-shared/src/jconsumer-shared.ts"],"sourcesContent":["import { loadRemoteModule } from \"@angular-architects/native-federation\";\r\n\r\nconst remoteEntryCache: Record<string, Promise<any>> = {};\r\n\r\n/**\r\n * Load remote module with caching to avoid redundant network requests\r\n */\r\nexport function loadRemoteModuleWithCache(options: {\r\n remoteEntry: string;\r\n exposedModule: string;\r\n}): Promise<any> {\r\n const { remoteEntry, exposedModule } = options;\r\n\r\n if (!remoteEntryCache[remoteEntry]) {\r\n remoteEntryCache[remoteEntry] = loadRemoteModule({\r\n remoteEntry,\r\n exposedModule,\r\n });\r\n }\r\n\r\n return remoteEntryCache[remoteEntry];\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class ServiceMeta {\r\n constructor(private http: HttpClient) { }\r\n\r\n getJSON(path: any): Observable<any> {\r\n return this.http.get(path);\r\n }\r\n\r\n httpGetArrayBuffer(url: any) {\r\n return this.http.get(url, { responseType: 'arraybuffer' });\r\n }\r\n\r\n httpGet(url: any, header?: any, params?: any) {\r\n const options: any = {}; // Create a request option\r\n if (header) {\r\n const httpHeads = new HttpHeaders(header);\r\n options.headers = httpHeads;\r\n }\r\n\r\n if (params) {\r\n let httpParams = new HttpParams();\r\n Object.keys(params).forEach(function (key) {\r\n httpParams = httpParams.append(key, params[key]);\r\n });\r\n options.params = httpParams;\r\n options.showLoader = true;\r\n }\r\n return this.http.get(url, options);\r\n }\r\n httpGetText(url: any, header?: any, params?: any) {\r\n const options: any = {}; // Create a request option\r\n const httpHeads = new HttpHeaders({\r\n 'Accept': 'text/html, application/xhtml+xml, */*',\r\n 'Content-Type': 'application/x-www-form-urlencoded'\r\n });\r\n options.headers = httpHeads;\r\n options.responseType = 'Text';\r\n if (params) {\r\n let httpParams = new HttpParams();\r\n Object.keys(params).forEach(function (key) {\r\n httpParams = httpParams.append(key, params[key]);\r\n\r\n });\r\n options.params = httpParams;\r\n options.showLoader = true;\r\n }\r\n return this.http.get(url, options);\r\n }\r\n httpPost(url: any, body?: any, header?: any, params?: any) {\r\n const options: any = {}; // Create a request option\r\n if (header) {\r\n const httpHeads = new HttpHeaders(header);\r\n options.headers = httpHeads;\r\n }\r\n if (params) {\r\n let httpParams = new HttpParams();\r\n Object.keys(params).forEach(function (key) {\r\n httpParams = httpParams.append(key, params[key]);\r\n });\r\n options.params = httpParams;\r\n }\r\n return this.http.post(url, body, options); // ...using post request\r\n }\r\n\r\n httpPatch(url: any, body?: any, header?: any, params?: any) {\r\n const options: any = {}; // Create a request option\r\n if (header) {\r\n const httpHeads = new HttpHeaders(header);\r\n options.headers = httpHeads;\r\n }\r\n if (params) {\r\n let httpParams = new HttpParams();\r\n Object.keys(params).forEach(function (key) {\r\n httpParams = httpParams.append(key, params[key]);\r\n });\r\n options.params = httpParams;\r\n }\r\n return this.http.patch(url, body, options); // ...using patch request\r\n }\r\n\r\n httpPut(url: any, body?: any, header?: any, params?: any) {\r\n const options: any = {}; // Create a request option\r\n if (header) {\r\n const httpHeads = new HttpHeaders(header);\r\n options.headers = httpHeads;\r\n }\r\n if (params) {\r\n let httpParams = new HttpParams();\r\n Object.keys(params).forEach(function (key) {\r\n httpParams = httpParams.append(key, params[key]);\r\n });\r\n options.params = httpParams;\r\n }\r\n return this.http.put(url, body, options); // ...using put request\r\n }\r\n\r\n httpDelete(url: any, body?: any, header?: any, params?: any) {\r\n const options: any = {}; // Create a request option\r\n if (header) {\r\n const httpHeads = new HttpHeaders(header);\r\n options.headers = httpHeads;\r\n }\r\n if (params) {\r\n let httpParams = new HttpParams();\r\n Object.keys(params).forEach(function (key) {\r\n httpParams = httpParams.append(key, params[key]);\r\n });\r\n options.params = httpParams;\r\n }\r\n if (body) {\r\n options.body = body;\r\n }\r\n return this.http.delete(url, options);\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable, Subject } from \"rxjs\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class SubscriptionService {\r\n\r\n private subject = new Subject<any>();\r\n\r\n sendMessage(message: any) {\r\n this.subject.next(message);\r\n }\r\n clearMessage() {\r\n this.subject.next(null);\r\n }\r\n getMessage(): Observable<any> {\r\n return this.subject.asObservable();\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { MessageService } from 'primeng/api';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ToastService {\r\n\r\n constructor(\r\n private messageService: MessageService\r\n ) { }\r\n // Types : success,info,warn,error\r\n showToast(type: any, heading: any, content: any) {\r\n this.messageService.add({ severity: type, summary: heading, detail: content });\r\n }\r\n\r\n showSuccess(message: any) {\r\n this.messageService.add({ severity: 'success', detail: message });\r\n }\r\n\r\n showInfo(message: any) {\r\n this.messageService.add({ severity: 'info', detail: message });\r\n }\r\n\r\n showWarn(message: any) {\r\n this.messageService.add({ severity: 'warn', detail: message });\r\n }\r\n\r\n showError(message: any) {\r\n this.messageService.add({ severity: 'error', detail: message });\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SharedService {\r\n \r\n environment: any = {\r\n i8nPath: null,\r\n uiPath: null\r\n };\r\n accountID: string = '';\r\n customID: string = '';\r\n templateJSON: any;\r\n templateID: string = '';\r\n uniqueID: string = '';\r\n apiEndPoint: string | undefined;\r\n S3EndPoint: string | undefined;\r\n SAPath: string | undefined;\r\n CDNPath: string;\r\n routeID: string = '';\r\n dateFormat: string = 'EEE, MMM dd, y';\r\n theme: string = '';\r\n accountInfo: any;\r\n accountConfig: any;\r\n accountCache$: any = null;\r\n templateCache$: any= null;\r\n templateLoaded: boolean;\r\n\r\n constructor() { }\r\n\r\n setUniqueID(uniqueId: string) {\r\n this.uniqueID = uniqueId;\r\n }\r\n\r\n getUniqueID() {\r\n return this.uniqueID;\r\n }\r\n\r\n setCDNPath(path: string) {\r\n this.CDNPath = path;\r\n }\r\n\r\n getCDNPath() {\r\n return this.CDNPath;\r\n }\r\n\r\n getUIPath() {\r\n return this.environment['uiPath'];\r\n }\r\n\r\n setUIPath(path: any) {\r\n this.environment['uiPath'] = path;\r\n }\r\n\r\n isTemplateLoaded() {\r\n return this.templateLoaded;\r\n }\r\n\r\n setTemplateCache(templateCache) {\r\n this.templateCache$ = templateCache;\r\n this.templateLoaded = true;\r\n }\r\n\r\n getTemplateCache() {\r\n return this.templateCache$;\r\n }\r\n\r\n clearTemplateCache() {\r\n this.templateCache$ = null;\r\n }\r\n\r\n setAccountCache(accountCache) {\r\n this.accountCache$ = accountCache;\r\n }\r\n\r\n getAccountCache() {\r\n return this.accountCache$;\r\n }\r\n\r\n clearAccountCache() {\r\n this.accountCache$ = null;\r\n }\r\n\r\n getI8nPath() {\r\n return this.environment['i8nPath'];\r\n }\r\n\r\n setI8nPath(path: any) {\r\n this.environment['i8nPath'] = path;\r\n }\r\n\r\n setTemplateID(templateID: string) {\r\n this.templateID = templateID;\r\n localStorage.setItem('_tid', templateID);\r\n }\r\n\r\n getTemplateID() {\r\n return this.templateID;\r\n }\r\n\r\n getDateFormat() {\r\n return this.dateFormat;\r\n }\r\n\r\n setDateFormat(dateFormat: string) {\r\n this.dateFormat = dateFormat;\r\n }\r\n\r\n setTemplateJSON(templateJSON: any) {\r\n this.templateJSON = templateJSON;\r\n }\r\n\r\n getAccountID() {\r\n let accountProfile = this.getJson(this.accountInfo['businessProfile']);\r\n return accountProfile.id;\r\n }\r\n\r\n getCustomID() {\r\n let accountProfile = this.getJson(this.accountInfo['businessProfile']);\r\n return accountProfile['customId'] ? accountProfile['customId'] : accountProfile['accEncUid'];\r\n }\r\n\r\n getTemplateJSON() {\r\n return this.templateJSON;\r\n }\r\n\r\n getConfigPath () {\r\n return this.S3EndPoint;\r\n }\r\n\r\n setSAPath(SAPath: string) {\r\n this.SAPath = SAPath;\r\n }\r\n\r\n getSAPath() {\r\n return this.SAPath;\r\n }\r\n\r\n setConfigPath(s3EndPoint: string) {\r\n this.S3EndPoint = s3EndPoint;\r\n }\r\n\r\n setAPIEndPoint(apiEndPoint: string) {\r\n this.apiEndPoint = apiEndPoint;\r\n }\r\n\r\n getAPIEndPoint() {\r\n return this.apiEndPoint;\r\n }\r\n\r\n setRouteID(routeID: string) {\r\n this.routeID = routeID;\r\n }\r\n\r\n getRouteID() {\r\n return this.routeID;\r\n }\r\n\r\n setAccountInfo(accountInfo) {\r\n this.accountInfo = accountInfo;\r\n }\r\n\r\n getAccountInfo() {\r\n return this.accountInfo;\r\n }\r\n \r\n setAccountConfig(config) {\r\n this.accountConfig = config;\r\n }\r\n\r\n getAccountConfig() {\r\n return this.accountConfig;\r\n }\r\n\r\n /**\r\n * \r\n * @param jsonStr_Obj \r\n */\r\n getJson(jsonStr_Obj: any) {\r\n if (jsonStr_Obj) {\r\n if (typeof jsonStr_Obj === 'object') {\r\n return jsonStr_Obj;\r\n } else {\r\n return JSON.parse(jsonStr_Obj);\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n getTerminologies() {\r\n return this.getJson(this.accountInfo['terminologies']);\r\n }\r\n\r\n callMaintanance() {\r\n const promise = new Promise<void>((resolve) => {\r\n resolve();\r\n });\r\n return promise;\r\n }\r\n\r\n}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport { Inject, Injectable, Renderer2, RendererFactory2 } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ThemeService {\r\n private renderer: Renderer2;\r\n private themeLinkElement: HTMLLinkElement | null = null;\r\n\r\n constructor(\r\n rendererFactory: RendererFactory2,\r\n @Inject(DOCUMENT) private document: Document // Inject DOCUMENT\r\n ) {\r\n this.renderer = rendererFactory.createRenderer(null, null);\r\n }\r\n\r\n loadTheme(themeBasePath: string, themeName: string): void {\r\n // Construct the full CDN path\r\n const themePath = `${themeBasePath}${themeName}.css`;\r\n\r\n // Remove existing theme if it’s set\r\n if (this.themeLinkElement) {\r\n this.renderer.removeChild(this.document.head, this.themeLinkElement);\r\n this.themeLinkElement = null; // Reset reference\r\n }\r\n\r\n // Create a new link element for the theme\r\n this.themeLinkElement = this.renderer.createElement('link') as HTMLLinkElement;\r\n this.renderer.setAttribute(this.themeLinkElement, 'rel', 'stylesheet');\r\n this.renderer.setAttribute(this.themeLinkElement, 'href', themePath);\r\n\r\n // Handle successful load\r\n this.themeLinkElement.onload = () => {\r\n console.log(`Theme loaded: ${themePath}`);\r\n this.renderer.addClass(this.document.body, themeName); // Apply theme class to body\r\n };\r\n\r\n // Handle load failure\r\n this.themeLinkElement.onerror = () => {\r\n console.error(`Failed to load theme: ${themePath}`);\r\n // Optionally load a fallback theme\r\n };\r\n\r\n // Append the new theme to the document head\r\n this.renderer.appendChild(this.document.head, this.themeLinkElement);\r\n }\r\n}","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\r\nimport { TranslateLoader, TranslateModule } from '@ngx-translate/core';\r\nimport { SharedService } from './shared.service';\r\n\r\nexport function HttpLoaderFactory(http: HttpClient, sharedService: SharedService) {\r\n return new TranslateHttpLoader(http, sharedService.getI8nPath() + 'assets/i18n/', '.json');\r\n}\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n CommonModule,\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: HttpLoaderFactory,\r\n deps: [HttpClient, SharedService]\r\n }\r\n })\r\n ],\r\n exports : [\r\n TranslateModule\r\n ]\r\n})\r\nexport class I8nModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { SharedService } from './shared.service';\r\nimport { ServiceMeta } from './service-meta';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class OrderService {\r\n\r\n constructor(\r\n private servicemeta: ServiceMeta,\r\n private sharedService: SharedService\r\n ) { }\r\n\r\n getStores(filter = {}) {\r\n const url = 'consumer/store';\r\n return this.servicemeta.httpGet(url, null, filter);\r\n }\r\n\r\n getStoreCatalogItems(filter = {}) {\r\n const url = 'consumer/so/catalog/item';\r\n return this.servicemeta.httpGet(url, null, filter);\r\n }\r\n\r\n getStoreCatalogItemsCount(filter = {}) {\r\n const url = 'consumer/so/catalog/item/count';\r\n return this.servicemeta.httpGet(url, null, filter);\r\n }\r\n\r\n createCart(data: any) {\r\n const url = 'consumer/cart';\r\n return this.servicemeta.httpPost(url, data);\r\n }\r\n\r\n getCart(id: string) {\r\n const url = 'consumer/cart/procon/' + id;\r\n return this.servicemeta.httpGet(url, null);\r\n }\r\n\r\n getCartItems(cartUid: string) {\r\n const url = 'consumer/cart/' + cartUid + '/getitems';\r\n return this.servicemeta.httpGet(url, null);\r\n }\r\n\r\n removeItemFromCart(itemUid: string) {\r\n const url = 'consumer/cart/item/' + itemUid;\r\n return this.servicemeta.httpDelete(url, null);\r\n }\r\n\r\n updateCartItems(cartUid: string, data: any) {\r\n const url = 'consumer/cart/' + cartUid + '/updateitems';\r\n return this.servicemeta.httpPut(url, data);\r\n }\r\n\r\n updateCart(cartUid: string, data: any) {\r\n const url = 'consumer/cart/update/' + cartUid;\r\n return this.servicemeta.httpPut(url, data);\r\n }\r\n\r\n checkoutCartItems(cartUid: string, data: any) {\r\n const url = 'consumer/cart/' + cartUid + '/checkout';\r\n return this.servicemeta.httpPost(url, data);\r\n }\r\n\r\n getOrderByUid(orderUid: string) {\r\n const url = 'consumer/sorder/' + orderUid;\r\n return this.servicemeta.httpGet(url, null);\r\n }\r\n\r\n getSoCatalogItemById(accountId: string, itemEncid: string) {\r\n const url = 'consumer/so/catalog/' + accountId + '/item/' + itemEncid;\r\n return this.servicemeta.httpGet(url, null);\r\n }\r\n\r\n getInvoiceByOrderUid(accountId: string, orderUid: string) {\r\n const url = 'consumer/so/invoice/' + accountId + '/order/' + orderUid + '/invoice';\r\n return this.servicemeta.httpGet(url, null);\r\n }\r\n\r\n getConsumeraddress() {\r\n const url = 'consumer/deliveryAddress';\r\n return this.servicemeta.httpGet(url);\r\n }\r\n\r\n updateConsumeraddress(data: any) {\r\n const url = 'consumer/deliveryAddress';\r\n return this.servicemeta.httpPut(url, data);\r\n }\r\n\r\n consumerSoPayment(data: any) {\r\n const url = 'consumer/so/pay';\r\n return this.servicemeta.httpPost(url, data);\r\n }\r\n\r\n getItemCategory(accountId: string) {\r\n const url = 'consumer/spitem/settings/' + accountId + '/category?status-eq=Enable';\r\n return this.servicemeta.httpGet(url);\r\n }\r\n\r\n applyCoupon(cartUid: string, data: any) {\r\n const url = 'consumer/cart/' + cartUid + '/apply/providercoupon';\r\n return this.servicemeta.httpPut(url, data);\r\n }\r\n\r\n getSoCoupons(catalogId: string) {\r\n const url = 'consumer/cart/' + catalogId + '/get/providercoupon';\r\n return this.servicemeta.httpGet(url);\r\n }\r\n\r\n removeCoupon(cartUid: string, data: any) {\r\n const url = 'consumer/cart/' + cartUid + '/remove/providercoupon';\r\n return this.servicemeta.httpPut(url, data);\r\n }\r\n\r\n searchSpItem(accountId: any, value: any) {\r\n const url =\r\n this.sharedService.getSAPath() + `searchdetails/${accountId}/sordercatalog/item/suggestion/search?name=${value}*`;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getQnrOrder(itemId: string) {\r\n const url = 'consumer/questionnaire/sorder/item/' + itemId + '/ONLINE';\r\n return this.servicemeta.httpGet(url);\r\n }\r\n\r\n submitQnrOrder(body: any, uuid: string) {\r\n const url = 'consumer/sorder/questionnaire/submit/' + uuid;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n getShipmentDetails(orderId) {\r\n const url = 'consumer/sorder/' + orderId + '/shipment/track';\r\n return this.servicemeta.httpPut(url);\r\n }\r\n getInvoiceByOrderYnwuuid(accountId, orderUid) {\r\n const url = 'consumer/so/invoice/' + accountId + '/' + orderUid;\r\n return this.servicemeta.httpGet(url, null);\r\n }\r\n getOrders(filter) {\r\n return this.servicemeta.httpGet('consumer/sorder', null, filter);\r\n }\r\n getRequireOTPForAddingToCart(category, accountId) {\r\n const url = `consumer/sorder/settings/${category}/${accountId}`;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Meta, Title } from '@angular/platform-browser';\r\nimport { SharedService } from './shared.service';\r\nimport { ServiceMeta } from './service-meta';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AccountService {\r\n\r\n accountConfig: any;\r\n activeLocation: any;\r\n accountLocations: any;\r\n activeStore: any;\r\n stores: any = [];\r\n\r\n constructor(\r\n private titleService: Title,\r\n private metaService: Meta,\r\n private serviceMeta: ServiceMeta,\r\n private sharedService: SharedService) { }\r\n\r\n setActiveStore(store: any) {\r\n this.activeStore = store;\r\n }\r\n\r\n getActiveStore() {\r\n return this.activeStore;\r\n }\r\n\r\n getAccountConfig() {\r\n return this.accountConfig;\r\n }\r\n setStores(stores) {\r\n this.stores = stores;\r\n }\r\n getStores() {\r\n return this.stores;\r\n }\r\n setActiveLocation(location) {\r\n this.activeLocation = location;\r\n }\r\n getActiveLocation() {\r\n return this.activeLocation;\r\n }\r\n setAccountLocations(locations) {\r\n this.accountLocations = locations;\r\n }\r\n getAccountLocations() {\r\n return this.accountLocations;\r\n }\r\n\r\n /**\r\n * Method which returns the Jsons\r\n * @param accountUniqueId The Unique Id which represents S3 Bucket for a particular Account\r\n * @param listOfUrlTypes Type of the Url eg. services, businessProfile etc.\r\n * @returns { \"services\": 'services.json', \"businessProfile\": businessprofile.json}\r\n */\r\n getJsonsbyTypes(accountUniqueId: any, userId: any, listOfUrlTypes: any) {\r\n let path = 'provider/account/settings/config/' + accountUniqueId;\r\n if (userId) {\r\n path = path + '/' + userId;\r\n }\r\n path = path + '/' + listOfUrlTypes;\r\n return this.serviceMeta.httpGet(path);\r\n }\r\n /**\r\n * \r\n * @param jsonStr_Obj \r\n */\r\n getJson(jsonStr_Obj: any) {\r\n if (jsonStr_Obj) {\r\n if (typeof jsonStr_Obj === 'object') {\r\n return jsonStr_Obj;\r\n } else {\r\n return JSON.parse(jsonStr_Obj);\r\n }\r\n }\r\n return null;\r\n }\r\n setIcon(url) {\r\n let link = document.createElement('link'),\r\n oldLink = document.getElementById('dynamic-favicon');\r\n link.id = 'dynamic-favicon';\r\n link.rel = 'shortcut icon';\r\n link.href = url;\r\n if (oldLink) {\r\n document.head.removeChild(oldLink);\r\n }\r\n document.head.appendChild(link);\r\n }\r\n getAccountInfoById() {\r\n const _this = this;\r\n return new Promise(function (resolve, reject) {\r\n if (_this.sharedService.getAccountInfo()) {\r\n resolve(_this.sharedService.getAccountInfo());\r\n } else {\r\n _this.getAccountInfoPromise().then((account) => {\r\n _this.getAccountConfiguration().then((config: any) => {\r\n _this.sharedService.setAccountConfig(config);\r\n })\r\n _this.sharedService.setAccountInfo(account);\r\n const accountProfile = _this.getJson(account['businessProfile']);\r\n _this.titleService.setTitle(accountProfile.businessName);\r\n if (accountProfile.logo && accountProfile.logo.url) {\r\n _this.setIcon(accountProfile.logo.url);\r\n }\r\n _this.metaService.addTags([\r\n { name: 'description', content: accountProfile.businessDesc },\r\n { name: 'og:title', content: accountProfile.businessName },\r\n { name: 'og:site_name', content: accountProfile.businessName },\r\n { name: 'og:description', content: accountProfile.businessDesc },\r\n { name: 'og:image', content: (accountProfile.logo && accountProfile.logo.url) ? accountProfile.logo.url : '' }\r\n // <meta property=\"og:url\" content=\"https://yourwebsite.com/page-url\">\r\n // <meta property=\"og:image\" content=\"https://yourwebsite.com/image.jpg\">\r\n // {name: 'keywords', content: 'Angular, Universal, Example'},\r\n // {name: 'robots', content: 'index, follow'}\r\n ]);\r\n resolve(_this.sharedService.getAccountInfo());\r\n }).catch((error) => {\r\n console.log(error);\r\n resolve(_this.sharedService.getAccountInfo());\r\n })\r\n }\r\n });\r\n }\r\n getAccountInfoPromise() {\r\n const _this = this;\r\n return new Promise(function (resolve, reject) {\r\n let accountS3List = 'settings,coupon,providerCoupon,appointmentsettings,terminologies,location,businessProfile,virtualFields,services,apptServices,donationServices,departmentProviders,gallery';\r\n _this.getJsonsbyTypes(_this.sharedService.getUniqueID(), null, accountS3List).subscribe(\r\n (account: any) => {\r\n resolve(account)\r\n }, (error) => {\r\n reject(error);\r\n });\r\n })\r\n }\r\n getAccountConfiguration() {\r\n const _this = this;\r\n return new Promise(function (resolve) {\r\n _this.getUIAccountConfig().subscribe(\r\n (config: any) => {\r\n resolve(config);\r\n }, () => {\r\n resolve(null);\r\n })\r\n })\r\n }\r\n /**\r\n * \r\n */\r\n getUIAccountConfig() {\r\n const path = this.sharedService.getConfigPath() + this.sharedService.getUniqueID() + '/account_config.json?t=' + new Date();\r\n return this.serviceMeta.httpGet(path);\r\n }\r\n \r\n getUserInformation(uniqueId, userId) {\r\n const _this = this;\r\n let listOfTypes = 'providerBusinessProfile,providerVirtualFields';\r\n return new Promise(function (resolve) {\r\n _this.getJsonsbyTypes(uniqueId, userId, listOfTypes).subscribe(\r\n (userAccount: any) => {\r\n resolve(userAccount);\r\n }\r\n )\r\n })\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from '@angular/router';\r\nimport { AccountService } from './account-service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SharedAccountResolver implements Resolve<any> {\r\n\r\n constructor(private accountService: AccountService) { \r\n console.log(\"Account Resolver Constructor\");\r\n }\r\n\r\n resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n \r\n return this.accountService.getAccountInfoById();\r\n }\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { ActivatedRouteSnapshot, CanLoad, Route, RouterStateSnapshot } from \"@angular/router\";\r\nimport { SharedAccountResolver } from \"./shared-account.resolver\";\r\nimport { Observable } from \"rxjs\";\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SharedAccountGuard implements CanLoad {\r\n\r\n constructor(private accountResolver: SharedAccountResolver) {\r\n console.log(\"Account Resolver\");\r\n\r\n }\r\n // The canLoad method checks if the module can be loaded\r\n canLoad(route: Route): Observable<boolean> | Promise<boolean> | boolean {\r\n // We need to pass both ActivatedRouteSnapshot and RouterStateSnapshot to resolve\r\n const activatedRouteSnapshot = route as ActivatedRouteSnapshot;\r\n const routerStateSnapshot: RouterStateSnapshot = null; // You'll need to pass the actual state if necessary\r\n console.log(\"Account Resolver\");\r\n // Resolving data using the AccountResolver\r\n return this.accountResolver.resolve(activatedRouteSnapshot, routerStateSnapshot).then(accountInfo => {\r\n // Now accountInfo will be available to check if the route should be loaded\r\n if (accountInfo) {\r\n console.log(\"Account Info Found:\", accountInfo);\r\n return true; // Allow loading the route if account info is valid\r\n } else {\r\n console.log(\"Account Info Not Found\");\r\n return false; // Prevent navigation if no account info is available\r\n }\r\n }).catch(error => {\r\n console.error('Error resolving account information:', error);\r\n return false; // Prevent navigation in case of an error\r\n });\r\n }\r\n}","import { Injectable } from \"@angular/core\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n/**\r\n * Handle Local Storage related actions\r\n */\r\nexport class LocalStorageService {\r\n\r\n /* holds the variables which not removed by clearLocalstorage() method */\r\n dont_delete_localstorage = ['refreshToken', 'userType', 'version', 'qrp', 'mUniqueId', 'authToken', 'reqFrom', 'source', 'translatevariable', 'appId', 'installId', 'appUniqueId', 'cleared', 'googleToken', 'sysdate', 'pt_pwd', 'target', 'activeLocation', 'busId'];\r\n\r\n /**\r\n * Default constructor\r\n */\r\n constructor(\r\n // @Inject(PLATFORM_ID) private platformId: object\r\n ) {\r\n }\r\n\r\n /**\r\n * function to get local storage item value\r\n * @param itemname name of variable\r\n */\r\n public getitemfromLocalStorage(itemname: string) {\r\n // if (isPlatformBrowser(this.platformId)) {\r\n if (localStorage.getItem(itemname) !== 'undefined') {\r\n return JSON.parse(localStorage.getItem(itemname));\r\n }\r\n // }\r\n // return null;\r\n }\r\n /**\r\n * // function to set local storage item value\r\n * @param itemname name of variable \r\n * @param itemvalue value to set\r\n */\r\n public setitemonLocalStorage(itemname: string, itemvalue: any) {\r\n // if (isPlatformBrowser(this.platformId)) {\r\n localStorage.setItem(itemname, JSON.stringify(itemvalue));\r\n // }\r\n }\r\n /**\r\n * Method to remove an item from local storage\r\n * @param itemname item to be removed\r\n */\r\n public removeitemfromLocalStorage(itemname: string) {\r\n // if (isPlatformBrowser(this.platformId)) {\r\n localStorage.removeItem(itemname);\r\n // }\r\n }\r\n /**\r\n * Method to clear the local storage items except the ones contained in 'dont_delete_localstorage'\r\n */\r\n public clearLocalstorage() {\r\n // if (isPlatformBrowser(this.platformId)) {\r\n this.removeitemfromLocalStorage('ynw-credentials');\r\n for (let index = 0; index < localStorage.length; index++) {\r\n if (this.dont_delete_localstorage.indexOf(localStorage.key(index)) === -1) {\r\n localStorage.removeItem(localStorage.key(index));\r\n index = index - 1; // manage index after remove\r\n }\r\n }\r\n // }\r\n }\r\n /**\r\n * Method to clear the local storage items\r\n */\r\n public clearAll() {\r\n for (let index = 0; index < localStorage.length; index++) {\r\n localStorage.removeItem(localStorage.key(index));\r\n index = index - 1; // manage index after remove\r\n }\r\n }\r\n}\r\n","// import { isPlatformBrowser } from \"@angular/common\";\r\n// import { Inject, Injectable, PLATFORM_ID } from \"@angular/core\";\r\nimport { Injectable } from \"@angular/core\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n/**\r\n * Handle Session Storage related actions\r\n */\r\nexport class SessionStorageService {\r\n constructor(\r\n // @Inject(PLATFORM_ID) private platformId: Object\r\n ) {\r\n\r\n }\r\n /**\r\n * Method to set an item on session storage\r\n * @param itemname \r\n * @param itemvalue \r\n */\r\n public setitemOnSessionStorage(itemname: string, itemvalue: any) {\r\n // if (isPlatformBrowser(this.platformId)) {\r\n sessionStorage.setItem(itemname, JSON.stringify(itemvalue));\r\n // }\r\n }\r\n /**\r\n * Method to get an item from session storage\r\n * @param itemname \r\n */\r\n public getitemfromSessionStorage(itemname: string) { // function to get local storage item value\r\n const itemValue = sessionStorage.getItem(itemname); \r\n if (sessionStorage.getItem(itemname) !== 'undefined') {\r\n return JSON.parse(itemValue !== null ? JSON.parse(itemValue) : null);\r\n }\r\n }\r\n /**\r\n * Method to remove an item from session storage\r\n * @param itemname \r\n */\r\n public removeitemfromSessionStorage(itemname: string) {\r\n sessionStorage.removeItem(itemname);\r\n }\r\n /**\r\n * Method to clear all the items from session storage\r\n */\r\n public clearSessionStorage() {\r\n for (let index = 0; index < sessionStorage.length; index++) {\r\n const itemValue = sessionStorage.key(index); \r\n sessionStorage.removeItem(itemValue !== null ? itemValue: '');\r\n index = index - 1; // manage index after remove\r\n }\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { SessionStorageService } from \"./session-storage.service\";\r\nimport { LocalStorageService } from \"./local-storage.service\";\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class GroupStorageService {\r\n constructor(private sessionStorageService: SessionStorageService, private lStorageService: LocalStorageService) {}\r\n\r\n public getGroup() {\r\n if (this.sessionStorageService.getitemfromSessionStorage('tabId')) {\r\n return this.sessionStorageService.getitemfromSessionStorage('accountid');\r\n } else {\r\n return 0;\r\n }\r\n }\r\n \r\n public setitemToGroupStorage(itemname: any, itemvalue: any) {\r\n const group = this.getGroup();\r\n let groupObj: any = {};\r\n if (this.lStorageService.getitemfromLocalStorage(group)) {\r\n groupObj = JSON.parse(this.lStorageService.getitemfromLocalStorage(group))?JSON.parse(this.lStorageService.getitemfromLocalStorage(group)): {};\r\n if (groupObj) {\r\n groupObj[itemname] = itemvalue;\r\n }\r\n } else {\r\n groupObj[itemname] = itemvalue;\r\n }\r\n this.lStorageService.setitemonLocalStorage(group, JSON.stringify(groupObj));\r\n }\r\n public getitemFromGroupStorage(itemname: string, type?: any) {\r\n let group;\r\n if (type) {\r\n group = 0;\r\n } else {\r\n group = this.getGroup();\r\n }\r\n if (this.lStorageService.getitemfromLocalStorage(group)) {\r\n const groupObj = JSON.parse(this.lStorageService.getitemfromLocalStorage(group));\r\n if (groupObj[itemname] || (itemname === 'isCheckin' && groupObj[itemname] !== undefined)) {\r\n return groupObj[itemname];\r\n }\r\n }\r\n }\r\n public removeitemFromGroupStorage(itemname: string | number) {\r\n const group = this.getGroup();\r\n const groupObj = JSON.parse(this.lStorageService.getitemfromLocalStorage(group));\r\n if (groupObj[itemname]) {\r\n delete groupObj[itemname];\r\n this.lStorageService.setitemonLocalStorage(group, JSON.stringify(groupObj));\r\n }\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable, Subject } from \"rxjs\";\r\nimport { ServiceMeta } from \"./service-meta\";\r\nimport { LocalStorageService } from \"./local-storage.service\";\r\nimport { SessionStorageService } from \"./session-storage.service\";\r\nimport { GroupStorageService } from \"./group-storage.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n/**\r\n * \r\n * Service handles authentication\r\n */\r\nexport class AuthService {\r\n\r\n private subject = new Subject<any>();\r\n\r\n getMessage(): Observable<any> {\r\n return this.subject.asObservable();\r\n }\r\n\r\n sendMessage(message: any) {\r\n this.subject.next(message);\r\n }\r\n\r\n constructor(\r\n private serviceMeta: ServiceMeta,\r\n private lStorageService: LocalStorageService,\r\n private sessionStorageService: SessionStorageService,\r\n private groupService: GroupStorageService\r\n ) { }\r\n\r\n login(post_data: any) {\r\n const _this = this;\r\n this.lStorageService.setitemonLocalStorage('login', true);\r\n post_data.mUniqueId = this.lStorageService.getitemfromLocalStorage('mUniqueId');\r\n console.log(post_data);\r\n const promise = new Promise((resolve, reject) => {\r\n _this.loginConsumer(post_data).subscribe(data => {\r\n this.lStorageService.removeitemfromLocalStorage('login');\r\n _this.setLoginData(data, post_data);\r\n this.sendMessage({ ttype: 'refresh', action: false });\r\n resolve(data);\r\n }, error => {\r\n if (error.status === 401 && error.error === 'Session Already Exist') {\r\n const authToken = this.lStorageService.getitemfromLocalStorage('c_authorizationToken');\r\n _this.doLogout().then(\r\n () => {\r\n this.lStorageService.setitemonLocalStorage('c_authorizationToken', authToken);\r\n _this.login(post_data);\r\n })\r\n }\r\n reject(error);\r\n });\r\n });\r\n return promise;\r\n }\r\n /**\r\n * Set Credentials and User Type (provider/consumer) in Local Storage\r\n * @param data \r\n * @param post_data \r\n * @param mod \r\n */\r\n setLoginData(data: any, post_data: any) {\r\n console.log(\"Set Login Data:\", data);\r\n this.groupService.setitemToGroupStorage('jld_scon', data);\r\n this.lStorageService.setitemonLocalStorage('isBusinessOwner', 'false');\r\n if (post_data['password']) {\r\n delete post_data['password'];\r\n }\r\n this.lStorageService.setitemonLocalStorage('ynw-credentials', JSON.stringify(post_data));\r\n }\r\n signUp(post_data: any) {\r\n const promise = new Promise((resolve, reject) => {\r\n this.signUpConsumer(post_data).subscribe(\r\n data => {\r\n resolve(data);\r\n }, error => {\r\n reject(error);\r\n });\r\n });\r\n return promise;\r\n }\r\n doLogout() {\r\n console.log(\"Do Logout\")\r\n const _this = this;\r\n this.lStorageService.setitemonLocalStorage('logout', true);\r\n this.lStorageService.removeitemfromLocalStorage('authorization');\r\n const promise = new Promise<void>((resolve, reject) => {\r\n _this.consumerLogout().subscribe(() => {\r\n _this.lStorageService.clearLocalstorage();\r\n _this.sessionStorageService.clearSessionStorage();\r\n this.sendMessage({ ttype: 'refresh', action: false });\r\n resolve();\r\n });\r\n });\r\n return promise;\r\n }\r\n\r\n signUpConsumer(body: any) {\r\n return this.serviceMeta.httpPost('consumer', body);\r\n }\r\n\r\n loginConsumer(body: any) {\r\n console.log(\"LoginConsumer\", body);\r\n return this.serviceMeta.httpPost('consumer/login', body);\r\n }\r\n\r\n consumerLogout() {\r\n return this.serviceMeta.httpDelete('consumer/login');\r\n }\r\n sendConsumerOTP(body: any) {\r\n const url = 'consumer/oauth/identify';\r\n return this.serviceMeta.httpPost(url, body);\r\n }\r\n verifyConsumerOTP(purpose,otp) {\r\n const url = 'consumer/oauth/'+ purpose +'/otp/' + otp + '/verify';\r\n return this.serviceMeta.httpPost(url);\r\n }\r\n verifyNewPhoneOTP(otp: string, body: any, origin?: string) {\r\n const path = origin + '/login/' + otp + '/verifyLogin';\r\n return this.serviceMeta.httpPut(path, body);\r\n }\r\n verifyNewPhone(phonenumber: string, origin?: string, countryCode?: string) {\r\n const path = origin + '/login/verifyLogin/' + phonenumber + '?countryCode=' + countryCode;\r\n return this.serviceMeta.httpPost(path);\r\n }\r\n\r\n getProviderConsumer() {\r\n return this.serviceMeta.httpGet('spconsumer');\r\n }\r\n /**\r\n * To check whether user logged in or not\r\n * @returns true/false\r\n */\r\n goThroughLogin() {\r\n const _this = this;\r\n return new Promise(function (resolve) {\r\n if (_this.lStorageService.getitemfromLocalStorage('ynw-credentials')) {\r\n resolve(true);\r\n } else {\r\n resolve(false);\r\n }\r\n })\r\n }\r\n shareOTPforForm(uuid: string) {\r\n const url = 'consumer/consentform/sendOtp/' + uuid;\r\n return this.serviceMeta.httpPut(url);\r\n }\r\n verifyOTPforForm(otp: string, uuid: string) {\r\n const url = 'consumer/consentform/verifyOtp/' + otp + '/' + uuid;\r\n return this.serviceMeta.httpPatch(url);\r\n }\r\n\r\n isLoggedIn() {\r\n if (this.lStorageService.getitemfromLocalStorage('ynw-credentials')) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { SharedService } from './shared.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\n/**\r\n * \r\n */\r\nexport class FileService {\r\n // Supported images types\r\n IMAGE_FORMATS = [\r\n 'image/gif',\r\n 'image/png',\r\n 'image/jpeg',\r\n 'image/bmp',\r\n 'image/webp'\r\n ];\r\n\r\n FILETYPES_UPLOAD = [\r\n 'image/jpg',\r\n 'image/png',\r\n 'image/jpeg',\r\n 'image/bmp',\r\n 'application/pdf',\r\n 'application/jfif',\r\n 'video/mp4',\r\n 'video/mpeg',\r\n 'audio/mpeg',\r\n 'audio/mp3',\r\n 'audio/ogg',\r\n 'application/vnd.ms-excel',\r\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\r\n 'application/doc',\r\n 'application/ms-doc',\r\n 'application/msword',\r\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\r\n 'docx',\r\n 'doc'\r\n ];\r\n cdnPath: string = '';\r\n imageSize = 15000000;\r\n FILE_MAX_SIZE = 10000000;\r\n constructor(private sharedService: SharedService) { \r\n this.cdnPath = this.sharedService.getCDNPath();\r\n }\r\n\r\n /**\r\n * Method returns supported formats of files which has to be uploaded\r\n * @param source image/file\r\n * @returns available formats\r\n */\r\n getSupportedFormats(source: any) {\r\n console.log(source);\r\n let formats = [];\r\n if (source == 'image') {\r\n formats = this.IMAGE_FORMATS;\r\n //return this.IMAGE_FORMATS;\r\n } else {\r\n formats = this.FILETYPES_UPLOAD;\r\n //return this.FILETYPES_UPLOAD;\r\n }\r\n console.log(formats);\r\n return formats;\r\n }\r\n\r\n /**\r\n * Method will return the maximum uploadable size of a file/image\r\n * @returns Maximum size of the image to upload\r\n */\r\n getMaximumImageSize() {\r\n return this.imageSize;\r\n }\r\n\r\n imageValidation(file: any, source?: any) {\r\n console.log(\"In Image Validation:\", source);\r\n let file_types = [];\r\n if (source === 'attachment' || source === 'consumerimages') {\r\n file_types = this.getSupportedFormats('file');\r\n } else {\r\n file_types = this.getSupportedFormats('image');\r\n }\r\n const image_max_size = this.getMaximumImageSize();\r\n const error: any = [];\r\n console.log(file_types);\r\n console.log(file.type);\r\n let is_error = false;\r\n if (!file.type || (file.type && file_types.indexOf(file.type) === -1)) {\r\n error['type'] = true;\r\n is_error = true;\r\n }\r\n if (file.size && file.size > image_max_size) {\r\n error['size'] = true;\r\n is_error = true;\r\n }\r\n if (is_error === false) {\r\n return true;\r\n } else {\r\n return error;\r\n }\r\n }\r\n getImage(url: any, fileObj: any) {\r\n let file = fileObj;\r\n if (fileObj && fileObj['mimeType']) {\r\n file['type'] = fileObj['mimeType'];\r\n }\r\n // console.log(\"File :\", file);\r\n // console.log(\"File Type :\", file.type)\r\n // console.log(\"File Name :\", file.name.includes('docx'))\r\n if (file.type) {\r\n if (file.type == 'application/pdf') {\r\n return (this.cdnPath + 'assets/images/pdf.png');\r\n } else if (file.type == 'application/vnd.ms-excel' || file.type == 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') {\r\n return (this.cdnPath + 'assets/images/xls.png');\r\n } else if (file.type == 'audio/mp3' || file.type == 'audio/mpeg' || file.type == 'audio/ogg') {\r\n return (this.cdnPath + 'assets/images/audio.png');\r\n } else if (file.type == 'video/mp4' || file.type == 'video/mpeg') {\r\n return (this.cdnPath + 'assets/images/video.png');\r\n } else if (file.type == 'application/msword' || file.type == 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' || file.type.includes('docx') || file.type.includes('doc')) {\r\n return (this.cdnPath + 'assets/images/ImgeFileIcon/wordDocsBgWhite.jpg');\r\n } else if (file.type.includes('txt')) {\r\n return (this.cdnPath + 'assets/images/ImgeFileIcon/docTxt.png');\r\n } else {\r\n return url;\r\n }\r\n }\r\n return url;\r\n }\r\n getImageByType(type: any) {\r\n if (type == 'pdf') {\r\n return (this.cdnPath + 'assets/images/pdf.png');\r\n } else if (type == 'vnd.ms-excel' || type == 'vnd.openxmlformats-officedocument.spreadsheetml.sheet' || type == 'xls' || type == 'xlsx') {\r\n return (this.cdnPath + 'assets/images/xls.png');\r\n } else if (type == 'mp3' || type == 'mpeg' || type == 'ogg') {\r\n return (this.cdnPath + 'assets/images/audio.png');\r\n } else if (type == 'mp4' || type == 'mpeg') {\r\n return (this.cdnPath + 'assets/images/video.png');\r\n } else if (type == 'application/msword' || type == 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' || type == 'docx' || type == 'doc' || type == 'msword') {\r\n return (this.cdnPath + 'assets/images/ImgeFileIcon/wordDocsBgWhite.jpg');\r\n } else if (type == 'txt') {\r\n return (this.cdnPath + 'assets/images/ImgeFileIcon/docTxt.png');\r\n } else {\r\n return (this.cdnPath + 'assets/images/img_uplod.png');\r\n }\r\n }\r\n\r\n filesSelected(event: any, selectedMessage: any) {\r\n const _this = this;\r\n return new Promise(function (resolve, reject) {\r\n // const input = event.target.files;\r\n let input = event.files;\r\n if (event.target && event.target.files) {\r\n input = event.target.files;\r\n }\r\n console.log(\"File Selected :\", input);\r\n if (input) {\r\n let count = 0;\r\n let filesCount = input.length;\r\n for (const file of input) {\r\n if (_this.FILETYPES_UPLOAD.indexOf(file.type) === -1) {\r\n reject(\"Selected file type not supported\");\r\n } else if (file.size > _this.FILE_MAX_SIZE) {\r\n reject(\"Please upload files with size < 10mb\");\r\n } else {\r\n selectedMessage.files.push(file);\r\n const reader = new FileReader();\r\n reader.onload = (e: any) => {\r\n selectedMessage.base64.push(e.target[\"result\"]);\r\n count++;\r\n if (count === filesCount) {\r\n resolve(true);\r\n }\r\n };\r\n reader.readAsDataURL(file);\r\n }\r\n }\r\n }\r\n })\r\n }\r\n filessSelected(event: any, selectedMessage: any) {\r\n const _this = this;\r\n return new Promise(function (resolve, reject) {\r\n // const input = event.target.files;\r\n let input = event.files;\r\n if (event.target && event.target.files) {\r\n input = event.target.files;\r\n }\r\n console.log(\"File Selected :\", input);\r\n if (input) {\r\n let count = 0;\r\n let filesCount = input.length;\r\n for (const file of input) {\r\n if (_this.IMAGE_FORMATS.indexOf(file.type) === -1) {\r\n reject(\"Selected file type not supported\");\r\n } else if (file.size > _this.FILE_MAX_SIZE) {\r\n reject(\"Please upload files with size < 10mb\");\r\n } else {\r\n selectedMessage.files.push(file);\r\n const reader = new FileReader();\r\n reader.onload = (e: any) => {\r\n selectedMessage.base64.push(e.target[\"result\"]);\r\n count++;\r\n if (count === filesCount) {\r\n resolve(true);\r\n }\r\n };\r\n reader.readAsDataURL(file);\r\n }\r\n }\r\n }\r\n })\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { SharedService } from './shared.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CommonService {\r\n\r\n constructor(private sharedService: SharedService) { }\r\n\r\n groupBy(xs: any, key: any) {\r\n return xs.reduce(function (rv: any, x: any) {\r\n (rv[x[key]] = rv[x[key]] || []).push(x);\r\n return rv;\r\n }, {});\r\n }\r\n\r\n isValid(evt) {\r\n const value = parseInt(evt.target.value);\r\n const max = parseInt(evt.target.max);\r\n if (value > max) {\r\n let numString = evt.target.value;\r\n evt.preventDefault();\r\n numString = numString.substr(0, numString.length - 1);\r\n evt.target.value = parseInt(numString);\r\n return false;\r\n }\r\n return true;\r\n }\r\n isNumericwithoutdot(evt) {\r\n const inputKeyCode = evt.keyCode ? evt.keyCode : evt.which;\r\n if ((inputKeyCode >= 48 && inputKeyCode <= 57) || inputKeyCode === 8) {\r\n return true;\r\n } else {\r\n evt.preventDefault();\r\n return false;\r\n }\r\n }\r\n isNumber(evt) {\r\n evt = (evt) ? evt : window.event;\r\n const charCode = (evt.which) ? evt.which : evt.keyCode;\r\n if (charCode > 31 && (charCode < 48 || charCode > 57)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n isNumeric(evt: any) {\r\n const inputKeyCode = evt.keyCode ? evt.keyCode : evt.which;\r\n if ((inputKeyCode >= 48 && inputKeyCode <= 57) || inputKeyCode === 8 || inputKeyCode === 46) {\r\n return true;\r\n } else {\r\n evt.preventDefault();\r\n return false;\r\n }\r\n }\r\n isNumericSign(evt) {\r\n const inputKeyCode = evt.keyCode ? evt.keyCode : evt.which;\r\n if ((inputKeyCode >= 48 && inputKeyCode <= 57) || inputKeyCode === 8 || inputKeyCode === 46 || inputKeyCode === 43) {\r\n return true;\r\n } else {\r\n evt.preventDefault();\r\n return false;\r\n }\r\n }\r\n showlogoicon(logo: any) {\r\n if (logo == null || logo === '') {\r\n return this.sharedService.getCDNPath() + 'assets/images/no_image_icon.png';\r\n } else {\r\n return logo;\r\n }\r\n }\r\n getDistanceFromLatLonInKm(lat1, lon1, lat2, lon2) {\r\n const R = 6371; // Radius of the earth in km\r\n const dLat = this.deg2rad(lat2 - lat1); // deg2rad below\r\n const dLon = this.deg2rad(lon2 - lon1);\r\n const a =\r\n Math.sin(dLat / 2) * Math.sin(dLat / 2) +\r\n Math.cos(this.deg2rad(lat1)) * Math.cos(this.deg2rad(lat2)) *\r\n Math.sin(dLon / 2) * Math.sin(dLon / 2);\r\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\r\n const d = R * c; // Distance in km\r\n return d;\r\n }\r\n deg2rad(deg) {\r\n return deg * Math.PI / 180;\r\n }\r\n getCurrentLocation() {\r\n return new Promise(function (resolve, reject) {\r\n if (navigator) {\r\n let lat_lng = {\r\n latitude: 0,\r\n longitude: 0\r\n };\r\n navigator.geolocation.getCurrentPosition(pos => {\r\n lat_lng.longitude = +pos.coords.longitude;\r\n lat_lng.latitude = +pos.coords.latitude;\r\n resolve(lat_lng);\r\n },\r\n error => {\r\n reject(error);\r\n });\r\n }\r\n })\r\n }\r\n sortVfields(dataF: any) {\r\n let temp;\r\n const temp1 = new Array();\r\n let temp2 = new Array();\r\n let temp3 = new Array();\r\n console.log(dataF);\r\n for (let i = 0; i < dataF.length; i++) {\r\n temp2 = [];\r\n let str = '';\r\n dataF[i]['type'] = typeof dataF[i].value;\r\n switch (dataF[i].dataType) {\r\n case 'Gender':\r\n break;\r\n case 'Enum':\r\n break;\r\n case 'EnumList':\r\n str = '';\r\n temp3 = [];\r\n for (let jj = 0; jj < dataF[i].value.length; jj++) {\r\n if (str !== '') {\r\n str += ', ';\r\n }\r\n str += dataF[i].value[jj].displayName;\r\n }\r\n temp3.push(str);\r\n temp2.push(temp3);\r\n dataF[i].value = temp2;\r\n temp1.push(dataF[i]);\r\n break;\r\n case 'DataGrid':\r\n for (let ii = 0; ii < dataF[i].value.length; ii++) {\r\n temp3 = [];\r\n Object.keys(dataF[i].value[ii]).forEach(nkeys => {\r\n temp3.push(dataF[i].value[ii][nkeys]);\r\n });\r\n temp2.push(temp3);\r\n }\r\n dataF[i].value = temp2;\r\n temp1.push(dataF[i]);\r\n break;\r\n case 'Boolean':\r\n if (dataF[i].value === 'true') {\r\n dataF[i].value = 'Yes';\r\n } else {\r\n dataF[i].value = 'No';\r\n }\r\n temp1.push(dataF[i]);\r\n break;\r\n default:\r\n temp1.push(dataF[i]);\r\n break;\r\n }\r\n }\r\n dataF = temp1;\r\n for (let i = 0; i < dataF.length; i++) {\r\n for (let j = i + 1; j < dataF.length; j++) {\r\n if (parseInt(dataF[i].order, 10) > parseInt(dataF[j].order, 10)) {\r\n temp = dataF[i];\r\n dataF[i] = dataF[j];\r\n dataF[j] = temp;\r\n }\r\n }\r\n }\r\n return dataF;\r\n }\r\n b64toBlobforSign(b64Data) {\r\n const byteString = atob(b64Data.split(',')[1]);\r\n const ab = new ArrayBuffer(byteString.length);\r\n const ia = new Uint8Array(ab);\r\n\r\n for (let i = 0; i < byteString.length; i++) {\r\n ia[i] = byteString.charCodeAt(i);\r\n }\r\n return new Blob([ab], { type: 'image/jpeg' });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ServiceMeta } from './service-meta';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StorageService {\r\n\r\n private storage: any = {\r\n 'spconsumer': null,\r\n 'salutation': null\r\n }\r\n\r\n constructor(\r\n private servicemeta: ServiceMeta\r\n ) { }\r\n\r\n clear() {\r\n this.storage = {\r\n 'spconsumer': null,\r\n 'salutation': null\r\n }\r\n }\r\n\r\n set(key: string, value: any) {\r\n this.storage[key] = value;\r\n }\r\n\r\n get(key: string) {\r\n return this.storage[key];\r\n }\r\n\r\n getSPConsumer() {\r\n return this.servicemeta.httpGet('spconsumer');\r\n }\r\n\r\n getProviderConsumer() {\r\n const _this = this;\r\n\r\n return new Promise(function (resolve, reject) {\r\n\r\n const spConsumer = _this.get('spconsumer');\r\n if (spConsumer) {\r\n resolve(spConsumer);\r\n } else {\r\n _this.getSPConsumer().subscribe((spconsumer) => {\r\n _this.set('spconsumer', spconsumer);\r\n resolve(spconsumer);\r\n }, (error) => {\r\n reject(error);\r\n })\r\n }\r\n });\r\n }\r\n getSalutationsRest() {\r\n const url = 'consumer/userTitle';\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getSalutations() {\r\n const _this = this;\r\n return new Promise(function (resolve, reject) {\r\n const salutations = _this.get('salutations');\r\n if (salutations) {\r\n resolve(salutations);\r\n } else {\r\n _this.getSalutationsRest().subscribe((salutations) => {\r\n _this.set('salutations', salutations);\r\n resolve(salutations);\r\n }, (error) => {\r\n reject(error);\r\n }\r\n )\r\n }\r\n })\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { ServiceMeta } from \"./service-meta\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class ConsumerService {\r\n orderdata: any;\r\n constructor(\r\n private servicemeta: ServiceMeta\r\n ) { }\r\n setOrderDetails(data) {\r\n this.orderdata = data;\r\n console.log(this.orderdata);\r\n }\r\n getOrderDetails() {\r\n return this.orderdata;\r\n }\r\n getProviderConsumer() {\r\n return this.servicemeta.httpGet('spconsumer');\r\n }\r\n updateSPConsumer(post_data: any) {\r\n return this.servicemeta.httpPut('spconsumer', post_data);\r\n }\r\n getFavProvider() {\r\n return this.servicemeta.httpGet('consumer/providers');\r\n }\r\n removeProviderfromFavourite(accountid) {\r\n const url = 'consumer/providers/' + accountid;\r\n return this.servicemeta.httpDelete(url);\r\n }\r\n doDeleteFavProvider(fav, cthis?) {\r\n return new Promise((resolve, reject) => {\r\n this.deleteFavProvider(fav.id)\r\n .then(\r\n data => {\r\n resolve(data);\r\n },\r\n error => {\r\n reject(error);\r\n }\r\n );\r\n });\r\n }\r\n deleteFavProvider(id) {\r\n return new Promise((resolve, reject) => {\r\n this.removeProviderfromFavourite(id)\r\n .subscribe(\r\n data => {\r\n resolve('reloadlist');\r\n },\r\n error => {\r\n reject(error);\r\n }\r\n );\r\n });\r\n }\r\n addProvidertoFavourite(accountid) {\r\n const url = 'consumer/providers/' + accountid;\r\n return this.servicemeta.httpPost(url);\r\n }\r\n changePasswordProfile(data, origin?) {\r\n const url = origin + '/login/chpwd';\r\n return this.servicemeta.httpPut(url, data);\r\n }\r\n consumertelegramChat(countryCode, loginId) {\r\n const url = 'chatbot/telegram/consumer/chatId/' + countryCode + '/' + loginId;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getConsumerRateService(params, type) {\r\n let path;\r\n if (type === 'checkin') {\r\n path = 'consumer/waitlist/rating';\r\n } else if (type === 'appointment') {\r\n path = 'consumer/appointment/rating';\r\n } else if (type === 'order') {\r\n path = 'consumer/orders/rating';\r\n }\r\n return this.servicemeta.httpGet(path, null, params);\r\n }\r\n updateConsumerRateService(params, data, type) {\r\n let path;\r\n if (type === 'checkin') {\r\n path = 'consumer/waitlist/rating';\r\n } else if (type === 'appointment') {\r\n path = 'consumer/appointment/rating';\r\n } else if (type === 'order') {\r\n path = 'consumer/orders/rating';\r\n }\r\n return this.servicemeta.httpPut(path, data, null, params);\r\n }\r\n postConsumerRateService(params, data, type) {\r\n let path;\r\n if (type === 'checkin') {\r\n path = 'consumer/waitlist/rating';\r\n } else if (type === 'appointment') {\r\n path = 'consumer/appointment/rating';\r\n } else if (type === 'order') {\r\n path = 'consumer/orders/rating';\r\n }\r\n return this.servicemeta.httpPost(path, data, null, params);\r\n }\r\n //Waitlist Urls\r\n getWaitlist(params) {\r\n return this.servicemeta.httpGet('consumer/waitlist', null, params);\r\n }\r\n getWaitlistFuture(params?) {\r\n return this.servicemeta.httpGet('consumer/waitlist/future', null, params);\r\n }\r\n addConsumerWaitlistAttachment(accountid, uuid, body) {\r\n const url = 'consumer/waitlist/' + uuid + '/attachment' + '?account=' + accountid;;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n addWaitlistAttachment(accountid, uuid, body) {\r\n const url = 'consumer/waitlist/share/attachments/' + uuid + '?account=' + accountid;;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n getConsumerWaitlistAttachmentsByUuid(uuid, accountid) {\r\n const url = 'consumer/waitlist/attachment/' + uuid + '?account=' + accountid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getWaitlistToday() {\r\n const path = 'consumer/waitlist/today';\r\n return this.servicemeta.httpGet(path);\r\n }\r\n //Appointment Urls\r\n getAppointmentFuture(params?) {\r\n return this.servicemeta.httpGet('consumer/appointment/future', null, params);\r\n }\r\n getApptlist(params) {\r\n return this.servicemeta.httpGet('consumer/appointment', null, params);\r\n }\r\n getAppointmentToday(params?) {\r\n return this.servicemeta.httpGet('consumer/appointment/today', null, params);\r\n }\r\n addConsumerAppointmentAttachment(accountid, uuid, body) {\r\n const url = 'consumer/appointment/' + uuid + '/attachment' + '?account=' + accountid;;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n addAppointmentAttachment(accountid, uuid, body) {\r\n const url = 'consumer/appointment/share/attachments/' + uuid + '?account=' + accountid;;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n getConsumerAppointmentAttachmentsByUuid(uuid, accountid) {\r\n const url = 'consumer/appointment/attachment/' + uuid + '?account=' + accountid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n //Order Urls\r\n getConsumerFutOrders() {\r\n const url = 'consumer/orders/future';\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getConsumerOrders(params) {\r\n return this.servicemeta.httpGet('consumer/orders', null, params);\r\n }\r\n //Donation Urls\r\n getConsumerDonations(params = null) {\r\n const url = 'consumer/donation';\r\n return this.servicemeta.httpGet(url, null, params);\r\n }\r\n getConsumerWaitlistMeetingDetails(uuid, mode, accountId) {\r\n const url = 'consumer/waitlist/' + uuid + '/meetingDetails/' + mode + '?account=' + accountId;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getConsumerApptMeetingDetails(uuid, mode, accountId) {\r\n const url = 'consumer/appointment/' + uuid + '/meetingDetails/' + mode + '?account=' + accountId;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getProfile(consumerId) {\r\n const promise = new Promise((resolve, reject) => {\r\n this.getMyProfile(consumerId).subscribe(\r\n data => {\r\n resolve(data);\r\n },\r\n error => {\r\n reject(error);\r\n });\r\n });\r\n return promise;\r\n }\r\n getTelegramstat() {\r\n const url = 'consumer/telegram/settings';\r\n return this.servicemeta.httpGet(url);\r\n }\r\n enableTelegramNoti(status) {\r\n const url = 'consumer/telegram/settings/' + status;\r\n return this.servicemeta.httpPut(url);\r\n }\r\n getMyProfile(id) {\r\n let path = 'consumer/' + id;\r\n return this.servicemeta.httpGet(path);\r\n }\r\n updateProfile(data, origin) {\r\n return this.servicemeta.httpPatch(origin, data);\r\n }\r\n updateSPConsumerProfile(data, origin) {\r\n return this.servicemeta.httpPut(origin, data);\r\n }\r\n addMembers(data) {\r\n return this.servicemeta.httpPost('consumer/family/member', data);\r\n }\r\n editMember(data) {\r\n return this.servicemeta.httpPut('consumer/family/member', data);\r\n }\r\n getConsumerPayments(filter?) {\r\n const url = 'consumer/payment';\r\n return this.servicemeta.httpGet(url, null, filter);\r\n }\r\n getOrderByConsumerUUID(uuid, accountid) {\r\n const url = 'consumer/orders/' + uuid + '?account=' + accountid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getCheckinByConsumerUUID(uuid, accountid) {\r\n console.log(\"UUID:\", uuid);\r\n const url = 'consumer/waitlist/' + uuid + '?account=' + accountid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getAppointmentByConsumerUUID(uuid, accountid) {\r\n const url = 'consumer/appointment/' + uuid + '?account=' + accountid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getConsumerDonationByUid(uid) {\r\n const url = 'consumer/donation/' + uid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getConsumerPaymentById(id) {\r\n const url = 'consumer/payment/' + id;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getMembers(providerCustomerID) {\r\n const url = 'consumer/family/member/' + providerCustomerID;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n deleteMember(memberId, parentID) {\r\n const path = 'consumer/family/member/' + memberId + '/' + parentID;\r\n return this.servicemeta.httpDelete(path);\r\n }\r\n getWaitlistHistory(params = {}) {\r\n return this.servicemeta.httpGet('consumer/waitlist/history', null, params);\r\n // set no_redirect_path in interceptor to avoid redirect on 401\r\n }\r\n getHistoryWaitlistCount(params = {}) {\r\n return this.servicemeta.httpGet('consumer/waitlist/history/count', null, params);\r\n }\r\n getWaitlistBill(params, uuid) {\r\n const path = 'consumer/bill/' + uuid;\r\n return this.servicemeta.httpGet(path, null, params);\r\n }\r\n getPaymentDetail(params, uuid) {\r\n const url = 'consumer/payment/details/' + uuid;\r\n return this.servicemeta.httpGet(url, null, params);\r\n }\r\n getAppointmentHistory(params?) {\r\n return this.servicemeta.httpGet('consumer/appointment/history', null, params);\r\n }\r\n getAppointmentHistoryCount() {\r\n return this.servicemeta.httpGet('consumer/appointment/history/count');\r\n }\r\n getOrderHistory(params?) {\r\n const url = 'consumer/orders/history';\r\n return this.servicemeta.httpGet(url, null, params);\r\n }\r\n getPaymentModesofProvider(provid, serviceId, purpose?) {\r\n const url = 'consumer/payment/modes/service/' + provid + '/' + serviceId + '/' + purpose;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n consumerPayment(data) {\r\n const url = 'consumer/payment';\r\n return this.servicemeta.httpPost(url, data);\r\n }\r\n consumerPayment_invocie(data) {\r\n const url = 'consumer/jp/finance/pay';\r\n return this.servicemeta.httpPost(url, data);\r\n }\r\n\r\n applyCoupon(jCouponCode, checkinId, accountid) {\r\n const url = 'consumer/jaldee/coupons/' + jCouponCode + '/' + checkinId + '?account=' + accountid;\r\n return this.servicemeta.httpPost(url);\r\n }\r\n getConsumerCommunications(provider_id) {\r\n const url = 'consumer/communications?account=' + provider_id;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getWtlistHistory(uuid, accountid) {\r\n const path = 'consumer/waitlist/states/' + uuid + '?account=' + accountid;\r\n return this.servicemeta.httpGet(path);\r\n }\r\n getWaitlistQuestionnaireByUid(uid, accountId) {\r\n const url = 'consumer/waitlist/questionnaire/' + uid + '?account=' + accountId;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getApptHistory(uuid, accountid) {\r\n const path = 'consumer/appointment/state/' + uuid + '?account=' + accountid;\r\n return this.servicemeta.httpGet(path);\r\n }\r\n getApptQuestionnaireByUid(uid, accountId) {\r\n const url = 'consumer/appointment/questionnaire/' + uid + '?account=' + accountId;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getAppointmentDetail(uuid, params) {\r\n const path = 'consumer/appointment/' + uuid;\r\n return this.servicemeta.httpGet(path, null, params);\r\n }\r\n getJaldeeCashandJcredit() {\r\n const url = 'consumer/wallet/redeem/eligible/amt';\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getRemainingPrepaymentAmount(jcash?, jcredit?, advanceamount?) {\r\n const url = 'consumer/wallet/redeem/remaining/amt' + '?useJcash=' + jcash + '&useJcredit=' + jcredit + '&advancePayAmount=' + advanceamount;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n PayByJaldeewallet(postData) {\r\n return this.servicemeta.httpPost('consumer/payment/wallet', postData);\r\n }\r\n getWaitlistDetail(uuid, params) {\r\n const path = 'consumer/waitlist/' + uuid;\r\n return this.servicemeta.httpGet(path, null, params);\r\n }\r\n generateDonationLink(accountid, data) {\r\n const url = 'consumer/payment/generate/paylink?account=' + accountid;\r\n return this.servicemeta.httpPost(url, data);\r\n }\r\n addCustomerDonation(postData, accountid) {\r\n return this.servicemeta.httpPost('consumer/donation?account=' + accountid, postData);\r\n }\r\n getDonationLinkUuid(uuid) {\r\n const url = 'consumer/payment/paylink/donation/' + uuid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n addConsumerWaitlistNote(accountid, uuid, body) {\r\n const url = 'consumer/waitlist/communication/' + uuid + '?account=' + accountid;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n getDonationQuestionnaire(serviceId, account_id) {\r\n const url = 'consumer/questionnaire/donation/' + serviceId + '?account=' + account_id;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n submitDonationQuestionnaire(uuid, body, account_id) {\r\n const url = 'consumer/donation/questionnaire/submit/' + uuid + '?account=' + account_id;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n consumerDonationQnrUploadStatusUpdate(uid, account, data) {\r\n const url = 'consumer/donation/questionnaire/upload/status/' + uid + '?account=' + account;\r\n return this.servicemeta.httpPut(url, data);\r\n }\r\n validateConsumerQuestionnaire(body, accountId) {\r\n const url = 'consumer/questionnaire/validate' + '?account=' + accountId;\r\n return this.servicemeta.httpPut(url, body);\r\n }\r\n validateConsumerOneTimeQuestionnaire(body, accountId, providerConsumerId) {\r\n const url = 'consumer/questionnaire/validate/onetimequestionnaire/' + providerConsumerId + '?account=' + accountId;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n getProviderCustomerOnetimeInfo(providerConsumerID, accountId) {\r\n const url = 'consumer/providerCustomer/' + providerConsumerID + \"?account=\" + accountId;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n submitCustomerOnetimeInfo(body, userId, accountId) {\r\n const url = 'consumer/questionnaire/' + userId + '?account=' + accountId;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n submitConsumerApptServiceOption(body, uuid, account) {\r\n const url = 'consumer/appointment/serviceoption/' + uuid + '?account=' + account;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n rescheduleConsumerApptmnt(accountid, postData) {\r\n return this.servicemeta.httpPut('consumer/appointment/reschedule?account=' + accountid, postData);\r\n }\r\n\r\n addCustomerAppointment(accountid, postData) {\r\n return this.servicemeta.httpPost('consumer/appointment/add?account=' + accountid, postData);\r\n }\r\n getConvenientFeeOfProvider(provid, data?) {\r\n const url = 'consumer/payment/modes/convenienceFee/' + provid;\r\n return this.servicemeta.httpPut(url, data);\r\n }\r\n addApptAdvancePayment(param, body) {\r\n const url = 'consumer/appointment/advancePayment';\r\n return this.servicemeta.httpPut(url, body, null, param);\r\n }\r\n getConsumerQuestionnaire(serviceId, consumerId, accountId) {\r\n const url = 'consumer/questionnaire/service/' + serviceId + '/consumer/' + consumerId + '?account=' + accountId;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getServiceoptionsAppt(servid, account) {\r\n const url = 'consumer/questionnaire/serviceoptions/' + servid + '/0?account=' + account;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getAppointmentReschedulePricelist(serviceid) {\r\n const url = 'consumer/appointment/schedule/' + serviceid + '/pricelist';\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getSlotsByLocationServiceandDate(locid, servid, pdate, accountid) {\r\n const url = 'consumer/appointment/schedule/date/' + pdate + '/location/' + locid + '/service/' + servid + '?account=' + accountid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getAvailableDatessByLocationService(locid, servid, accountid?) {\r\n const url = 'consumer/appointment/availability/location/' + locid + '/service/' + servid + '?account=' + accountid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getServicesforAppontmntByLocationId(locid) {\r\n if (locid) {\r\n const url = 'consumer/appointment/service/' + locid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n return null;\r\n }\r\n rescheduleConsumerWaitlist(accountid, postData) {\r\n return this.servicemeta.httpPut('consumer/waitlist/reschedule?account=' + accountid, postData);\r\n }\r\n getQueuesbyLocationandServiceIdAvailableDates(locid, servid, accountid) {\r\n const url = 'consumer/waitlist/queues/available/' + locid + '/' + servid + '?account=' + accountid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n addCheckin(accountid, postData) {\r\n return this.servicemeta.httpPost('consumer/waitlist/add?account=' + accountid, postData);\r\n }\r\n submitConsumerWaitlistServiceOption(body, uuid, account) {\r\n const url = 'consumer/waitlist/serviceoption/' + uuid + '/?account=' + account;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n getPartysizeDetails(domain, subdomain) {\r\n const url = 'ynwConf/settings/' + domain + '/' + subdomain;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n addWaitlistAdvancePayment(param, body) {\r\n const url = 'consumer/waitlist/advancePayment';\r\n return this.servicemeta.httpPut(url, body, null, param);\r\n }\r\n getServiceoptionsWaitlist(servid, account) {\r\n const url = 'consumer/questionnaire/serviceoptions/' + servid + '/0?account=' + account;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getQueuesbyLocationandServiceId(locid, servid, pdate?, accountid?) {\r\n const dd = (pdate !== undefined) ? '/' + pdate + '?account=' + accountid : '';\r\n const url = 'consumer/waitlist/queues/' + locid + '/' + servid + dd;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getServicesByLocationId(locid) {\r\n const url = 'consumer/waitlist/services/' + locid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getOrderQuestionnaireByUid(uid, accountId) {\r\n const url = 'consumer/orders/questionnaire/' + uid + '?account=' + accountId;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getStoreContact(accountid?) {\r\n return this.servicemeta.httpGet('consumer/orders/settings/store/contact/info/' + accountid);\r\n }\r\n getConsumerCatalogs(accountid) {\r\n const url = 'consumer/orders/catalogs/' + accountid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getAvailableDatesForHome(catalogid, accountid?) {\r\n return this.servicemeta.httpGet('consumer/orders/catalogs/delivery/dates/' + catalogid + '?account=' + accountid);\r\n }\r\n getAvailableDatesForPickup(catalogid, accountid?) {\r\n return this.servicemeta.httpGet('consumer/orders/catalogs/pickUp/dates/' + catalogid + '?account=' + accountid);\r\n }\r\n updateConsumeraddress(data) {\r\n const url = 'consumer/deliveryAddress';\r\n return this.servicemeta.httpPut(url, data);\r\n }\r\n CreateConsumerOrder(accountid, postData) {\r\n return this.servicemeta.httpPost('consumer/orders?account=' + accountid, postData);\r\n }\r\n CreateConsumerEmail(uuid, accountid, post_Data) {\r\n return this.servicemeta.httpPut('consumer/orders/' + uuid + '/email?account=' + accountid, post_Data);\r\n }\r\n getConsumerOrderQuestionnaire(catelogId, accountId) {\r\n const url = 'consumer/questionnaire/order/' + catelogId + '?account=' + accountId;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getConsumeraddress() {\r\n const url = 'consumer/deliveryAddress';\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getCartdetails(accountid, data) {\r\n const url = 'consumer/orders/amount?account=' + accountid;\r\n return this.servicemeta.httpPut(url, data);\r\n }\r\n getUserApptTime(prov_arr) {\r\n if (prov_arr.length > 0) {\r\n const path = 'consumer/appointment/schedule/nextAvailableSchedule/' + prov_arr.join(',');\r\n const encodedPath = encodeURI(path);\r\n return this.servicemeta.httpGet(encodedPath);\r\n }\r\n return null;\r\n }\r\n // getUserEstimatedWaitingTime(prov_arr) {\r\n // let str = '';\r\n // for (let i = 0; i < prov_arr.length; i++) {\r\n // if (str !== '') {\r\n // str += '%2C'; // comma\r\n // }\r\n // str += prov_arr[i];\r\n // }\r\n // if (str === '') {\r\n // return null;\r\n // }\r\n\r\n // const path = 'provider/waitlist/queues/providerWaitingTime/' + str;\r\n // return this.servicemeta.httpGet(path);\r\n // }\r\n // updateAnalytics(body) {\r\n // const url = 'provider/analytics/update';\r\n // return this.servicemeta.httpPost(url, body);\r\n // }\r\n // getSearchCatalogItem(account: any, tempName: any, name: any) {\r\n // const url = projectConstants.SAPATH + 'searchdetails/' + account + '/Item/search?' + tempName + '=' + name + '*';\r\n // return this.servicemeta.httpGet(url);\r\n // }\r\n getOrderSettings(accountid) {\r\n const url = 'consumer/orders/settings' + '?account=' + accountid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n addConsumertoProviderNote(message, filter) {\r\n const url = 'consumer/message/communications';\r\n return this.servicemeta.httpPost(url, message, null, filter);\r\n }\r\n telegramChat(countryCode, phNumber) {\r\n if (countryCode === '') {\r\n const url = 'chatbot/telegram/provider/chatId/91/' + phNumber;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n else {\r\n const url = 'chatbot/telegram/provider/chatId/' + countryCode + '/' + phNumber;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n }\r\n // addProviderAppointmentNote(uuid, body) {\r\n // const url = 'provider/appointment/communicate/' + uuid;\r\n // return this.servicemeta.httpPost(url, body);\r\n // }\r\n // addProviderOrderNote(uuid, body) {\r\n // const url = 'provider/orders/communicate/' + uuid;\r\n // return this.servicemeta.httpPost(url, body);\r\n // }\r\n // addProviderDonationNote(uuid, body) {\r\n // const url = 'provider/donation/communicate/' + uuid;\r\n // return this.servicemeta.httpPost(url, body);\r\n // }\r\n // addProviderWaitlistNote(uuid, body) {\r\n // const url = 'provider/waitlist/communicate/' + uuid;\r\n // return this.servicemeta.httpPost(url, body);\r\n // }\r\n getMembership(accountId) {\r\n const url = 'consumer/membership/services?account=' + accountId;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n addConsumerAppointmentNote(accountid, uuid, body) {\r\n const url = 'consumer/appointment/communicate/message/' + uuid + '?account=' + accountid;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n\r\n addConsumerOrderNote(accountid, uuid, body) {\r\n const url = 'consumer/order/communicate/' + uuid + '?account=' + accountid;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n addConsumerOrderNotecomm(accountid, uuid, body) {\r\n const url = 'consumer/orders/communicate/message/' + uuid + '?account=' + accountid;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n addConsumerDonationNote(accountid, uuid, body) {\r\n const url = 'consumer/donation/communicate/' + uuid + '?account=' + accountid;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n deactiveAccount(user: any) {\r\n const url = user + '/login/deActivate';\r\n return this.servicemeta.httpDelete(url);\r\n }\r\n getCatalogById(catalogs, catalogId) {\r\n console.log(\"CAtalogs:\", catalogs);\r\n console.log(\"ID:\", catalogId);\r\n let catalogArray = catalogs.filter(catalog => catalog.id == catalogId);\r\n console.log(\"CatalogArray\", catalogArray);\r\n if (catalogArray.length > 0) {\r\n return catalogArray[0];\r\n }\r\n return null;\r\n }\r\n getCatalogItemById(catalog, catalogItemId) {\r\n let catalogItemArray = catalog.catalogItem.filter(catalogItem => catalogItem.id == catalogItemId);\r\n if (catalogItemArray.length > 0) {\r\n return catalogItemArray[0];\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * \r\n * @param orders \r\n * @param item \r\n * @returns \r\n */\r\n getItemQty(orders, itemId) {\r\n const orderList = orders;\r\n console.log(\"Cart Items:\", orderList);\r\n let qty = 0;\r\n if (orderList !== null && orderList.filter(i => i.id == itemId)) {\r\n qty = orderList.filter(i => i.id == itemId).length;\r\n }\r\n return qty;\r\n }\r\n getApptRequestList(accountId) {\r\n return this.servicemeta.httpGet('consumer/appointment/service/request?account-eq=' + accountId);\r\n }\r\n postAppointmentRequest(accountid, postData) {\r\n return this.servicemeta.httpPost('consumer/appointment/service/request?account=' + accountid, postData);\r\n }\r\n getPrescriptions() {\r\n const url = 'spconsumer/medicalrecord/prescription';\r\n return this.servicemeta.httpGet(url);\r\n }\r\n submitItemOptions(itemId, orderId, accountId, postData) {\r\n return this.servicemeta.httpPost('consumer/orders/item/serviceoption/' + itemId + '/' + orderId + '?account=' + accountId, postData);\r\n }\r\n getServiceoptionsOrder(itemId, account) {\r\n const url = 'consumer/questionnaire/serviceoptions/order/item/' + itemId + '?account=' + account;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n removeProfilePhoto(consumerId, body) {\r\n const path = 'spconsumer/remove/profilePhoto/' + consumerId;\r\n return this.servicemeta.httpDelete(path, body);\r\n }\r\n addProfilePhoto(customerId: number, post_data: any) {\r\n const url = 'spconsumer/upload/profilePhoto/' + customerId;\r\n return this.servicemeta.httpPost(url, post_data);\r\n }\r\n getDocument() {\r\n const url = 'spconsumer/medicalrecord/prescription';\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getItemsListWithItemOptions(catalogId, account) {\r\n const url = 'consumer/questionnaire/serviceoption/order/catalog/item/' + catalogId + '/ONLINE?account=' + account;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n videoaudioS3Upload(url, file) {\r\n console.log(\"VideoAudio Upload\", url);\r\n return this.servicemeta.httpPut(url, file);\r\n }\r\n getApptCoupons(servId, locId) {\r\n const url = 'consumer/appointment/service/' + servId + '/location/' + locId + '/coupons';\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getCheckinCoupons(servId, locId) {\r\n const url = 'consumer/waitlist/service/' + servId + '/location/' + locId + '/coupons';\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getCheckinbyEncId(encId) {\r\n const url = 'consumer/waitlist/enc/' + encId;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getApptbyEncId(encId) {\r\n const url = 'consumer/appointment/enc/' + encId;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getOrderbyEncId(encId) {\r\n const url = 'consumer/orders/enc/' + encId;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getSorderbyEncId(encId) {\r\n const url = 'consumer/sorder/encId/' + encId;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getIvrQuestionnaireByUid(uid, accountId) {\r\n const url = 'consumer/ivr/questionnaire/' + uid + '?account=' + accountId;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getivrByConsumerUUID(uuid, accountid) {\r\n const url = 'consumer/ivr/' + uuid + '?account=' + accountid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getAppointmentById(appmntId) {\r\n const url = 'provider/appointment/' + appmntId;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getProviderOrderDetailById(uuid) {\r\n const url = 'provider/orders/' + uuid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getProviderWaitlistDetailById(uuid) {\r\n const url = 'provider/waitlist/' + uuid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n Paymentlinkcheck(uuid) {\r\n const url = 'consumer/payment/pay/' + uuid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getIdTerminologies(domain, subDomain) {\r\n const url = 'ynwConf/terminologies/' + domain + '/' + subDomain;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n linkPayment(data) {\r\n const url = 'provider/payment/paylink/order/create';\r\n return this.servicemeta.httpPost(url, data);\r\n }\r\n linkPayment_invoic(data) {\r\n const url = 'consumer/jp/finance/pay';\r\n return this.servicemeta.httpPost(url, data);\r\n }\r\n linkMembershipPayment_invoic(data) {\r\n const url = 'consumer/membership/pay';\r\n return this.servicemeta.httpPost(url, data);\r\n }\r\n getmembershipInvocieDetailsById(uuid,accId) {\r\n const url = 'consumer/membership/member/subscription/' + uuid + '?account=' + accId;;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n linkSoPayment_invoic(data) {\r\n const url = 'consumer/so/pay';\r\n return this.servicemeta.httpPost(url, data);\r\n }\r\n getInvoiceDetailsById(accId, uuid) {\r\n const url = 'consumer/jp/finance/invoice/' + accId + '/' + uuid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getSoInvoiceDetailsById(accId, uuid) {\r\n const url = 'consumer/so/invoice/' + accId + '/' + uuid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n uploadFilesToS3(data, accountId) {\r\n const url = 'consumer/fileShare/upload' + '?account=' + accountId;\r\n return this.servicemeta.httpPost(url, data);\r\n }\r\n videoaudioS3UploadStatusUpdate(status, id, accountId) {\r\n const url = 'consumer/fileShare/upload/' + status + '/' + id + '?account=' + accountId;\r\n return this.servicemeta.httpPut(url, null);\r\n }\r\n getApptBill(uuid) {\r\n const url = 'consumer/appointment/' + uuid + '/' + 'billdetails';\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getWaitBill(uuid) {\r\n const url = 'consumer/waitlist/' + uuid + '/' + 'billdetails';\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getInvoiceDetailsByuuid(uuid) {\r\n const url = 'consumer/jp/finance/invoice/ynwuid' + '/' + uuid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getInvoice(accountId, invoiceUid) {\r\n const url = 'consumer/jp/finance/invoice' + '/' + accountId + '/' + invoiceUid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n getConsentForm(id) {\r\n const url = 'consumer/consentform/' + id;\r\n return this.servicemeta.httpGet(url, null);\r\n }\r\n getconsentFormQuestionaire(uuid) {\r\n const url = 'consumer/consentform/questionnaire/' + uuid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n submitQuestionnaire(body, uuid) {\r\n const url = 'consumer/consentform/questionnaire/submit/' + uuid;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n verifySign(uuid, body) {\r\n const url = 'consumer/consentform/verifysign/' + uuid;\r\n return this.servicemeta.httpPatch(url, body);\r\n }\r\n verifyQnr(uuid) {\r\n const url = 'consumer/consentform/verifyStatus/' + uuid;\r\n return this.servicemeta.httpGet(url);\r\n }\r\n isProviderReady(post_data) {\r\n return this.servicemeta.httpPut('consumer/appointment/videocall/ready', post_data);\r\n }\r\n updateAnalytics(body) {\r\n const url = 'consumer/analytics/update';\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n getUsersByLocation(locationId, uniqueId, listOfUrls) {\r\n let path = 'provider/account/settings/location/' + locationId + '/' + uniqueId + '/' + listOfUrls;\r\n return this.servicemeta.httpGet(path);\r\n }\r\n getInbox(usertype) {\r\n return this.servicemeta.httpGet(usertype + '/communications');\r\n }\r\n readProviderMessages(providerId, messageIds, accountId) {\r\n const url = 'consumer/communications/readMessages/' + providerId + '/' + messageIds + '?account=' + accountId;\r\n return this.servicemeta.httpPut(url);\r\n }\r\n}","export const Messages: any = {\r\n 'OTP_SENT_EMAIL': 'Enter the OTP sent to [your_email]',\r\n 'OTP_SENT_LABEL': 'Enter the OTP sent to [your_mobile]',\r\n 'PROFILE_UPDATE': 'Profile has been updated successfully',\r\n 'EMAIL_MISMATCH': 'Email and Re-entered Email do not match',\r\n 'PHONE_VERIFIED': 'Your mobile number has been verified',\r\n 'MEMBER_CREATED': 'Member added successfully',\r\n 'MEMBER_UPDATED': 'Member updated successfully',\r\n 'APPLIED_INBILLTIME': ' Coupon will be applied on the final bill',\r\n 'CONSUMERTOPROVIDER_NOTE_ADD': 'Message has been successfully sent',\r\n 'PROVIDERTOCONSUMER_NOTE_ADD': 'Message has been successfully sent',\r\n 'MSG_ERROR': 'Please enter the message',\r\n 'CHECKIN_SUCC_REDIRECT': 'Please wait ... You are being redirected to the Payment Gateway ...',\r\n 'CHECKIN_ERROR': 'Sorry! an error occured',\r\n 'SERVICE_RATE_UPDATE': 'Thank you for your feedback',\r\n 'INBOXICON_TOOPTIP': 'Messages',\r\n 'FILE_TOOLTIP': 'Upload Files',\r\n 'NXT_AVAILABLE_TIME_CAPTION': 'Next Available Time',\r\n 'ESTIMATED_TIME_SMALL_CAPTION': 'Est Wait Time',\r\n 'SAVE_BTN': 'Save',\r\n 'CANCEL_BTN': 'Cancel',\r\n 'UPDATE_BTN': 'Update',\r\n 'EDIT_BTN': 'Edit',\r\n 'DELETE_BTN': 'Delete',\r\n 'SEND_BTN': 'Send',\r\n 'OK_BTN': 'Ok',\r\n 'YES_BTN': 'Yes',\r\n 'NO_BTN': 'No',\r\n 'CLOSE_BTN': 'Close',\r\n 'DONE_BTN': 'Complete',\r\n 'RESEND_BTN': 'Resend',\r\n 'CONFIRM_BTN': 'Confirm',\r\n 'FAMILY_MEMBERS': 'Family Members',\r\n 'FAMILY_MEMBER': 'Family Member',\r\n 'MEMBER_CAPTION': 'Member',\r\n 'ADD_FAMILY_MEMBER': 'Add Family Member',\r\n 'FIRST_NAME_CAP': 'First Name',\r\n 'LAST_NAME_CAP': 'Last Name',\r\n 'MOBILE_NUMBER_CAP': 'Mobile #',\r\n 'GENDER_CAP': 'Gender',\r\n 'DOB_CAP': 'Date of Birth',\r\n 'RELATED_LINKS': 'Related Links',\r\n 'USER_PROF_CAP': 'My Account',\r\n 'CHANGE_MOB_CAP': 'Change Mobile',\r\n 'ADD_CHANGE_EMAIL': 'Update Email',\r\n 'SEND_MSGS_CAP': 'Enquiry',\r\n 'SEND_MSG_CAP': 'Send Message',\r\n 'SEND_MSG': 'Enquiry',\r\n 'MAKE_PAYMENT_CAP': 'Make Payment',\r\n 'PAYMENT_REDIRECT': 'Please wait ... You are being redirected to the Payment Gateway ...',\r\n 'PROVIDER_BILL_PAYMENT': 'Payment completed successfully',\r\n 'BILL_CAPTION': 'Bill',\r\n 'RATE_VISIT': 'Rate Your Visit',\r\n 'DATE_CAP': 'Date:',\r\n 'LOCATION_CAP': 'Location',\r\n 'NAME_CAP': 'Name:',\r\n 'RATE_YOU_VISIT': 'Rate Your Visit',\r\n 'RATING_CAP': 'Rate *',\r\n 'MESSAGE_CAP': 'Message',\r\n 'RATE_BTN_CAP': 'Rate',\r\n 'OTHERMESSAGE_CAP': 'Please Enter Reason For Cancellation',\r\n 'F_NAME_CAP': 'First Name *',\r\n 'L_NAME_CAP': 'Last Name *',\r\n 'TERMS_CONDITIONS_CAP': 'Terms & Conditions',\r\n 'FILL_FOLL_DETAILS_CAP': 'Please fill in the following details',\r\n 'MALE_CAP': 'Male',\r\n 'FEMALE_CAP': 'Female',\r\n 'EMAIL_CAP': 'Email',\r\n 'CHANGEMOBILE_CAP': 'Change Mobile #',\r\n 'APPLY_CAP': 'Apply',\r\n 'ADD_MEMBER_CAP': 'Add Member',\r\n 'SERV_PROVIDER_CAP': 'Service Provider',\r\n 'DATE_COL_CAP': 'Date',\r\n 'BILL_PAYMENT_CAP': 'Bill Payment',\r\n 'COUPON_CODE_CAP': 'Coupon Code',\r\n 'AMNT_TO_PAY_CAP': 'Amount to pay',\r\n 'NO_PAY_OPT_AVIL_CAP': 'No payment options available.',\r\n 'PHONE_NO_CAP': 'Phone Number',\r\n 'EMAIL_ID_CAP': 'Email Id',\r\n 'DATE_TIME_CAP': 'Date/Time',\r\n 'LOGOUT_CAP': 'Logout',\r\n 'PROVIDER_CONSUMER_CAP': 'Provider / Consumer',\r\n 'REPLY_CAP': 'Reply',\r\n 'DELETE_MSG_CAP': 'Delete Message',\r\n 'NO_MSG_EXISTS_CAP': 'No messages found',\r\n 'ENTER_OTP_CAP': 'Enter OTP *',\r\n 'RESEND_OTP_TO_CAP': 'Resend OTP',\r\n 'RESEND_OTP_EMAIL_CAP': 'Resend OTP via email',\r\n 'RESEND_OTP_OPT_ACTIVE_IN_CAP': 'Resend OTP option will be active in',\r\n 'SECONDS_CAP': 'seconds.',\r\n 'ENTER_EMAIL_CAP': 'Enter Email',\r\n 'TIME_CAP': 'Time',\r\n 'BILL_NO_CAP': 'Bill #',\r\n 'GSTIN_CAP': 'GSTIN',\r\n 'QTY_CAP': 'Qty',\r\n 'DISCOUNT_CAP': 'Discount',\r\n 'COUPON_CAP': 'Coupon',\r\n 'SUB_TOT_CAP': 'Sub Total',\r\n 'GROSS_AMNT_CAP': 'Gross Amount',\r\n 'TAX_CAP': 'Tax',\r\n 'AMNT_PAID_CAP': 'Amount Paid',\r\n 'BACK_TO_BILL_CAP': 'Back to Bill',\r\n 'PAY_LOGS_CAP': 'Payment Logs',\r\n 'AMOUNT_CAP': 'Amount',\r\n 'REFUNDABLE_CAP': 'Refundable',\r\n 'MODE_CAP': 'Mode',\r\n 'REFUNDS_CAP': 'Refunds',\r\n 'PAY_STATUS': 'Status',\r\n 'GALLERY_CAP': 'Gallery',\r\n 'SELECT_IMAGE_CAP': 'Click here to select the files',\r\n 'NEW_CAP': 'New',\r\n 'ADD_SER_ITEM_CAP': 'Add Service/Item',\r\n 'AVAILABLE_CAP': 'Available',\r\n 'QTY_CAPITAL_CAP': 'Qty',\r\n 'SEL_DISC_CAP': 'Select Discount',\r\n 'SEL_COUPON_CAP': 'Select Coupon ',\r\n 'DISCOUNTS_COUPONS_CAP': 'Discounts / Coupons',\r\n 'BILL_DISCOUNT_CAP': 'Discount',\r\n 'ADD_BTN': 'Add',\r\n 'CUSTOMER_MOBILE_CAP': 'Mobile',\r\n 'COUPONS_CAP': 'Coupons',\r\n 'SERVICE_PHOTO_CAP': 'photos',\r\n 'POPUP_SELECT_REASON_CAP': 'Select a reason',\r\n 'POPUP_SEND_MSG_CAP': 'Create your own message for',\r\n 'DASHBOARD_TITLE': 'Dashboard',\r\n 'CONS_NOTE_NOTE_CAP': 'Note',\r\n 'CURRENTMOBMSG': 'Your Current Mobile # :',\r\n 'GET_TOKEN': 'Get Token',\r\n 'CHECK_DET_NO_CUS_NOTES_FOUND_CAP': 'No [customer] note found',\r\n 'NOUSERCAP': 'Global Services',\r\n 'SEND_MESSAGE': 'The [customer] does not have a mobile number/email',\r\n 'ATTACHMENT_SEND': 'Attachment sent successfully',\r\n 'QUESTIONNAIRE_CONSUMER_HEADING': 'More info',\r\n 'CHECK_DET_DATE_CAP': 'Date',\r\n 'CHECK_DET_LOCATION_CAP': 'Location',\r\n 'CHECK_DET_SERVICE_CAP': 'Service',\r\n 'CHECK_DET_SEND_MSG_CAP': 'Send Message',\r\n 'CHECK_DET_CUST_NOTES_CAP': '[customer] Note',\r\n 'BPROFILE_HAVE_NOT_ADD_CAP': 'You haven\\'t added ',\r\n 'BPROFILE_ADD_IT_NOW_CAP': 'Add It Now',\r\n 'BPROFILE_PHONENO': 'Please enter the phone number',\r\n 'BPROFILE_PRIVACY_PHONE_10DIGITS': 'Mobile number should have 10 digits',\r\n 'PRO_STATUS_CAP': 'Status',\r\n 'PRO_SERVICE_CAP': 'Service'\r\n};","export const projectConstantsLocal = {\r\n GOOGLEAPIKEY: 'AIzaSyDYIC4RIJNisNqXWDhe8y07EPSy9rHJ3-o',\r\n PERPAGING_LIMIT: 10,\r\n CONSUMER_DASHBOARD_REFRESH_TIME: 300, // seconds\r\n INBOX_REFRESH_TIME: 300, // seconds\r\n SMALL_DEVICE_BOUNDARY: 991,\r\n MY_DATE_FORMATS: {\r\n parse: {\r\n dateInput: 'L'\r\n },\r\n display: {\r\n dateInput: 'L',\r\n monthYearLabel: 'MMM YYYY',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'MMMM YYYY'\r\n }\r\n },\r\n TIMEOUT_DELAY: 2000, // msec\r\n TIMEOUT_DELAY_SMALL: 200, // msec\r\n TIMEOUT_DELAY_LARGE: 4100, // msec\r\n TIMEOUT_DELAY_LARGE6: 6000, // msec\r\n TIMEOUT_DELAY_LARGE10: 10000, // msec\r\n TIMEOUT_DELAY_600: 600,\r\n TIMEOUT_MEETING: 120000,\r\n DISPLAY_DATE_FORMAT: 'DD/MM/YYYY',\r\n DISPLAY_DATE_FORMAT_NEW: 'dd/MM/yyyy',\r\n PIPE_DISPLAY_DATE_FORMAT: 'dd/MM/y',\r\n PIPE_DISPLAY_DATE_FORMAT_WITH_DAY: 'E, dd/MM/y',\r\n PIPE_DISPLAY_TIME_FORMAT: 'h:mm a',\r\n // PIPE_DISPLAY_TIME_FORMAT: 'HH:mm a',\r\n PIPE_DISPLAY_DATE_TIME_FORMAT: 'dd/MM/y h:mm a',\r\n POST_DATE_FORMAT: 'YYYY-MM-DD',\r\n POST_DATE_FORMAT_WITHTIME: 'YYYY-MM-DD HH:mm a',\r\n POST_DATE_FORMAT_WITHTIME_A: 'YYYY-MM-DD HH:mm A',\r\n DATE_FORMAT_WITH_MONTH: 'd MMM',\r\n DATE_FORMAT_STARTS_MONTH: 'MMM d',\r\n DATE_MM_DD_YY_FORMAT: 'MMM d, y',\r\n DATE_EE_MM_DD_YY_FORMAT: 'EEE, MMM dd, y',\r\n DATE_MM_DD_YY_HH_MM_A_FORMAT: 'medium',\r\n DATE_FORMAT_WITH_TIME: 'MMM d, y h:mm a',\r\n DATE_FORMAT_WITH_DATE_TIME: 'EEE, MMM d, y hh:mm a',\r\n DEFAULT_STARTTIME: '09:00 AM',\r\n DEFAULT_ENDTIME: '06:00 PM',\r\n IMAGE_FORMATS: [\r\n 'image/gif',\r\n 'image/png',\r\n 'image/jpeg',\r\n 'image/bmp',\r\n 'image/webp'\r\n ],\r\n IMAGE_MAX_SIZE: 5000000, // byte\r\n FILE_MAX_SIZE: 10000000,\r\n MAP_BASE_URL: 'https://www.google.com/maps/place/', // this is used to implement google map related API calls\r\n\r\n SOCIAL_MEDIA_CONSUMER: [\r\n { key: 'phone', iconClass: 'phone_no', iconImage: 'phone.png', displayName: 'Phone' },\r\n { key: 'whatsapp', iconClass: 'whatsapp wa', iconImage: 'whatsapp.svg', displayName: 'WhatsApp' },\r\n { key: 'facebook', iconClass: 'facebook fb', iconImg: 'facebook.png', displayName: 'Facebook' },\r\n { key: 'twitter', iconClass: 'twitter tw', iconImg: 'twitter.png', displayName: 'Twitter' },\r\n { key: 'youtube', iconClass: 'youTube youtube', iconImg: 'youtube.png', displayName: 'Youtube' },\r\n { key: 'linkedin', iconClass: 'linkedin lkd', iconImg: 'linkedin.png', displayName: 'LinkedIn' },\r\n { key: 'pinterest', iconClass: 'pinterest pntr', iconImg: 'pinterest.png', displayName: 'Pinterest' },\r\n { key: 'instagram', iconClass: 'instagram insta', iconImg: 'instagram.png', displayName: 'Instagram' },\r\n { key: 'bizyGlobe', iconClass: 'bizyGlobe bglobe', iconImg: 'bizyglobe.png', displayName: 'BizyGlobe' },\r\n { key: 'website', iconClass: 'globe site', iconImg: 'website.png', displayName: 'Website' },\r\n { key: 'email', iconClass: 'email_id', iconImage: 'email.png', displayName: 'Email' },\r\n { key: 'googleplus', iconClass: 'google-plus red', displayName: 'Google+' },\r\n { key: 'share', iconClass: 'share-QR sh', iconImage: 'Share.png', displayName: 'share' }\r\n ],\r\n PRIVACY_PERMISSIONS: {\r\n 'all': 'Public (All can see)',\r\n 'customersOnly': 'Customer',\r\n 'self': 'Private (None can see)'\r\n },\r\n HealthcareService: {\r\n 'service_cap': 'Consultations and Services'\r\n },\r\n PersonalFitness: {\r\n personalFitness: { helphint: 'Personal training session, diet consultation' }\r\n },\r\n TOOLTIP_CLS: 'ynwtooltipcls',\r\n TOOLTIP_PRIVACYPHONE: 'Example : Cell Phone, Mobile, Emergency, Main Line, others etc',\r\n TOOLTIP_PRIVACYEMAIL: 'Example : Office Email id, Personal Email id etc',\r\n TOOLTIP_MALE: 'Male',\r\n TOOLTIP_FEMALE: 'Female',\r\n VALIDATOR_BLANK_FALSE: /^((?!\\s{2,}).)*$/,\r\n VALIDATOR_BLANK: /^\\s*$/,\r\n VALIDATOR_URL: /^(http:\\/\\/www\\.|https:\\/\\/www\\.|http:\\/\\/|https:\\/\\/)[a-z0-9]+([\\-\\.\\_]{1}[a-z0-9]+)*\\.[a-z]{2,5}(:[0-9]{1,5})?(\\/.*)?$/,\r\n VALIDATOR_NUMBERONLY: /^\\d+$/,\r\n VALIDATOR_ONLYNUMBER: /^[0-9]+$/,\r\n VALIDATOR_COUNTRYCODE: /^[+]?[0-9]+$/,\r\n VALIDATOR_PHONENUMBERONLY: /^[1-9]\\d{9}$/,\r\n VALIDATOR_FLOAT: /^[+-]?([0-9]*[.])?[0-9]+$/,\r\n VALIDATOR_PHONENUMBERCOUNT10: /^\\d{10}$/,\r\n VALIDATOR_CHARONLY: /^[a-zA-Z\\. ]+$/,\r\n VALIDATOR_ALPHANUMERIC: /^[a-zA-Z0-9\\s]+$/,\r\n VALIDATOR_ALPHANUMERIC_HYPHEN: /^[a-zA-Z0-9-]*$/,\r\n VALIDATOR_ALPHANUMERIC_DOT: /^[a-zA-Z0-9\"':;,-.% ]*$/,\r\n VALIDATOR_EMAIL: /^([A-Za-z0-9_\\-\\.])+\\@([A-Za-z0-9_\\-\\.])+\\.([A-Za-z]{2,4})$/,\r\n VALIDATOR_NUMBER_COMMA: /^[0-9\\,]+$/,\r\n VALIDATOR_MAX6: 6, // max char count\r\n VALIDATOR_MAX9: 9, // max char count\r\n VALIDATOR_MAX10: 10, // max char count\r\n VALIDATOR_MAX15_DEPT_CDE: 15, // max char count\r\n VALIDATOR_MAX100_DEPT_NME: 100, // max char count\r\n VALIDATOR_MAX50: 50, // max char count\r\n VALIDATOR_MAX100: 100, // max char count\r\n VALIDATOR_MAX150: 150, // max char count\r\n VALIDATOR_MAX200: 200, // max char count\r\n VALIDATOR_MAX250: 250, // max char count\r\n VALIDATOR_MAX500: 500, // max char count\r\n VALIDATOR_MAX_LAKH: 100,\r\n VALIDATOR_MOBILE_AND_EMAIL: /^(?:\\d{10}|[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[a-z]{2,4})$/,\r\n VALIDATOR_SPACE_NOT_ALLOWED: /^\\S*$/,\r\n QTY_MAX_VALUE: 100000,\r\n PRICE_MAX_VALUE: 100000,\r\n TIME_MAX_VALUE: 3600,\r\n PERC_MAX_VALUE: 100,\r\n WAITLIST_CANCEL_RESON: [{ title: 'No Show Up', value: 'noshowup', reasonkey: 'noShowUpCancel', type: 2 },\r\n { title: 'Self', value: 'self', reasonkey: 'selfCancel' },\r\n { title: 'Blocked', value: 'blocked', reasonkey: 'blockedCancel' },\r\n { title: 'Closing Soon', value: 'closingSoon', reasonkey: 'closingSoonCancel', type: 2 },\r\n { title: 'Conflict In Schedule', value: 'SCHEDULECONFLICT', reasonkey: 'SCHEDULECONFLICTCancel', type: 2, },\r\n { title: 'Too Full', value: 'tooFull', reasonkey: 'tooFullCancel' },\r\n { title: 'PrePayment Pending', value: 'prePaymentPending', reasonkey: 'tooFullCancel' },\r\n { title: 'Queue Disabled', value: 'QueueDisabled', reasonkey: 'tooFullCancel' },\r\n { title: 'Other', value: 'other', reasonkey: 'other', type: 2 },\r\n { title: 'Holiday', value: 'holiday', reasonkey: 'tooFullCancel' }],\r\n\r\n DOMAINLIST_APIFETCH_HOURS: 1, // hours which decides whether domain list api should be execured or not\r\n COUPON_NOTES: {\r\n // MINIMUM_BILL_AMT_REQUIRED: 'Minimum bill amount',\r\n COUPON_APPLIED: 'Coupon already applied',\r\n SELF_PAY_REQUIRED: 'Self pay required',\r\n NO_OTHER_COUPONS_ALLOWED: 'No other coupons allowed',\r\n EXCEEDS_APPLY_LIMIT: 'Exceeds apply limit',\r\n ONLY_WHEN_FITST_CHECKIN: 'Only for first check-in',\r\n ONLINE_CHECKIN_REQUIRED: 'Online booking required',\r\n CANT_COMBINE_WITH_OTHER_COUPONES: 'Can\\'t combine with other coupons',\r\n CONSUMER_CAN_NOT_APPLY_COUPON: 'Coupon cannot be applied.',\r\n PROVIDER_COUPON_NOT_APPLICABLE_SERVICE: 'Provider coupon not applicable for this service',\r\n PROVIDER_COUPON_NOT_APPLICABLE_USER: 'Provider coupon not applicable for this user',\r\n PROVIDER_COUPON_NOT_APPLICABLE_GROUP: 'Provider coupon not applicable for this group',\r\n PROVIDER_COUPON_NOT_APPLICABLE_ITEM: 'Provider coupon not applicable for this item',\r\n PROVIDER_COUPON_NOT_APPLICABLE_CATALOG: 'Provider coupon not applicable for this catalog',\r\n PROVIDER_COUPON_NOT_APPLICABLE_LABEL: 'Provider coupon not applicable for this label',\r\n PROVIDER_COUPON_NOT_APPLICABLE_BOOKING_MODE: 'Provider coupon not applicable for this booking mode',\r\n PROVIDER_COUPON_NOT_APPLICABLE: 'Provider coupon not applicable on this day',\r\n PROVIDER_COUPON_NOT_APPLICABLE_NOW: 'Provider coupon not applicable now',\r\n JC_NOT_APPLICABLE_DAY: 'Jaldee Coupon not applicable on this day',\r\n ONLY_WHEN_FITST_CHECKIN_ON_PROVIDER: 'Coupon can be applied only for first check in with this provider',\r\n MINIMUM_BILL_AMT_REQUIRED: 'A minimum bill amount is required to redeem this coupon',\r\n PROVIDER_COUPON_NOT_APPLICABLE_ORDER: 'Provider coupon not applicable for order',\r\n PROVIDER_COUPON_NOT_APPLICABLE_WAITLIST: 'Provider coupon not applicable for booking',\r\n PROVIDER_COUPON_NOT_APPLICABLE_APPOINTMENT: 'Provider coupon not applicable for appointment',\r\n EXCEEDS_PRO_COUP_APPLY_LIMIT: 'Coupon reached limit of usage'\r\n },\r\n CHECK_IN_STATUSES: {\r\n Done: 'Completed',\r\n Started: 'Started',\r\n Arrived: 'Arrived',\r\n CheckedIn: 'Checked in',\r\n Cancelled: 'Cancelled',\r\n Completed: 'Completed',\r\n Rejected: 'Cancelled',\r\n Confirmed: 'Confirmed',\r\n Rescheduled: 'Rescheduled',\r\n PrepaymentPending: 'Prepayment Pending',\r\n Requested: 'Requested',\r\n RequestRejected: 'RequestRejected',\r\n Failed: 'Failed'\r\n },\r\n MONTH: [\r\n { value: '01', name: 'Jan' },\r\n { value: '02', name: 'Feb' },\r\n { value: '03', name: 'Mar' },\r\n { value: '04', name: 'Apr' },\r\n { value: '05', name: 'May' },\r\n { value: '06', name: 'Jun' },\r\n { value: '07', name: 'Jul' },\r\n { value: '08', name: 'Aug' },\r\n { value: '09', name: 'Sep' },\r\n { value: '10', name: 'Oct' },\r\n { value: '11', name: 'Nov' },\r\n { value: '12', name: 'Dec' }\r\n\r\n ],\r\n REGION_LANGUAGE: 'en-US',\r\n TIME_ZONE_REGION: 'Asia/Kolkata',\r\n KEY: 'JALDEESOFT',\r\n FILETYPES_UPLOAD: [\r\n 'image/jpg',\r\n 'image/png',\r\n 'image/jpeg',\r\n 'application/pdf',\r\n 'application/jfif',\r\n 'video/mp4',\r\n 'video/mpeg',\r\n 'audio/mpeg',\r\n 'audio/mp3',\r\n 'audio/ogg',\r\n 'docx',\r\n 'doc'\r\n ],\r\n\r\n CALLING_MODES: {\r\n WHATSAPP: 'Whatsapp',\r\n HANGOUTS: 'Hangouts',\r\n SKYPE: 'Skype',\r\n BOTIM: 'Botim',\r\n IMO: 'Imo'\r\n },\r\n WAITLIST_CANCEL_REASON: [{ title: 'No Show Up', value: 'noshowup', reasonkey: 'noShowUpCancel' },\r\n { title: 'Self', value: 'self', reasonkey: 'selfCancel' },\r\n { title: 'Blocked', value: 'blocked', reasonkey: 'blockedCancel' },\r\n { title: 'Closing Soon', value: 'closingSoon', reasonkey: 'closingSoonCancel' },\r\n { title: 'Too Full', value: 'tooFull', reasonkey: 'tooFullCancel' },\r\n { title: 'Conflict In Schedule', value: 'SCHEDULECONFLICT', reasonkey: 'SCHEDULECONFLICTCancel', type: 2 },\r\n { title: 'Change of Plans', value: 'CHANGEOFPLAN', reasonkey: 'CHANGEOFPLANCancel', type: 2 },\r\n { title: 'Health Issue', value: 'HEALTHISSUE', reasonkey: 'HEALTHISSUECancel', type: 2 },\r\n { title: 'Other', value: 'other', reasonkey: 'other', type: 2 },\r\n ],\r\n BOOKING_STATUS_CLASS: [\r\n { value: 'Done', class: 'dark-green' },\r\n { value: 'Started', class: 'orange' },\r\n { value: 'Arrived', class: 'yellow' },\r\n { value: 'CheckedIn', class: 'greenc' },\r\n { value: 'Cancelled', class: 'red' },\r\n { value: 'Completed', class: 'dark-green' },\r\n { value: 'Rejected', class: 'red' },\r\n { value: 'Confirmed', class: 'greenc' },\r\n { value: 'RequestRejected', class: 'red' },\r\n { value: 'Requested', class: 'dark-green' },\r\n //voilet\r\n //#673ab7f2\r\n ],\r\n ITEM_TYPES: [\r\n { displayName: 'physical', value: 'PHYSICAL' },\r\n { displayName: 'virtual', value: 'VIRTUAL' }\r\n ],\r\n INBOX_MSG_TYPES: {\r\n CHAT: 'Chat',\r\n ENQUIRY: 'Enquiry',\r\n ALERT: 'System Generated',\r\n BOOKINGS: 'Bookings'\r\n },\r\n WALLET_NOTES: {\r\n APP_SIGNUP: 'APP SIGNUP',\r\n\r\n },\r\n PAYTMLOCAL_URL: 'https://securegw-stage.paytm.in',\r\n PAYTM_URL: 'https://securegw.paytm.in',\r\n SUPPORTEDLANGUAGES: [\r\n { value: 'en', viewValue: 'English' },\r\n { value: 'hd', viewValue: 'Hindi' },\r\n { value: 'kan', viewValue: 'Kannada' },\r\n { value: 'tel', viewValue: 'Telugu' },\r\n { value: 'mal', viewValue: 'Malayalam' },\r\n { value: 'tam', viewValue: 'Tamil' }\r\n ],\r\n INDIAN_STATES: [\r\n { name: 'Andhra Pradesh', displayName: 'Andhra Pradesh' },\r\n { name: 'Arunachal Pradesh', displayName: 'Arunachal Pradesh' },\r\n { name: 'Assam', displayName: 'Assam' },\r\n { name: 'Bihar', displayName: 'Bihar' },\r\n { name: 'Chattisgarh', displayName: 'Chattisgarh' },\r\n { name: 'Goa', displayName: 'Goa' },\r\n { name: 'Gujarat', displayName: 'Gujarat' },\r\n { name: 'Haryana', displayName: 'Haryana' },\r\n { name: 'Himachal Pradesh', displayName: 'Himachal Pradesh' },\r\n { name: 'Jammu & Kashmir', displayName: 'Jammu & Kashmir' },\r\n { name: 'Jharkhand', displayName: 'Jharkhand' },\r\n { name: 'Karnataka', displayName: 'Karnataka' },\r\n { name: 'Kerala', displayName: 'Kerala' },\r\n { name: 'Madhya Pradesh', displayName: 'Madhya Pradesh' },\r\n { name: 'Maharashtra', displayName: 'Maharashtra' },\r\n { name: 'Manipur', displayName: 'Manipur' },\r\n { name: 'Meghalaya', displayName: 'Meghalaya' },\r\n { name: 'Mizoram', displayName: 'Mizoram' },\r\n { name: 'Nagaland', displayName: 'Nagaland' },\r\n { name: 'Orissa', displayName: 'Orissa' },\r\n { name: 'Punjab', displayName: 'Punjab' },\r\n { name: 'Rajasthan', displayName: 'Rajasthan' },\r\n { name: 'Sikkim', displayName: 'Sikkim' },\r\n { name: 'Tamil Nadu', displayName: 'Tamil Nadu' },\r\n { name: 'Telangana', displayName: 'Telangana' },\r\n { name: 'Tripura', displayName: 'Tripura' },\r\n { name: 'Uttarakhand', displayName: 'Uttarakhand' },\r\n { name: 'Uttar Pradesh', displayName: 'Uttar Pradesh' },\r\n { name: 'West Bengal', displayName: 'West Bengal' },\r\n { name: 'Andaman & Nicobar', displayName: 'Andaman & Nicobar' },\r\n { name: 'Dadra and Nagar Haveli', displayName: 'Dadra and Nagar Haveli' },\r\n { name: 'Daman & Diu', displayName: 'Daman & Diu' },\r\n { name: 'Delhi', displayName: 'Delhi' },\r\n { name: 'Lakshadweep', displayName: 'Lakshadweep' },\r\n { name: 'Pondicherry', displayName: 'Pondicherry' }\r\n ],\r\n RELATIONSHIPS: [\r\n { name: 'Father', displayName: 'Father' },\r\n { name: 'Husband', displayName: 'Husband' },\r\n { name: 'Mother', displayName: 'Mother' },\r\n { name: 'Son', displayName: 'Son' },\r\n { name: 'Daughter', displayName: 'Daughter' },\r\n { name: 'Wife', displayName: 'Wife' },\r\n { name: 'Brother', displayName: 'Brother' },\r\n { name: 'MotherInlaw', displayName: 'MotherInlaw' },\r\n { name: 'FatherInlaw', displayName: 'FatherInlaw' },\r\n { name: 'DaughterInlaw', displayName: 'Daughter In law' },\r\n { name: 'SisterInLaw', displayName: 'Sister In Law' },\r\n { name: 'BrotherInlaw', displayName: 'Brother In law' },\r\n { name: 'SonInlaw', displayName: 'Son In law' },\r\n { name: 'Other', displayName: 'Other' }\r\n ],\r\n};\r\n","import { Injectable } from '@angular/core';\r\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\r\n\r\n// Import RxJs required methods\r\n\r\n@Injectable()\r\nexport class FormMessageDisplayService {\r\n\r\n // form: FormGroup, field: string\r\n isFieldValid(form: any, field: string) {\r\n return !form.get(field).valid && form.get(field).touched;\r\n }\r\n\r\n displayFieldCss(form: UntypedFormGroup, field: string) {\r\n return {\r\n 'has-error': this.isFieldValid(form, field),\r\n 'has-feedback': this.isFieldValid(form, field)\r\n };\r\n }\r\n\r\n validateAllFormFields(formGroup: UntypedFormGroup) {\r\n Object.keys(formGroup.controls).forEach(field => {\r\n const control = formGroup.get(field);\r\n if (control instanceof UntypedFormControl) {\r\n control.markAsTouched({ onlySelf: true });\r\n } else if (control instanceof UntypedFormGroup) {\r\n this.validateAllFormFields(control);\r\n }\r\n });\r\n }\r\n\r\n getErrorMessage(form: any, field: string, errorMsgs: any) {\r\n const error_ob = form.get(field).errors;\r\n if (error_ob == null) {\r\n return null;\r\n }\r\n const keys = Object.keys(error_ob);\r\n const errors = keys.map(key => {\r\n return errorMsgs[key] || '';\r\n });\r\n return errors[0];\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-field-error-display',\r\n templateUrl: './field-error-display.component.html',\r\n styleUrls: ['./field-error-display.component.css']\r\n})\r\nexport class FieldErrorDisplayComponent {\r\n\r\n @Input() errorMsg: string | undefined;\r\n @Input() displayError: boolean | undefined;\r\n @Input() errorMsgs: string | undefined;\r\n\r\n}\r\n\r\n","<div *ngIf=\"displayError\" tabindex=\"-1\">\r\n <div class=\"sts-msg error\">{{ errorMsg || errorMsgs }}</div>\r\n</div>\r\n\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-form-success-display',\r\n templateUrl: './form-success-display.component.html',\r\n styleUrls: ['./form-success-display.component.css']\r\n})\r\nexport class FormSuccessDisplayComponent {\r\n\r\n @Input() successMsg: string | undefined;\r\n @Input() displayMsg: boolean | undefined;\r\n\r\n}\r\n\r\n","<div *ngIf=\"displayMsg\" >\r\n <div class=\"sts-msg success\">\r\n {{ successMsg }}\r\n </div>\r\n</div>\r\n","\r\nimport { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Messages } from '../project-messages';\r\nimport { projectConstantsLocal } from '../project-constants';\r\nimport { FormMessageDisplayService } from '../form-message/form-message-display.service';\r\n\r\n@Component({\r\n selector: 'app-confirm-box',\r\n templateUrl: './confirm-box.component.html',\r\n styleUrls: ['./confirm-box.component.css']\r\n})\r\nexport class ConfirmBoxComponent implements OnInit {\r\n ok_btn_cap = Messages.CONFIRM_BTN;\r\n cancel_btn_cap = Messages.CANCEL_BTN;\r\n newDateFormat = projectConstantsLocal.DATE_MM_DD_YY_FORMAT;\r\n send_message_cap = Messages.POPUP_SEND_MSG_CAP;\r\n select_reason_cap = Messages.POPUP_SELECT_REASON_CAP;\r\n messgae_cap = Messages.OTHERMESSAGE_CAP;\r\n amForm: FormGroup;\r\n api_error = null;\r\n api_success = null;\r\n cancel_reasonobj;\r\n cancel_reason = '';\r\n cancel_reason_key = '';\r\n default_message_arr: any = [];\r\n def_msg = '';\r\n deptName;\r\n showError = false;\r\n okCancelBtn = false;\r\n cancel_reasons: any = [];\r\n rep_username: string;\r\n rep_service: string;\r\n rep_date: string;\r\n rep_time: string;\r\n rep_provname: string;\r\n constructor(\r\n public dialogRef: MatDialogRef<ConfirmBoxComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private formBuilder:FormBuilder,\r\n public fed_service: FormMessageDisplayService,\r\n ) { \r\n this.amForm = this.formBuilder.group({\r\n reason: ['', Validators.compose([Validators.required])],\r\n message: [''],\r\n send_message: [{ value: false, disabled: true }]\r\n });\r\n}\r\n ngOnInit() {\r\n console.log(\"data-data\",this.data)\r\n if (this.data && this.data.wtlist && this.data.wtlist.providerAccount && this.data.wtlist.providerAccount.businessName) {\r\n this.rep_username = this.data.wtlist.providerAccount.businessName;\r\n }\r\n const reasons_list = [];\r\n const reasons = projectConstantsLocal.WAITLIST_CANCEL_REASON;\r\n for (let i = 0; i < reasons.length; i++) {\r\n if (reasons[i].type) {\r\n reasons_list.push(reasons[i]);\r\n }\r\n }\r\n this.cancel_reasons = reasons_list;\r\n console.log(\"this.cancel_reasons\",this.cancel_reasons);\r\n if (this.data.type) {\r\n this.ok_btn_cap = Messages.CONFIRM_BTN;\r\n this.cancel_btn_cap = Messages.CANCEL_BTN;\r\n }\r\n if (this.data.buttons === 'okCancel') {\r\n this.ok_btn_cap = Messages.CONFIRM_BTN;\r\n this.cancel_btn_cap = Messages.CANCEL_BTN;\r\n }\r\n }\r\n onClick(data) {\r\n if (this.data.filterByDept && data) {\r\n const param = {};\r\n if (this.deptName) {\r\n param['deptName'] = this.deptName;\r\n data = param;\r\n this.dialogRef.close(data);\r\n } else {\r\n this.showError = true;\r\n }\r\n } else {\r\n this.dialogRef.close(data);\r\n }\r\n }\r\n selectReason(cancel_reason) {\r\n this.amForm.get('reason').setValue(cancel_reason.value);\r\n this.cancel_reasonobj = cancel_reason;\r\n this.cancel_reason = cancel_reason.title;\r\n this.cancel_reason_key = cancel_reason.reasonkey;\r\n this.amForm.controls['send_message'].enable();\r\n if (this.data.isBatch) {\r\n } else {\r\n this.def_msg = this.replacedMessage();\r\n } \r\n }\r\n replacedMessage() {\r\n let retmsg = '';\r\n if (this.cancel_reason_key) {\r\n retmsg = this.default_message_arr[this.cancel_reason_key];\r\n }\r\n if (retmsg && retmsg !== '') {\r\n retmsg = retmsg.replace(/\\[consumer\\]/g, this.rep_username);\r\n retmsg = retmsg.replace(/\\[service\\]/g, this.rep_service);\r\n retmsg = retmsg.replace(/\\[date\\]/g, this.rep_date);\r\n retmsg = retmsg.replace(/\\[time\\]/g, this.rep_time);\r\n retmsg = retmsg.replace(/\\[.*?\\]/g, this.rep_provname);\r\n if (this.cancel_reason && this.cancel_reason !== '') {\r\n retmsg = retmsg.replace('[reason]', this.cancel_reason);\r\n }\r\n }\r\n return retmsg;\r\n }\r\n resetApiErrors() {\r\n this.api_error = null;\r\n this.api_success = null;\r\n }\r\n\r\n onSubmit(form_data) {\r\n console.log(form_data)\r\n this.resetApiErrors();\r\n let post_data = {\r\n 'cancelReason': form_data.reason\r\n };\r\n if (form_data.send_message) {\r\n if (!form_data.message.replace(/\\s/g, '').length) {\r\n this.api_error = 'Message cannot be empty';\r\n return;\r\n }\r\n post_data['communicationMessage'] = form_data.message;\r\n }\r\n if (this.data.isBatch && !post_data['communicationMessage']) {\r\n this.api_error = 'Message cannot be empty';\r\n return;\r\n }\r\n this.dialogRef.close(post_data);\r\n }\r\n\r\n}\r\n","<form [formGroup]=\"amForm\" [ngClass]=\"this.data.theme\" novalidate (ngSubmit)=\"amForm.valid && onSubmit(amForm.value)\">\r\n <h1 class=\"mat-dialog-title\">\r\n <button #queue mat-dialog-close class=\"modal_close\" id=\"btnClose\">\r\n <i class=\"fa fa-window-close\" aria-hidden=\"true\"></i>\r\n </button>\r\n </h1>\r\n <div mat-dialog-content>\r\n <p class=\"mb-4 fontsize\"> {{data.message}}</p>\r\n <div *ngIf=\"data && data.cancelPolicy\" class=\"policies\">\r\n <p-accordion [multiple]=\"true\">\r\n <p-accordionTab>\r\n <ng-template pTemplate=\"header\">\r\n <h4>Cancellation Policies</h4>\r\n </ng-template>\r\n <p>You can cancel your {{data.book}}s any time until\r\n <span *ngIf=\"data.wtlist.date\">{{data.wtlist.date| date:\r\n newDateFormat}}</span><span *ngIf=\"data.wtlist.appmtDate\">{{data.wtlist.appmtDate| date:\r\n newDateFormat}}</span><span *ngIf=\"data.wtlist.orderDate\">{{data.wtlist.orderDate| date:\r\n newDateFormat}}</span>.<span\r\n *ngIf=\"data.wtlist && data.wtlist.providerAccount && data.wtlist.providerAccount.businessName\">\r\n If the system doesn’t permit your cancellation,\r\n contact your provider, {{data.wtlist.providerAccount.businessName}}.\r\n It’s important to note that the\r\n provider may cancel your bookings at their discretion for their own reasons.\r\n Jaldee will keep you informed promptly regarding the changes through timely notifications.\r\n </span>\r\n </p>\r\n </p-accordionTab>\r\n <p-accordionTab>\r\n <ng-template pTemplate=\"header\">\r\n <h4>Refund policy for Advance Payments(only)</h4>\r\n </ng-template>\r\n <p>\r\n In the case of your cancellation, a 3% (payment gateway fee) will be deducted from the refund\r\n of the advanced payment made. For same-day cancellations, kindly contact your service provider,\r\n {{data.wtlist.providerAccount.businessName}} to initiate the refund. For any refund-related queries, reach\r\n out to\r\n {{data.wtlist.providerAccount.businessName}} for assistance.\r\n </p>\r\n </p-accordionTab>\r\n </p-accordion>\r\n <p class=\"mt-4\"> Are you sure you want to cancel this {{data.book}}? <br/></p>\r\n </div>\r\n <div *ngIf=\"data.book !== 'Order' && data.cancelPolicy\">\r\n <div class=\"form-group\">\r\n <label class=\"col-form-label\" for=\"displayName\">{{select_reason_cap}}*</label><br>\r\n <mat-chip-list>\r\n <mat-chip *ngFor=\"let cancel_reason of cancel_reasons\" class=\"me-2 mb-2\"\r\n color=\"{{(cancel_reason.value === amForm.get('reason').value) ? 'primary' : ''}}\"\r\n selected=\"{{(cancel_reason.value === amForm.get('reason').value) ? true : false}}\"\r\n [class.selected]=\"(cancel_reason.value === amForm.get('reason').value) ? true : false\"\r\n (click)=\"selectReason(cancel_reason)\">\r\n {{cancel_reason.title}}\r\n </mat-chip>\r\n </mat-chip-list>\r\n </div>\r\n <div class=\"form-group mt-2\">\r\n <mat-checkbox formControlName=\"send_message\">{{send_message_cap}} {{rep_username}}</mat-checkbox>\r\n </div>\r\n <div class=\"form-group reason-area\" *ngIf=\"amForm.get('send_message').value\">\r\n <textarea class=\"form-control\" rows=\"3\" id=\"message\" maxlength=\"1000\" pInputTextarea placeholder=\"Message\" formControlName=\"message\"></textarea>\r\n <app-field-error-display [displayError]=\"fed_service.isFieldValid(amForm,'message')\"\r\n errorMsg=\"Please enter a message.\">\r\n </app-field-error-display>\r\n </div>\r\n </div>\r\n </div>\r\n <div mat-dialog-actions *ngIf=\"data.book !== 'Order'&& data.cancelPolicy\" class=\"mb-2\">\r\n <div class=\"col-md-12\" style=\"margin-top: 15px;display: inline-flex;\">\r\n <button type=\"button\" mat-dialog-close class=\"cs-btn bt2\" id=\"btnCancel\">{{cancel_btn_cap}}</button>\r\n <button type=\"submit\" mat-button [disabled]=\"!amForm.valid\" class=\"cs-btn bt1\" id=\"btnOk\">{{ok_btn_cap}}</button>\r\n </div>\r\n </div>\r\n <app-field-error-display [displayError]=\"true\" *ngIf=\"api_error\" errorMsg=\"{{api_error}}\"></app-field-error-display>\r\n <app-form-success-display [displayMsg]=\"true\" *ngIf=\"api_success\" successMsg=\"{{api_success}}\">\r\n </app-form-success-display>\r\n <div mat-dialog-actions class=\"paddingtop\" *ngIf=\"data.book !== 'Order' && !data.cancelPolicy\">\r\n <button tabindex=\"-1\" (click)=\"onClick(0)\" class=\"cs-btn bt2\" id=\"btnCancel\">{{cancel_btn_cap}}</button>\r\n <button tabindex=\"2\" (click)=\"onClick(1)\" id=\"btnOk\"\r\n class=\"cs-btn bt1 reddelete checkavailabilitybutton\">{{ok_btn_cap}}</button>\r\n </div>\r\n <app-field-error-display [displayError]=\"true\" *ngIf=\"showError\" errorMsg=\"Department name is required\">\r\n </app-field-error-display>\r\n</form>","import { Injectable } from \"@angular/core\";\r\nimport { ServiceMeta } from \"./service-meta\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { ConfirmBoxComponent } from \"./confirm/confirm-box.component\";\r\nimport { of } from \"rxjs\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BookingService {\r\n\r\n services: any = [];\r\n activeServices: any = [];\r\n selectedApptsTime: any;\r\n bookingDate: any;\r\n \r\n constructor(\r\n private serviceMeta: ServiceMeta,\r\n private dialog: MatDialog) { }\r\n\r\n getServices() {\r\n return this.services;\r\n }\r\n setServices(services: any) {\r\n let activeServices = services.filter(service => service.serviceAvailability);\r\n this.services = activeServices;\r\n this.activeServices = activeServices;\r\n }\r\n setActiveServices(services) {\r\n this.activeServices = services;\r\n }\r\n getActiveServices() {\r\n return this.activeServices;\r\n }\r\n setBookingDate(bookingDate) {\r\n this.bookingDate = bookingDate;\r\n }\r\n getBookingDate() {\r\n return this.bookingDate;\r\n }\r\n getTimings() {\r\n return this.selectedApptsTime;\r\n }\r\n setTimings(selectedApptsTime: any) {\r\n this.selectedApptsTime = selectedApptsTime;\r\n }\r\n doCancelWaitlist(waitlist, type, theme_data, cthis?) {\r\n let msg;\r\n if (type === 'checkin') {\r\n if (waitlist.token) {\r\n msg = 'booking';\r\n } else {\r\n msg = 'booking';\r\n }\r\n } else if (type === 'appointment') {\r\n msg = 'booking';\r\n } else if (type === 'order') {\r\n msg = 'Order';\r\n }\r\n const tdata = {};\r\n tdata['theme'] = theme_data;\r\n tdata['message'] = 'Cancellation and Refund policy';\r\n tdata['heading'] = 'Confirm';\r\n tdata['type'] = 'yes/no';\r\n tdata['cancelPolicy'] = 'show';\r\n tdata['book'] = msg;\r\n tdata['wtlist'] = waitlist;\r\n return new Promise((resolve, reject) => {\r\n cthis.canceldialogRef = this.dialog.open(ConfirmBoxComponent, {\r\n width: '50%',\r\n panelClass: ['commonpopupmainclass', 'confirmationmainclass'],\r\n disableClose: true,\r\n data: tdata\r\n });\r\n\r\n cthis.canceldialogRef.afterClosed().subscribe(result => {\r\n if (result && (result.cancelReason || result.rejectReason) || result) {\r\n let id;\r\n if (type === 'checkin') {\r\n id = waitlist.ynwUuid;\r\n } else if (type === 'appointment') {\r\n id = waitlist.uid;\r\n } else if (type === 'order') {\r\n id = waitlist.uid;\r\n }\r\n this.cancelWaitlist(id, waitlist.providerAccount.id, type, result)\r\n .then(\r\n data => {\r\n resolve(data);\r\n },\r\n error => {\r\n reject(error);\r\n }\r\n );\r\n } else {\r\n resolve(null);\r\n }\r\n });\r\n });\r\n }\r\n\r\n cancelWaitlist(id, provider_id, type, result?) {\r\n return new Promise((resolve, reject) => {\r\n const params = {\r\n 'account': provider_id\r\n };\r\n this.deleteWaitlist(id, params, type, result).subscribe(data => {\r\n resolve('reloadlist');\r\n },\r\n error => {\r\n reject(error);\r\n }\r\n );\r\n });\r\n }\r\n deleteWaitlist(id, params, type, result?) {\r\n if (type === 'checkin') {\r\n return this.serviceMeta.httpPut('consumer/waitlist/cancel/' + id + '?account=' + params['account'], result);\r\n } else if (type === 'appointment') {\r\n return this.serviceMeta.httpPut('consumer/appointment/cancel/' + id + '?account=' + params['account'], result);\r\n } else if (type === 'order') {\r\n return this.serviceMeta.httpPut('consumer/orders/' + id + '?account=' + params['account']);\r\n }\r\n return of({});\r\n }\r\n\r\n /**\r\n * Cancel a Booking (Waitlist/Appointment/Order)\r\n * @param bookingId Booking Id\r\n * @param params accountId\r\n * @param type order/checkin/appointment\r\n * @returns true if success\r\n */\r\n cancelBookingAPI(bookingId, params, type) {\r\n if (type === 'checkin') {\r\n return this.serviceMeta.httpDelete('consumer/waitlist/' + bookingId + '?account=' + params['account']);\r\n } else if (type === 'appointment') {\r\n return this.serviceMeta.httpPut('consumer/appointment/cancel/' + bookingId + '?account=' + params['account']);\r\n } else if (type === 'order') {\r\n return this.serviceMeta.httpPut('consumer/orders/' + bookingId + '?account=' + params['account']);\r\n }\r\n return null;\r\n }\r\n\r\n\r\n /**\r\n * To get all the checkin services of a particular location\r\n * @param locationId location id\r\n * @returns Promise of services\r\n */\r\n getCheckinServices(locationId) {\r\n const _this = this;\r\n return new Promise(function (resolve) {\r\n _this.getServicesByLocationId(locationId)\r\n .subscribe((wlServices: any) => {\r\n resolve(wlServices);\r\n },\r\n () => {\r\n resolve([]);\r\n }\r\n );\r\n });\r\n }\r\n\r\n /**\r\n * To get all the appointent services of a particular location\r\n * @param locid location id\r\n * @returns services\r\n */\r\n getServicesforAppontmntByLocationId(locid) {\r\n const url = 'consumer/appointment/service/' + locid;\r\n return this.serviceMeta.httpGet(url);\r\n }\r\n\r\n /**\r\n * To get all the appointment services of a particular location\r\n * @param locationId location id\r\n * @returns Promise of services\r\n */\r\n getAppointmentServices(locationId) {\r\n const _this = this;\r\n return new Promise(function (resolve) {\r\n _this.getServicesforAppontmntByLocationId(locationId)\r\n .subscribe((services: any) => {\r\n resolve(services);\r\n },\r\n () => {\r\n resolve([]);\r\n }\r\n );\r\n });\r\n }\r\n\r\n sortBookings(bookings) {\r\n bookings.sort(function (message1, message2) {\r\n if (message1.date < message2.date) {\r\n return 11;\r\n } else if (message1.date > message2.date) {\r\n return -1;\r\n } else {\r\n return 0;\r\n }\r\n });\r\n }\r\n\r\n getAppointmentRequests(accountId) {\r\n return this.serviceMeta.httpGet('consumer/appointment/service/request?account-eq=' + accountId);\r\n }\r\n getWaitlist(params) {\r\n return this.serviceMeta.httpGet('consumer/waitlist', null, params);\r\n }\r\n getFutureWaitlist(filter = {}) {\r\n const url = 'consumer/waitlist/future';\r\n return this.serviceMeta.httpGet(url, null, filter);\r\n }\r\n getAppointmentToday(params?) {\r\n return this.serviceMeta.httpGet('consumer/appointment/today', null, params);\r\n }\r\n getAppointmentFuture(params?) {\r\n return this.serviceMeta.httpGet('consumer/appointment/future', null, params);\r\n }\r\n getWaitlistHistory(params = {}) {\r\n return this.serviceMeta.httpGet('consumer/waitlist/history', null, params);\r\n }\r\n getAppointmentHistory(params?) {\r\n return this.serviceMeta.httpGet('consumer/appointment/history', null, params);\r\n }\r\n getAppointmentHistoryCount() {\r\n return this.serviceMeta.httpGet('consumer/appointment/history/count');\r\n }\r\n getAppointmentAttachmentsByUuid(uuid, accountid) {\r\n const url = 'consumer/appointment/share/attachments/' + uuid + '?account=' + accountid;\r\n return this.serviceMeta.httpGet(url);\r\n }\r\n getConsumerAppointmentAttachmentsByUuid(uuid, accountid) {\r\n const url = 'consumer/appointment/attachment/' + uuid + '?account=' + accountid;\r\n return this.serviceMeta.httpGet(url);\r\n }\r\n getWaitlistAttachmentsByUuid(uuid, accountid) {\r\n const url = 'consumer/waitlist/share/attachments/' + uuid + '?account=' + accountid;\r\n return this.serviceMeta.httpGet(url);\r\n }\r\n getConsumerWaitlistAttachmentsByUuid(uuid, accountid) {\r\n const url = 'consumer/waitlist/attachment/' + uuid + '?account=' + accountid;\r\n return this.serviceMeta.httpGet(url);\r\n }\r\n removeBooking(id: string, bookingType: string, accountID: any, data: any) {\r\n return this.serviceMeta.httpPut('consumer/' + bookingType + '/cancel/' + id + '?account=' + accountID, data);\r\n }\r\n getVirtualServiceInput(selectedService, callingModes, commObj) {\r\n let virtualServiceArray = {};\r\n if (callingModes !== '') {\r\n if (selectedService.virtualCallingModes[0].callingMode === 'GoogleMeet' || selectedService.virtualCallingModes[0].callingMode === 'Zoom') {\r\n virtualServiceArray[selectedService.virtualCallingModes[0].callingMode] = selectedService.virtualCallingModes[0].value;\r\n } else {\r\n virtualServiceArray[selectedService.virtualCallingModes[0].callingMode] = commObj['comWhatsappCountryCode'] + commObj['comWhatsappNo'];;\r\n }\r\n }\r\n for (const i in virtualServiceArray) {\r\n if (i === 'WhatsApp') {\r\n return virtualServiceArray;\r\n } else if (i === 'GoogleMeet') {\r\n return virtualServiceArray;\r\n } else if (i === 'Zoom') {\r\n return virtualServiceArray;\r\n } else if (i === 'Phone') {\r\n return virtualServiceArray;\r\n } else if (i === 'VideoCall') {\r\n return { 'VideoCall': '' };\r\n }\r\n }\r\n return '';\r\n }\r\n getServicesByDepartment(selectedDeptId: any) {\r\n console.log(\"Whole Services getServicesByDepartment:\", this.services);\r\n let activeServices = this.services.filter(service => (service.department === selectedDeptId && service.serviceAvailability && !service.provider));\r\n this.activeServices = activeServices;\r\n return activeServices;\r\n }\r\n getServicesByUser(selectedUserId: any) {\r\n console.log(\"Services getServicesByUser:\", this.services);\r\n console.log(\"User:\", selectedUserId);\r\n let activeServices = this.services.filter(service => (service.provider?.id === selectedUserId) && service.serviceAvailability);\r\n this.activeServices = activeServices;\r\n return activeServices;\r\n }\r\n getGlobalServices(deptId?) {\r\n console.log(\"Services getGlobalServices:\", this.services);\r\n let activeServices = [];\r\n if (deptId) {\r\n activeServices = this.services.filter(service => (!service.provider && service.department == deptId && service.serviceAvailability));\r\n } else {\r\n activeServices = this.services.filter(service => (!service.provider && service.serviceAvailability));\r\n }\r\n this.activeServices = activeServices;\r\n return activeServices;\r\n }\r\n getAppointmentByConsumerUUID(uuid, accountid) {\r\n const url = 'consumer/appointment/' + uuid + '?account=' + accountid;\r\n return this.serviceMeta.httpGet(url);\r\n }\r\n\r\n getServicesByLocationId(locid) {\r\n const url = 'consumer/waitlist/services/' + locid;\r\n return this.serviceMeta.httpGet(url);\r\n }\r\n getLocationsByServiceId(serviceId) {\r\n const url = 'consumer/service/' + serviceId + '/location';\r\n return this.serviceMeta.httpGet(url);\r\n }\r\n getWaitlistServices(locationId) {\r\n const _this = this;\r\n return new Promise(function (resolve, reject) {\r\n _this.getServicesByLocationId(locationId).subscribe(\r\n (services: any) => {\r\n resolve(services);\r\n }\r\n ), () => {\r\n resolve([]);\r\n }\r\n })\r\n }\r\n getAvailableDatessByLocationService(locid, servid, accountid?) {\r\n const url = 'consumer/appointment/availability/location/' + locid + '/service/' + servid + '?account=' + accountid;\r\n return this.serviceMeta.httpGet(url);\r\n }\r\n getServicebyLocationId(locationId) {\r\n console.log(\"Location Id:\", locationId);\r\n const _this = this;\r\n return new Promise(function (resolve, reject) {\r\n if (_this.services && _this.services.length > 0) {\r\n resolve(_this.services);\r\n } else {\r\n _this.getAppointmentServices(locationId).then(\r\n (appointmentServices: any) => {\r\n _this.getWaitlistServices(locationId).then(\r\n (wlServices: any) => {\r\n let services = [...appointmentServices, ...wlServices];\r\n resolve(services);\r\n }\r\n )\r\n }\r\n )\r\n }\r\n });\r\n }\r\n /**\r\n * returns Available dates for calendar\r\n * @param locid location id\r\n * @param servid service id\r\n * @param accountid account id\r\n */\r\n getSchedulesbyLocationandServiceIdavailability(locid, servid, accountid) {\r\n const _this = this;\r\n return new Promise(function (resolve) {\r\n if (locid && servid && accountid) {\r\n _this.getAvailableDatessByLocationService(locid, servid, accountid)\r\n .subscribe((data: any) => {\r\n const availables = data.filter(obj => obj.availableSlots);\r\n const availDates = availables.map(function (a) { return a.date; });\r\n let availableDates = availDates.filter(function (elem, index, self) {\r\n return index === self.indexOf(elem);\r\n });\r\n resolve(availableDates);\r\n }, () => {\r\n resolve([]);\r\n });\r\n }\r\n })\r\n }\r\n getQueuesbyLocationandServiceIdavailability(locid, servid, accountid) {\r\n const _this = this;\r\n let availableDates = [];\r\n if (locid && servid && accountid) {\r\n this.getQueuesbyLocationandServiceIdAvailableDates(locid, servid, accountid)\r\n .subscribe((data: any) => {\r\n const availables = data.filter(obj => obj.isAvailable);\r\n const availDates = availables.map(function (a) { return a.date; });\r\n availableDates = availDates.filter(function (elem, index, self) {\r\n return index === self.indexOf(elem);\r\n });\r\n });\r\n }\r\n return availableDates;\r\n }\r\n getQueuesbyLocationandServiceIdAvailableDates(locid, servid, accountid) {\r\n const url = 'consumer/waitlist/queues/available/' + locid + '/' + servid + '?account=' + accountid;\r\n return this.serviceMeta.httpGet(url);\r\n }\r\n validateVirtualCallInfo(callingModes, selectedService, commObj) {\r\n let valid = true;\r\n console.log(\"Calling Modes:\", callingModes);\r\n if (callingModes === '' || callingModes.length < 10) {\r\n for (const i in selectedService.virtualCallingModes) {\r\n if (selectedService.virtualCallingModes[i].callingMode === 'WhatsApp' || selectedService.virtualCallingModes[i].callingMode === 'Phone') {\r\n if (!commObj['comWhatsappNo'] && selectedService.serviceBookingType !== 'request') {\r\n valid = false;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n return valid;\r\n }\r\n getRescheduledInfo(bookingId, accountId, bookingMode) {\r\n const _this = this;\r\n return new Promise(function (resolve, reject) {\r\n if (!bookingId) {\r\n resolve(false);\r\n } else {\r\n if (bookingMode === 'Appointment') {\r\n _this.getAppointmentByConsumerUUID(bookingId, accountId).subscribe(\r\n (appointmentInfo) => {\r\n resolve(appointmentInfo);\r\n }\r\n )\r\n } else {\r\n _this.getCheckinByConsumerUUID(bookingId, accountId).subscribe(\r\n (waitlistInfo) => {\r\n resolve(waitlistInfo);\r\n }\r\n )\r\n }\r\n\r\n }\r\n })\r\n }\r\n addApptAdvancePayment(param, body) {\r\n const url = 'consumer/appointment/advancePayment';\r\n return this.serviceMeta.httpPut(url, body, null, param);\r\n }\r\n addWaitlistAdvancePayment(param, body) {\r\n const url = 'consumer/waitlist/advancePayment';\r\n return this.serviceMeta.httpPut(url, body, null, param);\r\n }\r\n getCheckinByConsumerUUID(uuid, accountid) {\r\n console.log(\"UUID:\", uuid);\r\n const url = 'consumer/waitlist/' + uuid + '?account=' + accountid;\r\n return this.serviceMeta.httpGet(url);\r\n }\r\n getSlotsByLocationServiceandDate(locid, servid, pdate, accountid) {\r\n const url = 'consumer/appointment/schedule/date/' + pdate + '/location/' + locid + '/service/' + servid + '?account=' + accountid;\r\n return this.serviceMeta.httpGet(url);\r\n }\r\n /**\r\n * \r\n * @param locid Location Id\r\n * @returns services of location\r\n */\r\n getQueuesbyLocationServiceAndDate(locid, servid, pdate, accountid) {\r\n const _this = this;\r\n return new Promise(function (resolve, reject) {\r\n _this.getQueuesbyLocationandServiceId(locid, servid, pdate, accountid)\r\n .subscribe((queues: any) => {\r\n resolve(queues);\r\n }, () => {\r\n resolve([]);\r\n })\r\n })\r\n }\r\n getQueuesbyLocationandServiceId(locid, servid, pdate?, accountid?) {\r\n const dd = (pdate !== undefined) ? '/' + pdate + '?account=' + accountid : '';\r\n const url = 'consumer/waitlist/queues/' + locid + '/' + servid + dd;\r\n return this.serviceMeta.httpGet(url);\r\n }\r\n getConvenientFeeOfProvider(provid, data?) {\r\n const url = 'consumer/payment/modes/convenienceFee/' + provid;\r\n return this.serviceMeta.httpPut(url, data);\r\n }\r\n getApptCoupons(servId, locId) {\r\n const url = 'consumer/appointment/service/' + servId + '/location/' + locId + '/coupons';\r\n return this.serviceMeta.httpGet(url);\r\n }\r\n getCheckinCoupons(servId, locId) {\r\n const url = 'consumer/waitlist/service/' + servId + '/location/' + locId + '/coupons';\r\n return this.serviceMeta.httpGet(url);\r\n }\r\n getServiceById(serviceId, type) {\r\n let service = this.services.filter(service => (service.id === serviceId && service.bType === type));\r\n return service[0];\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\n\r\nInjectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class ErrorMessagingService {\r\n\r\n API_ERROR = 'There was a problem while connecting to our server. Please try again.';\r\n\r\n constructor() {\r\n }\r\n getApiError(error: any) {\r\n console.log(\"Get Api Error:\", error);\r\n if (error.error && typeof error.error === 'string') {\r\n return error.error;\r\n } else if (typeof error === 'string') {\r\n return error;\r\n } else {\r\n return this.API_ERROR;\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ErrorMessagingService } from './error-message.service';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [ CommonModule ],\r\n exports: [],\r\n providers: [\r\n ErrorMessagingService\r\n ]\r\n})\r\nexport class ErrrorMessageModule { }\r\n","import { Injectable } from \"@angular/core\"\r\nimport { Messages } from \"./project-messages\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n/**\r\n * Terminology/Word Factory\r\n */\r\nexport class WordProcessor {\r\n TIMEOUT_DELAY_LARGE10 = 10000; // msec\r\n terminologies: any;\r\n spterminologies: any;\r\n\r\n constructor() { }\r\n /**\r\n * Method to set the terminlogies for Jaldee\r\n * @param terminologies \r\n */\r\n setTerminologies(terminologies: any) {\r\n // console.log(\"Set Terminologies:\", terminologies);\r\n this.terminologies = terminologies;\r\n }\r\n /**\r\n * Method to get the terminologies\r\n */\r\n getTerminologies() {\r\n return this.terminologies;\r\n }\r\n\r\n /**\r\n * Method to set the sp terminlogies for Jaldee\r\n * @param terminology \r\n */\r\n setSPTerminologies(terminology: any) {\r\n this.spterminologies = terminology;\r\n }\r\n\r\n /**\r\n * Method to get the sp terminologies\r\n */\r\n getSPTerminologies() {\r\n return this.spterminologies;\r\n }\r\n\r\n /**\r\n * Method returns the CamelCase\r\n * @param str text to convert\r\n */\r\n toCamelCase(str: any) {\r\n return str;\r\n }\r\n\r\n /**\r\n * Convert the first letter to Uppercase\r\n * @param str \r\n */\r\n firstToUpper(str: any) {\r\n if (str) {\r\n if (str.substr(0, 7) === 'http://' || str.substr(0, 8) === 'https://') {\r\n return str;\r\n } else {\r\n return str.charAt(0).toUpperCase() + str.substr(1);\r\n }\r\n }\r\n }\r\n /**\r\n * Show/Hide Success or Error Messages\r\n * @param ob Object to put the message\r\n * @param message Message to show\r\n */\r\n apiSuccessAutoHide(ob: any, message: any) {\r\n const replaced_message = this.findTerminologyTerm(message);\r\n ob.api_success = this.firstToUpper(replaced_message);\r\n setTimeout(() => {\r\n ob.api_success = null;\r\n }, this.TIMEOUT_DELAY_LARGE10);\r\n }\r\n /**\r\n * Show error and hide it automatically\r\n * @param ob Object holds the message\r\n * @param error Message to be shown\r\n */\r\n apiErrorAutoHide(ob: any, error: any) {\r\n // error = this.errorService.getApiError(error);\r\n const replaced_message = this.findTerminologyTerm(error);\r\n ob.api_error = this.firstToUpper(replaced_message);\r\n setTimeout(() => {\r\n ob.api_error = null;\r\n }, this.TIMEOUT_DELAY_LARGE10);\r\n }\r\n /**\r\n * Get the terminology from terminologies\r\n * @param term \r\n */\r\n getTerminologyTerm(term: any, terminologies?: any) {\r\n if (terminologies) {\r\n this.setTerminologies(terminologies);\r\n } else {\r\n terminologies = this.getTerminologies();\r\n }\r\n const term_only = term.replace(/[\\[\\]']/g, '').toLowerCase();\r\n // console.log(\"Get Terminology Term\", terminologies);\r\n if (terminologies) {\r\n return (terminologies[term_only]) ? terminologies[term_only] : ((term === term_only) ? term_only : term);\r\n } else {\r\n return (term === term_only) ? term_only : term;\r\n }\r\n }\r\n /**\r\n * Replace the term within the full message\r\n * @param term term to be replaced\r\n * @param full_message full message\r\n */\r\n removeTerminologyTerm(term: any, full_message: any) {\r\n const term_replace = this.getTerminologyTerm(term);\r\n // console.log(\"Term To replace:\", term_replace);\r\n const term_only = term.replace(/[\\[\\]']/g, ''); // term may me with or without '[' ']'\r\n // console.log(\"Term:\", term_only);\r\n return full_message.replace('[' + term_only + ']', term_replace);\r\n }\r\n /**\r\n * Find the terminology\r\n * @param message \r\n */\r\n findTerminologyTerm(message: any) {\r\n // console.log(\"Message:\", message);\r\n let replaced_msg = message;\r\n if (message) {\r\n const matches = message.match(/\\[(.*?)\\]/g);\r\n replaced_msg = message;\r\n // console.log(\"Matches\", matches);\r\n if (matches) {\r\n for (const match of matches) {\r\n replaced_msg = this.removeTerminologyTerm(match, replaced_msg);\r\n }\r\n }\r\n }\r\n return replaced_msg;\r\n }\r\n /**\r\n * get the message from the messages list\r\n * @param key identifier for the message\r\n */\r\n getProjectMesssages(key: any) {\r\n let message = Messages[key] || '';\r\n message = this.findTerminologyTerm(message);\r\n return this.firstToUpper(message);\r\n }\r\n /**\r\n * Extract error message from the error object\r\n * @param error error message to shown\r\n */\r\n getProjectErrorMesssages(message: any, terminologies?: any) {\r\n if (terminologies) {\r\n this.setTerminologies(this.terminologies);\r\n }\r\n // let message = this.errorService.getApiError(error);\r\n message = this.findTerminologyTerm(message);\r\n return this.firstToUpper(message);\r\n }\r\n /**\r\n * Get the terminology from terminologies\r\n * @param term \r\n */\r\n getSPTerminologyTerm(term: any) {\r\n const term_only = term;\r\n const terminologies = this.getSPTerminologies();\r\n // console.log(\"Terminologies:\", terminologies);\r\n if (terminologies) {\r\n return (terminologies[term_only]) ? terminologies[term_only] : ((term === term_only) ? term_only : term);\r\n } else {\r\n return (term === term_only) ? term_only : term;\r\n }\r\n }\r\n}","import { Injectable } from \"@angular/core\";\r\n\r\nInjectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class CurrencyService {\r\n\r\n constructor() {\r\n }\r\n\r\n print_PricewithCurrency(price: any) {\r\n return '₹' + ' ' + price.toFixed(2);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { ServiceMeta } from './service-meta';\r\n\r\n\r\n@Injectable()\r\n// tslint:disable-next-line: component-class-suffix\r\nexport class RazorpayService {\r\n status_check: any;\r\n private paidStatus = new BehaviorSubject<string>('false');\r\n currentStatus = this.paidStatus.asObservable();\r\n paymentModes = [{ method: \"netbanking\" }, { method: \"paylater\" }, { method: \"card\" },\r\n { method: \"upi\" }, { method: \"wallet\" }];\r\n\r\n constructor(private servicemeta: ServiceMeta\r\n ) { }\r\n\r\n changePaidStatus(value: string) {\r\n this.paidStatus.next(value);\r\n }\r\n onReloadPage() {\r\n window.location.reload();\r\n }\r\n \r\n updateResult(payload: any, accountId?: any){\r\n let url = 'provider/payment/razorpay/update';\r\n if (accountId) {\r\n url+='?account='+accountId;\r\n }\r\n return this.servicemeta.httpPost(url, payload);\r\n }\r\n\r\n updateRazorPay(payload: any, accountId?: any) {\r\n const self = this;\r\n return new Promise((resolve, reject) => {\r\n self.updateResult(payload, accountId).subscribe((result:any) => {\r\n resolve(result);\r\n }, (error: any) => {\r\n reject(false);\r\n })\r\n })\r\n }\r\n\r\n initializePayment(pData: any, accountId: any, referrer: any, type?: any) {\r\n let razorInterval: any;\r\n let prefillModel: any = {}\r\n if (type === 'provider') {\r\n prefillModel['name'] = pData.providerName;\r\n } else {\r\n prefillModel['name'] = pData.consumerName;\r\n }\r\n prefillModel['name'] = pData.consumerName;\r\n prefillModel['email'] = pData.ConsumerEmail;\r\n prefillModel['contact'] = pData.consumerPhoneumber;\r\n\r\n let razorModel: any = {\r\n prefill: prefillModel,\r\n key: pData.razorpayId,\r\n amount: pData.amount,\r\n currency: 'INR',\r\n order_id: pData.orderId,\r\n name: pData.providerName,\r\n description: pData.description,\r\n mode: pData.paymentMode,\r\n retry: false,\r\n theme: {\r\n color: '#F37254'\r\n },\r\n modal: {\r\n // We should prevent closing of the form when esc key is pressed.\r\n escape: false\r\n },\r\n notes: {\r\n // include notes if any\r\n }\r\n }\r\n let selectedmode = pData.paymentMode;\r\n\r\n if (selectedmode === 'DC' || selectedmode === 'CC') {\r\n selectedmode = 'CARD';\r\n }\r\n if (selectedmode === 'NB') {\r\n selectedmode = 'NETBANKING';\r\n }\r\n console.log(selectedmode);\r\n const hiddenObject = this.paymentModes.filter((mode) => mode.method !== selectedmode.toLowerCase());\r\n console.log('hideenobject' + JSON.stringify(hiddenObject));\r\n razorModel['config'] = {\r\n display: {\r\n hide: hiddenObject\r\n }\r\n }\r\n const options = razorModel;\r\n options['handler'] = ((response: any, error: any) => {\r\n console.log(error);\r\n options['response'] = response;\r\n console.log('orpitons.response' + JSON.stringify(options['response']));\r\n\r\n const razorpay_payload = {\r\n \"paymentId\": response.razorpay_payment_id,\r\n \"orderId\": response.razorpay_order_id,\r\n \"signature\": response.razorpay_signature\r\n };\r\n\r\n let successResponse = {\r\n STATUS: 'TXN_SUCCESS',\r\n SRC: 'razorPay'\r\n }\r\n clearTimeout(razorInterval);\r\n referrer.transactionCompleted(successResponse, razorpay_payload, accountId);\r\n // call your backend api to verify payment signature & capture transaction\r\n // });\r\n // options.modal.ondismiss = (() => {\r\n // // handle the case when user closes the form while transaction is in progress\r\n });\r\n\r\n options.modal['ondismiss'] = (() => {\r\n let failureResponse = {\r\n STATUS: 'TXN_FAILURE',\r\n SRC: 'razorPay'\r\n }\r\n referrer.transactionCompleted(failureResponse, null, accountId);\r\n });\r\n\r\n this.loadRazorpayScript(pData, referrer).onload = () => {\r\n const rzp = new this.nativeWindow.Razorpay(options);\r\n rzp.open();\r\n rzp.on('payment.failed', function (response: any) {\r\n let failureResponse: any = {\r\n STATUS: 'TXN_FAILURE',\r\n SRC: 'razorPay'\r\n }\r\n failureResponse['error'] = response.error;\r\n referrer.transactionCompleted(failureResponse, null, accountId);\r\n });\r\n razorInterval = setTimeout(() => {\r\n rzp.close();\r\n location.reload();\r\n }, 540000);\r\n };\r\n }\r\n get nativeWindow(): ICustomWindow {\r\n return this.getWindow();\r\n }\r\n getWindow(): any {\r\n return window;\r\n }\r\n public loadRazorpayScript(pData: any, isfrom: any): HTMLScriptElement {\r\n const url = \"https://checkout.razorpay.com/v1/checkout.js\";\r\n console.log('preparing to load...');\r\n let script: any = document.createElement('script');\r\n script.id = pData.orderId;\r\n script.src = url;\r\n script.type = 'text/javascript';\r\n script.async = true;\r\n script['crossorigin'] = \"anonymous\"\r\n console.log(isfrom.paytmview);\r\n isfrom.paytmview.nativeElement.appendChild(script);\r\n return script;\r\n }\r\n}\r\nexport interface ICustomWindow extends Window {\r\n Razorpay: any;\r\n __custom_global_stuff: string;\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { ServiceMeta } from \"./service-meta\";\r\nimport { projectConstantsLocal } from \"./project-constants\";\r\n\r\n\r\n@Injectable()\r\nexport class PaytmService {\r\n paymentModes = [\r\n 'NB', 'CC', 'DC', 'UPI', 'PPI', 'CARD'\r\n ];\r\n constructor(\r\n private servicemeta: ServiceMeta\r\n ) { }\r\n initializePayment(pData: any, accountId: any, referrer: any) {\r\n let response = JSON.parse(pData.response);\r\n if (pData.paymentMode === 'CC' || pData.paymentMode === 'DC') {\r\n pData.paymentMode = 'CARD';\r\n }\r\n const paymentModesHidden = this.paymentModes.filter(obj => obj !== pData.paymentMode);\r\n const paytm_payload = {\r\n \"paymentId\": pData.txnid,\r\n \"orderId\": pData.orderId,\r\n \"siganature\": response.signature\r\n\r\n };\r\n console.log('response' + JSON.stringify(response));\r\n this.loadPayTMScript(pData, referrer).onload = () => {\r\n var config = {\r\n \"root\": \"\",\r\n \"flow\": \"DEFAULT\",\r\n \"data\": {\r\n \"orderId\": pData.orderId, /* update order id */\r\n \"token\": response.body.txnToken, /* update token value */\r\n \"tokenType\": \"TXN_TOKEN\",\r\n \"amount\": pData.amount\r\n },\r\n \"merchant\": {\r\n \"mid\": pData.merchantId,\r\n \"redirect\": false,\r\n \"multipleWindowWebview\": true\r\n },\r\n \"payMode\": {\r\n \"filter\": {\r\n 'exclude': paymentModesHidden\r\n }\r\n },\r\n \"handler\": {\r\n \"notifyMerchant\": function (eventName: any, data: any) {\r\n console.log(\"notifyMerchant handler function called\");\r\n console.log(\"eventName => \", eventName);\r\n console.log(\"data => \", data);\r\n referrer.closeloading();\r\n },\r\n \"transactionStatus\": function (data: any) {\r\n console.log(\"payment status \", data);\r\n console.log(paytm_payload);\r\n window['Paytm'].CheckoutJS.close();\r\n if (data) {\r\n referrer.transactionCompleted(data, paytm_payload, accountId);\r\n } else {\r\n referrer.transactionCompleted({ STATUS: 'TXN_SUCCESS' }, paytm_payload, accountId);\r\n }\r\n }\r\n }\r\n };\r\n console.log(JSON.stringify(config));\r\n if (window['Paytm'] && window['Paytm'].CheckoutJS) {\r\n window['Paytm'].CheckoutJS.onLoad(function excecuteAfterCompleteLoad() {\r\n // initialze configuration using init method \r\n window['Paytm'].CheckoutJS.init(config).then(function onSuccess() {\r\n // after successfully updating configuration, invoke JS Checkout\r\n window['Paytm'].CheckoutJS.invoke();\r\n }).catch(function onError(error: any) {\r\n console.log(\"error => \", error);\r\n window['Paytm'].CheckoutJS.close();\r\n referrer.closeloading();\r\n });\r\n });\r\n }\r\n };\r\n\r\n setTimeout(() => {\r\n window['Paytm'].CheckoutJS.close();\r\n referrer.closeloading();\r\n }, 600000);\r\n }\r\n\r\n public loadPayTMScript(pData: any, isfrom: any): HTMLScriptElement {\r\n let payTmurl;\r\n if (pData.paymentEnv == 'production') {\r\n payTmurl = projectConstantsLocal.PAYTM_URL;\r\n } else {\r\n payTmurl = projectConstantsLocal.PAYTMLOCAL_URL;\r\n }\r\n const url = payTmurl + '/merchantpgpui/checkoutjs/merchants/' + pData.merchantId + '.js';\r\n console.log('preparing to load...');\r\n let script: any = document.createElement('script');\r\n script.id = pData.orderId;\r\n script.src = url;\r\n script.type = 'text/javascript';\r\n script.async = true;\r\n script['crossorigin'] = \"anonymous\"\r\n // node.charset = 'utf-8';\r\n // this.renderer.appendChild(document.body, script);\r\n console.log(isfrom.paytmview);\r\n // document.getElementById('consumer_donation').appendChild(script);\r\n isfrom.paytmview.nativeElement.appendChild(script);\r\n return script;\r\n }\r\n updateResult(payload: any, accountId?: any) {\r\n let url = 'provider/payment/paytm/update';\r\n if (accountId) {\r\n url += '?account=' + accountId;\r\n }\r\n return this.servicemeta.httpPost(url, payload);\r\n }\r\n\r\n updatePaytmPay(payload: any, accountId?: any) {\r\n const self = this;\r\n return new Promise((resolve, reject) => {\r\n self.updateResult(payload, accountId).subscribe((result: any) => {\r\n resolve(result);\r\n }, (error: any) => {\r\n reject(false);\r\n })\r\n })\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from \"@angular/core\";\r\nimport { DomSanitizer } from \"@angular/platform-browser\";\r\n\r\n@Pipe({ name: 'safeHtml'})\r\nexport class SafeHtmlPipe implements PipeTransform {\r\n constructor(private sanitized: DomSanitizer) {}\r\n transform(value: any) {\r\n return this.sanitized.bypassSecurityTrustHtml(value);\r\n }\r\n}","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SafeHtmlPipe } from './safehtml.pipe';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [SafeHtmlPipe],\r\n exports: [SafeHtmlPipe]\r\n})\r\nexport class SafeHtmlModule {}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'limitTo'\r\n})\r\n\r\nexport class TruncatePipe implements PipeTransform {\r\n transform(value: string, args: any[]): string {\r\n const limit = args.length > 0 ? parseInt(args[0], 10) : 20;\r\n const trail = args.length > 1 ? args[1] : '...';\r\n return value.length > limit ? value.substring(0, limit) + trail : value;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TruncatePipe } from './limitTo.pipe';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [TruncatePipe],\r\n exports: [TruncatePipe]\r\n})\r\nexport class TruncateModule {\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'filter'\r\n})\r\nexport class FilterPipe implements PipeTransform {\r\n transform(items: any[], searchText: string): any[] {\r\n if (!items) return [];\r\n if (!searchText) return items;\r\n \r\n return items.filter(item => {\r\n return Object.keys(item).some(key => {\r\n return String(item[key]).toLowerCase().includes(searchText.toLowerCase());\r\n });\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FilterPipe } from './filter.pipe';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [FilterPipe],\r\n exports: [FilterPipe],\r\n providers: [FilterPipe]\r\n})\r\nexport class FilterPipeModule {\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({name: 'capitalizeFirst'})\r\nexport class CapitalizeFirstPipe implements PipeTransform {\r\n transform(value: string): string {\r\n if (value !== null && value !== undefined ) {\r\n value = value.toString().trim();\r\n return value.charAt(0).toUpperCase() + value.slice(1);\r\n }\r\n return '';\r\n }\r\n }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CapitalizeFirstPipe } from './capitalize.pipe';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [CapitalizeFirstPipe],\r\n exports: [CapitalizeFirstPipe]\r\n})\r\nexport class CapitalizeFirstPipeModule {\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'autolink'\r\n})\r\nexport class AutolinkPipe implements PipeTransform {\r\n\r\n transform(value: string): string {\r\n if (!value) return value;\r\n\r\n const urlPattern = /(\\b(https?|ftp|file):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;]*[-A-Z0-9+&@#\\/%=~_|])/ig;\r\n const emailPattern = /([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\\.[a-zA-Z0-9._-]+)/ig;\r\n\r\n return value\r\n .replace(urlPattern, '<a href=\"$1\" target=\"_blank\">$1</a>')\r\n .replace(emailPattern, '<a href=\"mailto:$1\">$1</a>');\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AutolinkPipe } from './autolink.pipe';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [AutolinkPipe],\r\n exports: [AutolinkPipe]\r\n})\r\nexport class AutolinkPipeModule {}","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DatePipe } from '@angular/common';\r\n\r\n@Pipe({\r\n name: 'dateFormat'\r\n})\r\nexport class DateFormatPipe implements PipeTransform {\r\n\r\n transform(value: any, args?: any): any {\r\n return null;\r\n }\r\n\r\n transformTofilterDate(value: any) {\r\n const datePipe = new DatePipe('en-US');\r\n value = datePipe.transform(value, 'yyyy-MM-dd');\r\n return value;\r\n }\r\n transformTomciDate(value: any) {\r\n const datePipe = new DatePipe('en-US');\r\n value = datePipe.transform(value, 'yyyy/MM/dd');\r\n return value;\r\n }\r\n transformToDIsplayFormat(value: any) {\r\n const datePipe = new DatePipe('en-US');\r\n value = datePipe.transform(value, 'dd/MM/y');\r\n return value;\r\n }\r\n transformToMonthlyDate(value: any) {\r\n const datePipe = new DatePipe('en-US');\r\n value = datePipe.transform(value, 'MMM d, y');\r\n return value;\r\n\r\n }\r\n transformToDateWithTime(value: any) {\r\n const datePipe = new DatePipe('en-US');\r\n value = datePipe.transform(value, 'dd/MM/yyyy HH:mm a');\r\n return value;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { DateFormatPipe } from './date-format.pipe';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [DateFormatPipe],\r\n exports: [DateFormatPipe],\r\n providers: [DateFormatPipe]\r\n})\r\nexport class DateFormatPipeModule {\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'shortFileName'\r\n})\r\nexport class ShortFileNamePipe implements PipeTransform {\r\n\r\n transform(value: string, len: number): string {\r\n const dotIndex = value.lastIndexOf('.');\r\n if (dotIndex === -1) return value;\r\n\r\n const prefix = value.slice(0, len);\r\n const extension = value.slice(dotIndex);\r\n return `${prefix}...${extension}`;\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ShortFileNamePipe } from './short-file-name.pipe';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n ShortFileNamePipe\r\n ],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [\r\n ShortFileNamePipe\r\n ]\r\n})\r\nexport class ShortFileNameModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule } from '@angular/router';\r\n\r\nimport { FieldErrorDisplayComponent } from './field-error-display/field-error-display.component';\r\nimport { FormSuccessDisplayComponent } from './form-success-display/form-success-display.component';\r\nimport { FormMessageDisplayService } from './form-message-display.service';\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n RouterModule\r\n ],\r\n declarations: [FieldErrorDisplayComponent,\r\n FormSuccessDisplayComponent],\r\n exports: [FieldErrorDisplayComponent,\r\n FormSuccessDisplayComponent],\r\n providers: [\r\n FormMessageDisplayService\r\n ]\r\n})\r\nexport class FormMessageDisplayModule { }\r\n","import { Injectable } from \"@angular/core\";\r\nimport moment from 'moment';\r\nimport { ServiceMeta } from \"../../service-meta\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\n/**\r\n * Class which handles date/time related functions\r\n */\r\nexport class DateTimeProcessor {\r\n\r\n REGION_LANGUAGE = \"en-US\";\r\n TIME_ZONE_REGION = \"Asia/Kolkata\";\r\n myweekdaysSchedule = [\r\n \"\",\r\n \"Sun\",\r\n \"Mon\",\r\n \"Tue\",\r\n \"Wed\",\r\n \"Thu\",\r\n \"Fri\",\r\n \"Sat\"\r\n ];\r\n\r\n constructor(private servicemeta: ServiceMeta) { }\r\n\r\n /**\r\n * \r\n * @param date1 \r\n * @param date2 \r\n * @returns difference between the two dates\r\n */\r\n getdaysdifffromDates(date1: any, date2: any) {\r\n let firstdate;\r\n let seconddate;\r\n if (date1 === 'now') {\r\n firstdate = new Date();\r\n } else {\r\n firstdate = new Date(date1);\r\n }\r\n seconddate = new Date(date2);\r\n const hours = Math.abs(firstdate.getTime() - seconddate.getTime()) / 36e5; // 36e5 is the scientific notation for 60*60*1000\r\n return { 'hours': hours };\r\n }\r\n\r\n /**\r\n * \r\n * @param time \r\n * @returns \r\n */\r\n getTimeAsNumberOfMinutes(time: string) {\r\n const timeParts = time.split(':');\r\n const timeInMinutes = (parseInt(timeParts[0], 10) * 60) + parseInt(timeParts[1], 10);\r\n return timeInMinutes;\r\n }\r\n /**\r\n * convert year-month-day to day-monthname-year\r\n * @param psdate \r\n * @param params \r\n * @returns \r\n */\r\n formatDate(psdate: string, params: any = []) {\r\n const monthNames: any = {\r\n '01': 'Jan',\r\n '02': 'Feb',\r\n '03': 'Mar',\r\n '04': 'Apr',\r\n '05': 'May',\r\n '06': 'Jun',\r\n '07': 'Jul',\r\n '08': 'Aug',\r\n '09': 'Sep',\r\n '10': 'Oct',\r\n '11': 'Nov',\r\n '12': 'Dec'\r\n };\r\n const darr = psdate.split('-');\r\n if (params['rettype'] === 'monthname') {\r\n darr[1] = monthNames[darr[1]];\r\n return darr[1] + ' ' + darr[2];\r\n } else if (params['rettype'] === 'fullarr') {\r\n darr[1] = monthNames[darr[1]];\r\n return darr;\r\n } else {\r\n return darr[1] + ' ' + darr[2];\r\n }\r\n }\r\n /**\r\n * \r\n * @param i \r\n * @returns \r\n */\r\n addZero(i: any) {\r\n if (i < 10) {\r\n i = '0' + i;\r\n }\r\n return i;\r\n }\r\n /**\r\n * \r\n * @param time \r\n * @param secreq \r\n * @returns \r\n */\r\n convert24HourtoAmPm(time: string, secreq?:any) {\r\n const timesp = time.split(':');\r\n let hr = parseInt(timesp[0], 10);\r\n const min = parseInt(timesp[1], 10);\r\n const sec = parseInt(timesp[2], 10);\r\n let ampm = '';\r\n let retstr = '';\r\n if (hr >= 12) {\r\n hr = hr - 12;\r\n if (hr === 0) {\r\n hr = 12;\r\n ampm = 'PM';\r\n } else if (hr < 0) {\r\n ampm = 'AM';\r\n } else {\r\n ampm = 'PM';\r\n }\r\n } else if (hr === 0) {\r\n hr = 12;\r\n ampm = 'AM';\r\n } else {\r\n ampm = 'AM';\r\n }\r\n retstr = this.addZero(hr) + ':' + this.addZero(min);\r\n if (secreq) {\r\n retstr += ':' + sec;\r\n }\r\n retstr += ' ' + ampm;\r\n return retstr;\r\n }\r\n\r\n /**\r\n * \r\n * @param mins \r\n * @returns \r\n */\r\n providerConvertMinutesToHourMinute(mins: any) {\r\n let rethr = '';\r\n let retmin = '';\r\n if (mins > 0) {\r\n const hr = Math.floor(mins / 60);\r\n const min = Math.floor(mins % 60);\r\n if (hr > 0) {\r\n if (hr > 1) {\r\n rethr = hr + ' Hrs';\r\n } else {\r\n rethr = hr + ' Hr';\r\n }\r\n }\r\n if (min > 0) {\r\n if (min > 1) {\r\n retmin = ' ' + min + ' Mins';\r\n } else {\r\n retmin = ' ' + min + ' Min';\r\n }\r\n }\r\n } else {\r\n retmin = '' + 0 + ' Min';\r\n }\r\n return rethr + retmin;\r\n }\r\n /**\r\n * \r\n * @param mins \r\n * @returns \r\n */\r\n convertMinutesToHourMinute(mins: any) {\r\n let rethr = '';\r\n let retmin = '';\r\n if (mins > 0) {\r\n const hr = Math.floor(mins / 60);\r\n const min = Math.floor(mins % 60);\r\n if (hr > 0) {\r\n if (hr > 1) {\r\n rethr = hr + ' hours';\r\n } else {\r\n rethr = hr + ' hour';\r\n }\r\n }\r\n if (min > 0) {\r\n if (min > 1) {\r\n retmin = ' ' + min + ' minutes';\r\n } else {\r\n retmin = ' ' + min + ' minute';\r\n }\r\n }\r\n } else {\r\n retmin = '' + 0 + ' minutes';\r\n }\r\n return rethr + retmin;\r\n }\r\n /**\r\n * \r\n * @param mins \r\n * @returns \r\n */\r\n convertMinutesToHourMinuteForCheckin(mins: any) {\r\n let rethr = '';\r\n let retmin = '';\r\n if (mins > 0) {\r\n const hr = Math.floor(mins / 60);\r\n const min = Math.floor(mins % 60);\r\n if (hr > 0) {\r\n if (hr > 1) {\r\n rethr = hr + 'Hrs';\r\n } else {\r\n rethr = hr + 'Hr';\r\n }\r\n }\r\n if (min > 0) {\r\n if (min > 1) {\r\n retmin = ' ' + min + 'Mins';\r\n } else {\r\n retmin = ' ' + min + 'Min';\r\n }\r\n }\r\n } else {\r\n retmin = '' + 0 + 'Min';\r\n }\r\n return rethr + retmin;\r\n }\r\n /**\r\n * \r\n * @param time \r\n * @returns \r\n */\r\n getDateFromTimeString(time: string) {\r\n const startTime = new Date();\r\n const parts = time.match(/(\\d+):(\\d+) (AM|PM)/);\r\n if (parts) {\r\n let hours = parseInt(parts[1], 0);\r\n const minutes = parseInt(parts[2], 0);\r\n const tt = parts[3];\r\n if (tt === 'PM' && hours < 12) {\r\n hours += 12;\r\n }\r\n startTime.setHours(hours, minutes, 0, 0);\r\n }\r\n return startTime;\r\n }\r\n /**\r\n * \r\n * @param dt \r\n * @param mod \r\n * @returns \r\n */\r\n stringtoDate(dt: string, mod: string) {\r\n let dtsarr;\r\n if (dt) {\r\n dtsarr = dt.split(' ');\r\n const dtarr = dtsarr[0].split('-');\r\n let retval = '';\r\n if (mod === 'all') {\r\n retval = dtarr[2] + '/' + dtarr[1] + '/' + dtarr[0] + ' ' + dtsarr[1] + ' ' + dtsarr[2];\r\n } else if (mod === 'date') {\r\n retval = dtarr[2] + '/' + dtarr[1] + '/' + dtarr[0];\r\n } else if (mod === 'time') {\r\n retval = dtsarr[1] + ' ' + dtsarr[2];\r\n }\r\n return retval;\r\n } else {\r\n return '';\r\n }\r\n }\r\n /**\r\n * \r\n * @param date \r\n * @returns \r\n */\r\n transformToYMDFormat(date: any) {\r\n console.log(\"In transformToYMDFormat:\", date);\r\n const server = date.toLocaleString(this.REGION_LANGUAGE, { timeZone: this.TIME_ZONE_REGION });\r\n const serverdate = moment(server).format();\r\n const newdate = new Date(serverdate);\r\n const dd = newdate.getDate();\r\n const mm = newdate.getMonth() + 1;\r\n const y = newdate.getFullYear();\r\n const date1 = y + '-' + mm + '-' + dd;\r\n return date1;\r\n }\r\n /**\r\n * \r\n * @param dateStr \r\n * @returns \r\n */\r\n formatDateDisplay(dateStr: string) {\r\n const pubDate = new Date(dateStr);\r\n const obtshowdate = this.addZero(pubDate.getDate()) + '/' + this.addZero((pubDate.getMonth() + 1)) + '/' + pubDate.getFullYear();\r\n return obtshowdate;\r\n }\r\n /**\r\n * \r\n * @returns \r\n */\r\n getMoment() {\r\n return moment;\r\n }\r\n /**\r\n * \r\n * @param num \r\n * @returns \r\n */\r\n getDay(num: any) {\r\n return this.myweekdaysSchedule[num];\r\n }\r\n\r\n /**\r\n * Convert Date to String in YYYYMMDD format\r\n * @param inputDate input date\r\n * @returns string\r\n */\r\n getStringFromDate_YYYYMMDD(inputDate: any) {\r\n const today = new Date(inputDate);\r\n const dd = today.getDate();\r\n const mm = today.getMonth() + 1; // January is 0!\r\n const yyyy = today.getFullYear();\r\n let cday = '';\r\n if (dd < 10) {\r\n cday = '0' + dd;\r\n } else {\r\n cday = '' + dd;\r\n }\r\n let cmon;\r\n if (mm < 10) {\r\n cmon = '0' + mm;\r\n } else {\r\n cmon = '' + mm;\r\n }\r\n const dateString = yyyy + '-' + cmon + '-' + cday;\r\n return dateString;\r\n }\r\n\r\n getLocaleDateFromServer(serverDate: any) {\r\n return new Date(serverDate.split(' ')[0]).toLocaleString(this.REGION_LANGUAGE, { timeZone: this.TIME_ZONE_REGION })\r\n }\r\n\r\n getToday(serverDate: any) {\r\n let today: any;\r\n today = new Date(serverDate.split(' ')[0]).toLocaleString(this.REGION_LANGUAGE, { timeZone: this.TIME_ZONE_REGION });\r\n today = new Date(today);\r\n const dd = today.getDate();\r\n const mm = today.getMonth() + 1; // January is 0!\r\n const yyyy = today.getFullYear();\r\n let cday = '';\r\n if (dd < 10) {\r\n cday = '0' + dd;\r\n } else {\r\n cday = '' + dd;\r\n }\r\n let cmon;\r\n if (mm < 10) {\r\n cmon = '0' + mm;\r\n } else {\r\n cmon = '' + mm;\r\n }\r\n const dtoday = yyyy + '-' + cmon + '-' + cday;\r\n return dtoday;\r\n }\r\n\r\n isFutureDate(serverDate: any, appmtDate: any) {\r\n let today: any;\r\n today = this.getToday(serverDate);\r\n const dt0 = today.toLocaleString(this.REGION_LANGUAGE, { timeZone: this.TIME_ZONE_REGION });\r\n const dt2 = moment(dt0, 'YYYY-MM-DD HH:mm').format();\r\n const date2 = new Date(dt2);\r\n const dte0 = appmtDate.toLocaleString(this.REGION_LANGUAGE, { timeZone: this.TIME_ZONE_REGION });\r\n const dte2 = moment(dte0, 'YYYY-MM-DD HH:mm').format();\r\n const datee2 = new Date(dte2);\r\n if (datee2.getTime() !== date2.getTime()) { // this is to decide whether future date selection is to be displayed. This is displayed if the sel_checkindate is a future date\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n getMomentDate(pdate: any) {\r\n return moment(pdate, 'YYYY-MM-DD HH:mm').format();\r\n }\r\n\r\n /**\r\n * \r\n * @param date \r\n * @returns \r\n */\r\n transformToMMDDYYYY_(date: any) {\r\n const server = date.toLocaleString(this.REGION_LANGUAGE, { timeZone: this.TIME_ZONE_REGION });\r\n const serverdate = moment(server).format();\r\n const newdate = new Date(serverdate);\r\n const dd = newdate.getDate();\r\n const mm = newdate.getMonth() + 1;\r\n const y = newdate.getFullYear();\r\n const date1 = mm + '/' + dd + '/' + y;\r\n return date1;\r\n }\r\n\r\n getCurrentUTCdatetimestring() {\r\n const curdate = new Date();\r\n const cdate = new Date(Date.UTC(curdate.getUTCFullYear(), curdate.getUTCMonth(), curdate.getUTCDate(), curdate.getUTCHours(),\r\n curdate.getUTCMinutes(), curdate.getUTCSeconds(), curdate.getUTCMilliseconds()));\r\n return cdate.toISOString();\r\n }\r\n\r\n getSystemDate() {\r\n return this.servicemeta.httpGet('provider/server/date');\r\n }\r\n \r\n AMHourto24(date: any, time12: any) {\r\n const time = time12;\r\n let hours = Number(time.match(/^(\\d+)/)[1]);\r\n const minutes = Number(time.match(/:(\\d+)/)[1]);\r\n const AMPM = time.match(/\\s(.*)$/)[1];\r\n if (AMPM === 'PM' && hours < 12) { hours = hours + 12; }\r\n if (AMPM === 'AM' && hours === 12) { hours = hours - 12; }\r\n const sHours = hours;\r\n const sMinutes = minutes;\r\n const mom_date = moment(date);\r\n mom_date.set('hour', sHours);\r\n mom_date.set('minute', sMinutes);\r\n return mom_date;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TimezoneConverter {\r\n\r\n constructor() {\r\n\r\n }\r\n // Function to dynamically fetch timezone abbreviation\r\n private getTimezoneAbbreviation(timeZone: string): string {\r\n const date = new Date();\r\n const options: Intl.DateTimeFormatOptions = {\r\n timeZone,\r\n timeStyle: 'short', // Use valid options for timeStyle\r\n hourCycle: 'h12'\r\n };\r\n // Create a formatter for the time zone\r\n const formatter = new Intl.DateTimeFormat([], options);\r\n // Get the timezone abbreviation\r\n const parts = formatter.formatToParts(date);\r\n const timeZoneAbbr = parts.find(part => part.type === 'timeZoneName')?.value;\r\n // If the abbreviation isn't available, return the full timezone\r\n return timeZoneAbbr || 'IST'; // Default to IST if abbreviation is not found\r\n }\r\n\r\n getZonedTime(message) {\r\n const timestamp = JSON.parse(message.timeStamp); // Parse the timestamp\r\n const timeZone = message.timeZone.trim(); // Trim the time zone\r\n const date = new Date(timestamp); // Create a Date object\r\n const formatter = new Intl.DateTimeFormat('en-US', {\r\n timeZone,\r\n year: 'numeric',\r\n month: 'short',\r\n day: '2-digit',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n hour12: true,\r\n });\r\n\r\n // Format the date using Intl.DateTimeFormat\r\n const formattedDate = formatter.format(date);\r\n const timeZoneAbbreviation = this.getTimezoneAbbreviation(timeZone);\r\n return `${formattedDate} (${timeZoneAbbreviation})`;\r\n }\r\n}","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-skeleton-loading',\r\n templateUrl: './skeleton-loading.component.html',\r\n styleUrls: ['./skeleton-loading.component.css']\r\n})\r\nexport class SkeletonLoadingComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<ul class=\"o-vertical-spacing o-vertical-spacing--l\">\r\n <li class=\"blog-post o-media\">\r\n <div class=\"o-media__figure\">\r\n <span class=\"skeleton-box\" style=\"width:100px;height:80px;\"></span>\r\n </div>\r\n <div class=\"o-media__body\">\r\n <div class=\"o-vertical-spacing\">\r\n <h3 class=\"blog-post__headline\">\r\n <span class=\"skeleton-box\" style=\"width:55%;\"></span>\r\n </h3>\r\n <p>\r\n <span class=\"skeleton-box\" style=\"width:80%;\"></span>\r\n <span class=\"skeleton-box\" style=\"width:90%;\"></span>\r\n <span class=\"skeleton-box\" style=\"width:83%;\"></span>\r\n <span class=\"skeleton-box\" style=\"width:80%;\"></span>\r\n </p>\r\n <div class=\"blog-post__meta\">\r\n <span class=\"skeleton-box\" style=\"width:70px;\"></span>\r\n </div>\r\n </div>\r\n </div>\r\n </li>\r\n <li class=\"blog-post o-media\">\r\n <div class=\"o-media__figure\">\r\n <span class=\"skeleton-box\" style=\"width:100px;height:80px;\"></span>\r\n </div>\r\n <div class=\"o-media__body\">\r\n <div class=\"o-vertical-spacing\">\r\n <h3 class=\"blog-post__headline\">\r\n <span class=\"skeleton-box\" style=\"width:55%;\"></span>\r\n </h3>\r\n <p>\r\n <span class=\"skeleton-box\" style=\"width:80%;\"></span>\r\n <span class=\"skeleton-box\" style=\"width:90%;\"></span>\r\n <span class=\"skeleton-box\" style=\"width:83%;\"></span>\r\n <span class=\"skeleton-box\" style=\"width:80%;\"></span>\r\n </p>\r\n <div class=\"blog-post__meta\">\r\n <span class=\"skeleton-box\" style=\"width:70px;\"></span>\r\n </div>\r\n </div>\r\n </div>\r\n </li>\r\n <li class=\"blog-post o-media\">\r\n <div class=\"o-media__figure\">\r\n <span class=\"skeleton-box\" style=\"width:100px;height:80px;\"></span>\r\n </div>\r\n <div class=\"o-media__body\">\r\n <div class=\"o-vertical-spacing\">\r\n <h3 class=\"blog-post__headline\">\r\n <span class=\"skeleton-box\" style=\"width:55%;\"></span>\r\n </h3>\r\n <p>\r\n <span class=\"skeleton-box\" style=\"width:80%;\"></span>\r\n <span class=\"skeleton-box\" style=\"width:90%;\"></span>\r\n <span class=\"skeleton-box\" style=\"width:83%;\"></span>\r\n <span class=\"skeleton-box\" style=\"width:80%;\"></span>\r\n </p>\r\n <div class=\"blog-post__meta\">\r\n <span class=\"skeleton-box\" style=\"width:70px;\"></span>\r\n </div>\r\n </div>\r\n </div>\r\n </li>\r\n <li class=\"blog-post o-media\">\r\n <div class=\"o-media__figure\">\r\n <span class=\"skeleton-box\" style=\"width:100px;height:80px;\"></span>\r\n </div>\r\n <div class=\"o-media__body\">\r\n <div class=\"o-vertical-spacing\">\r\n <h3 class=\"blog-post__headline\">\r\n <span class=\"skeleton-box\" style=\"width:55%;\"></span>\r\n </h3>\r\n <p>\r\n <span class=\"skeleton-box\" style=\"width:80%;\"></span>\r\n <span class=\"skeleton-box\" style=\"width:90%;\"></span>\r\n <span class=\"skeleton-box\" style=\"width:83%;\"></span>\r\n <span class=\"skeleton-box\" style=\"width:80%;\"></span>\r\n </p>\r\n <div class=\"blog-post__meta\">\r\n <span class=\"skeleton-box\" style=\"width:70px;\"></span>\r\n </div>\r\n </div>\r\n </div>\r\n </li>\r\n <li class=\"blog-post o-media\">\r\n <div class=\"o-media__figure\">\r\n <span class=\"skeleton-box\" style=\"width:100px;height:80px;\"></span>\r\n </div>\r\n <div class=\"o-media__body\">\r\n <div class=\"o-vertical-spacing\">\r\n <h3 class=\"blog-post__headline\">\r\n <span class=\"skeleton-box\" style=\"width:55%;\"></span>\r\n </h3>\r\n <p>\r\n <span class=\"skeleton-box\" style=\"width:80%;\"></span>\r\n <span class=\"skeleton-box\" style=\"width:90%;\"></span>\r\n <span class=\"skeleton-box\" style=\"width:83%;\"></span>\r\n <span class=\"skeleton-box\" style=\"width:80%;\"></span>\r\n </p>\r\n <div class=\"blog-post__meta\">\r\n <span class=\"skeleton-box\" style=\"width:70px;\"></span>\r\n </div>\r\n </div>\r\n </div>\r\n </li>\r\n\r\n</ul>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SkeletonLoadingComponent } from './skeleton-loading.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n SkeletonLoadingComponent\r\n ],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [\r\n SkeletonLoadingComponent\r\n ]\r\n})\r\nexport class SkeletonLoadingModule { }\r\n","import { Component, OnInit, Input } from '@angular/core';\r\n@Component({\r\n selector: 'app-common-innerloading-spinner',\r\n templateUrl: './loading-spinner.component.html',\r\n styleUrls: ['./loading-spinner.component.scss']\r\n})\r\n\r\nexport class LoadingSpinnerComponent implements OnInit {\r\n @Input() spinnerParams: any = [];\r\n diameter: any;\r\n stroke: any;\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.diameter = (this.spinnerParams['diameter']) ? this.spinnerParams['diameter'] : 40;\r\n this.stroke = (this.spinnerParams['strokewidth']) ? this.spinnerParams['strokewidth'] : 5;\r\n }\r\n}\r\n","<mat-spinner class=\"inner-load-spinner\" [strokeWidth]=\"stroke\" [diameter]=\"diameter\"></mat-spinner>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LoadingSpinnerComponent } from './loading-spinner.component';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatProgressSpinnerModule\r\n ],\r\n declarations: [\r\n LoadingSpinnerComponent\r\n ],\r\n exports: [\r\n LoadingSpinnerComponent\r\n ]\r\n})\r\n\r\nexport class LoadingSpinnerModule { }\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable, Subject } from \"rxjs\";\r\nimport { ServiceMeta } from \"../service-meta\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\n/**\r\n * Class which handle Questionaire\r\n */\r\nexport class QuestionaireService {\r\n\r\n private subject = new Subject<any>();\r\n\r\n getMessage(): Observable<any> {\r\n return this.subject.asObservable();\r\n }\r\n\r\n sendMessage(message: any) {\r\n this.subject.next(message);\r\n }\r\n\r\n constructor(private servicemeta: ServiceMeta) { }\r\n validateConsumerQuestionnaire(body: any, accountId: string) {\r\n const url = 'consumer/questionnaire/validate' + '?account=' + accountId;\r\n return this.servicemeta.httpPut(url, body);\r\n }\r\n validateConsumerQuestionnaireResbumit(body: any, accountId: string) {\r\n const url = 'consumer/questionnaire/resubmit/validate' + '?account=' + accountId;\r\n return this.servicemeta.httpPut(url, body);\r\n }\r\n consumerOrderQnrUploadStatusUpdate(uid: string, account: string, data: any) {\r\n const url = 'consumer/orders/questionnaire/upload/status/' + uid + '?account=' + account;\r\n return this.servicemeta.httpPut(url, data);\r\n }\r\n consumerDonationQnrUploadStatusUpdate(uid: string, account: string, data: any) {\r\n const url = 'consumer/donation/questionnaire/upload/status/' + uid + '?account=' + account;\r\n return this.servicemeta.httpPut(url, data);\r\n }\r\n consumerApptQnrUploadStatusUpdate(uid: string, account: string, data: any) {\r\n const url = 'consumer/appointment/questionnaire/upload/status/' + uid + '?account=' + account;\r\n return this.servicemeta.httpPut(url, data);\r\n }\r\n consumerWaitlistQnrUploadStatusUpdate(uid: string, account: string, data: any) {\r\n const url = 'consumer/waitlist/questionnaire/upload/status/' + uid + '?account=' + account;\r\n return this.servicemeta.httpPut(url, data);\r\n }\r\n videoaudioS3Upload(file: any, url: any) {\r\n return this.servicemeta.httpPut(url, file);\r\n }\r\n resubmitConsumerWaitlistQuestionnaire(body: any, uuid: string, accountId: string) {\r\n const url = 'consumer/waitlist/questionnaire/resubmit/' + uuid + '?account=' + accountId;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n submitConsumerWaitlistQuestionnaire(body: any, uuid: string, accountId: string) {\r\n const url = 'consumer/waitlist/questionnaire/' + uuid + '?account=' + accountId;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n resubmitConsumerDonationQuestionnaire(body: any, uuid: string, accountId: string) {\r\n const url = 'consumer/donation/questionnaire/resubmit/' + uuid + '?account=' + accountId;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n resubmitConsumerApptQuestionnaire(body: any, uuid: string, accountId: string) {\r\n const url = 'consumer/appointment/questionnaire/resubmit/' + uuid + '?account=' + accountId;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n submitConsumerApptQuestionnaire(body: any, uuid: string, accountId: string) {\r\n const url = 'consumer/appointment/questionnaire/' + uuid + '?account=' + accountId;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n resubmitConsumerOrderQuestionnaire(body: any, uuid: string, accountId: string) {\r\n const url = 'consumer/orders/questionnaire/resubmit/' + uuid + '?account=' + accountId;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n submitConsumerOrderQuestionnaire(body: any, uuid: string, accountId: string) {\r\n const url = 'consumer/orders/questionnaire/' + uuid + '?account=' + accountId;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n validateConsumerIvrQuestionnaire(body: any, id: string) {\r\n const url = 'consumer/ivr/questionnaire/submit/' + id;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n submitDonationQuestionnaire(uuid: string, body: any, account_id: string) {\r\n const url = 'consumer/donation/questionnaire/submit/' + uuid + '?account=' + account_id;\r\n return this.servicemeta.httpPost(url, body);\r\n }\r\n}","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { CommonService } from '../common.service';\r\n@Component({\r\n selector: 'app-showuploadfile',\r\n templateUrl: './showuploadfile.component.html',\r\n styleUrls: ['./showuploadfile.component.scss']\r\n})\r\nexport class ShowuploadfileComponent implements OnInit {\r\n details: any = [];\r\n locationImg: any;\r\n cacheavoider = '';\r\n title = 'Detailed View';\r\n type: any;\r\n theme: any;\r\n constructor(\r\n private dialogRef: MatDialogRef<ShowuploadfileComponent>,\r\n private commonService: CommonService,\r\n @Inject(MAT_DIALOG_DATA) public data: any\r\n ) {\r\n this.details = this.data.file;\r\n console.log('details',this.details);\r\n if (this.data.source === 'qnr') {\r\n this.title = (this.details.comments) ? this.details.comments : '';\r\n if (this.details.s3path) {\r\n this.details.url = this.details.s3path;\r\n } else {\r\n this.details.url = this.details.path;\r\n }\r\n this.type = this.details.type.split('/');\r\n this.type = this.type[0];\r\n }\r\n }\r\n ngOnInit() {\r\n this.theme = this.data.theme; \r\n const cnow = new Date();\r\n const dd = cnow.getHours() + '' + cnow.getMinutes() + '' + cnow.getSeconds();\r\n this.cacheavoider = dd;\r\n\r\n }\r\n showimg(imgurl: any) {\r\n let logourl = '';\r\n if (imgurl) {\r\n logourl = (imgurl) ? imgurl + '?' + this.cacheavoider : '';\r\n }\r\n return this.commonService.showlogoicon(logourl);\r\n }\r\n closeDialog() {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","<form [ngClass]=\"theme\">\r\n <h1 class=\"mat-dialog-title\"> {{title}}\r\n <button #locte mat-dialog-close class=\"modal_close\" tabindex=\"-1\" id=\"btnClose\">\r\n <i class=\"fa fa-window-close\" aria-hidden=\"true\"></i>\r\n </button>\r\n </h1>\r\n <div class=\"pad-20 image-scroll\">\r\n <img style=\"width:100%;margin-top: -20px;\" [src]=\"details.url||details.s3path\" alt=\"\"\r\n *ngIf=\"details.type && details.type == 'image/bmp'|| details.type =='image/png'|| details.type == 'image/gif' || details.type == 'image/jpg' ||details.type =='image/jpeg'||details.type == 'image/webp'\r\n ||details.type == 'bmp' ||details.type == 'png' ||details.type == 'gif' ||details.type == 'jpg' ||details.type == 'jpeg' ||details.type == 'webp'\" />\r\n <video style=\"width:100%;height: 75vh;\" controls\r\n *ngIf=\"(data.source === 'qnr' && type === 'video') || (data.source === 'mr' && details.type && details.type == 'video/mp4' || details.type == 'video/mpeg'||details.type == 'video/quicktime')\">\r\n <source [src]=\"details.url\" />\r\n </video>\r\n <audio style=\"width:100%;\" controls\r\n *ngIf=\"(data.source === 'qnr' && type === 'audio') || (data.source === 'mr' && details.type && details.type == 'audio/ogg'|| details.type == 'audio/mpeg'|| details.type == 'audio/mp3')\">\r\n <source [src]=\"details.url\" />\r\n </audio>\r\n </div>\r\n</form>","import { Component, HostListener, Inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-j-gallery',\r\n templateUrl: './j-gallery.component.html',\r\n styleUrl: './j-gallery.component.scss'\r\n})\r\nexport class JGalleryComponent {\r\n currentIndex: number;\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: { images: string[]; index: number },\r\n private dialogRef: MatDialogRef<JGalleryComponent>\r\n ) {\r\n this.currentIndex = data.index;\r\n }\r\n\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n\r\n prevImage() {\r\n if (this.currentIndex > 0) {\r\n this.currentIndex--;\r\n }\r\n }\r\n\r\n nextImage() {\r\n if (this.currentIndex < this.data.images.length - 1) {\r\n this.currentIndex++;\r\n }\r\n }\r\n\r\n @HostListener('document:keydown', ['$event'])\r\n handleKeyboardEvent(event: KeyboardEvent) {\r\n if (event.key === 'ArrowLeft') {\r\n this.prevImage();\r\n } else if (event.key === 'ArrowRight') {\r\n this.nextImage();\r\n } else if (event.key === 'Escape') {\r\n this.close();\r\n }\r\n }\r\n}\r\n","<div class=\"modal-overlay\" (click)=\"close()\">\r\n <div class=\"modal-content\" (click)=\"$event.stopPropagation()\">\r\n <button class=\"close-btn\" (click)=\"close()\">✖</button>\r\n <img [src]=\"data.images[currentIndex]['source']\" alt=\"Gallery Image\">\r\n \r\n <button class=\"nav-btn prev\" *ngIf=\"currentIndex > 0\" (click)=\"prevImage()\">❮</button>\r\n <button class=\"nav-btn next\" *ngIf=\"currentIndex < data.images.length - 1\" (click)=\"nextImage()\">❯</button>\r\n </div>\r\n </div>","import { Injectable } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { JGalleryComponent } from './j-gallery.component';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class JGalleryService {\r\n\r\n constructor(private dialog: MatDialog) {}\r\n\r\n open(images: string[], index: number) {\r\n this.dialog.open(JGalleryComponent, {\r\n data: { images, index },\r\n width: '80vw',\r\n maxHeight: '90vh',\r\n panelClass: 'custom-modal'\r\n });\r\n }\r\n}\r\n","import { Location } from '@angular/common';\r\nimport { Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Subscription } from 'rxjs';\r\nimport { QuestionaireService } from '../questionaire-service';\r\nimport { LocalStorageService } from '../../local-storage.service';\r\nimport { FileService } from '../../file-service';\r\nimport { CommonService } from '../../common.service';\r\nimport { ToastService } from '../../toast.service';\r\nimport { ShowuploadfileComponent } from '../../showuploadfile/showuploadfile.component';\r\nimport { DateTimeProcessor } from '../../calendar/date-time/datetime-processor.service';\r\nimport { ErrorMessagingService } from '../../error-message.service';\r\nimport { WordProcessor } from '../../word-processor.service';\r\nimport { SharedService } from '../../shared.service';\r\nimport { JGalleryService } from '../../j-gallery/j-gallery.service';\r\n@Component({\r\n selector: 'app-questionnaire',\r\n templateUrl: './questionnaire.component.html',\r\n styleUrls: ['./questionnaire.component.css']\r\n})\r\nexport class QuestionnaireComponent implements OnInit, OnChanges {\r\n @Input() questionnaireList: any;\r\n @Input() source: any;\r\n @Input() accountId: any;\r\n @Input() questionAnswers: any;\r\n @Input() customerDetails: any;\r\n @Input() uuid: any;\r\n @Input() type: any;\r\n @Input() waitlistStatus: any;\r\n @Input() orderStatus: any;\r\n @Input() donationDetails: any;\r\n @Input() service: any;\r\n @Input() mode: any; // Added by mani to check the file upload\r\n @Output() fileChanged = new EventEmitter<any>();\r\n @Output() returnAnswers = new EventEmitter<any>();\r\n @Input() tempType: any;\r\n @Input() bookingType: any;\r\n answers: any = {};\r\n showDataGrid: any = {};\r\n selectedMessage: any = [];\r\n apiError: any = [];\r\n params: any;\r\n fileuploadpreAnswers: any = {};\r\n loading = false;\r\n buttonDisable = false;\r\n questions: any = [];\r\n selectedDocs: any = [];\r\n documentsToUpload: any = [];\r\n subscription: Subscription;\r\n uploadFilesTemp: any = [];\r\n filestoUpload: any = [];\r\n changeHappened = false;\r\n uploadedFiles: any = [];\r\n uploadedImages: any = [];\r\n bookingDetails: any = [];\r\n @ViewChild('logofile1') file2!: ElementRef;\r\n image_list_popup;\r\n questionnaire_heading = '';\r\n customer_label = '';\r\n editQuestionnaire = false;\r\n audioVideoFiles: any = [];\r\n groupedQnr: any = [];\r\n dataGridColumns: any = {};\r\n dataGridColumnsAnswerList: any = [];\r\n updatedGridIndex: any = {};\r\n newTimeDateFormat = '';\r\n qnrStatus = '';\r\n comments: any = {};\r\n tday = new Date();\r\n minday = new Date(1900, 0, 1);\r\n dataGridListColumns: any = {};\r\n showqnr!: boolean;\r\n item: any;\r\n showItem = false;\r\n totalPrice: any;\r\n itemLength: any;\r\n itemArray: any = [];\r\n dataGridList: any = [];\r\n id: number = 0;\r\n post_Data: any;\r\n dgList: any;\r\n sequenceId: any;\r\n finalObjectList: any = [];\r\n showservice = false;\r\n quesStore: any;\r\n allList: string = '';\r\n popSearches: any;\r\n serviceTotalPrice: number = 0;\r\n editableItem: any;\r\n cdnPath: string = '';\r\n customID;\r\n constructor(\r\n private activated_route: ActivatedRoute,\r\n private wordProcessor: WordProcessor,\r\n private lStorageService: LocalStorageService,\r\n private dateProcessor: DateTimeProcessor,\r\n public dialog: MatDialog,\r\n private fileService: FileService,\r\n private commonService: CommonService,\r\n private questionaireService: QuestionaireService,\r\n private errorService: ErrorMessagingService,\r\n private toastService: ToastService,\r\n private sharedService: SharedService,\r\n private galleryService: JGalleryService,\r\n private location: Location) {\r\n this.cdnPath = this.sharedService.getCDNPath();\r\n this.activated_route.queryParams.subscribe(qparams => {\r\n this.params = qparams;\r\n if (this.params.type) {\r\n this.source = this.params.type;\r\n console.log(this.source)\r\n }\r\n this.accountId = this.sharedService.getAccountID();\r\n this.customID = this.sharedService.getCustomID();\r\n if (this.params.uuid) {\r\n this.uuid = this.params.uuid;\r\n }\r\n });\r\n this.subscription = this.questionaireService.getMessage().subscribe(message => {\r\n switch (message.type) {\r\n case 'qnrValidateError':\r\n this.setValidateError(message.value);\r\n break;\r\n }\r\n });\r\n }\r\n ngOnDestroy() {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n ngOnChanges() {\r\n if (this.questionAnswers && this.questionAnswers.filestoUpload && this.source === 'proLead') {\r\n this.filestoUpload = this.questionAnswers.filestoUpload;\r\n }\r\n\r\n }\r\n ngOnInit(): void {\r\n console.log(\"Service Details:\", this.questionnaireList);\r\n console.log(\"Service Details:\", this.service);\r\n if (this.lStorageService.getitemfromLocalStorage('itemArray')) {\r\n this.itemArray = this.lStorageService.getitemfromLocalStorage('itemArray');\r\n if (this.itemArray) {\r\n this.showItem = true;\r\n console.log(\"this.itemArray\", this.itemArray)\r\n }\r\n }\r\n\r\n this.customer_label = this.wordProcessor.getTerminologyTerm('customer');\r\n\r\n if (this.questionnaireList) {\r\n console.log(this.source)\r\n if (this.source === 'customer-create' || this.source === 'onetime') {\r\n if (this.questionnaireList.labels && this.questionnaireList.labels.length > 0) {\r\n this.questions = this.questionnaireList.labels[0].questions;\r\n this.groupQuestionsBySection();\r\n // this.getAnswers(this.questions, 'get');\r\n }\r\n if (this.customerDetails && this.customerDetails[0] && this.customerDetails[0].questionnaire && this.customerDetails[0].questionnaire.questionAnswers) {\r\n this.getAnswers(this.customerDetails[0].questionnaire.questionAnswers, 'get');\r\n }\r\n } else if (this.source === 'qnrDetails') {\r\n this.questions = this.questionnaireList.questions;\r\n this.groupQuestionsBySection();\r\n } else if (this.source === 'serviceOptionAppt') {\r\n this.showservice = true;\r\n this.questions = this.questionnaireList.labels;\r\n this.groupQuestionsBySection();\r\n } else if (this.source === 'qnrpaper') {\r\n this.questions = this.questionnaireList[0].labels;\r\n this.groupQuestionsBySection();\r\n } else if (!this.uuid && this.questionnaireList.labels) {\r\n this.questions = this.questionnaireList.labels;\r\n this.groupQuestionsBySection();\r\n } else if (this.source === 'qnrView' && this.questionnaireList.labels) {\r\n this.questions = this.questionnaireList.labels;\r\n this.groupQuestionsBySection();\r\n }\r\n else if (this.source === 'condumerOrder' && this.questionnaireList.labels) {\r\n this.questions = this.questionnaireList.labels;\r\n this.groupQuestionsBySection();\r\n } else if (this.source === 'ivr' && this.questionnaireList && this.questionnaireList[0].labels) {\r\n this.questions = this.questionnaireList[0].labels;\r\n console.log(\"Questions:\", this.questions);\r\n this.groupQuestionsBySection();\r\n }\r\n\r\n }\r\n if (this.source === 'customer-details' && this.customerDetails[0] && this.customerDetails[0].questionnaire) {\r\n this.questionnaireList = this.customerDetails[0].questionnaire;\r\n this.questions = this.customerDetails[0].questionnaire.questionAnswers;\r\n this.groupQuestionsBySection();\r\n this.getAnswers(this.questions, 'get');\r\n }\r\n if (this.questionAnswers) {\r\n if (this.questionAnswers.files) {\r\n this.selectedMessage = this.questionAnswers.files;\r\n }\r\n if (this.questionAnswers.audioVideo) {\r\n this.audioVideoFiles = this.questionAnswers.audioVideo;\r\n }\r\n if (this.questionAnswers.filestoUpload) {\r\n this.filestoUpload = this.questionAnswers.filestoUpload;\r\n }\r\n if (this.questionAnswers.dataGridColumnsAnswerList) {\r\n this.dataGridColumnsAnswerList = this.questionAnswers.dataGridColumnsAnswerList;\r\n }\r\n if (this.questionAnswers.comments) {\r\n this.comments = this.questionAnswers.comments;\r\n }\r\n if (this.questionAnswers.answers) {\r\n this.getAnswers(this.questionAnswers.answers.answerLine, 'init');\r\n }\r\n if (this.source == 'ivr') {\r\n this.getAnswers(this.questionAnswers, 'get');\r\n }\r\n }\r\n if (this.donationDetails && this.donationDetails.questionnaire) {\r\n this.questionnaireList = this.donationDetails.questionnaire;\r\n this.questions = this.questionnaireList.questionAnswers;\r\n this.groupQuestionsBySection();\r\n if (this.questions && this.questions.length > 0) {\r\n this.getAnswers(this.questions, 'get');\r\n }\r\n }\r\n\r\n if (this.uuid) {\r\n if (this.questionnaireList.questionAnswers) {\r\n this.questions = this.questionnaireList.questionAnswers;\r\n this.qnrStatus = 'submitted';\r\n this.groupQuestionsBySection();\r\n } else if (this.questionnaireList.labels) {\r\n this.questions = this.questionnaireList.labels;\r\n this.qnrStatus = 'released';\r\n this.groupQuestionsBySection();\r\n }\r\n else if (this.questionnaireList[0] && this.questionnaireList[0].labels) {\r\n this.questions = this.questionnaireList[0].labels;\r\n this.qnrStatus = 'released';\r\n this.groupQuestionsBySection();\r\n }\r\n if (this.questions && this.questions.length > 0) {\r\n this.getAnswers(this.questions, 'get');\r\n }\r\n }\r\n\r\n this.disableField()\r\n }\r\n\r\n //disable field\r\n disableField() {\r\n if (this.tempType && (this.tempType === 'Loan Sanction' || this.tempType === 'Rejected')) {\r\n this.buttonDisable = true;\r\n // this.disableInput();\r\n }\r\n }\r\n // *.component.ts\r\n asIsOrder(a: any, b: any) {\r\n return 1;\r\n }\r\n groupQuestionsBySection() {\r\n if (this.source === 'customer-create' || this.source === 'qnrDetails' || this.source === 'onetime') {\r\n this.groupedQnr = this.commonService.groupBy(this.questions, 'sectionName');\r\n }\r\n else if (this.source === 'proLead') {\r\n this.groupedQnr = this.questions.reduce(function (rv: any, x: any) {\r\n (rv[x.question['sequnceId']] = rv[x.question['sequnceId']] || []).push(x);\r\n return rv;\r\n }, {});\r\n }\r\n else {\r\n this.groupedQnr = this.questions.reduce(function (rv: any, x: any) {\r\n (rv[x.question['sectionOrder']] = rv[x.question['sectionOrder']] || []).push(x);\r\n return rv;\r\n }, {});\r\n }\r\n }\r\n setValidateError(errors: any) {\r\n this.apiError = [];\r\n if (errors.length > 0) {\r\n for (let error of errors) {\r\n this.apiError[error.questionField] = [];\r\n this.apiError[error.questionField].push(error.error);\r\n }\r\n this.buttonDisable = false;\r\n }\r\n }\r\n getAnswers(answerData: any, type?: any) {\r\n this.answers = new Object();\r\n this.dataGridColumns = {};\r\n if (type === 'get') {\r\n this.selectedMessage = [];\r\n this.uploadedImages = [];\r\n this.uploadedFiles = [];\r\n for (let answ of answerData) {\r\n\r\n if (answ.answerLine) {\r\n if (answ.question.fieldDataType === 'fileUpload') {\r\n\r\n if (this.source === 'proLead') {\r\n if (answ.answerLine.answer[answ.question.fieldDataType] && answ.answerLine.answer[answ.question.fieldDataType].length > 0) {\r\n for (let i = 0; i < answ.answerLine.answer[answ.question.fieldDataType].length; i++) {\r\n answ.answerLine.answer[answ.question.fieldDataType][i].action = 'add';\r\n answ.answerLine.answer[answ.question.fieldDataType][i].status = 'COMPLETE';\r\n answ.answerLine.answer[answ.question.fieldDataType][i].s3path = answ.answerLine.answer[answ.question.fieldDataType][i].s3path;\r\n answ.answerLine.answer[answ.question.fieldDataType][i].uid = answ.answerLine.answer[answ.question.fieldDataType][i].uid;\r\n answ.answerLine.answer[answ.question.fieldDataType][i].driveId = answ.answerLine.answer[answ.question.fieldDataType][i].driveId;\r\n answ.answerLine.answer[answ.question.fieldDataType][i].url = answ.answerLine.answer[answ.question.fieldDataType][i].keyName;\r\n }\r\n this.answers[answ.answerLine.labelName] = answ.answerLine.answer[answ.question.fieldDataType];\r\n }\r\n }\r\n\r\n if (answ.answerLine.answer && answ.answerLine.answer[answ.question.fieldDataType] && answ.answerLine.answer[answ.question.fieldDataType].length > 0) {\r\n for (let i = 0; i < answ.answerLine.answer[answ.question.fieldDataType].length; i++) {\r\n if (type === 'get') {\r\n this.uploadedImages.push(answ.answerLine.answer[answ.question.fieldDataType][i]);\r\n if (!this.uploadedFiles[answ.answerLine.labelName]) {\r\n this.uploadedFiles[answ.answerLine.labelName] = {};\r\n }\r\n if (!this.uploadedFiles[answ.answerLine.labelName][answ.answerLine.answer[answ.question.fieldDataType][i].caption]) {\r\n this.uploadedFiles[answ.answerLine.labelName][answ.answerLine.answer[answ.question.fieldDataType][i].caption] = {};\r\n }\r\n this.comments[answ.answerLine.labelName + '=' + answ.answerLine.answer[answ.question.fieldDataType][i].caption] = answ.answerLine.answer[answ.question.fieldDataType][i].comments;\r\n this.uploadedFiles[answ.answerLine.labelName][answ.answerLine.answer[answ.question.fieldDataType][i].caption] = answ.answerLine.answer[answ.question.fieldDataType][i];\r\n\r\n\r\n } else {\r\n this.selectedMessage.push(answ.answerLine.answer[answ.question.fieldDataType][i]);\r\n if (!this.filestoUpload[answ.answerLine.labelName]) {\r\n this.filestoUpload[answ.answerLine.labelName] = {};\r\n }\r\n if (!this.filestoUpload[answ.answerLine.labelName][answ.answerLine.answer[answ.question.fieldDataType][i].caption]) {\r\n this.filestoUpload[answ.answerLine.labelName][answ.answerLine.answer[answ.question.fieldDataType][i].caption] = {};\r\n }\r\n this.filestoUpload[answ.answerLine.labelName][answ.answerLine.answer[answ.question.fieldDataType][i].caption] = answ.answerLine.answer[answ.question.fieldDataType][i];\r\n\r\n }\r\n }\r\n }\r\n } else if (answ.question.fieldDataType === 'dataGrid') {\r\n for (let row of answ.answerLine.answer[answ.question.fieldDataType]) {\r\n let columns = [];\r\n for (let i = 0; i < row.dataGridColumn.length; i++) {\r\n columns[i + 1] = row.dataGridColumn[i].column[Object.keys(row.dataGridColumn[i].column)[0]];\r\n }\r\n if (!this.dataGridColumnsAnswerList[answ.answerLine.labelName]) {\r\n this.dataGridColumnsAnswerList[answ.answerLine.labelName] = [];\r\n }\r\n this.dataGridColumnsAnswerList[answ.answerLine.labelName].push(columns);\r\n }\r\n } else {\r\n this.answers[answ.answerLine.labelName] = answ.answerLine.answer[answ.question.fieldDataType];\r\n }\r\n }\r\n }\r\n } else {\r\n for (let answ of answerData) {\r\n if (answ.answer[Object.keys(answ.answer)[0]]) {\r\n this.answers[answ.labelName] = answ.answer[Object.keys(answ.answer)[0]];\r\n }\r\n }\r\n }\r\n if (type === 'get') {\r\n Object.keys(this.uploadedFiles).forEach(key => {\r\n this.uploadFilesTemp[key] = [];\r\n Object.keys(this.uploadedFiles[key]).forEach(key1 => {\r\n if (this.uploadedFiles[key][key1]) {\r\n if (!this.uploadFilesTemp[key]) {\r\n this.uploadFilesTemp[key] = [];\r\n }\r\n const type = this.uploadedFiles[key][key1].type.split('/');\r\n\r\n if (type[0] !== 'audio' && type[0] !== 'video' || ((type[0] === 'audio' || type[0] === 'video') && this.uploadedFiles[key][key1].status === 'COMPLETE')) {\r\n this.uploadFilesTemp[key].push(key1);\r\n }\r\n }\r\n });\r\n });\r\n } else {\r\n Object.keys(this.filestoUpload).forEach(key => {\r\n Object.keys(this.filestoUpload[key]).forEach(key1 => {\r\n if (this.filestoUpload[key][key1]) {\r\n if (!this.uploadFilesTemp[key]) {\r\n this.uploadFilesTemp[key] = [];\r\n }\r\n this.uploadFilesTemp[key].push(key1);\r\n }\r\n });\r\n });\r\n }\r\n this.onSubmit('init');\r\n }\r\n filesSelected(event: any, question: any, document: any) {\r\n const input = event.target.files;\r\n if (input) {\r\n for (const file of input) {\r\n const fileInput = {\r\n caption: document,\r\n file: file,\r\n labelName: question.labelName\r\n }\r\n this.fileChanged.emit(fileInput);\r\n let type = file.type.split('/');\r\n\r\n this.apiError[question.labelName] = [];\r\n if (!this.filestoUpload[question.labelName]) {\r\n this.filestoUpload[question.labelName] = {};\r\n }\r\n if (!this.filestoUpload[question.labelName][document]) {\r\n this.filestoUpload[question.labelName][document] = {};\r\n }\r\n if (this.filestoUpload[question.labelName] && this.filestoUpload[question.labelName][document]) {\r\n let index;\r\n if (type[0] === 'application' || type[0] === 'image') {\r\n index = this.selectedMessage.indexOf(this.filestoUpload[question.labelName][document]);\r\n } else {\r\n index = this.audioVideoFiles.indexOf(this.filestoUpload[question.labelName][document]);\r\n }\r\n if (index !== -1) {\r\n if (type[0] === 'application' || type[0] === 'image') {\r\n this.selectedMessage.splice(index, 1);\r\n } else {\r\n this.audioVideoFiles.splice(index, 1);\r\n }\r\n delete this.filestoUpload[question.labelName][document];\r\n delete this.answers[question.labelName][index];\r\n }\r\n }\r\n this.filestoUpload[question.labelName][document] = file;\r\n if (type[0] === 'application' || type[0] === 'image') {\r\n this.selectedMessage.push(file);\r\n const indx = this.selectedMessage.indexOf(file);\r\n if (indx !== -1) {\r\n const reader = new FileReader();\r\n reader.onload = (e: any) => {\r\n this.selectedMessage[indx]['path'] = e.target['result'];\r\n };\r\n reader.readAsDataURL(file);\r\n }\r\n } else {\r\n this.audioVideoFiles.push(file);\r\n const indx = this.audioVideoFiles.indexOf(file);\r\n if (indx !== -1) {\r\n const reader = new FileReader();\r\n reader.onload = (e: any) => {\r\n this.audioVideoFiles[indx]['path'] = e.target['result'];\r\n };\r\n reader.readAsDataURL(file);\r\n }\r\n }\r\n }\r\n if (this.file2 && this.file2.nativeElement.value) {\r\n this.file2.nativeElement.value = '';\r\n }\r\n this.onSubmit('inputChange');\r\n }\r\n }\r\n changeImageSelected(question: any, document: any) {\r\n if (this.filestoUpload[question.labelName] && this.filestoUpload[question.labelName][document]) {\r\n let type = this.filestoUpload[question.labelName][document].type.split('/');\r\n type = type[0];\r\n let index;\r\n if (type === 'application' || type === 'image') {\r\n index = this.selectedMessage.indexOf(this.filestoUpload[question.labelName][document]);\r\n } else {\r\n index = this.audioVideoFiles.indexOf(this.filestoUpload[question.labelName][document]);\r\n }\r\n if (index !== -1) {\r\n if (type === 'application' || type === 'image') {\r\n this.selectedMessage.splice(index, 1);\r\n } else {\r\n this.audioVideoFiles.splice(index, 1);\r\n }\r\n delete this.filestoUpload[question.labelName][document];\r\n this.comments[question.labelName + '=' + document] = '';\r\n if (this.answers[question.labelName] && this.answers[question.labelName].length > 0) {\r\n const filteredAnswer = this.answers[question.labelName].filter((answer: any) => answer.caption === document);\r\n if (filteredAnswer[0]) {\r\n const index = this.answers[question.labelName].indexOf(filteredAnswer[0]);\r\n if (index !== -1) {\r\n this.answers[question.labelName].splice(index, 1);\r\n }\r\n }\r\n }\r\n }\r\n if (Object.keys(this.filestoUpload[question.labelName]).length === 0) {\r\n delete this.filestoUpload[question.labelName];\r\n }\r\n if (this.answers[question.labelName] && this.answers[question.labelName].length === 0) {\r\n delete this.answers[question.labelName];\r\n }\r\n } else if (this.uploadedFiles[question.labelName] && this.uploadedFiles[question.labelName][document]) {\r\n const index = this.uploadedImages.indexOf(this.uploadedFiles[question.labelName][document]);\r\n if (index !== -1) {\r\n this.uploadedFiles[question.labelName][document] = 'remove';\r\n this.comments[question.labelName + '=' + document] = '';\r\n }\r\n }\r\n this.onSubmit('inputChange');\r\n }\r\n isNumeric(evt: any) {\r\n return this.commonService.isNumeric(evt);\r\n }\r\n onSubmit(keytype?: any) {\r\n\r\n Object.keys(this.filestoUpload).forEach(key => {\r\n if (!this.answers[key]) {\r\n this.answers[key] = [];\r\n }\r\n if (Object.keys(this.filestoUpload[key]).length > 0) {\r\n Object.keys(this.filestoUpload[key]).forEach(key1 => {\r\n if (this.filestoUpload[key][key1]) {\r\n let type = this.filestoUpload[key][key1].type.split('/');\r\n type = type[0];\r\n let indx;\r\n if (type === 'application' || type === 'image') {\r\n indx = this.selectedMessage.indexOf(this.filestoUpload[key][key1]);\r\n } else {\r\n indx = this.audioVideoFiles.indexOf(this.filestoUpload[key][key1]);\r\n }\r\n if (indx !== -1) {\r\n let status = 'add';\r\n if (this.uploadedFiles[key] && this.uploadedFiles[key][key1]) {\r\n status = 'update';\r\n }\r\n if (this.answers[key] && this.answers[key].length > 0) {\r\n const filteredAnswer = this.answers[key].filter((answer: any) => answer.caption === key1);\r\n if (filteredAnswer[0]) {\r\n const index = this.answers[key].indexOf(filteredAnswer[0]);\r\n if (index !== -1) {\r\n this.answers[key].splice(index, 1);\r\n }\r\n }\r\n }\r\n let type = this.filestoUpload[key][key1].type.split('/');\r\n type = type[0];\r\n if (type === 'application' || type === 'image') {\r\n this.answers[key].push({ caption: key1, action: status, mimeType: this.filestoUpload[key][key1].type, url: this.filestoUpload[key][key1].name, size: this.filestoUpload[key][key1].size, comments: this.comments[key + '=' + key1], driveId: this.filestoUpload[key][key1].driveId, uid: this.filestoUpload[key][key1].uid, status: 'COMPLETE' });\r\n } else {\r\n this.answers[key].push({ caption: key1, action: status, mimeType: this.filestoUpload[key][key1].type, url: this.filestoUpload[key][key1].name, size: this.filestoUpload[key][key1].size, comments: this.comments[key + '=' + key1], driveId: this.filestoUpload[key][key1].driveId, uid: this.filestoUpload[key][key1].uid, status: 'COMPLETE' });\r\n }\r\n }\r\n } else {\r\n if (this.answers[key] && this.answers[key].length > 0) {\r\n const filteredAnswer = this.answers[key].filter((answer: any) => answer.caption === key1);\r\n if (filteredAnswer[0]) {\r\n const index = this.answers[key].indexOf(filteredAnswer[0]);\r\n if (index !== -1) {\r\n this.answers[key].splice(index, 1);\r\n }\r\n }\r\n }\r\n }\r\n });\r\n } else {\r\n delete this.answers[key];\r\n }\r\n if (this.answers[key] && this.answers[key].length === 0) {\r\n delete this.answers[key];\r\n }\r\n });\r\n\r\n Object.keys(this.uploadedFiles).forEach(key => {\r\n if (!this.answers[key]) {\r\n this.answers[key] = [];\r\n }\r\n if (this.uploadedFiles[key] && Object.keys(this.uploadedFiles[key]).length > 0) {\r\n Object.keys(this.uploadedFiles[key]).forEach(key1 => {\r\n if ((!this.filestoUpload[key] || (this.filestoUpload[key] && !this.filestoUpload[key][key1])) && this.uploadedFiles[key][key1] && this.uploadedFiles[key][key1] === 'remove') {\r\n if (this.answers[key] && this.answers[key].length > 0) {\r\n const filteredAnswer = this.answers[key].filter((answer: any) => answer.caption === key1);\r\n if (filteredAnswer[0]) {\r\n const index = this.answers[key].indexOf(filteredAnswer[0]);\r\n if (index !== -1) {\r\n this.answers[key].splice(index, 1);\r\n }\r\n }\r\n }\r\n this.answers[key].push({ caption: key1, action: 'remove' });\r\n }\r\n });\r\n if (this.answers[key].length === 0) {\r\n delete this.answers[key];\r\n }\r\n }\r\n });\r\n\r\n let data: any = [];\r\n Object.keys(this.dataGridColumnsAnswerList).forEach(key => {\r\n let newFiled: any = {};\r\n let question = this.questions.filter((quest: any) => this.getQuestion(quest).labelName === key);\r\n question = question[0].question;\r\n for (let gridAnswer of this.dataGridColumnsAnswerList[key]) {\r\n let columnData: any = [];\r\n Object.keys(gridAnswer).forEach(key1 => {\r\n let newType: any = {};\r\n const columnDetails = question.dataGridProperties.dataGridColumns.filter((clmn: any) => clmn.order === JSON.parse(key1));\r\n if (columnDetails[0]) {\r\n const columnType = columnDetails[0].dataType;\r\n newType[columnType] = gridAnswer[key1];\r\n columnData.push({\r\n columnId: columnDetails[0].columnId,\r\n column: newType\r\n });\r\n }\r\n });\r\n let newMap: any = {};\r\n newMap['dataGridColumn'] = columnData;\r\n if (!newFiled[question.fieldDataType]) {\r\n newFiled[question.fieldDataType] = [];\r\n }\r\n newFiled[question.fieldDataType].push(newMap);\r\n }\r\n data.push({\r\n 'labelName': key,\r\n 'answer': newFiled\r\n });\r\n });\r\n\r\n Object.keys(this.answers).forEach(key => {\r\n\r\n this.apiError[key] = [];\r\n let newMap: any = {};\r\n let question = this.questions.filter((quest: any) => this.getQuestion(quest).labelName === key);\r\n if (this.source === 'customer-create' || this.source === 'qnrDetails' || this.source === 'onetime') {\r\n question = question[0];\r\n } else {\r\n question = question[0].question;\r\n }\r\n if (this.answers[key] || question.fieldDataType === 'bool') {\r\n let answer = this.answers[key];\r\n if (question.fieldDataType === 'date') {\r\n answer = this.dateProcessor.transformToYMDFormat(answer);\r\n }\r\n newMap[question.fieldDataType] = answer;\r\n data.push({\r\n 'labelName': key,\r\n 'answer': newMap\r\n });\r\n } else {\r\n // newMap = '';\r\n // data.push({\r\n // 'labelName': key,\r\n // });\r\n }\r\n });\r\n let postData;\r\n if (this.source === 'qnrpaper') {\r\n postData = {\r\n 'questionnaireId': (this.questionnaireList[0].id) ? this.questionnaireList[0].id : this.questionnaireList[0].questionnaireId,\r\n 'answerLine': data\r\n }\r\n }\r\n else if (keytype === 'serviceOption') {\r\n postData = {\r\n 'questionnaireId': (this.questionnaireList.id) ? this.questionnaireList.id : this.questionnaireList[0].questionnaireId,\r\n 'answerLine': this.finalObjectList\r\n }\r\n }\r\n else if (this.source === 'ivr' && this.customID) {\r\n console.log('fffffffffffffffffffff', this.questionnaireList)\r\n postData = {\r\n 'questionnaireId': (this.questionnaireList[0].id) ? this.questionnaireList[0].id : this.questionnaireList[0].questionnaireId,\r\n 'answerLine': data\r\n }\r\n }\r\n else {\r\n console.log('questionnaireList', this.questionnaireList)\r\n postData = {\r\n 'questionnaireId': (this.questionnaireList.id) ? this.questionnaireList.id : this.questionnaireList.questionnaireId,\r\n 'answerLine': data\r\n }\r\n }\r\n const passData = { 'answers': postData, 'files': this.selectedMessage, 'audioVideo': this.audioVideoFiles, 'filestoUpload': this.filestoUpload, 'dataGridColumnsAnswerList': this.dataGridColumnsAnswerList, 'comments': this.comments };\r\n if (keytype === 'inputChange') {\r\n this.changeHappened = true;\r\n }\r\n if (keytype === 'submit') {\r\n if (this.changeHappened) {\r\n this.submitQuestionnaire(passData);\r\n } else {\r\n if (!this.type) {\r\n this.location.back();\r\n } else {\r\n if (this.type === 'qnr-link') {\r\n this.returnAnswers.emit('nochange');\r\n } else {\r\n this.editQnr();\r\n }\r\n }\r\n }\r\n } else {\r\n\r\n this.returnAnswers.emit(passData);\r\n }\r\n }\r\n getDate(date: any) {\r\n return new Date(date);\r\n }\r\n listChange(ev: any, value: any, question: any, column?: any) {\r\n if (question.fieldDataType !== 'dataGrid') {\r\n if (ev.target.checked) {\r\n if (!this.answers[question.labelName]) {\r\n this.answers[question.labelName] = [];\r\n }\r\n if (question.listPropertie && question.listPropertie.maxAnswers && question.listPropertie.maxAnswers > 1) {\r\n this.answers[question.labelName].push(value);\r\n } else {\r\n this.answers[question.labelName][0] = value;\r\n }\r\n } else {\r\n const indx = this.answers[question.labelName].indexOf(value);\r\n this.answers[question.labelName].splice(indx, 1);\r\n }\r\n if (this.answers[question.labelName].length === 0) {\r\n this.answers[question.labelName] = '';\r\n }\r\n } else {\r\n if (ev.target.checked) {\r\n if (!this.dataGridColumns[question.labelName + '=' + column.order]) {\r\n this.dataGridColumns[question.labelName + '=' + column.order] = [];\r\n }\r\n this.dataGridColumns[question.labelName + '=' + column.order].push(value);\r\n } else {\r\n const indx = this.dataGridColumns[question.labelName + '=' + column.order].indexOf(value);\r\n this.dataGridColumns[question.labelName + '=' + column.order].splice(indx, 1);\r\n }\r\n }\r\n this.onSubmit('inputChange');\r\n }\r\n isChecked(value: any, question: any, column?: any) {\r\n if (question.fieldDataType !== 'dataGrid') {\r\n if (this.answers[question.labelName]) {\r\n const indx = this.answers[question.labelName].indexOf(value);\r\n if (indx !== -1) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n if (this.dataGridColumns[question.labelName + '=' + column.order]) {\r\n const indx = this.dataGridColumns[question.labelName + '=' + column.order].indexOf(value);\r\n if (indx !== -1) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n }\r\n }\r\n booleanChange(ev: any, value: any, question: any, column?: any) {\r\n if (question.fieldDataType !== 'dataGrid') {\r\n if (ev.target.checked) {\r\n if (!this.answers[question.labelName]) {\r\n this.answers[question.labelName] = {};\r\n }\r\n this.answers[question.labelName] = (value.toLowerCase() === 'yes') ? true : false;\r\n }\r\n } else {\r\n if (ev.target.checked) {\r\n this.dataGridColumns[question.labelName + '=' + column.order] = (value === 'yes') ? true : false;\r\n }\r\n }\r\n this.onSubmit('inputChange');\r\n }\r\n isBooleanChecked(value: any, question: any, column?: any) {\r\n value = (value.toLowerCase() === 'yes') ? true : false;\r\n if (question.fieldDataType !== 'dataGrid') {\r\n if (this.answers[question.labelName] !== '' && typeof this.answers[question.labelName] === 'string') {\r\n this.answers[question.labelName] = JSON.parse(this.answers[question.labelName])\r\n }\r\n if (this.answers[question.labelName] === value) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n if (this.dataGridColumns[question.labelName + '=' + column.order] !== '' && typeof this.dataGridColumns[question.labelName + '=' + column.order] === 'string') {\r\n this.dataGridColumns[question.labelName + '=' + column.order] = JSON.parse(this.dataGridColumns[question.labelName + '=' + column.order])\r\n }\r\n if (this.dataGridColumns[question.labelName + '=' + column.order] === value) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n }\r\n submitQuestionnaire(passData: any) {\r\n console.log('fdff', passData)\r\n const dataToSend: FormData = new FormData();\r\n const blobpost_Data = new Blob([JSON.stringify(passData.answers)], { type: 'application/json' });\r\n dataToSend.append('question', blobpost_Data);\r\n this.buttonDisable = true;\r\n\r\n }\r\n\r\n\r\n uploadAudioVideo(data: any, type: any) {\r\n if (data.urls && data.urls.length > 0) {\r\n let postData: any = {\r\n urls: []\r\n };\r\n for (const url of data.urls) {\r\n const file = this.filestoUpload[url.labelName][url.document];\r\n this.questionaireService.videoaudioS3Upload(file, url.url)\r\n .subscribe(() => {\r\n postData['urls'].push({ uid: url.uid, labelName: url.labelName });\r\n if (data.urls.length === postData['urls'].length) {\r\n if (type === 'consCheckin') {\r\n this.questionaireService.consumerWaitlistQnrUploadStatusUpdate(this.uuid, this.accountId, postData)\r\n .subscribe((data) => {\r\n this.successGoback();\r\n },\r\n error => {\r\n let errorObj = this.errorService.getApiError(error);\r\n this.toastService.showError(this.wordProcessor.getProjectErrorMesssages(errorObj));\r\n this.buttonDisable = false;\r\n });\r\n } else if (type === 'consAppt') {\r\n this.questionaireService.consumerApptQnrUploadStatusUpdate(this.uuid, this.accountId, postData)\r\n .subscribe((data) => {\r\n this.successGoback();\r\n },\r\n error => {\r\n let errorObj = this.errorService.getApiError(error);\r\n this.toastService.showError(this.wordProcessor.getProjectErrorMesssages(errorObj));\r\n this.buttonDisable = false;\r\n });\r\n } else if (type === 'consOrder' || type === 'paper') {\r\n this.questionaireService.consumerOrderQnrUploadStatusUpdate(this.uuid, this.accountId, postData)\r\n .subscribe((data) => {\r\n this.successGoback();\r\n },\r\n error => {\r\n this.toastService.showError(this.wordProcessor.getProjectErrorMesssages(error));\r\n this.buttonDisable = false;\r\n });\r\n } else if (type === 'consDonationDetails') {\r\n this.questionaireService.consumerDonationQnrUploadStatusUpdate(this.uuid, this.accountId, postData)\r\n .subscribe(() => {\r\n this.successGoback();\r\n }, (error: any) => {\r\n let errorObj = this.errorService.getApiError(error);\r\n this.toastService.showError(this.wordProcessor.getProjectErrorMesssages(errorObj));\r\n this.buttonDisable = false;\r\n });\r\n }\r\n }\r\n }, (error: any) => {\r\n let errorObj = this.errorService.getApiError(error);\r\n this.toastService.showError(this.wordProcessor.getProjectErrorMesssages(errorObj));\r\n this.buttonDisable = false;\r\n });\r\n }\r\n } else {\r\n this.successGoback();\r\n }\r\n }\r\n goBack() {\r\n this.location.back();\r\n }\r\n getQuestion(question: any) {\r\n if (this.source === 'customer-create' || this.source === 'qnrDetails' || this.source === 'onetime' || this.source === 'serviceOptionAppt') {\r\n return question;\r\n } else {\r\n return question.question;\r\n }\r\n }\r\n validateQuestionnaire(src?: any) {\r\n if (!this.questionAnswers) {\r\n this.questionAnswers = {\r\n answers: {\r\n answerLine: [],\r\n questionnaireId: (this.questionnaireList.id) ? this.questionnaireList.id : this.questionnaireList.questionnaireId,\r\n }\r\n }\r\n }\r\n }\r\n\r\n getImg(question: any, document: any) {\r\n if (this.filestoUpload[question.labelName] && this.filestoUpload[question.labelName][document]) {\r\n let type = this.filestoUpload[question.labelName][document].type.split('/');\r\n let file;\r\n if (type[0] === 'video' || type[0] === 'audio') {\r\n file = this.audioVideoFiles;\r\n } else {\r\n file = this.selectedMessage;\r\n }\r\n const indx = file.indexOf(this.filestoUpload[question.labelName][document]);\r\n if (indx !== -1) {\r\n let path = this.fileService.getImage(null, this.filestoUpload[question.labelName][document]);\r\n\r\n if (path && path !== null) {\r\n return path;\r\n }\r\n path = file[indx].path;\r\n return path;\r\n }\r\n } else if (this.uploadedFiles[question.labelName] && this.uploadedFiles[question.labelName][document]) {\r\n const indx = this.uploadedImages.indexOf(this.uploadedFiles[question.labelName][document]);\r\n if (indx !== -1) {\r\n let path = this.fileService.getImage(null, this.uploadedImages[indx]);\r\n if (path && path !== null) {\r\n return path;\r\n }\r\n path = this.uploadedImages[indx].s3path;\r\n return path;\r\n }\r\n }\r\n }\r\n // onButtonBeforeHook(event: any) {\r\n // if (!event || !event.button) {\r\n // return;\r\n // }\r\n // if (event.button.type === ButtonType.DOWNLOAD) {\r\n // }\r\n // }\r\n openAttachmentGallery(question: any, document: any) {\r\n this.image_list_popup = [];\r\n let count = 0;\r\n let imagePath;\r\n let caption = '';\r\n if (this.filestoUpload[question.labelName] && this.filestoUpload[question.labelName][document]) {\r\n let type = this.filestoUpload[question.labelName][document].type.split('/');\r\n if (type[0] === 'video' || type[0] === 'audio') {\r\n const indx = this.audioVideoFiles.indexOf(this.filestoUpload[question.labelName][document]);\r\n this.showAudioVideoFile(this.audioVideoFiles[indx]);\r\n } else {\r\n const indx = this.selectedMessage.indexOf(this.filestoUpload[question.labelName][document]);\r\n if (indx !== -1) {\r\n if (type[1] === 'pdf' || type[1] === 'docx' || type[1] === 'txt' || type[1] === 'doc') {\r\n if (this.selectedMessage[indx].s3path) {\r\n window.open(this.selectedMessage[indx].s3path, '_blank');\r\n } else {\r\n window.open(this.selectedMessage[indx].path, '_blank');\r\n }\r\n } else {\r\n imagePath = this.uploadedImages[indx].path;\r\n caption = this.comments[question.labelName + '=' + document];\r\n }\r\n }\r\n }\r\n } else if (this.uploadedFiles[question.labelName] && this.uploadedFiles[question.labelName][document]) {\r\n const indx = this.uploadedImages.indexOf(this.uploadedFiles[question.labelName][document]);\r\n let type = this.uploadedFiles[question.labelName][document].type.split('/');\r\n let ext = type[1];\r\n type = type[0];\r\n if (indx !== -1) {\r\n if (type === 'video' || type === 'audio') {\r\n this.showAudioVideoFile(this.uploadedImages[indx]);\r\n } else if (ext === 'pdf' || ext === 'docx' || ext === 'txt' || ext === 'doc' || ext === 'vnd.openxmlformats-officedocument.spreadsheetml.sheet') {\r\n window.open(this.uploadedFiles[question.labelName][document].s3path, '_blank');\r\n } else {\r\n // console.log('typetxt2',this.uploadedImages[indx]);\r\n if (this.uploadedImages && this.uploadedImages[indx] && this.uploadedImages[indx]['keyName'] &&\r\n this.uploadedImages[indx]['keyName'].includes('docx')) {\r\n window.open(this.uploadedFiles[question.labelName][document].s3path, '_blank');\r\n }\r\n else {\r\n imagePath = this.uploadedImages[indx].s3path;\r\n caption = this.uploadedImages[indx].comments;\r\n }\r\n }\r\n }\r\n }\r\n if (imagePath) {\r\n const imgobj = {\r\n src: imagePath,\r\n thumb: imagePath,\r\n alt: caption\r\n }\r\n this.image_list_popup.push(imgobj);\r\n count++;\r\n }\r\n if (count > 0) {\r\n setTimeout(() => {\r\n this.openGallery(this.image_list_popup[0]);\r\n }, 200);\r\n }\r\n }\r\n showAudioVideoFile(file: any) {\r\n const fileviewdialogRef = this.dialog.open(ShowuploadfileComponent, {\r\n width: '50%',\r\n panelClass: ['popup-class', 'commonpopupmainclass', 'uploadfilecomponentclass'],\r\n disableClose: true,\r\n data: {\r\n file: file,\r\n source: 'qnr'\r\n }\r\n });\r\n fileviewdialogRef.afterClosed().subscribe(result => {\r\n });\r\n }\r\n editQnr() {\r\n this.editQuestionnaire = !this.editQuestionnaire;\r\n }\r\n getDocuments(question: any) {\r\n if (question.filePropertie.maxNoOfFile > 1 && question.filePropertie.minNoOfFile !== question.filePropertie.maxNoOfFile) {\r\n return this.uploadFilesTemp[question.labelName];\r\n } else {\r\n return question.filePropertie.allowedDocuments;\r\n }\r\n }\r\n showProviderText(question: any) {\r\n if (question.whoCanAnswer && question.whoCanAnswer === 'PROVIDER_ONLY') {\r\n return true;\r\n }\r\n return false;\r\n }\r\n successGoback() {\r\n this.buttonDisable = false;\r\n if (!this.type) {\r\n this.location.back();\r\n } else {\r\n this.filestoUpload = [];\r\n this.editQnr();\r\n this.returnAnswers.emit('reload');\r\n if (this.type !== 'qnr-link') {\r\n this.toastService.showSuccess('Updated Successfully');\r\n }\r\n }\r\n }\r\n showDataGridAddSection(question: any, value: any) {\r\n this.showDataGrid[question.labelName] = value;\r\n this.updatedGridIndex[question.labelName] = null;\r\n }\r\n showDataGridAddSectionn(question: any, value: any) {\r\n this.quesStore = question;\r\n this.lStorageService.setitemonLocalStorage('quesStore', this.quesStore);\r\n this.showDataGrid[question.labelName] = value;\r\n this.updatedGridIndex[question.labelName] = null;\r\n this.qnrPopup(question, true)\r\n }\r\n saveDataGridColumn(question: any) {\r\n let columns = [];\r\n for (let column of question.dataGridProperties.dataGridColumns) {\r\n if (this.dataGridColumns[question.labelName + '=' + column.order] || column.dataType === 'bool') {\r\n columns[column.order] = this.dataGridColumns[question.labelName + '=' + column.order];\r\n } else {\r\n if (column.dataType === 'list' || column.dataType === 'fileUpload') {\r\n columns[column.order] = [];\r\n } else {\r\n columns[column.order] = '';\r\n }\r\n }\r\n }\r\n if (!this.dataGridColumnsAnswerList[question.labelName]) {\r\n this.dataGridColumnsAnswerList[question.labelName] = [];\r\n }\r\n if (this.updatedGridIndex[question.labelName] !== null) {\r\n this.dataGridColumnsAnswerList[question.labelName][this.updatedGridIndex[question.labelName]] = columns;\r\n } else {\r\n this.dataGridColumnsAnswerList[question.labelName].push(columns);\r\n }\r\n this.cancelAddorUpdate(question);\r\n this.onSubmit('inputChange');\r\n }\r\n editDataGrid(question: any, column: any) {\r\n const index = this.dataGridColumnsAnswerList[question.labelName].indexOf(column);\r\n Object.keys(column).forEach(key => {\r\n this.dataGridColumns[question.labelName + '=' + key] = column[key];\r\n });\r\n this.updatedGridIndex[question.labelName] = index;\r\n this.showDataGrid[question.labelName] = true;\r\n }\r\n deleteDataGrid(question: any, column: any) {\r\n const index = this.dataGridColumnsAnswerList[question.labelName].indexOf(column);\r\n this.dataGridColumnsAnswerList[question.labelName].splice(index, 1);\r\n this.onSubmit('inputChange');\r\n }\r\n cancelAddorUpdate(question: any) {\r\n this.showDataGrid[question.labelName] = false;\r\n this.updatedGridIndex[question.labelName] = null;\r\n for (let column of question.dataGridProperties.dataGridColumns) {\r\n this.dataGridColumns[question.labelName + '=' + column.order] = '';\r\n }\r\n }\r\n getColumnType(columns: any, column: any) {\r\n const columnDetails = columns.filter((clmn: any) => clmn.order === JSON.parse(column));\r\n if (columnDetails[0]) {\r\n return columnDetails[0].dataType;\r\n }\r\n }\r\n getSectionCount() {\r\n return Object.keys(this.groupedQnr).length;\r\n }\r\n getBoolValue(value: any) {\r\n value = (value !== '' && typeof value === 'string') ? JSON.parse(value) : value;\r\n if (value === true) {\r\n return 'Yes';\r\n }\r\n return 'No';\r\n }\r\n getMaxdate(data: any) {\r\n let date;\r\n if (this.getQuestion(data).dateProperties && this.getQuestion(data).dateProperties.endDate) {\r\n const dt = this.reverse(this.getQuestion(data).dateProperties.endDate);\r\n date = new Date(dt)\r\n } else {\r\n date = this.tday;\r\n }\r\n return date;\r\n }\r\n getMindate(data: any) {\r\n let date;\r\n if (this.getQuestion(data).dateProperties && this.getQuestion(data).dateProperties.startDate) {\r\n const dt = this.reverse(this.getQuestion(data).dateProperties.startDate);\r\n date = new Date(dt)\r\n } else {\r\n date = this.minday;\r\n }\r\n\r\n return date;\r\n }\r\n reverse(s: string) {\r\n return s.split(\"-\").reverse().join(\"-\");\r\n }\r\n qnrPopup(question: any, value: any) {\r\n // if (value === 'edit') {\r\n // this.quesStore = this.lStorageService.getitemfromLocalStorage('quesStore');\r\n // this.showqnr = true;\r\n // this.editableItem = question;\r\n // console.log(JSON.stringify(this.quesStore))\r\n // const removeitemdialogRef = this.dialog.open(QnrDialogComponent, {\r\n // width: '50%',\r\n // panelClass: ['popup-class', 'commonpopupmainclass', 'confirmationmainclass'],\r\n // disableClose: true,\r\n // data: {\r\n // data: this.quesStore,\r\n // qnr_type: 'service_option',\r\n // view: 'qnrView',\r\n // isEdit: 'edit',\r\n // editableItem: this.editableItem,\r\n // servDetails: this.service\r\n // }\r\n // });\r\n // removeitemdialogRef.afterClosed().subscribe(result => {\r\n // if (result) {\r\n // console.log(\"result.data.answerLine\", result.data.answerLine)\r\n // this.dataGridList = result.data.answerLine;\r\n // this.post_Data = result.data;\r\n // this.showItem = true;\r\n // this.item = result.data.answerLine[0].answer.dataGridList[0].dataGridListColumn[0].column.list[0];\r\n // if (result.data.totalPrice) {\r\n // this.totalPrice = result.data.totalPrice\r\n // }\r\n // let index1 = this.itemArray.findIndex(x => x.id === this.editableItem.id)\r\n // if (index1 > -1) {\r\n // this.itemArray.splice(index1, 1);\r\n // }\r\n // let dummyArray = { id: this.id, sequenceId: this.sequenceId, item: this.item, price: this.totalPrice, columnItem: this.dataGridList }\r\n // this.itemArray.push(dummyArray)\r\n // if (this.itemArray) {\r\n // this.lStorageService.setitemonLocalStorage('itemArray', this.itemArray);\r\n // }\r\n // this.serviceTotalPrice = 0;\r\n // this.itemArray.forEach((item: any) => {\r\n // this.serviceTotalPrice = this.serviceTotalPrice + item.price;\r\n // this.lStorageService.setitemonLocalStorage('serviceTotalPrice', this.serviceTotalPrice);\r\n // });\r\n // this.id = this.id + 1\r\n // let obj = { sequenceId: this.sequenceId, dgList: this.post_Data.answerLine };\r\n // this.finalObjectList.push(obj);\r\n // this.onSubmit('serviceOption')\r\n // }\r\n // });\r\n // }\r\n // else {\r\n // this.showqnr = true;\r\n // console.log(\"this.sequenceId\", question)\r\n // this.sequenceId = question.sequnceId;\r\n // const removeitemdialogRef = this.dialog.open(QnrDialogComponent, {\r\n // width: '50%',\r\n // panelClass: ['popup-class', 'commonpopupmainclass', 'confirmationmainclass'],\r\n // disableClose: true,\r\n // data: {\r\n // data: question,\r\n // qnr_type: 'service_option',\r\n // view: 'qnrView',\r\n // isEdit: 'add',\r\n // servDetails: this.service\r\n // }\r\n // });\r\n // removeitemdialogRef.afterClosed().subscribe(result => {\r\n // if (result) {\r\n // this.dataGridList = result.data.answerLine;\r\n // this.post_Data = result.data;\r\n // this.showItem = true;\r\n // this.item = result.data.answerLine[0].answer.dataGridList[0].dataGridListColumn[0].column.list[0];\r\n\r\n // if (result.data.totalPrice) {\r\n // this.totalPrice = result.data.totalPrice\r\n // }\r\n // let dummyArray = { id: this.id, sequenceId: this.sequenceId, item: this.item, price: this.totalPrice, columnItem: this.dataGridList }\r\n // this.itemArray.push(dummyArray)\r\n\r\n // if (this.itemArray) {\r\n // this.lStorageService.setitemonLocalStorage('itemArray', this.itemArray);\r\n // }\r\n // this.serviceTotalPrice = 0;\r\n // this.itemArray.forEach((item: any) => {\r\n // let quantity = item.columnItem[0].answer.dataGridList[0].dataGridListColumn[0].quantity;\r\n // this.serviceTotalPrice = (this.serviceTotalPrice + item.price) * quantity;\r\n // this.lStorageService.setitemonLocalStorage('serviceTotalPrice', this.serviceTotalPrice);\r\n // });\r\n // this.id = this.id + 1\r\n // let obj = { sequenceId: this.sequenceId, dgList: this.post_Data.answerLine };\r\n // this.finalObjectList.push(obj);\r\n // this.onSubmit('serviceOption')\r\n // }\r\n // });\r\n // }\r\n }\r\n increment(item: any) {\r\n // const removeitemdialogRef = this.dialog.open(QnrDialogComponent, {\r\n // width: '100%',\r\n // panelClass: ['popup-class', 'commonpopupmainclass', 'confirmationmainclass'],\r\n // disableClose: true,\r\n // data: {\r\n // item: item,\r\n // data: this.questionnaireList,\r\n // view: 'qnrrepeatView',\r\n // servDetails: this.service\r\n // }\r\n // });\r\n // removeitemdialogRef.afterClosed().subscribe(result => {\r\n // if (result) {\r\n // if (result === 'addNew') {\r\n // this.quesStore = this.lStorageService.getitemfromLocalStorage('quesStore');\r\n // this.qnrPopup(this.quesStore, true)\r\n // } else {\r\n // if (!this.sequenceId) {\r\n // this.sequenceId = item.sequenceId\r\n // }\r\n // let dummyArray = { id: this.id, sequenceId: this.sequenceId, item: result.repeatItem.item, price: result.repeatItem.price, columnItem: result.repeatItem.columnItem }\r\n // let items = dummyArray.columnItem[0].answer.dataGridList[0].dataGridListColumn;\r\n // for (let i = 0; i < items.length; i++) {\r\n // items[i].quantity = items[i].quantity + 1;\r\n // }\r\n // if (this.itemArray) {\r\n // this.lStorageService.setitemonLocalStorage('itemArray', this.itemArray);\r\n // }\r\n // console.log(\"This.ItemArray\", this.itemArray)\r\n // this.serviceTotalPrice = 0;\r\n // this.itemArray.forEach((item: any) => {\r\n // let quantity = item.columnItem[0].answer.dataGridList[0].dataGridListColumn[0].quantity;\r\n // console.log(\"quantity\", quantity)\r\n // this.serviceTotalPrice += item.price * quantity;\r\n // });\r\n // console.log(\"serviceTotalPrice\", this.serviceTotalPrice)\r\n // this.lStorageService.setitemonLocalStorage('serviceTotalPrice', this.serviceTotalPrice);\r\n // this.id = this.id + 1\r\n // let obj = { sequenceId: this.sequenceId, dgList: result.repeatItem.columnItem };\r\n // this.finalObjectList.push(obj);\r\n // this.onSubmit('serviceOption')\r\n // }\r\n\r\n // }\r\n // });\r\n }\r\n getItemQuantity(item: any) {\r\n let quantity = item.columnItem[0].answer.dataGridList[0].dataGridListColumn[0].quantity;\r\n return quantity\r\n // console.log(\"item\", item)\r\n }\r\n decrement(removingItem: any) {\r\n let index = this.itemArray.findIndex((x: any) => x.id === removingItem.id)\r\n if (index > -1) {\r\n console.log(\"this.itemArray[index]\", this.itemArray[index])\r\n if (this.getItemQuantity(this.itemArray[index]) == 1) {\r\n this.itemArray.splice(index, 1); // 2nd parameter means remove one item only\r\n }\r\n else {\r\n let items = this.itemArray[index].columnItem[0].answer.dataGridList[0].dataGridListColumn;\r\n for (let i = 0; i < items.length; i++) {\r\n items[i].quantity = items[i].quantity - 1;\r\n }\r\n }\r\n if (this.itemArray) {\r\n this.lStorageService.setitemonLocalStorage('itemArray', this.itemArray);\r\n }\r\n this.serviceTotalPrice = 0;\r\n this.itemArray.forEach((item: any) => {\r\n this.serviceTotalPrice = this.serviceTotalPrice + item.price;\r\n });\r\n this.lStorageService.setitemonLocalStorage('serviceTotalPrice', this.serviceTotalPrice);\r\n this.finalObjectList.splice(index, 1);\r\n }\r\n this.onSubmit('serviceOption')\r\n }\r\n disableInput() {\r\n return false;\r\n }\r\n private getCurrentIndexCustomLayout(image, images): number {\r\n return image ? images.indexOf(image) : -1;\r\n }\r\n openGallery(image): void {\r\n let imageIndex = this.getCurrentIndexCustomLayout(image, this.image_list_popup);\r\n this.galleryService.open(this.image_list_popup, imageIndex);\r\n }\r\n}\r\n","<section class=\"cons-inbox no-padding-small\" *ngIf=\"!showservice\">\r\n <div class=\"container consumer-dashhome p-0\" *ngIf=\"!type && source!='proLead'\">\r\n <div class=\"card title-gb rounded-0\" *ngIf=\"uuid\">\r\n <h5 class=\"mt-2 bold\">{{questionnaire_heading | capitalizeFirst}} <a class=\"pull-left me-4 back-btn\"\r\n (click)=\"goBack()\"><i class=\"fa fa-arrow-left\"></i></a></h5>\r\n </div>\r\n </div>\r\n <app-common-innerloading-spinner *ngIf=\"loading\"></app-common-innerloading-spinner>\r\n <div class=\"d-flex flex-column-fluid pull-right me-2 mb-4\"\r\n *ngIf=\"type !== 'qnrLinkProvider' && !buttonDisable && waitlistStatus\">\r\n <button class=\"normal-btn edit\" mat-flat-button (click)=\"editQnr()\" id=\"btnEdit\">Edit</button>\r\n </div>\r\n <div class=\"d-flex flex-column-fluid width-100\" [class.qnrDisableState]=\"disableInput()\"\r\n [class.p-0]=\"uuid && (source === 'consCheckin' || source === 'consAppt' || source === 'consOrder' || source === 'paper' || source === 'consDonationDetails' || source === 'ivr')\">\r\n <div class=\"col-xl-12 force_center\" [class.p-0]=\"uuid\" [class.no-padding-small]=\"source && source=='ivr'\">\r\n <div class=\"\">\r\n <div class=\"qnrsec\" *ngFor=\"let qnr of groupedQnr | keyvalue: asIsOrder\"\r\n [class.section-shadow]=\"getSectionCount() > 1\" [class.no-padding-small]=\"source && source=='ivr'\">\r\n <div class=\"form-group card mgn-0\" *ngFor=\"let question of qnr.value\">\r\n <label class=\"col-12 quest\">{{getQuestion(question).label}}\r\n <i class=\"fa fa-plus-circle pull-right\" aria-hidden=\"true\"\r\n [class.addicon]=\"!buttonDisable && !disableInput()\"\r\n *ngIf=\"getQuestion(question).fieldDataType === 'dataGrid' && !showDataGrid[getQuestion(question).labelName]\"\r\n (click)=\"!buttonDisable && !disableInput() && showDataGridAddSection(getQuestion(question), true)\"></i>\r\n <div class=\"pro-only\" *ngIf=\"showProviderText(getQuestion(question))\">For Providers</div>\r\n <span class=\"red\" *ngIf=\"getQuestion(question).mandatory\">*</span>\r\n <div class=\"form-level-settings\" *ngIf=\"getQuestion(question).hint\"\r\n [innerHTML]=\"getQuestion(question).hint | safeHtml\">\r\n </div>\r\n </label>\r\n <!-- for file upload -->\r\n <div class=\"col-12\" *ngIf=\"getQuestion(question).fieldDataType === 'fileUpload'\">\r\n <mat-select multiple #deptsel [disabled]=\"buttonDisable || disableInput()\"\r\n *ngIf=\"getQuestion(question).filePropertie.maxNoOfFile > 1 && getQuestion(question).filePropertie.minNoOfFile !== getQuestion(question).filePropertie.maxNoOfFile\"\r\n [(ngModel)]=\"uploadFilesTemp[getQuestion(question).labelName]\" class=\"select-box\" placeholder=\"Select\">\r\n <mat-option *ngFor=\"let document of getQuestion(question).filePropertie.allowedDocuments\"\r\n [value]=\"document\" (click)=\"changeImageSelected(getQuestion(question), document)\">\r\n {{document}}</mat-option>\r\n </mat-select>\r\n <div class=\"col-lg-12 col-12 col-md-12 col-sm-12 p-0 mt-4\"\r\n *ngIf=\"getDocuments(getQuestion(question)) && getDocuments(getQuestion(question)).length > 0\">\r\n <div class=\"dropzone dropzone-default dropzone-primary dz-clickable\"\r\n [class.single-file]=\"getQuestion(question).filePropertie.allowedDocuments.length==1\"\r\n style=\"cursor: auto;\">\r\n <ng-container *ngFor=\"let doc of getDocuments(getQuestion(question))\">\r\n <div class=\"dz-preview dz-processing dz-image-preview dz-error dz-complete\"\r\n *ngIf=\"getImg(getQuestion(question), doc)\">\r\n <div class=\"docname\" *ngIf=\"getQuestion(question).filePropertie.allowedDocuments.length > 1\">\r\n {{doc}}</div>\r\n <div class=\"dzimage pointer-cursor\" (click)=\"openAttachmentGallery(getQuestion(question), doc)\">\r\n <img alt=\"\" class=\"img_fit\" [src]=\"getImg(getQuestion(question), doc)\">\r\n </div>\r\n <input [disabled]=\"buttonDisable || disableInput()\" (blur)=\"onSubmit('inputChange');\"\r\n [(ngModel)]=\"comments[getQuestion(question).labelName + '=' + doc]\">\r\n <div class=\"gal_action\" *ngIf=\"!buttonDisable && !disableInput() && mode!=='read'\"\r\n (click)=\"changeImageSelected(getQuestion(question), doc)\">\r\n <i class=\"fa fa-times-circle\" aria-hidden=\"true\"></i>\r\n </div>\r\n </div>\r\n <div class=\"dz-preview dz-processing dz-image-preview dz-error dz-complete\"\r\n (click)=\"logofile1.click()\" *ngIf=\"!getImg(getQuestion(question), doc)\">\r\n <div class=\"docname\" *ngIf=\"getQuestion(question).filePropertie.allowedDocuments.length > 1\">\r\n {{doc}}</div>\r\n <div class=\"dz-image pointer-cursor\">\r\n </div>\r\n <input #logofile1 type=\"file\" accept=\"/*;capture=camera\" style=\"display:none;\"\r\n [disabled]=\"buttonDisable || disableInput()\"\r\n (change)=\"filesSelected($event, getQuestion(question), doc)\">\r\n <div class=\"dz-error-mark\">\r\n <a class=\"btn btn-icon btn-light-success btn-circle mr-2\"><i\r\n class=\"text-dark-50 flaticon-upload\"></i></a>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"mt-2 text-danger\" *ngIf=\"apiError[getQuestion(question).labelName]\">\r\n {{apiError[getQuestion(question).labelName]}}</div>\r\n </div>\r\n <!-- for checkbox -->\r\n <div class=\"col-12\"\r\n *ngIf=\"getQuestion(question).fieldDataType === 'list' && getQuestion(question).listPropertie.maxAnswers > 1\">\r\n <div class=\"checkbox-list\">\r\n <label class=\"checkbox\" *ngFor=\"let value of getQuestion(question).labelValues\">\r\n <input type=\"checkbox\" [checked]=\"isChecked(value, getQuestion(question))\"\r\n (change)=\"listChange($event, value, getQuestion(question))\"\r\n [disabled]=\"buttonDisable || disableInput()\">\r\n <span></span>\r\n {{value}}\r\n </label>\r\n </div>\r\n <div class=\"mt-2 text-danger\" *ngIf=\"apiError[getQuestion(question).labelName]\">\r\n {{apiError[getQuestion(question).labelName]}}</div>\r\n </div>\r\n <!-- for radio -->\r\n <div class=\"col-12\"\r\n *ngIf=\"getQuestion(question).fieldDataType === 'list' && getQuestion(question).listPropertie.maxAnswers === 1\">\r\n <div class=\"radio-list\">\r\n <label class=\"radio\" *ngFor=\"let value of getQuestion(question).labelValues\">\r\n <input type=\"radio\" [disabled]=\"buttonDisable || disableInput()\"\r\n [checked]=\"isChecked(value, getQuestion(question))\"\r\n (change)=\"listChange($event, value, getQuestion(question))\">\r\n <span></span>\r\n {{value}}\r\n </label>\r\n </div>\r\n <div class=\"mt-2 text-danger\" *ngIf=\"apiError[getQuestion(question).labelName]\">\r\n {{apiError[getQuestion(question).labelName]}}</div>\r\n </div>\r\n <!-- for toggel boolean -->\r\n <div class=\"col-12\" *ngIf=\"getQuestion(question).fieldDataType === 'bool'\">\r\n <div class=\"radio-list\">\r\n <label class=\"radio\" *ngFor=\"let value of getQuestion(question).labelValues\">\r\n <input type=\"radio\" [disabled]=\"buttonDisable || disableInput()\"\r\n [checked]=\"isBooleanChecked(value, getQuestion(question))\"\r\n (change)=\"booleanChange($event, value, getQuestion(question))\">\r\n <span></span>\r\n {{value}}\r\n </label>\r\n </div>\r\n <div class=\"mt-2 text-danger\" *ngIf=\"apiError[getQuestion(question).labelName]\">\r\n {{apiError[getQuestion(question).labelName]}}</div>\r\n </div>\r\n <!-- for Text -->\r\n <div class=\"col-12\" *ngIf=\"getQuestion(question).fieldDataType === 'plainText'\">\r\n <input *ngIf=\"getQuestion(question).plainTextPropertie.maxNoOfLetter<=100\"\r\n [(ngModel)]=\"answers[getQuestion(question).labelName]\" (input)=\"onSubmit('inputChange');\" \r\n [minlength]=\"getQuestion(question).plainTextPropertie.minNoOfLetter\"\r\n [maxlength]=\"getQuestion(question).plainTextPropertie.maxNoOfLetter\"\r\n class=\"form-control1 form-control-solid\" type=\"text\" [disabled]=\"buttonDisable || disableInput()\">\r\n <textarea rows=\"3\" *ngIf=\"getQuestion(question).plainTextPropertie.maxNoOfLetter>100\"\r\n [(ngModel)]=\"answers[getQuestion(question).labelName]\" (input)=\"onSubmit('inputChange');\"\r\n [minlength]=\"getQuestion(question).plainTextPropertie.minNoOfLetter\"\r\n [maxlength]=\"getQuestion(question).plainTextPropertie.maxNoOfLetter\" [disabled]=\"buttonDisable || disableInput()\"\r\n class=\"form-control2 form-control-solid\"></textarea>\r\n <div class=\"mt-2 text-danger\" *ngIf=\"apiError[getQuestion(question).labelName]\">\r\n {{apiError[getQuestion(question).labelName]}}</div>\r\n </div>\r\n <!-- for Number -->\r\n <div class=\"col-12\" *ngIf=\"getQuestion(question).fieldDataType === 'number'\">\r\n <input [(ngModel)]=\"answers[getQuestion(question).labelName]\" (input)=\"onSubmit('inputChange');\"\r\n [min]=\"getQuestion(question).numberPropertie.start\" [max]=\"getQuestion(question).numberPropertie.end\"\r\n [disabled]=\"buttonDisable || disableInput()\" class=\"form-control1 form-control-solid\" type=\"number\"\r\n (keypress)=\"isNumeric($event)\">\r\n <div class=\"mt-2 text-danger\" *ngIf=\"apiError[getQuestion(question).labelName]\">\r\n {{apiError[getQuestion(question).labelName]}}</div>\r\n </div>\r\n <!-- for Date -->\r\n <div class=\"col-12 d-flex\" *ngIf=\"getQuestion(question).fieldDataType === 'date'\">\r\n <input class=\"form-control1\" [matDatepicker]=\"picker\" [max]=\"getMaxdate(question)\"\r\n [min]=\"getMindate(question)\" [(ngModel)]=\"answers[getQuestion(question).labelName]\"\r\n (dateChange)=\"onSubmit('inputChange')\" [disabled]=\"buttonDisable || disableInput()\"\r\n (click)=\"picker.open()\">\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n <mat-datepicker #picker [disabled]=\"buttonDisable || disableInput()\"></mat-datepicker>\r\n <div class=\"mt-2 text-danger\" *ngIf=\"apiError[getQuestion(question).labelName]\">\r\n {{apiError[getQuestion(question).labelName]}}</div>\r\n </div>\r\n <!-- for Datagrid -->\r\n <div class=\"table-responsive1\"\r\n *ngIf=\"getQuestion(question).fieldDataType === 'dataGrid' && dataGridColumnsAnswerList[getQuestion(question).labelName] && dataGridColumnsAnswerList[getQuestion(question).labelName].length > 0\">\r\n <table class=\"table table-head-custom table-head-bg table-borderless table-vertical-center\">\r\n <thead>\r\n <th *ngFor=\"let column of getQuestion(question).dataGridProperties.dataGridColumns\">\r\n {{column.columnId}}</th>\r\n <th *ngIf=\"!buttonDisable && !disableInput() && !showDataGrid[getQuestion(question).labelName]\">\r\n </th>\r\n <th *ngIf=\"!buttonDisable && !disableInput() && !showDataGrid[getQuestion(question).labelName]\">\r\n </th>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let column of dataGridColumnsAnswerList[getQuestion(question).labelName];let i =index\">\r\n <td *ngFor=\"let data of column | keyvalue\">\r\n <div\r\n *ngIf=\"getColumnType(getQuestion(question).dataGridProperties.dataGridColumns, data.key) === 'date'\">\r\n {{data.value | date : newTimeDateFormat}}\r\n </div>\r\n <div\r\n *ngIf=\"getColumnType(getQuestion(question).dataGridProperties.dataGridColumns, data.key) === 'bool'\">\r\n {{getBoolValue(data.value)}}\r\n </div>\r\n <div\r\n *ngIf=\"getColumnType(getQuestion(question).dataGridProperties.dataGridColumns, data.key) !== 'date' && getColumnType(getQuestion(question).dataGridProperties.dataGridColumns, data.key) !== 'bool'\">\r\n {{data.value}}\r\n </div>\r\n </td>\r\n <td *ngIf=\"!buttonDisable && !disableInput() && !showDataGrid[getQuestion(question).labelName]\">\r\n <i class=\"fa fa-pen\" (click)=\"editDataGrid(getQuestion(question), column)\"></i>\r\n </td>\r\n <td *ngIf=\"!buttonDisable && !disableInput() && !showDataGrid[getQuestion(question).labelName]\">\r\n <i class=\"fa fa-trash\" (click)=\"deleteDataGrid(getQuestion(question), column)\"></i>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <div class=\"gridSection\" *ngIf=\"showDataGrid[getQuestion(question).labelName]\">\r\n <div class=\"gridColumn\" *ngFor=\"let column of getQuestion(question).dataGridProperties.dataGridColumns\">\r\n <label>{{column.label}}\r\n <span class=\"red\" *ngIf=\"column.mandatory\">*</span>\r\n </label>\r\n <!-- for checkbox -->\r\n <div class=\"col-12\" *ngIf=\"column.dataType === 'list'\">\r\n <div class=\"checkbox-list\">\r\n <label class=\"checkbox\" *ngFor=\"let value of column.listPropertie.values\">\r\n <input type=\"checkbox\" [checked]=\"isChecked(value, getQuestion(question), column)\"\r\n (change)=\"listChange($event, value, getQuestion(question), column)\"\r\n [disabled]=\"buttonDisable || disableInput()\">\r\n <span></span>\r\n {{value}}\r\n </label>\r\n </div>\r\n </div>\r\n <!-- for toggel boolean -->\r\n <div class=\"col-12\" *ngIf=\"column.dataType === 'bool'\">\r\n <div class=\"radio-list\">\r\n <label class=\"radio\">\r\n <input type=\"radio\" [disabled]=\"buttonDisable || disableInput()\"\r\n [checked]=\"isBooleanChecked('yes', getQuestion(question), column)\"\r\n (change)=\"booleanChange($event, 'yes', getQuestion(question), column)\">\r\n <span></span>\r\n Yes\r\n </label>\r\n <label class=\"radio\">\r\n <input type=\"radio\" [disabled]=\"buttonDisable || disableInput()\"\r\n [checked]=\"isBooleanChecked('no', getQuestion(question), column)\"\r\n (change)=\"booleanChange($event, 'no', getQuestion(question), column)\">\r\n <span></span>\r\n No\r\n </label>\r\n </div>\r\n </div>\r\n <!-- for Text -->\r\n <div class=\"col-12\" *ngIf=\"column.dataType === 'plainText'\">\r\n <input [(ngModel)]=\"dataGridColumns[getQuestion(question).labelName + '=' + column.order]\"\r\n [disabled]=\"buttonDisable || disableInput()\" class=\"form-control1 form-control-solid\" type=\"text\">\r\n </div>\r\n <!-- for Number -->\r\n <div class=\"col-12\" *ngIf=\"column.dataType === 'number'\">\r\n <input [(ngModel)]=\"dataGridColumns[getQuestion(question).labelName + '=' + column.order]\"\r\n [disabled]=\"buttonDisable || disableInput()\" [min]=\"column.numberPropertie.start\"\r\n [max]=\"column.numberPropertie.end\" class=\"form-control1 form-control-solid\" type=\"number\">\r\n </div>\r\n <!-- for Date -->\r\n <div class=\"col-12 d-flex\" *ngIf=\"column.dataType === 'date'\">\r\n <input class=\"form-control1\" [matDatepicker]=\"picker\" [max]=\"getMaxdate(question)\"\r\n [min]=\"getMindate(question)\"\r\n [(ngModel)]=\"dataGridColumns[getQuestion(question).labelName + '=' + column.order]\"\r\n [disabled]=\"buttonDisable || disableInput()\" (click)=\"picker.open()\">\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n <mat-datepicker #picker [disabled]=\"buttonDisable || disableInput()\">\r\n </mat-datepicker>\r\n </div>\r\n </div>\r\n <div class=\"act-btns\">\r\n <button type=\"button\" class=\"btn btn-light-primary font-weight-bold\" id=\"btnCancelQ\"\r\n (click)=\"cancelAddorUpdate(getQuestion(question))\">\r\n Cancel\r\n </button>\r\n <button type=\"button\" class=\"btn btn-primary font-weight-bold\" id=\"btnSaveQ\"\r\n (click)=\"saveDataGridColumn(getQuestion(question))\">Add</button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-12 col-sm-12 col-lg-12 p-0 submit-pad\"\r\n *ngIf=\"type !== 'qnrLinkProvider' && source!=='proLead' && (uuid || source === 'customer-details' || source === 'proDonation') && !disableInput()\">\r\n <button class=\"normal-btn\" mat-flat-button [class.spinner]=\"buttonDisable\" id=\"btnSubmit\"\r\n [class.spinner-darker-success]=\"buttonDisable\" [class.spinner-center]=\"buttonDisable\"\r\n (click)=\"!buttonDisable && onSubmit('submit')\" [disabled]=\"buttonDisable\"\r\n [class.disabled]=\"buttonDisable\">{{(type == 'qnr-link') ? 'Submit' : 'Update'}}</button>\r\n </div>\r\n </div>\r\n </div>\r\n</section>\r\n<section class=\"cons-inbox no-padding-small\" *ngIf=\"showservice\">\r\n <div class=\"container consumer-dashhome\" *ngIf=\"!type\">\r\n <div class=\"card title-gb rounded-0\" *ngIf=\"uuid\">\r\n <h5 class=\"mt-2 bold\">{{questionnaire_heading | capitalizeFirst}} <a class=\"pull-left me-4 back-btn\"\r\n (click)=\"goBack()\"><i class=\"fa fa-arrow-left\"></i></a></h5>\r\n </div>\r\n </div>\r\n <app-common-innerloading-spinner *ngIf=\"loading\"></app-common-innerloading-spinner>\r\n <div class=\"d-flex flex-column-fluid pull-right me-2 mb-4\"\r\n *ngIf=\"type !== 'qnrLinkProvider' && !buttonDisable && waitlistStatus\">\r\n <button class=\"normal-btn edit\" mat-flat-button (click)=\"editQnr()\" id=\"btnEditQNR\">Edit</button>\r\n </div>\r\n <div class=\"d-flex flex-column-fluid width-100\" [class.qnrDisableState]=\"disableInput()\"\r\n [class.p-0]=\"uuid && (source === 'consCheckin' || source === 'consAppt' || source === 'consDonationDetails' )\">\r\n <div class=\"col-xl-12 force_center p-0\" [class.p-0]=\"uuid\"\r\n [class.no-padding-small]=\"source && source=='ivr'\">\r\n <div class=\"\">\r\n <div class=\"\" *ngFor=\"let qnr of groupedQnr | keyvalue\" [class.section-shadow]=\"getSectionCount() > 1\">\r\n <div *ngIf=\"itemArray.length == 0 \">\r\n <div class=\"form-group mgn-0 border-dashed text-center\" *ngFor=\"let question of qnr.value\">\r\n <div class=\"qnr-section\" *ngIf=\"getSectionCount() > 1\">\r\n {{getQuestion(question).question.sectionName}}</div>\r\n <label class=\"col-12 quest pointer-cursor\"\r\n (click)=\"showDataGridAddSectionn(getQuestion(question).question, true)\">\r\n <div>\r\n <img src=\"{{cdnPath}}assets/images/service-options.svg\" alt=\"Service Options\" class=\"img-fluid pb-0\"\r\n width=\"300\" height=\"300\">\r\n </div>\r\n <div class=\"pro-only\" *ngIf=\"showProviderText(getQuestion(question).question)\">For Providers</div>\r\n <span class=\"red\" *ngIf=\"getQuestion(question).question.mandatory\">*</span>\r\n <div>\r\n <span class=\"text-primary font-weight-bold\">Please Choose your Pet</span>\r\n </div>\r\n <div class=\"mt-3\">\r\n <span class=\"btn btn-light font-weight-bold\">Continue</span>\r\n </div>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-12 col-sm-12 mb-4 p-0\" *ngIf=\"showItem\">\r\n <div>\r\n <div class=\"card-border\" *ngFor=\" let items of itemArray\">\r\n\r\n <div class=\"d-flex justify-content-between\">\r\n <div>\r\n <div class=\"text-capitalize\">\r\n <div class=\"\">\r\n <span class=\"text-primary\">\r\n {{items.item}}<br>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex border-apply px-0\">\r\n <div (click)=\"decrement(items);\" class=\"pointer-cursor quantity quantity-1\">\r\n <span class=\"p-10\">-</span>\r\n </div>\r\n <div class=\"mx-2 pointer-cursor\"><span class=\"quantity\"\r\n *ngIf=\"items && items.columnItem && items.columnItem[0] && items.columnItem[0].answer && items.columnItem[0].answer.dataGridList && items.columnItem[0].answer.dataGridList[0] && items.columnItem[0].answer.dataGridList[0].dataGridListColumn && items.columnItem[0].answer.dataGridList[0].dataGridListColumn[0] && items.columnItem[0].answer.dataGridList[0].dataGridListColumn[0].quantity\">\r\n {{items.columnItem[0].answer.dataGridList[0].dataGridListColumn[0].quantity}}</span>\r\n </div>\r\n <div (click)=\"increment(items);\" class=\"pointer-cursor quantity quantity-1\">\r\n <span class=\"p-10\">+</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div>\r\n <span class=\"text-primary\"><span><i class=\"fa fa-inr\"></i>\r\n {{items.price * getItemQuantity(items)}}/-\r\n </span>\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n <div *ngIf=\"showItem &&itemArray.length > 0\">\r\n <div *ngFor=\"let qnr of groupedQnr | keyvalue\" [class.section-shadow]=\"getSectionCount() > 1\">\r\n <div *ngFor=\"let question of qnr.value\">\r\n <label class=\"col-12 quest pointer-cursor\"\r\n (click)=\"showDataGridAddSectionn(getQuestion(question).question, true)\">\r\n <span class=\"btn btn-light font-weight-bold\"><i class=\"fa fa-plus text-white\"></i>Add</span>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</section>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { JGalleryComponent } from './j-gallery.component';\r\nimport { JGalleryService } from './j-gallery.service';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n JGalleryComponent\r\n ],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [\r\n JGalleryComponent\r\n ],\r\n providers:[\r\n JGalleryService\r\n ]\r\n})\r\nexport class JGalleryModule { }\r\n","import { CommonModule } from '@angular/common';\r\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatOptionModule } from '@angular/material/core';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { QuestionnaireComponent } from './questionnaire.component';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { LoadingSpinnerModule } from '../../spinner/loading-spinner.module';\r\nimport { CapitalizeFirstPipeModule } from '../../pipes/capitalize/capitalize.module';\r\nimport { SafeHtmlModule } from '../../pipes/safe-html/safehtml.module';\r\nimport { ErrrorMessageModule } from '../../error-message.module';\r\nimport { JGalleryModule } from '../../j-gallery/j-gallery.module';\r\n\r\n@NgModule({\r\n declarations: [\r\n QuestionnaireComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n LoadingSpinnerModule,\r\n CapitalizeFirstPipeModule,\r\n MatDatepickerModule,\r\n MatCheckboxModule,\r\n MatSlideToggleModule,\r\n MatOptionModule,\r\n MatSelectModule,\r\n SafeHtmlModule,\r\n ErrrorMessageModule,\r\n MatIconModule,\r\n JGalleryModule\r\n ],\r\n providers:[],\r\n schemas: [\r\n NO_ERRORS_SCHEMA,\r\n CUSTOM_ELEMENTS_SCHEMA\r\n ],\r\n exports: [QuestionnaireComponent]\r\n})\r\nexport class QuestionnaireModule { }\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { MatDialogModule } from \"@angular/material/dialog\";\r\nimport { ShowuploadfileComponent } from \"./showuploadfile.component\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatDialogModule\r\n ],\r\n exports: [\r\n ShowuploadfileComponent\r\n ],\r\n declarations: [\r\n ShowuploadfileComponent\r\n ]\r\n})\r\nexport class ShowuploadfileModule {}","import { AfterViewInit, Component, ElementRef, forwardRef, Input, Output, EventEmitter, ViewChild } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor, NgModel } from '@angular/forms';\r\nimport intlTelInput from 'intl-tel-input';\r\n\r\n@Component({\r\n selector: 'app-phone-input',\r\n templateUrl: './phone-input.component.html',\r\n styleUrls: ['./phone-input.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => PhoneInputComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class PhoneInputComponent implements AfterViewInit, ControlValueAccessor {\r\n @Input() initialCountry: string = 'us';\r\n @Input() preferredCountries: string[] = [];\r\n @Input() nationalMode: boolean = true;\r\n @Input() separateDialCode: boolean = true;\r\n @Input() otherOptions: any = {};\r\n\r\n @ViewChild('phoneInput', { static: false }) phoneInput: ElementRef;\r\n @ViewChild(NgModel) ngModelRef: NgModel; // Reference to NgModel instance\r\n\r\n @Output() phoneNumberChange = new EventEmitter<any>();\r\n @Output() ngModelChange = new EventEmitter<any>();\r\n\r\n phoneNumber: any = { dialCode: '', countryCode: '', e164Number: '', number: '' };\r\n phoneInputInstance: any;\r\n\r\n onChange = (value: any) => {};\r\n onTouched = () => {};\r\n\r\n ngAfterViewInit(): void {\r\n if (this.phoneInput && this.phoneInput.nativeElement) {\r\n this.initializePhoneInput();\r\n }\r\n if (this.phoneInputInstance) {\r\n this.phoneInputInstance.setNumber(this.phoneNumber.e164Number || ''); // Set initial value if available\r\n }\r\n }\r\n\r\n initializePhoneInput(): void {\r\n const options = {\r\n initialCountry: this.initialCountry,\r\n preferredCountries: this.preferredCountries,\r\n nationalMode: this.nationalMode,\r\n separateDialCode: this.separateDialCode,\r\n utilsScript: 'https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.8/js/utils.js',\r\n ...this.otherOptions\r\n };\r\n\r\n this.phoneInputInstance = intlTelInput(this.phoneInput.nativeElement, options);\r\n\r\n this.phoneInput.nativeElement.addEventListener('countrychange', () => {\r\n this.updatePhoneNumber();\r\n });\r\n\r\n this.phoneInput.nativeElement.addEventListener('input', () => {\r\n this.updatePhoneNumber();\r\n });\r\n\r\n if (this.phoneNumber.e164Number) {\r\n this.phoneInputInstance.setNumber(this.phoneNumber.e164Number);\r\n }\r\n }\r\n\r\n updatePhoneNumber(): void {\r\n const dialCode = '+' + this.phoneInputInstance.getSelectedCountryData().dialCode;\r\n const countryCode = this.phoneInputInstance.getSelectedCountryData().iso2;\r\n const e164Number = this.phoneInputInstance.getNumber();\r\n const number = e164Number.split(dialCode)[1];\r\n\r\n this.phoneNumber = { dialCode, countryCode, e164Number, number };\r\n\r\n // Emit changes for FormControl and ngModel\r\n this.phoneNumberChange.emit(this.phoneNumber);\r\n this.ngModelChange.emit(this.phoneNumber); // For ngModel two-way binding\r\n this.onChange(this.phoneNumber); // For reactive form support\r\n }\r\n\r\n writeValue(value: any): void {\r\n console.log(\"In Write Value:\", value);\r\n \r\n if (value && value.e164Number) {\r\n this.phoneNumber = value;\r\n setTimeout(() => {\r\n if (this.phoneInput && this.phoneInput.nativeElement) {\r\n // Set the number in intl-tel-input, which will automatically set the country\r\n // If you need to get the selected country code after setting the number\r\n const countryData = this.phoneInputInstance.getSelectedCountryData();\r\n this.phoneNumber.countryCode = countryData.iso2;\r\n this.phoneNumber.dialCode = `+${countryData.dialCode}`;\r\n this.phoneNumber.number = value.e164Number.split( this.phoneNumber.dialCode)[1];\r\n this.phoneNumber.e164Number = value.e164Number;\r\n // this.phoneInputInstance.setNumber(value.e164Number);\r\n console.log(\"Phone:\", this.phoneInput); \r\n }\r\n }, 0);\r\n }\r\n \r\n \r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n validatePhoneNumber(): boolean {\r\n if (this.phoneInputInstance) {\r\n const isValid = this.phoneInputInstance.isValidNumber() || this.phoneNumber?.number?.startsWith('555');\r\n return isValid;\r\n }\r\n return false;\r\n }\r\n}","<div class=\"phone-input-wrapper tel-input-container\">\r\n <input #phoneInput type=\"tel\" [(ngModel)]=\"phoneNumber.number\"\r\n name=\"phoneNumber\" [required]=\"true\" #phone=\"ngModel\"\r\n [ngClass]=\"{'is-invalid': !validatePhoneNumber() && phone.touched}\">\r\n\r\n <!-- Validation feedback -->\r\n <!-- <div *ngIf=\"!validatePhoneNumber() && phone.touched\" class=\"text-danger\">\r\n Invalid phone number.\r\n </div> -->\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PhoneInputComponent } from './phone-input.component';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [PhoneInputComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule\r\n ],\r\n exports: [PhoneInputComponent]\r\n})\r\nexport class PhoneInputModule { }\r\n","import { CommonModule, DatePipe } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { MatDialogModule } from \"@angular/material/dialog\";\r\nimport { ConfirmBoxComponent } from \"./confirm-box.component\";\r\nimport {AccordionModule} from 'primeng/accordion';\r\nimport { MatChipsModule } from \"@angular/material/chips\";\r\nimport { MatButtonModule } from \"@angular/material/button\";\r\nimport { MatCheckboxModule } from \"@angular/material/checkbox\";\r\nimport { InputTextareaModule } from \"primeng/inputtextarea\";\r\nimport { FormMessageDisplayModule } from \"../form-message/form-message-display.module\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatDialogModule,\r\n FormsModule,\r\n AccordionModule,\r\n MatChipsModule,\r\n MatCheckboxModule,\r\n MatButtonModule,\r\n FormMessageDisplayModule,\r\n ReactiveFormsModule,\r\n InputTextareaModule\r\n\r\n ],\r\n exports: [ConfirmBoxComponent],\r\n declarations: [\r\n ConfirmBoxComponent\r\n ],\r\n providers: [\r\n DatePipe\r\n ]\r\n})\r\nexport class ConfirmBoxModule {}","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { SharedService } from '../../shared.service';\r\n\r\n@Component({\r\n selector: 'app-payment-modes',\r\n templateUrl: './payment-modes.component.html',\r\n styleUrls: ['./payment-modes.component.css']\r\n})\r\nexport class PaymentModesComponent implements OnInit {\r\n\r\n @Input() cashPay;\r\n @Input() paymentModes;\r\n @Output() modeSelected = new EventEmitter<any>();\r\n\r\n constructor(private sharedService: SharedService) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n getImageSrc(mode) {\r\n return this.sharedService.getCDNPath() + 'assets/images/payment-modes/' + mode + '.png';\r\n }\r\n\r\n paymentModeSelected(event) {\r\n this.modeSelected.emit(event);\r\n }\r\n\r\n}\r\n","<mat-radio-group class=\"text-center mx-auto payment-mode-fw\" name=\"paymentMode\" (change)=\"paymentModeSelected($event)\">\r\n <div *ngFor=\"let modes of paymentModes\">\r\n <mat-radio-button class=\"pay-rad mt-1 ml-auto\" [value]=\"modes.mode\" >\r\n <div>\r\n <div>\r\n <img class=\"pay-icons\" [src]=\"getImageSrc(modes.mode)\" alt=\"\">\r\n </div>\r\n <div class=\"modeName\">\r\n <div *ngIf=\"modes.modeDisplayName === 'UPI'\"> \r\n <div>{{modes.modeDisplayName |uppercase }}</div>\r\n </div>\r\n <div *ngIf=\"modes.modeDisplayName === 'Credit Card'\">\r\n <div>{{modes.modeDisplayName |uppercase }}</div>\r\n </div>\r\n <div *ngIf=\"modes.modeDisplayName === 'Debit Card'\">\r\n <div> {{modes.modeDisplayName |uppercase }}</div>\r\n </div>\r\n <div *ngIf=\"modes.modeDisplayName === 'Net Banking'\">\r\n <div> {{modes.modeDisplayName |uppercase }}</div>\r\n </div>\r\n <div *ngIf=\"modes.modeDisplayName === 'Wallet'\">\r\n <div> {{modes.modeDisplayName |uppercase }} </div>\r\n </div>\r\n <div *ngIf=\"modes.mode === 'PAYLATER'\">\r\n <div> {{modes.modeDisplayName |uppercase }} </div>\r\n </div> \r\n </div>\r\n </div>\r\n </mat-radio-button> \r\n </div>\r\n <div>\r\n <mat-radio-button class=\"pay-rad mt-1 ml-auto\" [value]=\"'cash'\" *ngIf=\"cashPay\">\r\n <div class=\"clearfix\"></div>\r\n <div class=\"col-12 p-0 pay-mode \">\r\n <div class=\"d-flex\">\r\n <img class=\"pay-icons\" [src]=\"getImageSrc('PAYCASH')\" alt=\"\">\r\n </div>\r\n <div class=\"col-12 p-0 text-center\">\r\n Pay by Cash\r\n </div>\r\n </div>\r\n </mat-radio-button>\r\n </div>\r\n</mat-radio-group>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { PaymentModesComponent } from './payment-modes.component';\r\n\r\n@NgModule({\r\n declarations: [PaymentModesComponent],\r\n exports: [PaymentModesComponent],\r\n imports: [\r\n CommonModule,\r\n MatRadioModule\r\n ]\r\n})\r\nexport class PaymentModesModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PaytmService } from '../paytm.service';\r\nimport { RazorpayService } from '../razorpay.service';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [ CommonModule ],\r\n exports: [],\r\n providers: [\r\n PaytmService,\r\n RazorpayService\r\n ]\r\n})\r\nexport class PaymentsModule { }\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-request-dialog',\r\n templateUrl: './request-dialog.component.html',\r\n styleUrls: ['./request-dialog.component.css']\r\n})\r\nexport class RequestDialogComponent {\r\n mode: string;\r\n constructor(\r\n public dialogRef: MatDialogRef<RequestDialogComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n ) {\r\n console.log(data);\r\n this.mode = data.mode;\r\n }\r\n dismissModal() {\r\n this.dialogRef.close('success');\r\n }\r\n}\r\n","<h1 class=\"mat-dialog-title head\" *ngIf=\"mode==='b-cam'\">\r\n Your camera is blocked\r\n</h1>\r\n<h1 class=\"mat-dialog-title\" *ngIf=\"mode==='b-both'\">\r\n Camera and microphone are blocked\r\n</h1>\r\n<h1 class=\"mat-dialog-title\" *ngIf=\"mode==='b-mic'\">\r\n Your microphone are blocked\r\n</h1>\r\n<h1 class=\"mat-dialog-title\" *ngIf=\"mode==='sys-mic'\">\r\n No audio devices found\r\n</h1>\r\n<h1 class=\"mat-dialog-title\" *ngIf=\"mode==='sys-cam'\">\r\n No video devices found\r\n</h1>\r\n<h1 class=\"mat-dialog-title\" *ngIf=\"mode==='sys-both'\">\r\n No audio/video devices found\r\n</h1>\r\n<div mat-dialog-content class=\"text-container\">\r\n <div class=\"col-md-12 no-padding text-content\" *ngIf=\"mode==='b-both' || mode==='b-cam' || mode==='b-mic'\">\r\n <div class=\"col-md-12 mgn-bt-20 no-padding text-content-text\">\r\n Jaldee Videocall requires access to your camera/microphone so that other participants can hear/see\r\n you.\r\n\r\n To unblock,\r\n\r\n <ul>\r\n <li>\r\n Make sure you close any applications in your system that currently uses your microphone/camera.\r\n </li>\r\n <li style=\"list-style: none !important; margin-top: 10px;margin-bottom: 10px;\">Or</li>\r\n <li>\r\n Click the camera blocked icon on your browser's address bar, allow access and refresh your page.\r\n </li>\r\n <li style=\"list-style: none !important; margin-top: 10px;margin-bottom: 10px;\">Or</li>\r\n <li>\r\n Allow access to your microphone/camera in your in your App settings.\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"col-md-12 no-padding\">\r\n <a class=\"pull-right dismiss-action\" (click)=\"dismissModal()\">Dismiss</a>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 no-padding text-content\" *ngIf=\"mode==='sys-both'\">\r\n <div class=\"col-md-12 mgn-bt-20 no-padding text-content-text\">\r\n Jaldee Videocall requires access to your camera and microphone so that other participants can see and hear\r\n you, but no audio/video devices found.\r\n </div>\r\n <div class=\"col-md-12 no-padding\">\r\n <a class=\"pull-right dismiss-action\" (click)=\"dismissModal()\">Dismiss</a>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 no-padding text-content\" *ngIf=\"mode==='sys-cam'\">\r\n <div class=\"col-md-12 mgn-bt-20 no-padding text-content-text\">\r\n Jaldee Videocall requires access to your camera so that other participants can hear\r\n you, but no video devices found.\r\n </div>\r\n <div class=\"col-md-12 no-padding\">\r\n <a class=\"pull-right dismiss-action\" (click)=\"dismissModal()\">Dismiss</a>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 no-padding text-content\" *ngIf=\"mode==='sys-mic'\">\r\n <div class=\"col-md-12 mgn-bt-20 no-padding text-content-text\">\r\n Jaldee Videocall requires access to your microphone so that other participants can hear\r\n you but no audio devices found.\r\n </div>\r\n <div class=\"col-md-12 no-padding\">\r\n <a class=\"pull-right dismiss-action\" (click)=\"dismissModal()\">Dismiss</a>\r\n </div>\r\n </div>\r\n</div>","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { MatDialogModule } from \"@angular/material/dialog\";\r\nimport { RequestDialogComponent } from \"./request-dialog.component\";\r\n\r\n@NgModule({\r\n imports: [\r\n MatDialogModule,\r\n CommonModule\r\n ],\r\n declarations: [RequestDialogComponent],\r\n exports: [RequestDialogComponent]\r\n})\r\nexport class RequestDialogModule {}","import { Injectable, ElementRef, Renderer2, RendererFactory2 } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport Video from 'twilio-video';\r\n@Injectable({\r\n providedIn: 'any'\r\n})\r\nexport class TwilioService {\r\n remoteVideo: ElementRef;\r\n localVideo: ElementRef;\r\n previewContainer: ElementRef;\r\n microphone = true;\r\n video = true;\r\n preview = true;\r\n roomParticipants;\r\n participantsCount = 0;\r\n showParticipant = false;\r\n previewTrack;\r\n camDeviceCount = 0;\r\n private renderer: Renderer2;\r\n cameraMode: string;\r\n previewTracks;\r\n timerSubject = new Subject<any>();\r\n errorSubject = new Subject<any>();\r\n public static signalStrength: any;\r\n selectedVideoId: string;\r\n activeCamIndex;\r\n cam1Device: string;\r\n cam2Device: string;\r\n activeRoom;\r\n previewTracksClone;\r\n btnClicked = false;\r\n loading = false;\r\n constructor(public rendererFactory: RendererFactory2) {\r\n this.renderer = rendererFactory.createRenderer(null, null);\r\n }\r\n\r\n activateTimer(timer: any) {\r\n this.timerSubject.next(timer);\r\n }\r\n getTimer(): Observable<any> {\r\n return this.timerSubject.asObservable();\r\n }\r\n\r\n sendError(error: any) {\r\n this.errorSubject.next(error);\r\n }\r\n getError(): Observable<any> {\r\n return this.errorSubject.asObservable();\r\n }\r\n // private static getSignalStrength () {\r\n // return TwilioService.signalStrength;\r\n // }\r\n unmuteVideo() {\r\n const _this = this;\r\n _this.previewTracks.forEach(localTrack => {\r\n if(localTrack.kind === 'video') {\r\n _this.previewTracksClone.push(localTrack);\r\n _this.addPreviewTrackToDom(localTrack);\r\n }\r\n \r\n });\r\n this.video = true;\r\n }\r\n muteVideo() {\r\n const _this = this;\r\n _this.previewTracks.forEach(localTrack => {\r\n if(localTrack.kind === 'video') {\r\n _this.previewTracksClone.splice(this.previewTracksClone.indexOf(localTrack), 1);\r\n _this.removePreviewTrackToDom(localTrack);\r\n }\r\n });\r\n this.video = false;\r\n }\r\n removePreviewTrackToDom(localTrack) {\r\n const _this=this;\r\n if (_this.previewContainer) {\r\n const localElement = _this.previewContainer.nativeElement;\r\n while (localElement.firstChild) {\r\n localElement.removeChild(localElement.firstChild);\r\n }\r\n }\r\n \r\n }\r\n muteAudio() {\r\n const _this = this;\r\n _this.previewTracks.forEach(localTrack => {\r\n if(localTrack.kind === 'audio') {\r\n _this.previewTracksClone.splice(this.previewTracksClone.indexOf(localTrack), 1);\r\n }\r\n });\r\n this.microphone = false;\r\n }\r\n unmuteAudio() {\r\n const _this = this;\r\n _this.previewTracks.forEach(localTrack => {\r\n if(localTrack.kind === 'audio') {\r\n _this.previewTracksClone.push(localTrack);\r\n }\r\n });\r\n this.microphone = true;\r\n }\r\n addPreviewTrackToDom(previewTrack) {\r\n const _this = this;\r\n const element = previewTrack.attach();\r\n _this.renderer.addClass(element, 'rem-video');\r\n _this.renderer.appendChild(_this.previewContainer.nativeElement, element);\r\n }\r\n\r\n enableVideo() {\r\n const _this= this;\r\n Video.createLocalVideoTrack({\r\n deviceId: { exact: _this.selectedVideoId }\r\n }).then(function (localVideoTrack) {\r\n _this.activeRoom.localParticipant.publishTrack(localVideoTrack);\r\n console.log(_this.activeRoom.localParticipant.identity + ' added track: ' + localVideoTrack.kind);\r\n _this.attachTracks([localVideoTrack], _this.localVideo.nativeElement, _this.activeRoom);\r\n });\r\n this.video = true;\r\n }\r\n disableVideo() {\r\n const _this = this;\r\n _this.activeRoom.localParticipant.videoTracks.forEach(publication => {\r\n publication.track.stop();\r\n publication.unpublish();\r\n if (_this.localVideo) {\r\n const localElement = _this.localVideo.nativeElement;\r\n while (localElement.firstChild) {\r\n localElement.removeChild(localElement.firstChild);\r\n }\r\n }\r\n });\r\n this.video = false;\r\n }\r\n mute() {\r\n this.activeRoom.localParticipant.audioTracks.forEach(function (audioTrack) {\r\n audioTrack.track.disable();\r\n });\r\n this.microphone = false;\r\n }\r\n unmute() {\r\n this.activeRoom.localParticipant.audioTracks.forEach(function (audioTrack) {\r\n audioTrack.track.enable();\r\n });\r\n this.microphone = true;\r\n }\r\n // media?\r\n switchCamera(videoDevices) {\r\n const _this = this;\r\n this.activeCamIndex++;\r\n if (this.activeCamIndex >= videoDevices.length) {\r\n this.activeCamIndex = 0;\r\n }\r\n console.log(\"Video Devices:\", videoDevices);\r\n console.log(\"Active Cam Index:\", this.activeCamIndex);\r\n // _this.selectedVideoId =media.deviceId;\r\n _this.selectedVideoId = videoDevices[this.activeCamIndex].deviceId;\r\n \r\n // if (_this.selectedVideoId === _this.cam1Device) {\r\n // _this.selectedVideoId = _this.cam2Device;\r\n // } else {\r\n // _this.selectedVideoId = _this.cam1Device;\r\n // }\r\n const localParticipant = _this.activeRoom.localParticipant;\r\n const tracks = Array.from(localParticipant.videoTracks.values()).map(\r\n function (trackPublication) {\r\n return trackPublication['track'];\r\n }\r\n );\r\n localParticipant.unpublishTracks(tracks);\r\n console.log(localParticipant.identity + ' removed track: ' + tracks[0].kind);\r\n _this.detachTracks(tracks);\r\n _this.stopTracks(tracks);\r\n const videoid = _this.selectedVideoId;\r\n Video.createLocalVideoTrack({\r\n deviceId: { exact: videoid }\r\n }).then(function (localVideoTrack) {\r\n localParticipant.publishTrack(localVideoTrack);\r\n console.log(localParticipant.identity + ' added track: ' + localVideoTrack.kind);\r\n _this.attachTracks([localVideoTrack], _this.localVideo.nativeElement, _this.activeRoom);\r\n });\r\n }\r\n\r\n connectToRoom(accessToken, options, tracks?) {\r\n // return new Promise(function (resolve, reject) {\r\n const _this = this;\r\n console.log(\"In Connect Room\");\r\n console.log(tracks);\r\n if(tracks) {\r\n _this.previewTracks = tracks;\r\n _this.previewTracksClone = tracks.slice();\r\n }\r\n if (_this.previewTracks) {\r\n options['tracks'] = _this.previewTracks;\r\n } \r\n console.log(_this.previewTracks);\r\n Video.connect(accessToken, options).then(\r\n (room: any) => {\r\n room.localParticipant.setNetworkQualityConfiguration({\r\n local: 2,\r\n remote: 1\r\n });\r\n _this.preview = false;\r\n _this.loading= false;\r\n _this.activeRoom = room;\r\n if (options['video']) {\r\n if (!_this.localVideo.nativeElement.querySelector('video')) {\r\n console.log(\"in connect method\");\r\n _this.attachParticipantTracks(room.localParticipant, _this.localVideo.nativeElement, room);\r\n }\r\n }\r\n this.btnClicked = false;\r\n _this.roomJoined(room);\r\n }, (error) => {\r\n // reject(error);\r\n }\r\n );\r\n // });\r\n }\r\n networkQualityChanged(networkQualityLevel, networkQualityStats) {\r\n TwilioService.signalStrength = networkQualityLevel;\r\n console.log({\r\n 1: '▃',\r\n 2: '▃▄',\r\n 3: '▃▄▅',\r\n 4: '▃▄▅▆',\r\n 5: '▃▄▅▆▇'\r\n }[networkQualityLevel] || '');\r\n if (networkQualityStats) {\r\n // Print in console the networkQualityStats, which is non-null only if Network Quality\r\n // verbosity is 2 (moderate) or greater\r\n console.log('Network Quality statistics:', networkQualityStats);\r\n \r\n }\r\n }\r\n // Attach the Tracks to the DOM.\r\n attachTracks(tracks, container, room) {\r\n const _this = this;\r\n console.log(\"attachTracks\");\r\n tracks.forEach(function (track) {\r\n if (track) {\r\n console.log(track);\r\n const element = track.attach();\r\n _this.renderer.data['id'] = track.sid;\r\n _this.renderer.addClass(element, 'rem-video');\r\n _this.renderer.appendChild(container, element);\r\n }\r\n });\r\n }\r\n\r\n\r\n // Attach the Participant's Tracks to the DOM.\r\n attachParticipantTracks(participant, container, room) {\r\n const _this = this;\r\n var tracks = Array.from(participant.tracks.values()).map(function (trackPublication) {\r\n return trackPublication['track'];\r\n });\r\n console.log(\"attachParticipantTracks\");\r\n _this.attachTracks(tracks, container, room);\r\n }\r\n\r\n // Detach the Tracks from the DOM.\r\n detachTracks(tracks) {\r\n console.log(\"detachTracks\");\r\n tracks.forEach(function (track) {\r\n if (track) {\r\n track.detach().forEach(function (detachedElement) {\r\n detachedElement.remove();\r\n });\r\n }\r\n });\r\n }\r\n\r\n // Detach the Participant's Tracks from the DOM.\r\n detachParticipantTracks(participant, room, _this) {\r\n console.log(\"detachParticipantTracks\");\r\n var tracks = Array.from(participant.tracks.values()).map(function (trackPublication) {\r\n return trackPublication['track'];\r\n });\r\n _this.detachTracks(tracks, room);\r\n }\r\n\r\n // \r\n stopTracks(tracks) {\r\n console.log(\"stopTracks\");\r\n tracks.forEach(function (track) {\r\n if (track) { track.stop(); }\r\n })\r\n }\r\n // Successfully connected!\r\n roomJoined(room) {\r\n const _this = this;\r\n // Attach the Tracks of the Room's Participants.\r\n if (!_this.video) {\r\n _this.disableVideo();\r\n }\r\n if (!_this.microphone) {\r\n _this.mute();\r\n }\r\n room.localParticipant.on('networkQualityLevelChanged', this.networkQualityChanged);\r\n room.participants.forEach((participant) => {\r\n console.log(\"Participant:\", participant);\r\n console.log(\"Already in Room: '\" + participant.identity + \"'\");\r\n _this.attachParticipantTracks(participant, _this.remoteVideo.nativeElement, room);\r\n _this.participantsCount = room.participants.size;\r\n console.log('first:participantsCount:' + _this.participantsCount);\r\n });\r\n\r\n // When a Participant joins the Room, log the event.\r\n room.on('participantConnected', function (participant) {\r\n console.log(\"Participant:\", participant);\r\n console.log(\"Joining: '\" + participant.identity + \"'\");\r\n _this.participantsCount = room.participants.size;\r\n console.log(\"connected - Participants:\" + room.participants.size);\r\n if (_this.participantsCount === 0) {\r\n _this.activateTimer(true);\r\n } else {\r\n _this.activateTimer(false);\r\n }\r\n });\r\n\r\n // When a Participant adds a Track, attach it to the DOM.\r\n room.on('trackSubscribed', function (track, trackPublication, participant) {\r\n console.log(\"Local Participant:\", room.localParticipant);\r\n console.log(\"Remote Participant:\", room.remoteParticipant);\r\n console.log(participant.identity + ' added track: ' + track.kind);\r\n _this.participantsCount = room.participants.size;\r\n console.log(\"Participants:\" +_this.participantsCount);\r\n // var previewContainer = document.getElementById('remoteVideo');\r\n _this.attachTracks([track], _this.remoteVideo.nativeElement, room);\r\n console.log('tracksubscribed');\r\n if(track.kind === 'video') {\r\n _this.removeRemoteParticipantDetails(_this.remoteVideo.nativeElement);\r\n }\r\n if (_this.participantsCount === 0) {\r\n _this.activateTimer(true);\r\n } else {\r\n _this.activateTimer(false);\r\n }\r\n });\r\n\r\n // When a Participant removes a Track, detach it from the DOM.\r\n room.on('trackUnsubscribed', function (track, trackPublication, participant) {\r\n console.log(participant.identity + ' removed track: ' + track.kind);\r\n _this.detachTracks([track]);\r\n console.log('trackUnsubscribed');\r\n if(track.kind === 'video') {\r\n _this.addRemoteParticipantDetails(_this.remoteVideo.nativeElement, participant);\r\n }\r\n });\r\n room.on('participantReconnecting', remoteParticipant => {\r\n console.log(remoteParticipant.state, 'reconnecting');\r\n console.log(`${remoteParticipant.identity} is reconnecting the signaling connection to the Room!`);\r\n /* Update the RemoteParticipant UI here */\r\n });\r\n room.on('participantReconnected', remoteParticipant => {\r\n console.log(remoteParticipant.state, 'connected');\r\n console.log(`${remoteParticipant.identity} has reconnected the signaling connection to the Room!`);\r\n /* Update the RemoteParticipant UI here */\r\n });\r\n // When a Participant leaves the Room, detach its Tracks.\r\n room.on('participantDisconnected', function (participant) {\r\n console.log(\"Participant '\" + participant.identity + \"' left the room\");\r\n _this.detachParticipantTracks(participant, room, _this);\r\n _this.participantsCount = room.participants.size;\r\n console.log(\"disConnected - Participants Size:\" + room.participants.size);\r\n _this.removeRemoteParticipantDetails(_this.remoteVideo.nativeElement);\r\n _this.activateTimer(true);\r\n });\r\n \r\n room.on('reconnecting', error => {\r\n console.log(room.state, 'reconnecting');\r\n _this.sendError(error);\r\n _this.participantsCount = room.participants.size;\r\n console.log(\"connected - Participants:\" + room.participants.size);\r\n if (_this.participantsCount === 0) {\r\n _this.activateTimer(true);\r\n } else {\r\n _this.activateTimer(false);\r\n }\r\n /* Update the application UI here */\r\n });\r\n room.on('reconnected', () => {\r\n console.log(room.state, 'connected');\r\n console.log('Reconnected your signaling and media connections!');\r\n _this.participantsCount = room.participants.size;\r\n console.log(\"connected - Participants:\" + room.participants.size);\r\n if (_this.participantsCount === 0) {\r\n _this.activateTimer(true);\r\n } else {\r\n _this.activateTimer(false);\r\n }\r\n /* Update the application UI here */\r\n });\r\n \r\n // Once the LocalParticipant leaves the room, detach the Tracks\r\n // of all Participants, including that of the LocalParticipant.\r\n room.on('disconnected', function (room, error) {\r\n console.log('Left');\r\n console.log(room.state, 'disconnected');\r\n console.log(\"Error:\", error);\r\n _this.sendError(error); \r\n room.localParticipant.tracks.forEach(publication => {\r\n publication.track.stop();\r\n publication.unpublish();\r\n const attachedElements = publication.track.detach();\r\n attachedElements.forEach(element => element.remove());\r\n });\r\n if (_this.localVideo) {\r\n const localElement = _this.localVideo.nativeElement;\r\n while (localElement.firstChild) {\r\n localElement.removeChild(localElement.firstChild);\r\n }\r\n }\r\n if (_this.remoteVideo) {\r\n const remoteElement = _this.remoteVideo.nativeElement;\r\n while (remoteElement.firstChild) {\r\n remoteElement.removeChild(remoteElement.firstChild);\r\n }\r\n }\r\n _this.participantsCount = room.participants.size;\r\n _this.disconnect();\r\n });\r\n }\r\n removeRemoteParticipantDetails(container) {\r\n const div = document.getElementById('remoteImg');\r\n if(div) {\r\n this.renderer.removeChild(container, div);\r\n }\r\n }\r\n addRemoteParticipantDetails(container, participant) {\r\n const div = document.createElement('div');\r\n div.setAttribute('id','remoteImg');\r\n const div1 = document.createElement('div');\r\n div1.setAttribute('class', 'avatar-img');\r\n div.appendChild(div1);\r\n \r\n const div2 = document.createElement('div');\r\n div2.setAttribute('class', 'avatar-text');\r\n\r\n const contentDiv = document.createTextNode(participant.identity);\r\n div2.appendChild(contentDiv);\r\n div.appendChild(div2);\r\n // const image = document.createElement('image');\r\n // image.setAttribute('class', '');\r\n // image.setAttribute('alt', participant.identity);\r\n // div1.appendChild(image);\r\n \r\n this.renderer.appendChild(container, div);\r\n }\r\n disconnect() {\r\n const _this = this;\r\n if (_this.previewTracks) {\r\n _this.previewTracks.forEach(localTrack => {\r\n localTrack.stop();\r\n });\r\n }\r\n _this.previewTracks = null;\r\n if (_this.activeRoom && _this.activeRoom.localParticipant && _this.activeRoom.localParticipant.localTracks) {\r\n _this.activeRoom.localParticipant.localTracks.forEach(localTrack => {\r\n localTrack.stop();\r\n });\r\n }\r\n if (_this.activeRoom && _this.activeRoom !== null) {\r\n _this.activeRoom.disconnect();\r\n _this.activeRoom = null;\r\n _this.cam1Device = null;\r\n _this.cam2Device = null;\r\n _this.selectedVideoId = null; \r\n }\r\n _this.video = true;\r\n _this.microphone = true;\r\n if (_this.remoteVideo) {\r\n _this.removeRemoteParticipantDetails(_this.remoteVideo.nativeElement);\r\n } \r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { ServiceMeta } from \"./service-meta\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MediaService {\r\n\r\n constructor(\r\n private serviceMeta: ServiceMeta\r\n ) { }\r\n\r\n getMediaDevices() {\r\n return new Promise(function (resolve, reject) {\r\n let media: any = {};\r\n navigator.mediaDevices.enumerateDevices().then(devices => {\r\n let videoDevices: any = [];\r\n let audioDevices: any = [];\r\n let count = devices.length;\r\n console.log(count);\r\n if (count > 0) {\r\n console.log(devices);\r\n devices.forEach(device => {\r\n if (device.kind === 'videoinput') {\r\n videoDevices.push(device);\r\n } else if (device.kind === 'audioinput') {\r\n audioDevices.push(device);\r\n }\r\n count--;\r\n if (count === 0) {\r\n media['videoDevices'] = videoDevices;\r\n media['audioDevices'] = audioDevices;\r\n resolve(media);\r\n }\r\n });\r\n } else {\r\n reject(media);\r\n }\r\n });\r\n })\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EnvironmentService {\r\n\r\n constructor() { }\r\n\r\n private environment: any = {};\r\n\r\n // Set environment variables dynamically\r\n setEnvironment(environment: any): void {\r\n this.environment = environment;\r\n}\r\n\r\n // Get environment variable by key\r\n getEnvironment(key: string): any {\r\n return this.environment[key];\r\n }\r\n}\r\n","import { ENVIRONMENT_INITIALIZER, inject, Injector, Provider, runInInjectionContext } from \"@angular/core\";\r\nimport { Route } from \"@angular/router\";\r\n\r\nexport function setupInjectionContextForLoadChildren(route: Route): Route {\r\n let injector: Injector | undefined = undefined;\r\n const injectorInitializerProvider: Provider = {\r\n provide: ENVIRONMENT_INITIALIZER,\r\n multi: true,\r\n useFactory:\r\n (instance = inject(Injector)) =>\r\n () => {\r\n injector = instance;\r\n },\r\n };\r\n \r\n const transformRoute = (child: Route) => {\r\n if (!child.loadChildren) return child;\r\n const loadChildren = child.loadChildren;\r\n child.loadChildren = (...args) => {\r\n if (!injector) throw new Error('Missing injector');\r\n return runInInjectionContext(injector, () => loadChildren(...args));\r\n };\r\n return child;\r\n };\r\n \r\n return {\r\n path: '',\r\n providers: [injectorInitializerProvider],\r\n children: [transformRoute(route)],\r\n };\r\n }","/*\r\n * Public API Surface of jconsumer-shared\r\n */\r\nexport * from './lib/utility/remote-loader';\r\nexport * from './lib/service-meta';\r\nexport * from './lib/subscription.service';\r\nexport * from './lib/toast.service';\r\nexport * from './lib/shared.service';\r\nexport * from './lib/theme.service';\r\nexport * from './lib/i8n.module';\r\nexport * from './lib/order.service';\r\nexport * from './lib/account-service';\r\nexport * from './lib/shared-account.guard';\r\nexport * from './lib/shared-account.resolver';\r\nexport * from './lib/auth-service';\r\nexport * from './lib/file-service';\r\nexport * from './lib/common.service';\r\nexport * from './lib/storage.service';\r\nexport * from './lib/consumer-service';\r\nexport * from './lib/booking-service';\r\nexport * from './lib/group-storage.service';\r\nexport * from './lib/local-storage.service';\r\nexport * from './lib/error-message.service';\r\nexport * from './lib/error-message.module';\r\nexport * from './lib/session-storage.service';\r\nexport * from './lib/project-constants';\r\nexport * from './lib/word-processor.service';\r\nexport * from './lib/currency-service';\r\nexport * from './lib/project-messages';\r\nexport * from './lib/razorpay.service';\r\nexport * from './lib/paytm.service';\r\nexport * from './lib/pipes/safe-html/safehtml.pipe';\r\nexport * from './lib/pipes/safe-html/safehtml.module';\r\nexport * from './lib/pipes/limit-to/limitTo.pipe';\r\nexport * from './lib/pipes/limit-to/limitTo.module';\r\nexport * from './lib/pipes/filter/filter.pipe';\r\nexport * from './lib/pipes/filter/filter.module';\r\nexport * from './lib/pipes/capitalize/capitalize.pipe';\r\nexport * from './lib/pipes/capitalize/capitalize.module';\r\nexport * from './lib/pipes/autolink/autolink.pipe';\r\nexport * from './lib/pipes/autolink/autolink.module';\r\nexport * from './lib/pipes/date-format/date-format.module';\r\nexport * from './lib/pipes/date-format/date-format.pipe';\r\nexport * from './lib/pipes/short-filename/short-file-name.module';\r\nexport * from './lib/pipes/short-filename/short-file-name.pipe';\r\nexport * from './lib/form-message/form-message-display.service';\r\nexport * from './lib/form-message/form-message-display.module';\r\nexport * from './lib/calendar/date-time/datetime-processor.service';\r\nexport * from './lib/timezone-converter';\r\nexport * from './lib/form-message/form-success-display/form-success-display.component';\r\nexport * from './lib/form-message/field-error-display/field-error-display.component';\r\nexport * from './lib/skeleton/skeleton-loading.component';\r\nexport * from './lib/skeleton/skeleton-loading.module';\r\nexport * from './lib/spinner/loading-spinner.component';\r\nexport * from './lib/spinner/loading-spinner.module';\r\nexport * from './lib/questionaire/questionaire-service';\r\nexport * from './lib/questionaire/edit/questionnaire.component';\r\nexport * from './lib/questionaire/edit/questionnaire.module';\r\nexport * from './lib/showuploadfile/showuploadfile.component';\r\nexport * from './lib/showuploadfile/showuploadfile.module';\r\nexport * from './lib/phone-input/phone-input.component';\r\nexport * from './lib/phone-input/phone-input.module';\r\nexport * from './lib/confirm/confirm-box.component';\r\nexport * from './lib/confirm/confirm-box.module';\r\nexport * from './lib/payment/modes/payment-modes.component';\r\nexport * from './lib/payment/modes/payment-modes.module';\r\nexport * from './lib/payment/payment.module';\r\nexport * from './lib/request-dialog/request-dialog.component';\r\nexport * from './lib/request-dialog/request-dialog.module';\r\nexport * from './lib/twilio-service';\r\nexport * from './lib/media-service';\r\nexport * from './lib/environment.service';\r\nexport * from './lib/injector-resolver';\r\nexport * from './lib/j-gallery/j-gallery.service';\r\nexport * from './lib/j-gallery/j-gallery.module';\r\nexport * from './lib/j-gallery/j-gallery.component';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i1.ServiceMeta","i2.SharedService","i2.ServiceMeta","i3.SharedService","i1.AccountService","i1.SharedAccountResolver","i1.SessionStorageService","i2.LocalStorageService","i3.SessionStorageService","i4.GroupStorageService","i1.SharedService","i3.FormMessageDisplayService","i4","i6","i10.FieldErrorDisplayComponent","i11.FormSuccessDisplayComponent","i2","i3","i2.WordProcessor","i3.LocalStorageService","i4.DateTimeProcessor","i5","i6.FileService","i7.CommonService","i8.QuestionaireService","i9.ErrorMessagingService","i10.ToastService","i11.SharedService","i12.JGalleryService","i14","i15.LoadingSpinnerComponent","i20.CapitalizeFirstPipe","i21.SafeHtmlPipe"],"mappings":"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"}
|