@posiwise/common-services 0.1.94 → 0.1.98

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.
@@ -1 +1 @@
1
- {"version":3,"file":"posiwise-common-services.mjs","sources":["../../../../libs/common-services/src/lib/script-loader.service.ts","../../../../libs/common-services/src/lib/google-analytics.service.ts","../../../../libs/common-services/src/lib/toast.service.ts","../../../../libs/common-services/src/lib/base-http.service.ts","../../../../libs/common-services/src/lib/integrations-api-http.service.ts","../../../../libs/common-services/src/lib/local-storage.service.ts","../../../../libs/common-services/src/lib/main-api-http.service.ts","../../../../libs/common-services/src/lib/secure-token-storage.service.ts","../../../../libs/common-services/src/lib/profile.service.ts","../../../../libs/common-services/src/lib/user.service.ts","../../../../libs/common-services/src/lib/auth.service.ts","../../../../libs/common-services/src/lib/effects/user.effects.ts","../../../../libs/common-services/src/lib/common-services.module.ts","../../../../libs/common-services/src/lib/seo.service.ts","../../../../libs/common-services/src/lib/permission.service.ts","../../../../libs/common-services/src/lib/link-loader.service.ts","../../../../libs/common-services/src/lib/custom-preloading.service.ts","../../../../libs/common-services/src/lib/ab-test.service.ts","../../../../libs/common-services/src/lib/geo.service.ts","../../../../libs/common-services/src/lib/subscription.service.ts","../../../../libs/common-services/src/lib/product.service.ts","../../../../libs/common-services/src/lib/validation.service.ts","../../../../libs/common-services/src/lib/form-helper.service.ts","../../../../libs/common-services/src/lib/ahoy.service.ts","../../../../libs/common-services/src/lib/common.service.ts","../../../../libs/common-services/src/lib/date-formatter.service.ts","../../../../libs/common-services/src/lib/primeNgHelper.ts","../../../../libs/common-services/src/lib/tag.service.ts","../../../../libs/common-services/src/lib/tips.service.ts","../../../../libs/common-services/src/lib/window.service.ts","../../../../libs/common-services/src/lib/group.service.ts","../../../../libs/common-services/src/lib/qualification.service.ts","../../../../libs/common-services/src/lib/dashboard.service.ts","../../../../libs/common-services/src/lib/mailbox.service.ts","../../../../libs/common-services/src/lib/socket.service.ts","../../../../libs/common-services/src/lib/notification.service.ts","../../../../libs/common-services/src/lib/data.service.ts","../../../../libs/common-services/src/lib/number-picker.service.ts","../../../../libs/common-services/src/lib/sentry.service.ts","../../../../libs/common-services/src/lib/logo-caching.service.ts","../../../../libs/common-services/src/lib/hopscotch.service.ts","../../../../libs/common-services/src/lib/brain-api-http.service.ts","../../../../libs/common-services/src/lib/brain.service.ts","../../../../libs/common-services/src/index.ts","../../../../libs/common-services/src/posiwise-common-services.ts"],"sourcesContent":["import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable } from '@angular/core';\n\ninterface Script {\n src: string;\n loaded: boolean;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ScriptLoaderService {\n private _scripts: { [key: string]: Script } = {};\n\n constructor(@Inject(DOCUMENT) private readonly document: Document) {}\n\n load(tag, ...scripts: string[]) {\n scripts.forEach((src: string) => {\n if (!this._scripts[src]) {\n this._scripts[src] = { src, loaded: false };\n }\n });\n\n const promises: object[] = [];\n scripts.forEach(src => promises.push(this.loadScript(tag, src)));\n\n return Promise.all(promises);\n }\n\n loadScripts(tag, scripts, loadOnce?: boolean) {\n loadOnce = loadOnce || false;\n\n scripts.forEach((script: string) => {\n if (!this._scripts[script]) {\n this._scripts[script] = { src: script, loaded: false };\n }\n });\n\n const promises: object[] = [];\n scripts.forEach(script => promises.push(this.loadScript(tag, script, loadOnce)));\n\n return Promise.all(promises);\n }\n\n loadScript(tag, src: string, loadOnce?: boolean) {\n const isLoad = loadOnce || false;\n\n if (!this._scripts[src]) {\n this._scripts[src] = { src, loaded: false };\n }\n\n return new Promise((resolve, _reject) => {\n // resolve if already loaded\n if (this._scripts[src].loaded && isLoad) {\n // NOSONAR\n resolve({ src, loaded: true });\n } else {\n // load script tag\n const scriptTag = document.createElement('script');\n scriptTag.type = 'text/javascript';\n scriptTag.src = this._scripts[src].src;\n\n scriptTag.onload = () => {\n this._scripts[src].loaded = true;\n resolve({ src, loaded: true });\n };\n\n scriptTag.onerror = () => {\n // Handle script loading error (if needed)\n console.error(`Failed to load script: ${src}`);\n resolve({ src, loaded: false });\n };\n\n document.getElementsByTagName(tag)[0].appendChild(scriptTag);\n }\n });\n }\n\n loadStyle(styleUrl: string) {\n const head = this.document.getElementsByTagName('head')[0];\n\n const style = this.document.createElement('link');\n style.id = 'client-theme';\n style.rel = 'stylesheet';\n style.href = styleUrl;\n\n head.appendChild(style);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\n\nimport { AppConfigService } from '@posiwise/app-config-service';\n\nimport { Subscription } from 'rxjs';\n\nimport { ScriptLoaderService } from './script-loader.service';\n\ndeclare global {\n interface Window {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ga: any;\n }\n}\n\n@Injectable()\nexport class GoogleAnalyticsService {\n private static trackingId: string;\n private subscription: Subscription;\n\n constructor(\n private readonly router: Router,\n private readonly scriptLoader: ScriptLoaderService,\n private readonly appConfigService: AppConfigService\n ) {}\n\n private isGaAvailable(): boolean {\n return typeof window.ga !== 'undefined';\n }\n\n loadGScript(): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n if (this.isGaAvailable()) {\n resolve(); // GA is already loaded, no need to load again.\n return;\n }\n this.appConfigService.appConfig$.subscribe(config => {\n this.scriptLoader\n .loadScript('head', 'https://www.google-analytics.com/analytics.js', true)\n .then(() => {\n this.pushArgumentsGA();\n window.ga.l = Date.now();\n GoogleAnalyticsService.trackingId = config.integrations.google_analytics;\n window.ga('create', GoogleAnalyticsService.trackingId, 'auto');\n resolve(); // Resolve the promise once the script is loaded and ga is initialized\n })\n .catch(error => {\n console.error('Error loading Google Analytics script:', error);\n reject(error instanceof Error ? error : new Error(error));\n });\n });\n });\n }\n\n pushArgumentsGA() {\n if (typeof window.ga === 'undefined') {\n window.ga = function (...args) {\n window.ga.q ??= [];\n window.ga.q.push(args);\n };\n window.ga.q = [];\n window.ga.l = +new Date();\n }\n }\n\n private addOneTimeTrackingListeners(url: string): void {\n const handler = () => {\n if (this.isGaAvailable()) {\n window.ga('set', 'page', url);\n window.ga('send', 'pageview');\n }\n };\n\n ['mousemove', 'scroll', 'touchstart'].forEach(eventName => {\n window.addEventListener(eventName, handler, { once: true });\n });\n }\n\n subscribe() {\n this.subscription ??= this.router.events.subscribe(e => {\n if (e instanceof NavigationEnd) {\n // Ensure that the Google Analytics script is loaded before using the ga function\n this.loadGScript().then(() => {\n try {\n this.addOneTimeTrackingListeners(e.urlAfterRedirects);\n } catch {\n console.error('Tracking not found -- make sure you installed the scripts');\n }\n });\n }\n });\n }\n\n /**\n * Emit google analytics event\n * Fire event example:\n * this.sendEvent(\"testCategory\", \"testAction\", \"testLabel\", 10);\n * @param {string} eventCategory\n * @param {string} eventAction\n * @param {string} eventLabel\n * @param {number} eventValue\n */\n sendEvent(\n eventCategory: string,\n eventAction: string,\n eventLabel: string = null,\n eventValue: number = null\n ) {\n if (this.isGaAvailable()) {\n window.ga('send', 'event', {\n eventCategory,\n eventAction,\n eventLabel,\n eventValue\n });\n } else {\n console.error('Google Analytics tracking not available.');\n }\n }\n\n /**\n * Enable UserId Tracking for Google Analytics\n * @param user\n */\n setUserContext(user) {\n if (GoogleAnalyticsService.trackingId) {\n if (this.isGaAvailable()) {\n window.ga('set', 'userId', user?.id);\n }\n }\n }\n\n unsubscribe() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { IndividualConfig, ToastrService } from 'ngx-toastr';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CustomToastService {\n constructor(private readonly toastr: ToastrService) {}\n\n success(message: string, title = '', options: Partial<IndividualConfig> = {}) {\n if (message) {\n this.toastr.success(message, title, { ...options, timeOut: 10000 });\n }\n }\n\n error(message: string, title = '', options: Partial<IndividualConfig> = {}) {\n options = {\n ...options,\n timeOut: 20000\n };\n if (message) {\n this.toastr.error(message, title, options);\n }\n }\n\n info(message: string, title = '', options: Partial<IndividualConfig> = {}) {\n // disable auto timeout, toast would close on click (to disable auto timeout please use this attribute disableTimeOut:true in options)\n options = { ...options, timeOut: 30000, enableHtml: true };\n if (message) {\n this.toastr.info(\n `<div class=\"d-flex align-items-center\">\n <i class=\"fa fa-info-circle\" aria-hidden=\"true\"></i>\n <div>${message}</div>\n </div>`,\n title,\n options\n );\n }\n }\n\n warning(message: string, title = '', options: Partial<IndividualConfig> = {}) {\n // disable auto timeout, toast would close on click (to disable auto timeout please use this attribute disableTimeOut:true in options)\n options = { ...options, timeOut: 30000 };\n if (message) {\n this.toastr.warning(message, title, options);\n }\n }\n\n showToast(errorResponse) {\n const message = HelperService.getErrorMessage(errorResponse.error);\n\n // clear all the toastr before showing something went wrong\n if (errorResponse.message?.includes('Something went wrong')) {\n this.clear();\n }\n if (errorResponse?.status === 503) {\n this.error(errorResponse?.error, '', { enableHtml: true });\n }\n\n this.showToastrOnType(errorResponse?.error?.type, message);\n }\n\n clear() {\n this.toastr.clear();\n }\n\n showToastrOnType(type: string, message: string): void {\n if (!message || !type) {\n return;\n }\n\n switch (type) {\n case 'success':\n this.success(message);\n break;\n case 'error':\n this.error(message);\n break;\n case 'info':\n this.info(message);\n break;\n case 'warning':\n this.warning(message);\n break;\n default:\n this.error(message);\n }\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';\nimport { Injectable, Injector } from '@angular/core';\n\nimport { Observable, throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\nimport { CustomToastService } from './toast.service';\n\n@Injectable()\nexport abstract class BaseHttpService {\n protected baseUrl = '';\n\n private readonly toast: CustomToastService;\n\n abstract getConfig(): void;\n\n constructor(\n public http: HttpClient,\n public injector: Injector\n ) {\n this.getConfig();\n this.toast = injector.get(CustomToastService);\n }\n\n get<T>(url): Observable<any> {\n return this.http.get<T>(`${this.baseUrl}${url}`).pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n getWithParams<T>(url, params): Observable<any> {\n // eslint-disable-next-line no-restricted-syntax\n for (const k in params) {\n // Sending a param as \"null\" or \"undefined\" makes the value a string called \"null\"\n // or \"undefined\" which is not what we want. In such cases, just don't sent any param.\n if ([null, undefined].includes(params[k])) {\n delete params[k];\n }\n }\n\n return this.http.get<T>(`${this.baseUrl}${url}`, { params }).pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n post<T>(url, params = {}): Observable<any> {\n return this.http.post<T>(`${this.baseUrl}${url}`, params).pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n put<T>(url, params = {}): Observable<any> {\n return this.http.put<T>(`${this.baseUrl}${url}`, params).pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n patch<T>(url, params = {}): Observable<any> {\n return this.http.patch<T>(`${this.baseUrl}${url}`, params).pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n delete<T>(url, option = {}): Observable<any> {\n return this.http.delete<T>(`${this.baseUrl}${url}`, option).pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n upload(url, file: File, param): Observable<any> {\n const formData = new FormData();\n formData.append(param, file);\n const headers = new HttpHeaders({ enctype: 'multipart/form-data' });\n\n return this.http.put(`${this.baseUrl}${url}`, formData, { headers }).pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n uploadWithData(url: string, data): Observable<any> {\n const formData = new FormData();\n // eslint-disable-next-line no-restricted-syntax\n for (const item in data) {\n if (Object.hasOwn(data, item)) {\n formData.append(item, data[item]);\n }\n }\n\n const headers = new HttpHeaders({ enctype: 'multipart/form-data' });\n\n return this.http.post(`${this.baseUrl}${url}`, formData, { headers }).pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n handleError(error: HttpErrorResponse): void {\n if (error?.error?.status_code !== 'unauthorized__REMOVED_X_TESTING') {\n if (error?.error?.status === 401) {\n this.toast.clear();\n }\n\n this.toast.showToast(error);\n }\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable, Injector, isDevMode } from '@angular/core';\n\nimport { AppConfigService } from '@posiwise/app-config-service';\nimport { INTEGRATIONS_API_PREFIX } from '@posiwise/common-utilities';\n\nimport { BaseHttpService } from './base-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class IntegrationsApiHttpService extends BaseHttpService {\n constructor(http: HttpClient, injector: Injector) {\n super(http, injector);\n }\n getConfig() {\n this.injector.get(AppConfigService).appConfig$.subscribe(config => {\n this.baseUrl = isDevMode()\n ? INTEGRATIONS_API_PREFIX\n : config?.['links']?.integrations_api;\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { of } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LocalStorage {\n getItem$(key: string) {\n return of(localStorage.getItem(key));\n }\n\n setItem$(key: string, value: string) {\n return of(localStorage.setItem(key, value));\n }\n\n removeItem$(key: string) {\n return of(localStorage.removeItem(key));\n }\n\n clear$() {\n return of(localStorage.clear());\n }\n\n clearAll() {\n return localStorage.clear();\n }\n\n getItem(key: string) {\n return localStorage.getItem(key);\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable, Injector, isDevMode } from '@angular/core';\n\nimport { AppConfigService } from '@posiwise/app-config-service';\nimport { MAIN_API_PREFIX } from '@posiwise/common-utilities';\n\nimport { BaseHttpService } from './base-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MainApiHttpService extends BaseHttpService {\n constructor(http: HttpClient, injector: Injector) {\n super(http, injector);\n }\n getConfig() {\n this.injector.get(AppConfigService).appConfig$.subscribe(config => {\n this.baseUrl = isDevMode() ? MAIN_API_PREFIX : config?.['links']?.main_api;\n });\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable } from '@angular/core';\n\nimport { BehaviorSubject, Observable, of } from 'rxjs';\n\n/**\n * Secure Token Storage Service\n *\n * This service provides secure token storage using memory + secure cookies.\n * NO localStorage usage - tokens are stored only in memory and secure cookies.\n *\n * Security Features:\n * - Memory storage (primary) - not persistent across refreshes\n * - Secure cookies (backup) - with SameSite=Strict protection\n * - No localStorage - prevents XSS token theft\n * - Secure flag for HTTPS\n * - CSRF protection via SameSite cookies\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class SecureTokenStorageService {\n private readonly TOKEN_COOKIE_NAME = 'auth_token';\n private readonly IMPERSONATED_TOKEN_COOKIE_NAME = 'user_impersonated_token';\n private readonly PHONEGAP_TOKEN_COOKIE_NAME = 'user_impersonated_phonegap_token';\n\n // In-memory fallback for development or when cookies are not available\n private readonly memoryStorage = new Map<string, string>();\n private readonly tokenSubject = new BehaviorSubject<string | null>(null);\n private readonly impersonatedTokenSubject = new BehaviorSubject<string | null>(null);\n private readonly phonegapTokenSubject = new BehaviorSubject<string | null>(null);\n\n constructor(@Inject(DOCUMENT) private readonly document: Document) {\n this.initializeTokens();\n }\n\n /**\n * Store authentication token securely\n */\n storeToken(token: string): Observable<boolean> {\n try {\n // Store ONLY in memory and secure cookie - NO localStorage\n this.memoryStorage.set(this.TOKEN_COOKIE_NAME, token);\n this.setSecureCookie(this.TOKEN_COOKIE_NAME, token);\n\n this.tokenSubject.next(token);\n return of(true);\n } catch (error) {\n console.warn('Failed to store token, using memory fallback:', error);\n this.memoryStorage.set(this.TOKEN_COOKIE_NAME, token);\n this.tokenSubject.next(token);\n return of(true);\n }\n }\n\n /**\n * Store impersonated user token\n */\n storeImpersonatedToken(token: string): Observable<boolean> {\n try {\n // Store ONLY in memory and secure cookie - NO localStorage\n this.memoryStorage.set(this.IMPERSONATED_TOKEN_COOKIE_NAME, token);\n this.setSecureCookie(this.IMPERSONATED_TOKEN_COOKIE_NAME, token);\n this.impersonatedTokenSubject.next(token);\n return of(true);\n } catch (error) {\n console.warn('Failed to store impersonated token, using memory fallback:', error);\n this.memoryStorage.set(this.IMPERSONATED_TOKEN_COOKIE_NAME, token);\n this.impersonatedTokenSubject.next(token);\n return of(true);\n }\n }\n\n /**\n * Store phonegap impersonated token\n */\n storePhonegapToken(token: string): Observable<boolean> {\n try {\n // Store ONLY in memory and secure cookie - NO localStorage\n this.memoryStorage.set(this.PHONEGAP_TOKEN_COOKIE_NAME, token);\n this.setSecureCookie(this.PHONEGAP_TOKEN_COOKIE_NAME, token);\n this.phonegapTokenSubject.next(token);\n return of(true);\n } catch (error) {\n console.warn('Failed to store phonegap token, using memory fallback:', error);\n this.memoryStorage.set(this.PHONEGAP_TOKEN_COOKIE_NAME, token);\n this.phonegapTokenSubject.next(token);\n return of(true);\n }\n }\n\n /**\n * Get authentication token\n */\n getToken(): string | null {\n // Try memory storage first (primary storage)\n const memoryToken = this.memoryStorage.get(this.TOKEN_COOKIE_NAME);\n if (memoryToken) {\n return memoryToken;\n }\n\n // Try cookie as backup\n const cookieToken = this.getCookieValue(this.TOKEN_COOKIE_NAME);\n if (cookieToken) {\n // Restore to memory storage\n this.memoryStorage.set(this.TOKEN_COOKIE_NAME, cookieToken);\n return cookieToken;\n }\n\n return null;\n }\n\n /**\n * Get impersonated token\n */\n getImpersonatedToken(): string | null {\n const memoryToken = this.memoryStorage.get(this.IMPERSONATED_TOKEN_COOKIE_NAME);\n if (memoryToken) {\n return memoryToken;\n }\n\n const cookieToken = this.getCookieValue(this.IMPERSONATED_TOKEN_COOKIE_NAME);\n if (cookieToken) {\n this.memoryStorage.set(this.IMPERSONATED_TOKEN_COOKIE_NAME, cookieToken);\n return cookieToken;\n }\n\n return null;\n }\n\n /**\n * Get phonegap token\n */\n getPhonegapToken(): string | null {\n const memoryToken = this.memoryStorage.get(this.PHONEGAP_TOKEN_COOKIE_NAME);\n if (memoryToken) {\n return memoryToken;\n }\n\n const cookieToken = this.getCookieValue(this.PHONEGAP_TOKEN_COOKIE_NAME);\n if (cookieToken) {\n this.memoryStorage.set(this.PHONEGAP_TOKEN_COOKIE_NAME, cookieToken);\n return cookieToken;\n }\n\n return null;\n }\n\n /**\n * Get token as Observable\n */\n getToken$(): Observable<string | null> {\n return this.tokenSubject.asObservable();\n }\n\n /**\n * Get impersonated token as Observable\n */\n getImpersonatedToken$(): Observable<string | null> {\n return this.impersonatedTokenSubject.asObservable();\n }\n\n /**\n * Get phonegap token as Observable\n */\n getPhonegapToken$(): Observable<string | null> {\n return this.phonegapTokenSubject.asObservable();\n }\n\n /**\n * Remove all tokens\n */\n clearTokens(): Observable<boolean> {\n try {\n // Clear cookies\n this.deleteCookie(this.TOKEN_COOKIE_NAME);\n this.deleteCookie(this.IMPERSONATED_TOKEN_COOKIE_NAME);\n this.deleteCookie(this.PHONEGAP_TOKEN_COOKIE_NAME);\n } catch (error) {\n console.warn('Failed to clear cookies:', error);\n }\n\n // Clear memory storage\n this.memoryStorage.delete(this.TOKEN_COOKIE_NAME);\n this.memoryStorage.delete(this.IMPERSONATED_TOKEN_COOKIE_NAME);\n this.memoryStorage.delete(this.PHONEGAP_TOKEN_COOKIE_NAME);\n\n // Update subjects\n this.tokenSubject.next(null);\n this.impersonatedTokenSubject.next(null);\n this.phonegapTokenSubject.next(null);\n\n return of(true);\n }\n\n /**\n * Remove specific token\n */\n removeToken(): Observable<boolean> {\n try {\n this.deleteCookie(this.TOKEN_COOKIE_NAME);\n } catch (error) {\n console.warn('Failed to remove token:', error);\n }\n\n this.memoryStorage.delete(this.TOKEN_COOKIE_NAME);\n this.tokenSubject.next(null);\n return of(true);\n }\n\n /**\n * Remove impersonated tokens\n */\n removeImpersonatedTokens(): Observable<boolean> {\n try {\n this.deleteCookie(this.IMPERSONATED_TOKEN_COOKIE_NAME);\n this.deleteCookie(this.PHONEGAP_TOKEN_COOKIE_NAME);\n } catch (error) {\n console.warn('Failed to remove impersonated tokens:', error);\n }\n\n this.memoryStorage.delete(this.IMPERSONATED_TOKEN_COOKIE_NAME);\n this.memoryStorage.delete(this.PHONEGAP_TOKEN_COOKIE_NAME);\n this.impersonatedTokenSubject.next(null);\n this.phonegapTokenSubject.next(null);\n return of(true);\n }\n\n /**\n * Set secure cookie\n * Note: HttpOnly cannot be set from client-side JavaScript\n * For maximum security, backend should set httpOnly cookies\n */\n private setSecureCookie(name: string, value: string): void {\n const isSecure = this.document.location.protocol === 'https:';\n\n // Set cookie with maximum security possible from client-side\n const cookieString = `${name}=${value}; Path=/; ${isSecure ? 'Secure; ' : ''}SameSite=Strict; Max-Age=86400`;\n this.document.cookie = cookieString;\n\n // Log warning about security limitations\n console.warn(\n '⚠️ SECURITY WARNING: Cookie is not httpOnly. For maximum security, backend should set httpOnly cookies.'\n );\n }\n\n /**\n * Get cookie value\n */\n private getCookieValue(name: string): string | null {\n const value = `; ${this.document.cookie}`;\n const parts = value.split(`; ${name}=`);\n if (parts.length === 2) {\n return parts.pop()?.split(';').shift() || null;\n }\n return null;\n }\n\n /**\n * Delete cookie\n */\n private deleteCookie(name: string): void {\n this.document.cookie = `${name}=; Path=/; expires=Thu, 01 Jan 1970 00:00:01 GMT;`;\n }\n\n /**\n * Initialize tokens from storage on service startup\n */\n private initializeTokens(): void {\n const token = this.getToken();\n const impersonatedToken = this.getImpersonatedToken();\n const phonegapToken = this.getPhonegapToken();\n\n if (token) {\n this.tokenSubject.next(token);\n }\n if (impersonatedToken) {\n this.impersonatedTokenSubject.next(impersonatedToken);\n }\n if (phonegapToken) {\n this.phonegapTokenSubject.next(phonegapToken);\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { PROJECT_PATH } from '@posiwise/common-utilities';\n\nimport { AddProjectPicturesData, ProfileData } from './common-services.interface';\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ProfileService {\n private readonly endpoint = PROJECT_PATH;\n\n constructor(private readonly api: MainApiHttpService) {}\n\n updateUserProfile(user: ProfileData) {\n const formData = new FormData();\n\n // eslint-disable-next-line no-restricted-syntax\n for (const key in user) {\n if (key in user) {\n formData.append(key, user[key]);\n }\n }\n\n return this.api.put('/user', formData);\n }\n\n getUserProfile(slug: string) {\n return this.api.get(`/users/${slug}/profile/`);\n }\n\n getUserObject(objectType: string, slug: string) {\n return this.api.get(`/users/${slug}/get_object?object=${objectType}`);\n }\n\n getProjects(slug: string) {\n return this.api.get(`/users/${slug}/projects`);\n }\n\n addProjects(data: { [key: string]: string }) {\n return this.api.post(this.endpoint, data);\n }\n\n updateProjects(id: number, data: { [key: string]: string }) {\n return this.api.put(`${this.endpoint}${id}`, data);\n }\n\n deleteProject(id: number) {\n return this.api.delete(`${this.endpoint}/${id}`);\n }\n\n addProjectPictures(data: AddProjectPicturesData) {\n return this.api.uploadWithData('/project_pictures', data);\n }\n\n getProjectPictures(slug: string) {\n return this.api.get(`/users/${slug}/project_pictures`);\n }\n\n deletePicture(projectId: number) {\n return this.api.delete(`/project_pictures/${projectId}`);\n }\n\n // Recommendations\n\n postProjectRecommendation(data: object) {\n return this.api.post(`/project_recommendations`, data);\n }\n\n postLinks(data: { [key: string]: string }) {\n return this.api.post('/user_links', data);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { AppConfigService } from '@posiwise/app-config-service';\nimport { AppState, getUser, SetUser, UserState } from '@posiwise/app-store';\nimport { Paging, User, USER_PATH } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport moment from 'moment';\nimport { Observable, tap } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport swal from 'sweetalert2';\n\nimport { Store } from '@ngrx/store';\n\nimport { MainApiHttpService } from './main-api-http.service';\nimport { ProfileService } from './profile.service';\nimport { CustomToastService } from './toast.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UserService {\n private readonly endpoint = USER_PATH;\n\n private isTosModalOpen = false;\n\n constructor(\n private readonly api: MainApiHttpService,\n private readonly store: Store<AppState>,\n private readonly router: Router,\n private readonly appConfigService: AppConfigService,\n private readonly profileService: ProfileService,\n private readonly toast: CustomToastService\n ) {}\n\n getUserState(): Observable<UserState> {\n return this.store.select(getUser);\n }\n\n getUserInfo() {\n return this.api.get(this.endpoint).pipe(\n tap((data: User) => {\n // enforce 2fa\n if (data?.auth?.should_enforce_2fa) {\n this.router.navigate(['settings/security']);\n }\n\n this.checkAndHandleTosAcceptance(data);\n })\n );\n }\n\n /**\n * Ensure the current user has accepted the latest Terms of Service for this domain.\n * If the domain has a newer TOS version than the user's accepted timestamp, a blocking\n * SweetAlert2 modal is shown that forces the user to accept before continuing.\n */\n private checkAndHandleTosAcceptance(user: User | null | undefined): void {\n if (!user || this.isTosModalOpen) {\n return;\n }\n\n this.appConfigService.appConfig$.pipe(take(1)).subscribe(config => {\n const tosUpdatedAt = config?.['tos_updated_at'];\n\n if (!tosUpdatedAt) {\n return;\n }\n\n const userAcceptedAt = user.tos_accepted_at;\n\n // If user has already accepted a TOS version that is newer or equal, nothing to do\n if (userAcceptedAt && !moment(userAcceptedAt).isBefore(moment(tosUpdatedAt))) {\n return;\n }\n\n this.isTosModalOpen = true;\n\n const mainTosId = config?.['main_tos_id'] ?? null;\n const tosUrl = mainTosId ? `/privacy-and-tos/${mainTosId}` : '/privacy-and-tos';\n\n swal.fire({\n icon: 'info',\n title: 'Accept Terms of Service',\n html: `By clicking continue, you agree to the terms of our <a href=\"${tosUrl}\" target=\"_blank\" rel=\"noopener noreferrer\">Privacy Policy and Platform Agreement</a>.`,\n confirmButtonText: 'Accept and Continue',\n allowOutsideClick: false,\n allowEscapeKey: false,\n showCancelButton: false,\n reverseButtons: false,\n focusConfirm: true\n }).then(result => {\n if (!result.isConfirmed) {\n // Modal cannot really be dismissed without confirmation due to config above,\n // but guard just in case.\n this.isTosModalOpen = false;\n return;\n }\n\n // Match the backend ISO 8601 format (e.g. 2025-12-15T10:27:11.250Z)\n const nowUtc = new Date().toISOString();\n\n this.profileService.updateUserProfile({ tos_accepted_at: nowUtc }).subscribe({\n next: () => {\n const updatedUser: User = {\n ...user,\n tos_accepted_at: nowUtc\n };\n this.store.dispatch(new SetUser(updatedUser));\n this.toast.success('Terms of Service accepted');\n this.isTosModalOpen = false;\n },\n error: err => {\n this.handleTosAcceptanceError(err, user);\n }\n });\n });\n });\n }\n\n private handleTosAcceptanceError(err, user: User): void {\n const message = HelperService.getErrorMessage(err?.error ?? err);\n\n swal.fire({\n icon: 'error',\n title: 'Unable to record acceptance',\n text: message,\n confirmButtonText: 'Try again',\n allowOutsideClick: false,\n allowEscapeKey: false\n }).then(() => {\n this.isTosModalOpen = false;\n this.checkAndHandleTosAcceptance(user);\n });\n }\n\n followUser(id: number) {\n return this.api.post(`${this.endpoint}/toggle_relationship/${id}`);\n }\n\n sendSSOActivationEmail() {\n return this.api.post(`/cognito/create_cognito_user`);\n }\n\n updateSlug(slug: string) {\n return this.api.put(`${this.endpoint}/update_slug`, { slug });\n }\n\n getCurrentUserObject(object_type: string) {\n return this.api.get(`${this.endpoint}/get_current_user_object?object=${object_type}`);\n }\n\n updateEmail(data: { [key: string]: string }) {\n const formData = new FormData();\n formData.append('email', data['email']);\n formData.append('confirmation_path', data['confirmation_path']);\n\n return this.api.put(`${this.endpoint}/email`, formData);\n }\n\n checkPassword(data: { password: string }) {\n return this.api.post(`${this.endpoint}/check_password`, data);\n }\n\n confirmUser(\n confirmation_token: string,\n email: string,\n password: string,\n password_confirmation: string\n ) {\n const formData = new FormData();\n formData.append('confirmation_token', confirmation_token);\n formData.append('email', email);\n formData.append('password', password);\n formData.append('password_confirmation', password_confirmation);\n\n return this.api.put(`${this.endpoint}/confirm`, formData);\n }\n\n checkTokenValidity(type: string, token: string, email: string) {\n return this.api.get(\n `${this.endpoint}/check_token_validity?type=${type}&confirmation_token=${token}&email=${email}`\n );\n }\n\n getUserNotifications() {\n return this.api.get(`${this.endpoint}/user_notifications`);\n }\n\n addAvatar(file: File) {\n return this.api.upload(this.endpoint, file, 'avatar');\n }\n\n createTwoFactorAuthenticator() {\n return this.api.put(`/two_factor_authenticator/create`);\n }\n\n verifyTwoFactorAuthenticator(google_code: string) {\n return this.api.post(`/two_factor_authenticator/verification_code`, { google_code });\n }\n\n enableTwoFactorAuthenticator(google_code: string) {\n return this.api.put(`/two_factor_authenticator/enable`, { google_code });\n }\n\n disableTwoFactorAuthenticator() {\n return this.api.put(`/two_factor_authenticator/disable`);\n }\n\n // User API Ends\n\n validateNewEmail(confirmationToken: string) {\n return this.api.get(\n `${this.endpoint}/new_email_confirm?confirmation_token=${confirmationToken}`\n );\n }\n\n getUserSubscriptions(id: number) {\n return this.api.get(`/users/${id}/subscriptions`);\n }\n\n addNewSubscriptionUsingStripe(data) {\n return this.api.post('/signups/trial_user_stripe_account', data);\n }\n\n updatePassword(data: {\n password: string;\n password_confirmation: string;\n old_password: string;\n }) {\n return this.api.put('/password/update', data);\n }\n\n getUserInvoices(paging: Paging, id: number) {\n return this.api.getWithParams(`${this.endpoint}/invoices`, {\n ...HelperService.getPagingParams(paging),\n user_id: id\n });\n }\n\n postTipsDisregarded(data: { tip_id: number; disregarded: boolean }) {\n return this.api.post('/users/user_tips', data);\n }\n\n refreshUserApiTokens() {\n return this.api.get(`${this.endpoint}/refresh_user_api_tokens`);\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { HttpHeaders } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { AppConfigService } from '@posiwise/app-config-service';\nimport {\n CAPTCHA_VALIDATION_PATH,\n NEWSLETTER_CONFIRMATION_PATH,\n NEWSLETTER_UNSUBSCRIBE_PATH,\n SOCIAL_LOGIN_PATH,\n TOKEN_HEADER_KEY,\n TOKEN_KEY\n} from '@posiwise/common-utilities';\n\nimport { BehaviorSubject } from 'rxjs';\nimport { map, switchMap } from 'rxjs/operators';\nimport swal from 'sweetalert2';\n\nimport { SignUpValues } from './common-services.interface';\nimport { IntegrationsApiHttpService } from './integrations-api-http.service';\nimport { LocalStorage } from './local-storage.service';\nimport { MainApiHttpService } from './main-api-http.service';\nimport { SecureTokenStorageService } from './secure-token-storage.service';\nimport { CustomToastService } from './toast.service';\nimport { UserService } from './user.service';\n\n@Injectable()\nexport class AuthService {\n private readonly platformSubject = new BehaviorSubject<string>('');\n private readonly twitterEndpoint = '/twitter';\n\n auth_token: string;\n header_key = 'browser';\n platform = '';\n\n platform$ = this.platformSubject.asObservable();\n\n isUserPersonated: boolean;\n\n constructor(\n private readonly localStorage: LocalStorage,\n private readonly secureTokenStorage: SecureTokenStorageService,\n private readonly router: Router,\n private readonly http: MainApiHttpService,\n private readonly userService: UserService,\n private readonly toastr: CustomToastService,\n private readonly appConfigService: AppConfigService,\n private readonly integrationsApi: IntegrationsApiHttpService,\n @Inject(DOCUMENT) private readonly document: Document\n ) {\n // Set Header Key\n this.setHeaderKey();\n }\n\n getToken() {\n if (this.secureTokenStorage.getImpersonatedToken()) {\n this.isUserPersonated = true;\n return this.secureTokenStorage.getImpersonatedToken();\n }\n if (this.secureTokenStorage.getPhonegapToken()) {\n this.isUserPersonated = true;\n return this.secureTokenStorage.getPhonegapToken();\n }\n\n this.isUserPersonated = false;\n return this.secureTokenStorage.getToken();\n }\n\n getImpersonatedToken() {\n return (\n this.secureTokenStorage.getImpersonatedToken() ||\n this.secureTokenStorage.getPhonegapToken()\n );\n }\n\n setHeaderKey() {\n // Mobile: app\n // Website: browser\n this.getHeaderKey().subscribe({\n next: (key: string) => {\n if (key === null) {\n this.header_key = 'browser';\n this.platformSubject.next('browser');\n } else if (key === 'app') {\n this.header_key = key;\n this.platformSubject.next(key);\n }\n },\n error: () => {\n this.header_key = 'browser';\n }\n });\n }\n\n signUpUser(values: SignUpValues) {\n const formData = new FormData();\n formData.append('confirmation_path', values.confirmation_path);\n formData.append('contact_name', values.contact_name);\n formData.append('email', values.email);\n formData.append('user_signup_url', values.user_signup_url);\n formData.append('organisation', values.organisation);\n formData.append('product_id', values.product_id.toString());\n formData.append('units', values.units.toString());\n formData.append('stripe_token', values.stripe_token);\n formData.append('master_subscription_id', values.master_subscription_id.toString());\n\n return this.http.post('signups', formData);\n }\n\n trialSignUp(data: object) {\n return this.http.post('signups/trial_signup', data);\n }\n\n validateEmail(email: string) {\n const params = {\n email\n };\n\n return this.http.getWithParams('users/validate_email', params);\n }\n\n forgotPassword(email: string, reset_path: string) {\n const params = {\n email,\n reset_path\n };\n\n return this.http.getWithParams('password', params);\n }\n\n resetPassword(password: string, confirm_password: string, password_reset_token: string) {\n const formData = new FormData();\n formData.append('password', password);\n formData.append('password_confirmation', confirm_password);\n formData.append('reset_password_token', password_reset_token);\n\n return this.http.put('password', formData);\n }\n\n header() {\n if (this.header_key === 'browser') {\n const headers = new HttpHeaders({\n [TOKEN_HEADER_KEY]: btoa(this.auth_token)\n });\n\n return headers;\n }\n const headers = new HttpHeaders({\n 'X-Phonegap-Token': btoa(this.auth_token)\n });\n\n return headers;\n }\n\n private getHeaderKey() {\n return this.localStorage.getItem$('platform');\n }\n\n private getPlatform() {\n return this.localStorage.getItem$('platform');\n }\n\n signInUser(email: string, password: string) {\n const formData = new FormData();\n formData.append('email', email);\n formData.append('password', password);\n\n return this.http.post('session', formData);\n }\n\n signInUserWith2Fa(email: string, password: string, google_code) {\n const formData = new FormData();\n formData.append('email', email);\n formData.append('password', password);\n formData.append('google_code', google_code);\n\n return this.http.post('session', formData);\n }\n\n storeToken(token: string) {\n return this.secureTokenStorage.storeToken(token);\n }\n\n storePlatform(plat: string) {\n return this.localStorage.setItem$('platform', plat);\n }\n\n logout() {\n const options = {\n headers: this.header()\n };\n\n if (this.header_key !== 'browser') {\n options['params'] = {\n phonegap: true\n };\n }\n\n // Clear all tokens securely\n this.secureTokenStorage.clearTokens().subscribe();\n\n return this.http.delete('session', options);\n }\n\n /**\n * Clear all authentication tokens\n */\n clearTokens() {\n return this.secureTokenStorage.clearTokens();\n }\n\n /**\n * Remove only impersonation tokens (not all tokens)\n */\n removeImpersonationTokens() {\n return this.secureTokenStorage.removeImpersonatedTokens();\n }\n\n getToken$() {\n return this.secureTokenStorage.getToken$();\n }\n\n getNewsletterSubscription(token: string) {\n return this.http.get(`${NEWSLETTER_CONFIRMATION_PATH}?token=${token}`);\n }\n\n unsubscribeNewsletter(token: string) {\n return this.http.get(`${NEWSLETTER_UNSUBSCRIBE_PATH}?token=${token}`);\n }\n\n validateReCaptcha(token: string) {\n return this.http.get(`${CAPTCHA_VALIDATION_PATH}=${token}`);\n }\n\n socialLogin(data) {\n return this.http.post(SOCIAL_LOGIN_PATH, data);\n }\n\n twitterLogin() {\n return this.http.get(`${this.twitterEndpoint}/get_authorize_url`);\n }\n\n twitterAuthCallback(data) {\n return this.http.post(`${this.twitterEndpoint}/authorization_callback`, data);\n }\n\n microsoftLogin() {\n return this.http.get(`microsoft/get_authorize_url`);\n }\n\n cognitoLogin() {\n return this.http.get(`cognito/get_authorize_url`);\n }\n\n microsoftAuthCallback(data) {\n return this.http.post(`microsoft/authorization_callback`, data);\n }\n\n googleLogin() {\n return this.http.get(`google/get_authorize_url`);\n }\n\n googleAuthCallback(data) {\n return this.http.post(`google/authorization_callback`, data);\n }\n\n facebookLogin() {\n return this.http.get(`facebook/get_authorize_url`);\n }\n\n facebookAuthCallback(data) {\n return this.http.post(`facebook/authorization_callback`, data);\n }\n\n appleLogin() {\n return this.http.get(`apple/get_authorize_url`);\n }\n\n appleAuthCallback(data) {\n return this.http.post(`apple/authorization_callback`, data);\n }\n\n cognitoAuthCallback(data) {\n return this.http.post(`cognito/authorization_callback`, data);\n }\n\n linkedinLogin() {\n return this.appConfigService.appConfig$.pipe(\n switchMap(config => {\n return this.http.get(\n `/linkedin/get_authorize_url?redirect_url=${config['links'].frontend_link}/linkedin-confirmation`\n );\n })\n );\n }\n\n linkedInAuthCallback(data) {\n return this.http.post('linkedin/authorization_callback', data);\n }\n\n postLogin(response) {\n this.localStorage.removeItem$('product_id').subscribe();\n this.setHeaderKey();\n // this.setPlatform(); call it from cloudolive repo.\n\n // Saves the token into the localStorage and fetches the user information\n const sequence$ = this.storeToken(response[TOKEN_KEY]).pipe(\n switchMap(() => {\n return this.userService.getUserInfo();\n })\n );\n\n sequence$.subscribe(resp => {\n localStorage.setItem('name', resp.first_name);\n this.router.navigate(['home']);\n if ($('.cc-dismiss').length > 0) {\n $('.cc-dismiss')[0].click();\n }\n\n return true;\n });\n }\n\n impersonateUser(data: { email: string; subscription_id: number; phonegap?: boolean }) {\n if (!data.phonegap) {\n delete data.phonegap;\n }\n\n return this.http.post('/session/impersonate_user', data).pipe(\n map(x => {\n if (x?.auth_token) {\n this.secureTokenStorage.storeImpersonatedToken(x.auth_token);\n }\n if (x?.phonegap_token) {\n this.secureTokenStorage.storePhonegapToken(x.phonegap_token);\n }\n\n return x;\n })\n );\n }\n\n postSocialLogin(response) {\n const alreadySigned = !!response[TOKEN_KEY];\n const isNewSignUp = !!response.subscription;\n\n if (isNewSignUp) {\n this.router.navigate(['confirmation'], {\n queryParams: {\n ref: response.reference_number,\n subscription: response.subscription,\n users: response.users\n }\n });\n } else if (alreadySigned) {\n this.storeToken(response[TOKEN_KEY]).subscribe({\n next: () => {\n this.router.navigate(['home']);\n },\n error: error => {\n this.toastr.showToast(error);\n }\n });\n } else {\n swal.fire({\n toast: true,\n position: 'bottom',\n html: `<strong class=\"text-danger\"> ${response.error.message}</strong>`,\n showCancelButton: true,\n reverseButtons: true,\n icon: 'error'\n }).then(rep => {\n if (rep.value) {\n this.router.navigate(['register']);\n }\n });\n }\n }\n\n registerTokenListener() {\n window.addEventListener('storage', data => {\n // logs out the other tabs when the token is changed.\n // we assume that token doesn't refresh and backend updates the expiry time\n if (data?.key === TOKEN_KEY && data?.oldValue !== data?.newValue) {\n this.document.location.reload();\n }\n });\n }\n}\n","import { inject, Injectable } from '@angular/core';\n\nimport { SetUser, UserActionTypes } from '@posiwise/app-store';\n\nimport { Observable } from 'rxjs';\nimport { map, mergeMap } from 'rxjs/operators';\n\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Action } from '@ngrx/store';\n\nimport { UserService } from '../user.service';\n\n/* NgRx */\n@Injectable()\nexport class UserEffects {\n private readonly actions$ = inject(Actions);\n constructor(private readonly userService: UserService) {}\n\n loadUser$: Observable<Action> = createEffect(() => {\n return this.actions$.pipe(\n ofType(UserActionTypes.GET_USER),\n // take(1),\n mergeMap(() =>\n this.userService.getUserInfo().pipe(\n map(response => new SetUser(response))\n // catchError(err => of(new userActions.LoadFail(err)))\n )\n )\n );\n });\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { appReducers } from '@posiwise/app-store';\n\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreModule } from '@ngrx/store';\n\nimport { AuthService } from './auth.service';\nimport { UserEffects } from './effects/user.effects';\n\n@NgModule({\n imports: [CommonModule, EffectsModule.forRoot([UserEffects]), StoreModule.forRoot(appReducers)],\n providers: [AuthService]\n})\nexport class CommonServicesModule {}\n","import { Injectable } from '@angular/core';\nimport { Meta, Title } from '@angular/platform-browser';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SeoService {\n constructor(\n private readonly meta: Meta,\n private readonly titleService: Title\n ) {}\n\n /**\n * Set SEO metadata for a page\n * @param title - Page title\n * @param description - Meta description\n * @param keywords - Meta keywords (optional)\n */\n setSEO(title: string, description: string, keywords?: string): void {\n // Set page title\n this.titleService.setTitle(title);\n\n // Set meta description\n this.meta.updateTag({ name: 'description', content: description });\n\n // Set keywords if provided\n if (keywords) {\n this.meta.updateTag({ name: 'keywords', content: keywords });\n }\n\n // Set Open Graph tags\n this.meta.updateTag({ property: 'og:title', content: title });\n this.meta.updateTag({ property: 'og:description', content: description });\n this.meta.updateTag({ property: 'og:type', content: 'website' });\n\n // Set Twitter Card tags\n this.meta.updateTag({ name: 'twitter:title', content: title });\n this.meta.updateTag({ name: 'twitter:description', content: description });\n this.meta.updateTag({ name: 'twitter:card', content: 'summary' });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ADMIN_SUB_MENU_WHITELIST, PERMISSION_NAMES, User } from '@posiwise/common-utilities';\n\nimport cloneDeep from 'lodash/cloneDeep';\nimport pickBy from 'lodash/pickBy';\n\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PermissionService {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n static selectedProduct: any; // NOSONAR\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n static selectedSubscription: any; // NOSONAR\n\n user: User = null;\n\n constructor(private readonly api: MainApiHttpService) {}\n\n setCurrentSubscription(subscription) {\n PermissionService.selectedSubscription = subscription;\n }\n\n isGranted(\n permissionName: string,\n productKey = null,\n permission_key = null,\n productSlug = null\n ): boolean {\n if (this.user) {\n const { user } = this;\n\n // Admin have access to all the menus.\n // E.g., Pages.SuperAdmin\n if (this.isSuperAdmin()) {\n return true;\n }\n\n if (permissionName) {\n permissionName = this.getFormattedPermissionName(permissionName, productSlug);\n }\n\n // Returning true if user has a given permission\n // E.g., Pages.Role.CloudOlive.SalesManager\n // or Pages.Beta or Pages.Alpha\n\n if (permissionName?.includes('||')) {\n const parts = permissionName.split('||').map(p => p.trim());\n if (this.hasAnyGrantedPermission(parts, user, productSlug)) {\n return true;\n }\n } else if (user['auth']?.['granted'][permissionName]) {\n return true;\n }\n\n const filteredPermissions = this.handleProductKey(\n productKey,\n user,\n permission_key,\n permissionName\n );\n\n if (filteredPermissions) {\n return filteredPermissions;\n }\n\n // no valid permission was detected for this user\n return false;\n }\n // user not logged-in\n return false;\n }\n\n private hasAnyGrantedPermission(parts: string[], user, productSlug: string = null): boolean {\n return parts.some(part => {\n // Format the permission part with the current subscription slug if needed\n const formattedPart = this.getFormattedPermissionName(part, productSlug);\n return user['auth']?.['granted'][formattedPart];\n });\n }\n\n handleProductKey(productKey, user, permission_key, permissionName) {\n if (productKey) {\n // filters the permission only for the selected product.\n let filteredPermissions = pickBy(cloneDeep(user['auth']['granted']), (_value, key) => {\n return key.includes(productKey);\n });\n // add Pages.Product.{permission_key}\n filteredPermissions = {\n ...{ [`Pages.Product.${permission_key}`]: true },\n ...filteredPermissions\n };\n\n // E.g., Pages.Product.CloudOlive.CloudOlive_MspKey\n return filteredPermissions[permissionName] ?? false;\n }\n }\n\n private getFormattedPermissionName(permissionName: string, productSlug: string | null): string {\n const selectedProduct = PermissionService?.selectedProduct ?? this.getCurrentProduct();\n const subscriptionSlug = selectedProduct?.subscription_slug;\n\n let slugToCheck: string;\n if (!productSlug) {\n if (permissionName.includes('Pages.Product.')) {\n slugToCheck = `Pages.Product.${subscriptionSlug}.`;\n }\n\n if (permissionName.includes('Pages.Role.')) {\n slugToCheck = `Pages.Role.${subscriptionSlug}.`;\n }\n } else {\n slugToCheck = productSlug;\n }\n\n // Only format if we have a valid slug to check\n if (slugToCheck) {\n if (\n !permissionName.includes(slugToCheck) &&\n permissionName.includes('Pages.Product.')\n ) {\n permissionName = permissionName.replace('Pages.Product.', slugToCheck);\n }\n\n if (permissionName.includes('Pages.Role.') && !permissionName.includes(slugToCheck)) {\n permissionName = permissionName.replace('Pages.Role.', slugToCheck);\n }\n }\n\n return permissionName;\n }\n\n getPermissionTreeDataByRole(data) {\n const permissions = [];\n data.all.forEach(element => {\n const { name } = element;\n permissions.push({\n id: element.id, // permissionId: Used to update the permissions on change\n parentName: name.includes('.') ? name.substring(0, name.lastIndexOf('.')) : null,\n name,\n displayName: element.name\n });\n });\n\n return {\n permissions,\n grantedPermissionNames: Object.keys(data.granted)\n };\n }\n\n evaluatePermissions(\n permission: string,\n productKey: string = null,\n permission_key: string = null,\n productSlug: string = null\n ): boolean {\n if (!permission) {\n return false;\n }\n\n let expr = '';\n\n if (permission === PERMISSION_NAMES.SuperAdmin) {\n return this.isSuperAdmin();\n }\n if (permission === PERMISSION_NAMES.SubscriptionAdmin) {\n return this.isUserSubscriptionAdmin() || this.isUserSubscriptionOwner();\n }\n if (permission === PERMISSION_NAMES.SubscriptionOwner) {\n return this.isUserSubscriptionOwner();\n }\n if (permission === PERMISSION_NAMES.SubscriptionSuperAdmin) {\n return (\n this.isUserSubscriptionSuperAdmin() ||\n this.isUserSubscriptionSuperOwner() ||\n this.isSuperAdmin()\n );\n }\n if (permission === PERMISSION_NAMES.SubscriptionSuperOwner) {\n return this.isUserSubscriptionSuperOwner() || this.isSuperAdmin();\n }\n if (\n typeof permission === 'string' &&\n ADMIN_SUB_MENU_WHITELIST.some(v => permission.includes(v)) &&\n (this.isUserSubscriptionSuperAdmin() || this.isUserSubscriptionSuperOwner())\n ) {\n return true;\n }\n\n expr = this.handleNonBooleanPermissions(\n permission,\n expr,\n productKey,\n permission_key,\n productSlug\n );\n\n // Now expr is made of true/false values with &&, ||, ()\n // eslint-disable-next-line no-eval\n return eval(expr); // NOSONAR\n }\n\n handleNonBooleanPermissions(permission, expr, productKey, permission_key, productSlug) {\n if (typeof permission !== 'boolean') {\n permission.split(' ').forEach(x => {\n const raw = x.trim();\n\n if (['||', '&&', '(', ')'].includes(raw)) {\n expr += ` ${raw} `;\n } else {\n let evaluated: boolean;\n\n if (raw === PERMISSION_NAMES.SuperAdmin) {\n evaluated = this.isSuperAdmin();\n } else if (raw === PERMISSION_NAMES.SubscriptionAdmin) {\n evaluated =\n this.isUserSubscriptionAdmin() || this.isUserSubscriptionOwner();\n } else if (raw === PERMISSION_NAMES.SubscriptionOwner) {\n evaluated = this.isUserSubscriptionOwner();\n } else if (raw === PERMISSION_NAMES.SubscriptionSuperAdmin) {\n evaluated =\n this.isUserSubscriptionSuperAdmin() ||\n this.isUserSubscriptionSuperOwner() ||\n this.isSuperAdmin();\n } else if (raw === PERMISSION_NAMES.SubscriptionSuperOwner) {\n evaluated = this.isUserSubscriptionSuperOwner() || this.isSuperAdmin();\n } else if (productKey) {\n // Assume it's Pages.Product or Pages.Role with productKey\n evaluated = this.isGranted(raw, productKey, permission_key, productSlug);\n } else {\n // Pass productSlug to isGranted to ensure slug-aware permission checking\n evaluated = this.isGranted(raw, null, null, productSlug);\n }\n\n expr += ` ${evaluated} `;\n }\n }, this);\n }\n return expr;\n }\n\n getPermissionByRole(roleId: number) {\n return this.api.get(`/admin/role_permissions/${roleId}`);\n }\n\n saveUserPermission(payload) {\n return this.api.post(`/admin/role_permissions`, payload);\n }\n\n /**\n * determine user is super_admin using user.auth.granted['Pages.SuperAdmin']\n */\n isSuperAdmin(): boolean {\n return !!this.user.auth.granted['Pages.SuperAdmin'] || false;\n }\n\n /**\n * Any Product Admin regardless of the product being master product or not.\n */\n public isUserSubscriptionOwner(product?): boolean {\n product ??= this.getCurrentProduct();\n const subscriptionSlug = product?.subscription_slug;\n return !!this.user.auth.granted[\n `Pages.Product.${subscriptionSlug}.${product?.permission_key}.${product?.feature_key}.SubscriptionOwner`\n ];\n }\n\n /**\n * Any Product Admin regardless of the product being master product or not.\n * *rbacAllow=\"SubscriptionAdmin\"\n * @returns\n */\n public isUserSubscriptionAdmin(product?): boolean {\n product ??= this.getCurrentProduct();\n const subscriptionSlug = product?.subscription_slug;\n return (\n !!this.user.auth.granted[\n `Pages.Product.${subscriptionSlug}.${product?.permission_key}.${product?.feature_key}.SubscriptionAdmin`\n ] ||\n !!this.user.auth.granted[\n `Pages.Product.${subscriptionSlug}.${product?.permission_key}.${product?.feature_key}.SubscriptionOwner`\n ]\n );\n }\n\n /**\n * Any Product Admin of the product being the master product\n */\n isUserSubscriptionSuperAdmin(product?): boolean {\n product ??= this.getCurrentProduct();\n const subscriptionSlug = product?.subscription_slug;\n return (\n !!this.user.auth.granted[\n `Pages.Product.${subscriptionSlug}.${product?.permission_key}.${product?.feature_key}.SubscriptionSuperAdmin`\n ] ||\n !!this.user.auth.granted[\n `Pages.Product.${subscriptionSlug}.${product?.permission_key}.${product?.feature_key}.SubscriptionSuperOwner`\n ]\n );\n }\n\n isUserMasterSubscriptionSuperAdmin(product?): boolean {\n product ??= this.getCurrentProduct();\n return !!this.user.auth.granted[\n `Pages.Product.${product?.permission_key}.${product?.feature_key}.SubscriptionSuperAdmin`\n ];\n }\n\n /**\n * Any Product Admin of the product being the master product\n */\n public isUserSubscriptionSuperOwner(product?): boolean {\n product ??= this.getCurrentProduct();\n const subscriptionSlug = product?.subscription_slug;\n return !!this.user.auth.granted[\n `Pages.Product.${subscriptionSlug}.${product?.permission_key}.${product?.feature_key}.SubscriptionSuperOwner`\n ];\n }\n\n setCurrentProduct(product) {\n localStorage.setItem(\n 'product',\n JSON.stringify({\n id: product.id,\n permission_key: product?.permission_key,\n feature_key: product?.feature_key,\n subscriptionId: product.subscriptionId,\n subscription_slug: product.subscription_slug\n })\n );\n }\n\n public getCurrentProduct() {\n return JSON.parse(localStorage.getItem('product'));\n }\n}\n","/*\n * Similar to Meta service but made to handle <link> creation for SEO purposes\n */\nimport { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, RendererFactory2, ViewEncapsulation } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LinkService {\n constructor(\n private readonly rendererFactory: RendererFactory2,\n @Inject(DOCUMENT) private readonly document\n ) {}\n\n /**\n * Inject the State into the bottom of the <head>\n */\n addTag(tag: LinkDefinition, _forceCreation?: boolean) {\n try {\n const renderer = this.rendererFactory.createRenderer(this.document, {\n id: '-1',\n encapsulation: ViewEncapsulation.None,\n styles: [],\n data: {}\n });\n\n const link = renderer.createElement('link');\n const { head } = this.document;\n\n if (head === null) {\n throw new Error('<head> not found within DOCUMENT.');\n }\n\n Object.keys(tag).forEach((prop: string) => {\n return renderer.setAttribute(link, prop, tag[prop]);\n });\n\n // [TODO]: get them to update the existing one (if it exists) ?\n renderer.appendChild(head, link);\n } catch (e) {\n window.console.error('Error within linkService : ', e);\n }\n }\n}\n\ndeclare type LinkDefinition = {\n charset?: string;\n crossorigin?: string;\n href?: string;\n hreflang?: string;\n media?: string;\n rel?: string;\n rev?: string;\n sizes?: string;\n target?: string;\n type?: string;\n} & {\n [prop: string]: string;\n};\n","import { Injectable } from '@angular/core';\nimport { PreloadingStrategy, Route, Router } from '@angular/router';\n\nimport { Observable, of, timer } from 'rxjs';\nimport { mergeMap } from 'rxjs/operators';\n\nimport { PermissionService } from './permission.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CustomPreloadingStrategy implements PreloadingStrategy {\n constructor(\n private readonly permission: PermissionService,\n private readonly router: Router\n ) {}\n\n preload(route: Route, load: () => Observable<string>): Observable<string> {\n // Skip preloading if we're on the landing page (root path)\n if (this.router.url === '/' || this.router.url === '') {\n console.log('🚫 Skipping preload for route:', route.path, '- on landing page');\n return of(null);\n }\n\n const loadRoute = delay => (delay ? timer(5000).pipe(mergeMap(_ => load())) : load());\n\n return route.data && this.checkModulePermission(route.data)\n ? loadRoute(route.data['delay'])\n : of(null);\n }\n\n private checkModulePermission(routeData) {\n const ret = routeData.preload && this.permission.isGranted(routeData.permission);\n\n return ret;\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable, Injector } from '@angular/core';\n\nimport { AB_TEST_ACTIONS } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AbTestService {\n constructor(\n private readonly injector: Injector,\n private readonly http: HttpClient\n ) {}\n\n /**\n * POST: start or stop observable\n * payload: {\n \"test_name\": \"my_first_experiment\",\n \"action_type\": \"ab_test\"\n }\n */\n getExperiment(test_name: string, action_type: string, service: unknown) {\n return this.getServiceInstance(service).post('/ab_test', { test_name, action_type });\n }\n\n /**\n * Finish the experiment and remove from the cookie app-store\n */\n finishExperiment(test_name: string, service: unknown) {\n return this.getServiceInstance(service).post('/ab_test', {\n test_name,\n action_type: AB_TEST_ACTIONS.FINISH\n });\n }\n\n finishABExperiment(test_name: string, shard_name: unknown) {\n const baseUrl = HelperService.getBaseUrlMicroService({ name: shard_name });\n return this.http.post(`${baseUrl}/ab_test`, {\n test_name,\n action_type: AB_TEST_ACTIONS.FINISH\n });\n }\n\n /**\n * dynamically loads the microservice\n */\n private getServiceInstance(service) {\n console.log(typeof service);\n return service ? this.injector.get(service) : this.injector.get(MainApiHttpService); // fallback to Core Microservice\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { GEO_PATH } from '@posiwise/common-utilities';\n\nimport { CookieService } from 'ngx-cookie';\nimport { of } from 'rxjs';\nimport { tap } from 'rxjs/operators';\n\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GeoService {\n private readonly url = GEO_PATH;\n\n constructor(\n private readonly api: MainApiHttpService,\n private readonly cookieService: CookieService\n ) {}\n\n getCountries() {\n return this.api.get(`${this.url}/countries`);\n }\n\n getRegions(countryId) {\n return this.api.get(`${this.url}/regions/${countryId}`);\n }\n\n getCountryFromIP() {\n // Cache the location details\n if (this.cookieService.get('location_from_ip')) {\n return of(JSON.parse(this.cookieService.get('location_from_ip')));\n }\n\n return this.api.get(`${this.url}/location_from_ip`).pipe(\n tap((data: object) => {\n return this.cookieService.putObject('location_from_ip', data);\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Paging, Subscription } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable()\nexport class SubscriptionService {\n endpoint = '/subscriptions/';\n\n constructor(private readonly api: MainApiHttpService) {}\n\n getById(id: number) {\n return this.api.get(`${this.endpoint}${id}`);\n }\n\n deleteSubscription(id: number, reqJson: object) {\n return this.api.delete(`/subscriptions/${id}`, reqJson);\n }\n\n getSubscriptions(id: number) {\n return this.api.get(`/subscriptions/${id}`);\n }\n\n postSubscription(data: Partial<Subscription>) {\n return this.api.post('/subscriptions', data);\n }\n\n updateSubscription(id: number, data: Partial<Subscription>) {\n return this.api.put(`/subscriptions/${id}`, data);\n }\n\n updateSubscriptionUnit(id: number, units) {\n return this.api.put(`/subscriptions/${id}/update_units`, { purchased_units: units });\n }\n\n addPartnersToSubscription(id: number, data) {\n const formData = new FormData();\n\n // eslint-disable-next-line no-restricted-syntax\n for (const key in data) {\n if (Object.hasOwn(data, key)) {\n formData.append(key, data[key]);\n }\n }\n\n return this.api.post(`/subscriptions/${id}/partners/invite_partner`, data);\n }\n\n getProductList(paging?: Paging, subscription_id?: number, _params?) {\n return this.api.getWithParams(\n `/subscriptions/${subscription_id}/partners/products_for_partners`,\n HelperService.getPagingParams(paging)\n );\n }\n\n removePartner(id: number, partner_id: number) {\n return this.api.delete(`/subscriptions/${id}/partners/remove_partner/${partner_id}`);\n }\n\n deactivatePartner(id: number, data) {\n const formData = new FormData();\n\n // eslint-disable-next-line no-restricted-syntax\n for (const key in data) {\n if (Object.hasOwn(data, key)) {\n formData.append(key, data[key]);\n }\n }\n\n return this.api.put(`/subscriptions/${id}/partners/toggle_active_status`, data);\n }\n\n addMembersToSubscription(id: number, data) {\n const formData = new FormData();\n\n // eslint-disable-next-line no-restricted-syntax\n for (const key in data) {\n if (Object.hasOwn(data, key)) {\n formData.append(key, data[key]);\n }\n }\n\n return this.api.post(`/subscriptions/${id}/signup_members`, data);\n }\n\n signUpMemberUrl(id: number) {\n return `/subscriptions/${id}/signup_members`;\n }\n\n getEnrolledSubscription(id: number, paging?: Paging) {\n return this.api.getWithParams(\n `/subscriptions/${id}/members`,\n HelperService.getPagingParams(paging)\n );\n }\n removeEnrolledSubscription(id: number, user_id: number) {\n return this.api.delete(`/subscriptions/${id}/remove_member/${user_id}`);\n }\n\n toggleAdmin(id: number, data) {\n return this.api.put(`/subscriptions/${id}/toggle_admin`, data);\n }\n\n updateSubscriptionAPIKey(id: number) {\n return this.api.put(`/subscriptions/${id}/update_api_key`);\n }\n\n refreshApiTokens(id: number) {\n return this.api.get(`/subscriptions/${id}/refresh_api_tokens`);\n }\n\n addFullLogo(id: number, data) {\n return this.api.upload(`/subscriptions/${id}`, data, 'full_logo');\n }\n\n addSquaredLogo(id: number, data) {\n return this.api.upload(`/subscriptions/${id}`, data, 'squared_logo');\n }\n\n getCardDetails(subscriptionId: number) {\n return this.api.get(`/subscriptions/${subscriptionId}/card_detail`);\n }\n\n updateCardDetails(data: { [key: string]: string }, subscription_id: number) {\n return this.api.post(`/subscriptions/${subscription_id}/update_card`, data);\n }\n\n getEnterpriseInsight(subscriptionId: number, starting_at?: string, ending_at?: string) {\n return this.api.getWithParams(\n `/subscriptions/${subscriptionId}/enterprise_analytics?type=summary`,\n { starting_at, ending_at }\n );\n }\n\n postSubscriptionCredential(data) {\n return this.api.post(`/subscription_credentials`, data);\n }\n\n editSubscriptionCredential(id: number, data) {\n return this.api.put(`/subscription_credentials/${id}`, data);\n }\n\n getAllSubscriptionCredentials(subscription_id: number, paging?: Paging) {\n return this.api.getWithParams(`/subscription_credentials/get_all`, {\n subscription_id,\n ...HelperService.getPagingParams(paging)\n });\n }\n\n getAllSubscriptionPartners(subscription_id: number, paging?: Paging) {\n return this.api.getWithParams(`/subscriptions/${subscription_id}/partners/get_all`, {\n ...HelperService.getPagingParams(paging)\n });\n }\n\n deleteSubscriptionCredential(id: number, subscriptionId: number) {\n return this.api.delete(`/subscription_credentials/${id}?subscription_id=${subscriptionId}`);\n }\n\n getAllCredentials(paging?: Paging) {\n return this.api.getWithParams(`/credentials/get_all`, {\n ...HelperService.getPagingParams(paging)\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Paging, PRODUCT_PATH } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ProductService {\n private readonly endpoint = '/admin/product';\n\n constructor(private readonly api: MainApiHttpService) {}\n\n /// ////////////////////\n /// // ADMIN PRODUCT API\n /// ////////////////////\n deleteProduct(id: number, subscription_id: number) {\n return this.api.delete(`${this.endpoint}/${id}?subscription_id=${subscription_id}`);\n }\n\n updateProduct(data, id: number) {\n return this.api.put(`${this.endpoint}/${id}`, data);\n }\n\n addProduct(data) {\n return this.api.post(this.endpoint, data);\n }\n\n inviteForTrial(id: number, body, subscription_id: number) {\n return this.api.post(`${this.endpoint}/${id}/invite_for_trial`, {\n ...body,\n subscription_id\n });\n }\n\n getProductList(paging?: Paging, subscription_id?: number, params?) {\n return this.api.getWithParams(`${PRODUCT_PATH}/get_all`, {\n ...HelperService.getPagingParams(paging),\n subscription_id,\n ...params\n });\n }\n\n getSupportedCurrency() {\n return this.api.get(`${PRODUCT_PATH}/supported_currencies`);\n }\n\n getSupportedRegions() {\n return this.api.get(`${PRODUCT_PATH}/supported_regions`);\n }\n\n /// ////////////////////\n /// // PRODUCT API\n /// ////////////////////\n getProducts(params) {\n return this.api.getWithParams(`${PRODUCT_PATH}/get_all?page=1&page_size=200`, {\n ...params\n });\n }\n\n getProductById(id: number) {\n return this.api.get(`${PRODUCT_PATH}/${id}`);\n }\n\n getProductCategories() {\n return this.api.get(`${PRODUCT_PATH}/categories`);\n }\n\n getProductInsight(subscriptionId: number, starting_at?: string, ending_at?: string) {\n return this.api.getWithParams(\n `/admin/subscriptions_analytics?type=products&subscription_id=${subscriptionId}`,\n { starting_at, ending_at }\n );\n }\n\n getUsersForProduct(id: number, subscription_id: number) {\n return this.api.getWithParams(`${this.endpoint}/${id}/insights`, { subscription_id });\n }\n\n getAvailableStripeUnsubscribeBehaviors() {\n return this.api.get(`admin/product/available_stripe_unsubscribe_behaviors`);\n }\n\n getAvailableStripeProrationBehaviors() {\n return this.api.get(`admin/product/available_stripe_proration_behaviors`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\n@Injectable()\nexport class ValidationService {\n static readonly CustomValidatorPatterns = {\n StrongPassword: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[!@#$%^&*])(?=.{8,})/,\n Year: '[0-9]{4}$'\n };\n\n /**\n * Validates email.\n */\n static email(input: string) {\n if (!input) {\n return false;\n }\n const reg = /^\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$/;\n\n return reg.test(input);\n }\n\n static patternValidator(regex: RegExp, error: ValidationErrors): ValidatorFn | null {\n return (control: AbstractControl): { [key: string]: string } => {\n if (!control.value) {\n // if control is empty return no error\n return null;\n }\n\n // test the value of the control against the regexp supplied\n const valid = regex.test(control.value as string);\n\n // if true, return no error (no error), else return error passed in the second parameter\n return valid ? null : error;\n };\n }\n}\n","import { AbstractControl, UntypedFormControl, UntypedFormGroup } from '@angular/forms';\n\nexport class FormHelperService {\n static markFormAsPristine(form: UntypedFormGroup | UntypedFormControl | AbstractControl) {\n form.markAsPristine();\n form.markAsUntouched();\n }\n\n static markAsTouched(form) {\n /* eslint-disable no-restricted-syntax */\n /* eslint-disable guard-for-in */\n for (const i in form.form.controls) {\n form.form.controls[i]['touched'] = true;\n }\n }\n\n static validateAllFormFields(form): void {\n Object.keys(form.controls).forEach(field => {\n const control = form.get(field);\n if (control instanceof UntypedFormControl) {\n control.markAsTouched();\n control.updateValueAndValidity();\n } else if (control instanceof UntypedFormGroup) {\n this.validateAllFormFields(control);\n }\n });\n }\n}\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable, Injector } from '@angular/core';\n\nimport { Paging } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { Observable, throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\nimport {\n AhoyEventResponse,\n AhoyMessageResponse,\n AhoyVersionResponse,\n AhoyVisitResponse,\n RequestParams,\n TrackEventResponse\n} from './common-services.interface';\nimport { CustomToastService } from './toast.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AhoyService {\n private readonly ahoy = '/ahoy';\n\n private readonly toast: CustomToastService;\n\n constructor(\n private readonly http: HttpClient,\n public injector: Injector\n ) {\n this.toast = injector.get(CustomToastService);\n }\n\n getAhoyEvents(params: RequestParams, service, paging: Paging): Observable<AhoyEventResponse> {\n const baseUrl = HelperService.getBaseUrlMicroService(service);\n const page = HelperService.getPagingParams(paging);\n\n return this.http\n .get<AhoyEventResponse>(`${baseUrl}${this.ahoy}/events`, {\n params: { ...page, ...params }\n })\n .pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n getAhoyMessages(\n params: RequestParams,\n service,\n paging: Paging\n ): Observable<AhoyMessageResponse> {\n const baseUrl = HelperService.getBaseUrlMicroService(service);\n const page = HelperService.getPagingParams(paging);\n\n return this.http\n .get<AhoyMessageResponse>(`${baseUrl}${this.ahoy}/messages`, {\n params: { ...page, ...params }\n })\n .pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n getAhoyVisits(params: RequestParams, service, paging: Paging): Observable<AhoyVisitResponse> {\n const baseUrl = HelperService.getBaseUrlMicroService(service);\n const page = HelperService.getPagingParams(paging);\n\n return this.http\n .get<AhoyVisitResponse>(`${baseUrl}${this.ahoy}/visits`, {\n params: { ...page, ...params }\n })\n .pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n getVersions(params: RequestParams, service, paging: Paging): Observable<AhoyVersionResponse> {\n const baseUrl = HelperService.getBaseUrlMicroService(service);\n const page = HelperService.getPagingParams(paging);\n\n return this.http\n .get<AhoyVersionResponse>(`${baseUrl}/versions/get_all`, {\n params: { ...page, ...params }\n })\n .pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n getEvents(params: RequestParams, service, paging: Paging): Observable<TrackEventResponse> {\n const baseUrl = HelperService.getBaseUrlMicroService(service);\n const page = HelperService.getPagingParams(paging);\n\n return this.http\n .get<TrackEventResponse>(`${baseUrl}/events/get_all`, {\n params: { ...page, ...params }\n })\n .pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n handleError(error: HttpErrorResponse): void {\n if (error?.error?.status_code !== 'unauthorized__REMOVED_X_TESTING') {\n if (error?.error?.status === 401) {\n this.toast.clear();\n }\n\n this.toast.showToast(error);\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport {\n ADMIN_FAQS_PATH,\n CONTACT_US_PATH,\n CUSTOMER_SUPPORT_PATH,\n FAQS_PATH,\n FEEDBACK_QUESTIONS_PATH,\n GLOBAL_CONFIGS_PATH,\n GLOBAL_SUBSCRIPTION_CONFIGS_PATH,\n INCIDENTS_PATH,\n INCIDENTS_PATH_ADMIN,\n NEWSLETTER_SUBSCRIPTION_PATH,\n NEWSLETTER_UNSUBSCRIBE_PATH,\n NEWSLETTERS_PATH,\n ORGANIZATIONS_PATH,\n Paging,\n USER_FEEDBACKS_PATH,\n USER_LOGIN_NOTIFICATION\n} from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { GetFaqParams } from './common-services.interface';\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CommonService {\n constructor(private readonly api: MainApiHttpService) {}\n\n addContactUsMessage(data) {\n return this.api.post(CONTACT_US_PATH, data);\n }\n\n getIncidents(paging?: Paging) {\n return this.api.getWithParams(`${INCIDENTS_PATH}/get_all`, {\n ...HelperService.getPagingParams(paging)\n });\n }\n\n getIncidentsAdmin(paging?: Paging, subscriptionId?: number) {\n return this.api.getWithParams(`${INCIDENTS_PATH_ADMIN}/get_all`, {\n ...HelperService.getPagingParams(paging),\n subscription_id: subscriptionId\n });\n }\n\n addIncident(data) {\n return this.api.post(`${INCIDENTS_PATH_ADMIN}`, data);\n }\n\n editIncident(id, data) {\n return this.api.put(`${INCIDENTS_PATH_ADMIN}/${id}`, data);\n }\n\n getIncidentById(id: number, subscription_id) {\n return this.api.get(`${INCIDENTS_PATH_ADMIN}/${id}?subscription_id=${subscription_id}`);\n }\n\n deleteIncidentAdmin(id: number, subscription_id: number) {\n return this.api.delete(`${INCIDENTS_PATH_ADMIN}/${id}?subscription_id=${subscription_id}`);\n }\n // Newsletters\n\n getAllNewsletter(paging?: Paging) {\n return this.api.getWithParams(`${NEWSLETTERS_PATH}/get_all`, {\n visible: true,\n ...HelperService.getPagingParams(paging)\n });\n }\n\n toggleNewsletter(newsletterId: number, param) {\n return this.api.put(`${NEWSLETTER_SUBSCRIPTION_PATH}/${newsletterId}/toggle`, param);\n }\n\n unsubscribeNewsletter(token: string) {\n return this.api.get(`/${NEWSLETTER_UNSUBSCRIBE_PATH}?token=${token}`);\n }\n\n // FAQ\n\n getFaq(params: GetFaqParams) {\n return this.api.getWithParams(ADMIN_FAQS_PATH, { ...params });\n }\n\n getFaqById(id: number, subscription_id) {\n return this.api.getWithParams(`${FAQS_PATH}/${id}`, { subscription_id });\n }\n getFaqCategories(subscription_id: number) {\n return this.api.getWithParams(`faqs/available_categories`, { subscription_id });\n }\n getPublicFaq(subscription_id: number, search_term = '') {\n return this.api.getWithParams(`${FAQS_PATH}`, { subscription_id, search_term });\n }\n\n getPublicFaqById(id: number) {\n return this.api.get(`${FAQS_PATH}/${id}`);\n }\n\n // Organization\n\n getOrganizationSizes(paging?: Paging) {\n return this.api.getWithParams(\n `${ORGANIZATIONS_PATH}/sizes/get_all`,\n HelperService.getPagingParams(paging)\n );\n }\n\n getOrganizationTypes(paging?: Paging) {\n return this.api.getWithParams(\n `${ORGANIZATIONS_PATH}/types/get_all`,\n HelperService.getPagingParams(paging)\n );\n }\n\n getOrganizationIndustries(paging?: Paging) {\n return this.api.getWithParams(\n `${ORGANIZATIONS_PATH}/industries/get_all`,\n HelperService.getPagingParams(paging)\n );\n }\n\n getOrganizationDepartments(paging?: Paging) {\n return this.api.getWithParams(\n `${ORGANIZATIONS_PATH}/departments/get_all`,\n HelperService.getPagingParams(paging)\n );\n }\n\n // Global Config\n\n getAllGlobalSubscriptionConfigs(paging?: Paging) {\n return this.api.getWithParams(\n `${GLOBAL_SUBSCRIPTION_CONFIGS_PATH}/get_all?`,\n HelperService.getPagingParams(paging)\n );\n }\n\n postGlobalSubscriptionConfig(data) {\n return this.api.post(`${GLOBAL_SUBSCRIPTION_CONFIGS_PATH}`, data);\n }\n\n editGlobalSubscriptionConfig(id: number, data) {\n return this.api.post(`${GLOBAL_SUBSCRIPTION_CONFIGS_PATH}/${id}`, data);\n }\n\n getAllGlobalConfigs(paging?: Paging) {\n return this.api.getWithParams(\n `${GLOBAL_CONFIGS_PATH}/get_all?`,\n HelperService.getPagingParams(paging)\n );\n }\n\n // User Login Notification\n\n userLoginNotification(data) {\n return this.api.post(`${USER_LOGIN_NOTIFICATION}`, data);\n }\n\n // Customer Satisfaction\n\n feedbackQuestions(subscription_id: number) {\n return this.api.get(`${FEEDBACK_QUESTIONS_PATH}?subscription_id=${subscription_id}`);\n }\n\n userFeedbacks(data) {\n return this.api.post(`${USER_FEEDBACKS_PATH}`, data);\n }\n\n getAllUserFeedbacks(subscription_id: number, paging?: Paging) {\n return this.api.getWithParams(`${USER_FEEDBACKS_PATH}/get_all`, {\n ...HelperService.getPagingParams(paging),\n subscription_id\n });\n }\n\n getAllCustomerSupport(subscription_id: number, paging?: Paging) {\n return this.api.getWithParams(`${CUSTOMER_SUPPORT_PATH}/get_all?`, {\n ...HelperService.getPagingParams(paging),\n subscription_id\n });\n }\n\n postCustomerSupport(data) {\n const formData = new FormData();\n\n // eslint-disable-next-line no-restricted-syntax\n for (const key in data) {\n if (key in data) {\n formData.append(key, data[key]);\n }\n }\n\n return this.api.post(`${CUSTOMER_SUPPORT_PATH}`, formData);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport isNumber from 'lodash/isNumber';\nimport moment from 'moment';\n\nimport { NgbDateParserFormatter, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\n\nfunction padNumber(value: number) {\n if (isNumber(value)) {\n return `0${value}`.slice(-2);\n }\n\n return '';\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NgbDateCustomParserFormatter extends NgbDateParserFormatter {\n private readonly DELIMITER = '-';\n\n parse(value: string): NgbDateStruct | null {\n if (value) {\n const date = value.trim().split(this.DELIMITER);\n const hasNumber = /\\d/;\n if (!date[1]) {\n return null;\n }\n // convert month name to number\n const month = date[1] ? moment().month(date[1]).format('M') : '';\n // title case\n const str = date[1]\n .split(' ')\n .map(\n ([firstChar, ...rest]) => firstChar.toUpperCase() + rest.join('').toLowerCase()\n )\n .join(' ');\n if (!month || hasNumber.test(date[1]) || !moment.monthsShort().includes(str)) {\n return null;\n }\n return {\n day: Number.parseInt(date[0], 10),\n month: Number.parseInt(month, 10),\n year: Number.parseInt(date[2], 10)\n };\n }\n\n return null;\n }\n\n format(date: NgbDateStruct): string {\n const monthNames = [\n '',\n 'Jan',\n 'Feb',\n 'Mar',\n 'Apr',\n 'May',\n 'Jun',\n 'Jul',\n 'Aug',\n 'Sep',\n 'Oct',\n 'Nov',\n 'Dec'\n ];\n\n if (!date) {\n return '';\n }\n\n const day = isNumber(date.day) ? padNumber(date.day) : '';\n const month = isNumber(date.month) ? monthNames[date.month] : '';\n const year = date.year;\n return `${day}-${month}-${year}`;\n }\n\n dateFormatForPicker(date: string): NgbDateStruct {\n return {\n year: Number(date.substring(0, 4)),\n month: Number(date.substring(5, 7)),\n day: Number(date.substring(8, 10))\n };\n }\n}\n","export class PrimeNgHelper {\n isLoading = false;\n\n static dropdownDataSource(dataSource, label, value) {\n const result = [];\n dataSource.forEach(element => {\n const item = {\n ...element,\n label: element[label],\n value: element[value]\n };\n result.push(item);\n });\n\n return result;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport {\n ADMIN_PATH,\n ADMIN_TAG_CATEGORIES_PATH,\n ADMIN_TAG_PATH,\n Paging\n} from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TagService {\n ADMIN_TAG_PATH = ADMIN_TAG_PATH;\n ADMIN_TAG_CATEGORIES_PATH = ADMIN_TAG_CATEGORIES_PATH;\n ADMIN_PATH = ADMIN_PATH;\n\n constructor(private readonly api: MainApiHttpService) {}\n\n /// //////////////////////\n /// /// Admin Tag Section\n /// //////////////////////\n deleteTagById(id: number, subscription_id: number) {\n return this.api.delete(`${this.ADMIN_TAG_PATH}${id}?subscription_id=${subscription_id}`);\n }\n\n updateTagById(id: number, data) {\n const formData = new FormData();\n\n // eslint-disable-next-line no-restricted-syntax\n for (const key in data) {\n if (key in data) {\n formData.append(key, data[key]);\n }\n }\n\n return this.api.put(`${this.ADMIN_TAG_PATH}${id}`, formData);\n }\n\n addAdminTag(data) {\n const formData = new FormData();\n\n // eslint-disable-next-line no-restricted-syntax\n for (const key in data) {\n if (key in data) {\n formData.append(key, data[key]);\n }\n }\n\n return this.api.post(this.ADMIN_TAG_PATH, formData);\n }\n\n /// //////////////////////\n /// /// Tags API's\n /// //////////////////////\n getTagsByType(tag_type: string, paging: Paging, subscription_id?: number) {\n return this.api.getWithParams('/tags/get_all_tags', {\n tag_type,\n subscription_id,\n ...HelperService.getPagingParams(paging)\n });\n }\n\n getAvailableTagType(subscription_id: number) {\n return this.api.getWithParams('/tags/available_tag_types', { subscription_id });\n }\n\n addTags(data, subscription_id?: number) {\n return this.api.post('/tags', { ...data, subscription_id });\n }\n\n getTagsByEntity(slug: string, tag_entity: string, tag_type: string, subscription_id?: number) {\n return this.api.getWithParams('/tags/get_entity_tags', {\n slug,\n tag_entity,\n tag_type,\n subscription_id,\n ...HelperService.getPagingParams({})\n });\n }\n\n getGroupedSkills(slug: string, tagEntity: string, tagType: string) {\n return this.api.get(\n `/tags/grouped_tags?slug=${slug}&tag_entity=${tagEntity}&tag_type=${tagType}`\n );\n }\n\n /// //////////////////////\n /// ///// Tag Categories\n /// //////////////////////\n getTagCategories(params: Paging, subscription_id: number) {\n return this.api.getWithParams(`${this.ADMIN_TAG_CATEGORIES_PATH}get_all`, {\n subscription_id,\n ...HelperService.getPagingParams(params)\n });\n }\n\n getAllTagCategories(params: Paging, subscription_id: number) {\n return this.api.getWithParams(`tag_categories/get_all`, {\n subscription_id,\n ...HelperService.getPagingParams(params)\n });\n }\n\n deleteTagCategoryById(id: number, subscription_id: number) {\n return this.api.delete(\n `${this.ADMIN_TAG_CATEGORIES_PATH}${id}?subscription_id=${subscription_id}`\n );\n }\n\n updateTagCategoryById(id: number, data, subscription_id: number) {\n return this.api.put(`${this.ADMIN_TAG_CATEGORIES_PATH}${id}`, { ...data, subscription_id });\n }\n\n addTagCategoryById(data, subscription_id: number) {\n return this.api.post(this.ADMIN_TAG_CATEGORIES_PATH, { ...data, subscription_id });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Paging } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TipsService {\n endpoint = '/tips/';\n\n constructor(private readonly api: MainApiHttpService) {}\n\n getAll(subscription_id: number, paging?: Paging) {\n return this.api.getWithParams(`/admin${this.endpoint}/get_all`, {\n ...HelperService.getPagingParams(paging),\n subscription_id\n });\n }\n\n getById(id: number, subscription_id: number) {\n return this.api.getWithParams(`/admin/tips/${id}`, { subscription_id });\n }\n\n saveTips(id: number, data, subscription_id: number) {\n return this.api.put(`/admin/tips/${id}`, { ...data, subscription_id });\n }\n\n addTips(data, subscription_id: number) {\n return this.api.post(`/admin/tips`, { ...data, subscription_id });\n }\n addUserTips(data, subscription_id?: number) {\n return this.api.post(`/users/user_tips`, { ...data, subscription_id });\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WindowService {\n /**\n * redirect to the given url\n * NOTE: this does hard page reload\n */\n replaceUrl(url: string) {\n window.location.href = url;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ADMIN_PATH, Paging } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GroupService {\n private readonly subscription_endpoint = '/subscriptions/';\n private readonly group_communications_endpoint = '/group_communications/';\n private readonly group_definitions_endpoint = '/group_definitions/';\n private readonly groups_endpoint = '/groups/';\n\n ADMIN_PATH = ADMIN_PATH;\n\n constructor(private readonly api: MainApiHttpService) {}\n\n // ------------------------------------------------------------\n // Subscription Service\n // ------------------------------------------------------------\n\n getById(id) {\n return this.api.get(`${this.subscription_endpoint}${id}`);\n }\n\n updateAgent(id: number, agent_id: number, data) {\n return this.api.put(\n `${ADMIN_PATH}${this.subscription_endpoint}${id}/agents/${agent_id}`,\n data\n );\n }\n\n getSubscriptionMembers(id: number, paging?: Paging) {\n return this.api.getWithParams(\n `${this.subscription_endpoint}${id}/members`,\n HelperService.getPagingParams(paging)\n );\n }\n\n // ------------------------------------------------------------\n // Group Service\n // ------------------------------------------------------------\n\n getGroupDefinitionById(id: number) {\n return this.api.get(`${this.group_definitions_endpoint}${id}`);\n }\n\n groupDefinitionGetAll(related_entity_id: number, related_entity_type: string, paging?: Paging) {\n return this.api.getWithParams(`${this.group_definitions_endpoint}get_all`, {\n related_entity_id,\n related_entity_type,\n ...HelperService.getPagingParams(paging)\n });\n }\n\n groupDefinitions(data) {\n return this.api.post(`${this.group_definitions_endpoint}`, data);\n }\n\n groupDefinitionsDelete(id: number) {\n return this.api.delete(`${this.group_definitions_endpoint}${id}`);\n }\n\n groupDefinitionsUpdate(id: number, data) {\n return this.api.put(`${this.group_definitions_endpoint}${id}`, data);\n }\n\n // ------------------------------------------------------------\n // Group Service\n // ------------------------------------------------------------\n\n postGroup(data) {\n return this.api.post(this.groups_endpoint, data);\n }\n\n getGroup(id: number) {\n return this.api.get(`${this.groups_endpoint}${id}`);\n }\n\n updateGroup(id: number, data) {\n return this.api.put(`${this.groups_endpoint}${id}`, data);\n }\n\n deleteGroup(id: number) {\n return this.api.delete(`${this.groups_endpoint}${id}`);\n }\n\n addEntityGroup(id: number, data) {\n return this.api.post(`${this.groups_endpoint}${id}/add_entities`, data);\n }\n\n deleteEntityGroup(entityId: number, related_entity_ids, related_entity_type: string) {\n return this.api.delete(\n `${this.groups_endpoint}${entityId}/remove_entity?related_entity_ids=${related_entity_ids}&related_entity_type=${related_entity_type}`\n );\n }\n\n getEntityGroup(id: number) {\n return this.api.get(`/groups/${id}`);\n }\n\n // ------------------------------------------------------------\n // Group Communication Service\n // ------------------------------------------------------------\n\n postCommunications(data) {\n return this.api.post(this.group_communications_endpoint, data);\n }\n\n editCommunications(id: number, data) {\n return this.api.put(`${this.group_communications_endpoint}${id}`, data);\n }\n\n getCommunicationDetails(id: number) {\n return this.api.get(`${this.group_communications_endpoint}${id}`);\n }\n\n deleteCommunications(id: number) {\n return this.api.delete(`${this.group_communications_endpoint}${id}`);\n }\n\n getAllCommunications(\n subscription_id: number,\n communication_type: string,\n group_id: number | string,\n paging?: Paging\n ) {\n return this.api.getWithParams(`${this.group_communications_endpoint}get_all`, {\n subscription_id,\n communication_type,\n group_id,\n ...HelperService.getPagingParams(paging)\n });\n }\n\n getAllCommunicationsWithOutGroupId(\n subscription_id: number,\n communication_type: string,\n paging?: Paging\n ) {\n return this.api.getWithParams(`${this.group_communications_endpoint}get_all`, {\n subscription_id,\n communication_type,\n ...HelperService.getPagingParams(paging)\n });\n }\n\n // ------------------------------------------------------------\n // Group Communication Files Service\n // ------------------------------------------------------------\n\n postCommunicationFiles(data) {\n return this.api.post(`/group_communication_files`, data);\n }\n\n deleteCommunicationFiles(id: number) {\n return this.api.delete(`/group_communication_files/${id}`);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { QUALIFICATIONS_PATH } from '@posiwise/common-utilities';\n\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class QualificationService {\n private readonly endPoint = QUALIFICATIONS_PATH;\n\n constructor(private readonly api: MainApiHttpService) {}\n\n addQualifications(data) {\n return this.api.post(this.endPoint, data);\n }\n\n updateQualifications(id: number, data) {\n return this.api.put(`${this.endPoint}/${id}`, data);\n }\n\n deleteQualifications(id: number) {\n return this.api.delete(`${this.endPoint}/${id}`);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DashboardService {\n constructor(private readonly api: MainApiHttpService) {}\n\n search(keyword: string, subscriptionId: number) {\n return this.api.get(\n `/search/global_search?search_term=${keyword}&subscription_id=${subscriptionId}`\n );\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { BehaviorSubject, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { MainApiHttpService } from './main-api-http.service';\nimport { PermissionService } from './permission.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MailBoxService {\n private readonly endpoint = '/mailbox/';\n private readonly checkUnreadCountSubject = new BehaviorSubject<number>(0);\n\n totalUnreadCount$ = this.checkUnreadCountSubject.asObservable();\n\n constructor(private readonly http: MainApiHttpService) {}\n\n getMessages(conversation_id, page_number = 1, page_size = 10) {\n return conversation_id\n ? this.http.get(\n `${this.endpoint}${conversation_id}/messages?page=${page_number}&page_size=${page_size}`\n )\n : of([]);\n }\n\n getConversations() {\n return this.http\n .get(\n `${this.endpoint}conversations?subscription_id=${PermissionService.selectedSubscription.id}`\n )\n .pipe(\n map(c => {\n const count = c\n .map(x => x?.unread_count)\n .reduce((a: number, b: number) => a + b, 0);\n if (count > -1) {\n this.checkUnreadCountSubject.next(count);\n }\n\n return c;\n })\n );\n }\n\n postMessage(data) {\n return this.http.post(`${this.endpoint}compose`, data);\n }\n\n markAsRead(conversation_id) {\n return this.http.post(`${this.endpoint}read`, { conversation_id });\n }\n\n decrementUnreadCount(count: number) {\n const newCount = +this.checkUnreadCountSubject.getValue() - count;\n if (newCount > -1) {\n this.checkUnreadCountSubject.next(newCount);\n }\n }\n\n incrementUnreadCount(count: number) {\n const newCount = +this.checkUnreadCountSubject.getValue() + count;\n if (newCount > -1) {\n this.checkUnreadCountSubject.next(newCount);\n }\n }\n\n deleteMessage(conversationId, messageId) {\n return this.http.delete(\n `${this.endpoint}delete_message?conversation_id=${conversationId}&message_id=${messageId}`\n );\n }\n\n getRecipient(params = {}) {\n return this.http.getWithParams(`${this.endpoint}available_recipients`, params);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { AppConfigService } from '@posiwise/app-config-service';\n\nimport { Observable } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\nimport { webSocket, WebSocketSubject } from 'rxjs/webSocket';\n\nimport { AuthService } from './auth.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WebsocketService {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private webSocketSubject: WebSocketSubject<any>;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n webSocket$: Observable<any>;\n\n constructor(\n private readonly appConfigService: AppConfigService,\n private readonly authService: AuthService\n ) {\n this.appConfigService.appConfig$.subscribe(config => {\n const socketLink = config['links'].socket_link;\n const url = `${socketLink}/websockets/websocket?session_token=${btoa(\n this.authService.getToken()\n )}`;\n this.webSocketSubject = webSocket(url);\n this.webSocket$ = this.webSocketSubject.asObservable().pipe(distinctUntilChanged());\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Paging, SOCKET_TYPE } from '@posiwise/common-utilities';\n\nimport { BehaviorSubject } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { MainApiHttpService } from './main-api-http.service';\nimport { WebsocketService } from './socket.service';\nimport { CustomToastService } from './toast.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NotificationService {\n private readonly notificationSubject$ = new BehaviorSubject<string[]>([]);\n\n endpoint = 'notes_read';\n\n constructor(\n private readonly api: MainApiHttpService,\n private readonly toastrService: CustomToastService,\n private readonly socketService: WebsocketService\n ) {}\n\n getNotifications(paging?: Paging) {\n return this.api.getWithParams(`/notes?show_on_dashboard=true`, {\n ...paging\n });\n }\n\n getDismissedNotifications(paging?: Paging) {\n return this.api.getWithParams(`/notes?dismissed=true`, {\n ...paging\n });\n }\n\n showNotifications(data) {\n this.notificationSubject$.next(data);\n }\n\n readNotifications() {\n return this.api.put('/user/notes_read', {});\n }\n\n dismissNotification(id: number) {\n const formData = new FormData();\n formData.append('dismissed', 'true');\n formData.append('id', String(id));\n\n return this.api.put(`/notes/${id}/dismiss`, formData).pipe(map(res => JSON.stringify(res)));\n }\n\n deleteNotifications(id: number) {\n return this.api.delete(`/notes/${id}`);\n }\n\n reinstateNotification(id: number) {\n return this.api.put(`/notes/${id}/reinstate`);\n }\n\n notiWebSocket() {\n return this.socketService.webSocket$.pipe(\n map(response => {\n if (response.event === SOCKET_TYPE.NOTI) {\n const notification = response.data;\n // show the toastr for noti which is marked as show_on_toast to true\n if (notification?.show_on_toast) {\n this.toastrService.showToastrOnType(\n notification.toast_type,\n notification.content\n );\n }\n\n return notification;\n }\n\n return null;\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DataService {\n private readonly messageSource = new BehaviorSubject<number>(0);\n\n currentMessage = this.messageSource.asObservable();\n\n changeMessage(message: number) {\n this.messageSource.next(message);\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NumberPickerService {\n /**\n * Min picker value\n */\n min = 0;\n\n /**\n * Max picker value\n */\n max = 100;\n\n /**\n * Pick step value\n */\n step = 1;\n\n /**\n * Delay for start picking values\n */\n pickStartAfter = 500;\n\n /**\n * Delay between each pick\n */\n pickTimer = 100;\n\n /**\n * value precision\n */\n precision = 1;\n\n /**\n * Initial picker value\n */\n value = null;\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { ErrorHandler, Injectable } from '@angular/core';\n\nimport { AppConfigService } from '@posiwise/app-config-service';\nimport { User } from '@posiwise/common-utilities';\n\nimport { StatusCodes } from 'http-status-codes';\nimport { fromError } from 'stacktrace-js';\n\nimport {\n BrowserOptions,\n captureException,\n createErrorHandler,\n init,\n withScope\n} from '@sentry/angular';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SentryErrorHandler implements ErrorHandler {\n private static user: Partial<User>;\n private static sentryInitialized = false;\n private static unhandledRejectionListenerAttached = false;\n\n constructor(private readonly appConfigService: AppConfigService) {}\n\n private async initializeSentryAsync(): Promise<void> {\n if (SentryErrorHandler.sentryInitialized) {\n // Sentry is already initialized, no need to do it again\n return;\n }\n createErrorHandler();\n\n const config = await this.getSentryConfigAsync();\n\n this.appConfigService.appConfig$.subscribe(env => {\n if (env?.integrations?.sentry_config) {\n init({ ...config, ...env.integrations.sentry_config });\n SentryErrorHandler.sentryInitialized = true;\n\n // Add a global listener for unhandled promise rejections (once)\n if (!SentryErrorHandler.unhandledRejectionListenerAttached) {\n window.addEventListener(\n 'unhandledrejection',\n (event: PromiseRejectionEvent) => {\n this.handlePromiseRejection(event);\n }\n );\n SentryErrorHandler.unhandledRejectionListenerAttached = true;\n }\n }\n });\n }\n\n private async getSentryConfigAsync(): Promise<BrowserOptions> {\n return new Promise(resolve => {\n const environment =\n window.location.host?.includes('dev') || window.location.host?.includes('localhost')\n ? 'development'\n : 'production';\n\n const config: BrowserOptions = {\n dsn: null,\n // NOTE: We intentionally do not enable Performance Tracing here.\n // The previous integration (`BrowserTracing` + `routingInstrumentation`) was part of\n // the legacy `@sentry/angular-ivy` API and isn't available in `@sentry/angular` v10.\n beforeSend(event, hint) {\n const initialExceptionValuesLength = Array.isArray(event?.exception?.values)\n ? event.exception.values.length\n : undefined;\n\n const safeIncludes = (val: unknown, needle: string) =>\n typeof val === 'string' && val.includes(needle);\n\n // Check if the event is of type CloseEvent and ignore it\n if (event?.exception?.values) {\n event.exception.values = event.exception.values.filter(value => {\n // Update the condition based on the actual structure of the event\n return !(\n value.type === 'CloseEvent' ||\n safeIncludes(value.value, 'CloseEvent')\n );\n });\n }\n\n if (event?.exception?.values) {\n event.exception.values = event.exception.values.filter(value => {\n // Check for the specific error message and ignore it\n return !(\n value.type === 'Error' &&\n safeIncludes(value.value, 'ResizeObserver loop completed')\n );\n });\n }\n\n // originates from vendor.js file\n if (event?.exception?.values) {\n const isJsonParsingError = event.exception.values.some(value => {\n return (\n value.type === 'SyntaxError' &&\n value?.value?.includes(\"expected ':' after property name in\")\n );\n });\n\n if (isJsonParsingError) {\n return null;\n }\n }\n\n // Check if the event is a ChunkLoadError and ignore it (it could be because of poor network)\n if (event?.exception?.values) {\n event.exception.values = event.exception.values.filter(value => {\n return !(\n value.type === 'ChunkLoadError' ||\n safeIncludes(value.value, 'ChunkLoadError: Loading chunk')\n );\n });\n }\n\n // Check if the event is a script loading error and ignore it\n if (event?.exception?.values) {\n event.exception.values = event.exception.values.filter(value => {\n return !(\n value.type === 'Error' &&\n safeIncludes(value.value, 'Could not load \"util\"')\n );\n });\n }\n\n // Check if the event is a timeout error and ignore it\n if (event?.exception?.values) {\n event.exception.values = event.exception.values.filter(value => {\n return !(\n value.type === 'Error' &&\n safeIncludes(value.value, 'Error loading plotly.js library from')\n );\n });\n }\n\n // Check if the event is related to cross-origin frame access\n if (event?.exception?.values) {\n const isCrossOriginFrameError = event.exception.values.some(value => {\n return (\n value.type === 'SecurityError' &&\n value?.value?.includes(\n \"Failed to read a named property 'navigator' from 'Window': Blocked a frame with origin\"\n )\n );\n });\n\n if (isCrossOriginFrameError) {\n // Exclude cross-origin frame errors from being reported to Sentry\n return null;\n }\n }\n\n // Check if it's a non-error exception\n const isNonErrorException =\n event?.exception?.values?.[0]?.value?.startsWith(\n 'Non-Error exception captured'\n ) ??\n (hint?.originalException as Error)?.message?.startsWith(\n 'Non-Error exception captured'\n );\n\n if (isNonErrorException) {\n // We want to ignore those kinds of errors\n return null;\n }\n\n // If we started with exception values but filtered them all out, drop the event.\n // Otherwise Sentry will group it as an \"unlabeled event\" and spam the issue stream.\n if (\n typeof initialExceptionValuesLength === 'number' &&\n initialExceptionValuesLength > 0 &&\n Array.isArray(event?.exception?.values) &&\n event.exception.values.length === 0\n ) {\n return null;\n }\n\n return event;\n },\n denyUrls: [/drift.*\\.js/i, /analytics.*\\.js/i, /polyfills.*\\.js/i, /vendor.*\\.js/i],\n environment,\n\n // We ignore Server Errors. We have to define here since Angular\n // http client uses setTimeout to detect http call progress.\n // And when the call fails, it throws an exception inside that timeout\n // that bubbles up higher to the main Angular's error handler.\n ignoreErrors: [\n 'top.GLOBALS',\n 'ResizeObserver loop completed with undelivered notifications'\n ]\n };\n resolve(config);\n });\n }\n initializeUser(user: Partial<User>) {\n SentryErrorHandler.user = {\n id: user?.id,\n name: user?.first_name,\n email: user?.email\n } as Partial<User>;\n }\n\n private handlePromiseRejection(event: PromiseRejectionEvent): void {\n const error = event.reason;\n this.logToSentry(error);\n this.logToConsole(error);\n }\n\n handleError(incomingError: HttpErrorResponse | Error) {\n // in case of 401, return no exception\n if (incomingError instanceof HttpErrorResponse) {\n if (\n incomingError.status === StatusCodes.UNAUTHORIZED ||\n incomingError.status === StatusCodes.FORBIDDEN\n ) {\n // Handle 401 error (e.g., redirect to login page)\n console.error('Unauthorized request:', incomingError);\n return;\n }\n\n if (incomingError.status === StatusCodes.UNPROCESSABLE_ENTITY) {\n // Handle 422 error\n console.error('UNPROCESSABLE_ENTITY request:', incomingError);\n return;\n }\n\n if (incomingError.status === 433) {\n // Handle 433 error\n console.error('over message quota:', incomingError);\n return;\n }\n }\n this.handleExceptionError(incomingError);\n }\n\n handleExceptionError(incomingError) {\n if (incomingError) {\n let error = incomingError; // The actual error to log\n while ('originalError' in error && error.originalError instanceof Error) {\n this.logToConsole(error);\n error = error.originalError;\n }\n this.extractOriginalError(error, incomingError);\n }\n }\n\n extractOriginalError(error, incomingError) {\n // Exclude specific errors\n if (error instanceof HttpErrorResponse) {\n if (error.status === StatusCodes.NOT_FOUND) {\n console.warn('Excluded 404 error:', error);\n return; // Skip logging to Sentry\n }\n if (error.status === 0 && error.statusText === 'Unknown Error') {\n // Handle network-related errors differently or suppress them\n console.warn('Network-related error:', error);\n return; // Don't rethrow the error\n }\n const message = this.getErrorMessage(error);\n error = new Error(`Got HttpErrorResponse on URL ${error.url} message: ${message}`);\n }\n\n this.handleNonHttpErrorResponse(error);\n\n // Ensure all errors have a proper message\n this.errorMessageFormatter(error);\n\n // Existing Sentry initialization logic\n this.sentryInitialization(error, incomingError);\n }\n\n getErrorMessage(error): string {\n let { message } = error;\n if (!message) {\n try {\n message = JSON.stringify(error);\n } catch (e) {\n message =\n typeof error === 'object' && error !== null\n ? JSON.stringify(error)\n : error.toString();\n console.log(e);\n }\n }\n return message;\n }\n\n handleNonHttpErrorResponse(error) {\n if (typeof error === 'object' && 'message' in error) {\n if (error instanceof HttpErrorResponse) {\n if (error.status !== StatusCodes.UNAUTHORIZED) {\n error = new Error(`Object captured as exception: ${error}`); // NOSONAR\n }\n }\n // Exclude reporting 401 errors\n }\n }\n\n errorMessageFormatter(error) {\n if (!(error instanceof Error) || !error.message) {\n const defaultMessage = 'Captured an unlabeled event';\n\n if (error && 'isTrusted' in error) {\n console.warn('Ignored isTrusted browser event:', error);\n return;\n }\n\n const errorDetails = error ? JSON.stringify(error) : 'No more additional error info';\n const enhancedErrorMessage = `${defaultMessage} | Original error detail: ${errorDetails}`;\n error = new Error(enhancedErrorMessage); // NOSONAR\n }\n }\n\n sentryInitialization(error, incomingError) {\n if (!SentryErrorHandler.sentryInitialized) {\n this.initializeSentryAsync()\n .then(() => {\n this.logToSentry(error);\n throw incomingError;\n })\n .catch(err => {\n console.error('Error initializing Sentry:', err);\n this.logToConsole(error);\n });\n } else {\n this.logToSentry(error);\n }\n }\n\n private logToSentry(error: Error) {\n try {\n const user = SentryErrorHandler.user as Error;\n this.scopeWithSentry(error, user);\n } catch (e) {\n console.error('Unable to log the error to Sentry. An exception occurred:');\n console.error(e);\n }\n }\n\n private scopeWithSentry(error, user) {\n withScope(scope => {\n // Appends user details for sentry log\n scope.setUser({\n ...user\n });\n\n // Ensure error is properly formatted\n if (error instanceof Error && error.message) {\n captureException(error);\n } else if (typeof error === 'object' && error !== null) {\n this.handleNonStandardError(error);\n } else {\n this.handleUnlabeledEvent(error);\n }\n });\n }\n\n private handleNonStandardError(error: object) {\n if ('isTrusted' in error) {\n return;\n }\n // If it's an object but not a standard Error, attempt to log its properties safely\n let errorMessage = 'Captured non-standard error with no message'; // NOSONAR\n\n // Try to extract any message-like property safely\n if ('message' in error) {\n let messageText = '';\n\n if (typeof error.message === 'object' && error.message !== null) {\n messageText = JSON.stringify(error.message);\n } else if (typeof error.message === 'string') {\n messageText = error.message;\n }\n\n errorMessage = `Error message: ${messageText}`;\n } else {\n // Attempt to capture key properties safely\n try {\n errorMessage = `Captured non-standard error: ${JSON.stringify(error, Object.getOwnPropertyNames(error))}`;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (jsonError: any) {\n errorMessage = `Captured non-standard error with serialization issue: ${jsonError.message}`;\n }\n }\n\n // Create a new Error object with the enhanced message\n const errorObject = new Error(errorMessage);\n captureException(errorObject);\n }\n\n private handleUnlabeledEvent(error) {\n const defaultMessage = 'Captured an unlabeled event';\n\n if (error && 'isTrusted' in error) {\n console.warn('Ignored isTrusted browser event:', error);\n return;\n }\n\n const errorDetails = error ? JSON.stringify(error) : 'No additional error info';\n const enhancedErrorMessage = `${defaultMessage} | Original error details: ${errorDetails}`;\n const enhancedError = new Error(enhancedErrorMessage);\n\n captureException(enhancedError);\n }\n\n private logToConsole(error: Error) {\n // Attempt to print in the console\n try {\n // We use StackTrace to try getting a good stacktrace. If it fails, just print the error\n const message = error.message ? error.message : error.toString();\n const url = window.location.href;\n fromError(error instanceof Error ? error : new Error('Non-Error Object')).then(\n stackFrames => {\n const stackString = stackFrames.splice(0, 20).map(sf => sf.toString());\n\n console.error({ message, url, stack: stackString, error });\n }\n );\n } catch (e) {\n console.error(error, e);\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LogoCacheService {\n private cache: { [url: string]: string } = {};\n private loadingUrls: { [url: string]: boolean } = {};\n\n constructor() {\n this.loadCache();\n }\n\n getLogo(url: string): string {\n if (this.cache[url]) {\n // If the URL is in the cache, return the base64-encoded image data directly\n return this.cache[url];\n }\n\n // If the URL is already in the process of loading, return the default image\n if (this.loadingUrls[url]) {\n return 'assets/img/icons/company.png';\n }\n\n // Mark the URL as in progress to prevent concurrent requests for the same URL\n this.loadingUrls[url] = true;\n\n // Attempt to load the image\n const img = new Image();\n img.crossOrigin = 'Anonymous'; // Set crossOrigin to handle CORS issues\n img.src = url;\n img.onload = () => {\n // If the image loads successfully (HTTP 200), update the cache with base64 data\n const canvas = document.createElement('canvas');\n canvas.width = img.width;\n canvas.height = img.height;\n const ctx = canvas.getContext('2d');\n ctx.drawImage(img, 0, 0);\n const base64Data = canvas.toDataURL('image/png');\n this.cache[url] = base64Data;\n this.saveCache();\n // Remove the URL from the in-progress list\n delete this.loadingUrls[url];\n };\n img.onerror = () => {\n // If the image fails to load, update the cache with the default image\n this.cache[url] = 'assets/img/icons/company.png';\n this.saveCache();\n // Remove the URL from the in-progress list\n delete this.loadingUrls[url];\n };\n\n // Return the default image while the image is being loaded\n return 'assets/img/icons/company.png';\n }\n\n private saveCache() {\n localStorage.setItem('Clearbit_Logos_Cache', JSON.stringify(this.cache));\n }\n\n private loadCache() {\n const cacheData = localStorage.getItem('Clearbit_Logos_Cache');\n if (cacheData) {\n this.cache = JSON.parse(cacheData);\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ScriptLoaderService } from './script-loader.service';\nimport { TipsService } from './tips.service';\n\ninterface Tour {\n id: string;\n steps: TourStep[];\n}\n\ninterface TourStep {\n target: string;\n title: string;\n content: string;\n placement: string;\n arrowOffset?: number;\n xOffset?: number;\n yOffset?: number;\n isHTML?: boolean;\n showPrevButton?: boolean;\n}\n\ndeclare let window: {\n hopscotch: {\n startTour: (tour: Tour) => void;\n endTour: () => void;\n nextStep: () => void;\n showStep: (stepNumber: number) => void;\n };\n};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HopscotchService {\n private readonly tour: Tour = {\n id: '',\n steps: []\n };\n\n constructor(\n private readonly scriptLoader: ScriptLoaderService,\n private readonly tipService: TipsService\n ) {}\n\n initializeTour(tourId: string, steps: TourStep[], tip_data, subscription_id?: number): void {\n this.tour.id = tourId;\n this.tour.steps = steps;\n\n this.scriptLoader.loadScript('head', '/assets/js/hopscotch.min.js', true).then(() => {\n window.hopscotch?.startTour(this.tour);\n // eslint-disable-next-line func-names\n window.hopscotch.nextStep = function () {\n const stepNumber = $('.hopscotch-bubble-number').text();\n\n if (this.tour.steps.length === Number(stepNumber)) {\n this.tipService.addUserTips(tip_data, subscription_id).subscribe();\n window?.hopscotch?.endTour();\n } else {\n window.hopscotch.showStep(Number(stepNumber));\n }\n }.bind(this);\n });\n }\n\n endTour(): void {\n if (window?.hopscotch) {\n window?.hopscotch?.endTour();\n }\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable, Injector, isDevMode } from '@angular/core';\n\nimport { AppConfigService } from '@posiwise/app-config-service';\nimport { BRAIN_API_PREFIX } from '@posiwise/common-utilities';\n\nimport { BaseHttpService } from './base-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BrainApiHttpService extends BaseHttpService {\n constructor(http: HttpClient, injector: Injector) {\n super(http, injector);\n }\n\n override getConfig(): void {\n this.injector.get(AppConfigService).appConfig$.subscribe(config => {\n this.baseUrl = isDevMode() ? BRAIN_API_PREFIX : config?.['links']['brain_api'] ?? '';\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { BrainApiHttpService } from './brain-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BrainApiService {\n constructor(private readonly api: BrainApiHttpService) {}\n\n invokeModel(payload: {\n model_name: 'claude' | 'deepseek';\n prompt: string;\n session_id?: string;\n max_tokens?: number;\n temperature?: number;\n }) {\n return this.api.post('/bedrock/invoke', payload);\n }\n}\n","/*\n * Public API Surface of pw-services\n */\nexport * from './lib/google-analytics.service';\nexport * from './lib/script-loader.service';\nexport * from './lib/base-http.service';\nexport * from './lib/common-services.module';\nexport * from './lib/seo.service';\nexport * from './lib/main-api-http.service';\nexport * from './lib/permission.service';\nexport * from './lib/toast.service';\nexport * from './lib/auth.service';\nexport * from './lib/local-storage.service';\nexport * from './lib/secure-token-storage.service';\nexport * from './lib/integrations-api-http.service';\nexport * from './lib/link-loader.service';\nexport * from './lib/user.service';\nexport * from './lib/custom-preloading.service';\nexport * from './lib/ab-test.service';\nexport * from './lib/geo.service';\nexport * from './lib/profile.service';\nexport * from './lib/subscription.service';\nexport * from './lib/product.service';\nexport * from './lib/validation.service';\nexport * from './lib/form-helper.service';\nexport * from './lib/ahoy.service';\nexport * from './lib/common.service';\nexport * from './lib/date-formatter.service';\nexport * from './lib/primeNgHelper';\nexport * from './lib/tag.service';\nexport * from './lib/tips.service';\nexport * from './lib/window.service';\nexport * from './lib/group.service';\nexport * from './lib/qualification.service';\nexport * from './lib/dashboard.service';\nexport * from './lib/mailbox.service';\nexport * from './lib/notification.service';\nexport * from './lib/socket.service';\nexport * from './lib/effects/user.effects';\nexport * from './lib/data.service';\nexport * from './lib/number-picker.service';\nexport * from './lib/sentry.service';\nexport * from './lib/logo-caching.service';\nexport * from './lib/hopscotch.service';\nexport * from './lib/brain.service';\nexport * from './lib/brain-api-http.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2.ScriptLoaderService","i3","i1.MainApiHttpService","i4","i5.ProfileService","i6.CustomToastService","i1.UserService","i1.PermissionService","i2","tap","i2.AuthService","i2.CustomToastService","i3.WebsocketService","i1.ScriptLoaderService","i2.TipsService","i1.BrainApiHttpService"],"mappings":"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"}
1
+ {"version":3,"file":"posiwise-common-services.mjs","sources":["../../../../libs/common-services/src/lib/script-loader.service.ts","../../../../libs/common-services/src/lib/google-analytics.service.ts","../../../../libs/common-services/src/lib/toast.service.ts","../../../../libs/common-services/src/lib/base-http.service.ts","../../../../libs/common-services/src/lib/integrations-api-http.service.ts","../../../../libs/common-services/src/lib/local-storage.service.ts","../../../../libs/common-services/src/lib/main-api-http.service.ts","../../../../libs/common-services/src/lib/secure-token-storage.service.ts","../../../../libs/common-services/src/lib/profile.service.ts","../../../../libs/common-services/src/lib/user.service.ts","../../../../libs/common-services/src/lib/auth.service.ts","../../../../libs/common-services/src/lib/effects/user.effects.ts","../../../../libs/common-services/src/lib/common-services.module.ts","../../../../libs/common-services/src/lib/seo.service.ts","../../../../libs/common-services/src/lib/permission.service.ts","../../../../libs/common-services/src/lib/link-loader.service.ts","../../../../libs/common-services/src/lib/custom-preloading.service.ts","../../../../libs/common-services/src/lib/ab-test.service.ts","../../../../libs/common-services/src/lib/geo.service.ts","../../../../libs/common-services/src/lib/subscription.service.ts","../../../../libs/common-services/src/lib/product.service.ts","../../../../libs/common-services/src/lib/validation.service.ts","../../../../libs/common-services/src/lib/form-helper.service.ts","../../../../libs/common-services/src/lib/ahoy.service.ts","../../../../libs/common-services/src/lib/common.service.ts","../../../../libs/common-services/src/lib/date-formatter.service.ts","../../../../libs/common-services/src/lib/primeNgHelper.ts","../../../../libs/common-services/src/lib/tag.service.ts","../../../../libs/common-services/src/lib/tips.service.ts","../../../../libs/common-services/src/lib/window.service.ts","../../../../libs/common-services/src/lib/group.service.ts","../../../../libs/common-services/src/lib/qualification.service.ts","../../../../libs/common-services/src/lib/dashboard.service.ts","../../../../libs/common-services/src/lib/mailbox.service.ts","../../../../libs/common-services/src/lib/socket.service.ts","../../../../libs/common-services/src/lib/notification.service.ts","../../../../libs/common-services/src/lib/data.service.ts","../../../../libs/common-services/src/lib/number-picker.service.ts","../../../../libs/common-services/src/lib/sentry.service.ts","../../../../libs/common-services/src/lib/logo-caching.service.ts","../../../../libs/common-services/src/lib/hopscotch.service.ts","../../../../libs/common-services/src/lib/brain-api-http.service.ts","../../../../libs/common-services/src/lib/brain.service.ts","../../../../libs/common-services/src/index.ts","../../../../libs/common-services/src/posiwise-common-services.ts"],"sourcesContent":["import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable } from '@angular/core';\n\ninterface Script {\n src: string;\n loaded: boolean;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ScriptLoaderService {\n private _scripts: { [key: string]: Script } = {};\n\n constructor(@Inject(DOCUMENT) private readonly document: Document) {}\n\n private getCspNonce(): string | undefined {\n // Prefer explicit global set by server-side renderer\n const w = globalThis as unknown as { __cspNonce?: string };\n if (w?.__cspNonce) return w.__cspNonce;\n\n // Fallback: try to read nonce from any existing script tag\n const anyScript = this.document.querySelector('script[nonce]') as HTMLScriptElement | null;\n const n = anyScript?.nonce || anyScript?.getAttribute('nonce') || undefined;\n return n || undefined;\n }\n\n load(tag, ...scripts: string[]) {\n scripts.forEach((src: string) => {\n if (!this._scripts[src]) {\n this._scripts[src] = { src, loaded: false };\n }\n });\n\n const promises: object[] = [];\n scripts.forEach(src => promises.push(this.loadScript(tag, src)));\n\n return Promise.all(promises);\n }\n\n loadScripts(tag, scripts, loadOnce?: boolean) {\n loadOnce = loadOnce || false;\n\n scripts.forEach((script: string) => {\n if (!this._scripts[script]) {\n this._scripts[script] = { src: script, loaded: false };\n }\n });\n\n const promises: object[] = [];\n scripts.forEach(script => promises.push(this.loadScript(tag, script, loadOnce)));\n\n return Promise.all(promises);\n }\n\n loadScript(tag, src: string, loadOnce?: boolean) {\n const isLoad = loadOnce || false;\n\n if (!this._scripts[src]) {\n this._scripts[src] = { src, loaded: false };\n }\n\n return new Promise((resolve, _reject) => {\n // resolve if already loaded\n if (this._scripts[src].loaded && isLoad) {\n // NOSONAR\n resolve({ src, loaded: true });\n } else {\n // load script tag\n const scriptTag = document.createElement('script');\n scriptTag.type = 'text/javascript';\n scriptTag.src = this._scripts[src].src;\n const nonce = this.getCspNonce();\n if (nonce) scriptTag.nonce = nonce;\n\n scriptTag.onload = () => {\n this._scripts[src].loaded = true;\n resolve({ src, loaded: true });\n };\n\n scriptTag.onerror = () => {\n // Handle script loading error (if needed)\n console.error(`Failed to load script: ${src}`);\n resolve({ src, loaded: false });\n };\n\n document.getElementsByTagName(tag)[0].appendChild(scriptTag);\n }\n });\n }\n\n loadStyle(styleUrl: string) {\n const head = this.document.getElementsByTagName('head')[0];\n\n const style = this.document.createElement('link');\n style.id = 'client-theme';\n style.rel = 'stylesheet';\n style.href = styleUrl;\n\n head.appendChild(style);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\n\nimport { AppConfigService } from '@posiwise/app-config-service';\n\nimport { Subscription } from 'rxjs';\n\nimport { ScriptLoaderService } from './script-loader.service';\n\ndeclare global {\n interface Window {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ga: any;\n }\n}\n\n@Injectable()\nexport class GoogleAnalyticsService {\n private static trackingId: string;\n private subscription: Subscription;\n\n constructor(\n private readonly router: Router,\n private readonly scriptLoader: ScriptLoaderService,\n private readonly appConfigService: AppConfigService\n ) {}\n\n private isGaAvailable(): boolean {\n return typeof window.ga !== 'undefined';\n }\n\n loadGScript(): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n if (this.isGaAvailable()) {\n resolve(); // GA is already loaded, no need to load again.\n return;\n }\n this.appConfigService.appConfig$.subscribe(config => {\n this.scriptLoader\n .loadScript('head', 'https://www.google-analytics.com/analytics.js', true)\n .then(() => {\n this.pushArgumentsGA();\n window.ga.l = Date.now();\n GoogleAnalyticsService.trackingId = config.integrations.google_analytics;\n window.ga('create', GoogleAnalyticsService.trackingId, 'auto');\n resolve(); // Resolve the promise once the script is loaded and ga is initialized\n })\n .catch(error => {\n console.error('Error loading Google Analytics script:', error);\n reject(error instanceof Error ? error : new Error(error));\n });\n });\n });\n }\n\n pushArgumentsGA() {\n if (typeof window.ga === 'undefined') {\n window.ga = function (...args) {\n window.ga.q ??= [];\n window.ga.q.push(args);\n };\n window.ga.q = [];\n window.ga.l = +new Date();\n }\n }\n\n private addOneTimeTrackingListeners(url: string): void {\n const handler = () => {\n if (this.isGaAvailable()) {\n window.ga('set', 'page', url);\n window.ga('send', 'pageview');\n }\n };\n\n ['mousemove', 'scroll', 'touchstart'].forEach(eventName => {\n window.addEventListener(eventName, handler, { once: true });\n });\n }\n\n subscribe() {\n this.subscription ??= this.router.events.subscribe(e => {\n if (e instanceof NavigationEnd) {\n // Ensure that the Google Analytics script is loaded before using the ga function\n this.loadGScript().then(() => {\n try {\n this.addOneTimeTrackingListeners(e.urlAfterRedirects);\n } catch {\n console.error('Tracking not found -- make sure you installed the scripts');\n }\n });\n }\n });\n }\n\n /**\n * Emit google analytics event\n * Fire event example:\n * this.sendEvent(\"testCategory\", \"testAction\", \"testLabel\", 10);\n * @param {string} eventCategory\n * @param {string} eventAction\n * @param {string} eventLabel\n * @param {number} eventValue\n */\n sendEvent(\n eventCategory: string,\n eventAction: string,\n eventLabel: string = null,\n eventValue: number = null\n ) {\n if (this.isGaAvailable()) {\n window.ga('send', 'event', {\n eventCategory,\n eventAction,\n eventLabel,\n eventValue\n });\n } else {\n console.error('Google Analytics tracking not available.');\n }\n }\n\n /**\n * Enable UserId Tracking for Google Analytics\n * @param user\n */\n setUserContext(user) {\n if (GoogleAnalyticsService.trackingId) {\n if (this.isGaAvailable()) {\n window.ga('set', 'userId', user?.id);\n }\n }\n }\n\n unsubscribe() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { IndividualConfig, ToastrService } from 'ngx-toastr';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CustomToastService {\n constructor(private readonly toastr: ToastrService) {}\n\n success(message: string, title = '', options: Partial<IndividualConfig> = {}) {\n if (message) {\n this.toastr.success(message, title, { ...options, timeOut: 10000 });\n }\n }\n\n error(message: string, title = '', options: Partial<IndividualConfig> = {}) {\n options = {\n ...options,\n timeOut: 20000\n };\n if (message) {\n this.toastr.error(message, title, options);\n }\n }\n\n info(message: string, title = '', options: Partial<IndividualConfig> = {}) {\n // disable auto timeout, toast would close on click (to disable auto timeout please use this attribute disableTimeOut:true in options)\n options = { ...options, timeOut: 30000, enableHtml: true };\n if (message) {\n this.toastr.info(\n `<div class=\"d-flex align-items-center\">\n <i class=\"fa fa-info-circle\" aria-hidden=\"true\"></i>\n <div>${message}</div>\n </div>`,\n title,\n options\n );\n }\n }\n\n warning(message: string, title = '', options: Partial<IndividualConfig> = {}) {\n // disable auto timeout, toast would close on click (to disable auto timeout please use this attribute disableTimeOut:true in options)\n options = { ...options, timeOut: 30000 };\n if (message) {\n this.toastr.warning(message, title, options);\n }\n }\n\n showToast(errorResponse) {\n const message = HelperService.getErrorMessage(errorResponse.error);\n\n // clear all the toastr before showing something went wrong\n if (errorResponse.message?.includes('Something went wrong')) {\n this.clear();\n }\n if (errorResponse?.status === 503) {\n this.error(errorResponse?.error, '', { enableHtml: true });\n }\n\n this.showToastrOnType(errorResponse?.error?.type, message);\n }\n\n clear() {\n this.toastr.clear();\n }\n\n showToastrOnType(type: string, message: string): void {\n if (!message || !type) {\n return;\n }\n\n switch (type) {\n case 'success':\n this.success(message);\n break;\n case 'error':\n this.error(message);\n break;\n case 'info':\n this.info(message);\n break;\n case 'warning':\n this.warning(message);\n break;\n default:\n this.error(message);\n }\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';\nimport { Injectable, Injector } from '@angular/core';\n\nimport { Observable, throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\nimport { CustomToastService } from './toast.service';\n\n@Injectable()\nexport abstract class BaseHttpService {\n protected baseUrl = '';\n\n private readonly toast: CustomToastService;\n\n abstract getConfig(): void;\n\n constructor(\n public http: HttpClient,\n public injector: Injector\n ) {\n this.getConfig();\n this.toast = injector.get(CustomToastService);\n }\n\n get<T>(url): Observable<any> {\n return this.http.get<T>(`${this.baseUrl}${url}`).pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n getWithParams<T>(url, params): Observable<any> {\n // eslint-disable-next-line no-restricted-syntax\n for (const k in params) {\n // Sending a param as \"null\" or \"undefined\" makes the value a string called \"null\"\n // or \"undefined\" which is not what we want. In such cases, just don't sent any param.\n if ([null, undefined].includes(params[k])) {\n delete params[k];\n }\n }\n\n return this.http.get<T>(`${this.baseUrl}${url}`, { params }).pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n post<T>(url, params = {}): Observable<any> {\n return this.http.post<T>(`${this.baseUrl}${url}`, params).pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n put<T>(url, params = {}): Observable<any> {\n return this.http.put<T>(`${this.baseUrl}${url}`, params).pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n patch<T>(url, params = {}): Observable<any> {\n return this.http.patch<T>(`${this.baseUrl}${url}`, params).pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n delete<T>(url, option = {}): Observable<any> {\n return this.http.delete<T>(`${this.baseUrl}${url}`, option).pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n upload(url, file: File, param): Observable<any> {\n const formData = new FormData();\n formData.append(param, file);\n const headers = new HttpHeaders({ enctype: 'multipart/form-data' });\n\n return this.http.put(`${this.baseUrl}${url}`, formData, { headers }).pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n uploadWithData(url: string, data): Observable<any> {\n const formData = new FormData();\n // eslint-disable-next-line no-restricted-syntax\n for (const item in data) {\n if (Object.hasOwn(data, item)) {\n formData.append(item, data[item]);\n }\n }\n\n const headers = new HttpHeaders({ enctype: 'multipart/form-data' });\n\n return this.http.post(`${this.baseUrl}${url}`, formData, { headers }).pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n handleError(error: HttpErrorResponse): void {\n if (error?.error?.status_code !== 'unauthorized__REMOVED_X_TESTING') {\n if (error?.error?.status === 401) {\n this.toast.clear();\n }\n\n this.toast.showToast(error);\n }\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable, Injector, isDevMode } from '@angular/core';\n\nimport { AppConfigService } from '@posiwise/app-config-service';\nimport { INTEGRATIONS_API_PREFIX } from '@posiwise/common-utilities';\n\nimport { BaseHttpService } from './base-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class IntegrationsApiHttpService extends BaseHttpService {\n constructor(http: HttpClient, injector: Injector) {\n super(http, injector);\n }\n getConfig() {\n this.injector.get(AppConfigService).appConfig$.subscribe(config => {\n this.baseUrl = isDevMode()\n ? INTEGRATIONS_API_PREFIX\n : config?.['links']?.integrations_api;\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { of } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LocalStorage {\n getItem$(key: string) {\n return of(localStorage.getItem(key));\n }\n\n setItem$(key: string, value: string) {\n return of(localStorage.setItem(key, value));\n }\n\n removeItem$(key: string) {\n return of(localStorage.removeItem(key));\n }\n\n clear$() {\n return of(localStorage.clear());\n }\n\n clearAll() {\n return localStorage.clear();\n }\n\n getItem(key: string) {\n return localStorage.getItem(key);\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable, Injector, isDevMode } from '@angular/core';\n\nimport { AppConfigService } from '@posiwise/app-config-service';\nimport { MAIN_API_PREFIX } from '@posiwise/common-utilities';\n\nimport { BaseHttpService } from './base-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MainApiHttpService extends BaseHttpService {\n constructor(http: HttpClient, injector: Injector) {\n super(http, injector);\n }\n getConfig() {\n this.injector.get(AppConfigService).appConfig$.subscribe(config => {\n this.baseUrl = isDevMode() ? MAIN_API_PREFIX : config?.['links']?.main_api;\n });\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable } from '@angular/core';\n\nimport { BehaviorSubject, Observable, of } from 'rxjs';\n\n/**\n * Secure Token Storage Service\n *\n * This service provides secure token storage using memory + secure cookies.\n * NO localStorage usage - tokens are stored only in memory and secure cookies.\n *\n * Security Features:\n * - Memory storage (primary) - not persistent across refreshes\n * - Secure cookies (backup) - with SameSite=Strict protection\n * - No localStorage - prevents XSS token theft\n * - Secure flag for HTTPS\n * - CSRF protection via SameSite cookies\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class SecureTokenStorageService {\n private readonly TOKEN_COOKIE_NAME = 'auth_token';\n private readonly IMPERSONATED_TOKEN_COOKIE_NAME = 'user_impersonated_token';\n private readonly PHONEGAP_TOKEN_COOKIE_NAME = 'user_impersonated_phonegap_token';\n\n // In-memory fallback for development or when cookies are not available\n private readonly memoryStorage = new Map<string, string>();\n private readonly tokenSubject = new BehaviorSubject<string | null>(null);\n private readonly impersonatedTokenSubject = new BehaviorSubject<string | null>(null);\n private readonly phonegapTokenSubject = new BehaviorSubject<string | null>(null);\n\n constructor(@Inject(DOCUMENT) private readonly document: Document) {\n this.initializeTokens();\n }\n\n /**\n * Store authentication token securely\n */\n storeToken(token: string): Observable<boolean> {\n try {\n // Store ONLY in memory and secure cookie - NO localStorage\n this.memoryStorage.set(this.TOKEN_COOKIE_NAME, token);\n this.setSecureCookie(this.TOKEN_COOKIE_NAME, token);\n\n this.tokenSubject.next(token);\n return of(true);\n } catch (error) {\n console.warn('Failed to store token, using memory fallback:', error);\n this.memoryStorage.set(this.TOKEN_COOKIE_NAME, token);\n this.tokenSubject.next(token);\n return of(true);\n }\n }\n\n /**\n * Store impersonated user token\n */\n storeImpersonatedToken(token: string): Observable<boolean> {\n try {\n // Store ONLY in memory and secure cookie - NO localStorage\n this.memoryStorage.set(this.IMPERSONATED_TOKEN_COOKIE_NAME, token);\n this.setSecureCookie(this.IMPERSONATED_TOKEN_COOKIE_NAME, token);\n this.impersonatedTokenSubject.next(token);\n return of(true);\n } catch (error) {\n console.warn('Failed to store impersonated token, using memory fallback:', error);\n this.memoryStorage.set(this.IMPERSONATED_TOKEN_COOKIE_NAME, token);\n this.impersonatedTokenSubject.next(token);\n return of(true);\n }\n }\n\n /**\n * Store phonegap impersonated token\n */\n storePhonegapToken(token: string): Observable<boolean> {\n try {\n // Store ONLY in memory and secure cookie - NO localStorage\n this.memoryStorage.set(this.PHONEGAP_TOKEN_COOKIE_NAME, token);\n this.setSecureCookie(this.PHONEGAP_TOKEN_COOKIE_NAME, token);\n this.phonegapTokenSubject.next(token);\n return of(true);\n } catch (error) {\n console.warn('Failed to store phonegap token, using memory fallback:', error);\n this.memoryStorage.set(this.PHONEGAP_TOKEN_COOKIE_NAME, token);\n this.phonegapTokenSubject.next(token);\n return of(true);\n }\n }\n\n /**\n * Get authentication token\n */\n getToken(): string | null {\n // Try memory storage first (primary storage)\n const memoryToken = this.memoryStorage.get(this.TOKEN_COOKIE_NAME);\n if (memoryToken) {\n return memoryToken;\n }\n\n // Try cookie as backup\n const cookieToken = this.getCookieValue(this.TOKEN_COOKIE_NAME);\n if (cookieToken) {\n // Restore to memory storage\n this.memoryStorage.set(this.TOKEN_COOKIE_NAME, cookieToken);\n return cookieToken;\n }\n\n return null;\n }\n\n /**\n * Get impersonated token\n */\n getImpersonatedToken(): string | null {\n const memoryToken = this.memoryStorage.get(this.IMPERSONATED_TOKEN_COOKIE_NAME);\n if (memoryToken) {\n return memoryToken;\n }\n\n const cookieToken = this.getCookieValue(this.IMPERSONATED_TOKEN_COOKIE_NAME);\n if (cookieToken) {\n this.memoryStorage.set(this.IMPERSONATED_TOKEN_COOKIE_NAME, cookieToken);\n return cookieToken;\n }\n\n return null;\n }\n\n /**\n * Get phonegap token\n */\n getPhonegapToken(): string | null {\n const memoryToken = this.memoryStorage.get(this.PHONEGAP_TOKEN_COOKIE_NAME);\n if (memoryToken) {\n return memoryToken;\n }\n\n const cookieToken = this.getCookieValue(this.PHONEGAP_TOKEN_COOKIE_NAME);\n if (cookieToken) {\n this.memoryStorage.set(this.PHONEGAP_TOKEN_COOKIE_NAME, cookieToken);\n return cookieToken;\n }\n\n return null;\n }\n\n /**\n * Get token as Observable\n */\n getToken$(): Observable<string | null> {\n return this.tokenSubject.asObservable();\n }\n\n /**\n * Get impersonated token as Observable\n */\n getImpersonatedToken$(): Observable<string | null> {\n return this.impersonatedTokenSubject.asObservable();\n }\n\n /**\n * Get phonegap token as Observable\n */\n getPhonegapToken$(): Observable<string | null> {\n return this.phonegapTokenSubject.asObservable();\n }\n\n /**\n * Remove all tokens\n */\n clearTokens(): Observable<boolean> {\n try {\n // Clear cookies\n this.deleteCookie(this.TOKEN_COOKIE_NAME);\n this.deleteCookie(this.IMPERSONATED_TOKEN_COOKIE_NAME);\n this.deleteCookie(this.PHONEGAP_TOKEN_COOKIE_NAME);\n } catch (error) {\n console.warn('Failed to clear cookies:', error);\n }\n\n // Clear memory storage\n this.memoryStorage.delete(this.TOKEN_COOKIE_NAME);\n this.memoryStorage.delete(this.IMPERSONATED_TOKEN_COOKIE_NAME);\n this.memoryStorage.delete(this.PHONEGAP_TOKEN_COOKIE_NAME);\n\n // Update subjects\n this.tokenSubject.next(null);\n this.impersonatedTokenSubject.next(null);\n this.phonegapTokenSubject.next(null);\n\n return of(true);\n }\n\n /**\n * Remove specific token\n */\n removeToken(): Observable<boolean> {\n try {\n this.deleteCookie(this.TOKEN_COOKIE_NAME);\n } catch (error) {\n console.warn('Failed to remove token:', error);\n }\n\n this.memoryStorage.delete(this.TOKEN_COOKIE_NAME);\n this.tokenSubject.next(null);\n return of(true);\n }\n\n /**\n * Remove impersonated tokens\n */\n removeImpersonatedTokens(): Observable<boolean> {\n try {\n this.deleteCookie(this.IMPERSONATED_TOKEN_COOKIE_NAME);\n this.deleteCookie(this.PHONEGAP_TOKEN_COOKIE_NAME);\n } catch (error) {\n console.warn('Failed to remove impersonated tokens:', error);\n }\n\n this.memoryStorage.delete(this.IMPERSONATED_TOKEN_COOKIE_NAME);\n this.memoryStorage.delete(this.PHONEGAP_TOKEN_COOKIE_NAME);\n this.impersonatedTokenSubject.next(null);\n this.phonegapTokenSubject.next(null);\n return of(true);\n }\n\n /**\n * Set secure cookie\n * Note: HttpOnly cannot be set from client-side JavaScript\n * For maximum security, backend should set httpOnly cookies\n */\n private setSecureCookie(name: string, value: string): void {\n const isSecure = this.document.location.protocol === 'https:';\n\n // Set cookie with maximum security possible from client-side\n const cookieString = `${name}=${value}; Path=/; ${isSecure ? 'Secure; ' : ''}SameSite=Strict; Max-Age=86400`;\n this.document.cookie = cookieString;\n\n // Log warning about security limitations\n console.warn(\n '⚠️ SECURITY WARNING: Cookie is not httpOnly. For maximum security, backend should set httpOnly cookies.'\n );\n }\n\n /**\n * Get cookie value\n */\n private getCookieValue(name: string): string | null {\n const value = `; ${this.document.cookie}`;\n const parts = value.split(`; ${name}=`);\n if (parts.length === 2) {\n return parts.pop()?.split(';').shift() || null;\n }\n return null;\n }\n\n /**\n * Delete cookie\n */\n private deleteCookie(name: string): void {\n this.document.cookie = `${name}=; Path=/; expires=Thu, 01 Jan 1970 00:00:01 GMT;`;\n }\n\n /**\n * Initialize tokens from storage on service startup\n */\n private initializeTokens(): void {\n const token = this.getToken();\n const impersonatedToken = this.getImpersonatedToken();\n const phonegapToken = this.getPhonegapToken();\n\n if (token) {\n this.tokenSubject.next(token);\n }\n if (impersonatedToken) {\n this.impersonatedTokenSubject.next(impersonatedToken);\n }\n if (phonegapToken) {\n this.phonegapTokenSubject.next(phonegapToken);\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { PROJECT_PATH } from '@posiwise/common-utilities';\n\nimport { AddProjectPicturesData, ProfileData } from './common-services.interface';\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ProfileService {\n private readonly endpoint = PROJECT_PATH;\n\n constructor(private readonly api: MainApiHttpService) {}\n\n updateUserProfile(user: ProfileData) {\n const formData = new FormData();\n\n // eslint-disable-next-line no-restricted-syntax\n for (const key in user) {\n if (key in user) {\n formData.append(key, user[key]);\n }\n }\n\n return this.api.put('/user', formData);\n }\n\n getUserProfile(slug: string) {\n return this.api.get(`/users/${slug}/profile/`);\n }\n\n getUserObject(objectType: string, slug: string) {\n return this.api.get(`/users/${slug}/get_object?object=${objectType}`);\n }\n\n getProjects(slug: string) {\n return this.api.get(`/users/${slug}/projects`);\n }\n\n addProjects(data: { [key: string]: string }) {\n return this.api.post(this.endpoint, data);\n }\n\n updateProjects(id: number, data: { [key: string]: string }) {\n return this.api.put(`${this.endpoint}${id}`, data);\n }\n\n deleteProject(id: number) {\n return this.api.delete(`${this.endpoint}/${id}`);\n }\n\n addProjectPictures(data: AddProjectPicturesData) {\n return this.api.uploadWithData('/project_pictures', data);\n }\n\n getProjectPictures(slug: string) {\n return this.api.get(`/users/${slug}/project_pictures`);\n }\n\n deletePicture(projectId: number) {\n return this.api.delete(`/project_pictures/${projectId}`);\n }\n\n // Recommendations\n\n postProjectRecommendation(data: object) {\n return this.api.post(`/project_recommendations`, data);\n }\n\n postLinks(data: { [key: string]: string }) {\n return this.api.post('/user_links', data);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { AppConfigService } from '@posiwise/app-config-service';\nimport { AppState, getUser, SetUser, UserState } from '@posiwise/app-store';\nimport { Paging, User, USER_PATH } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport moment from 'moment';\nimport { Observable, tap } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport swal from 'sweetalert2';\n\nimport { Store } from '@ngrx/store';\n\nimport { MainApiHttpService } from './main-api-http.service';\nimport { ProfileService } from './profile.service';\nimport { CustomToastService } from './toast.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UserService {\n private readonly endpoint = USER_PATH;\n\n private isTosModalOpen = false;\n\n constructor(\n private readonly api: MainApiHttpService,\n private readonly store: Store<AppState>,\n private readonly router: Router,\n private readonly appConfigService: AppConfigService,\n private readonly profileService: ProfileService,\n private readonly toast: CustomToastService\n ) {}\n\n getUserState(): Observable<UserState> {\n return this.store.select(getUser);\n }\n\n getUserInfo() {\n return this.api.get(this.endpoint).pipe(\n tap((data: User) => {\n // enforce 2fa\n if (data?.auth?.should_enforce_2fa) {\n this.router.navigate(['settings/security']);\n }\n\n this.checkAndHandleTosAcceptance(data);\n })\n );\n }\n\n /**\n * Ensure the current user has accepted the latest Terms of Service for this domain.\n * If the domain has a newer TOS version than the user's accepted timestamp, a blocking\n * SweetAlert2 modal is shown that forces the user to accept before continuing.\n */\n private checkAndHandleTosAcceptance(user: User | null | undefined): void {\n if (!user || this.isTosModalOpen) {\n return;\n }\n\n this.appConfigService.appConfig$.pipe(take(1)).subscribe(config => {\n const tosUpdatedAt = config?.['tos_updated_at'];\n\n if (!tosUpdatedAt) {\n return;\n }\n\n const userAcceptedAt = user.tos_accepted_at;\n\n // If user has already accepted a TOS version that is newer or equal, nothing to do\n if (userAcceptedAt && !moment(userAcceptedAt).isBefore(moment(tosUpdatedAt))) {\n return;\n }\n\n this.isTosModalOpen = true;\n\n const mainTosId = config?.['main_tos_id'] ?? null;\n const tosUrl = mainTosId ? `/privacy-and-tos/${mainTosId}` : '/privacy-and-tos';\n\n swal.fire({\n icon: 'info',\n title: 'Accept Terms of Service',\n html: `By clicking continue, you agree to the terms of our <a href=\"${tosUrl}\" target=\"_blank\" rel=\"noopener noreferrer\">Privacy Policy and Platform Agreement</a>.`,\n confirmButtonText: 'Accept and Continue',\n allowOutsideClick: false,\n allowEscapeKey: false,\n showCancelButton: false,\n reverseButtons: false,\n focusConfirm: true\n }).then(result => {\n if (!result.isConfirmed) {\n // Modal cannot really be dismissed without confirmation due to config above,\n // but guard just in case.\n this.isTosModalOpen = false;\n return;\n }\n\n // Match the backend ISO 8601 format (e.g. 2025-12-15T10:27:11.250Z)\n const nowUtc = new Date().toISOString();\n\n this.profileService.updateUserProfile({ tos_accepted_at: nowUtc }).subscribe({\n next: () => {\n const updatedUser: User = {\n ...user,\n tos_accepted_at: nowUtc\n };\n this.store.dispatch(new SetUser(updatedUser));\n this.toast.success('Terms of Service accepted');\n this.isTosModalOpen = false;\n },\n error: err => {\n this.handleTosAcceptanceError(err, user);\n }\n });\n });\n });\n }\n\n private handleTosAcceptanceError(err, user: User): void {\n const message = HelperService.getErrorMessage(err?.error ?? err);\n\n swal.fire({\n icon: 'error',\n title: 'Unable to record acceptance',\n text: message,\n confirmButtonText: 'Try again',\n allowOutsideClick: false,\n allowEscapeKey: false\n }).then(() => {\n this.isTosModalOpen = false;\n this.checkAndHandleTosAcceptance(user);\n });\n }\n\n followUser(id: number) {\n return this.api.post(`${this.endpoint}/toggle_relationship/${id}`);\n }\n\n sendSSOActivationEmail() {\n return this.api.post(`/cognito/create_cognito_user`);\n }\n\n updateSlug(slug: string) {\n return this.api.put(`${this.endpoint}/update_slug`, { slug });\n }\n\n getCurrentUserObject(object_type: string) {\n return this.api.get(`${this.endpoint}/get_current_user_object?object=${object_type}`);\n }\n\n updateEmail(data: { [key: string]: string }) {\n const formData = new FormData();\n formData.append('email', data['email']);\n formData.append('confirmation_path', data['confirmation_path']);\n\n return this.api.put(`${this.endpoint}/email`, formData);\n }\n\n checkPassword(data: { password: string }) {\n return this.api.post(`${this.endpoint}/check_password`, data);\n }\n\n confirmUser(\n confirmation_token: string,\n email: string,\n password: string,\n password_confirmation: string\n ) {\n const formData = new FormData();\n formData.append('confirmation_token', confirmation_token);\n formData.append('email', email);\n formData.append('password', password);\n formData.append('password_confirmation', password_confirmation);\n\n return this.api.put(`${this.endpoint}/confirm`, formData);\n }\n\n checkTokenValidity(type: string, token: string, email: string) {\n return this.api.get(\n `${this.endpoint}/check_token_validity?type=${type}&confirmation_token=${token}&email=${email}`\n );\n }\n\n getUserNotifications() {\n return this.api.get(`${this.endpoint}/user_notifications`);\n }\n\n addAvatar(file: File) {\n return this.api.upload(this.endpoint, file, 'avatar');\n }\n\n createTwoFactorAuthenticator() {\n return this.api.put(`/two_factor_authenticator/create`);\n }\n\n verifyTwoFactorAuthenticator(google_code: string) {\n return this.api.post(`/two_factor_authenticator/verification_code`, { google_code });\n }\n\n enableTwoFactorAuthenticator(google_code: string) {\n return this.api.put(`/two_factor_authenticator/enable`, { google_code });\n }\n\n disableTwoFactorAuthenticator() {\n return this.api.put(`/two_factor_authenticator/disable`);\n }\n\n // User API Ends\n\n validateNewEmail(confirmationToken: string) {\n return this.api.get(\n `${this.endpoint}/new_email_confirm?confirmation_token=${confirmationToken}`\n );\n }\n\n getUserSubscriptions(id: number) {\n return this.api.get(`/users/${id}/subscriptions`);\n }\n\n addNewSubscriptionUsingStripe(data) {\n return this.api.post('/signups/trial_user_stripe_account', data);\n }\n\n updatePassword(data: {\n password: string;\n password_confirmation: string;\n old_password: string;\n }) {\n return this.api.put('/password/update', data);\n }\n\n getUserInvoices(paging: Paging, id: number) {\n return this.api.getWithParams(`${this.endpoint}/invoices`, {\n ...HelperService.getPagingParams(paging),\n user_id: id\n });\n }\n\n postTipsDisregarded(data: { tip_id: number; disregarded: boolean }) {\n return this.api.post('/users/user_tips', data);\n }\n\n refreshUserApiTokens() {\n return this.api.get(`${this.endpoint}/refresh_user_api_tokens`);\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { HttpHeaders } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { AppConfigService } from '@posiwise/app-config-service';\nimport {\n CAPTCHA_VALIDATION_PATH,\n NEWSLETTER_CONFIRMATION_PATH,\n NEWSLETTER_UNSUBSCRIBE_PATH,\n SOCIAL_LOGIN_PATH,\n TOKEN_HEADER_KEY,\n TOKEN_KEY\n} from '@posiwise/common-utilities';\n\nimport { BehaviorSubject } from 'rxjs';\nimport { map, switchMap } from 'rxjs/operators';\nimport swal from 'sweetalert2';\n\nimport { SignUpValues } from './common-services.interface';\nimport { IntegrationsApiHttpService } from './integrations-api-http.service';\nimport { LocalStorage } from './local-storage.service';\nimport { MainApiHttpService } from './main-api-http.service';\nimport { SecureTokenStorageService } from './secure-token-storage.service';\nimport { CustomToastService } from './toast.service';\nimport { UserService } from './user.service';\n\n@Injectable()\nexport class AuthService {\n private readonly platformSubject = new BehaviorSubject<string>('');\n private readonly twitterEndpoint = '/twitter';\n\n auth_token: string;\n header_key = 'browser';\n platform = '';\n\n platform$ = this.platformSubject.asObservable();\n\n isUserPersonated: boolean;\n\n constructor(\n private readonly localStorage: LocalStorage,\n private readonly secureTokenStorage: SecureTokenStorageService,\n private readonly router: Router,\n private readonly http: MainApiHttpService,\n private readonly userService: UserService,\n private readonly toastr: CustomToastService,\n private readonly appConfigService: AppConfigService,\n private readonly integrationsApi: IntegrationsApiHttpService,\n @Inject(DOCUMENT) private readonly document: Document\n ) {\n // Set Header Key\n this.setHeaderKey();\n }\n\n getToken() {\n if (this.secureTokenStorage.getImpersonatedToken()) {\n this.isUserPersonated = true;\n return this.secureTokenStorage.getImpersonatedToken();\n }\n if (this.secureTokenStorage.getPhonegapToken()) {\n this.isUserPersonated = true;\n return this.secureTokenStorage.getPhonegapToken();\n }\n\n this.isUserPersonated = false;\n return this.secureTokenStorage.getToken();\n }\n\n getImpersonatedToken() {\n return (\n this.secureTokenStorage.getImpersonatedToken() ||\n this.secureTokenStorage.getPhonegapToken()\n );\n }\n\n setHeaderKey() {\n // Mobile: app\n // Website: browser\n this.getHeaderKey().subscribe({\n next: (key: string) => {\n if (key === null) {\n this.header_key = 'browser';\n this.platformSubject.next('browser');\n } else if (key === 'app') {\n this.header_key = key;\n this.platformSubject.next(key);\n }\n },\n error: () => {\n this.header_key = 'browser';\n }\n });\n }\n\n signUpUser(values: SignUpValues) {\n const formData = new FormData();\n formData.append('confirmation_path', values.confirmation_path);\n formData.append('contact_name', values.contact_name);\n formData.append('email', values.email);\n formData.append('user_signup_url', values.user_signup_url);\n formData.append('organisation', values.organisation);\n formData.append('product_id', values.product_id.toString());\n formData.append('units', values.units.toString());\n formData.append('stripe_token', values.stripe_token);\n formData.append('master_subscription_id', values.master_subscription_id.toString());\n\n return this.http.post('signups', formData);\n }\n\n trialSignUp(data: object) {\n return this.http.post('signups/trial_signup', data);\n }\n\n validateEmail(email: string) {\n const params = {\n email\n };\n\n return this.http.getWithParams('users/validate_email', params);\n }\n\n forgotPassword(email: string, reset_path: string) {\n const params = {\n email,\n reset_path\n };\n\n return this.http.getWithParams('password', params);\n }\n\n resetPassword(password: string, confirm_password: string, password_reset_token: string) {\n const formData = new FormData();\n formData.append('password', password);\n formData.append('password_confirmation', confirm_password);\n formData.append('reset_password_token', password_reset_token);\n\n return this.http.put('password', formData);\n }\n\n header() {\n if (this.header_key === 'browser') {\n const headers = new HttpHeaders({\n [TOKEN_HEADER_KEY]: btoa(this.auth_token)\n });\n\n return headers;\n }\n const headers = new HttpHeaders({\n 'X-Phonegap-Token': btoa(this.auth_token)\n });\n\n return headers;\n }\n\n private getHeaderKey() {\n return this.localStorage.getItem$('platform');\n }\n\n private getPlatform() {\n return this.localStorage.getItem$('platform');\n }\n\n signInUser(email: string, password: string) {\n const formData = new FormData();\n formData.append('email', email);\n formData.append('password', password);\n\n return this.http.post('session', formData);\n }\n\n signInUserWith2Fa(email: string, password: string, google_code) {\n const formData = new FormData();\n formData.append('email', email);\n formData.append('password', password);\n formData.append('google_code', google_code);\n\n return this.http.post('session', formData);\n }\n\n storeToken(token: string) {\n return this.secureTokenStorage.storeToken(token);\n }\n\n storePlatform(plat: string) {\n return this.localStorage.setItem$('platform', plat);\n }\n\n logout() {\n const options = {\n headers: this.header()\n };\n\n if (this.header_key !== 'browser') {\n options['params'] = {\n phonegap: true\n };\n }\n\n // Clear all tokens securely\n this.secureTokenStorage.clearTokens().subscribe();\n\n return this.http.delete('session', options);\n }\n\n /**\n * Clear all authentication tokens\n */\n clearTokens() {\n return this.secureTokenStorage.clearTokens();\n }\n\n /**\n * Remove only impersonation tokens (not all tokens)\n */\n removeImpersonationTokens() {\n return this.secureTokenStorage.removeImpersonatedTokens();\n }\n\n getToken$() {\n return this.secureTokenStorage.getToken$();\n }\n\n getNewsletterSubscription(token: string) {\n return this.http.get(`${NEWSLETTER_CONFIRMATION_PATH}?token=${token}`);\n }\n\n unsubscribeNewsletter(token: string) {\n return this.http.get(`${NEWSLETTER_UNSUBSCRIBE_PATH}?token=${token}`);\n }\n\n validateReCaptcha(token: string) {\n return this.http.get(`${CAPTCHA_VALIDATION_PATH}=${token}`);\n }\n\n socialLogin(data) {\n return this.http.post(SOCIAL_LOGIN_PATH, data);\n }\n\n twitterLogin() {\n return this.http.get(`${this.twitterEndpoint}/get_authorize_url`);\n }\n\n twitterAuthCallback(data) {\n return this.http.post(`${this.twitterEndpoint}/authorization_callback`, data);\n }\n\n microsoftLogin() {\n return this.http.get(`microsoft/get_authorize_url`);\n }\n\n cognitoLogin() {\n return this.http.get(`cognito/get_authorize_url`);\n }\n\n microsoftAuthCallback(data) {\n return this.http.post(`microsoft/authorization_callback`, data);\n }\n\n googleLogin() {\n return this.http.get(`google/get_authorize_url`);\n }\n\n googleAuthCallback(data) {\n return this.http.post(`google/authorization_callback`, data);\n }\n\n facebookLogin() {\n return this.http.get(`facebook/get_authorize_url`);\n }\n\n facebookAuthCallback(data) {\n return this.http.post(`facebook/authorization_callback`, data);\n }\n\n appleLogin() {\n return this.http.get(`apple/get_authorize_url`);\n }\n\n appleAuthCallback(data) {\n return this.http.post(`apple/authorization_callback`, data);\n }\n\n cognitoAuthCallback(data) {\n return this.http.post(`cognito/authorization_callback`, data);\n }\n\n linkedinLogin() {\n return this.appConfigService.appConfig$.pipe(\n switchMap(config => {\n return this.http.get(\n `/linkedin/get_authorize_url?redirect_url=${config['links'].frontend_link}/linkedin-confirmation`\n );\n })\n );\n }\n\n linkedInAuthCallback(data) {\n return this.http.post('linkedin/authorization_callback', data);\n }\n\n postLogin(response) {\n this.localStorage.removeItem$('product_id').subscribe();\n this.setHeaderKey();\n // this.setPlatform(); call it from cloudolive repo.\n\n // Saves the token into the localStorage and fetches the user information\n const sequence$ = this.storeToken(response[TOKEN_KEY]).pipe(\n switchMap(() => {\n return this.userService.getUserInfo();\n })\n );\n\n sequence$.subscribe(resp => {\n localStorage.setItem('name', resp.first_name);\n this.router.navigate(['home']);\n if ($('.cc-dismiss').length > 0) {\n $('.cc-dismiss')[0].click();\n }\n\n return true;\n });\n }\n\n impersonateUser(data: { email: string; subscription_id: number; phonegap?: boolean }) {\n if (!data.phonegap) {\n delete data.phonegap;\n }\n\n return this.http.post('/session/impersonate_user', data).pipe(\n map(x => {\n if (x?.auth_token) {\n this.secureTokenStorage.storeImpersonatedToken(x.auth_token);\n }\n if (x?.phonegap_token) {\n this.secureTokenStorage.storePhonegapToken(x.phonegap_token);\n }\n\n return x;\n })\n );\n }\n\n postSocialLogin(response) {\n const alreadySigned = !!response[TOKEN_KEY];\n const isNewSignUp = !!response.subscription;\n\n if (isNewSignUp) {\n this.router.navigate(['confirmation'], {\n queryParams: {\n ref: response.reference_number,\n subscription: response.subscription,\n users: response.users\n }\n });\n } else if (alreadySigned) {\n this.storeToken(response[TOKEN_KEY]).subscribe({\n next: () => {\n this.router.navigate(['home']);\n },\n error: error => {\n this.toastr.showToast(error);\n }\n });\n } else {\n swal.fire({\n toast: true,\n position: 'bottom',\n html: `<strong class=\"text-danger\"> ${response.error.message}</strong>`,\n showCancelButton: true,\n reverseButtons: true,\n icon: 'error'\n }).then(rep => {\n if (rep.value) {\n this.router.navigate(['register']);\n }\n });\n }\n }\n\n registerTokenListener() {\n window.addEventListener('storage', data => {\n // logs out the other tabs when the token is changed.\n // we assume that token doesn't refresh and backend updates the expiry time\n if (data?.key === TOKEN_KEY && data?.oldValue !== data?.newValue) {\n this.document.location.reload();\n }\n });\n }\n}\n","import { inject, Injectable } from '@angular/core';\n\nimport { SetUser, UserActionTypes } from '@posiwise/app-store';\n\nimport { Observable } from 'rxjs';\nimport { map, mergeMap } from 'rxjs/operators';\n\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Action } from '@ngrx/store';\n\nimport { UserService } from '../user.service';\n\n/* NgRx */\n@Injectable()\nexport class UserEffects {\n private readonly actions$ = inject(Actions);\n constructor(private readonly userService: UserService) {}\n\n loadUser$: Observable<Action> = createEffect(() => {\n return this.actions$.pipe(\n ofType(UserActionTypes.GET_USER),\n // take(1),\n mergeMap(() =>\n this.userService.getUserInfo().pipe(\n map(response => new SetUser(response))\n // catchError(err => of(new userActions.LoadFail(err)))\n )\n )\n );\n });\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { appReducers } from '@posiwise/app-store';\n\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreModule } from '@ngrx/store';\n\nimport { AuthService } from './auth.service';\nimport { UserEffects } from './effects/user.effects';\n\n@NgModule({\n imports: [CommonModule, EffectsModule.forRoot([UserEffects]), StoreModule.forRoot(appReducers)],\n providers: [AuthService]\n})\nexport class CommonServicesModule {}\n","import { Injectable } from '@angular/core';\nimport { Meta, Title } from '@angular/platform-browser';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SeoService {\n constructor(\n private readonly meta: Meta,\n private readonly titleService: Title\n ) {}\n\n /**\n * Set SEO metadata for a page\n * @param title - Page title\n * @param description - Meta description\n * @param keywords - Meta keywords (optional)\n */\n setSEO(title: string, description: string, keywords?: string): void {\n // Set page title\n this.titleService.setTitle(title);\n\n // Set meta description\n this.meta.updateTag({ name: 'description', content: description });\n\n // Set keywords if provided\n if (keywords) {\n this.meta.updateTag({ name: 'keywords', content: keywords });\n }\n\n // Set Open Graph tags\n this.meta.updateTag({ property: 'og:title', content: title });\n this.meta.updateTag({ property: 'og:description', content: description });\n this.meta.updateTag({ property: 'og:type', content: 'website' });\n\n // Set Twitter Card tags\n this.meta.updateTag({ name: 'twitter:title', content: title });\n this.meta.updateTag({ name: 'twitter:description', content: description });\n this.meta.updateTag({ name: 'twitter:card', content: 'summary' });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ADMIN_SUB_MENU_WHITELIST, PERMISSION_NAMES, User } from '@posiwise/common-utilities';\n\nimport cloneDeep from 'lodash/cloneDeep';\nimport pickBy from 'lodash/pickBy';\n\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PermissionService {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n static selectedProduct: any; // NOSONAR\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n static selectedSubscription: any; // NOSONAR\n\n user: User = null;\n\n constructor(private readonly api: MainApiHttpService) {}\n\n setCurrentSubscription(subscription) {\n PermissionService.selectedSubscription = subscription;\n }\n\n isGranted(\n permissionName: string,\n productKey = null,\n permission_key = null,\n productSlug = null\n ): boolean {\n if (this.user) {\n const { user } = this;\n\n // Admin have access to all the menus.\n // E.g., Pages.SuperAdmin\n if (this.isSuperAdmin()) {\n return true;\n }\n\n if (permissionName) {\n permissionName = this.getFormattedPermissionName(permissionName, productSlug);\n }\n\n // Returning true if user has a given permission\n // E.g., Pages.Role.CloudOlive.SalesManager\n // or Pages.Beta or Pages.Alpha\n\n if (permissionName?.includes('||')) {\n const parts = permissionName.split('||').map(p => p.trim());\n if (this.hasAnyGrantedPermission(parts, user, productSlug)) {\n return true;\n }\n } else if (user['auth']?.['granted'][permissionName]) {\n return true;\n }\n\n const filteredPermissions = this.handleProductKey(\n productKey,\n user,\n permission_key,\n permissionName\n );\n\n if (filteredPermissions) {\n return filteredPermissions;\n }\n\n // no valid permission was detected for this user\n return false;\n }\n // user not logged-in\n return false;\n }\n\n private hasAnyGrantedPermission(parts: string[], user, productSlug: string = null): boolean {\n return parts.some(part => {\n // Format the permission part with the current subscription slug if needed\n const formattedPart = this.getFormattedPermissionName(part, productSlug);\n return user['auth']?.['granted'][formattedPart];\n });\n }\n\n handleProductKey(productKey, user, permission_key, permissionName) {\n if (productKey) {\n // filters the permission only for the selected product.\n let filteredPermissions = pickBy(cloneDeep(user['auth']['granted']), (_value, key) => {\n return key.includes(productKey);\n });\n // add Pages.Product.{permission_key}\n filteredPermissions = {\n ...{ [`Pages.Product.${permission_key}`]: true },\n ...filteredPermissions\n };\n\n // E.g., Pages.Product.CloudOlive.CloudOlive_MspKey\n return filteredPermissions[permissionName] ?? false;\n }\n }\n\n private getFormattedPermissionName(permissionName: string, productSlug: string | null): string {\n const selectedProduct = PermissionService?.selectedProduct ?? this.getCurrentProduct();\n const subscriptionSlug = selectedProduct?.subscription_slug;\n\n let slugToCheck: string;\n if (!productSlug) {\n if (permissionName.includes('Pages.Product.')) {\n slugToCheck = `Pages.Product.${subscriptionSlug}.`;\n }\n\n if (permissionName.includes('Pages.Role.')) {\n slugToCheck = `Pages.Role.${subscriptionSlug}.`;\n }\n } else {\n slugToCheck = productSlug;\n }\n\n // Only format if we have a valid slug to check\n if (slugToCheck) {\n if (\n !permissionName.includes(slugToCheck) &&\n permissionName.includes('Pages.Product.')\n ) {\n permissionName = permissionName.replace('Pages.Product.', slugToCheck);\n }\n\n if (permissionName.includes('Pages.Role.') && !permissionName.includes(slugToCheck)) {\n permissionName = permissionName.replace('Pages.Role.', slugToCheck);\n }\n }\n\n return permissionName;\n }\n\n getPermissionTreeDataByRole(data) {\n const permissions = [];\n data.all.forEach(element => {\n const { name } = element;\n permissions.push({\n id: element.id, // permissionId: Used to update the permissions on change\n parentName: name.includes('.') ? name.substring(0, name.lastIndexOf('.')) : null,\n name,\n displayName: element.name\n });\n });\n\n return {\n permissions,\n grantedPermissionNames: Object.keys(data.granted)\n };\n }\n\n evaluatePermissions(\n permission: string,\n productKey: string = null,\n permission_key: string = null,\n productSlug: string = null\n ): boolean {\n if (!permission) {\n return false;\n }\n\n let expr = '';\n\n if (permission === PERMISSION_NAMES.SuperAdmin) {\n return this.isSuperAdmin();\n }\n if (permission === PERMISSION_NAMES.SubscriptionAdmin) {\n return this.isUserSubscriptionAdmin() || this.isUserSubscriptionOwner();\n }\n if (permission === PERMISSION_NAMES.SubscriptionOwner) {\n return this.isUserSubscriptionOwner();\n }\n if (permission === PERMISSION_NAMES.SubscriptionSuperAdmin) {\n return (\n this.isUserSubscriptionSuperAdmin() ||\n this.isUserSubscriptionSuperOwner() ||\n this.isSuperAdmin()\n );\n }\n if (permission === PERMISSION_NAMES.SubscriptionSuperOwner) {\n return this.isUserSubscriptionSuperOwner() || this.isSuperAdmin();\n }\n if (\n typeof permission === 'string' &&\n ADMIN_SUB_MENU_WHITELIST.some(v => permission.includes(v)) &&\n (this.isUserSubscriptionSuperAdmin() || this.isUserSubscriptionSuperOwner())\n ) {\n return true;\n }\n\n expr = this.handleNonBooleanPermissions(\n permission,\n expr,\n productKey,\n permission_key,\n productSlug\n );\n\n // Now expr is made of true/false values with &&, ||, ()\n // Safe parser: no eval() - CSP 'unsafe-eval' not required\n return this.evaluateBooleanExpression(expr);\n }\n\n /** Safe boolean expression parser - replaces eval() for CSP compliance. */\n private evaluateBooleanExpression(expr: string): boolean {\n expr = expr.replace(/\\s+/g, ' ').trim();\n if (!expr) return false;\n if (expr === 'true') return true;\n if (expr === 'false') return false;\n\n let depth = 0;\n for (let i = 0; i < expr.length - 1; i++) {\n const c = expr[i];\n if (c === '(') depth++;\n else if (c === ')') depth--;\n else if (depth === 0 && expr.substring(i, i + 2) === '||') {\n const left = expr.substring(0, i).trim();\n const right = expr.substring(i + 2).trim();\n return (\n this.evaluateBooleanExpression(left) || this.evaluateBooleanExpression(right)\n );\n }\n }\n depth = 0;\n for (let i = 0; i < expr.length - 1; i++) {\n const c = expr[i];\n if (c === '(') depth++;\n else if (c === ')') depth--;\n else if (depth === 0 && expr.substring(i, i + 2) === '&&') {\n const left = expr.substring(0, i).trim();\n const right = expr.substring(i + 2).trim();\n return (\n this.evaluateBooleanExpression(left) && this.evaluateBooleanExpression(right)\n );\n }\n }\n if (expr.startsWith('(') && expr.endsWith(')')) {\n let d = 0;\n for (let j = 1; j < expr.length - 1; j++) {\n if (expr[j] === '(') d++;\n if (expr[j] === ')') d--;\n if (d < 0) return false;\n }\n return this.evaluateBooleanExpression(expr.substring(1, expr.length - 1));\n }\n return false;\n }\n\n handleNonBooleanPermissions(permission, expr, productKey, permission_key, productSlug) {\n if (typeof permission !== 'boolean') {\n permission.split(' ').forEach(x => {\n const raw = x.trim();\n if (!raw) return; // Skip empty tokens (e.g. from double spaces) - avoids malformed expr\n\n if (['||', '&&', '(', ')'].includes(raw)) {\n expr += ` ${raw} `;\n } else {\n let evaluated: boolean;\n\n if (raw === PERMISSION_NAMES.SuperAdmin) {\n evaluated = this.isSuperAdmin();\n } else if (raw === PERMISSION_NAMES.SubscriptionAdmin) {\n evaluated =\n this.isUserSubscriptionAdmin() || this.isUserSubscriptionOwner();\n } else if (raw === PERMISSION_NAMES.SubscriptionOwner) {\n evaluated = this.isUserSubscriptionOwner();\n } else if (raw === PERMISSION_NAMES.SubscriptionSuperAdmin) {\n evaluated =\n this.isUserSubscriptionSuperAdmin() ||\n this.isUserSubscriptionSuperOwner() ||\n this.isSuperAdmin();\n } else if (raw === PERMISSION_NAMES.SubscriptionSuperOwner) {\n evaluated = this.isUserSubscriptionSuperOwner() || this.isSuperAdmin();\n } else if (productKey) {\n // Assume it's Pages.Product or Pages.Role with productKey\n evaluated = this.isGranted(raw, productKey, permission_key, productSlug);\n } else {\n // Pass productSlug to isGranted to ensure slug-aware permission checking\n evaluated = this.isGranted(raw, null, null, productSlug);\n }\n\n expr += ` ${evaluated} `;\n }\n }, this);\n }\n return expr;\n }\n\n getPermissionByRole(roleId: number) {\n return this.api.get(`/admin/role_permissions/${roleId}`);\n }\n\n saveUserPermission(payload) {\n return this.api.post(`/admin/role_permissions`, payload);\n }\n\n /**\n * determine user is super_admin using user.auth.granted['Pages.SuperAdmin']\n */\n isSuperAdmin(): boolean {\n return !!this.user.auth.granted['Pages.SuperAdmin'] || false;\n }\n\n /**\n * Any Product Admin regardless of the product being master product or not.\n */\n public isUserSubscriptionOwner(product?): boolean {\n product ??= this.getCurrentProduct();\n const subscriptionSlug = product?.subscription_slug;\n return !!this.user.auth.granted[\n `Pages.Product.${subscriptionSlug}.${product?.permission_key}.${product?.feature_key}.SubscriptionOwner`\n ];\n }\n\n /**\n * Any Product Admin regardless of the product being master product or not.\n * *rbacAllow=\"SubscriptionAdmin\"\n * @returns\n */\n public isUserSubscriptionAdmin(product?): boolean {\n product ??= this.getCurrentProduct();\n const subscriptionSlug = product?.subscription_slug;\n return (\n !!this.user.auth.granted[\n `Pages.Product.${subscriptionSlug}.${product?.permission_key}.${product?.feature_key}.SubscriptionAdmin`\n ] ||\n !!this.user.auth.granted[\n `Pages.Product.${subscriptionSlug}.${product?.permission_key}.${product?.feature_key}.SubscriptionOwner`\n ]\n );\n }\n\n /**\n * Any Product Admin of the product being the master product\n */\n isUserSubscriptionSuperAdmin(product?): boolean {\n product ??= this.getCurrentProduct();\n const subscriptionSlug = product?.subscription_slug;\n return (\n !!this.user.auth.granted[\n `Pages.Product.${subscriptionSlug}.${product?.permission_key}.${product?.feature_key}.SubscriptionSuperAdmin`\n ] ||\n !!this.user.auth.granted[\n `Pages.Product.${subscriptionSlug}.${product?.permission_key}.${product?.feature_key}.SubscriptionSuperOwner`\n ]\n );\n }\n\n isUserMasterSubscriptionSuperAdmin(product?): boolean {\n product ??= this.getCurrentProduct();\n return !!this.user.auth.granted[\n `Pages.Product.${product?.permission_key}.${product?.feature_key}.SubscriptionSuperAdmin`\n ];\n }\n\n /**\n * Any Product Admin of the product being the master product\n */\n public isUserSubscriptionSuperOwner(product?): boolean {\n product ??= this.getCurrentProduct();\n const subscriptionSlug = product?.subscription_slug;\n return !!this.user.auth.granted[\n `Pages.Product.${subscriptionSlug}.${product?.permission_key}.${product?.feature_key}.SubscriptionSuperOwner`\n ];\n }\n\n setCurrentProduct(product) {\n localStorage.setItem(\n 'product',\n JSON.stringify({\n id: product.id,\n permission_key: product?.permission_key,\n feature_key: product?.feature_key,\n subscriptionId: product.subscriptionId,\n subscription_slug: product.subscription_slug\n })\n );\n }\n\n public getCurrentProduct() {\n return JSON.parse(localStorage.getItem('product'));\n }\n}\n","/*\n * Similar to Meta service but made to handle <link> creation for SEO purposes\n */\nimport { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, RendererFactory2, ViewEncapsulation } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LinkService {\n constructor(\n private readonly rendererFactory: RendererFactory2,\n @Inject(DOCUMENT) private readonly document\n ) {}\n\n /**\n * Inject the State into the bottom of the <head>\n */\n addTag(tag: LinkDefinition, _forceCreation?: boolean) {\n try {\n const renderer = this.rendererFactory.createRenderer(this.document, {\n id: '-1',\n encapsulation: ViewEncapsulation.None,\n styles: [],\n data: {}\n });\n\n const link = renderer.createElement('link');\n const { head } = this.document;\n\n if (head === null) {\n throw new Error('<head> not found within DOCUMENT.');\n }\n\n Object.keys(tag).forEach((prop: string) => {\n return renderer.setAttribute(link, prop, tag[prop]);\n });\n\n // [TODO]: get them to update the existing one (if it exists) ?\n renderer.appendChild(head, link);\n } catch (e) {\n window.console.error('Error within linkService : ', e);\n }\n }\n}\n\ndeclare type LinkDefinition = {\n charset?: string;\n crossorigin?: string;\n href?: string;\n hreflang?: string;\n media?: string;\n rel?: string;\n rev?: string;\n sizes?: string;\n target?: string;\n type?: string;\n} & {\n [prop: string]: string;\n};\n","import { Injectable } from '@angular/core';\nimport { PreloadingStrategy, Route, Router } from '@angular/router';\n\nimport { Observable, of, timer } from 'rxjs';\nimport { mergeMap } from 'rxjs/operators';\n\nimport { PermissionService } from './permission.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CustomPreloadingStrategy implements PreloadingStrategy {\n constructor(\n private readonly permission: PermissionService,\n private readonly router: Router\n ) {}\n\n preload(route: Route, load: () => Observable<string>): Observable<string> {\n // Skip preloading if we're on the landing page (root path)\n if (this.router.url === '/' || this.router.url === '') {\n console.log('🚫 Skipping preload for route:', route.path, '- on landing page');\n return of(null);\n }\n\n const loadRoute = delay => (delay ? timer(5000).pipe(mergeMap(_ => load())) : load());\n\n return route.data && this.checkModulePermission(route.data)\n ? loadRoute(route.data['delay'])\n : of(null);\n }\n\n private checkModulePermission(routeData) {\n const ret = routeData.preload && this.permission.isGranted(routeData.permission);\n\n return ret;\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable, Injector } from '@angular/core';\n\nimport { AB_TEST_ACTIONS } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AbTestService {\n constructor(\n private readonly injector: Injector,\n private readonly http: HttpClient\n ) {}\n\n /**\n * POST: start or stop observable\n * payload: {\n \"test_name\": \"my_first_experiment\",\n \"action_type\": \"ab_test\"\n }\n */\n getExperiment(test_name: string, action_type: string, service: unknown) {\n return this.getServiceInstance(service).post('/ab_test', { test_name, action_type });\n }\n\n /**\n * Finish the experiment and remove from the cookie app-store\n */\n finishExperiment(test_name: string, service: unknown) {\n return this.getServiceInstance(service).post('/ab_test', {\n test_name,\n action_type: AB_TEST_ACTIONS.FINISH\n });\n }\n\n finishABExperiment(test_name: string, shard_name: unknown) {\n const baseUrl = HelperService.getBaseUrlMicroService({ name: shard_name });\n return this.http.post(`${baseUrl}/ab_test`, {\n test_name,\n action_type: AB_TEST_ACTIONS.FINISH\n });\n }\n\n /**\n * dynamically loads the microservice\n */\n private getServiceInstance(service) {\n console.log(typeof service);\n return service ? this.injector.get(service) : this.injector.get(MainApiHttpService); // fallback to Core Microservice\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { GEO_PATH } from '@posiwise/common-utilities';\n\nimport { CookieService } from 'ngx-cookie';\nimport { of } from 'rxjs';\nimport { tap } from 'rxjs/operators';\n\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GeoService {\n private readonly url = GEO_PATH;\n\n constructor(\n private readonly api: MainApiHttpService,\n private readonly cookieService: CookieService\n ) {}\n\n getCountries() {\n return this.api.get(`${this.url}/countries`);\n }\n\n getRegions(countryId) {\n return this.api.get(`${this.url}/regions/${countryId}`);\n }\n\n getCountryFromIP() {\n // Cache the location details\n if (this.cookieService.get('location_from_ip')) {\n return of(JSON.parse(this.cookieService.get('location_from_ip')));\n }\n\n return this.api.get(`${this.url}/location_from_ip`).pipe(\n tap((data: object) => {\n return this.cookieService.putObject('location_from_ip', data);\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Paging, Subscription } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable()\nexport class SubscriptionService {\n endpoint = '/subscriptions/';\n\n constructor(private readonly api: MainApiHttpService) {}\n\n getById(id: number) {\n return this.api.get(`${this.endpoint}${id}`);\n }\n\n deleteSubscription(id: number, reqJson: object) {\n return this.api.delete(`/subscriptions/${id}`, reqJson);\n }\n\n getSubscriptions(id: number) {\n return this.api.get(`/subscriptions/${id}`);\n }\n\n postSubscription(data: Partial<Subscription>) {\n return this.api.post('/subscriptions', data);\n }\n\n updateSubscription(id: number, data: Partial<Subscription>) {\n return this.api.put(`/subscriptions/${id}`, data);\n }\n\n updateSubscriptionUnit(id: number, units) {\n return this.api.put(`/subscriptions/${id}/update_units`, { purchased_units: units });\n }\n\n addPartnersToSubscription(id: number, data) {\n const formData = new FormData();\n\n // eslint-disable-next-line no-restricted-syntax\n for (const key in data) {\n if (Object.hasOwn(data, key)) {\n formData.append(key, data[key]);\n }\n }\n\n return this.api.post(`/subscriptions/${id}/partners/invite_partner`, data);\n }\n\n getProductList(paging?: Paging, subscription_id?: number, _params?) {\n return this.api.getWithParams(\n `/subscriptions/${subscription_id}/partners/products_for_partners`,\n HelperService.getPagingParams(paging)\n );\n }\n\n removePartner(id: number, partner_id: number) {\n return this.api.delete(`/subscriptions/${id}/partners/remove_partner/${partner_id}`);\n }\n\n deactivatePartner(id: number, data) {\n const formData = new FormData();\n\n // eslint-disable-next-line no-restricted-syntax\n for (const key in data) {\n if (Object.hasOwn(data, key)) {\n formData.append(key, data[key]);\n }\n }\n\n return this.api.put(`/subscriptions/${id}/partners/toggle_active_status`, data);\n }\n\n addMembersToSubscription(id: number, data) {\n const formData = new FormData();\n\n // eslint-disable-next-line no-restricted-syntax\n for (const key in data) {\n if (Object.hasOwn(data, key)) {\n formData.append(key, data[key]);\n }\n }\n\n return this.api.post(`/subscriptions/${id}/signup_members`, data);\n }\n\n signUpMemberUrl(id: number) {\n return `/subscriptions/${id}/signup_members`;\n }\n\n getEnrolledSubscription(id: number, paging?: Paging) {\n return this.api.getWithParams(\n `/subscriptions/${id}/members`,\n HelperService.getPagingParams(paging)\n );\n }\n removeEnrolledSubscription(id: number, user_id: number) {\n return this.api.delete(`/subscriptions/${id}/remove_member/${user_id}`);\n }\n\n toggleAdmin(id: number, data) {\n return this.api.put(`/subscriptions/${id}/toggle_admin`, data);\n }\n\n updateSubscriptionAPIKey(id: number) {\n return this.api.put(`/subscriptions/${id}/update_api_key`);\n }\n\n refreshApiTokens(id: number) {\n return this.api.get(`/subscriptions/${id}/refresh_api_tokens`);\n }\n\n addFullLogo(id: number, data) {\n return this.api.upload(`/subscriptions/${id}`, data, 'full_logo');\n }\n\n addSquaredLogo(id: number, data) {\n return this.api.upload(`/subscriptions/${id}`, data, 'squared_logo');\n }\n\n getCardDetails(subscriptionId: number) {\n return this.api.get(`/subscriptions/${subscriptionId}/card_detail`);\n }\n\n updateCardDetails(data: { [key: string]: string }, subscription_id: number) {\n return this.api.post(`/subscriptions/${subscription_id}/update_card`, data);\n }\n\n getEnterpriseInsight(subscriptionId: number, starting_at?: string, ending_at?: string) {\n return this.api.getWithParams(\n `/subscriptions/${subscriptionId}/enterprise_analytics?type=summary`,\n { starting_at, ending_at }\n );\n }\n\n postSubscriptionCredential(data) {\n return this.api.post(`/subscription_credentials`, data);\n }\n\n editSubscriptionCredential(id: number, data) {\n return this.api.put(`/subscription_credentials/${id}`, data);\n }\n\n getAllSubscriptionCredentials(subscription_id: number, paging?: Paging) {\n return this.api.getWithParams(`/subscription_credentials/get_all`, {\n subscription_id,\n ...HelperService.getPagingParams(paging)\n });\n }\n\n getAllSubscriptionPartners(subscription_id: number, paging?: Paging) {\n return this.api.getWithParams(`/subscriptions/${subscription_id}/partners/get_all`, {\n ...HelperService.getPagingParams(paging)\n });\n }\n\n deleteSubscriptionCredential(id: number, subscriptionId: number) {\n return this.api.delete(`/subscription_credentials/${id}?subscription_id=${subscriptionId}`);\n }\n\n getAllCredentials(paging?: Paging) {\n return this.api.getWithParams(`/credentials/get_all`, {\n ...HelperService.getPagingParams(paging)\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Paging, PRODUCT_PATH } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ProductService {\n private readonly endpoint = '/admin/product';\n\n constructor(private readonly api: MainApiHttpService) {}\n\n /// ////////////////////\n /// // ADMIN PRODUCT API\n /// ////////////////////\n deleteProduct(id: number, subscription_id: number) {\n return this.api.delete(`${this.endpoint}/${id}?subscription_id=${subscription_id}`);\n }\n\n updateProduct(data, id: number) {\n return this.api.put(`${this.endpoint}/${id}`, data);\n }\n\n addProduct(data) {\n return this.api.post(this.endpoint, data);\n }\n\n inviteForTrial(id: number, body, subscription_id: number) {\n return this.api.post(`${this.endpoint}/${id}/invite_for_trial`, {\n ...body,\n subscription_id\n });\n }\n\n getProductList(paging?: Paging, subscription_id?: number, params?) {\n return this.api.getWithParams(`${PRODUCT_PATH}/get_all`, {\n ...HelperService.getPagingParams(paging),\n subscription_id,\n ...params\n });\n }\n\n getSupportedCurrency() {\n return this.api.get(`${PRODUCT_PATH}/supported_currencies`);\n }\n\n getSupportedRegions() {\n return this.api.get(`${PRODUCT_PATH}/supported_regions`);\n }\n\n /// ////////////////////\n /// // PRODUCT API\n /// ////////////////////\n getProducts(params) {\n return this.api.getWithParams(`${PRODUCT_PATH}/get_all?page=1&page_size=200`, {\n ...params\n });\n }\n\n getProductById(id: number) {\n return this.api.get(`${PRODUCT_PATH}/${id}`);\n }\n\n getProductCategories() {\n return this.api.get(`${PRODUCT_PATH}/categories`);\n }\n\n getProductInsight(subscriptionId: number, starting_at?: string, ending_at?: string) {\n return this.api.getWithParams(\n `/admin/subscriptions_analytics?type=products&subscription_id=${subscriptionId}`,\n { starting_at, ending_at }\n );\n }\n\n getUsersForProduct(id: number, subscription_id: number) {\n return this.api.getWithParams(`${this.endpoint}/${id}/insights`, { subscription_id });\n }\n\n getAvailableStripeUnsubscribeBehaviors() {\n return this.api.get(`admin/product/available_stripe_unsubscribe_behaviors`);\n }\n\n getAvailableStripeProrationBehaviors() {\n return this.api.get(`admin/product/available_stripe_proration_behaviors`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\n@Injectable()\nexport class ValidationService {\n static readonly CustomValidatorPatterns = {\n StrongPassword: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[!@#$%^&*])(?=.{8,})/,\n Year: '[0-9]{4}$'\n };\n\n /**\n * Validates email.\n */\n static email(input: string) {\n if (!input) {\n return false;\n }\n const reg = /^\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$/;\n\n return reg.test(input);\n }\n\n static patternValidator(regex: RegExp, error: ValidationErrors): ValidatorFn | null {\n return (control: AbstractControl): { [key: string]: string } => {\n if (!control.value) {\n // if control is empty return no error\n return null;\n }\n\n // test the value of the control against the regexp supplied\n const valid = regex.test(control.value as string);\n\n // if true, return no error (no error), else return error passed in the second parameter\n return valid ? null : error;\n };\n }\n}\n","import { AbstractControl, UntypedFormControl, UntypedFormGroup } from '@angular/forms';\n\nexport class FormHelperService {\n static markFormAsPristine(form: UntypedFormGroup | UntypedFormControl | AbstractControl) {\n form.markAsPristine();\n form.markAsUntouched();\n }\n\n static markAsTouched(form) {\n /* eslint-disable no-restricted-syntax */\n /* eslint-disable guard-for-in */\n for (const i in form.form.controls) {\n form.form.controls[i]['touched'] = true;\n }\n }\n\n static validateAllFormFields(form): void {\n Object.keys(form.controls).forEach(field => {\n const control = form.get(field);\n if (control instanceof UntypedFormControl) {\n control.markAsTouched();\n control.updateValueAndValidity();\n } else if (control instanceof UntypedFormGroup) {\n this.validateAllFormFields(control);\n }\n });\n }\n}\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable, Injector } from '@angular/core';\n\nimport { Paging } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { Observable, throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\nimport {\n AhoyEventResponse,\n AhoyMessageResponse,\n AhoyVersionResponse,\n AhoyVisitResponse,\n RequestParams,\n TrackEventResponse\n} from './common-services.interface';\nimport { CustomToastService } from './toast.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AhoyService {\n private readonly ahoy = '/ahoy';\n\n private readonly toast: CustomToastService;\n\n constructor(\n private readonly http: HttpClient,\n public injector: Injector\n ) {\n this.toast = injector.get(CustomToastService);\n }\n\n getAhoyEvents(params: RequestParams, service, paging: Paging): Observable<AhoyEventResponse> {\n const baseUrl = HelperService.getBaseUrlMicroService(service);\n const page = HelperService.getPagingParams(paging);\n\n return this.http\n .get<AhoyEventResponse>(`${baseUrl}${this.ahoy}/events`, {\n params: { ...page, ...params }\n })\n .pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n getAhoyMessages(\n params: RequestParams,\n service,\n paging: Paging\n ): Observable<AhoyMessageResponse> {\n const baseUrl = HelperService.getBaseUrlMicroService(service);\n const page = HelperService.getPagingParams(paging);\n\n return this.http\n .get<AhoyMessageResponse>(`${baseUrl}${this.ahoy}/messages`, {\n params: { ...page, ...params }\n })\n .pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n getAhoyVisits(params: RequestParams, service, paging: Paging): Observable<AhoyVisitResponse> {\n const baseUrl = HelperService.getBaseUrlMicroService(service);\n const page = HelperService.getPagingParams(paging);\n\n return this.http\n .get<AhoyVisitResponse>(`${baseUrl}${this.ahoy}/visits`, {\n params: { ...page, ...params }\n })\n .pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n getVersions(params: RequestParams, service, paging: Paging): Observable<AhoyVersionResponse> {\n const baseUrl = HelperService.getBaseUrlMicroService(service);\n const page = HelperService.getPagingParams(paging);\n\n return this.http\n .get<AhoyVersionResponse>(`${baseUrl}/versions/get_all`, {\n params: { ...page, ...params }\n })\n .pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n getEvents(params: RequestParams, service, paging: Paging): Observable<TrackEventResponse> {\n const baseUrl = HelperService.getBaseUrlMicroService(service);\n const page = HelperService.getPagingParams(paging);\n\n return this.http\n .get<TrackEventResponse>(`${baseUrl}/events/get_all`, {\n params: { ...page, ...params }\n })\n .pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n handleError(error: HttpErrorResponse): void {\n if (error?.error?.status_code !== 'unauthorized__REMOVED_X_TESTING') {\n if (error?.error?.status === 401) {\n this.toast.clear();\n }\n\n this.toast.showToast(error);\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport {\n ADMIN_FAQS_PATH,\n CONTACT_US_PATH,\n CUSTOMER_SUPPORT_PATH,\n FAQS_PATH,\n FEEDBACK_QUESTIONS_PATH,\n GLOBAL_CONFIGS_PATH,\n GLOBAL_SUBSCRIPTION_CONFIGS_PATH,\n INCIDENTS_PATH,\n INCIDENTS_PATH_ADMIN,\n NEWSLETTER_SUBSCRIPTION_PATH,\n NEWSLETTER_UNSUBSCRIBE_PATH,\n NEWSLETTERS_PATH,\n ORGANIZATIONS_PATH,\n Paging,\n USER_FEEDBACKS_PATH,\n USER_LOGIN_NOTIFICATION\n} from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { GetFaqParams } from './common-services.interface';\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CommonService {\n constructor(private readonly api: MainApiHttpService) {}\n\n addContactUsMessage(data) {\n return this.api.post(CONTACT_US_PATH, data);\n }\n\n getIncidents(paging?: Paging) {\n return this.api.getWithParams(`${INCIDENTS_PATH}/get_all`, {\n ...HelperService.getPagingParams(paging)\n });\n }\n\n getIncidentsAdmin(paging?: Paging, subscriptionId?: number) {\n return this.api.getWithParams(`${INCIDENTS_PATH_ADMIN}/get_all`, {\n ...HelperService.getPagingParams(paging),\n subscription_id: subscriptionId\n });\n }\n\n addIncident(data) {\n return this.api.post(`${INCIDENTS_PATH_ADMIN}`, data);\n }\n\n editIncident(id, data) {\n return this.api.put(`${INCIDENTS_PATH_ADMIN}/${id}`, data);\n }\n\n getIncidentById(id: number, subscription_id) {\n return this.api.get(`${INCIDENTS_PATH_ADMIN}/${id}?subscription_id=${subscription_id}`);\n }\n\n deleteIncidentAdmin(id: number, subscription_id: number) {\n return this.api.delete(`${INCIDENTS_PATH_ADMIN}/${id}?subscription_id=${subscription_id}`);\n }\n // Newsletters\n\n getAllNewsletter(paging?: Paging) {\n return this.api.getWithParams(`${NEWSLETTERS_PATH}/get_all`, {\n visible: true,\n ...HelperService.getPagingParams(paging)\n });\n }\n\n toggleNewsletter(newsletterId: number, param) {\n return this.api.put(`${NEWSLETTER_SUBSCRIPTION_PATH}/${newsletterId}/toggle`, param);\n }\n\n unsubscribeNewsletter(token: string) {\n return this.api.get(`/${NEWSLETTER_UNSUBSCRIBE_PATH}?token=${token}`);\n }\n\n // FAQ\n\n getFaq(params: GetFaqParams) {\n return this.api.getWithParams(ADMIN_FAQS_PATH, { ...params });\n }\n\n getFaqById(id: number, subscription_id) {\n return this.api.getWithParams(`${FAQS_PATH}/${id}`, { subscription_id });\n }\n getFaqCategories(subscription_id: number) {\n return this.api.getWithParams(`faqs/available_categories`, { subscription_id });\n }\n getPublicFaq(subscription_id: number, search_term = '') {\n return this.api.getWithParams(`${FAQS_PATH}`, { subscription_id, search_term });\n }\n\n getPublicFaqById(id: number) {\n return this.api.get(`${FAQS_PATH}/${id}`);\n }\n\n // Organization\n\n getOrganizationSizes(paging?: Paging) {\n return this.api.getWithParams(\n `${ORGANIZATIONS_PATH}/sizes/get_all`,\n HelperService.getPagingParams(paging)\n );\n }\n\n getOrganizationTypes(paging?: Paging) {\n return this.api.getWithParams(\n `${ORGANIZATIONS_PATH}/types/get_all`,\n HelperService.getPagingParams(paging)\n );\n }\n\n getOrganizationIndustries(paging?: Paging) {\n return this.api.getWithParams(\n `${ORGANIZATIONS_PATH}/industries/get_all`,\n HelperService.getPagingParams(paging)\n );\n }\n\n getOrganizationDepartments(paging?: Paging) {\n return this.api.getWithParams(\n `${ORGANIZATIONS_PATH}/departments/get_all`,\n HelperService.getPagingParams(paging)\n );\n }\n\n // Global Config\n\n getAllGlobalSubscriptionConfigs(paging?: Paging) {\n return this.api.getWithParams(\n `${GLOBAL_SUBSCRIPTION_CONFIGS_PATH}/get_all?`,\n HelperService.getPagingParams(paging)\n );\n }\n\n postGlobalSubscriptionConfig(data) {\n return this.api.post(`${GLOBAL_SUBSCRIPTION_CONFIGS_PATH}`, data);\n }\n\n editGlobalSubscriptionConfig(id: number, data) {\n return this.api.post(`${GLOBAL_SUBSCRIPTION_CONFIGS_PATH}/${id}`, data);\n }\n\n getAllGlobalConfigs(paging?: Paging) {\n return this.api.getWithParams(\n `${GLOBAL_CONFIGS_PATH}/get_all?`,\n HelperService.getPagingParams(paging)\n );\n }\n\n // User Login Notification\n\n userLoginNotification(data) {\n return this.api.post(`${USER_LOGIN_NOTIFICATION}`, data);\n }\n\n // Customer Satisfaction\n\n feedbackQuestions(subscription_id: number) {\n return this.api.get(`${FEEDBACK_QUESTIONS_PATH}?subscription_id=${subscription_id}`);\n }\n\n userFeedbacks(data) {\n return this.api.post(`${USER_FEEDBACKS_PATH}`, data);\n }\n\n getAllUserFeedbacks(subscription_id: number, paging?: Paging) {\n return this.api.getWithParams(`${USER_FEEDBACKS_PATH}/get_all`, {\n ...HelperService.getPagingParams(paging),\n subscription_id\n });\n }\n\n getAllCustomerSupport(subscription_id: number, paging?: Paging) {\n return this.api.getWithParams(`${CUSTOMER_SUPPORT_PATH}/get_all?`, {\n ...HelperService.getPagingParams(paging),\n subscription_id\n });\n }\n\n postCustomerSupport(data) {\n const formData = new FormData();\n\n // eslint-disable-next-line no-restricted-syntax\n for (const key in data) {\n if (key in data) {\n formData.append(key, data[key]);\n }\n }\n\n return this.api.post(`${CUSTOMER_SUPPORT_PATH}`, formData);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport isNumber from 'lodash/isNumber';\nimport moment from 'moment';\n\nimport { NgbDateParserFormatter, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\n\nfunction padNumber(value: number) {\n if (isNumber(value)) {\n return `0${value}`.slice(-2);\n }\n\n return '';\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NgbDateCustomParserFormatter extends NgbDateParserFormatter {\n private readonly DELIMITER = '-';\n\n parse(value: string): NgbDateStruct | null {\n if (value) {\n const date = value.trim().split(this.DELIMITER);\n const hasNumber = /\\d/;\n if (!date[1]) {\n return null;\n }\n // convert month name to number\n const month = date[1] ? moment().month(date[1]).format('M') : '';\n // title case\n const str = date[1]\n .split(' ')\n .map(\n ([firstChar, ...rest]) => firstChar.toUpperCase() + rest.join('').toLowerCase()\n )\n .join(' ');\n if (!month || hasNumber.test(date[1]) || !moment.monthsShort().includes(str)) {\n return null;\n }\n return {\n day: Number.parseInt(date[0], 10),\n month: Number.parseInt(month, 10),\n year: Number.parseInt(date[2], 10)\n };\n }\n\n return null;\n }\n\n format(date: NgbDateStruct): string {\n const monthNames = [\n '',\n 'Jan',\n 'Feb',\n 'Mar',\n 'Apr',\n 'May',\n 'Jun',\n 'Jul',\n 'Aug',\n 'Sep',\n 'Oct',\n 'Nov',\n 'Dec'\n ];\n\n if (!date) {\n return '';\n }\n\n const day = isNumber(date.day) ? padNumber(date.day) : '';\n const month = isNumber(date.month) ? monthNames[date.month] : '';\n const year = date.year;\n return `${day}-${month}-${year}`;\n }\n\n dateFormatForPicker(date: string): NgbDateStruct {\n return {\n year: Number(date.substring(0, 4)),\n month: Number(date.substring(5, 7)),\n day: Number(date.substring(8, 10))\n };\n }\n}\n","export class PrimeNgHelper {\n isLoading = false;\n\n static dropdownDataSource(dataSource, label, value) {\n const result = [];\n dataSource.forEach(element => {\n const item = {\n ...element,\n label: element[label],\n value: element[value]\n };\n result.push(item);\n });\n\n return result;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport {\n ADMIN_PATH,\n ADMIN_TAG_CATEGORIES_PATH,\n ADMIN_TAG_PATH,\n Paging\n} from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TagService {\n ADMIN_TAG_PATH = ADMIN_TAG_PATH;\n ADMIN_TAG_CATEGORIES_PATH = ADMIN_TAG_CATEGORIES_PATH;\n ADMIN_PATH = ADMIN_PATH;\n\n constructor(private readonly api: MainApiHttpService) {}\n\n /// //////////////////////\n /// /// Admin Tag Section\n /// //////////////////////\n deleteTagById(id: number, subscription_id: number) {\n return this.api.delete(`${this.ADMIN_TAG_PATH}${id}?subscription_id=${subscription_id}`);\n }\n\n updateTagById(id: number, data) {\n const formData = new FormData();\n\n // eslint-disable-next-line no-restricted-syntax\n for (const key in data) {\n if (key in data) {\n formData.append(key, data[key]);\n }\n }\n\n return this.api.put(`${this.ADMIN_TAG_PATH}${id}`, formData);\n }\n\n addAdminTag(data) {\n const formData = new FormData();\n\n // eslint-disable-next-line no-restricted-syntax\n for (const key in data) {\n if (key in data) {\n formData.append(key, data[key]);\n }\n }\n\n return this.api.post(this.ADMIN_TAG_PATH, formData);\n }\n\n /// //////////////////////\n /// /// Tags API's\n /// //////////////////////\n getTagsByType(tag_type: string, paging: Paging, subscription_id?: number) {\n return this.api.getWithParams('/tags/get_all_tags', {\n tag_type,\n subscription_id,\n ...HelperService.getPagingParams(paging)\n });\n }\n\n getAvailableTagType(subscription_id: number) {\n return this.api.getWithParams('/tags/available_tag_types', { subscription_id });\n }\n\n addTags(data, subscription_id?: number) {\n return this.api.post('/tags', { ...data, subscription_id });\n }\n\n getTagsByEntity(slug: string, tag_entity: string, tag_type: string, subscription_id?: number) {\n return this.api.getWithParams('/tags/get_entity_tags', {\n slug,\n tag_entity,\n tag_type,\n subscription_id,\n ...HelperService.getPagingParams({})\n });\n }\n\n getGroupedSkills(slug: string, tagEntity: string, tagType: string) {\n return this.api.get(\n `/tags/grouped_tags?slug=${slug}&tag_entity=${tagEntity}&tag_type=${tagType}`\n );\n }\n\n /// //////////////////////\n /// ///// Tag Categories\n /// //////////////////////\n getTagCategories(params: Paging, subscription_id: number) {\n return this.api.getWithParams(`${this.ADMIN_TAG_CATEGORIES_PATH}get_all`, {\n subscription_id,\n ...HelperService.getPagingParams(params)\n });\n }\n\n getAllTagCategories(params: Paging, subscription_id: number) {\n return this.api.getWithParams(`tag_categories/get_all`, {\n subscription_id,\n ...HelperService.getPagingParams(params)\n });\n }\n\n deleteTagCategoryById(id: number, subscription_id: number) {\n return this.api.delete(\n `${this.ADMIN_TAG_CATEGORIES_PATH}${id}?subscription_id=${subscription_id}`\n );\n }\n\n updateTagCategoryById(id: number, data, subscription_id: number) {\n return this.api.put(`${this.ADMIN_TAG_CATEGORIES_PATH}${id}`, { ...data, subscription_id });\n }\n\n addTagCategoryById(data, subscription_id: number) {\n return this.api.post(this.ADMIN_TAG_CATEGORIES_PATH, { ...data, subscription_id });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Paging } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TipsService {\n endpoint = '/tips/';\n\n constructor(private readonly api: MainApiHttpService) {}\n\n getAll(subscription_id: number, paging?: Paging) {\n return this.api.getWithParams(`/admin${this.endpoint}/get_all`, {\n ...HelperService.getPagingParams(paging),\n subscription_id\n });\n }\n\n getById(id: number, subscription_id: number) {\n return this.api.getWithParams(`/admin/tips/${id}`, { subscription_id });\n }\n\n saveTips(id: number, data, subscription_id: number) {\n return this.api.put(`/admin/tips/${id}`, { ...data, subscription_id });\n }\n\n addTips(data, subscription_id: number) {\n return this.api.post(`/admin/tips`, { ...data, subscription_id });\n }\n addUserTips(data, subscription_id?: number) {\n return this.api.post(`/users/user_tips`, { ...data, subscription_id });\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WindowService {\n /**\n * redirect to the given url\n * NOTE: this does hard page reload\n */\n replaceUrl(url: string) {\n window.location.href = url;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ADMIN_PATH, Paging } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GroupService {\n private readonly subscription_endpoint = '/subscriptions/';\n private readonly group_communications_endpoint = '/group_communications/';\n private readonly group_definitions_endpoint = '/group_definitions/';\n private readonly groups_endpoint = '/groups/';\n\n ADMIN_PATH = ADMIN_PATH;\n\n constructor(private readonly api: MainApiHttpService) {}\n\n // ------------------------------------------------------------\n // Subscription Service\n // ------------------------------------------------------------\n\n getById(id) {\n return this.api.get(`${this.subscription_endpoint}${id}`);\n }\n\n updateAgent(id: number, agent_id: number, data) {\n return this.api.put(\n `${ADMIN_PATH}${this.subscription_endpoint}${id}/agents/${agent_id}`,\n data\n );\n }\n\n getSubscriptionMembers(id: number, paging?: Paging) {\n return this.api.getWithParams(\n `${this.subscription_endpoint}${id}/members`,\n HelperService.getPagingParams(paging)\n );\n }\n\n // ------------------------------------------------------------\n // Group Service\n // ------------------------------------------------------------\n\n getGroupDefinitionById(id: number) {\n return this.api.get(`${this.group_definitions_endpoint}${id}`);\n }\n\n groupDefinitionGetAll(related_entity_id: number, related_entity_type: string, paging?: Paging) {\n return this.api.getWithParams(`${this.group_definitions_endpoint}get_all`, {\n related_entity_id,\n related_entity_type,\n ...HelperService.getPagingParams(paging)\n });\n }\n\n groupDefinitions(data) {\n return this.api.post(`${this.group_definitions_endpoint}`, data);\n }\n\n groupDefinitionsDelete(id: number) {\n return this.api.delete(`${this.group_definitions_endpoint}${id}`);\n }\n\n groupDefinitionsUpdate(id: number, data) {\n return this.api.put(`${this.group_definitions_endpoint}${id}`, data);\n }\n\n // ------------------------------------------------------------\n // Group Service\n // ------------------------------------------------------------\n\n postGroup(data) {\n return this.api.post(this.groups_endpoint, data);\n }\n\n getGroup(id: number) {\n return this.api.get(`${this.groups_endpoint}${id}`);\n }\n\n updateGroup(id: number, data) {\n return this.api.put(`${this.groups_endpoint}${id}`, data);\n }\n\n deleteGroup(id: number) {\n return this.api.delete(`${this.groups_endpoint}${id}`);\n }\n\n addEntityGroup(id: number, data) {\n return this.api.post(`${this.groups_endpoint}${id}/add_entities`, data);\n }\n\n deleteEntityGroup(entityId: number, related_entity_ids, related_entity_type: string) {\n return this.api.delete(\n `${this.groups_endpoint}${entityId}/remove_entity?related_entity_ids=${related_entity_ids}&related_entity_type=${related_entity_type}`\n );\n }\n\n getEntityGroup(id: number) {\n return this.api.get(`/groups/${id}`);\n }\n\n // ------------------------------------------------------------\n // Group Communication Service\n // ------------------------------------------------------------\n\n postCommunications(data) {\n return this.api.post(this.group_communications_endpoint, data);\n }\n\n editCommunications(id: number, data) {\n return this.api.put(`${this.group_communications_endpoint}${id}`, data);\n }\n\n getCommunicationDetails(id: number) {\n return this.api.get(`${this.group_communications_endpoint}${id}`);\n }\n\n deleteCommunications(id: number) {\n return this.api.delete(`${this.group_communications_endpoint}${id}`);\n }\n\n getAllCommunications(\n subscription_id: number,\n communication_type: string,\n group_id: number | string,\n paging?: Paging\n ) {\n return this.api.getWithParams(`${this.group_communications_endpoint}get_all`, {\n subscription_id,\n communication_type,\n group_id,\n ...HelperService.getPagingParams(paging)\n });\n }\n\n getAllCommunicationsWithOutGroupId(\n subscription_id: number,\n communication_type: string,\n paging?: Paging\n ) {\n return this.api.getWithParams(`${this.group_communications_endpoint}get_all`, {\n subscription_id,\n communication_type,\n ...HelperService.getPagingParams(paging)\n });\n }\n\n // ------------------------------------------------------------\n // Group Communication Files Service\n // ------------------------------------------------------------\n\n postCommunicationFiles(data) {\n return this.api.post(`/group_communication_files`, data);\n }\n\n deleteCommunicationFiles(id: number) {\n return this.api.delete(`/group_communication_files/${id}`);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { QUALIFICATIONS_PATH } from '@posiwise/common-utilities';\n\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class QualificationService {\n private readonly endPoint = QUALIFICATIONS_PATH;\n\n constructor(private readonly api: MainApiHttpService) {}\n\n addQualifications(data) {\n return this.api.post(this.endPoint, data);\n }\n\n updateQualifications(id: number, data) {\n return this.api.put(`${this.endPoint}/${id}`, data);\n }\n\n deleteQualifications(id: number) {\n return this.api.delete(`${this.endPoint}/${id}`);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DashboardService {\n constructor(private readonly api: MainApiHttpService) {}\n\n search(keyword: string, subscriptionId: number) {\n return this.api.get(\n `/search/global_search?search_term=${keyword}&subscription_id=${subscriptionId}`\n );\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { BehaviorSubject, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { MainApiHttpService } from './main-api-http.service';\nimport { PermissionService } from './permission.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MailBoxService {\n private readonly endpoint = '/mailbox/';\n private readonly checkUnreadCountSubject = new BehaviorSubject<number>(0);\n\n totalUnreadCount$ = this.checkUnreadCountSubject.asObservable();\n\n constructor(private readonly http: MainApiHttpService) {}\n\n getMessages(conversation_id, page_number = 1, page_size = 10) {\n return conversation_id\n ? this.http.get(\n `${this.endpoint}${conversation_id}/messages?page=${page_number}&page_size=${page_size}`\n )\n : of([]);\n }\n\n getConversations() {\n return this.http\n .get(\n `${this.endpoint}conversations?subscription_id=${PermissionService.selectedSubscription.id}`\n )\n .pipe(\n map(c => {\n const count = c\n .map(x => x?.unread_count)\n .reduce((a: number, b: number) => a + b, 0);\n if (count > -1) {\n this.checkUnreadCountSubject.next(count);\n }\n\n return c;\n })\n );\n }\n\n postMessage(data) {\n return this.http.post(`${this.endpoint}compose`, data);\n }\n\n markAsRead(conversation_id) {\n return this.http.post(`${this.endpoint}read`, { conversation_id });\n }\n\n decrementUnreadCount(count: number) {\n const newCount = +this.checkUnreadCountSubject.getValue() - count;\n if (newCount > -1) {\n this.checkUnreadCountSubject.next(newCount);\n }\n }\n\n incrementUnreadCount(count: number) {\n const newCount = +this.checkUnreadCountSubject.getValue() + count;\n if (newCount > -1) {\n this.checkUnreadCountSubject.next(newCount);\n }\n }\n\n deleteMessage(conversationId, messageId) {\n return this.http.delete(\n `${this.endpoint}delete_message?conversation_id=${conversationId}&message_id=${messageId}`\n );\n }\n\n getRecipient(params = {}) {\n return this.http.getWithParams(`${this.endpoint}available_recipients`, params);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { AppConfigService } from '@posiwise/app-config-service';\n\nimport { Observable } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\nimport { webSocket, WebSocketSubject } from 'rxjs/webSocket';\n\nimport { AuthService } from './auth.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WebsocketService {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private webSocketSubject: WebSocketSubject<any>;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n webSocket$: Observable<any>;\n\n constructor(\n private readonly appConfigService: AppConfigService,\n private readonly authService: AuthService\n ) {\n this.appConfigService.appConfig$.subscribe(config => {\n const socketLink = config['links'].socket_link;\n const url = `${socketLink}/websockets/websocket?session_token=${btoa(\n this.authService.getToken()\n )}`;\n this.webSocketSubject = webSocket(url);\n this.webSocket$ = this.webSocketSubject.asObservable().pipe(distinctUntilChanged());\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Paging, SOCKET_TYPE } from '@posiwise/common-utilities';\n\nimport { BehaviorSubject } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { MainApiHttpService } from './main-api-http.service';\nimport { WebsocketService } from './socket.service';\nimport { CustomToastService } from './toast.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NotificationService {\n private readonly notificationSubject$ = new BehaviorSubject<string[]>([]);\n\n endpoint = 'notes_read';\n\n constructor(\n private readonly api: MainApiHttpService,\n private readonly toastrService: CustomToastService,\n private readonly socketService: WebsocketService\n ) {}\n\n getNotifications(paging?: Paging) {\n return this.api.getWithParams(`/notes?show_on_dashboard=true`, {\n ...paging\n });\n }\n\n getDismissedNotifications(paging?: Paging) {\n return this.api.getWithParams(`/notes?dismissed=true`, {\n ...paging\n });\n }\n\n showNotifications(data) {\n this.notificationSubject$.next(data);\n }\n\n readNotifications() {\n return this.api.put('/user/notes_read', {});\n }\n\n dismissNotification(id: number) {\n const formData = new FormData();\n formData.append('dismissed', 'true');\n formData.append('id', String(id));\n\n return this.api.put(`/notes/${id}/dismiss`, formData).pipe(map(res => JSON.stringify(res)));\n }\n\n deleteNotifications(id: number) {\n return this.api.delete(`/notes/${id}`);\n }\n\n reinstateNotification(id: number) {\n return this.api.put(`/notes/${id}/reinstate`);\n }\n\n notiWebSocket() {\n return this.socketService.webSocket$.pipe(\n map(response => {\n if (response.event === SOCKET_TYPE.NOTI) {\n const notification = response.data;\n // show the toastr for noti which is marked as show_on_toast to true\n if (notification?.show_on_toast) {\n this.toastrService.showToastrOnType(\n notification.toast_type,\n notification.content\n );\n }\n\n return notification;\n }\n\n return null;\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DataService {\n private readonly messageSource = new BehaviorSubject<number>(0);\n\n currentMessage = this.messageSource.asObservable();\n\n changeMessage(message: number) {\n this.messageSource.next(message);\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NumberPickerService {\n /**\n * Min picker value\n */\n min = 0;\n\n /**\n * Max picker value\n */\n max = 100;\n\n /**\n * Pick step value\n */\n step = 1;\n\n /**\n * Delay for start picking values\n */\n pickStartAfter = 500;\n\n /**\n * Delay between each pick\n */\n pickTimer = 100;\n\n /**\n * value precision\n */\n precision = 1;\n\n /**\n * Initial picker value\n */\n value = null;\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { ErrorHandler, Injectable } from '@angular/core';\n\nimport { AppConfigService } from '@posiwise/app-config-service';\nimport { User } from '@posiwise/common-utilities';\n\nimport { StatusCodes } from 'http-status-codes';\nimport { fromError } from 'stacktrace-js';\n\nimport {\n BrowserOptions,\n captureException,\n createErrorHandler,\n init,\n withScope\n} from '@sentry/angular';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SentryErrorHandler implements ErrorHandler {\n private static user: Partial<User>;\n private static sentryInitialized = false;\n private static unhandledRejectionListenerAttached = false;\n\n constructor(private readonly appConfigService: AppConfigService) {}\n\n private async initializeSentryAsync(): Promise<void> {\n if (SentryErrorHandler.sentryInitialized) {\n // Sentry is already initialized, no need to do it again\n return;\n }\n createErrorHandler();\n\n const config = await this.getSentryConfigAsync();\n\n this.appConfigService.appConfig$.subscribe(env => {\n if (env?.integrations?.sentry_config) {\n init({ ...config, ...env.integrations.sentry_config });\n SentryErrorHandler.sentryInitialized = true;\n\n // Add a global listener for unhandled promise rejections (once)\n if (!SentryErrorHandler.unhandledRejectionListenerAttached) {\n window.addEventListener(\n 'unhandledrejection',\n (event: PromiseRejectionEvent) => {\n this.handlePromiseRejection(event);\n }\n );\n SentryErrorHandler.unhandledRejectionListenerAttached = true;\n }\n }\n });\n }\n\n private async getSentryConfigAsync(): Promise<BrowserOptions> {\n return new Promise(resolve => {\n const environment =\n window.location.host?.includes('dev') || window.location.host?.includes('localhost')\n ? 'development'\n : 'production';\n\n const config: BrowserOptions = {\n dsn: null,\n // Disable Session Replay (uses eval internally) for CSP 'unsafe-eval' compliance\n replaysSessionSampleRate: 0,\n replaysOnErrorSampleRate: 0,\n // NOTE: We intentionally do not enable Performance Tracing here.\n // The previous integration (`BrowserTracing` + `routingInstrumentation`) was part of\n // the legacy `@sentry/angular-ivy` API and isn't available in `@sentry/angular` v10.\n beforeSend(event, hint) {\n const initialExceptionValuesLength = Array.isArray(event?.exception?.values)\n ? event.exception.values.length\n : undefined;\n\n const safeIncludes = (val: unknown, needle: string) =>\n typeof val === 'string' && val.includes(needle);\n\n // Check if the event is of type CloseEvent and ignore it\n if (event?.exception?.values) {\n event.exception.values = event.exception.values.filter(value => {\n // Update the condition based on the actual structure of the event\n return !(\n value.type === 'CloseEvent' ||\n safeIncludes(value.value, 'CloseEvent')\n );\n });\n }\n\n if (event?.exception?.values) {\n event.exception.values = event.exception.values.filter(value => {\n // Check for the specific error message and ignore it\n return !(\n value.type === 'Error' &&\n safeIncludes(value.value, 'ResizeObserver loop completed')\n );\n });\n }\n\n // originates from vendor.js file\n if (event?.exception?.values) {\n const isJsonParsingError = event.exception.values.some(value => {\n return (\n value.type === 'SyntaxError' &&\n value?.value?.includes(\"expected ':' after property name in\")\n );\n });\n\n if (isJsonParsingError) {\n return null;\n }\n }\n\n // Check if the event is a ChunkLoadError and ignore it (it could be because of poor network)\n if (event?.exception?.values) {\n event.exception.values = event.exception.values.filter(value => {\n return !(\n value.type === 'ChunkLoadError' ||\n safeIncludes(value.value, 'ChunkLoadError: Loading chunk')\n );\n });\n }\n\n // Check if the event is a script loading error and ignore it\n if (event?.exception?.values) {\n event.exception.values = event.exception.values.filter(value => {\n return !(\n value.type === 'Error' &&\n safeIncludes(value.value, 'Could not load \"util\"')\n );\n });\n }\n\n // Check if the event is a timeout error and ignore it\n if (event?.exception?.values) {\n event.exception.values = event.exception.values.filter(value => {\n return !(\n value.type === 'Error' &&\n safeIncludes(value.value, 'Error loading plotly.js library from')\n );\n });\n }\n\n // Check if the event is related to cross-origin frame access\n if (event?.exception?.values) {\n const isCrossOriginFrameError = event.exception.values.some(value => {\n return (\n value.type === 'SecurityError' &&\n value?.value?.includes(\n \"Failed to read a named property 'navigator' from 'Window': Blocked a frame with origin\"\n )\n );\n });\n\n if (isCrossOriginFrameError) {\n // Exclude cross-origin frame errors from being reported to Sentry\n return null;\n }\n }\n\n // Check if it's a non-error exception\n const isNonErrorException =\n event?.exception?.values?.[0]?.value?.startsWith(\n 'Non-Error exception captured'\n ) ??\n (hint?.originalException as Error)?.message?.startsWith(\n 'Non-Error exception captured'\n );\n\n if (isNonErrorException) {\n // We want to ignore those kinds of errors\n return null;\n }\n\n // If we started with exception values but filtered them all out, drop the event.\n // Otherwise Sentry will group it as an \"unlabeled event\" and spam the issue stream.\n if (\n typeof initialExceptionValuesLength === 'number' &&\n initialExceptionValuesLength > 0 &&\n Array.isArray(event?.exception?.values) &&\n event.exception.values.length === 0\n ) {\n return null;\n }\n\n return event;\n },\n denyUrls: [/drift.*\\.js/i, /analytics.*\\.js/i, /polyfills.*\\.js/i, /vendor.*\\.js/i],\n environment,\n\n // We ignore Server Errors. We have to define here since Angular\n // http client uses setTimeout to detect http call progress.\n // And when the call fails, it throws an exception inside that timeout\n // that bubbles up higher to the main Angular's error handler.\n ignoreErrors: [\n 'top.GLOBALS',\n 'ResizeObserver loop completed with undelivered notifications'\n ]\n };\n resolve(config);\n });\n }\n initializeUser(user: Partial<User>) {\n SentryErrorHandler.user = {\n id: user?.id,\n name: user?.first_name,\n email: user?.email\n } as Partial<User>;\n }\n\n private handlePromiseRejection(event: PromiseRejectionEvent): void {\n const error = event.reason;\n this.logToSentry(error);\n this.logToConsole(error);\n }\n\n handleError(incomingError: HttpErrorResponse | Error) {\n // in case of 401, return no exception\n if (incomingError instanceof HttpErrorResponse) {\n if (\n incomingError.status === StatusCodes.UNAUTHORIZED ||\n incomingError.status === StatusCodes.FORBIDDEN\n ) {\n // Handle 401 error (e.g., redirect to login page)\n console.error('Unauthorized request:', incomingError);\n return;\n }\n\n if (incomingError.status === StatusCodes.UNPROCESSABLE_ENTITY) {\n // Handle 422 error\n console.error('UNPROCESSABLE_ENTITY request:', incomingError);\n return;\n }\n\n if (incomingError.status === 433) {\n // Handle 433 error\n console.error('over message quota:', incomingError);\n return;\n }\n }\n this.handleExceptionError(incomingError);\n }\n\n handleExceptionError(incomingError) {\n if (incomingError) {\n let error = incomingError; // The actual error to log\n while ('originalError' in error && error.originalError instanceof Error) {\n this.logToConsole(error);\n error = error.originalError;\n }\n this.extractOriginalError(error, incomingError);\n }\n }\n\n extractOriginalError(error, incomingError) {\n // Exclude specific errors\n if (error instanceof HttpErrorResponse) {\n if (error.status === StatusCodes.NOT_FOUND) {\n console.warn('Excluded 404 error:', error);\n return; // Skip logging to Sentry\n }\n if (error.status === 0 && error.statusText === 'Unknown Error') {\n // Handle network-related errors differently or suppress them\n console.warn('Network-related error:', error);\n return; // Don't rethrow the error\n }\n const message = this.getErrorMessage(error);\n error = new Error(`Got HttpErrorResponse on URL ${error.url} message: ${message}`);\n }\n\n this.handleNonHttpErrorResponse(error);\n\n // Ensure all errors have a proper message\n this.errorMessageFormatter(error);\n\n // Existing Sentry initialization logic\n this.sentryInitialization(error, incomingError);\n }\n\n getErrorMessage(error): string {\n let { message } = error;\n if (!message) {\n try {\n message = JSON.stringify(error);\n } catch (e) {\n message =\n typeof error === 'object' && error !== null\n ? JSON.stringify(error)\n : error.toString();\n console.log(e);\n }\n }\n return message;\n }\n\n handleNonHttpErrorResponse(error) {\n if (typeof error === 'object' && 'message' in error) {\n if (error instanceof HttpErrorResponse) {\n if (error.status !== StatusCodes.UNAUTHORIZED) {\n error = new Error(`Object captured as exception: ${error}`); // NOSONAR\n }\n }\n // Exclude reporting 401 errors\n }\n }\n\n errorMessageFormatter(error) {\n if (!(error instanceof Error) || !error.message) {\n const defaultMessage = 'Captured an unlabeled event';\n\n if (error && 'isTrusted' in error) {\n console.warn('Ignored isTrusted browser event:', error);\n return;\n }\n\n const errorDetails = error ? JSON.stringify(error) : 'No more additional error info';\n const enhancedErrorMessage = `${defaultMessage} | Original error detail: ${errorDetails}`;\n error = new Error(enhancedErrorMessage); // NOSONAR\n }\n }\n\n sentryInitialization(error, incomingError) {\n if (!SentryErrorHandler.sentryInitialized) {\n this.initializeSentryAsync()\n .then(() => {\n this.logToSentry(error);\n throw incomingError;\n })\n .catch(err => {\n console.error('Error initializing Sentry:', err);\n this.logToConsole(error);\n });\n } else {\n this.logToSentry(error);\n }\n }\n\n private logToSentry(error: Error) {\n try {\n const user = SentryErrorHandler.user as Error;\n this.scopeWithSentry(error, user);\n } catch (e) {\n console.error('Unable to log the error to Sentry. An exception occurred:');\n console.error(e);\n }\n }\n\n private scopeWithSentry(error, user) {\n withScope(scope => {\n // Appends user details for sentry log\n scope.setUser({\n ...user\n });\n\n // Ensure error is properly formatted\n if (error instanceof Error && error.message) {\n captureException(error);\n } else if (typeof error === 'object' && error !== null) {\n this.handleNonStandardError(error);\n } else {\n this.handleUnlabeledEvent(error);\n }\n });\n }\n\n private handleNonStandardError(error: object) {\n if ('isTrusted' in error) {\n return;\n }\n // If it's an object but not a standard Error, attempt to log its properties safely\n let errorMessage = 'Captured non-standard error with no message'; // NOSONAR\n\n // Try to extract any message-like property safely\n if ('message' in error) {\n let messageText = '';\n\n if (typeof error.message === 'object' && error.message !== null) {\n messageText = JSON.stringify(error.message);\n } else if (typeof error.message === 'string') {\n messageText = error.message;\n }\n\n errorMessage = `Error message: ${messageText}`;\n } else {\n // Attempt to capture key properties safely\n try {\n errorMessage = `Captured non-standard error: ${JSON.stringify(error, Object.getOwnPropertyNames(error))}`;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (jsonError: any) {\n errorMessage = `Captured non-standard error with serialization issue: ${jsonError.message}`;\n }\n }\n\n // Create a new Error object with the enhanced message\n const errorObject = new Error(errorMessage);\n captureException(errorObject);\n }\n\n private handleUnlabeledEvent(error) {\n const defaultMessage = 'Captured an unlabeled event';\n\n if (error && 'isTrusted' in error) {\n console.warn('Ignored isTrusted browser event:', error);\n return;\n }\n\n const errorDetails = error ? JSON.stringify(error) : 'No additional error info';\n const enhancedErrorMessage = `${defaultMessage} | Original error details: ${errorDetails}`;\n const enhancedError = new Error(enhancedErrorMessage);\n\n captureException(enhancedError);\n }\n\n private logToConsole(error: Error) {\n // Attempt to print in the console\n try {\n // We use StackTrace to try getting a good stacktrace. If it fails, just print the error\n const message = error.message ? error.message : error.toString();\n const url = window.location.href;\n fromError(error instanceof Error ? error : new Error('Non-Error Object')).then(\n stackFrames => {\n const stackString = stackFrames.splice(0, 20).map(sf => sf.toString());\n\n console.error({ message, url, stack: stackString, error });\n }\n );\n } catch (e) {\n console.error(error, e);\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LogoCacheService {\n private cache: { [url: string]: string } = {};\n private loadingUrls: { [url: string]: boolean } = {};\n\n constructor() {\n this.loadCache();\n }\n\n getLogo(url: string): string {\n if (this.cache[url]) {\n // If the URL is in the cache, return the base64-encoded image data directly\n return this.cache[url];\n }\n\n // If the URL is already in the process of loading, return the default image\n if (this.loadingUrls[url]) {\n return 'assets/img/icons/company.png';\n }\n\n // Mark the URL as in progress to prevent concurrent requests for the same URL\n this.loadingUrls[url] = true;\n\n // Attempt to load the image\n const img = new Image();\n img.crossOrigin = 'Anonymous'; // Set crossOrigin to handle CORS issues\n img.src = url;\n img.onload = () => {\n // If the image loads successfully (HTTP 200), update the cache with base64 data\n const canvas = document.createElement('canvas');\n canvas.width = img.width;\n canvas.height = img.height;\n const ctx = canvas.getContext('2d');\n ctx.drawImage(img, 0, 0);\n const base64Data = canvas.toDataURL('image/png');\n this.cache[url] = base64Data;\n this.saveCache();\n // Remove the URL from the in-progress list\n delete this.loadingUrls[url];\n };\n img.onerror = () => {\n // If the image fails to load, update the cache with the default image\n this.cache[url] = 'assets/img/icons/company.png';\n this.saveCache();\n // Remove the URL from the in-progress list\n delete this.loadingUrls[url];\n };\n\n // Return the default image while the image is being loaded\n return 'assets/img/icons/company.png';\n }\n\n private saveCache() {\n localStorage.setItem('Clearbit_Logos_Cache', JSON.stringify(this.cache));\n }\n\n private loadCache() {\n const cacheData = localStorage.getItem('Clearbit_Logos_Cache');\n if (cacheData) {\n this.cache = JSON.parse(cacheData);\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ScriptLoaderService } from './script-loader.service';\nimport { TipsService } from './tips.service';\n\ninterface Tour {\n id: string;\n steps: TourStep[];\n}\n\ninterface TourStep {\n target: string;\n title: string;\n content: string;\n placement: string;\n arrowOffset?: number;\n xOffset?: number;\n yOffset?: number;\n isHTML?: boolean;\n showPrevButton?: boolean;\n}\n\ndeclare let window: {\n hopscotch: {\n startTour: (tour: Tour) => void;\n endTour: () => void;\n nextStep: () => void;\n showStep: (stepNumber: number) => void;\n };\n};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HopscotchService {\n private readonly tour: Tour = {\n id: '',\n steps: []\n };\n\n constructor(\n private readonly scriptLoader: ScriptLoaderService,\n private readonly tipService: TipsService\n ) {}\n\n initializeTour(tourId: string, steps: TourStep[], tip_data, subscription_id?: number): void {\n this.tour.id = tourId;\n this.tour.steps = steps;\n\n this.scriptLoader.loadScript('head', '/assets/js/hopscotch.min.js', true).then(() => {\n window.hopscotch?.startTour(this.tour);\n // eslint-disable-next-line func-names\n window.hopscotch.nextStep = function () {\n const stepNumber = $('.hopscotch-bubble-number').text();\n\n if (this.tour.steps.length === Number(stepNumber)) {\n this.tipService.addUserTips(tip_data, subscription_id).subscribe();\n window?.hopscotch?.endTour();\n } else {\n window.hopscotch.showStep(Number(stepNumber));\n }\n }.bind(this);\n });\n }\n\n endTour(): void {\n if (window?.hopscotch) {\n window?.hopscotch?.endTour();\n }\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable, Injector, isDevMode } from '@angular/core';\n\nimport { AppConfigService } from '@posiwise/app-config-service';\nimport { BRAIN_API_PREFIX } from '@posiwise/common-utilities';\n\nimport { BaseHttpService } from './base-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BrainApiHttpService extends BaseHttpService {\n constructor(http: HttpClient, injector: Injector) {\n super(http, injector);\n }\n\n override getConfig(): void {\n this.injector.get(AppConfigService).appConfig$.subscribe(config => {\n this.baseUrl = isDevMode() ? BRAIN_API_PREFIX : config?.['links']['brain_api'] ?? '';\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { BrainApiHttpService } from './brain-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BrainApiService {\n constructor(private readonly api: BrainApiHttpService) {}\n\n invokeModel(payload: {\n model_name: 'claude' | 'deepseek';\n prompt: string;\n session_id?: string;\n max_tokens?: number;\n temperature?: number;\n }) {\n return this.api.post('/bedrock/invoke', payload);\n }\n}\n","/*\n * Public API Surface of pw-services\n */\nexport * from './lib/google-analytics.service';\nexport * from './lib/script-loader.service';\nexport * from './lib/base-http.service';\nexport * from './lib/common-services.module';\nexport * from './lib/seo.service';\nexport * from './lib/main-api-http.service';\nexport * from './lib/permission.service';\nexport * from './lib/toast.service';\nexport * from './lib/auth.service';\nexport * from './lib/local-storage.service';\nexport * from './lib/secure-token-storage.service';\nexport * from './lib/integrations-api-http.service';\nexport * from './lib/link-loader.service';\nexport * from './lib/user.service';\nexport * from './lib/custom-preloading.service';\nexport * from './lib/ab-test.service';\nexport * from './lib/geo.service';\nexport * from './lib/profile.service';\nexport * from './lib/subscription.service';\nexport * from './lib/product.service';\nexport * from './lib/validation.service';\nexport * from './lib/form-helper.service';\nexport * from './lib/ahoy.service';\nexport * from './lib/common.service';\nexport * from './lib/date-formatter.service';\nexport * from './lib/primeNgHelper';\nexport * from './lib/tag.service';\nexport * from './lib/tips.service';\nexport * from './lib/window.service';\nexport * from './lib/group.service';\nexport * from './lib/qualification.service';\nexport * from './lib/dashboard.service';\nexport * from './lib/mailbox.service';\nexport * from './lib/notification.service';\nexport * from './lib/socket.service';\nexport * from './lib/effects/user.effects';\nexport * from './lib/data.service';\nexport * from './lib/number-picker.service';\nexport * from './lib/sentry.service';\nexport * from './lib/logo-caching.service';\nexport * from './lib/hopscotch.service';\nexport * from './lib/brain.service';\nexport * from './lib/brain-api-http.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2.ScriptLoaderService","i3","i1.MainApiHttpService","i4","i5.ProfileService","i6.CustomToastService","i1.UserService","i1.PermissionService","i2","tap","i2.AuthService","i2.CustomToastService","i3.WebsocketService","i1.ScriptLoaderService","i2.TipsService","i1.BrainApiHttpService"],"mappings":"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"}