ngx-payvent-shared 0.0.6 → 0.0.7

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":"ngx-payvent-shared.mjs","sources":["../../../projects/ngx-payvent-shared/src/flowAppConfig.ts","../../../projects/ngx-payvent-shared/src/lib/misc/sidebar-context.ts","../../../projects/ngx-payvent-shared/src/lib/misc/misc.ts","../../../projects/ngx-payvent-shared/src/lib/misc/sorting-paging-criteria.ts","../../../projects/ngx-payvent-shared/src/lib/misc/story-context.ts","../../../projects/ngx-payvent-shared/src/lib/services/cookie/cookie.service.ts","../../../projects/ngx-payvent-shared/src/lib/services/global/global.service.ts","../../../projects/ngx-payvent-shared/src/lib/services/httpClient/httpClient.ts","../../../projects/ngx-payvent-shared/src/lib/services/sidebar/sidebar.service.ts","../../../projects/ngx-payvent-shared/src/lib/pipes/translation/translation.pipe.ts","../../../projects/ngx-payvent-shared/src/lib/services/signalr-notification/signalr-notification.service.ts","../../../projects/ngx-payvent-shared/src/lib/services/application-shared/application-shared.service.ts","../../../projects/ngx-payvent-shared/src/lib/services/translation-shared/translation-shared.service.ts","../../../projects/ngx-payvent-shared/src/lib/services/user-account/user-account.service.ts","../../../projects/ngx-payvent-shared/src/lib/services/appsettings-loader/appsettings-loader.service.ts","../../../projects/ngx-payvent-shared/src/lib/pipes/sum/sum.pipe.ts","../../../projects/ngx-payvent-shared/src/lib/services/modal/modal.service.ts","../../../projects/ngx-payvent-shared/src/lib/services/view-transition/view-transition.service.ts","../../../projects/ngx-payvent-shared/src/lib/components/translation/translation.component.ts","../../../projects/ngx-payvent-shared/src/lib/components/translation/translation.component.html","../../../projects/ngx-payvent-shared/src/lib/components/international-phone/international-phone.component.ts","../../../projects/ngx-payvent-shared/src/lib/components/international-phone/international-phone.component.html","../../../projects/ngx-payvent-shared/src/lib/components/country-province-city/country-province-city.component.ts","../../../projects/ngx-payvent-shared/src/lib/components/country-province-city/country-province-city.component.html","../../../projects/ngx-payvent-shared/src/lib/components/login-form/login-form.component.ts","../../../projects/ngx-payvent-shared/src/lib/components/login-form/login-form.component.html","../../../projects/ngx-payvent-shared/src/lib/components/cookie-bar/cookie-bar.component.ts","../../../projects/ngx-payvent-shared/src/lib/components/cookie-bar/cookie-bar.component.html","../../../projects/ngx-payvent-shared/src/lib/components/notification-list/notification-list.component.ts","../../../projects/ngx-payvent-shared/src/lib/components/notification-list/notification-list.component.html","../../../projects/ngx-payvent-shared/src/lib/components/notification-dropdown/notification-dropdown.component.ts","../../../projects/ngx-payvent-shared/src/lib/components/notification-dropdown/notification-dropdown.component.html","../../../projects/ngx-payvent-shared/src/lib/components/notification-toaster/notification-toaster.component.ts","../../../projects/ngx-payvent-shared/src/lib/components/notification-toaster/notification-toaster.component.html","../../../projects/ngx-payvent-shared/src/lib/components/qr-scanner/qr-scanner.component.ts","../../../projects/ngx-payvent-shared/src/lib/components/qr-scanner/qr-scanner.component.html","../../../projects/ngx-payvent-shared/src/lib/components/sidebar/sidebar.component.ts","../../../projects/ngx-payvent-shared/src/lib/components/sidebar/sidebar.component.html","../../../projects/ngx-payvent-shared/src/lib/components/stories/stories.component.ts","../../../projects/ngx-payvent-shared/src/lib/components/stories/stories.component.html","../../../projects/ngx-payvent-shared/src/lib/components/questions/questions.component.ts","../../../projects/ngx-payvent-shared/src/lib/components/questions/questions.component.html","../../../projects/ngx-payvent-shared/src/lib/components/login/login.component.ts","../../../projects/ngx-payvent-shared/src/lib/components/login/login.component.html","../../../projects/ngx-payvent-shared/src/lib/components/index.ts","../../../projects/ngx-payvent-shared/src/lib/directives/dragscroll.directive.ts","../../../projects/ngx-payvent-shared/src/lib/directives/view-transition.directive.ts","../../../projects/ngx-payvent-shared/src/public-api.ts","../../../projects/ngx-payvent-shared/src/ngx-payvent-shared.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\nexport class FlowAppConfig {\r\n production: boolean;\r\n application_id: string;\r\n groupId: string;\r\n client_id: string;\r\n endpoints: any;\r\n signalr_hubname: string;\r\n identityserver_scopes: string;\r\n defaultLanguage: string;\r\n forceOrigin: string;\r\n facebook: any;\r\n google: any;\r\n apple: any;\r\n fbPixel: string;\r\n}\r\n","import { Component, input, Input, signal } from \"@angular/core\";\r\n\r\n@Component({\r\n template: ``\r\n})\r\nexport class SidebarContext {\r\n @Input()\r\n close: any;\r\n @Input()\r\n setSize: any;\r\n private _context = signal<any>({});\r\n @Input()\r\n public set context(value) {\r\n this._context.set(value);\r\n }\r\n\r\n public get context() {\r\n return this._context;\r\n }\r\n\r\n}\r\n","export class Misc {\r\n static hexToRgbA(hex, opacity) {\r\n var c;\r\n if (/^#([A-Fa-f0-9]{3}){1,2}$/.test(hex)) {\r\n c = hex.substring(1).split('');\r\n if (c.length == 3) {\r\n c = [c[0], c[0], c[1], c[1], c[2], c[2]];\r\n }\r\n c = '0x' + c.join('');\r\n return 'rgba(' + [(c >> 16) & 255, (c >> 8) & 255, c & 255].join(',') + ',' + opacity + ')';\r\n }\r\n throw new Error('Bad Hex');\r\n }\r\n\r\n static formatString(str: string, ...val: string[]) {\r\n for (let index = 0; index < val.length; index++) {\r\n str = str.replace(`{${index}}`, val[index]);\r\n }\r\n return str;\r\n }\r\n\r\n public hexToRgbA(hex, a) {\r\n var c;\r\n if (/^#([A-Fa-f0-9]{3}){1,2}$/.test(hex)) {\r\n c = hex.substring(1).split('');\r\n if (c.length == 3) {\r\n c = [c[0], c[0], c[1], c[1], c[2], c[2]];\r\n }\r\n c = '0x' + c.join('');\r\n return 'rgba(' + [(c >> 16) & 255, (c >> 8) & 255, c & 255].join(',') + ',' + a + ')';\r\n }\r\n throw new Error('Bad Hex');\r\n }\r\n\r\n static replacer(key, value) {\r\n // Filtering out properties\r\n if (typeof value === 'string') {\r\n return encodeURIComponent(value);\r\n }\r\n return value;\r\n }\r\n\r\n static reviver(key, value) {\r\n // Filtering out properties\r\n if (typeof value === 'string') {\r\n return decodeURIComponent(value);\r\n }\r\n return value;\r\n }\r\n\r\n static stripHtml(originalString) {\r\n let strippedString = originalString ? originalString.replace(/(<([^>]+)>)/gi, '') : '';\r\n return strippedString;\r\n }\r\n}\r\n","export class SortingPagingCriteria {\r\n public numberOfRecords: number = 30;\r\n public pageNumber: number = 1;\r\n public totalResults: number;\r\n\r\n public columnSortOrdersDefinition: ColumnSortOrdersDefinition;\r\n public applySort(columnName) { \r\n if (this.columnSortOrdersDefinition.columnName == columnName) {\r\n this.columnSortOrdersDefinition.columnSortOrder = this.columnSortOrdersDefinition.columnSortOrder === 'Ascending' ? 'Descending' : 'Ascending';\r\n }\r\n else {\r\n this.columnSortOrdersDefinition.columnName = columnName;\r\n this.columnSortOrdersDefinition.columnSortOrder = 'Ascending';\r\n }\r\n }\r\n}\r\nclass ColumnSortOrdersDefinition {\r\n public columnName: string;\r\n public columnSortOrder: string\r\n}","import { signal } from \"@angular/core\";\r\n\r\nexport class StoryContext {\r\n id: string;\r\n type: string;\r\n src: string;\r\n completion = signal<any>(0);\r\n}","import { Injectable, inject } from '@angular/core';\r\nimport { GlobalService } from '../global/global.service';\r\nimport { Misc } from '../../misc';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FlowCookieService {\r\n instanceId: any;\r\n\r\n private _gdprConsent: string;\r\n\r\n public get gdprConsent() {\r\n if (!this._gdprConsent) this._gdprConsent = this.get('GdprConsent');\r\n return this._gdprConsent;\r\n }\r\n\r\n public set gdprConsent(value) {\r\n this._gdprConsent = value;\r\n this.put('GdprConsent', value, null);\r\n }\r\n\r\n constructor() {\r\n }\r\n\r\n get(name) {\r\n if (!localStorage.getItem(name))\r\n return null;\r\n\r\n let obj: any = null;\r\n try {\r\n obj = JSON.parse(localStorage.getItem(name)!, Misc.reviver);\r\n } catch { this.put(name, localStorage.getItem(name)); return localStorage.getItem(name) }\r\n\r\n if (obj.expires && Date.parse(obj.expires) < Date.parse(new Date().toISOString())) {\r\n localStorage.removeItem(name);\r\n return null;\r\n }\r\n else\r\n return obj.value;\r\n }\r\n\r\n\r\n\r\n remove(name: string) {\r\n localStorage.removeItem(name);\r\n }\r\n\r\n put(name: any, value: any, exp: any = null) {\r\n localStorage[name] = JSON.stringify({ value: value, expires: exp ? exp.toISOString() : null }, Misc.replacer);\r\n }\r\n}\r\n","import { EventEmitter, Injectable, inject, signal } from '@angular/core';\r\nimport { EdgeToEdge } from '@capawesome/capacitor-android-edge-to-edge-support';\r\nimport { Capacitor } from '@capacitor/core';\r\n\r\n\r\ndeclare var CKEDITOR: any;\r\nimport { FlowAppConfig } from '../../../flowAppConfig';\r\ndeclare var $: any;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class GlobalService {\r\n\r\n public onSuccess: EventEmitter<any> = new EventEmitter(false);\r\n public onError: EventEmitter<any> = new EventEmitter(false);\r\n // environment = inject(FlowAppConfig)\r\n public showLoader: boolean = true;\r\n public currentLanguage = signal('RO'); //this.environment.defaultLanguage;\r\n public currentEditLanguage = signal('RO'); //this.environment.defaultLanguage;\r\n\r\n public datePickerOptions: any = { autoclose: true, forceParse: true, format: 'd.mm.yyyy', orientation: 'bottom left', weekStart: 1 };\r\n public timePickerOptions: any = { showMeridian: false, minuteStep: 15, showSeconds: false, showInputs: false, explicitMode: true };\r\n\r\n public ckEditorOptions: any;\r\n\r\n public banks: any = {\r\n 'NBOR': 'BANCA NATIONALA A ROMANIEI',\r\n 'ABNA': 'ABN AMRO BANK ROMANIA',\r\n 'BUCU': 'ALPHA BANK ROMANIA SA',\r\n 'ARBL': 'ANGLO ROMANIAN BANK LTD',\r\n 'MIND': 'ATE BANK ROMANIA SA',\r\n 'BPOS': 'BANC POST SA',\r\n 'CARP': 'BANCA COMERCIALA CARPATICA SA',\r\n 'RNCB': 'BANCA COMERCIALA ROMANA SA',\r\n 'DARO': 'BANCA CR FIRENZE ROMANIA SA',\r\n 'BROM': 'BANCA DI ROMA SPA ITALIA - SUCURSALA BUCURESTI',\r\n 'BITR': 'BANCA ITALO ROMENA SPA',\r\n 'BRDE': 'BANCA ROMANA PENTRU DEZVOLTARE',\r\n 'BRMA': 'BANCA ROMANEASCA SA',\r\n 'BTRL': 'BANCA TRANSILVANIA SA',\r\n 'DAFB': 'BANK LEUMI ROMANIA SA',\r\n 'MIRB': 'BLOM BANK EGYPT SAE EGYPT - SUCURSALA ROMANIA',\r\n 'CECE': 'CASA DE ECONOMII SI CONSEMNATIUNI CEC SA',\r\n 'CITI': 'CITIBANK ROMANIA SA',\r\n 'CRCO': 'CREDIT COOP CASA CENTRALA',\r\n 'FNNB': 'CREDIT EUROPE BANK (ROMANIA) SA',\r\n 'EGNA': 'EGNATIA BANK (ROMANIA) SA',\r\n 'BSEA': 'EMPORIKI BANK-ROMANIA SA',\r\n 'EXIM': 'EXIMBANK ROMANIA',\r\n 'UGBI': 'GARANTIBANK INTERNATIONAL NV - SUCURSALA ROMANIA',\r\n 'HVBL': 'HVB BANCA PENTRU LOCUINTE',\r\n 'INGB': 'ING BANK NV',\r\n 'BREL': 'LIBRA BANK SA',\r\n 'CRDZ': 'MKB ROMEXTERRA BANK SA',\r\n 'OTPV': 'OTP BANK ROMANIA SA',\r\n 'PIRB': 'PIRAEUS BANK ROMANIA SA',\r\n 'PORL': 'PORSCHE BANK ROMANIA SA',\r\n 'MIRO': 'PROCREDIT BANK',\r\n 'RZBL': 'RAIFFEISEN BANCA PT LOCUINTE SA',\r\n 'RZBR': 'RAIFFEISEN BANK SA',\r\n 'ROIN': 'ROMANIAN INTERNATIONAL BANK SA',\r\n 'WBAN': 'SANPAOLO IMI BANK ROMANIA SA',\r\n 'TRFD': 'TRANSFOND SA',\r\n 'TREZ': 'TREZORERIA STATULUI',\r\n 'BACX': 'UNICREDIT TIRIAC BANK SA',\r\n 'VBBU': 'VOLKSBANK ROMANIA SA',\r\n };\r\n loading: boolean = true;\r\n sidebarOpen: boolean = false;\r\n loaded: any;\r\n insets = signal<any>(null);\r\n\r\n constructor() {\r\n if (typeof CKEDITOR !== 'undefined')\r\n this.ckEditorOptions = {\r\n toolbarGroups: [\r\n { name: 'clipboard', groups: ['clipboard', 'undo'] },\r\n { name: 'links' },\r\n { name: 'insert', groups: ['table', 'horizontalline', 'specialcharacters'] },\r\n { name: 'forms' },\r\n { name: 'tools' },\r\n { name: 'document', groups: ['document', 'doctools'] },\r\n { name: 'others' },\r\n '/',\r\n { name: 'basicstyles', groups: ['basicstyles', 'cleanup'] },\r\n { name: 'paragraph', groups: ['list', 'indent', 'blocks', 'align', 'bidi'] },\r\n { name: 'colors' },\r\n ],\r\n\r\n removeButtons: 'Underline,Subscript,Superscript',\r\n enterMode: CKEDITOR.ENTER_BR,\r\n // Set the most common block elements.\r\n\r\n allowedContent: true,\r\n // ALLOW <i></i>\r\n protectedSource: [...CKEDITOR.config.protectedSource, /<i[^>]*><\\/i>/g, /<a[^>]*><\\/a>/g],\r\n // Simplify the dialog windows.\r\n height: 350,\r\n ProcessHTMLEntities: false\r\n };\r\n if (Capacitor.isNativePlatform())\r\n EdgeToEdge.getInsets().then(s => { console.log(s); this.insets.set(s) }).then(s => EdgeToEdge.disable());\r\n }\r\n\r\n\r\n\r\n\r\n checkPID2(pid) {\r\n var pidLength = 13;\r\n\r\n // se testeaza lungimea pid-ului\r\n if (typeof (pid) != \"string\" || pid.length != pidLength) {\r\n return false;\r\n }\r\n\r\n var controlValues = new Array(2, 7, 9, 1, 4, 6, 3, 5, 8, 2, 7, 9);\r\n var divideValue = 11;\r\n\r\n var sexValue = 0;\r\n var monthValue = 0;\r\n var yearValue = 0;\r\n var dayValue = 0;\r\n\r\n // se citeste valorea referitoare la sex si data de nastere\r\n try {\r\n sexValue = parseInt(pid.substring(0, 1), 10);\r\n\r\n yearValue = parseInt(pid.substring(1, 3), 10);\r\n if (sexValue == 1 || sexValue == 2 || sexValue > 6)\r\n yearValue = 1900 + yearValue;\r\n else if (sexValue == 3 || sexValue == 4)\r\n yearValue = 1800 + yearValue;\r\n else if (sexValue == 5 || sexValue == 6)\r\n yearValue = 2000 + yearValue;\r\n\r\n monthValue = parseInt(pid.substring(3, 5), 10);\r\n if (monthValue < 1 && monthValue > 12) {\r\n return false;\r\n }\r\n\r\n dayValue = parseInt(pid.substring(5, 7), 10);\r\n if (dayValue < 0 && dayValue > 31) {\r\n return false;\r\n }\r\n\r\n if (!this.checkDateInFutureForPID(pid)) {\r\n return false;\r\n }\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n\r\n // se testeaza daca sexul e definit corect\r\n if (sexValue == 0) {\r\n return false;\r\n }\r\n\r\n // aleg secolul\r\n var centuryValue = 19;\r\n if (sexValue > 2 && sexValue < 5) {\r\n centuryValue = 18;\r\n }\r\n else if (sexValue > 4) {\r\n centuryValue = 20;\r\n }\r\n\r\n if (yearValue < 100) yearValue += centuryValue * 100;\r\n\r\n // definesc un vector cu numarul de zile ale fiecarei luni din anul yearValue\r\n var daysInMonth = new Array(31,\r\n 28 + (((yearValue % 4 == 0 && yearValue % 100 != 0) || yearValue % 400 == 0) ? 1 : 0),\r\n 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);\r\n\r\n // se testeaza daca data nasterii este corecta\r\n if (monthValue * dayValue == 0 ||\r\n monthValue > 12 ||\r\n daysInMonth[monthValue - 1] < dayValue) {\r\n return false;\r\n }\r\n\r\n\r\n // se testeaza cifra de control\r\n var controlValue = 0;\r\n for (var ind = 0; ind < controlValues.length; ind++) {\r\n var nVal = parseInt(pid.charAt(ind), 10);\r\n if (isNaN(nVal)) {\r\n return false;\r\n }\r\n\r\n controlValue += nVal * controlValues[ind];\r\n }\r\n var resultValue = controlValue % divideValue;\r\n if (resultValue == 10)\r\n resultValue = 1;\r\n\r\n if (resultValue != parseInt(pid.charAt(pidLength - 1), 10)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n\r\n checkDateInFutureForPID(pid) {\r\n var crtDate = new Date();\r\n\r\n var sexValue = parseInt(pid.substring(0, 1), 10);\r\n var yearValue = parseInt(pid.substring(1, 3), 10);\r\n if (sexValue == 1 || sexValue == 2 || sexValue > 6)\r\n yearValue = 1900 + yearValue;\r\n else if (sexValue == 3 || sexValue == 4)\r\n yearValue = 1800 + yearValue;\r\n else if (sexValue == 5 || sexValue == 6)\r\n yearValue = 2000 + yearValue;\r\n var monthValue = parseInt(pid.substring(3, 5), 10);\r\n var dayValue = parseInt(pid.substring(5, 7), 10);\r\n\r\n var crtYear = crtDate.getFullYear();\r\n if (crtYear < 1900) crtYear += 1900;\r\n if (yearValue > crtYear) {\r\n return false;\r\n }\r\n else if (yearValue == crtDate.getFullYear()) {\r\n if (monthValue > crtDate.getMonth() + 1) {\r\n return false;\r\n }\r\n else if (monthValue == crtDate.getMonth() + 1) {\r\n if (dayValue > crtDate.getDate()) {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n //definitii de functii apelate\r\n isValidIBAN2(iban) {\r\n /*\r\n Pasul 1: Se muta primele patru caractere (simbolizand codul de tara si caracterele de verificare) la dreapta codului IBAN.\r\n Exemplu: RO49AAAA1B31007593840000 devine AAAA1B31007593840000RO49.\r\n\r\n Pasul 2: Se face conversia literelor in numere, conform tabelei de conversie cuprinsa in Anexa nr. 2.\r\n Exemplu: AAAA1B31007593840000RO49 devine 1010101011131007593840000272449\r\n\r\n Pasul 3: Se aplica algoritmul MOD 97-10 (conform ISO 7064). Pentru ca cele 2 caractere de verificare sa fie corecte (codul IBAN sa fie corect), restul impartirii numarului astfel obtinut la 97 trebuie sa fie 1.\r\n Exemplu: Restul impartirii lui 1010101011131007593840000272449 la 97 este 1.\r\n */\r\n if (!iban)\r\n return false;\r\n\r\n //iban =\"RO23TREZ1315069XXX000497\";\r\n iban = iban.toUpperCase();\r\n\r\n iban = iban.substring(4) + iban.substring(0, 4);\r\n iban = this.convert2N(iban);\r\n\r\n var mod97 = this.GetRemainder(String(iban), \"97\");\r\n\r\n var valid = mod97 == 1 ? true : false;\r\n if (!valid) {\r\n\r\n return false;\r\n }\r\n return true;\r\n\r\n }\r\n\r\n convert2N(iban) {\r\n var conversionArray = new Array(\"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\");\r\n var caracter = \"\";\r\n var newiban = \"\";\r\n var flag = 0;\r\n for (var i = 0; i < 24; i++) {\r\n caracter = iban.substring(i, i + 1);\r\n flag = 0;\r\n for (var j = 0; j < 26; j++) {\r\n if (caracter == conversionArray[j]) {\r\n newiban = newiban + (j + 10);\r\n j = 26;\r\n flag = 1;\r\n }\r\n }\r\n if (flag == 0)\r\n newiban = newiban + caracter;\r\n }\r\n return newiban;\r\n }\r\n\r\n GetRemainder(x, y) {\r\n var nr = x;\r\n var len = nr.length;\r\n var number = parseInt(y, 10);\r\n var remainder = 0;\r\n var ignore = 0;\r\n var k = '';\r\n\r\n while (ignore < len) {\r\n if (remainder == 0) {\r\n var w1 = y + ' ';\r\n var w2 = w1.length - 1;\r\n k = nr.slice(ignore, ignore + w2);\r\n\r\n ignore += w2;\r\n remainder = parseInt(remainder + k, 10) % number;\r\n }\r\n else {\r\n k = nr.slice(ignore, ignore + 1);\r\n ignore += 1;\r\n remainder = parseInt(remainder + k, 10) % number;\r\n }\r\n }\r\n\r\n return remainder;\r\n }\r\n\r\n\r\n\r\n\r\n\r\n}\r\n","import { Injectable, EventEmitter, ChangeDetectorRef, ApplicationRef, inject, signal, computed, effect, DOCUMENT } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable, shareReplay, timer } from 'rxjs';\r\nimport { FlowCookieService, GlobalService } from '../';\r\nimport { ActivatedRoute, NavigationCancel, NavigationEnd, NavigationStart, Router } from '@angular/router';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { FlowAppConfig } from '../../../flowAppConfig';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FlowHttpClient {\r\n\r\n public http = inject(HttpClient);\r\n public document = inject(DOCUMENT);\r\n public cookieService = inject(FlowCookieService);\r\n public globalService = inject(GlobalService);\r\n public route = inject(ActivatedRoute);\r\n public router = inject(Router);\r\n private environment = inject(FlowAppConfig);\r\n public pageLoadingComplete: EventEmitter<any> = new EventEmitter(false);\r\n public loadingSuccess: EventEmitter<any> = new EventEmitter(false);\r\n public pageLoadingStart: EventEmitter<any> = new EventEmitter(false);\r\n public loadingFailure: EventEmitter<any> = new EventEmitter(false);\r\n\r\n public _pageLoading: number = 0;\r\n private _spinLoading: number = 0;\r\n public pageLoading = signal(0);\r\n private _loading = true;\r\n\r\n public loading = computed(() => this.pageLoading() > 0 ? true : false);\r\n\r\n\r\n\r\n\r\n public recordPageLoading: boolean = true;\r\n\r\n public onError: EventEmitter<any> = new EventEmitter(false);\r\n\r\n\r\n private _token: string;\r\n public get token(): string {\r\n if (!this._token)\r\n this._token = this.cookieService.get('auth_token');\r\n return this._token;\r\n }\r\n\r\n public set token(value) {\r\n this.cookieService.remove('auth_token');\r\n this._token = value;\r\n if (value)\r\n this.cookieService.put('auth_token', value);\r\n }\r\n\r\n constructor() {\r\n this.route.queryParams.subscribe(r => {\r\n if (r['auth_token']) {\r\n this.token = r['auth_token'];\r\n let obj = Object.assign({}, r);\r\n obj['auth_token'] = null;\r\n this.router.navigate([], { relativeTo: this.route, queryParams: obj, queryParamsHandling: 'merge' });\r\n }\r\n });\r\n\r\n this.router.events.subscribe(event => {\r\n if (event instanceof NavigationStart) {\r\n this.recordPageLoading = true;\r\n this.pageLoading.update(x => x + 1);\r\n // jQuery(\"html, body\").animate({ scrollTop: 0 }, 50);\r\n }\r\n if (event instanceof NavigationEnd || event instanceof NavigationCancel) {\r\n timer(100).subscribe(r => this.pageLoading.update(x => Math.max(0, x--)));\r\n }\r\n });\r\n\r\n effect(() => {\r\n if (this.pageLoading() > 0 && this._loading) {\r\n if (!this.document.body.classList.contains('loading'))\r\n this.document.body.classList.add('loading');\r\n }\r\n\r\n if (this.pageLoading() == 0 && this._loading) {\r\n if (this.document.body.classList.contains('loading'))\r\n this.document.body.classList.remove('loading');\r\n this._loading = false;\r\n this.pageLoadingComplete.emit();\r\n }\r\n });\r\n }\r\n\r\n get(endpoint: string, url: string, options?: any, showLoader = true): Observable<any> {\r\n\r\n if (showLoader && this.recordPageLoading)\r\n this.pageLoading.update(x => x + 1);\r\n options = this.createAuthHeader(options);\r\n let retValue = this.http.get(endpoint + url, options)\r\n .pipe(catchError((err, caught) => {\r\n this.recordPageLoading = false;\r\n this.pageLoading.set(0);\r\n this.onError.emit(err);\r\n throw err;\r\n }), shareReplay());\r\n retValue\r\n .subscribe(res => {\r\n if (showLoader && this.recordPageLoading)\r\n this.pageLoading.update(x => Math.max(0, x - 1));\r\n });\r\n return retValue;\r\n }\r\n\r\n delete(endpoint: string, url: string, options?: any, showLoader = false): Observable<any> {\r\n if (showLoader && this.recordPageLoading)\r\n this.pageLoading.update(x => x + 1);\r\n\r\n options = this.createAuthHeader(options);\r\n let retValue = this.http.delete(endpoint + url, options)\r\n .pipe(catchError((err, caught) => {\r\n this.recordPageLoading = false;\r\n this.pageLoading.set(0);\r\n this.onError.emit(err);\r\n throw err;\r\n }), shareReplay());\r\n retValue\r\n .subscribe(res => {\r\n if (showLoader && this.recordPageLoading)\r\n this.pageLoading.update(x => Math.max(0, x - 1));\r\n });\r\n return retValue;\r\n }\r\n\r\n post(endpoint: string, url: string, data: any, options?: any, showLoader = true): Observable<any> {\r\n\r\n if (showLoader && this.recordPageLoading)\r\n this.pageLoading.update(x => x + 1);\r\n\r\n options = this.createAuthHeader(options);\r\n\r\n let retValue = this.http.post(endpoint + url, data, options)\r\n .pipe(catchError((err, caught) => {\r\n this.recordPageLoading = false;\r\n this.pageLoading.set(0);\r\n this.onError.emit(err);\r\n throw err;\r\n }), shareReplay());\r\n retValue\r\n\r\n .subscribe(res => {\r\n if (showLoader && this.recordPageLoading)\r\n this.pageLoading.update(x => Math.max(0, x - 1));\r\n });\r\n return retValue;\r\n }\r\n\r\n put(endpoint: string, url: string, data: any, options?: any, showLoader = false): Observable<any> {\r\n\r\n if (showLoader && this.recordPageLoading)\r\n this.pageLoading.update(x => x + 1);\r\n\r\n options = this.createAuthHeader(options);\r\n let retValue = this.http.put(endpoint + url, data, options)\r\n .pipe(catchError((err, caught) => {\r\n this.recordPageLoading = false;\r\n this.pageLoading.set(0);\r\n this.onError.emit(err);\r\n throw err;\r\n }), shareReplay());\r\n retValue\r\n .subscribe(res => {\r\n if (showLoader && this.recordPageLoading)\r\n this.pageLoading.update(x => Math.max(0, x - 1));\r\n });\r\n return retValue;\r\n }\r\n\r\n public createAuthHeader(options: any) {\r\n if (!options)\r\n options = {};\r\n if (!options.headers) {\r\n options.headers = new HttpHeaders({\r\n 'Accept': 'application/json',\r\n\r\n });\r\n\r\n if (this.globalService.currentLanguage())\r\n options.headers.set('flow-language-code', this.globalService.currentLanguage());\r\n if (this.globalService.currentEditLanguage())\r\n options.headers.set('flow-edit-language-code', this.globalService.currentEditLanguage());\r\n\r\n } else {\r\n if (!options.headers.get('Accept'))\r\n options.headers = options.headers.set('Accept', 'application/json');\r\n if (!options.headers.get('flow-language-code') && !options.excludeExtraHeaders && this.globalService.currentLanguage())\r\n options.headers = options.headers.set('flow-language-code', this.globalService.currentLanguage());\r\n }\r\n\r\n if (this.token && !options.excludeExtraHeaders) {\r\n options.headers = options.headers.set('Authorization', 'Bearer ' + this.token);\r\n }\r\n\r\n if (this.environment.forceOrigin && !options.excludeExtraHeaders) {\r\n options.headers = options.headers.set('flow-origin', this.environment.forceOrigin);\r\n }\r\n\r\n return options;\r\n }\r\n\r\n public serializeToQueryString(obj, prefix = null) {\r\n var str = [], p;\r\n for (p in obj) {\r\n if (obj.hasOwnProperty(p) && obj[p]) {\r\n var k = prefix && !isNaN(p) ? prefix + \"[\" + p + \"]\" : prefix && isNaN(p) ? prefix + \".\" + p : p, v = obj[p];\r\n str.push((v !== null && typeof v === \"object\") ?\r\n this.serializeToQueryString(v, k) :\r\n encodeURIComponent(k) + \"=\" + encodeURIComponent(v));\r\n }\r\n }\r\n return str.join(\"&\");\r\n }\r\n\r\n public serializeToQueryString2(obj) {\r\n var str = [], p;\r\n for (p in obj) {\r\n if (obj.hasOwnProperty(p) && obj[p]) {\r\n var k = !isNaN(p) ? \"[\" + p + \"]\" : isNaN(p) ? p : p, v = obj[p];\r\n str.push((v !== null && typeof v === \"object\") ?\r\n this.serializeToQueryString(v, k) :\r\n encodeURIComponent(this.jsUcfirst(k)) + \"=\" + encodeURIComponent(v));\r\n }\r\n }\r\n return str.join(\"&\");\r\n }\r\n\r\n jsUcfirst(string) {\r\n return string.charAt(0).toUpperCase() + string.slice(1);\r\n }\r\n}\r\n","import { Injectable, EventEmitter, signal, inject } from '@angular/core';\r\nimport { NavigationStart, Router } from '@angular/router';\r\nimport * as uuid from 'uuid';\r\nimport { SidebarContext } from '../../misc/sidebar-context';\r\nimport { timer } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SidebarService {\r\n public readonly router = inject(Router);\r\n public sidebars = signal<any>([]);\r\n\r\n constructor() {\r\n this.router.events.subscribe(event => {\r\n if (event instanceof NavigationStart) {\r\n this.closeSidebars();\r\n }\r\n });\r\n }\r\n\r\n openSidebar(component, data: any = null, options: any = {}) {\r\n let defaultPosition = 'bottom';\r\n if (window.innerWidth < 576) {\r\n document.getElementsByTagName(\"html\")[0].style['overflow'] = 'hidden';\r\n document.getElementsByTagName(\"body\")[0].style['overflow'] = 'hidden';\r\n defaultPosition = 'bottom';\r\n }\r\n\r\n options.position = options.position || defaultPosition;\r\n options.ngStyle = options.ngStyle || {};\r\n\r\n if (options.position == 'right' || options.position == 'left') {\r\n options.ngStyle.width = options.ngStyle.width || '500px';\r\n options.ngStyle.height = null;\r\n options.ngStyle['max-width'] = '95%';\r\n options.contentScrollable = signal(true);\r\n }\r\n if (options.position == 'top' || options.position == 'bottom') {\r\n options.ngStyle.width = null;\r\n options.ngStyle.height = options.ngStyle.height || '30%';\r\n options.ngStyle['max-height'] = options.ngStyle.height == '100%' ? '100%' : '95%';\r\n\r\n options.contentScrollable = signal(false);\r\n if (options.ngStyle.height == '95%' || options.ngStyle.height == '100%')\r\n options.contentScrollable.set(true);\r\n\r\n }\r\n\r\n let obj: any = {\r\n id: uuid.v4(),\r\n component: component,\r\n options: options,\r\n visible: true\r\n };\r\n\r\n let pr = new Promise((resolve, reject) => {\r\n if (component.prototype instanceof SidebarContext) {\r\n obj.inputs = data || {};\r\n obj.inputs.close = (value) => {\r\n resolve(value);\r\n this.closeSidebar(obj.id);\r\n };\r\n obj.inputs.setSize = (value) => {\r\n this.setSize(value, options);\r\n };\r\n }\r\n });\r\n\r\n console.log(obj);\r\n this.sidebars.update(s => [...this.sidebars(), obj]);\r\n\r\n return pr\r\n }\r\n\r\n openIframeSidebar(url, width = '400px') {\r\n }\r\n closeSidebars() {\r\n this.sidebars().forEach(el => {\r\n this.closeSidebar(el.id);\r\n });\r\n }\r\n\r\n setSize(size, options) {\r\n if (options.position == 'bottom' && size.height) {\r\n options.ngStyle.transition = 'height .2s';\r\n options.ngStyle.height = size.height;\r\n if (size.height == '95%' || size.height == '100%')\r\n options.contentScrollable.set(true);\r\n else\r\n options.contentScrollable.set(false);\r\n } else if ((options.position == 'left' || options.position == 'right') && size.width) {\r\n options.ngStyle.transition = 'width .2s';\r\n options.ngStyle.width = size.width;\r\n }\r\n }\r\n\r\n closeSidebar(id = null) {\r\n this.sidebars.update(s => {\r\n let closee = id ? s.find(a => a.id == id) : s[0];\r\n if (!closee)\r\n return s;\r\n closee.visible = false;\r\n if (s.findIndex(a => a.visible) < 0) {\r\n document.getElementsByTagName(\"html\")[0].style['overflow'] = 'initial';\r\n document.getElementsByTagName(\"body\")[0].style['overflow'] = 'initial';\r\n\r\n }\r\n return s;\r\n });\r\n\r\n timer(200).subscribe(er => {\r\n this.sidebars.update(s => {\r\n return s.filter(a => a.visible);;\r\n });\r\n });\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform, Signal, computed, inject } from '@angular/core';\r\nimport { GlobalService } from '../../services/global/global.service';\r\nimport { Misc } from '../../misc';\r\n\r\n@Pipe({\r\n name: 'translation',\r\n standalone: true,\r\n})\r\n// The work of the pipe is handled in the tranform method with our pipe's class\r\nexport class TranslationPipe implements PipeTransform {\r\n\r\n constructor() { }\r\n\r\n transform(value: string, htmlContentList: any, replacements: any = null): string {\r\n let signal = computed(() => Misc.formatString((htmlContentList() && htmlContentList()[value] ? htmlContentList()[value] : value),\r\n ...(replacements && Array.isArray(replacements()) ? replacements() : [])));\r\n return signal();\r\n }\r\n}\r\n","import { Injectable, EventEmitter, inject, signal } from '@angular/core';\r\nimport { UserAccountService, FlowHttpClient, TranslationSharedService, GlobalService, FlowCookieService } from '../../services';\r\nimport { SortingPagingCriteria } from '../../misc/sorting-paging-criteria';\r\nimport { ReplaySubject, Subject, timer } from 'rxjs';\r\n// import { Platform } from '@ionic/angular';\r\nimport * as signalR from '@microsoft/signalr';\r\ndeclare var window: any;\r\nimport { ActivatedRoute, Router, NavigationEnd } from '@angular/router';\r\n// import { Geolocation } from '@awesome-cordova-plugins/geolocation/ngx';\r\nimport { FlowAppConfig } from '../../../flowAppConfig';\r\nimport { MessageService } from 'primeng/api';\r\nimport { TranslationPipe } from '../../pipes/translation/translation.pipe';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SignalrNotificationService {\r\n\r\n private cookieService = inject(FlowCookieService);\r\n private userService = inject(UserAccountService);\r\n private httpClient = inject(FlowHttpClient);\r\n private activatedRoute = inject(ActivatedRoute);\r\n public router = inject(Router)\r\n public http = inject(FlowHttpClient)\r\n public translationService = inject(TranslationSharedService)\r\n public globalService = inject(GlobalService);\r\n public messageService = inject(MessageService);\r\n private connection: any;\r\n public messages = signal<any[]>([]);\r\n public newMessage: any;\r\n public subscribedChannels: any[] = [];\r\n public onNotification = new EventEmitter(true);\r\n public connectionPromise: Promise<any>;\r\n public unreadMessageCount = signal<number>(0);\r\n public hasMorePages: boolean = false;\r\n public subscription: any;\r\n private environment = inject(FlowAppConfig);\r\n public onlineStatus: string = 'OFFLINE';\r\n statusSubscription: any;\r\n public interval: any;\r\n public onConnected: Subject<any> = new ReplaySubject();\r\n public onNotificationClick = new EventEmitter(true);\r\n coordinates: any;\r\n simInfo: any;\r\n\r\n public get mute() {\r\n return this.cookieService.get('mute') == 'true';\r\n };\r\n public set mute(value) {\r\n this.cookieService.put('mute', value ? 'true' : 'false');\r\n };\r\n public notificationArray = [\r\n { name: 'pop', sound: null },\r\n { name: 'marimba1', sound: null },\r\n ];\r\n constructor() {\r\n this.getNotifications();\r\n this.getConnection();\r\n this.preloadSounds();\r\n\r\n\r\n console.log('subscribing');\r\n // this.platform.resume.subscribe(() => {\r\n // console.log('resuming');\r\n // this.getConnection();\r\n // this.subscribePushChannels();\r\n // });\r\n\r\n this.userService.onUserLoggedIn.subscribe(async (res) => {\r\n this.getNotifications();\r\n await this.stopConnection();\r\n await this.getConnection();\r\n this.subscribePushChannels();\r\n });\r\n\r\n this.userService.onUserLoggedOut.subscribe(res => {\r\n this.unsubscribePushChannels(res);\r\n });\r\n\r\n // this.platform.ready().then(p => {\r\n // if (!window.cordova || !window.FirebasePlugin)\r\n // return;\r\n\r\n // window.FirebasePlugin.hasPermission((has) => {\r\n // if (has) { this.initPushNotifications(); }\r\n // else { window.FirebasePlugin.grantPermission(r => this.initPushNotifications()); }\r\n // })\r\n // });\r\n }\r\n\r\n\r\n\r\n initPushNotifications() {\r\n window.FirebasePlugin.getToken();\r\n window.FirebasePlugin.onMessageReceived(res => {\r\n console.log(res);\r\n });\r\n var channel = {\r\n id: \"default\",\r\n sound: \"correct\"\r\n };\r\n window.FirebasePlugin.createChannel(channel);\r\n }\r\n\r\n subscribePushChannels() {\r\n if (this.userService.currentUser().id && window.cordova && window.FirebasePlugin)\r\n window.FirebasePlugin.subscribe(`${this.environment.application_id}${this.environment.production ? '' : '--debug'}--${this.environment.client_id.replace('::', '~')}--${this.userService.currentUser().id}`);\r\n }\r\n\r\n unsubscribePushChannels(user) {\r\n if (user.id && window.cordova && window.FirebasePlugin)\r\n window.FirebasePlugin.unsubscribe(`${this.environment.application_id}${this.environment.production ? '' : '--debug'}--${this.environment.client_id.replace('::', '~')}--${user.id}`);\r\n }\r\n\r\n\r\n async getConnection() {\r\n console.log('Getting SignalR connection')\r\n console.log(this.onlineStatus);\r\n if (this.interval) this.interval.unsubscribe();\r\n\r\n if (this.onlineStatus == 'ONLINE')\r\n return;\r\n\r\n // let options =\r\n // {\r\n // headers: {\r\n // 'Authorization': `Bearer ${this.httpClient.token}`\r\n // }\r\n // };\r\n this.connection = new signalR.HubConnectionBuilder()\r\n .configureLogging(signalR.LogLevel.Information)\r\n .withUrl(`${this.environment.endpoints['NotificationServer']}/SignalRNotificationHub?auth_token=${this.httpClient.token}`)\r\n .build();\r\n\r\n\r\n try {\r\n await this.connection.start();\r\n this.onlineStatus = 'ONLINE';\r\n }\r\n catch {\r\n this.onlineStatus = 'OFFLINE';\r\n console.log({ onlineStatus: this.onlineStatus });\r\n this.interval = timer(5000).subscribe(async () => await this.getConnection());\r\n return;\r\n }\r\n\r\n console.log({ onlineStatus: this.onlineStatus });\r\n\r\n this.connection.onclose(async () => {\r\n this.onlineStatus = 'OFFLINE';\r\n console.log({ onClose: this.onlineStatus });\r\n this.interval = timer(5000).subscribe(async () => await this.getConnection());\r\n });\r\n\r\n // this.connection.onreconnected(() =>{\r\n // this.onlineStatus='ONLINE';\r\n // console.log({ onReconnect: this.onlineStatus });\r\n // });\r\n\r\n if (this.onlineStatus == 'ONLINE') {\r\n if (this.statusSubscription) this.statusSubscription.unsubscribe();\r\n\r\n await this.sendCurrentStatus();\r\n this.statusSubscription = this.router.events.subscribe(async (ev) => {\r\n if (ev instanceof NavigationEnd)\r\n await this.sendCurrentStatus();\r\n });\r\n }\r\n if (this.subscription) this.subscription.unsubscribe();\r\n\r\n this.subscription = this.connection.on('messageReceived', (msg, u) => {\r\n let m = JSON.parse(msg);\r\n this.onNotification.emit(m);\r\n\r\n if (m.hideInToaster || this.mute)\r\n return;\r\n //here\r\n\r\n\r\n this.messages.update(ctx => {\r\n ctx.push(m);\r\n return ctx;\r\n });\r\n this.messageService.add({ severity: m.class, detail: this.processReplacements(new TranslationPipe().transform(m.body, this.translationService.translations()), m.model) });\r\n this.unreadMessageCount.update(c => c + 1);\r\n this.playSound(m.sound);\r\n });\r\n }\r\n\r\n processReplacements(text: string, strObj: string, prefix: string = 'model') {\r\n\r\n let obj = JSON.parse(strObj)\r\n\r\n let replacements = this.buildReplacementsArray(obj, prefix);\r\n replacements.forEach(element => {\r\n text = text.replace(`{{${element.query}}}`, element.value);\r\n });\r\n return text;\r\n\r\n }\r\n preloadSounds() {\r\n this.notificationArray.forEach(s => {\r\n s.sound = new Audio();\r\n s.sound.src = `../assets/audio/${s.name}.mp3`;\r\n s.sound.load();\r\n });\r\n }\r\n\r\n async stopConnection() {\r\n console.log('stopping connection');\r\n this.onlineStatus = 'OFFLINE';\r\n\r\n if (this.interval && this.interval.unsubscribe) {\r\n this.interval.unsubscribe();\r\n this.interval = null;\r\n }\r\n\r\n if (this.connection)\r\n await this.connection.stop();\r\n\r\n }\r\n\r\n playSound(name) {\r\n if (!this.mute && name) {\r\n let snd = this.notificationArray.find(n => n.name == name);\r\n if (snd && snd.sound)\r\n snd.sound.play();\r\n }\r\n\r\n }\r\n\r\n buildReplacementsArray(obj: any, prefix: string = 'model') {\r\n var str = [], p;\r\n for (p in obj) {\r\n if (obj.hasOwnProperty(p)) {\r\n var k = prefix && !isNaN(p) ? prefix + \"[\" + p + \"]\" : prefix && isNaN(p) ? prefix + \".\" + p : p, v = obj[p];\r\n str.push((v !== null && typeof v === \"object\") ?\r\n this.buildReplacementsArray(v, k) :\r\n { query: k, value: v });\r\n }\r\n }\r\n return str;\r\n\r\n }\r\n\r\n\r\n\r\n public messagePageNo = 1;\r\n\r\n\r\n\r\n\r\n // async updateDeviceStatus() {\r\n\r\n // this.coordinates = await this.geolocation.getCurrentPosition({ timeout: 30000 }).catch(err => {\r\n // console.log(err);\r\n // throw err;\r\n // });\r\n // }\r\n\r\n\r\n async sendCurrentStatus() {\r\n await this.userService.getCurrentUser().toPromise();\r\n let objSettings = {\r\n ApplicationId: this.environment.application_id,\r\n ClientId: this.environment.client_id,\r\n // BrowserName: this.browser.getBrowser().name, // \"Microsoft Edge\"\r\n // BrowserVersion: this.browser.getBrowser().version, //114.0.1823.79\r\n Route: window.location.pathname + window.location.search, // /access\r\n Host: window.location.host,\r\n User: this.userService.currentUser().id ? this.userService.currentUser() : null, //{roles: Array(0)}\r\n //Id: this.instanceId, //\"372d46d4-a48a-2ca9-c29a-acdeee6798ef\"\r\n Language: this.globalService.currentLanguage(), // desktop\r\n // Lat: this.coordinates ? this.coordinates.coords.latitude : null, //null\r\n // Lng: this.coordinates ? this.coordinates.coords.longitutde : null, //null\r\n NetworkOperator: this.simInfo ? this.simInfo.carrierName : null,\r\n // OsName: this.browser.getOS().name, //Windows\r\n // OsVersion: this.browser.getOS().version, //NT 10.0\r\n // PlatformType: this.browser.getPlatformType(),\r\n // ScreenH: this.platform.height(), //721\r\n // ScreenW: this.platform.width(), //1026\r\n // Version: packageInfo.version,\r\n\r\n };\r\n await this.connection.send('SendStatus', objSettings);\r\n }\r\n\r\n //offline?\r\n\r\n\r\n\r\n\r\n\r\n getNotifications() {\r\n let spc = new SortingPagingCriteria();\r\n spc.pageNumber = this.messagePageNo;\r\n let obs = this.httpClient.get(this.environment.endpoints['NotificationServer'], `/api/services/app/NotificationService/GetNotifications?${this.httpClient.serializeToQueryString(spc, 'spc')}`, null, false);\r\n obs.subscribe(res => {\r\n if (res.result.type !== 'error') {\r\n if (this.messagePageNo == 1) {\r\n this.messages.update(c => c.filter(m => !m.saveToDb));\r\n }\r\n this.messages.update(c => c.concat(res.result.notifications));\r\n this.unreadMessageCount.set(res.result.unreadMessageCount);\r\n this.hasMorePages = res.result.hasMorePages;\r\n }\r\n\r\n });\r\n\r\n\r\n return obs;\r\n }\r\n\r\n setReadReceipt() {\r\n this.unreadMessageCount.set(0);\r\n return this.httpClient.get(this.environment.endpoints['NotificationServer'], '/api/services/app/NotificationService/SetReadReceipt');\r\n }\r\n\r\n\r\n\r\n}\r\n\r\n\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { FlowHttpClient } from '../httpClient/httpClient';\r\nimport { Observable, of } from 'rxjs';\r\nimport { FlowAppConfig } from '../../../flowAppConfig';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApplicationSharedService {\r\n private environment = inject(FlowAppConfig);\r\n public http = inject(FlowHttpClient);\r\n\r\n constructor() { }\r\n\r\n private endpointObs: Observable<any>;\r\n public allowedApplications: any = [];\r\n public _currentApplication: any = {};\r\n public get endpoints(): any[] {\r\n return this.environment.endpoints;\r\n }\r\n\r\n\r\n public get currentApplication() {\r\n return this._currentApplication;\r\n }\r\n\r\n public set currentApplication(value) {\r\n this._currentApplication = value;\r\n }\r\n\r\n\r\n public getAdminClients() {\r\n return this.http.get(this.endpoints['IdentityServer'], `/clients/getadminclients`);\r\n\r\n }\r\n}","import { Injectable, EventEmitter, inject, signal, afterNextRender, effect } from '@angular/core';\r\nimport { FlowHttpClient } from '../httpClient/httpClient';\r\nimport { ApplicationSharedService } from '../application-shared/application-shared.service';\r\nimport { GlobalService } from '../global/global.service';\r\nimport { of, shareReplay, tap, firstValueFrom } from 'rxjs';\r\nimport { FlowCookieService, UserAccountService } from '../../services';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { catchError, map, pairwise, startWith } from 'rxjs/operators';\r\nimport { FlowAppConfig } from '../../../flowAppConfig';\r\nimport { toObservable } from '@angular/core/rxjs-interop';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TranslationSharedService {\r\n\r\n public translationsLoaded = signal(false);\r\n public onLanguageChanged = new EventEmitter(true);\r\n public onEditLanguageChanged = new EventEmitter(true);\r\n public onTranslationsLoaded = new EventEmitter(true);\r\n public onSetCountryProvinceCity = new EventEmitter(true);\r\n private environment = inject(FlowAppConfig);\r\n public http = inject(FlowHttpClient);\r\n public applicationService = inject(ApplicationSharedService)\r\n public globalService = inject(GlobalService);\r\n public cookieService = inject(FlowCookieService)\r\n public translations = signal<any>({});\r\n public userService = inject(UserAccountService);\r\n\r\n public languages = signal([]);\r\n\r\n public countries = signal<any[]>([]);\r\n\r\n\r\n public editContent = signal(false);\r\n private translationObs: any;\r\n public countryProvinceCityPlaceholder = signal<any[]>([]);\r\n\r\n\r\n public get endpoint() {\r\n return this.environment.endpoints['TranslationServer'];\r\n }\r\n\r\n\r\n\r\n\r\n public get currentLanguageObj() {\r\n if (this.languages && this.languages[this.globalService.currentLanguage()])\r\n return this.languages[this.globalService.currentLanguage()];\r\n else\r\n return {};\r\n }\r\n\r\n constructor() {\r\n console.log('constructing translations');\r\n\r\n toObservable(this.globalService.currentLanguage).pipe(pairwise()).subscribe(([oldValue, newValue]) => {\r\n console.log(oldValue, newValue);\r\n if (oldValue != newValue)\r\n this.getTranslations(true);\r\n });\r\n\r\n }\r\n\r\n getTranslations(force = true): any {\r\n if (this.translationsLoaded() && !force)\r\n return of(this.translations());\r\n if (this.translationObs && !force)\r\n return this.translationObs;\r\n\r\n if (localStorage['translations']) {\r\n try {\r\n this.translations.set(JSON.parse(localStorage['translations']));\r\n } catch { }\r\n this.translationsLoaded.set(true);\r\n }\r\n\r\n this.translationObs = this.http.get(this.endpoint, `/api/services/app/TranslationClientService/GetTranslations?applicationId=${encodeURIComponent(this.environment.application_id)}&languageCode=${this.globalService.currentLanguage()}&groupId=${this.environment.groupId}`)\r\n .pipe(catchError(err => {\r\n console.log('Error loading translations');\r\n return of([]);\r\n }), shareReplay());\r\n this.translationObs.subscribe(res => {\r\n console.log('Translationsloaded and complete')\r\n this.translations.set(res.result);\r\n this.translationsLoaded.set(true);\r\n this.onTranslationsLoaded.emit();\r\n localStorage['translations'] = JSON.stringify(this.translations());\r\n this.translationObs = null;\r\n });\r\n return this.translationObs;\r\n }\r\n getLanguages() {\r\n let obs = this.http.get(this.endpoint, `/api/services/app/LanguageClientService/GetLanguages?applicationId=${this.environment.application_id}`)\r\n .pipe(catchError(err => {\r\n console.log('Error loading translations');\r\n return of([]);\r\n }),\r\n tap(res => {\r\n if (!(res instanceof HttpErrorResponse))\r\n this.languages.set(res.result);\r\n }));\r\n\r\n return obs;\r\n }\r\n\r\n\r\n quickSaveHtmlContent(name: string, content: string) {\r\n let obs = this.http.post(this.endpoint, `/api/services/app/TranslationAdminService/QuickSave`, { name: name, value: content, languageCode: this.globalService.currentLanguage(), groupName: this.environment.groupId });\r\n return obs;\r\n }\r\n\r\n getCountries() {\r\n let obs = this.http.get(this.endpoint, `/api/services/app/CountryService/GetCountries`)\r\n .pipe(tap(res => {\r\n this.countries.set(res.result);\r\n }),\r\n catchError(err => {\r\n return of({});\r\n }));\r\n return obs;\r\n }\r\n\r\n getCountry(code) {\r\n return this.countries().filter(c => c.code == code)[0];\r\n }\r\n\r\n getHtmlContentByUrl(url) {\r\n return this.http.get(this.endpoint, `/api/services/app/TranslationClientService/GetContentPage?applicationId=${encodeURIComponent(this.environment.application_id)}&url=${encodeURIComponent(url)}&languageCode=${this.globalService.currentLanguage()}`);\r\n }\r\n\r\n async getLocalization() {\r\n let loc: any = {};\r\n\r\n if (this.cookieService.get('localization'))\r\n loc = JSON.parse(this.cookieService.get('localization'));\r\n else {\r\n loc = await firstValueFrom(this.http.get(this.endpoint, `/api/services/app/LocalizationService/GetWithClientIp`).pipe(map(t => t.result)));\r\n let coordsValue = await this.getNavigatorPosition().catch(e => null);\r\n if (coordsValue)\r\n loc.coords = { lat: coordsValue.coords.latitude, lng: coordsValue.coords.longitude };\r\n\r\n this.cookieService.put('localization', JSON.stringify(loc));\r\n }\r\n this.globalService.currentLanguage.set(loc.language);\r\n return loc;\r\n }\r\n\r\n getNavigatorPosition(options?: PositionOptions): Promise<any> {\r\n return new Promise((resolve, reject) =>\r\n navigator.geolocation.getCurrentPosition(resolve, reject, options)\r\n );\r\n }\r\n\r\n getCountryCityPlaceholder(correlation) {\r\n console.log(this.countryProvinceCityPlaceholder()[correlation]);\r\n return this.countryProvinceCityPlaceholder()[correlation];\r\n }\r\n\r\n setCountryCityPlaceholder(correlation, value) {\r\n console.log(value);\r\n this.countryProvinceCityPlaceholder.update(ctx => {\r\n ctx[correlation] = {\r\n ...ctx[correlation],\r\n countryCode: value.countryCode,\r\n currentCountry: this.countries().find(c => c.code == value.countryCode),\r\n city: value.city\r\n };\r\n\r\n if (value.provinceCode) {\r\n ctx[correlation].currentProvince = this.countryProvinceCityPlaceholder()[correlation].currentCountry.provinces.find(p => p.code == value.provinceCode);\r\n ctx[correlation].provinceCode = ctx[correlation].currentProvince.code;\r\n ctx[correlation].provinceName = ctx[correlation].currentProvince.name;\r\n } else {\r\n ctx[correlation].currentProvince = null;\r\n ctx[correlation].provinceCode = null;\r\n ctx[correlation].provinceName = value.provinceName;\r\n }\r\n return ctx;\r\n });\r\n console.log(this.countryProvinceCityPlaceholder()[correlation]);\r\n }\r\n\r\n validateCountryProvinceCity(correlation) {\r\n this.countryProvinceCityPlaceholder.update(ctx => {\r\n ctx[correlation] = this.countryProvinceCityPlaceholder()[correlation] || {};\r\n return ctx;\r\n });\r\n let countryProvinceCity = this.countryProvinceCityPlaceholder()[correlation]\r\n\r\n countryProvinceCity.countryError = false;\r\n countryProvinceCity.provinceError = false;\r\n countryProvinceCity.cityError = false;\r\n\r\n\r\n if (!countryProvinceCity.countryCode) {\r\n countryProvinceCity.countryError = true;\r\n }\r\n\r\n if (!countryProvinceCity.provinceName) {\r\n countryProvinceCity.provinceError = true;\r\n }\r\n\r\n if (!countryProvinceCity.city) {\r\n countryProvinceCity.cityError = true;\r\n }\r\n\r\n this.countryProvinceCityPlaceholder.update(ctx => {\r\n ctx[correlation] = countryProvinceCity;\r\n return ctx;\r\n })\r\n\r\n }\r\n\r\n}\r\n","import { Injectable, EventEmitter, HostListener, inject, signal } from '@angular/core';\r\nimport { FlowHttpClient } from '../httpClient/httpClient';\r\nimport { TranslationSharedService } from '../translation-shared/translation-shared.service';\r\nimport { of } from 'rxjs';\r\nimport { HttpParams } from '@angular/common/http';\r\nimport { ActivatedRoute, GuardsCheckEnd, NavigationStart } from '@angular/router';\r\nimport { Router } from '@angular/router';\r\nimport { Location } from '@angular/common';\r\nimport 'rxjs';\r\ndeclare var window: any;\r\nimport { ModalService } from '../modal/modal.service';\r\nimport { SidebarService } from '../sidebar/sidebar.service';\r\nimport { HttpHeaders } from '@angular/common/http';\r\nimport { map, shareReplay } from 'rxjs/operators';\r\nimport { timer } from 'rxjs';\r\nimport bowser from 'bowser';\r\nimport { FlowCookieService } from '../cookie/cookie.service';\r\nimport { GlobalService } from '../global/global.service';\r\nimport { FlowAppConfig } from '../../../flowAppConfig';\r\ndeclare var moment: any;\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UserAccountService {\r\n public cookieService = inject(FlowCookieService);\r\n public http = inject(FlowHttpClient);\r\n public router = inject(Router);\r\n public location = inject(Location);\r\n public route = inject(ActivatedRoute);\r\n public sidebarService = inject(SidebarService);\r\n public globalService = inject(GlobalService);\r\n private environment = inject(FlowAppConfig);\r\n public currentUser = signal<any>({ claims: [] });\r\n public _redirectTo: string;\r\n source: any;\r\n logoutTimer: any;\r\n public get browser() {\r\n return bowser.getParser(window.navigator.userAgent);\r\n }\r\n public get redirectTo() {\r\n if (!this._redirectTo)\r\n this._redirectTo = this.cookieService.get('redirectTo');\r\n\r\n return this._redirectTo;\r\n }\r\n\r\n public set redirectTo(value) {\r\n this._redirectTo = value;\r\n if (!value)\r\n this.cookieService.remove('redirectTo');\r\n else\r\n this.cookieService.put('redirectTo', value);\r\n }\r\n\r\n // public set loginUser(userAccount){\r\n // this.cookieService.put('userAccount', value);\r\n\r\n // }\r\n\r\n public authError: string;\r\n public onUserLoggedIn = new EventEmitter(false);\r\n public onUserLoggedOut = new EventEmitter(false);\r\n public onAccessRefused = new EventEmitter(false);\r\n public lastRouteAddress: string;\r\n public accessRefused: boolean;\r\n // public timer: TimerDirective;\r\n\r\n public get token() {\r\n return this.cookieService.get('auth_token');\r\n }\r\n\r\n @HostListener('window:focus', ['$event'])\r\n onFocus(event: any): void {\r\n this.setLogOutTimer();\r\n }\r\n\r\n constructor() {\r\n this.router.events.subscribe((res: any) => {\r\n if (res instanceof NavigationStart) {\r\n this.lastRouteAddress = res.url;\r\n }\r\n });\r\n\r\n this.route.queryParams.subscribe(res => {\r\n if (res['tkk'])\r\n this.processLoginToken(res['tkk'])\r\n })\r\n }\r\n\r\n currentUserObs: any;\r\n\r\n\r\n getCurrentUser(force = false) {\r\n if (this.currentUserObs)\r\n return this.currentUserObs;\r\n if ((this.http.token && !this.currentUser().id) || force) {\r\n\r\n this.currentUserObs = this.getCurrentUserDetails(force).pipe(shareReplay());;\r\n this.currentUserObs.subscribe(res => {\r\n if (res.result.status == 'valid')\r\n this.currentUser.set(res.result.user);\r\n else\r\n this.logout();\r\n this.currentUserObs = null;\r\n if (this.currentUser().id)\r\n this.setLogOutTimer();\r\n });\r\n\r\n return this.currentUserObs;\r\n }\r\n else {\r\n return of(this.currentUser);\r\n }\r\n\r\n }\r\n\r\n processLoginResponse(res) {\r\n\r\n if (res.response == 'fill_data') {\r\n this.http.token = res.token;\r\n }\r\n\r\n if (res.response == 'logged_in') {\r\n console.log(res);\r\n this.http.token = res.token;\r\n this.currentUser.set(res.userAccount);\r\n this.cookieService.put('userAccount', JSON.stringify({ firstName: res.userAccount.firstName, lastName: res.userAccount.lastName, email: res.userAccount.email }));\r\n this.onUserLoggedIn.emit(res.userAccount);\r\n this.setLogOutTimer();\r\n\r\n }\r\n\r\n\r\n }\r\n\r\n processLoginToken(tkk) {\r\n return this.http.get(this.environment.endpoints['IdentityServer'], `/api/services/app/IdentityService/ProcessLoginToken?t=${encodeURIComponent(tkk)}`).subscribe(res => {\r\n if (res.result.type == 'TOKEN') {\r\n this.processOtpToken(res.result);\r\n }\r\n });\r\n }\r\n\r\n processOtpToken(result) {\r\n this.http.token = result.authToken;\r\n this.currentUser.set(result.user);\r\n this.onUserLoggedIn.emit({ action: result.action, user: this.currentUser });\r\n this.setLogOutTimer();\r\n }\r\n\r\n getOtp(model) {\r\n model.os = this.browser.getOS().name;\r\n model.osVersion = this.browser.getOS().versionName;\r\n model.userAgent = `${this.browser.getBrowser().name} ${this.browser.getBrowser().version}`;\r\n return this.http.post(this.environment.endpoints['IdentityServer'], `api/services/app/IdentityService/GetOtp`, model);\r\n }\r\n\r\n resendOtp(model) {\r\n model.os = this.browser.getOS().name;\r\n model.osVersion = this.browser.getOS().versionName;\r\n model.userAgent = `${this.browser.getBrowser().name} ${this.browser.getBrowser().version}`;\r\n\r\n return this.http.post(this.environment.endpoints['IdentityServer'], `api/services/app/IdentityService/ResendOtp`, model);\r\n }\r\n\r\n verifyOtp(model) {\r\n return this.http.post(this.environment.endpoints['IdentityServer'], `api/services/app/IdentityService/VerifyOtp`, model);\r\n }\r\n\r\n saveUserProfile(model) {\r\n return this.http.post(this.environment.endpoints['IdentityServer'], `api/services/app/IdentityService/SaveUserProfileAndLogin\r\n`, model);\r\n }\r\n\r\n\r\n\r\n getCurrentUserDetails(force = false) {\r\n if (!this.currentUser().id || force) {\r\n let obs2;\r\n let obs = this.http\r\n .get(this.environment.endpoints['IdentityServer'], '/api/services/app/IdentityService/GetTokenModel')\r\n .pipe(shareReplay());\r\n return obs;\r\n } else {\r\n return of(this.currentUser);\r\n }\r\n }\r\n\r\n logout(returnUrl: string = null) {\r\n this.cookieService.remove(\"op_token\");\r\n let headers = new HttpHeaders();\r\n let loggedOutUser = this.currentUser;\r\n headers = headers.append('Content-Type', 'application/x-www-form-urlencoded');\r\n let postObj = { token: this.token, client_id: this.environment.client_id };\r\n this.cookieService.remove('auth_token');\r\n // this.http.post(this.environment.endpoints['IdentityServer'], '/connect/revocation', this.http.serializeToQueryString(postObj), { headers: headers } );\r\n this.currentUser.set({ claims: [] });\r\n this.currentUserObs = null;\r\n this.http.token = null!;\r\n this.onUserLoggedOut.emit(loggedOutUser);\r\n\r\n }\r\n\r\n getDecodedAccessToken(token: string): any {\r\n let arrSplit = token.split('|');\r\n return { token: arrSplit[0], exp: arrSplit.length > 1 ? arrSplit[1] : null };\r\n }\r\n\r\n setLogOutTimer() {\r\n let tokenInfo = this.getDecodedAccessToken(this.token);\r\n if (!tokenInfo.exp)\r\n return;\r\n\r\n let expireDate: any = moment.unix(tokenInfo.exp);\r\n let currentDate: any = moment();\r\n let timeOut = expireDate.diff(currentDate);\r\n\r\n if (timeOut < 0)\r\n this.logout();\r\n\r\n if (this.logoutTimer) { this.logoutTimer.unsubscribe(); this.logoutTimer = null; }\r\n\r\n this.logoutTimer = timer(timeOut).subscribe(res => {\r\n this.logout()\r\n });\r\n }\r\n\r\n userHasPermission(perm) {\r\n return this.currentUser().permissions && this.currentUser().permissions.includes(perm);\r\n }\r\n\r\n checkCurentUserClaims(route) {\r\n let obs = this.getCurrentUser(!this.currentUser().id);\r\n return obs.pipe(map((result: any) => {\r\n let retValue = !route.data.permissions;//currentRouteConfig.canActivate.length > 0;\r\n if (!route.data.permissions || !this.currentUser().id)\r\n return retValue;\r\n if (route.data.permissions && route.data.permissions.length == 0 && this.currentUser().id)\r\n return true;\r\n console.log(result);\r\n route.data.permissions.forEach(x => {\r\n retValue = retValue || (result?.permissions?.indexOf(x) >= 0);\r\n });\r\n if (!retValue) {\r\n this.redirectTo = window.location.pathname + window.location.search;\r\n if (result)\r\n this.authError = 'Nu aveti suficiente drepturi pentru a accesa pagina dorita';\r\n } else {\r\n this.authError = undefined;\r\n }\r\n return retValue ? true : false;\r\n }));\r\n\r\n }\r\n\r\n requestLoginNameChange(model) {\r\n return this.http.post(this.environment.endpoints['IdentityServer'], '/api/services/app/IdentityService/RequestLoginNameChange', model);\r\n }\r\n\r\n}\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { Router, ActivatedRouteSnapshot, RouterStateSnapshot, CanActivateFn } from '@angular/router';\r\nimport { UserAccountService } from '../user-account/user-account.service';\r\nimport { ApplicationSharedService } from '../application-shared/application-shared.service';\r\nimport { TranslationSharedService } from '../translation-shared/translation-shared.service';\r\nimport { FlowHttpClient } from '../httpClient/httpClient';\r\ndeclare var window;\r\nimport { map } from 'rxjs/operators';\r\nimport { Observable, firstValueFrom, from } from 'rxjs';\r\nimport { FlowAppConfig } from '../../../flowAppConfig';\r\nimport { GlobalService } from '../global/global.service';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AppSettingsLoader {\r\n\r\n public application_id: string;\r\n private environment = inject(FlowAppConfig);\r\n public userService = inject(UserAccountService)\r\n public applicationService = inject(ApplicationSharedService);\r\n public http = inject(FlowHttpClient);\r\n public translationService = inject(TranslationSharedService);\r\n public globalService = inject(GlobalService);\r\n\r\n constructor() {\r\n }\r\n canActivate(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot\r\n ) {\r\n return from(this.loadSettings()).pipe(map(res => true));\r\n }\r\n async loadSettings() {\r\n console.log('loadSettings');\r\n if (this.globalService.loaded)\r\n return;\r\n\r\n await this.translationService.getLocalization();\r\n await firstValueFrom(this.userService.getCurrentUser());\r\n await firstValueFrom(this.translationService.getTranslations());\r\n await firstValueFrom(this.translationService.getCountries());\r\n await firstValueFrom(this.translationService.getLanguages());\r\n //moment.locale(this.translationService.currentLanguage);\r\n this.globalService.loaded = true;\r\n }\r\n\r\n}\r\n\r\nexport const AppSettingsLoaderService: CanActivateFn = (next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> => {\r\n return inject(AppSettingsLoader).canActivate(next, state);\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'sum'\r\n})\r\n// The work of the pipe is handled in the tranform method with our pipe's class\r\nexport class SumPipe implements PipeTransform {\r\n \r\n constructor() {}\r\n\r\n transform(value: any[], member: string) {\r\n let result = 0;\r\n value.forEach(t => result += parseFloat(t[member]));\r\n return result;\r\n }\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { TranslationSharedService } from '../translation-shared/translation-shared.service';\r\nimport { TranslationPipe } from '../../pipes';\r\n// import { DialogModule } from 'primeng/dialog';\r\nimport { ConfirmationService, MessageService } from 'primeng/api';\r\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\r\nimport { ToastModule } from 'primeng/toast';\r\nimport { GlobalService } from '../global/global.service';\r\n\r\n// import { ConfirmDialogModule } from 'primeng/confirmdialog';\r\n// import { Modal, BSModalContext } from 'ngx-modialog-7/plugins/bootstrap';\r\n// import { overlayConfigFactory } from 'ngx-modialog-7';\r\n\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ModalService {\r\n\r\n translationService = inject(TranslationSharedService);\r\n // modal = inject(DialogModule);\r\n confirmationService = inject(ConfirmationService);\r\n messageService = inject(MessageService);\r\n globalService = inject(GlobalService);\r\n\r\n constructor() { }\r\n\r\n\r\n openConfirm(trans) {\r\n this.confirmationService.confirm({\r\n header: new TranslationPipe().transform(`${trans}.title`, this.translationService.translations),\r\n message: new TranslationPipe().transform(`${trans}.body`, this.translationService.translations),\r\n icon: undefined,\r\n acceptIcon: \"none\",\r\n rejectIcon: \"none\",\r\n rejectButtonStyleClass: \"p-button-text\",\r\n acceptLabel: new TranslationPipe().transform(`ok`, this.translationService.translations),\r\n rejectLabel: new TranslationPipe().transform(`cancel`, this.translationService.translations),\r\n accept: () => {\r\n console.log('Dialog closed')\r\n },\r\n // accept: () => {\r\n // this.messageService.add({ severity: 'info', summary: 'Confirmed', detail: 'You have accepted' });\r\n // },\r\n // reject: () => {\r\n // this.messageService.add({ severity: 'error', summary: 'Rejected', detail: 'You have rejected', life: 3000 });\r\n // }\r\n\r\n });\r\n }\r\n\r\n\r\n openAlert(trans) {\r\n this.confirmationService.confirm({\r\n header: new TranslationPipe().transform(`${trans}.title`, this.translationService.translations),\r\n message: new TranslationPipe().transform(`${trans}.body`, this.translationService.translations),\r\n acceptIcon: \"none\",\r\n rejectIcon: \"none\",\r\n rejectButtonStyleClass: \"p-button-text\",\r\n acceptVisible: true,\r\n rejectVisible: false,\r\n acceptLabel: new TranslationPipe().transform(`ok`, this.translationService.translations)\r\n\r\n });\r\n }\r\n\r\n openRawAlert(titleText, bodyText) {\r\n this.confirmationService.confirm({\r\n message: bodyText,\r\n acceptIcon: \"none\",\r\n rejectIcon: \"none\",\r\n rejectButtonStyleClass: \"p-button-text\",\r\n acceptVisible: true,\r\n rejectVisible: false,\r\n acceptLabel: new TranslationPipe().transform(`ok`, this.translationService.translations)\r\n\r\n });\r\n }\r\n // openConfirm(trans) {\r\n // return this.modal.confirm()\r\n // .title(new TranslationPipe().transform(`${trans}.title`, this.translationService.translations))\r\n // .body(new TranslationPipe().transform(`${trans}.body`, this.translationService.translations))\r\n // .okBtn(new TranslationPipe().transform(`ok`, this.translationService.translations))\r\n // .cancelBtn(new TranslationPipe().transform(`cancel`, this.translationService.translations))\r\n // .open();\r\n // }\r\n\r\n // openAlert(trans) {\r\n // return this.modal.alert()\r\n // .title(new TranslationPipe().transform(`${trans}.title`, this.translationService.translations))\r\n // .body(new TranslationPipe().transform(`${trans}.body`, this.translationService.translations))\r\n // .okBtn(new TranslationPipe().transform(`ok`, this.translationService.translations))\r\n // .open();\r\n // }\r\n\r\n // openRawAlert(titleText, bodyText) {\r\n // return this.modal.alert()\r\n // .title(titleText)\r\n // .body(bodyText)\r\n // .okBtn(new TranslationPipe().transform(`ok`, this.translationService.translations))\r\n // .open();\r\n // }\r\n\r\n\r\n // openComponent(type, model) {\r\n // return this.modal.open(type, overlayConfigFactory(model, BSModalContext));\r\n // }\r\n}\r\n","import { Injectable, signal } from '@angular/core';\r\nimport { ViewTransitionInfo } from '@angular/router';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ViewTransitionService {\r\n\r\n currentTransition = signal<ViewTransitionInfo | null>(null);\r\n\r\n}\r\n","import { Component, Input, ApplicationRef, OnInit, signal, computed, inject, effect, input } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { GlobalService, TranslationSharedService, UserAccountService } from '../../services';\r\nimport { TranslationPipe } from '../../pipes';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\nimport { Observable } from 'rxjs';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SkeletonModule } from 'primeng/skeleton';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { InputText } from \"primeng/inputtext\";\r\nimport { TextareaModule } from 'primeng/textarea';\r\nimport { AutoFocusModule } from 'primeng/autofocus';\r\n\r\n@Component({\r\n selector: 'translate',\r\n standalone: true,\r\n templateUrl: './translation.component.html',\r\n styleUrls: ['./translation.component.css'],\r\n imports: [CommonModule, FormsModule, SkeletonModule, ButtonModule, TextareaModule, AutoFocusModule]\r\n})\r\nexport class TranslationComponent implements OnInit {\r\n\r\n public _name = signal<any>(null);\r\n public name = input<any>('name');\r\n\r\n // @Input('name')\r\n // public set name(value) {\r\n // this._name.set(value);\r\n // this.ngOnInit();\r\n // }\r\n\r\n // public get name() {\r\n // return this._name();\r\n // }\r\n\r\n\r\n\r\n // public _replacements: string[] = [];\r\n public _replacements = signal<any>(null);\r\n replacements = input<any>(null)\r\n public translationService = inject(TranslationSharedService);\r\n public sanitizer = inject(DomSanitizer);\r\n\r\n\r\n public editorOpen = signal(false);\r\n public saveSuccess = signal(false);\r\n public editContent = signal(false);\r\n public content = computed(() => this.sanitizer.bypassSecurityTrustHtml(new TranslationPipe().transform(this.name(), this.translationService.translations, this.replacements)));\r\n public editableContentView = computed(() => this.sanitizer.bypassSecurityTrustHtml(this.editableContent() || this.name()));\r\n public editableContent = signal(null);\r\n public router = inject(Router);\r\n public userService = inject(UserAccountService);\r\n public route = inject(ActivatedRoute)\r\n public globalService = inject(GlobalService)\r\n\r\n constructor() {\r\n (<any>window).angularContext = (<any>window).angularContext || { parentComponent: this };\r\n }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n changeEdit() {\r\n\r\n this.userService.getCurrentUser().subscribe((res) => {\r\n this.editContent.set(this.userService.currentUser().permissions &&\r\n this.userService.currentUser().permissions.indexOf('manageTranslations') >= 0);\r\n if (this.editContent())\r\n this.editableContent.set(this.translationService.translations()[this.name()] || '');\r\n this.editorOpen.set(true);\r\n });\r\n\r\n\r\n }\r\n\r\n // navigateUrl(url: string) {\r\n // this.zone.run(() => {\r\n // this.router.navigateByUrl(url);\r\n // this.appRef.tick();\r\n // });\r\n // }\r\n\r\n openEditor() {\r\n if (!this.translationService.editContent())\r\n return;\r\n }\r\n\r\n closeEditor() {\r\n this.editorOpen.set(false);\r\n }\r\n\r\n quickSaveContent() {\r\n this.translationService.quickSaveHtmlContent(this.name(), this.editableContent()).subscribe((res: any) => {\r\n if (res.result === true) {\r\n this.closeEditor();\r\n }\r\n });\r\n }\r\n\r\n handleSave(e) {\r\n console.log(e);\r\n if (e.ctrlKey && (e.which == 83)) {\r\n e.preventDefault();\r\n this.quickSaveContent();\r\n }\r\n }\r\n}\r\n","@if (translationService.translationsLoaded()) {\r\n<span (click)=\"openEditor()\" style=\"position:relative\">\r\n @if(!editContent()){<span (dblclick)=\"changeEdit()\" [innerHtml]=\"content()\"></span>}\r\n</span>\r\n} @else {\r\n<p-skeleton></p-skeleton>\r\n}\r\n\r\n@if (editContent()) {\r\n<span class=\"html-edit\">\r\n <a class=\"btn-show-edit\" (click)=\"openEditor()\"><i class=\"fa fa-edit\"></i>\r\n {{name()}}</a>\r\n <span (click)=\"openEditor()\" [innerHtml]=\"editableContentView()\"></span>\r\n</span>\r\n}\r\n@if(editorOpen()) {\r\n<div class=\"content-editor\">\r\n <textarea [(ngModel)]=\"editableContent\" pTextarea [pAutoFocus]=\"true\" style=\"resize:none; height: 150px;\" class=\"w-full width: 100%\"\r\n (keydown)=\"handleSave($event)\"></textarea>\r\n\r\n <div class=\"modal-footer\">\r\n @if(saveSuccess()){\r\n <span class=\"text-muted\"><i class=\"fa fa-save\"></i> Datele au fost salvate</span>\r\n }\r\n <button pButton (click)=\"closeEditor()\">Anuleaza</button>\r\n <button pButton (click)=\"quickSaveContent()\">Salveaza modificari</button>\r\n </div>\r\n\r\n <style type=\"text/css\">\r\n body {\r\n margin-bottom: 300px\r\n }\r\n </style>\r\n</div>\r\n}","import { Component, computed, effect, EventEmitter, inject, Input, input, model, OnInit, output, signal } from '@angular/core';\r\nimport { TranslationSharedService } from '../../services';\r\nimport { of, share } from 'rxjs';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SelectModule } from 'primeng/select';\r\nimport { InputGroupModule } from 'primeng/inputgroup';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\n\r\n@Component({\r\n selector: 'payvent-international-phone',\r\n standalone: true,\r\n templateUrl: './international-phone.component.html',\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n SelectModule,\r\n InputGroupModule,\r\n InputTextModule,\r\n // CardModule,\r\n // RippleModule,\r\n // ButtonModule,\r\n // DropdownModule,\r\n // CheckboxModule,\r\n // TagModule,\r\n // AvatarModule,\r\n // AvatarGroupModule,\r\n ],\r\n styleUrls: ['./international-phone.component.css']\r\n})\r\nexport class InternationalPhoneComponent implements OnInit {\r\n public countriesList: any[] = [];\r\n countryFlag: string;\r\n localizationCountry: any;\r\n selectedCountryCode = signal<any>(null);\r\n public phoneNo: any;\r\n //private _phoneNumber = computed(() => this.phoneNumber());\r\n // private _phoneNumber = signal('')\r\n countriesObs: any;\r\n selectedCountry: any;\r\n\r\n\r\n private _phoneNumber = signal<string>('');\r\n public phoneNumber = model<any>(null);\r\n\r\n // private _phoneNumber: string;\r\n // @Input()\r\n // public set phoneNumber(value) {\r\n // this._phoneNumber = value;\r\n // this.onPhoneInput(this._phoneNumber);\r\n // }\r\n\r\n\r\n public get currentPhoneNumber() {\r\n let phoneDialCode = this.countriesList.find(ctr => ctr.code == this.selectedCountryCode()).dialCode\r\n\r\n if (this.phoneNo && phoneDialCode) {\r\n return phoneDialCode + this.phoneNo;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n phoneNumberChange = output<any>();\r\n // @Output()\r\n // phoneNumberChange = new EventEmitter(true)\r\n\r\n public translationService = inject(TranslationSharedService)\r\n\r\n constructor(\r\n ) {\r\n\r\n // effect(() => {\r\n // this._phoneNumber.set(this.phoneNumber() || '');\r\n // this.onPhoneInput(this._phoneNumber());\r\n // });\r\n\r\n effect(() => {\r\n this._phoneNumber.set(this.phoneNumber() || '')\r\n this.onPhoneInput(this._phoneNumber())\r\n }, { allowSignalWrites: true });\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.getCountries();\r\n this.getFlagEmoji(this.countriesList);\r\n console.log(this.countriesList)\r\n\r\n\r\n }\r\n\r\n getCountries() {\r\n if (this.countriesList.length > 0)\r\n return of(this.countriesList);\r\n this.countriesObs = this.translationService.getCountries().pipe(share());\r\n this.countriesObs.subscribe(async res => {\r\n if (!this.selectedCountryCode()) {\r\n let r = await this.translationService.getLocalization()\r\n\r\n this.countriesList = res.result;\r\n this.countriesList.forEach(c => c.displayName = `${c.name} ${this.getFlagEmoji(c.code)} (${c.dialCode})`);\r\n this.localizationCountry = r.result.country\r\n\r\n if (this.localizationCountry)\r\n this.onSelectionChange(this.localizationCountry);\r\n\r\n }\r\n });\r\n return this.countriesObs;\r\n }\r\n\r\n\r\n onSelectionChange(selectedCode): void {\r\n if (!selectedCode) return;\r\n this.selectedCountry = this.countriesList.find(c => c.code == selectedCode)\r\n console.log(this.selectedCountry);\r\n this.selectedCountryCode.set(this.selectedCountry.code);\r\n\r\n\r\n\r\n }\r\n\r\n changePhoneNumber() {\r\n if (this._phoneNumber() != this.currentPhoneNumber) {\r\n this._phoneNumber.set(this.currentPhoneNumber);\r\n this.phoneNumberChange.emit(this.currentPhoneNumber);\r\n }\r\n }\r\n\r\n onPaste(pastedText) {\r\n this.onPhoneInput(pastedText.data);\r\n }\r\n onPhoneInput(pastedNumber = this.phoneNo) {\r\n this.getCountries().subscribe(c => {\r\n\r\n this.onSelectionChange(this.selectedCountryCode());\r\n\r\n if (!pastedNumber)\r\n return;\r\n\r\n pastedNumber = pastedNumber.replace(/[^0-9+]/g, '');\r\n\r\n let matchingCountry = this.countriesList.find(c => {\r\n return c.dialCode == pastedNumber.substring(0, c.dialCode.length);\r\n });\r\n if (matchingCountry) {\r\n this.phoneNo = pastedNumber.slice(matchingCountry.dialCode.length).trim();\r\n this.onSelectionChange(matchingCountry.code);\r\n\r\n }\r\n\r\n this.changePhoneNumber();\r\n });\r\n\r\n }\r\n\r\n\r\n getFlagEmoji(countryCodeFlag) {\r\n if (countryCodeFlag.length < 2) {\r\n return \"\";\r\n }\r\n\r\n this.countryFlag =\r\n [...countryCodeFlag?.toUpperCase()]\r\n .map((char) => String.fromCodePoint(127397 + char.charCodeAt(0)))\r\n .reduce((a, b) => `${a}${b}`);\r\n return this.countryFlag\r\n\r\n }\r\n\r\n\r\n\r\n}\r\n","<div class=\"mb-3\">\r\n <p-inputgroup>\r\n <p-select style=\"min-width:120px; flex:0\" resetFilterOnHide=\"true\" optionLabel=\"dialCode\" filter=\"true\"\r\n optionValue=\"code\" placeholder=\"--\" [options]=\"countriesList\" name=\"country\" [(ngModel)]=\"selectedCountryCode\"\r\n (onChange)=\"onPhoneInput()\" #country=\"ngModel\">\r\n <ng-template let-country #item>\r\n <div class=\"flex items-center gap-2\">\r\n <img [src]=\"'/assets/ngx-payvent-shared/flags/' + country.code.toLowerCase() + '.png'\"\r\n [class]=\"'flag flag-' + country.code.toLowerCase()\" style=\"width: 18px\" />\r\n <div>({{ country.dialCode }}) {{ country.name }}</div>\r\n </div>\r\n </ng-template>\r\n <ng-template let-country #selectedItem>\r\n <div class=\"flex items-center gap-2\">\r\n <img [src]=\"'/assets/ngx-payvent-shared/flags/' + country.code.toLowerCase() + '.png'\"\r\n [class]=\"'flag flag-' + country.code.toLowerCase()\" style=\"width: 18px\" />\r\n <div>{{ country.dialCode }}</div>\r\n </div>\r\n </ng-template>\r\n </p-select>\r\n <input style=\"border-radius: 0 6px 6px 0; border-left-width: 0;\" fluid=\"true\" pInputText type=\"phone\"\r\n [(ngModel)]=\"phoneNo\" (input)=\"onPhoneInput()\" phone class=\"form-control\" #phone=\"ngModel\"\r\n (paste)=\"onPaste($event)\" name=\"phone\" placeholder=\"Please enter phone number\" />\r\n </p-inputgroup>\r\n</div>","import { Component, EventEmitter, inject, input, Input, OnInit, Output, Self, signal } from '@angular/core';\r\nimport { TranslationSharedService } from '../../services';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { TranslationComponent } from '../translation/translation.component';\r\nimport { TranslationPipe } from '../../pipes';\r\nimport { OrderModule } from 'ngx-order-pipe';\r\nimport { SelectModule } from 'primeng/select';\r\nimport { InputText } from \"primeng/inputtext\";\r\n\r\n\r\n@Component({\r\n selector: 'payvent-country-province-city',\r\n standalone: true,\r\n templateUrl: './country-province-city.component.html',\r\n styleUrls: ['./country-province-city.component.css'],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n TranslationPipe,\r\n OrderModule,\r\n SelectModule,\r\n InputText\r\n ]\r\n})\r\nexport class CountryProvinceCityComponent implements OnInit {\r\n public translationService = inject(TranslationSharedService);\r\n\r\n public correlation = input<string>('country-province-city');\r\n\r\n public mode = input<string>('country');\r\n private _currentProvinceName: any;\r\n currentCountryCode: any;\r\n currentProvinceCode: any;\r\n\r\n public set currentProvinceName(value) {\r\n this._currentProvinceName = value;\r\n }\r\n\r\n public get currentProvinceName() {\r\n return this._currentProvinceName;\r\n }\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.translationService.countryProvinceCityPlaceholder.update(ctx => {\r\n ctx[this.correlation()] = ctx[this.correlation()] || {};\r\n return ctx;\r\n });\r\n }\r\n\r\n // emitOutput() {\r\n // this.valueChange.emit({ countryCode: this.currentCountryCode, countryName: this.currentCountryName, provinceCode: this.currentProvinceCode, provinceName: this.currentProvinceName });\r\n // }\r\n\r\n setCountry() {\r\n this.translationService.countryProvinceCityPlaceholder.update(p => {\r\n p[this.correlation()] =\r\n {\r\n ...p[this.correlation()],\r\n provinceCode: undefined,\r\n provinceName: undefined,\r\n currentProvince: undefined,\r\n city: undefined\r\n };\r\n return p;\r\n });\r\n this.translationService.setCountryCityPlaceholder(this.correlation(), this.translationService.countryProvinceCityPlaceholder()[this.correlation()]);\r\n }\r\n\r\n setProvince() {\r\n this.translationService.countryProvinceCityPlaceholder.update(p => {\r\n p[this.correlation()] = {\r\n ...p[this.correlation()],\r\n city: undefined\r\n };\r\n return p;\r\n });\r\n\r\n this.translationService.setCountryCityPlaceholder(this.correlation(), this.translationService.countryProvinceCityPlaceholder()[this.correlation()]);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.translationService.countryProvinceCityPlaceholder[this.correlation()] = undefined;\r\n }\r\n\r\n\r\n}\r\n","@if (mode() == 'country') {\r\n<p-select (onChange)=\"setCountry()\" filter=\"true\" optionValue=\"code\" optionLabel=\"name\" resetFilterOnHide=\"true\"\r\n placeholder=\"{{'pleaseSelect' | translation: translationService.translations}}\" fluid\r\n [options]=\"translationService.countries()\"\r\n [(ngModel)]=\"translationService.countryProvinceCityPlaceholder()[this.correlation()].countryCode\"\r\n class=\"form-control\">\r\n <ng-template let-country #item>\r\n <div class=\"flex items-center gap-2\">\r\n <img [src]=\"'/assets/ngx-payvent-shared/flags/' + country.code.toLowerCase() + '.png'\"\r\n [class]=\"'flag flag-' + country.code.toLowerCase()\" style=\"width: 18px\" />\r\n <div>{{ country.name }}</div>\r\n </div>\r\n </ng-template>\r\n <ng-template let-country #selectedItem>\r\n <div class=\"flex items-center gap-2\">\r\n <img [src]=\"'/assets/ngx-payvent-shared/flags/' + country.code.toLowerCase() + '.png'\"\r\n [class]=\"'flag flag-' + country.code.toLowerCase()\" style=\"width: 18px\" />\r\n <div>{{ country.name }}</div>\r\n </div>\r\n </ng-template>\r\n</p-select>\r\n}\r\n\r\n@if(mode()=='province') {\r\n@if(translationService.countryProvinceCityPlaceholder()[this.correlation()]?.currentCountry?.provinces?.length > 0) {\r\n\r\n<p-select placeholder=\"{{'pleaseSelect' | translation: translationService.translations}}\" (onChange)=\"setProvince()\"\r\n resetFilterOnHide=\"true\" filter=\"true\" fluid optionValue=\"code\" optionLabel=\"name\"\r\n [options]=\"translationService.countryProvinceCityPlaceholder()[this.correlation()].currentCountry?.provinces | orderBy: 'name'\"\r\n [(ngModel)]=\"translationService.countryProvinceCityPlaceholder()[this.correlation()].provinceCode\">\r\n</p-select>\r\n}\r\n\r\n@if(!(translationService.countryProvinceCityPlaceholder()[this.correlation()].currentCountry?.provinces?.length > 0)) {\r\n<input type=\"text\" pInputText fluid\r\n [(ngModel)]=\"translationService.countryProvinceCityPlaceholder()[this.correlation()].provinceName\"\r\n class=\"form-control\" #currentPName=\"ngModel\" name=\"currentPName\" required />\r\n}\r\n}\r\n\r\n@if(mode()=='city') {\r\n@if(translationService.countryProvinceCityPlaceholder()[this.correlation()].currentProvince?.cities?.length > 0) {\r\n\r\n<p-select fluid placeholder=\"{{'pleaseSelect' | translation: translationService.translations}}\"\r\n [options]=\"translationService.countryProvinceCityPlaceholder()[this.correlation()].currentProvince?.cities\"\r\n [(ngModel)]=\"translationService.countryProvinceCityPlaceholder()[this.correlation()].city\">\r\n</p-select>\r\n}\r\n\r\n@if(!(translationService.countryProvinceCityPlaceholder()[this.correlation()].currentProvince?.cities?.length > 0)) {\r\n\r\n<input type=\"text\" [(ngModel)]=\"translationService.countryProvinceCityPlaceholder()[this.correlation()].city\"\r\n class=\"form-control\" #currentC=\"ngModel\" name=\"currentC\" pInputText fluid required />\r\n}\r\n}","import { Component, inject, input, Input, model, NgZone, OnInit, signal, ViewChild } from '@angular/core';\r\nimport { FormsModule, NgForm } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { FlowCookieService, FlowHttpClient, GlobalService, SidebarService, TranslationSharedService, UserAccountService } from '../../services';\r\nimport { FlowAppConfig } from '../../../flowAppConfig';\r\nimport { TranslationComponent } from '../translation/translation.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { InternationalPhoneComponent } from '../international-phone/international-phone.component';\r\nimport { CountryProvinceCityComponent } from '../country-province-city/country-province-city.component';\r\nimport { InputText } from 'primeng/inputtext';\r\nimport { InputOtp } from 'primeng/inputotp';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { SidebarContext } from '../../misc';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\n\r\n\r\ndeclare var window;\r\n\r\n@Component({\r\n selector: 'payvent-login-form',\r\n templateUrl: './login-form.component.html',\r\n styleUrls: ['./login-form.component.css'],\r\n standalone: true,\r\n imports: [\r\n TranslationComponent,\r\n CommonModule,\r\n FormsModule,\r\n InternationalPhoneComponent,\r\n CountryProvinceCityComponent,\r\n InputText,\r\n InputOtp,\r\n ButtonModule,\r\n CheckboxModule\r\n ]\r\n})\r\nexport class LoginFormComponent extends SidebarContext implements OnInit {\r\n\r\n @ViewChild('myForm', { static: false })\r\n private myForm: NgForm;\r\n // @ViewChild('cd', { static: false }) private countdown: CountdownComponent;\r\n\r\n public allowAccountCreation: boolean = true;\r\n public tokenType = input<string>('TEMPORARY');\r\n public clientId = input<string | null>(null);\r\n public type = input<string>('EMAIL');\r\n public showError = signal<boolean>(false);\r\n public loginMessage: string;\r\n public env: any;\r\n public status: string;\r\n public cordova: any;\r\n public loginSubscription: any;\r\n public accessRefused = signal<boolean>(false);\r\n public emailSent: boolean;\r\n public verifyPhone: boolean;\r\n public provincesList: any[] = [];\r\n public countriesList: any[] = [];\r\n loading = signal<boolean>(false);\r\n otpLoading = signal<boolean>(false);\r\n otpSuccess = signal<boolean>(false);\r\n contextResponse: any;\r\n responseStatus: any;\r\n otpError = signal<boolean>(false);\r\n otpSent: any;\r\n verified: any;\r\n otpVerified = signal<boolean>(false);\r\n loginToken: any;\r\n userProfile: any;\r\n emailOtp: any;\r\n phoneOtp: any;\r\n prevContext: any = {};\r\n countryFlag: string;\r\n localizationCountry: any;\r\n selectedCountryCode: any;\r\n phoneLoginNumber: any;\r\n profileCountryCode: any;\r\n currentCountry: any;\r\n currentProvince: any;\r\n showResend = signal<boolean>(true);\r\n public expTimestamp: any;\r\n\r\n public countdownConfig: any = {};\r\n\r\n\r\n\r\n public get passwordError() {\r\n if (!this.context().password)\r\n return 'error.login-form.password';\r\n if (this.context().password.length < 6)\r\n return 'error.login-form.password-length';\r\n\r\n return null;\r\n }\r\n\r\n public userService = inject(UserAccountService);\r\n public sidebarService = inject(SidebarService);\r\n public router = inject(Router);\r\n public http = inject(HttpClient);\r\n public translationService = inject(TranslationSharedService);\r\n private environment = inject(FlowAppConfig);\r\n\r\n public httpClient = inject(FlowHttpClient);\r\n // public platform: Platform,\r\n public cookieService = inject(FlowCookieService);\r\n public globalService = inject(GlobalService);\r\n constructor(\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n var result: any = {};\r\n this.context.update(ctx => ({\r\n ...ctx,\r\n user: {},\r\n type: ctx.type ?? this.type(),\r\n tokenType: ctx.tokenType ?? this.tokenType(),\r\n action: ctx.action ?? 'LOGIN',\r\n allowAccountCreation: typeof ctx.allowAccountCreation == 'boolean' ? ctx.allowAccountCreation : this.allowAccountCreation\r\n }));\r\n console.log(this.context());\r\n\r\n this.userService.onAccessRefused.subscribe(res => {\r\n this.resetContext();\r\n this.accessRefused.set(true);\r\n });\r\n\r\n this.env = this.environment;\r\n this.cordova = window.cordova;\r\n if (!this.userService.redirectTo)\r\n this.userService.redirectTo = this.context().returnUrl || window.location.pathname + window.location.search;\r\n\r\n\r\n (<any>window).login = (<any>window).login || this;\r\n\r\n if (this.context().otpType == 'EMAIL') {\r\n this.context.update(ctx => ({\r\n ...ctx,\r\n otp: this.emailOtp\r\n }));\r\n }\r\n\r\n if (this.context().otpType == 'PHONE') {\r\n this.context.update(ctx => ({\r\n ...ctx,\r\n otp: this.phoneOtp\r\n }));\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.loginSubscription)\r\n this.loginSubscription.unsubscribe();\r\n\r\n window.login = null;\r\n }\r\n\r\n\r\n\r\n openConsent(evt, item) {\r\n console.log(evt);\r\n evt.stopPropagation();\r\n // this.http.get(item.contentUrl, { responseType: 'text' }).subscribe(r => {\r\n // this.modalService.openRawAlert(new TranslationPipe().transform('consentTitle.' + item.name, this.translationService.translations), r);\r\n // });\r\n }\r\n\r\n recover() {\r\n this.context.update(ctx => ({\r\n ...ctx,\r\n action: 'RECOVER',\r\n type: ctx.type == 'EMAIL' ? 'PHONE' : 'EMAIL'\r\n }));\r\n }\r\n\r\n getOtp() {\r\n this.showError.set(false);\r\n this.loading.set(true);\r\n this.context.update(ctx => ({ ...ctx, errorMessage: null }));\r\n // this.showResend = false;\r\n\r\n\r\n if (this.myForm && !this.myForm.valid) {\r\n this.showError.set(true);\r\n this.loading.set(false);\r\n this.globalService.onError.emit();\r\n return;\r\n }\r\n\r\n this.context.update(ctx => ({\r\n ...ctx,\r\n clientName: this.environment.client_id,\r\n allowAccountCreation: this.allowAccountCreation\r\n }));\r\n\r\n this.userService.getOtp(this.context()).subscribe(async res => {\r\n console.log(res.result.type);\r\n\r\n this.loading.set(false);\r\n if (res.result.status == 'otp_verified') {\r\n this.otpSuccess.set(true);\r\n this.globalService.onSuccess.emit();\r\n if (res.result.type == 'TOKEN') {\r\n this.userService.processOtpToken(res.result);\r\n return;\r\n }\r\n if (res.result.type == 'DATA') {\r\n console.log(\r\n {\r\n countryCode: res.result.user?.countryCode || (await this.translationService.getLocalization()).result.country,\r\n provinceCode: res.result.user?.provinceCode,\r\n provinceName: res.result.user?.province,\r\n city: res.result.user?.city\r\n }\r\n );\r\n this.translationService.setCountryCityPlaceholder('login-form', {\r\n countryCode: res.result.user?.countryCode || (await this.translationService.getLocalization()).result.country,\r\n provinceCode: res.result.user?.provinceCode,\r\n provinceName: res.result.user?.province,\r\n city: res.result.user?.city\r\n });\r\n\r\n }\r\n }\r\n this.prevContext = this.context();\r\n this.context.set(res.result);\r\n console.log(this.context);\r\n this.countdownConfig = { leftTime: 30, format: 'ss' };\r\n\r\n if (this.context().status == 'error') {\r\n this.globalService.onError.emit();\r\n }\r\n\r\n if (this.context().errorMessage == 'duplicate_phone') {\r\n this.globalService.onError.emit();\r\n console.log('duplicate_phone')\r\n return;\r\n }\r\n\r\n\r\n })\r\n }\r\n\r\n\r\n verifyOtp(val) {\r\n if (val?.value.length < 6)\r\n return;\r\n\r\n this.context.update(ctx => ({\r\n ...ctx,\r\n errorMessage: null,\r\n clientName: this.environment.client_id,\r\n status: 'otp_sent',\r\n }));\r\n\r\n this.otpLoading.set(true);\r\n\r\n this.otpError.set(false);\r\n this.otpSuccess.set(false);\r\n\r\n this.userService.verifyOtp(this.context()).subscribe(async r => {\r\n if (r.result.status == 'otp_verified') {\r\n this.otpSuccess.set(true);\r\n\r\n if (r.result.type == 'TOKEN') {\r\n this.userService.processOtpToken(r.result);\r\n return;\r\n }\r\n if (r.result.action == 'CHANGELOGINNAME' && r.result.status == 'login_name_changed') {\r\n this.userService.currentUser = r.result.user;\r\n this.userService.onUserLoggedIn.emit({ action: this.context().action, user: r.result.user });\r\n return;\r\n }\r\n\r\n if (r.result.type == 'DATA') {\r\n this.translationService.setCountryCityPlaceholder('login-form', {\r\n countryCode: r.result.user?.countryCode || (await this.translationService.getLocalization()).result.country,\r\n provinceCode: r.result.user?.provinceCode,\r\n provinceName: r.result.user?.province,\r\n city: r.result.user?.city\r\n });\r\n }\r\n\r\n }\r\n\r\n this.otpLoading.set(false);\r\n\r\n this.context.set(r.result);\r\n\r\n if (this.context().errorMessage == 'wrong_code') {\r\n // this.context.update(ctx => ({\r\n // ...ctx,\r\n // otp: null\r\n // }));\r\n this.emailOtp = null;\r\n this.phoneOtp = null;\r\n this.otpError.set(true);\r\n }\r\n\r\n\r\n\r\n\r\n })\r\n }\r\n\r\n countdownEvent(evt) {\r\n if (evt.action == 'finished' || evt.action == 'done') {\r\n // this.showResend = true;\r\n }\r\n }\r\n\r\n resendOtp() {\r\n this.loading.set(true);\r\n this.userService.resendOtp(this.context()).subscribe(res => {\r\n this.loading.set(false);\r\n\r\n if (res.result.status == 'error') {\r\n this.context().errorMessage = res.result.errorMessage;\r\n this.globalService.onError.emit();\r\n }\r\n else {\r\n this.globalService.onSuccess.emit();\r\n // this.showResend = false;\r\n this.context.set(res.result);\r\n this.countdownConfig = { leftTime: 30, format: 'ss' };\r\n\r\n }\r\n })\r\n }\r\n\r\n saveUser() {\r\n\r\n this.translationService.validateCountryProvinceCity('login-form')\r\n let countryProvinceCity = this.translationService.countryProvinceCityPlaceholder()['login-form']\r\n\r\n this.showError.set(false);\r\n if ((this.myForm && !this.myForm.valid) || this.context().user.consents.find(c => c.required && !c.consented) || countryProvinceCity.countryError || countryProvinceCity.provinceError || countryProvinceCity.cityError) {\r\n this.globalService.onError.emit();\r\n this.showError.set(true);\r\n return;\r\n }\r\n\r\n this.context().errorMessage = null;\r\n\r\n let cpc = this.translationService.getCountryCityPlaceholder('login-form');\r\n this.context.update(ctx => ({\r\n ...ctx,\r\n user: {\r\n ...ctx.user,\r\n countryCode: cpc.countryCode,\r\n country: cpc.countryName,\r\n provinceCode: cpc.provinceCode,\r\n province: cpc.provinceName,\r\n city: cpc.city\r\n }\r\n }));\r\n\r\n\r\n this.userService.saveUserProfile(this.context()).subscribe(r => {\r\n this.userService.processOtpToken(r.result);\r\n })\r\n }\r\n resetContext() {\r\n this.prevContext.token = null;\r\n this.prevContext.loginName = null;\r\n this.context.set(this.prevContext);\r\n }\r\n\r\n resetContextData() {\r\n\r\n\r\n }\r\n\r\n submitRegister() {\r\n this.context.update(ctx => ({\r\n ...ctx,\r\n token: this.loginToken,\r\n errorMessage: null\r\n }));\r\n\r\n this.userService.verifyOtp(this.context()).subscribe(r => {\r\n this.context.set(r.result);\r\n if (r.result.status == 'error')\r\n this.globalService.onError.emit();\r\n else\r\n this.globalService.onSuccess.emit();\r\n })\r\n }\r\n\r\n\r\n\r\n remove() {\r\n this.cookieService.remove('userAccount');\r\n this.resetContext();\r\n }\r\n\r\n\r\n\r\n}\r\n","<div class=\"login-component\">\r\n @if (accessRefused()) {\r\n <div class=\"alert alert-danger\">\r\n <translate name=\"login-form.access-refused\"></translate>\r\n </div>\r\n }\r\n\r\n <form novalidate #myForm=\"ngForm\">\r\n\r\n @if (context().type == 'EMAIL' && !['otp_sent', 'login_name_changed'].includes(context().status) &&\r\n context().errorMessage != 'wrong_code' ){\r\n <div class=\"mb-3\">\r\n <div class=\"mb-1\">\r\n <translate [name]=\"'login-form.email.' + context().action.toLowerCase()\"></translate>\r\n </div>\r\n <input type=\"email\" [(ngModel)]=\"context().loginName\" pInputText email class=\"form-control\" #email=\"ngModel\"\r\n name=\"email\" required fluid=\"true\" />\r\n @if(context().action=='LOGIN') {\r\n <a (click)=\"recover()\">\r\n <translate name=\"login-form.no-email-access\"></translate>\r\n </a>\r\n }\r\n\r\n @if(!email.valid && showError()) {\r\n <div class=\"text-danger\">\r\n <span class=\"material-symbols mr-1\">info</span>\r\n <translate name=\"error.login-form.email\"></translate>\r\n </div>\r\n }\r\n @if (context().errorMessage) {\r\n <div class=\"mb-2 text-danger\">\r\n <span class=\"material-symbols mr-1\">info</span>\r\n <translate [name]=\"'login-form.error.' + context().errorMessage\"></translate>\r\n </div>\r\n }\r\n </div>\r\n <button pButton fluid=\"true\" [loading]=\"loading()\" (click)=\"getOtp()\">\r\n <translate [name]=\"'login-form.submit-email.' + context().action.toLowerCase()\"></translate>\r\n </button>\r\n }\r\n\r\n\r\n @if (context().status == 'otp_sent' || context().errorMessage == 'wrong_code') {\r\n <div style=\"position:relative\">\r\n @if (otpLoading()) {\r\n <div class=\"loader-container\">\r\n <div class=\"loader\"></div>\r\n </div>\r\n }\r\n <div class=\"mb-2\">\r\n <translate name=\"login-form.enter_otp_code\" [replacements]=\"[context().loginNameMasked]\"></translate>\r\n </div>\r\n <div class=\"mb-2\">\r\n <p-inputotp [disabled]=\"loading()\" [(ngModel)]=\"context().otp\" size=\"large\" [length]=\"6\" [autofocus]=\"true\"\r\n (onChange)=\"verifyOtp($event)\" name=\"inputOtp\" class=\"justify-center my-4\"></p-inputotp>\r\n </div>\r\n @if (context().errorMessage) {\r\n <div class=\"mb-2 text-danger\">\r\n <span class=\"material-symbols mr-1\">info</span>\r\n <translate [name]=\"'login-form.error.' + context().errorMessage\"></translate>\r\n </div>\r\n }\r\n @if(!showResend()) {\r\n <translate name=\"login-form.resend-code.in-sec\"></translate>\r\n <!-- <countdown #cd [config]=\"countdownConfig\" (event)=\"countdownEvent($event)\">$!s!</countdown> sec -->\r\n }\r\n\r\n @if(showResend()) {\r\n <button pButton [loading]=\"loading()\" fluid=\"true\" class=\"mb-1\" (click)=\"resendOtp()\">\r\n <translate name=\"login-form.resend-otp\"></translate>\r\n </button>\r\n }\r\n </div>\r\n\r\n }\r\n\r\n\r\n @if (context().type == 'PHONE' && !['otp_sent', 'login_name_changed'].includes(context().status) &&\r\n context().errorMessage != 'wrong_code') {\r\n <div class=\"mb-2\">\r\n <div class=\"mb-2\">\r\n <label class=\"login-label\">\r\n <translate [name]=\"'login-form.phone.' + context().action.toLowerCase()\"></translate>\r\n </label>\r\n </div>\r\n <payvent-international-phone [(phoneNumber)]=\"context().loginName\" name=\"phone\"\r\n ngDefaultControl></payvent-international-phone>\r\n\r\n @if (showError()) {\r\n <div class=\"text-danger\">\r\n <span class=\"material-symbols mr-1\">info</span>\r\n <translate name=\"error.login-form.phone\"></translate>\r\n </div>\r\n }\r\n\r\n @if (context().status=='duplicate_phone') {\r\n <div class=\"text-danger\">\r\n <span class=\"material-symbols mr-1\">info</span>\r\n <translate name=\"error.login-form.duplicate_phone\"></translate>\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"mr-2\">\r\n <button pButton fluid=\"true\" [loading]=\"loading()\" (click)=\"getOtp()\">\r\n <translate [name]=\"'login-form.submit-phone.' + context().action.toLowerCase()\"></translate>\r\n </button>\r\n </div>\r\n }\r\n\r\n @if (context().type=='DATA') {\r\n <div class=\"mb-2\">\r\n <div class=\"text-center mb-2\">\r\n <label class=\"login-label\">\r\n <translate name=\"login-form.profile-data.login\"></translate>\r\n </label>\r\n </div>\r\n\r\n <div class=\"mb-2\">\r\n <div class=\"mb-1\">\r\n <translate name=\"login-form.email\"></translate>\r\n </div>\r\n <input type=\"email\" pInputText [(ngModel)]=\"context().user.email\" fluid #email=\"ngModel\" name=\"email\"\r\n disabled />\r\n </div>\r\n <div class=\"mb-2 name-group\">\r\n <div class=\"first\">\r\n <div class=\"mb-1\">\r\n <translate name=\"login-form.firstName\"></translate>\r\n </div>\r\n <input type=\"text\" pInputText [(ngModel)]=\"context().user.firstName\" fluid #firstName=\"ngModel\"\r\n name=\"firstName\" required />\r\n @if (!firstName.valid && showError()){\r\n <div class=\"text-danger\">\r\n <span class=\"material-symbols mr-1\">info</span>\r\n <translate name=\"error.login-form.firstName\"></translate>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"second\">\r\n <div class=\"mb-1\">\r\n <translate name=\"login-form.lastName\"></translate>\r\n </div>\r\n <input type=\"text\" [(ngModel)]=\"context().user.lastName\" fluid pInputText #lastName=\"ngModel\" name=\"lastName\"\r\n required />\r\n @if (!lastName.valid && showError()){\r\n <div class=\"text-danger\">\r\n <span class=\"material-symbols mr-1\">info</span>\r\n <translate name=\"error.login-form.lastName\"></translate>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n\r\n <div class=\"mb-2\">\r\n <div class=\"mb-1\">\r\n <translate name=\"login-form.phone\"></translate>\r\n </div>\r\n <input type=\"phone\" [(ngModel)]=\"context().user.phoneNumber\" fluid pInputText #phone=\"ngModel\" name=\"phone\"\r\n disabled />\r\n </div>\r\n\r\n\r\n <div class=\"mb-2\">\r\n <div class=\"mb-1\">\r\n <translate name=\"login-form.country\"></translate>\r\n </div>\r\n <payvent-country-province-city mode=\"country\" correlation=\"login-form\"></payvent-country-province-city>\r\n @if(translationService.countryProvinceCityPlaceholder()['login-form'].countryError) {\r\n <div class=\"text-danger\">\r\n <span class=\"material-symbols mr-1\">info</span>\r\n <translate name=\"error.login-form.country\"></translate>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"mb-2\">\r\n <div class=\"mb-1\">\r\n <translate name=\"login-form.province\"></translate>\r\n </div>\r\n <payvent-country-province-city mode=\"province\" correlation=\"login-form\"></payvent-country-province-city>\r\n\r\n @if(translationService.countryProvinceCityPlaceholder()['login-form'].provinceError) {\r\n <div class=\"text-danger\">\r\n <span class=\"material-symbols mr-1\">info</span>\r\n <translate name=\"error.login-form.province\"></translate>\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"mb-2\">\r\n <div class=\"mb-1\">\r\n <translate name=\"login-form.city\"></translate>\r\n </div>\r\n <payvent-country-province-city mode=\"city\" correlation=\"login-form\"></payvent-country-province-city>\r\n @if(translationService.countryProvinceCityPlaceholder()['login-form'].cityError) {\r\n <div class=\"text-danger\">\r\n <span class=\"material-symbols mr-1\">info</span>\r\n <translate name=\"error.login-form.city\"></translate>\r\n </div>\r\n }\r\n </div>\r\n\r\n @if (context().user.consents.length > 0) {\r\n <div class=\"my-4\">\r\n @for(item of context().user.consents; track item.id) {\r\n <div class=\"mb-2 flex items-center gap-2\">\r\n <p-checkbox [inputId]=\"item.name\" [name]=\"item.name\" [binary]=\"true\" [(ngModel)]=\"item.consented\" />\r\n <label [for]=\"item.name\">\r\n <translate name=\"login-form.consent\"></translate>\r\n </label>\r\n <a (click)=\"openConsent($event, item)\">\r\n <translate [name]=\"'consent.' + item.name\"></translate>\r\n </a>\r\n </div>\r\n @if(!item.consented && item.required && showError()) {\r\n <div class=\"text-danger mb-2\">\r\n <span class=\"material-symbols mr-1\">info</span>\r\n <translate [name]=\"'consentError.' + item.name\"></translate>\r\n </div>\r\n }\r\n\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n </form>\r\n\r\n\r\n <div class=\"my-2\">\r\n @if (context().type == 'DATA') {\r\n <button pButton fluid (click)=\"saveUser()\">\r\n <translate name=\"login-form.save-changes\"></translate>\r\n </button>\r\n }\r\n </div>\r\n\r\n @if (context().status && context().status != 'client_not_found' && context().status != 'login_name_changed' &&\r\n context().status != 'otp_verified' && !loading()) {\r\n <div class=\"mb-2\">\r\n <button pButton severity=\"secondary\" outlined=\"true\" fluid=\"true\" (click)=\"resetContext()\">\r\n <translate name=\"login-form.back\"></translate>\r\n </button>\r\n </div>\r\n }\r\n\r\n @if(context().action=='VERIFYRECOVER' && context().type=='TOKEN') {\r\n <translate name=\"login-form.recover_success\"></translate>\r\n }\r\n\r\n @if(context().action=='CHANGELOGINNAME' && context().status=='login_name_changed') {\r\n <translate [name]=\"'login-form.login_name_changed.' + context().type.toLowerCase()\"></translate>\r\n }\r\n\r\n</div>","import { Component, inject, ViewEncapsulation } from '@angular/core';\r\nimport { FlowCookieService } from '../../services/cookie/cookie.service';\r\nimport { GlobalService } from '../../services';\r\nimport { TranslationComponent } from '../translation/translation.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CardModule } from 'primeng/card';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { StyleClassModule } from 'primeng/styleclass';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'cookie-bar',\r\n templateUrl: './cookie-bar.component.html',\r\n styleUrls: ['./cookie-bar.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n TranslationComponent,\r\n CardModule,\r\n ButtonModule,\r\n StyleClassModule \r\n\r\n // FormsModule,\r\n // RouterModule,\r\n // InputTextModule,\r\n // RippleModule,\r\n // ButtonModule,\r\n // DropdownModule,\r\n // CheckboxModule,\r\n // TagModule,\r\n // CompareDirective\r\n ]\r\n})\r\nexport class CookieBarComponent {\r\n\r\n public get isPrerender() {\r\n return window.navigator.userAgent.includes('prerender');\r\n }\r\n\r\n cookieService = inject(FlowCookieService);\r\n gs = inject(GlobalService);\r\n\r\n constructor(\r\n ) { }\r\n\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n acceptCookies(){\r\n this.cookieService.gdprConsent = '1';\r\n\r\n }\r\n\r\n rejectCookies(){\r\n this.cookieService.gdprConsent = '0';\r\n }\r\n\r\n}\r\n","@if(!cookieService.gdprConsent && !isPrerender){\r\n<div class=\"flow-cookie-bar-overlay\">\r\n <div class=\"flow-cookie-bar-alert\">\r\n <div style=\"padding: 10px;\">\r\n\r\n <div style=\"margin-bottom: 10px;\">\r\n <translate name=\"cookie-bar.text\"></translate>\r\n </div>\r\n <!-- <a pButton pRipple class=\"p-button-link\" (click)=\"acceptCookies()\">\r\n <translate name=\"cookie-bar.accept\"></translate>\r\n </a> -->\r\n\r\n <!-- <button pButton pRipple class=\"w-full\" (click)=\"acceptCookies()\">\r\n <translate name=\"cookie-bar.accept\"></translate>\r\n </button> -->\r\n\r\n <!-- <div class=\"mb-3\">\r\n <button class=\"w-full\" severity=\"secondary\" pRipple pButton (click)=\"acceptCookies()\">\r\n <translate name=\"cookie-bar.accept\"></translate>\r\n </button>\r\n </div> -->\r\n\r\n <div>\r\n <span style=\"padding: 5px;\">\r\n <p-button [outlined]=\"true\" (click)=\"acceptCookies()\" class=\"button-padding\">\r\n <translate name=\"cookie-bar.accept\"></translate>\r\n </p-button>\r\n </span>\r\n <span style=\"padding: 5px;\">\r\n <p-button [outlined]=\"true\" severity=\"secondary\" (click)=\"rejectCookies()\" class=\"button-padding\">\r\n <translate name=\"cookie-bar.reject\"></translate>\r\n </p-button>\r\n </span>\r\n </div>\r\n\r\n\r\n <!-- <button class=\"btn btn-default yes-btn\" (click)=\"acceptCookies()\">\r\n <translate name=\"cookie-bar.accept\"></translate>\r\n </button>\r\n <a class=\"no-link\" (click)=\"rejectCookies()\">\r\n <translate name=\"cookie-bar.reject\"></translate>\r\n </a> -->\r\n </div>\r\n </div>\r\n</div>\r\n}","import { Component, inject, OnInit } from '@angular/core';\r\nimport { SignalrNotificationService, TranslationSharedService } from '../../services';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CardModule } from 'primeng/card';\r\nimport { TranslationComponent } from '../translation/translation.component';\r\n\r\n@Component({\r\n selector: 'app-notification-list',\r\n templateUrl: './notification-list.component.html',\r\n styleUrls: ['./notification-list.component.css'],\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n TranslationComponent,\r\n CardModule,\r\n ]\r\n})\r\nexport class NotificationListComponent implements OnInit {\r\n public pageNo: number = 1;\r\n\r\n public loading: boolean = false;\r\n\r\n signalRService = inject(SignalrNotificationService);\r\n translationService = inject(TranslationSharedService);\r\n\r\n\r\n constructor(\r\n // public signalRService: SignalrNotificationService, public translationService: TranslationSharedService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.signalRService.getNotifications().subscribe(res => {\r\n this.signalRService.messages().filter(m => m.isUnread).forEach(item => {\r\n item.isUnread = false;\r\n item.wasNew = true;\r\n });\r\n this.signalRService.setReadReceipt();\r\n\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.signalRService.messages().forEach(item => {\r\n item.wasNew = false;\r\n });\r\n }\r\n\r\n public get messages(): any[] {\r\n return this.signalRService.messages().slice().sort((a, b) => (a.creationTime.toString() < b.creationTime.toString() ? 1 : -1));\r\n }\r\n\r\n openNextPage() {\r\n this.loading = true;\r\n this.signalRService.messagePageNo++;\r\n this.signalRService.getNotifications().subscribe(res => this.loading = false);\r\n }\r\n\r\n notificationClick(message) {\r\n this.signalRService.onNotificationClick.emit(message);\r\n }\r\n\r\n}\r\n","@for( m of messages; track m){\r\n<span>\r\n <li [class]=\"m.isUnread ? 'dropdown-message-unread' : m.wasNew ? 'dropdown-message-wasnew' : ''\">\r\n <div class=\"dropdown-messages-box\">\r\n <a class=\"media-link\" (click)=\"notificationClick(m)\">\r\n @if(m.mediaType=='Image' && m.mediaSrc){<img [src]=\"m.mediaSrc\" style=\"width:100%\" />}\r\n <span class=\"media-body\">\r\n <!-- <i class=\"fa fa-check bg-green icon\" *ngIf=\"m.class=='success'\"></i>\r\n <i class=\"fa fa-info-circle bg-aqua icon\" *ngIf=\"m.class=='info'\"></i>\r\n <i class=\"fa fa-exclamation-circle icon bg-yellow\" *ngIf=\"m.class=='warning'\"></i>\r\n <i class=\"fa fa-times bg-red icon\" *ngIf=\"m.class=='error'\"></i> -->\r\n @if(m.class=='success'){\r\n <i class=\"pi pi-check\"></i>\r\n }\r\n @if(m.class=='info'){\r\n <i class=\"pi pi-info-circle\"></i>\r\n }\r\n @if(m.class=='warning'){\r\n <i class=\"pi-exclamation-circle\"></i>\r\n }\r\n @if(m.class=='error'){\r\n <i class=\"pi pi-times\"></i>\r\n }\r\n\r\n <!-- @if(m.subject){\r\n <div class=\"media-title\">\r\n {{signalRService.processReplacements(m.subject | translation : translationService.translations, m.model)}}\r\n </div>\r\n }\r\n\r\n <span\r\n [innerHtml]=\"signalRService.processReplacements(m.body | translation : translationService.translations, m.model)\">\r\n </span>\r\n <br />\r\n <small class=\"text-muted\">\r\n <i class=\"fa subicon fa-clock-o\"></i> {{m.creationTime | amFromUtc | amTimeAgo}}</small> -->\r\n </span>\r\n </a>\r\n\r\n </div>\r\n </li>\r\n</span>\r\n}\r\n\r\n@if(messages.length==0){\r\n<li>\r\n <div class=\"media-body text-center text-muted\">\r\n <translate name=\"messages.nomessages\"></translate>\r\n </div>\r\n\r\n</li>\r\n}\r\n@if(signalRService.hasMorePages){\r\n<div class=\"media-body notification-footer text-center text-muted small-text\">\r\n @if(loading){<span class=\"loader loader-small\"></span>}\r\n @if(!loading){\r\n <a (click)=\"openNextPage()\">\r\n <translate name=\"messages.viewmore\"></translate>\r\n </a>\r\n }\r\n</div>\r\n}","import { Component, OnInit, Input, HostBinding, HostListener, ViewChild, ElementRef, inject, input } from '@angular/core';\r\nimport { SignalrNotificationService } from '../../services';\r\nimport { TranslationSharedService } from '../../services';\r\nimport { SortingPagingCriteria } from '../../misc/sorting-paging-criteria';\r\nimport { timer } from 'rxjs';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CardModule } from 'primeng/card';\r\nimport { TranslationComponent } from '../translation/translation.component';\r\nimport { NotificationListComponent } from '../notification-list/notification-list.component';\r\n\r\n@Component({\r\n selector: '[notification-dropdown]',\r\n templateUrl: './notification-dropdown.component.html',\r\n styleUrls: ['./notification-dropdown.component.css'],\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n TranslationComponent,\r\n CardModule,\r\n NotificationListComponent,\r\n ]\r\n})\r\nexport class NotificationDropdownComponent implements OnInit {\r\n\r\n public connection: any;\r\n @HostBinding('class.open') public notificationsOpen: boolean = false;\r\n\r\n public sortingPagingCriteria: SortingPagingCriteria = new SortingPagingCriteria();\r\n\r\n public canClose: boolean;\r\n\r\n icon = input<string>('fa fa-bell')\r\n translation = input<string>('')\r\n linkClass = input<string>('')\r\n\r\n\r\n @HostListener('document:touchend', ['$event'])\r\n @HostListener('document:click', ['$event'])\r\n onDocumentClick(targetElementPath) {\r\n let elementRefInPath = targetElementPath.path ? targetElementPath.path.find(e => e === this._elementRef.nativeElement) : undefined;\r\n if (!elementRefInPath && this.notificationsOpen && this.canClose) {\r\n this.openNotifications();\r\n }\r\n }\r\n\r\n signalRService = inject(SignalrNotificationService);\r\n translationService = inject(TranslationSharedService);\r\n _elementRef = inject(ElementRef);\r\n\r\n\r\n\r\n constructor(\r\n // public signalRService: SignalrNotificationService, private translationService: TranslationSharedService, private _elementRef: ElementRef\r\n ) { }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n\r\n\r\n openNotifications() {\r\n this.canClose = false;\r\n this.notificationsOpen = !this.notificationsOpen;\r\n timer(100).subscribe(r => this.canClose = true);\r\n }\r\n\r\n}\r\n","<a [class]=\"'dropdown-toggle count-info ' + linkClass\" (click)=\"openNotifications()\">\r\n <i [class]=\"icon()\"></i>\r\n @if(signalRService.unreadMessageCount()>0){\r\n <span class=\"label label-primary\">{{signalRService.unreadMessageCount()}}</span>\r\n }\r\n @if(translation){<translate [name]=\"translation\"></translate>}\r\n</a>\r\n@if(notificationsOpen){\r\n<ul class=\"dropdown-menu dropdown-messages\" #messagesCtl>\r\n <app-notification-list></app-notification-list>\r\n</ul>\r\n}","import { Component, inject, OnInit } from '@angular/core';\r\nimport { SignalrNotificationService } from '../../services';\r\nimport { TranslationSharedService } from '../../services';\r\nimport { Observable, of, Subscription, timer } from 'rxjs';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CardModule } from 'primeng/card';\r\nimport { TranslationComponent } from '../translation/translation.component';\r\nimport { MessageService } from 'primeng/api';\r\nimport { ToastModule } from 'primeng/toast';\r\nimport { TranslationPipe } from '../../pipes';\r\nimport { ButtonModule } from 'primeng/button';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-notification-toaster',\r\n templateUrl: './notification-toaster.component.html',\r\n styleUrls: ['./notification-toaster.component.css'],\r\n standalone: true,\r\n imports: [\r\n TranslationPipe,\r\n CommonModule,\r\n TranslationComponent,\r\n CardModule,\r\n ToastModule,\r\n ButtonModule\r\n ]\r\n})\r\nexport class NotificationToasterComponent implements OnInit {\r\n\r\n private connection: any;\r\n public _messages: any[] = [];\r\n public newMessage: any;\r\n public obsTimeout: Observable<any>;\r\n public obsTimer: Subscription;\r\n\r\n signalRService = inject(SignalrNotificationService);\r\n translationService = inject(TranslationSharedService);\r\n messageService = inject(MessageService);\r\n\r\n\r\n constructor(\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.signalRService.onNotification.subscribe(m => {\r\n m.isToasterUnread = true;\r\n m.isUnread = true;\r\n if (this.obsTimer) {\r\n this.obsTimer.unsubscribe();\r\n }\r\n this.obsTimeout = timer(5000);\r\n this.obsTimer = this.obsTimeout.subscribe(() => this.messages.forEach(m => {\r\n m.isToasterUnread = false;\r\n }));\r\n\r\n if (this.messages.length > 5)\r\n this.messages[0].isToasterUnread = false;\r\n });\r\n }\r\n\r\n public get messages(): any[] {\r\n return this.signalRService.messages().filter(m => m && m.isToasterUnread && m.isUnread);\r\n }\r\n\r\n sendMessage() {\r\n this.connection.invoke('send', this.newMessage);\r\n this.newMessage = '';\r\n }\r\n\r\n removeNotification(not) {\r\n not.isUnread = false;\r\n not.isToasterUnread = false;\r\n }\r\n\r\n notificationClick(message) {\r\n this.signalRService.onNotificationClick.emit(message);\r\n this.removeNotification(message);\r\n }\r\n}\r\n","<div id=\"toast-container\" class=\"card flex justify-content-center\" class=\"toast-bottom-right\">\r\n <p-toast />\r\n @for (m of messages; track m) {\r\n <p-button (onClick)=\"notificationClick(m)\" [severity]=\" m.class\" />\r\n <div class=\"toast-progress\"></div>\r\n <div class=\"pull-left\">\r\n @if(!m.iconUrl){\r\n <ng-container>\r\n @if(m.class=='success'){\r\n <i class=\"pi pi-check\"></i>\r\n }\r\n @if(m.class=='info'){\r\n <i class=\"pi pi-info-circle\"></i>\r\n }\r\n @if(m.class=='warning'){\r\n <i class=\"pi-exclamation-circle\"></i>\r\n }\r\n @if(m.class=='error'){\r\n <i class=\"pi pi-times\"></i>\r\n }\r\n </ng-container>\r\n }\r\n\r\n @if(m.iconUrl){<div [style.backgroundImage]=\"'url(' + m.iconUrl + ')'\" class=\"toast-icon\"></div>\r\n}\r\n </div>\r\n\r\n }\r\n</div>\r\n","import { Component, OnInit, Output, EventEmitter, Renderer2, Input, inject, input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'flow-qr-scanner',\r\n templateUrl: './qr-scanner.component.html',\r\n styleUrls: ['./qr-scanner.component.css'],\r\n standalone: true\r\n})\r\nexport class QrScannerComponent implements OnInit {\r\n\r\n private value: string = '';\r\n\r\n // @Input()\r\n // public disabled: boolean;\r\n \r\n // disabled = input<boolean>('')\r\n\r\n private eventListener: any;\r\n @Output()\r\n public valueRead: EventEmitter<any> = new EventEmitter();\r\n public timeout: any;\r\n\r\n\r\n renderer = inject(Renderer2);\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n\r\n this.eventListener = this.renderer.listen(document, 'keydown', (event) => {\r\n // if (this.disabled())\r\n // return;\r\n if (this.timeout)\r\n clearTimeout(this.timeout);\r\n if (event.keyCode != 13) {\r\n if (event.keyCode >= 31) {\r\n this.value += event.key.toString().toUpperCase();\r\n this.timeout = setTimeout(() => {\r\n this.value = '';\r\n }, 1000);\r\n }\r\n }\r\n else {\r\n this.valueRead.emit(this.value);\r\n this.value = '';\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.eventListener();\r\n }\r\n\r\n}\r\n","","import { Component, ElementRef, ViewChild, effect, inject, signal } from '@angular/core';\r\nimport { SidebarService } from '../../services';\r\nimport { CommonModule, JsonPipe, NgComponentOutlet } from '@angular/common';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { HammerModule } from '@angular/platform-browser';\r\nimport { DrawerModule } from 'primeng/drawer';\r\n\r\n@Component({\r\n selector: 'sidebar',\r\n standalone: true,\r\n imports: [DrawerModule, NgComponentOutlet, ButtonModule, HammerModule, CommonModule],\r\n templateUrl: './sidebar.component.html',\r\n styleUrl: './sidebar.component.css'\r\n})\r\nexport class SidebarComponent {\r\n\r\n @ViewChild('content', { read: ElementRef })\r\n contentComponent: ElementRef;\r\n\r\n sidebarService = inject(SidebarService);\r\n private initialHeight: number;\r\n private panElement: HTMLElement | null;\r\n contentScrollable = signal(false);\r\n #deltaScroll: number = 0;\r\n #initialY: number = 0;\r\n #initialTimestamp: number;\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n closeCallback(id) {\r\n this.sidebarService.closeSidebar(id);\r\n }\r\n\r\n onPan(evt, id) {\r\n console.log(evt);\r\n switch (evt.type) {\r\n case 'touchstart':\r\n let targetId = (evt.target as HTMLElement).id;\r\n this.panElement = document.querySelector<HTMLElement>(`#sidebar-${id}`);\r\n this.panElement!.style.transition = 'none';\r\n this.initialHeight = this.panElement!.offsetHeight;\r\n this.#initialY = evt.touches[0].clientY;\r\n this.#initialTimestamp = new Date().getTime();\r\n break;\r\n case 'touchmove':\r\n if (!this.panElement)\r\n return;\r\n this.#deltaScroll = this.#initialY - evt.touches[0].clientY;\r\n if (this.#deltaScroll < 0 && this.contentComponent.nativeElement.scrollTop > 0) {\r\n this.panElement = null;\r\n return;\r\n }\r\n\r\n this.panElement!.style.height = (this.initialHeight + this.#initialY - evt.touches[0].clientY) + 'px';\r\n\r\n break;\r\n case 'touchend':\r\n if (!this.panElement)\r\n return;\r\n\r\n let currentSidebar = this.sidebarService.sidebars().find(s => s.id == id);\r\n\r\n this.panElement!.style.transition = 'height .2s';\r\n let scrollSpeed = Math.abs(this.#deltaScroll) / Math.floor(new Date().getTime() - this.#initialTimestamp);\r\n if (this.panElement!.offsetHeight < window.innerHeight * .3 || (this.#deltaScroll < 0 && scrollSpeed > 1.3)) {\r\n this.closeCallback(id);\r\n }\r\n if (this.panElement!.offsetHeight > window.innerHeight * .3 && this.panElement!.offsetHeight < window.innerHeight * .7) {\r\n this.panElement!.style.height = '50%';\r\n currentSidebar.options.contentScrollable.set(false);\r\n }\r\n if (this.panElement!.offsetHeight > window.innerHeight * .7) {\r\n this.panElement!.style.height = '95%';\r\n currentSidebar.options.contentScrollable.set(true);\r\n }\r\n this.#deltaScroll = 0;\r\n this.#initialTimestamp = 0;\r\n this.#initialY = 0;\r\n this.panElement = null;\r\n break;\r\n }\r\n }\r\n}\r\n","@if(sidebarService.sidebars().length > 0) {\r\n\r\n<div class=\"sidebar-overlay\">\r\n @for(sidebar of sidebarService.sidebars(); track sidebar.id) {\r\n @if(sidebar.visible) {\r\n <div [id]=\"'sidebar-' + sidebar.id\" class=\"sidebar-container container left-1/2 -translate-x-1/2 w-full\"\r\n [ngStyle]=\"sidebar.options.ngStyle\" animate.enter=\"fade-in\" animate.leave=\"fade-out\">\r\n <div class=\"flex flex-col h-full sidebar-pan-control\" [id]=\"'sidebar-body-' + sidebar.id\"\r\n style=\"touch-action: none;\" (touchmove)=\"onPan($event, sidebar.id)\" (touchstart)=\"onPan($event, sidebar.id)\"\r\n (touchend)=\"onPan($event, sidebar.id)\">\r\n <div class=\"sm:text-right text-center px-3 py-2 inline-block leading-none\" [id]=\"'sidebar-header-' + sidebar.id\">\r\n <div class=\"self-center bg-sky-400 rounded-full inline-block sm:hidden\"\r\n [id]=\"'sidebar-header-hook-' + sidebar.id\" style=\"height: .3rem; width:70px\"></div>\r\n <div class=\"hidden sm:inline-block\">\r\n <a (click)=\"closeCallback(sidebar.id)\" class=\"text-2xl p-2 opacity-40 font-bold\">\r\n <i class=\"fi fi-rr-cross\"></i>\r\n </a>\r\n </div>\r\n </div>\r\n <div #content\r\n [class]=\"{ 'overflow-y-auto': sidebar.options.contentScrollable(), 'p-8': !sidebar.options.noPadding, 'h-full': true }\">\r\n <ng-container *ngComponentOutlet=\"sidebar.component;inputs: sidebar.inputs;\" />\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n }\r\n</div>\r\n}","import { Component, ElementRef, Input, TemplateRef, ViewChild, ViewEncapsulation, computed, effect, inject, input, model, output, signal, untracked, viewChild } from '@angular/core';\r\nimport { StoryContext } from '../../misc/story-context';\r\nimport { CommonModule, JsonPipe, NgTemplateOutlet } from '@angular/common';\r\nimport { timer } from 'rxjs';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { SidebarService } from '../../services';\r\n\r\n\r\n@Component({\r\n selector: 'stories',\r\n standalone: true,\r\n imports: [CommonModule, NgTemplateOutlet, ButtonModule],\r\n templateUrl: './stories.component.html',\r\n styleUrl: './stories.component.css',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class StoriesComponent {\r\n stories = input<any[]>([]);\r\n currentStoryIndex = signal(-1);\r\n footerTemplate = input<TemplateRef<any> | null>();\r\n subFooterTemplate = input<TemplateRef<any> | null>();\r\n sideTemplate = input<TemplateRef<any> | null>();\r\n showSubFooter = input<boolean>(true);\r\n mute = signal(true);\r\n descriptionOpen = input<boolean>();\r\n fullScreen = model<boolean>(false);\r\n storyChanged = output<any>();\r\n currentStory = computed(() => this.stories()[this.currentStoryIndex()]);\r\n defaultDuration = input(7);\r\n currentProgress = signal(0);\r\n currentDuration = signal(0);\r\n currentTime = 0;\r\n timerInterval = 100;\r\n timerSubscription: any;\r\n paused = model(false);\r\n close = output<void>();\r\n\r\n sidebarService = inject(SidebarService);\r\n\r\n videoPlayer = viewChild<ElementRef>('videoPlayer');\r\n storyContainer = viewChild<ElementRef>('viewContainer');\r\n regularStyle: any;\r\n\r\n constructor() {\r\n\r\n effect(() => {\r\n if (this.currentStoryIndex() == -1 && this.stories().length > 0)\r\n untracked(() => this.next());\r\n });\r\n\r\n effect(() => {\r\n if (!this.videoPlayer())\r\n return;\r\n this.videoPlayer().nativeElement.addEventListener('loadeddata', () => {\r\n this.currentDuration.set(this.videoPlayer().nativeElement.duration);\r\n this.runTimer();\r\n }, { once: true });\r\n\r\n })\r\n\r\n effect(() => {\r\n if (!this.paused()) {\r\n untracked(() => this.runTimer());\r\n if (this.videoPlayer())\r\n this.videoPlayer().nativeElement.play();\r\n }\r\n else {\r\n if (this.videoPlayer())\r\n this.videoPlayer().nativeElement.pause();\r\n }\r\n });\r\n\r\n effect(() => {\r\n if (this.fullScreen()) {\r\n this.storyContainer().nativeElement.style.position = 'fixed';\r\n this.storyContainer().nativeElement.style.width = '100%';\r\n this.storyContainer().nativeElement.style.height = '100%';\r\n this.storyContainer().nativeElement.style.top = '0';\r\n this.storyContainer().nativeElement.style.left = '0';\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n\r\n next() {\r\n this.currentStoryIndex.update(c => c + 1 < this.stories().length ? c + 1 : 0);\r\n\r\n\r\n this.currentStory().completion = signal(0);\r\n this.storyChanged.emit(this.currentStory());\r\n this.paused.set(false);\r\n this.currentProgress.set(0);\r\n this.currentTime = 0;\r\n if (this.currentStory().type == 'video') {\r\n }\r\n else {\r\n this.currentDuration.set(15);\r\n this.runTimer()\r\n }\r\n }\r\n\r\n\r\n runTimer() {\r\n if (this.timerSubscription)\r\n this.timerSubscription.unsubscribe();\r\n if (this.paused() || this.stories().length == 1)\r\n return;\r\n\r\n this.timerSubscription = timer(this.timerInterval).subscribe(() => {\r\n this.currentTime += this.timerInterval;\r\n let duration = this.currentDuration() ?? this.defaultDuration();\r\n this.currentProgress.set(this.currentTime / (duration * 10));\r\n if (this.currentTime >= duration * 1000)\r\n this.next();\r\n else\r\n this.runTimer();\r\n });\r\n }\r\n\r\n closeCallback(id) {\r\n //this.sidebarService.closeSidebar(id);\r\n }\r\n\r\n emitClose() {\r\n document.getElementsByTagName(\"html\")[0].style['overflow'] = 'initial';\r\n document.getElementsByTagName(\"body\")[0].style['overflow'] = 'initial';\r\n\r\n this.fullScreen.set(false);\r\n if (this.regularStyle) {\r\n this.storyContainer().nativeElement.style.width = this.regularStyle.width;\r\n this.storyContainer().nativeElement.style.height = this.regularStyle.height;\r\n this.storyContainer().nativeElement.style.top = this.regularStyle.top;\r\n this.storyContainer().nativeElement.style.left = this.regularStyle.left;\r\n\r\n this.storyContainer().nativeElement.addEventListener('transitionend', () => {\r\n this.storyContainer().nativeElement.style = {};\r\n this.storyContainer().nativeElement.style.position = 'relative';\r\n\r\n }, { once: true });\r\n }\r\n\r\n this.close.emit();\r\n }\r\n\r\n setFullScreen() {\r\n document.getElementsByTagName(\"html\")[0].style['overflow'] = 'hidden';\r\n document.getElementsByTagName(\"body\")[0].style['overflow'] = 'hidden';\r\n\r\n this.storyContainer().nativeElement.style.width = this.storyContainer().nativeElement.offsetWidth + 'px';\r\n this.storyContainer().nativeElement.style.height = this.storyContainer().nativeElement.offsetHeight + 'px';\r\n this.storyContainer().nativeElement.style.top = this.storyContainer().nativeElement.getBoundingClientRect().top + 'px';\r\n this.storyContainer().nativeElement.style.left = this.storyContainer().nativeElement.getBoundingClientRect().left + 'px';\r\n this.storyContainer().nativeElement.style.transition = 'all .2s';\r\n\r\n this.regularStyle = {\r\n top: this.storyContainer().nativeElement.style.top,\r\n left: this.storyContainer().nativeElement.style.left,\r\n width: this.storyContainer().nativeElement.style.width,\r\n height: this.storyContainer().nativeElement.style.height\r\n };\r\n this.storyContainer().nativeElement.style.position = 'fixed';\r\n this.fullScreen.set(true);\r\n this.storyContainer().nativeElement.style.width = '100%';\r\n this.storyContainer().nativeElement.style.height = '100%';\r\n this.storyContainer().nativeElement.style.top = '0';\r\n this.storyContainer().nativeElement.style.left = '0';\r\n\r\n }\r\n\r\n}\r\n","<div class=\"w-full h-full story-container z-52\" #viewContainer>\r\n\r\n @if(stories().length > 1) {\r\n <div class=\"story-lines-container\">\r\n <div class=\"flex gap-1 story-lines p-3 justify-center\">\r\n @for (story of stories(); track story.id; let i = $index) {\r\n\r\n <div class=\"story-line transition-all\" [ngClass]=\"{ 'story-line-selected' : currentStoryIndex() == i }\">\r\n @if (currentStoryIndex() >= i) {\r\n <div class=\"story-line-inner bg-surface-100\"\r\n [style.width]=\"currentStoryIndex() > i ? '100%' : (currentStoryIndex() == i ? this.currentProgress() + '%' : '0')\">\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n\r\n <div class=\"story-backdrop z-1\" (click)=\"next()\">\r\n @if (currentStory()?.type=='image') {\r\n <img [src]=\"currentStory().src\" />\r\n } @else if (currentStory()?.type=='video') {\r\n <video class=\"w-full\">\r\n <source [src]=\"currentStory().src\" type=\"video/mp4\">\r\n </video>\r\n }\r\n </div>\r\n\r\n\r\n <div class=\"story-content sm:border-round\">\r\n\r\n\r\n @if (currentStory()?.type == 'image') {\r\n <img [src]=\"currentStory().src\" (click)=\"next()\" />\r\n }\r\n @if (currentStory()?.type=='video') {\r\n <video class=\"w-full h-full\" (canplay)=\"videoPlayer.play()\" (loadedmetadata)=\"videoPlayer.muted = mute()\"\r\n #videoPlayer autoplay [muted]=\"mute()\" [playsInline]=\"true\" loop (click)=\"next()\">\r\n <source [src]=\"currentStory().src\" type=\"video/mp4\">\r\n\r\n </video>\r\n }\r\n\r\n </div>\r\n <div class=\"top-7 right-5 z-3 absolute flex gap-2\">\r\n @if (currentStory()?.type=='video') {\r\n <div class=\"w-12 h-12 rounded-full text-center content-center bg-surface-500/30 text-white\">\r\n <a (click)=\"mute.set(!mute())\" style=\"color: inherit;\">\r\n @if(mute()) {\r\n <i class=\"fi text-2xl fi-rr-volume-mute\"></i>\r\n }\r\n @else {\r\n <i class=\"fi text-2xl fi-rr-volume\"></i>\r\n }\r\n </a>\r\n </div>\r\n }\r\n\r\n @if(stories().length > 1) {\r\n <div class=\"w-12 h-12 rounded-full text-center content-center bg-surface-500/30 text-white\">\r\n <a (click)=\"paused.set(!paused())\" style=\"color:inherit\">\r\n @if (paused()) {\r\n <i class=\"fi fi-rr-play text-2xl\"></i>\r\n }\r\n @else {\r\n <i class=\"fi fi-rr-pause text-2xl\"></i>\r\n }\r\n\r\n </a>\r\n </div>\r\n @if(fullScreen()) {\r\n <div class=\"w-12 h-12 rounded-full text-center content-center bg-surface-500/30 text-white\">\r\n <a (click)=\"emitClose()\" style=\"color: inherit;\">\r\n <i class=\"fi text-2xl fi-rr-compress\"></i>\r\n </a>\r\n </div>\r\n }\r\n @if(!fullScreen()) {\r\n <div class=\"w-12 h-12 rounded-full text-center content-center bg-surface-500/30 text-white\">\r\n <a (click)=\"setFullScreen()\" style=\"color: inherit;\">\r\n <i class=\"fi text-2xl fi-rr-expand\"></i>\r\n </a>\r\n </div>\r\n }\r\n }\r\n </div>\r\n\r\n <div [class]=\"'story-overlay absolute bottom-0 p-2 left-0 z-2 gap-2 ' + (descriptionOpen() ? 'scrollable' : '')\">\r\n @if(footerTemplate()){\r\n <div class=\"story-footer\">\r\n <ng-container [ngTemplateOutlet]=\"footerTemplate()\"\r\n [ngTemplateOutletContext]=\"{ $implicit: currentStory() }\"></ng-container>\r\n </div>\r\n }\r\n\r\n\r\n\r\n </div>\r\n\r\n\r\n\r\n</div>","import { Component, OnInit, Input, forwardRef, inject, input, effect, model } from '@angular/core';\r\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { FlowAppConfig } from '../../../flowAppConfig';\r\nimport * as uuid from 'uuid';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TranslationComponent } from '../translation/translation.component';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { RippleModule } from 'primeng/ripple';\r\nimport { CardModule } from 'primeng/card';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\n\r\n// import { UUID } from 'angular2-uuid';\r\n// import { environment } from 'environments/environment';\r\n\r\n\r\n@Component({\r\n selector: 'questions',\r\n templateUrl: './questions.component.html',\r\n styleUrls: ['./questions.component.css'],\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n TranslationComponent,\r\n FormsModule,\r\n InputTextModule,\r\n CardModule,\r\n RippleModule,\r\n ButtonModule,\r\n CheckboxModule,\r\n // DropdownModule,\r\n // TagModule,\r\n // CompareDirective\r\n // RouterModule,\r\n\r\n ],\r\n})\r\n\r\nexport class QuestionsComponent implements OnInit {\r\n\r\n\r\n\r\n imageRoot = input<any>(null);\r\n\r\n\r\n value = input<any>(null);\r\n\r\n // get value(): any {\r\n // return this.registerQuestions;\r\n // };\r\n\r\n mode = input<any>('answer')\r\n\r\n // private _mode: string = 'answer';\r\n\r\n // @Input()\r\n // public get mode() {\r\n // return this._mode;\r\n // }\r\n\r\n // public set mode(value) {\r\n // this._mode = value;\r\n // }\r\n\r\n\r\n public get imageItem() {\r\n return !this.registerQuestions ? null : this.registerQuestions().find(t => t.type == 'IMAGE');\r\n }\r\n public get firstNameItem() {\r\n return !this.registerQuestions ? null : this.registerQuestions().find(t => t.type == 'FIRSTNAME');\r\n }\r\n public get lastNameItem() {\r\n return !this.registerQuestions ? null : this.registerQuestions().find(t => t.type == 'LASTNAME');\r\n }\r\n public get extraFields() {\r\n return !this.registerQuestions ? null : this.registerQuestions().filter(t => t.type != 'IMAGE' && t.type != 'FIRSTNAME' && t.type != 'LASTNAME') || [];\r\n }\r\n\r\n public get imageUrl() {\r\n if (!this.imageItem)\r\n return null;\r\n else\r\n return this.sanitizer.bypassSecurityTrustStyle(`url(${this.imageRoot()}/misc/${!this.environment.production ? '_debug/' : ''}${this.imageItem.answer})`);\r\n }\r\n\r\n public has(item, type) {\r\n return !this.registerQuestions().find(t => t.type == type && t.id != item.id);\r\n }\r\n\r\n public get orderedRegisterQuestions() {\r\n return this.registerQuestions()?.sort((a, b) => a.priority > b.priority ? 1 : a.priority == b.priority ? 0 : -1);\r\n }\r\n\r\n\r\n public registerQuestions = model<any[]>([]);\r\n\r\n sanitizer = inject(DomSanitizer)\r\n private environment = inject(FlowAppConfig);\r\n\r\n\r\n constructor(\r\n ) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n addNew() {\r\n this.registerQuestions.update(rq => ([...rq, { id: uuid.v4(), type: 'TEXTBOX', priority: (Math.max(...rq.map(q => q.priority)) > 0 ? Math.max(...rq.map(q => q.priority)) : 0) + 1 }]));\r\n console.log(this.registerQuestions())\r\n\r\n }\r\n\r\n deleteQuestion(item) {\r\n this.registerQuestions.update(q => q.splice(q.indexOf(item), 1));\r\n }\r\n}\r\n","<div>\r\n @for(item of orderedRegisterQuestions; track item){\r\n <div>\r\n <div class=\"form-group\">\r\n <label>\r\n <translate name=\"company-questions.question\"></translate>\r\n </label>\r\n <input type=\"text\" [(ngModel)]=\"item.name\" class=\"form-control\" name=\"{{item.id}}\" required />\r\n </div>\r\n <div class=\"form-group\">\r\n <label>\r\n <translate name=\"company-questions.type\"></translate>\r\n </label>\r\n\r\n <select [(ngModel)]=\"item.inputType\" class=\"form-control\">\r\n <option>TEXTBOX</option>\r\n <option>TEXTAREA</option>\r\n <option>CHOICE</option>\r\n @if(has(item, 'DATEOFBIRTH')){\r\n <option>DATE</option>\r\n }\r\n\r\n @if(has(item, 'IMAGE')){\r\n <option>IMAGE</option>\r\n }\r\n </select>\r\n </div>\r\n <div class=\"form-group\">\r\n <label>\r\n <translate name=\"company-questions.value-type\"></translate>\r\n </label>\r\n\r\n <select [(ngModel)]=\"item.type\" class=\"form-control\">\r\n @if(has(item, 'FIRSTNAME')){\r\n <option>FIRSTNAME</option>\r\n }\r\n @if(has(item, 'LASTNAME')){\r\n <option>LASTNAME</option>\r\n }\r\n @if(has(item, 'EMAIL')){\r\n <option>EMAIL</option>\r\n }\r\n @if(has(item, 'PHONE')){\r\n <option>PHONE</option>\r\n }\r\n @if(has(item, 'CNP')){\r\n <option>CNP</option>\r\n }\r\n @if(has(item, 'SEX')){\r\n <option>SEX</option>\r\n }\r\n @if(has(item, 'COUNTRY')){\r\n <option>COUNTRY</option>\r\n }\r\n @if(has(item, 'CITY')){\r\n <option>CITY</option>\r\n }\r\n @if(has(item, 'DATEOFBIRTH')){\r\n <option>DATEOFBIRTH</option>\r\n }\r\n @if(has(item, 'GUARDIANNAME')){\r\n <option>GUARDIANNAME</option>\r\n }\r\n @if(has(item, 'GUARDIANPHONE')){\r\n <option>GUARDIANPHONE</option>\r\n }\r\n @if(has(item, 'IMAGE')){\r\n <option>IMAGE</option>\r\n }\r\n <option>OTHER</option>\r\n </select>\r\n </div>\r\n @if(item.inputType=='CHOICE'){\r\n <div class=\"form-group\">\r\n <label>\r\n <translate name=\"company-questions.choices\"></translate>\r\n </label>\r\n <textarea [(ngModel)]=\"item.choices\" class=\"form-control\" #choices=\"ngModel\" name=\"choices\" rows=\"5\"></textarea>\r\n </div>\r\n }\r\n\r\n <div class=\"form-group\" style=\"display: flex; justify-content: space-between; align-items: center;\">\r\n <label>\r\n <translate name=\"company-questions.priority\"></translate>\r\n </label>\r\n <input type=\"number\" [(ngModel)]=\"item.priority\" class=\"form-control\" style=\"width:100px; margin-left: 5px;\" />\r\n\r\n <p-checkbox class=\"pr-3\" [(ngModel)]=\"item.required\" [binary]=\"true\" name=\"is_required\" [inputId]=\"item.required\">\r\n <translate name=\"questions.is-required\">\r\n </translate>\r\n </p-checkbox>\r\n\r\n <!-- <icheck name=\"is_required\" style=\"margin-left: 10px;\" [(ngModel)]=\"item.required\"><translate name=\"questions.is-required\">\r\n </translate>\r\n </icheck> -->\r\n\r\n <a class=\"btn btn-warning btn-sm\" style=\"margin-left: auto;\" (click)=\"deleteQuestion(item)\"><i\r\n class=\"pi pi-trash\"></i></a>\r\n\r\n </div>\r\n <hr />\r\n </div>\r\n}\r\n <button class=\"btn btn-primary\" (click)=\"addNew()\"><i class=\"pi pi-plus\"></i></button>\r\n</div>\r\n<!-- <div *ngIf=\"mode=='answer'\">\r\n <div class=\"form-group text-center\">\r\n <div [style.backgroundImage]=\"imageUrl\" *ngIf=\"imageItem\" class=\"image-upload\"></div>\r\n <h3 *ngIf=\"firstNameItem || lastNameItem\">{{firstNameItem?.answer}} {{lastNameItem?.answer}}</h3>\r\n </div>\r\n <div class=\"form-group extra-fields\" *ngFor=\"let item of extraFields\">\r\n <label>{{item.name}}</label>\r\n \r\n <div>{{item.answer}}</div>\r\n </div>\r\n</div> -->","import { Component, HostListener, OnInit } from '@angular/core';\r\nimport { GlobalService, UserAccountService } from '../../services';\r\nimport { Router } from '@angular/router';\r\nimport { timer } from 'rxjs';\r\nimport { LoginFormComponent } from '../login-form/login-form.component';\r\ndeclare var window: any;\r\n@Component({\r\n selector: 'app-login',\r\n standalone: true,\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.css'],\r\n imports: [LoginFormComponent]\r\n})\r\nexport class LoginComponent implements OnInit {\r\n\r\n public message: string;\r\n\r\n\r\n constructor(public userService: UserAccountService, public globalService: GlobalService, public router: Router) { }\r\n\r\n ngOnInit() {\r\n var result: any = {};\r\n window.location.hash.substring(1).split('&').forEach(e => {\r\n var k = e.split('=');\r\n if (k[1] != 'null')\r\n result[k[0]] = k[1];\r\n });\r\n let provider = decodeURIComponent(result.state).split('|')[0]\r\n let returnUrl = decodeURIComponent(result.state).split('|')[1]\r\n this.userService.redirectTo = returnUrl;\r\n\r\n if (window.opener && window.opener && window.opener.login) {\r\n window.opener.login.externalLogin(result, provider);\r\n window.close();\r\n return;\r\n }\r\n if (window.parent && window.parent.login) {\r\n window.parent.login.externalLogin(result, provider);\r\n return;\r\n }\r\n\r\n\r\n\r\n timer(100).subscribe(r => {\r\n window.login.externalLogin(result, provider);\r\n\r\n\r\n });\r\n\r\n // this.userService.redirectTo = null;\r\n // let redirectUrl = this.userService.processLogin().subscribe(res => {\r\n // console.log(window)\r\n // if (window.opener && window.opener && window.opener.login)\r\n // {\r\n // window.opener.login.userLoggedIn(this.userService.currentUser);\r\n // window.close();\r\n // return;\r\n // }\r\n // if (window.parent && window.parent.login) {\r\n // window.parent.login.userLoggedIn(this.userService.currentUser);\r\n // return;\r\n // }\r\n // window.login.userLoggedIn(this.userService.currentUser);\r\n // });\r\n }\r\n\r\n}\r\n","<!-- <app-loader></app-loader> -->\r\n<div style=\"max-width:400px; width:90%; margin: 0px auto\">\r\n <payvent-login-form></payvent-login-form>\r\n</div>","// export * from './loading-button/loading-button.component';\r\nexport * from './translation/translation.component';\r\n// export * from './login/login.component';\r\nexport * from './login-form/login-form.component';\r\nexport * from './cookie-bar/cookie-bar.component';\r\nexport * from './notification-dropdown/notification-dropdown.component';\r\nexport * from './notification-list/notification-list.component';\r\nexport * from './notification-toaster/notification-toaster.component';\r\nexport * from './qr-scanner/qr-scanner.component';\r\n// export * from './logout/logout.component';\r\n// export * from './loader/loader.component';\r\n// export * from './html-popup/html-popup.component';\r\n// export * from './notification-toaster/notification-toaster.component';\r\n// export * from './notification-dropdown/notification-dropdown.component';\r\n// export * from './multistep-wizard/multistep-wizard.component';\r\n// export * from './html-page/html-page.component';\r\nexport * from './sidebar/sidebar.component';\r\nexport * from './stories/stories.component';\r\nexport * from './questions/questions.component';\r\nexport * from './login/login.component';\r\nexport * from './login-form/login-form.component';\r\nexport * from './country-province-city/country-province-city.component';\r\nexport * from './international-phone/international-phone.component';\r\n// export * from './location-select/location-select.component';\r\n// export * from './flow-uploader/flow-uploader.component';\r\n// export * from './notification-list/notification-list.component';\r\n// export * from './questions/questions.component';\r\n","import { Directive, ElementRef, HostListener, Renderer2, OnDestroy, inject, OutputEmitterRef, output, ModelSignal, model, WritableSignal, signal, effect, afterNextRender, InputSignal, input, afterEveryRender } from '@angular/core';\r\n\r\nexport interface IPositionEvent {\r\n x: number;\r\n y: number;\r\n}\r\n\r\n@Directive({\r\n standalone: true,\r\n selector: '[dragscroll]'\r\n})\r\nexport class DragScrollDirective implements OnDestroy {\r\n private _el: ElementRef<HTMLElement> = inject(ElementRef<HTMLElement>);\r\n private _renderer: Renderer2 = inject(Renderer2);\r\n private readonly _isDragging: WritableSignal<boolean> = signal(false);\r\n private readonly _startY: WritableSignal<number> = signal(0);\r\n private readonly _scrollTop: WritableSignal<number> = signal(0);\r\n private readonly _startX: WritableSignal<number> = signal(0);\r\n private readonly _scrollLeft: WritableSignal<number> = signal(0);\r\n\r\n // Binds methods to maintain the correct context\r\n private _boundMouseMove = this.onMouseMove.bind(this);\r\n private _boundMouseUp = this.onMouseUp.bind(this);\r\n\r\n public readonly onScroll: OutputEmitterRef<IPositionEvent> = output();\r\n public readonly disabled: InputSignal<boolean> = input(false);\r\n public readonly overflowHidden: InputSignal<boolean> = input(false);\r\n public coord: ModelSignal<IPositionEvent> = model({ x: 0, y: 0 });\r\n\r\n constructor() {\r\n // Sets basic styles for the element\r\n this._renderer.setStyle(this._el.nativeElement, 'user-select', 'none');\r\n this._renderer.setStyle(this._el.nativeElement, 'overflow', 'auto');\r\n\r\n // Updates the position when the coord signal changes\r\n effect(() => {\r\n this.setPosition(this.coord().x, this.coord().y);\r\n });\r\n\r\n // Updates the cursor style\r\n afterEveryRender(() => {\r\n this._renderer.setStyle(this._el.nativeElement, 'cursor', this.disabled() ? 'default' : 'move');\r\n });\r\n\r\n // apply inital position\r\n afterNextRender(() => {\r\n this.setPosition(this.coord().x, this.coord().y);\r\n\r\n if (this.overflowHidden()) {\r\n this._renderer.setStyle(this._el.nativeElement, 'scrollbar-width', 'none');\r\n this._renderer.setStyle(this._el.nativeElement, '-ms-overflow-style', 'none');\r\n this._renderer.setStyle(this._el.nativeElement, '::-webkit-scrollbar', 'display: none');\r\n }\r\n });\r\n }\r\n\r\n private setPosition(x: number, y: number): void {\r\n this._renderer.setProperty(this._el.nativeElement, 'scrollLeft', x);\r\n this._renderer.setProperty(this._el.nativeElement, 'scrollTop', y);\r\n }\r\n\r\n @HostListener('mousedown', ['$event'])\r\n public onMouseDown(e: MouseEvent): void {\r\n if (this.disabled()) return;\r\n\r\n // Check if click target is a button or inside a button\r\n const targetElement = e.target as HTMLElement;\r\n if (targetElement.tagName.toLowerCase() === 'button' || targetElement.closest('button')) {\r\n return;\r\n }\r\n\r\n this._isDragging.set(true);\r\n\r\n // Calculates initial positions\r\n const rect = this._el.nativeElement.getBoundingClientRect();\r\n this._startY.set(e.clientY - rect.top);\r\n this._startX.set(e.clientX - rect.left);\r\n this._scrollTop.set(this._el.nativeElement.scrollTop);\r\n this._scrollLeft.set(this._el.nativeElement.scrollLeft);\r\n\r\n // Changes the cursor to grab\r\n this._renderer.setStyle(this._el.nativeElement, 'cursor', 'grab');\r\n\r\n // Adds global listeners\r\n document.addEventListener('mousemove', this._boundMouseMove);\r\n document.addEventListener('mouseup', this._boundMouseUp);\r\n\r\n // Prevents default behaviors\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n\r\n @HostListener('scroll', ['$event'])\r\n public onScrollMove(e: Event): void {\r\n this.coord.set({ x: this._el.nativeElement.scrollLeft, y: this._el.nativeElement.scrollTop });\r\n this.onScroll.emit(this.coord());\r\n }\r\n\r\n @HostListener('selectstart', ['$event'])\r\n public onSelectStart(e: Event): void {\r\n if (this.disabled()) return;\r\n\r\n // Check if target is a button or inside a button\r\n const targetElement = e.target as HTMLElement;\r\n if (targetElement.tagName.toLowerCase() === 'button' || targetElement.closest('button')) {\r\n return;\r\n }\r\n\r\n // Prevents text selection\r\n e.preventDefault();\r\n }\r\n\r\n private onMouseMove(e: MouseEvent): void {\r\n if (!this._isDragging) return;\r\n\r\n e.preventDefault();\r\n\r\n const rect = this._el.nativeElement.getBoundingClientRect();\r\n const y = e.clientY - rect.top;\r\n const x = e.clientX - rect.left;\r\n\r\n const deltaY = y - this._startY();\r\n const deltaX = x - this._startX();\r\n\r\n // Applies scrolling based on mouse movement\r\n this._el.nativeElement.scrollTop = this._scrollTop() - deltaY;\r\n this._el.nativeElement.scrollLeft = this._scrollLeft() - deltaX;\r\n }\r\n\r\n private onMouseUp(): void {\r\n if (this.disabled()) return;\r\n\r\n this._isDragging.set(false);\r\n\r\n // Reset the cursor\r\n this._renderer.setStyle(this._el.nativeElement, 'cursor', 'move');\r\n\r\n // Remove global listeners\r\n this.removeDragListeners();\r\n }\r\n\r\n private removeDragListeners(): void {\r\n document.removeEventListener('mousemove', this._boundMouseMove);\r\n document.removeEventListener('mouseup', this._boundMouseUp);\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.removeDragListeners();\r\n }\r\n}","import { computed, Directive, HostBinding, HostListener, inject, input, signal } from \"@angular/core\";\r\nimport { ViewTransitionService } from \"../services\";\r\n\r\n@Directive({\r\n selector: '[viewTransition]',\r\n standalone: true,\r\n host: { '[style.view-transition-name]': 'viewTransitionName()' },\r\n})\r\nexport class ViewTransitionDirective {\r\n clicked = signal<boolean>(false);\r\n @HostListener('click')\r\n onClicked() {\r\n this.clicked.set(true)\r\n }\r\n static = input<boolean>(false);\r\n\r\n private readonly viewTranistionService = inject(ViewTransitionService);\r\n\r\n public readonly name = input<string>('', { alias: 'viewTransition' });\r\n public readonly id = input<string>();\r\n\r\n protected readonly viewTransitionName = computed(() => {\r\n return this.clicked() || this.static() ? this.name() : 'none';\r\n });\r\n}","/*\r\n * Public API Surface of ngx-payvent-shared\r\n */\r\n\r\nexport * from './flowAppConfig';\r\nexport * from './lib/services';\r\nexport * from './lib/components';\r\nexport * from './lib/directives';\r\nexport * from './lib/pipes';\r\nexport * from './lib/misc';\r\n// export * from './lib/misc/sidebar-context';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["shareReplay","i3","i2","i4","i1","i1.UserAccountService","i1.GlobalService"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-payvent-shared.mjs","sources":["../../../projects/ngx-payvent-shared/src/flowAppConfig.ts","../../../projects/ngx-payvent-shared/src/lib/misc/sidebar-context.ts","../../../projects/ngx-payvent-shared/src/lib/misc/misc.ts","../../../projects/ngx-payvent-shared/src/lib/misc/sorting-paging-criteria.ts","../../../projects/ngx-payvent-shared/src/lib/misc/story-context.ts","../../../projects/ngx-payvent-shared/src/lib/services/cookie/cookie.service.ts","../../../projects/ngx-payvent-shared/src/lib/services/global/global.service.ts","../../../projects/ngx-payvent-shared/src/lib/services/httpClient/httpClient.ts","../../../projects/ngx-payvent-shared/src/lib/services/sidebar/sidebar.service.ts","../../../projects/ngx-payvent-shared/src/lib/pipes/translation/translation.pipe.ts","../../../projects/ngx-payvent-shared/src/lib/services/signalr-notification/signalr-notification.service.ts","../../../projects/ngx-payvent-shared/src/lib/services/application-shared/application-shared.service.ts","../../../projects/ngx-payvent-shared/src/lib/services/translation-shared/translation-shared.service.ts","../../../projects/ngx-payvent-shared/src/lib/services/user-account/user-account.service.ts","../../../projects/ngx-payvent-shared/src/lib/services/appsettings-loader/appsettings-loader.service.ts","../../../projects/ngx-payvent-shared/src/lib/pipes/sum/sum.pipe.ts","../../../projects/ngx-payvent-shared/src/lib/services/modal/modal.service.ts","../../../projects/ngx-payvent-shared/src/lib/services/view-transition/view-transition.service.ts","../../../projects/ngx-payvent-shared/src/lib/components/translation/translation.component.ts","../../../projects/ngx-payvent-shared/src/lib/components/translation/translation.component.html","../../../projects/ngx-payvent-shared/src/lib/components/international-phone/international-phone.component.ts","../../../projects/ngx-payvent-shared/src/lib/components/international-phone/international-phone.component.html","../../../projects/ngx-payvent-shared/src/lib/components/country-province-city/country-province-city.component.ts","../../../projects/ngx-payvent-shared/src/lib/components/country-province-city/country-province-city.component.html","../../../projects/ngx-payvent-shared/src/lib/components/login-form/login-form.component.ts","../../../projects/ngx-payvent-shared/src/lib/components/login-form/login-form.component.html","../../../projects/ngx-payvent-shared/src/lib/components/cookie-bar/cookie-bar.component.ts","../../../projects/ngx-payvent-shared/src/lib/components/cookie-bar/cookie-bar.component.html","../../../projects/ngx-payvent-shared/src/lib/components/notification-list/notification-list.component.ts","../../../projects/ngx-payvent-shared/src/lib/components/notification-list/notification-list.component.html","../../../projects/ngx-payvent-shared/src/lib/components/notification-dropdown/notification-dropdown.component.ts","../../../projects/ngx-payvent-shared/src/lib/components/notification-dropdown/notification-dropdown.component.html","../../../projects/ngx-payvent-shared/src/lib/components/notification-toaster/notification-toaster.component.ts","../../../projects/ngx-payvent-shared/src/lib/components/notification-toaster/notification-toaster.component.html","../../../projects/ngx-payvent-shared/src/lib/components/qr-scanner/qr-scanner.component.ts","../../../projects/ngx-payvent-shared/src/lib/components/qr-scanner/qr-scanner.component.html","../../../projects/ngx-payvent-shared/src/lib/components/sidebar/sidebar.component.ts","../../../projects/ngx-payvent-shared/src/lib/components/sidebar/sidebar.component.html","../../../projects/ngx-payvent-shared/src/lib/components/stories/stories.component.ts","../../../projects/ngx-payvent-shared/src/lib/components/stories/stories.component.html","../../../projects/ngx-payvent-shared/src/lib/components/questions/questions.component.ts","../../../projects/ngx-payvent-shared/src/lib/components/questions/questions.component.html","../../../projects/ngx-payvent-shared/src/lib/components/login/login.component.ts","../../../projects/ngx-payvent-shared/src/lib/components/login/login.component.html","../../../projects/ngx-payvent-shared/src/lib/components/index.ts","../../../projects/ngx-payvent-shared/src/lib/directives/dragscroll.directive.ts","../../../projects/ngx-payvent-shared/src/lib/directives/view-transition.directive.ts","../../../projects/ngx-payvent-shared/src/public-api.ts","../../../projects/ngx-payvent-shared/src/ngx-payvent-shared.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\nexport class FlowAppConfig {\r\n production: boolean;\r\n application_id: string;\r\n groupId: string;\r\n client_id: string;\r\n endpoints: any;\r\n signalr_hubname: string;\r\n identityserver_scopes: string;\r\n defaultLanguage: string;\r\n forceOrigin: string;\r\n facebook: any;\r\n google: any;\r\n apple: any;\r\n fbPixel: string;\r\n}\r\n","import { Component, input, Input, signal } from \"@angular/core\";\r\n\r\n@Component({\r\n template: ``\r\n})\r\nexport class SidebarContext {\r\n @Input()\r\n close: any;\r\n @Input()\r\n setSize: any;\r\n private _context = signal<any>({});\r\n @Input()\r\n public set context(value) {\r\n this._context.set(value);\r\n }\r\n\r\n public get context() {\r\n return this._context;\r\n }\r\n\r\n}\r\n","export class Misc {\r\n static hexToRgbA(hex, opacity) {\r\n var c;\r\n if (/^#([A-Fa-f0-9]{3}){1,2}$/.test(hex)) {\r\n c = hex.substring(1).split('');\r\n if (c.length == 3) {\r\n c = [c[0], c[0], c[1], c[1], c[2], c[2]];\r\n }\r\n c = '0x' + c.join('');\r\n return 'rgba(' + [(c >> 16) & 255, (c >> 8) & 255, c & 255].join(',') + ',' + opacity + ')';\r\n }\r\n throw new Error('Bad Hex');\r\n }\r\n\r\n static formatString(str: string, ...val: string[]) {\r\n for (let index = 0; index < val.length; index++) {\r\n str = str.replace(`{${index}}`, val[index]);\r\n }\r\n return str;\r\n }\r\n\r\n public hexToRgbA(hex, a) {\r\n var c;\r\n if (/^#([A-Fa-f0-9]{3}){1,2}$/.test(hex)) {\r\n c = hex.substring(1).split('');\r\n if (c.length == 3) {\r\n c = [c[0], c[0], c[1], c[1], c[2], c[2]];\r\n }\r\n c = '0x' + c.join('');\r\n return 'rgba(' + [(c >> 16) & 255, (c >> 8) & 255, c & 255].join(',') + ',' + a + ')';\r\n }\r\n throw new Error('Bad Hex');\r\n }\r\n\r\n static replacer(key, value) {\r\n // Filtering out properties\r\n if (typeof value === 'string') {\r\n return encodeURIComponent(value);\r\n }\r\n return value;\r\n }\r\n\r\n static reviver(key, value) {\r\n // Filtering out properties\r\n if (typeof value === 'string') {\r\n return decodeURIComponent(value);\r\n }\r\n return value;\r\n }\r\n\r\n static stripHtml(originalString) {\r\n let strippedString = originalString ? originalString.replace(/(<([^>]+)>)/gi, '') : '';\r\n return strippedString;\r\n }\r\n}\r\n","export class SortingPagingCriteria {\r\n public numberOfRecords: number = 30;\r\n public pageNumber: number = 1;\r\n public totalResults: number;\r\n\r\n public columnSortOrdersDefinition: ColumnSortOrdersDefinition;\r\n public applySort(columnName) { \r\n if (this.columnSortOrdersDefinition.columnName == columnName) {\r\n this.columnSortOrdersDefinition.columnSortOrder = this.columnSortOrdersDefinition.columnSortOrder === 'Ascending' ? 'Descending' : 'Ascending';\r\n }\r\n else {\r\n this.columnSortOrdersDefinition.columnName = columnName;\r\n this.columnSortOrdersDefinition.columnSortOrder = 'Ascending';\r\n }\r\n }\r\n}\r\nclass ColumnSortOrdersDefinition {\r\n public columnName: string;\r\n public columnSortOrder: string\r\n}","import { signal } from \"@angular/core\";\r\n\r\nexport class StoryContext {\r\n id: string;\r\n type: string;\r\n src: string;\r\n completion = signal<any>(0);\r\n}","import { Injectable, inject } from '@angular/core';\r\nimport { GlobalService } from '../global/global.service';\r\nimport { Misc } from '../../misc';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FlowCookieService {\r\n instanceId: any;\r\n\r\n private _gdprConsent: string;\r\n\r\n public get gdprConsent() {\r\n if (!this._gdprConsent) this._gdprConsent = this.get('GdprConsent');\r\n return this._gdprConsent;\r\n }\r\n\r\n public set gdprConsent(value) {\r\n this._gdprConsent = value;\r\n this.put('GdprConsent', value, null);\r\n }\r\n\r\n constructor() {\r\n }\r\n\r\n get(name) {\r\n if (!localStorage.getItem(name))\r\n return null;\r\n\r\n let obj: any = null;\r\n try {\r\n obj = JSON.parse(localStorage.getItem(name)!, Misc.reviver);\r\n } catch { this.put(name, localStorage.getItem(name)); return localStorage.getItem(name) }\r\n\r\n if (obj.expires && Date.parse(obj.expires) < Date.parse(new Date().toISOString())) {\r\n localStorage.removeItem(name);\r\n return null;\r\n }\r\n else\r\n return obj.value;\r\n }\r\n\r\n\r\n\r\n remove(name: string) {\r\n localStorage.removeItem(name);\r\n }\r\n\r\n put(name: any, value: any, exp: any = null) {\r\n localStorage[name] = JSON.stringify({ value: value, expires: exp ? exp.toISOString() : null }, Misc.replacer);\r\n }\r\n}\r\n","import { EventEmitter, Injectable, inject, signal } from '@angular/core';\r\nimport { EdgeToEdge } from '@capawesome/capacitor-android-edge-to-edge-support';\r\nimport { Capacitor } from '@capacitor/core';\r\n\r\n\r\ndeclare var CKEDITOR: any;\r\nimport { FlowAppConfig } from '../../../flowAppConfig';\r\ndeclare var $: any;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class GlobalService {\r\n\r\n public onSuccess: EventEmitter<any> = new EventEmitter(false);\r\n public onError: EventEmitter<any> = new EventEmitter(false);\r\n // environment = inject(FlowAppConfig)\r\n public showLoader: boolean = true;\r\n public currentLanguage = signal('RO'); //this.environment.defaultLanguage;\r\n public currentEditLanguage = signal('RO'); //this.environment.defaultLanguage;\r\n\r\n public datePickerOptions: any = { autoclose: true, forceParse: true, format: 'd.mm.yyyy', orientation: 'bottom left', weekStart: 1 };\r\n public timePickerOptions: any = { showMeridian: false, minuteStep: 15, showSeconds: false, showInputs: false, explicitMode: true };\r\n\r\n public ckEditorOptions: any;\r\n\r\n public banks: any = {\r\n 'NBOR': 'BANCA NATIONALA A ROMANIEI',\r\n 'ABNA': 'ABN AMRO BANK ROMANIA',\r\n 'BUCU': 'ALPHA BANK ROMANIA SA',\r\n 'ARBL': 'ANGLO ROMANIAN BANK LTD',\r\n 'MIND': 'ATE BANK ROMANIA SA',\r\n 'BPOS': 'BANC POST SA',\r\n 'CARP': 'BANCA COMERCIALA CARPATICA SA',\r\n 'RNCB': 'BANCA COMERCIALA ROMANA SA',\r\n 'DARO': 'BANCA CR FIRENZE ROMANIA SA',\r\n 'BROM': 'BANCA DI ROMA SPA ITALIA - SUCURSALA BUCURESTI',\r\n 'BITR': 'BANCA ITALO ROMENA SPA',\r\n 'BRDE': 'BANCA ROMANA PENTRU DEZVOLTARE',\r\n 'BRMA': 'BANCA ROMANEASCA SA',\r\n 'BTRL': 'BANCA TRANSILVANIA SA',\r\n 'DAFB': 'BANK LEUMI ROMANIA SA',\r\n 'MIRB': 'BLOM BANK EGYPT SAE EGYPT - SUCURSALA ROMANIA',\r\n 'CECE': 'CASA DE ECONOMII SI CONSEMNATIUNI CEC SA',\r\n 'CITI': 'CITIBANK ROMANIA SA',\r\n 'CRCO': 'CREDIT COOP CASA CENTRALA',\r\n 'FNNB': 'CREDIT EUROPE BANK (ROMANIA) SA',\r\n 'EGNA': 'EGNATIA BANK (ROMANIA) SA',\r\n 'BSEA': 'EMPORIKI BANK-ROMANIA SA',\r\n 'EXIM': 'EXIMBANK ROMANIA',\r\n 'UGBI': 'GARANTIBANK INTERNATIONAL NV - SUCURSALA ROMANIA',\r\n 'HVBL': 'HVB BANCA PENTRU LOCUINTE',\r\n 'INGB': 'ING BANK NV',\r\n 'BREL': 'LIBRA BANK SA',\r\n 'CRDZ': 'MKB ROMEXTERRA BANK SA',\r\n 'OTPV': 'OTP BANK ROMANIA SA',\r\n 'PIRB': 'PIRAEUS BANK ROMANIA SA',\r\n 'PORL': 'PORSCHE BANK ROMANIA SA',\r\n 'MIRO': 'PROCREDIT BANK',\r\n 'RZBL': 'RAIFFEISEN BANCA PT LOCUINTE SA',\r\n 'RZBR': 'RAIFFEISEN BANK SA',\r\n 'ROIN': 'ROMANIAN INTERNATIONAL BANK SA',\r\n 'WBAN': 'SANPAOLO IMI BANK ROMANIA SA',\r\n 'TRFD': 'TRANSFOND SA',\r\n 'TREZ': 'TREZORERIA STATULUI',\r\n 'BACX': 'UNICREDIT TIRIAC BANK SA',\r\n 'VBBU': 'VOLKSBANK ROMANIA SA',\r\n };\r\n loading: boolean = true;\r\n sidebarOpen: boolean = false;\r\n loaded: any;\r\n insets = signal<any>(null);\r\n\r\n constructor() {\r\n if (typeof CKEDITOR !== 'undefined')\r\n this.ckEditorOptions = {\r\n toolbarGroups: [\r\n { name: 'clipboard', groups: ['clipboard', 'undo'] },\r\n { name: 'links' },\r\n { name: 'insert', groups: ['table', 'horizontalline', 'specialcharacters'] },\r\n { name: 'forms' },\r\n { name: 'tools' },\r\n { name: 'document', groups: ['document', 'doctools'] },\r\n { name: 'others' },\r\n '/',\r\n { name: 'basicstyles', groups: ['basicstyles', 'cleanup'] },\r\n { name: 'paragraph', groups: ['list', 'indent', 'blocks', 'align', 'bidi'] },\r\n { name: 'colors' },\r\n ],\r\n\r\n removeButtons: 'Underline,Subscript,Superscript',\r\n enterMode: CKEDITOR.ENTER_BR,\r\n // Set the most common block elements.\r\n\r\n allowedContent: true,\r\n // ALLOW <i></i>\r\n protectedSource: [...CKEDITOR.config.protectedSource, /<i[^>]*><\\/i>/g, /<a[^>]*><\\/a>/g],\r\n // Simplify the dialog windows.\r\n height: 350,\r\n ProcessHTMLEntities: false\r\n };\r\n if (Capacitor.isNativePlatform())\r\n EdgeToEdge.getInsets().then(s => { console.log(s); this.insets.set(s) }).then(s => EdgeToEdge.disable());\r\n }\r\n\r\n\r\n\r\n\r\n checkPID2(pid) {\r\n var pidLength = 13;\r\n\r\n // se testeaza lungimea pid-ului\r\n if (typeof (pid) != \"string\" || pid.length != pidLength) {\r\n return false;\r\n }\r\n\r\n var controlValues = new Array(2, 7, 9, 1, 4, 6, 3, 5, 8, 2, 7, 9);\r\n var divideValue = 11;\r\n\r\n var sexValue = 0;\r\n var monthValue = 0;\r\n var yearValue = 0;\r\n var dayValue = 0;\r\n\r\n // se citeste valorea referitoare la sex si data de nastere\r\n try {\r\n sexValue = parseInt(pid.substring(0, 1), 10);\r\n\r\n yearValue = parseInt(pid.substring(1, 3), 10);\r\n if (sexValue == 1 || sexValue == 2 || sexValue > 6)\r\n yearValue = 1900 + yearValue;\r\n else if (sexValue == 3 || sexValue == 4)\r\n yearValue = 1800 + yearValue;\r\n else if (sexValue == 5 || sexValue == 6)\r\n yearValue = 2000 + yearValue;\r\n\r\n monthValue = parseInt(pid.substring(3, 5), 10);\r\n if (monthValue < 1 && monthValue > 12) {\r\n return false;\r\n }\r\n\r\n dayValue = parseInt(pid.substring(5, 7), 10);\r\n if (dayValue < 0 && dayValue > 31) {\r\n return false;\r\n }\r\n\r\n if (!this.checkDateInFutureForPID(pid)) {\r\n return false;\r\n }\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n\r\n // se testeaza daca sexul e definit corect\r\n if (sexValue == 0) {\r\n return false;\r\n }\r\n\r\n // aleg secolul\r\n var centuryValue = 19;\r\n if (sexValue > 2 && sexValue < 5) {\r\n centuryValue = 18;\r\n }\r\n else if (sexValue > 4) {\r\n centuryValue = 20;\r\n }\r\n\r\n if (yearValue < 100) yearValue += centuryValue * 100;\r\n\r\n // definesc un vector cu numarul de zile ale fiecarei luni din anul yearValue\r\n var daysInMonth = new Array(31,\r\n 28 + (((yearValue % 4 == 0 && yearValue % 100 != 0) || yearValue % 400 == 0) ? 1 : 0),\r\n 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);\r\n\r\n // se testeaza daca data nasterii este corecta\r\n if (monthValue * dayValue == 0 ||\r\n monthValue > 12 ||\r\n daysInMonth[monthValue - 1] < dayValue) {\r\n return false;\r\n }\r\n\r\n\r\n // se testeaza cifra de control\r\n var controlValue = 0;\r\n for (var ind = 0; ind < controlValues.length; ind++) {\r\n var nVal = parseInt(pid.charAt(ind), 10);\r\n if (isNaN(nVal)) {\r\n return false;\r\n }\r\n\r\n controlValue += nVal * controlValues[ind];\r\n }\r\n var resultValue = controlValue % divideValue;\r\n if (resultValue == 10)\r\n resultValue = 1;\r\n\r\n if (resultValue != parseInt(pid.charAt(pidLength - 1), 10)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n\r\n checkDateInFutureForPID(pid) {\r\n var crtDate = new Date();\r\n\r\n var sexValue = parseInt(pid.substring(0, 1), 10);\r\n var yearValue = parseInt(pid.substring(1, 3), 10);\r\n if (sexValue == 1 || sexValue == 2 || sexValue > 6)\r\n yearValue = 1900 + yearValue;\r\n else if (sexValue == 3 || sexValue == 4)\r\n yearValue = 1800 + yearValue;\r\n else if (sexValue == 5 || sexValue == 6)\r\n yearValue = 2000 + yearValue;\r\n var monthValue = parseInt(pid.substring(3, 5), 10);\r\n var dayValue = parseInt(pid.substring(5, 7), 10);\r\n\r\n var crtYear = crtDate.getFullYear();\r\n if (crtYear < 1900) crtYear += 1900;\r\n if (yearValue > crtYear) {\r\n return false;\r\n }\r\n else if (yearValue == crtDate.getFullYear()) {\r\n if (monthValue > crtDate.getMonth() + 1) {\r\n return false;\r\n }\r\n else if (monthValue == crtDate.getMonth() + 1) {\r\n if (dayValue > crtDate.getDate()) {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n //definitii de functii apelate\r\n isValidIBAN2(iban) {\r\n /*\r\n Pasul 1: Se muta primele patru caractere (simbolizand codul de tara si caracterele de verificare) la dreapta codului IBAN.\r\n Exemplu: RO49AAAA1B31007593840000 devine AAAA1B31007593840000RO49.\r\n\r\n Pasul 2: Se face conversia literelor in numere, conform tabelei de conversie cuprinsa in Anexa nr. 2.\r\n Exemplu: AAAA1B31007593840000RO49 devine 1010101011131007593840000272449\r\n\r\n Pasul 3: Se aplica algoritmul MOD 97-10 (conform ISO 7064). Pentru ca cele 2 caractere de verificare sa fie corecte (codul IBAN sa fie corect), restul impartirii numarului astfel obtinut la 97 trebuie sa fie 1.\r\n Exemplu: Restul impartirii lui 1010101011131007593840000272449 la 97 este 1.\r\n */\r\n if (!iban)\r\n return false;\r\n\r\n //iban =\"RO23TREZ1315069XXX000497\";\r\n iban = iban.toUpperCase();\r\n\r\n iban = iban.substring(4) + iban.substring(0, 4);\r\n iban = this.convert2N(iban);\r\n\r\n var mod97 = this.GetRemainder(String(iban), \"97\");\r\n\r\n var valid = mod97 == 1 ? true : false;\r\n if (!valid) {\r\n\r\n return false;\r\n }\r\n return true;\r\n\r\n }\r\n\r\n convert2N(iban) {\r\n var conversionArray = new Array(\"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\");\r\n var caracter = \"\";\r\n var newiban = \"\";\r\n var flag = 0;\r\n for (var i = 0; i < 24; i++) {\r\n caracter = iban.substring(i, i + 1);\r\n flag = 0;\r\n for (var j = 0; j < 26; j++) {\r\n if (caracter == conversionArray[j]) {\r\n newiban = newiban + (j + 10);\r\n j = 26;\r\n flag = 1;\r\n }\r\n }\r\n if (flag == 0)\r\n newiban = newiban + caracter;\r\n }\r\n return newiban;\r\n }\r\n\r\n GetRemainder(x, y) {\r\n var nr = x;\r\n var len = nr.length;\r\n var number = parseInt(y, 10);\r\n var remainder = 0;\r\n var ignore = 0;\r\n var k = '';\r\n\r\n while (ignore < len) {\r\n if (remainder == 0) {\r\n var w1 = y + ' ';\r\n var w2 = w1.length - 1;\r\n k = nr.slice(ignore, ignore + w2);\r\n\r\n ignore += w2;\r\n remainder = parseInt(remainder + k, 10) % number;\r\n }\r\n else {\r\n k = nr.slice(ignore, ignore + 1);\r\n ignore += 1;\r\n remainder = parseInt(remainder + k, 10) % number;\r\n }\r\n }\r\n\r\n return remainder;\r\n }\r\n\r\n\r\n\r\n\r\n\r\n}\r\n","import { Injectable, EventEmitter, ChangeDetectorRef, ApplicationRef, inject, signal, computed, effect, DOCUMENT } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable, shareReplay, timer } from 'rxjs';\r\nimport { FlowCookieService, GlobalService } from '../';\r\nimport { ActivatedRoute, NavigationCancel, NavigationEnd, NavigationStart, Router } from '@angular/router';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { FlowAppConfig } from '../../../flowAppConfig';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FlowHttpClient {\r\n\r\n public http = inject(HttpClient);\r\n public document = inject(DOCUMENT);\r\n public cookieService = inject(FlowCookieService);\r\n public globalService = inject(GlobalService);\r\n public route = inject(ActivatedRoute);\r\n public router = inject(Router);\r\n private environment = inject(FlowAppConfig);\r\n public pageLoadingComplete: EventEmitter<any> = new EventEmitter(false);\r\n public loadingSuccess: EventEmitter<any> = new EventEmitter(false);\r\n public pageLoadingStart: EventEmitter<any> = new EventEmitter(false);\r\n public loadingFailure: EventEmitter<any> = new EventEmitter(false);\r\n\r\n public _pageLoading: number = 0;\r\n private _spinLoading: number = 0;\r\n public pageLoading = signal(0);\r\n private _loading = true;\r\n\r\n public loading = computed(() => this.pageLoading() > 0 ? true : false);\r\n\r\n\r\n\r\n\r\n public recordPageLoading: boolean = true;\r\n\r\n public onError: EventEmitter<any> = new EventEmitter(false);\r\n\r\n\r\n private _token: string;\r\n public get token(): string {\r\n if (!this._token)\r\n this._token = this.cookieService.get('auth_token');\r\n return this._token;\r\n }\r\n\r\n public set token(value) {\r\n this.cookieService.remove('auth_token');\r\n this._token = value;\r\n if (value)\r\n this.cookieService.put('auth_token', value);\r\n }\r\n\r\n constructor() {\r\n this.route.queryParams.subscribe(r => {\r\n if (r['auth_token']) {\r\n this.token = r['auth_token'];\r\n let obj = Object.assign({}, r);\r\n obj['auth_token'] = null;\r\n this.router.navigate([], { relativeTo: this.route, queryParams: obj, queryParamsHandling: 'merge' });\r\n }\r\n });\r\n\r\n this.router.events.subscribe(event => {\r\n if (event instanceof NavigationStart) {\r\n this.recordPageLoading = true;\r\n this.pageLoading.update(x => x + 1);\r\n // jQuery(\"html, body\").animate({ scrollTop: 0 }, 50);\r\n }\r\n if (event instanceof NavigationEnd || event instanceof NavigationCancel) {\r\n timer(100).subscribe(r => this.pageLoading.update(x => Math.max(0, x--)));\r\n }\r\n });\r\n\r\n effect(() => {\r\n if (this.pageLoading() > 0 && this._loading) {\r\n if (!this.document.body.classList.contains('loading'))\r\n this.document.body.classList.add('loading');\r\n }\r\n\r\n if (this.pageLoading() == 0 && this._loading) {\r\n if (this.document.body.classList.contains('loading'))\r\n this.document.body.classList.remove('loading');\r\n this._loading = false;\r\n this.pageLoadingComplete.emit();\r\n }\r\n });\r\n }\r\n\r\n get(endpoint: string, url: string, options?: any, showLoader = true): Observable<any> {\r\n\r\n if (showLoader && this.recordPageLoading)\r\n this.pageLoading.update(x => x + 1);\r\n options = this.createAuthHeader(options);\r\n let retValue = this.http.get(endpoint + url, options)\r\n .pipe(catchError((err, caught) => {\r\n this.recordPageLoading = false;\r\n this.pageLoading.set(0);\r\n this.onError.emit(err);\r\n throw err;\r\n }), shareReplay());\r\n retValue\r\n .subscribe(res => {\r\n if (showLoader && this.recordPageLoading)\r\n this.pageLoading.update(x => Math.max(0, x - 1));\r\n });\r\n return retValue;\r\n }\r\n\r\n delete(endpoint: string, url: string, options?: any, showLoader = false): Observable<any> {\r\n if (showLoader && this.recordPageLoading)\r\n this.pageLoading.update(x => x + 1);\r\n\r\n options = this.createAuthHeader(options);\r\n let retValue = this.http.delete(endpoint + url, options)\r\n .pipe(catchError((err, caught) => {\r\n this.recordPageLoading = false;\r\n this.pageLoading.set(0);\r\n this.onError.emit(err);\r\n throw err;\r\n }), shareReplay());\r\n retValue\r\n .subscribe(res => {\r\n if (showLoader && this.recordPageLoading)\r\n this.pageLoading.update(x => Math.max(0, x - 1));\r\n });\r\n return retValue;\r\n }\r\n\r\n post(endpoint: string, url: string, data: any, options?: any, showLoader = true): Observable<any> {\r\n\r\n if (showLoader && this.recordPageLoading)\r\n this.pageLoading.update(x => x + 1);\r\n\r\n options = this.createAuthHeader(options);\r\n\r\n let retValue = this.http.post(endpoint + url, data, options)\r\n .pipe(catchError((err, caught) => {\r\n this.recordPageLoading = false;\r\n this.pageLoading.set(0);\r\n this.onError.emit(err);\r\n throw err;\r\n }), shareReplay());\r\n retValue\r\n\r\n .subscribe(res => {\r\n if (showLoader && this.recordPageLoading)\r\n this.pageLoading.update(x => Math.max(0, x - 1));\r\n });\r\n return retValue;\r\n }\r\n\r\n put(endpoint: string, url: string, data: any, options?: any, showLoader = false): Observable<any> {\r\n\r\n if (showLoader && this.recordPageLoading)\r\n this.pageLoading.update(x => x + 1);\r\n\r\n options = this.createAuthHeader(options);\r\n let retValue = this.http.put(endpoint + url, data, options)\r\n .pipe(catchError((err, caught) => {\r\n this.recordPageLoading = false;\r\n this.pageLoading.set(0);\r\n this.onError.emit(err);\r\n throw err;\r\n }), shareReplay());\r\n retValue\r\n .subscribe(res => {\r\n if (showLoader && this.recordPageLoading)\r\n this.pageLoading.update(x => Math.max(0, x - 1));\r\n });\r\n return retValue;\r\n }\r\n\r\n public createAuthHeader(options: any) {\r\n if (!options)\r\n options = {};\r\n if (!options.headers) {\r\n options.headers = new HttpHeaders({\r\n 'Accept': 'application/json',\r\n\r\n });\r\n\r\n if (this.globalService.currentLanguage())\r\n options.headers.set('flow-language-code', this.globalService.currentLanguage());\r\n if (this.globalService.currentEditLanguage())\r\n options.headers.set('flow-edit-language-code', this.globalService.currentEditLanguage());\r\n\r\n } else {\r\n if (!options.headers.get('Accept'))\r\n options.headers = options.headers.set('Accept', 'application/json');\r\n if (!options.headers.get('flow-language-code') && !options.excludeExtraHeaders && this.globalService.currentLanguage())\r\n options.headers = options.headers.set('flow-language-code', this.globalService.currentLanguage());\r\n }\r\n\r\n if (this.token && !options.excludeExtraHeaders) {\r\n options.headers = options.headers.set('Authorization', 'Bearer ' + this.token);\r\n }\r\n\r\n if (this.environment.forceOrigin && !options.excludeExtraHeaders) {\r\n options.headers = options.headers.set('flow-origin', this.environment.forceOrigin);\r\n }\r\n\r\n return options;\r\n }\r\n\r\n public serializeToQueryString(obj, prefix = null) {\r\n var str = [], p;\r\n for (p in obj) {\r\n if (obj.hasOwnProperty(p) && obj[p]) {\r\n var k = prefix && !isNaN(p) ? prefix + \"[\" + p + \"]\" : prefix && isNaN(p) ? prefix + \".\" + p : p, v = obj[p];\r\n str.push((v !== null && typeof v === \"object\") ?\r\n this.serializeToQueryString(v, k) :\r\n encodeURIComponent(k) + \"=\" + encodeURIComponent(v));\r\n }\r\n }\r\n return str.join(\"&\");\r\n }\r\n\r\n public serializeToQueryString2(obj) {\r\n var str = [], p;\r\n for (p in obj) {\r\n if (obj.hasOwnProperty(p) && obj[p]) {\r\n var k = !isNaN(p) ? \"[\" + p + \"]\" : isNaN(p) ? p : p, v = obj[p];\r\n str.push((v !== null && typeof v === \"object\") ?\r\n this.serializeToQueryString(v, k) :\r\n encodeURIComponent(this.jsUcfirst(k)) + \"=\" + encodeURIComponent(v));\r\n }\r\n }\r\n return str.join(\"&\");\r\n }\r\n\r\n jsUcfirst(string) {\r\n return string.charAt(0).toUpperCase() + string.slice(1);\r\n }\r\n}\r\n","import { Injectable, EventEmitter, signal, inject } from '@angular/core';\r\nimport { NavigationStart, Router } from '@angular/router';\r\nimport * as uuid from 'uuid';\r\nimport { SidebarContext } from '../../misc/sidebar-context';\r\nimport { timer } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SidebarService {\r\n public readonly router = inject(Router);\r\n public sidebars = signal<any>([]);\r\n\r\n constructor() {\r\n this.router.events.subscribe(event => {\r\n if (event instanceof NavigationStart) {\r\n this.closeSidebars();\r\n }\r\n });\r\n }\r\n\r\n openSidebar(component, data: any = null, options: any = {}) {\r\n let defaultPosition = 'bottom';\r\n if (window.innerWidth < 576) {\r\n document.getElementsByTagName(\"html\")[0].style['overflow'] = 'hidden';\r\n document.getElementsByTagName(\"body\")[0].style['overflow'] = 'hidden';\r\n defaultPosition = 'bottom';\r\n }\r\n\r\n options.position = options.position || defaultPosition;\r\n options.ngStyle = options.ngStyle || {};\r\n\r\n if (options.position == 'right' || options.position == 'left') {\r\n options.ngStyle.width = options.ngStyle.width || '500px';\r\n options.ngStyle.height = null;\r\n options.ngStyle['max-width'] = '95%';\r\n options.contentScrollable = signal(true);\r\n }\r\n if (options.position == 'top' || options.position == 'bottom') {\r\n options.ngStyle.width = null;\r\n options.ngStyle.height = options.ngStyle.height || '30%';\r\n options.ngStyle['max-height'] = options.ngStyle.height == '100%' ? '100%' : '95%';\r\n\r\n options.contentScrollable = signal(false);\r\n if (options.ngStyle.height == '95%' || options.ngStyle.height == '100%')\r\n options.contentScrollable.set(true);\r\n\r\n }\r\n\r\n let obj: any = {\r\n id: uuid.v4(),\r\n component: component,\r\n options: options,\r\n visible: true\r\n };\r\n\r\n let pr = new Promise((resolve, reject) => {\r\n if (component.prototype instanceof SidebarContext) {\r\n obj.inputs = data || {};\r\n obj.inputs.close = (value) => {\r\n resolve(value);\r\n this.closeSidebar(obj.id);\r\n };\r\n obj.inputs.setSize = (value) => {\r\n this.setSize(value, options);\r\n };\r\n }\r\n });\r\n\r\n console.log(obj);\r\n this.sidebars.update(s => [...this.sidebars(), obj]);\r\n\r\n return pr\r\n }\r\n\r\n openIframeSidebar(url, width = '400px') {\r\n }\r\n closeSidebars() {\r\n this.sidebars().forEach(el => {\r\n this.closeSidebar(el.id);\r\n });\r\n }\r\n\r\n setSize(size, options) {\r\n if (options.position == 'bottom' && size.height) {\r\n options.ngStyle.transition = 'height .2s';\r\n options.ngStyle.height = size.height;\r\n if (size.height == '95%' || size.height == '100%')\r\n options.contentScrollable.set(true);\r\n else\r\n options.contentScrollable.set(false);\r\n } else if ((options.position == 'left' || options.position == 'right') && size.width) {\r\n options.ngStyle.transition = 'width .2s';\r\n options.ngStyle.width = size.width;\r\n }\r\n }\r\n\r\n closeSidebar(id = null) {\r\n this.sidebars.update(s => {\r\n let closee = id ? s.find(a => a.id == id) : s[0];\r\n if (!closee)\r\n return s;\r\n closee.visible = false;\r\n if (s.findIndex(a => a.visible) < 0) {\r\n document.getElementsByTagName(\"html\")[0].style['overflow'] = 'initial';\r\n document.getElementsByTagName(\"body\")[0].style['overflow'] = 'initial';\r\n\r\n }\r\n return s;\r\n });\r\n\r\n timer(200).subscribe(er => {\r\n this.sidebars.update(s => {\r\n return s.filter(a => a.visible);;\r\n });\r\n });\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform, Signal, computed, inject } from '@angular/core';\r\nimport { GlobalService } from '../../services/global/global.service';\r\nimport { Misc } from '../../misc';\r\n\r\n@Pipe({\r\n name: 'translation',\r\n standalone: true,\r\n})\r\n// The work of the pipe is handled in the tranform method with our pipe's class\r\nexport class TranslationPipe implements PipeTransform {\r\n\r\n constructor() { }\r\n\r\n transform(value: string, htmlContentList: any, replacements: any = null): string {\r\n let signal = computed(() => Misc.formatString((htmlContentList() && htmlContentList()[value] ? htmlContentList()[value] : value),\r\n ...(replacements && Array.isArray(replacements()) ? replacements() : [])));\r\n return signal();\r\n }\r\n}\r\n","import { Injectable, EventEmitter, inject, signal } from '@angular/core';\r\nimport { UserAccountService, FlowHttpClient, TranslationSharedService, GlobalService, FlowCookieService } from '../../services';\r\nimport { SortingPagingCriteria } from '../../misc/sorting-paging-criteria';\r\nimport { ReplaySubject, Subject, timer } from 'rxjs';\r\n// import { Platform } from '@ionic/angular';\r\nimport * as signalR from '@microsoft/signalr';\r\ndeclare var window: any;\r\nimport { ActivatedRoute, Router, NavigationEnd } from '@angular/router';\r\n// import { Geolocation } from '@awesome-cordova-plugins/geolocation/ngx';\r\nimport { FlowAppConfig } from '../../../flowAppConfig';\r\nimport { MessageService } from 'primeng/api';\r\nimport { TranslationPipe } from '../../pipes/translation/translation.pipe';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SignalrNotificationService {\r\n\r\n private cookieService = inject(FlowCookieService);\r\n private userService = inject(UserAccountService);\r\n private httpClient = inject(FlowHttpClient);\r\n private activatedRoute = inject(ActivatedRoute);\r\n public router = inject(Router)\r\n public http = inject(FlowHttpClient)\r\n public translationService = inject(TranslationSharedService)\r\n public globalService = inject(GlobalService);\r\n public messageService = inject(MessageService);\r\n private connection: any;\r\n public messages = signal<any[]>([]);\r\n public newMessage: any;\r\n public subscribedChannels: any[] = [];\r\n public onNotification = new EventEmitter(true);\r\n public connectionPromise: Promise<any>;\r\n public unreadMessageCount = signal<number>(0);\r\n public hasMorePages: boolean = false;\r\n public subscription: any;\r\n private environment = inject(FlowAppConfig);\r\n public onlineStatus: string = 'OFFLINE';\r\n statusSubscription: any;\r\n public interval: any;\r\n public onConnected: Subject<any> = new ReplaySubject();\r\n public onNotificationClick = new EventEmitter(true);\r\n coordinates: any;\r\n simInfo: any;\r\n\r\n public get mute() {\r\n return this.cookieService.get('mute') == 'true';\r\n };\r\n public set mute(value) {\r\n this.cookieService.put('mute', value ? 'true' : 'false');\r\n };\r\n public notificationArray = [\r\n { name: 'pop', sound: null },\r\n { name: 'marimba1', sound: null },\r\n ];\r\n constructor() {\r\n this.getNotifications();\r\n this.getConnection();\r\n this.preloadSounds();\r\n\r\n\r\n console.log('subscribing');\r\n // this.platform.resume.subscribe(() => {\r\n // console.log('resuming');\r\n // this.getConnection();\r\n // this.subscribePushChannels();\r\n // });\r\n\r\n this.userService.onUserLoggedIn.subscribe(async (res) => {\r\n this.getNotifications();\r\n await this.stopConnection();\r\n await this.getConnection();\r\n this.subscribePushChannels();\r\n });\r\n\r\n this.userService.onUserLoggedOut.subscribe(res => {\r\n this.unsubscribePushChannels(res);\r\n });\r\n\r\n // this.platform.ready().then(p => {\r\n // if (!window.cordova || !window.FirebasePlugin)\r\n // return;\r\n\r\n // window.FirebasePlugin.hasPermission((has) => {\r\n // if (has) { this.initPushNotifications(); }\r\n // else { window.FirebasePlugin.grantPermission(r => this.initPushNotifications()); }\r\n // })\r\n // });\r\n }\r\n\r\n\r\n\r\n initPushNotifications() {\r\n window.FirebasePlugin.getToken();\r\n window.FirebasePlugin.onMessageReceived(res => {\r\n console.log(res);\r\n });\r\n var channel = {\r\n id: \"default\",\r\n sound: \"correct\"\r\n };\r\n window.FirebasePlugin.createChannel(channel);\r\n }\r\n\r\n subscribePushChannels() {\r\n if (this.userService.currentUser().id && window.cordova && window.FirebasePlugin)\r\n window.FirebasePlugin.subscribe(`${this.environment.application_id}${this.environment.production ? '' : '--debug'}--${this.environment.client_id.replace('::', '~')}--${this.userService.currentUser().id}`);\r\n }\r\n\r\n unsubscribePushChannels(user) {\r\n if (user.id && window.cordova && window.FirebasePlugin)\r\n window.FirebasePlugin.unsubscribe(`${this.environment.application_id}${this.environment.production ? '' : '--debug'}--${this.environment.client_id.replace('::', '~')}--${user.id}`);\r\n }\r\n\r\n\r\n async getConnection() {\r\n console.log('Getting SignalR connection')\r\n console.log(this.onlineStatus);\r\n if (this.interval) this.interval.unsubscribe();\r\n\r\n if (this.onlineStatus == 'ONLINE')\r\n return;\r\n\r\n // let options =\r\n // {\r\n // headers: {\r\n // 'Authorization': `Bearer ${this.httpClient.token}`\r\n // }\r\n // };\r\n this.connection = new signalR.HubConnectionBuilder()\r\n .configureLogging(signalR.LogLevel.Information)\r\n .withUrl(`${this.environment.endpoints['NotificationServer']}/SignalRNotificationHub?auth_token=${this.httpClient.token}`)\r\n .build();\r\n\r\n\r\n try {\r\n await this.connection.start();\r\n this.onlineStatus = 'ONLINE';\r\n }\r\n catch {\r\n this.onlineStatus = 'OFFLINE';\r\n console.log({ onlineStatus: this.onlineStatus });\r\n this.interval = timer(5000).subscribe(async () => await this.getConnection());\r\n return;\r\n }\r\n\r\n console.log({ onlineStatus: this.onlineStatus });\r\n\r\n this.connection.onclose(async () => {\r\n this.onlineStatus = 'OFFLINE';\r\n console.log({ onClose: this.onlineStatus });\r\n this.interval = timer(5000).subscribe(async () => await this.getConnection());\r\n });\r\n\r\n // this.connection.onreconnected(() =>{\r\n // this.onlineStatus='ONLINE';\r\n // console.log({ onReconnect: this.onlineStatus });\r\n // });\r\n\r\n if (this.onlineStatus == 'ONLINE') {\r\n if (this.statusSubscription) this.statusSubscription.unsubscribe();\r\n\r\n await this.sendCurrentStatus();\r\n this.statusSubscription = this.router.events.subscribe(async (ev) => {\r\n if (ev instanceof NavigationEnd)\r\n await this.sendCurrentStatus();\r\n });\r\n }\r\n if (this.subscription) this.subscription.unsubscribe();\r\n\r\n this.subscription = this.connection.on('messageReceived', (msg, u) => {\r\n let m = JSON.parse(msg);\r\n this.onNotification.emit(m);\r\n\r\n if (m.hideInToaster || this.mute)\r\n return;\r\n //here\r\n\r\n\r\n this.messages.update(ctx => {\r\n ctx.push(m);\r\n return ctx;\r\n });\r\n this.messageService.add({ severity: m.class, detail: this.processReplacements(new TranslationPipe().transform(m.body, this.translationService.translations()), m.model) });\r\n this.unreadMessageCount.update(c => c + 1);\r\n this.playSound(m.sound);\r\n });\r\n }\r\n\r\n processReplacements(text: string, strObj: string, prefix: string = 'model') {\r\n\r\n let obj = JSON.parse(strObj)\r\n\r\n let replacements = this.buildReplacementsArray(obj, prefix);\r\n replacements.forEach(element => {\r\n text = text.replace(`{{${element.query}}}`, element.value);\r\n });\r\n return text;\r\n\r\n }\r\n preloadSounds() {\r\n this.notificationArray.forEach(s => {\r\n s.sound = new Audio();\r\n s.sound.src = `../assets/audio/${s.name}.mp3`;\r\n s.sound.load();\r\n });\r\n }\r\n\r\n async stopConnection() {\r\n console.log('stopping connection');\r\n this.onlineStatus = 'OFFLINE';\r\n\r\n if (this.interval && this.interval.unsubscribe) {\r\n this.interval.unsubscribe();\r\n this.interval = null;\r\n }\r\n\r\n if (this.connection)\r\n await this.connection.stop();\r\n\r\n }\r\n\r\n playSound(name) {\r\n if (!this.mute && name) {\r\n let snd = this.notificationArray.find(n => n.name == name);\r\n if (snd && snd.sound)\r\n snd.sound.play();\r\n }\r\n\r\n }\r\n\r\n buildReplacementsArray(obj: any, prefix: string = 'model') {\r\n var str = [], p;\r\n for (p in obj) {\r\n if (obj.hasOwnProperty(p)) {\r\n var k = prefix && !isNaN(p) ? prefix + \"[\" + p + \"]\" : prefix && isNaN(p) ? prefix + \".\" + p : p, v = obj[p];\r\n str.push((v !== null && typeof v === \"object\") ?\r\n this.buildReplacementsArray(v, k) :\r\n { query: k, value: v });\r\n }\r\n }\r\n return str;\r\n\r\n }\r\n\r\n\r\n\r\n public messagePageNo = 1;\r\n\r\n\r\n\r\n\r\n // async updateDeviceStatus() {\r\n\r\n // this.coordinates = await this.geolocation.getCurrentPosition({ timeout: 30000 }).catch(err => {\r\n // console.log(err);\r\n // throw err;\r\n // });\r\n // }\r\n\r\n\r\n async sendCurrentStatus() {\r\n await this.userService.getCurrentUser().toPromise();\r\n let objSettings = {\r\n ApplicationId: this.environment.application_id,\r\n ClientId: this.environment.client_id,\r\n // BrowserName: this.browser.getBrowser().name, // \"Microsoft Edge\"\r\n // BrowserVersion: this.browser.getBrowser().version, //114.0.1823.79\r\n Route: window.location.pathname + window.location.search, // /access\r\n Host: window.location.host,\r\n User: this.userService.currentUser().id ? this.userService.currentUser() : null, //{roles: Array(0)}\r\n //Id: this.instanceId, //\"372d46d4-a48a-2ca9-c29a-acdeee6798ef\"\r\n Language: this.globalService.currentLanguage(), // desktop\r\n // Lat: this.coordinates ? this.coordinates.coords.latitude : null, //null\r\n // Lng: this.coordinates ? this.coordinates.coords.longitutde : null, //null\r\n NetworkOperator: this.simInfo ? this.simInfo.carrierName : null,\r\n // OsName: this.browser.getOS().name, //Windows\r\n // OsVersion: this.browser.getOS().version, //NT 10.0\r\n // PlatformType: this.browser.getPlatformType(),\r\n // ScreenH: this.platform.height(), //721\r\n // ScreenW: this.platform.width(), //1026\r\n // Version: packageInfo.version,\r\n\r\n };\r\n await this.connection.send('SendStatus', objSettings);\r\n }\r\n\r\n //offline?\r\n\r\n\r\n\r\n\r\n\r\n getNotifications() {\r\n let spc = new SortingPagingCriteria();\r\n spc.pageNumber = this.messagePageNo;\r\n let obs = this.httpClient.get(this.environment.endpoints['NotificationServer'], `/api/services/app/NotificationService/GetNotifications?${this.httpClient.serializeToQueryString(spc, 'spc')}`, null, false);\r\n obs.subscribe(res => {\r\n if (res.result.type !== 'error') {\r\n if (this.messagePageNo == 1) {\r\n this.messages.update(c => c.filter(m => !m.saveToDb));\r\n }\r\n this.messages.update(c => c.concat(res.result.notifications));\r\n this.unreadMessageCount.set(res.result.unreadMessageCount);\r\n this.hasMorePages = res.result.hasMorePages;\r\n }\r\n\r\n });\r\n\r\n\r\n return obs;\r\n }\r\n\r\n setReadReceipt() {\r\n this.unreadMessageCount.set(0);\r\n return this.httpClient.get(this.environment.endpoints['NotificationServer'], '/api/services/app/NotificationService/SetReadReceipt');\r\n }\r\n\r\n\r\n\r\n}\r\n\r\n\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { FlowHttpClient } from '../httpClient/httpClient';\r\nimport { Observable, of } from 'rxjs';\r\nimport { FlowAppConfig } from '../../../flowAppConfig';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApplicationSharedService {\r\n private environment = inject(FlowAppConfig);\r\n public http = inject(FlowHttpClient);\r\n\r\n constructor() { }\r\n\r\n private endpointObs: Observable<any>;\r\n public allowedApplications: any = [];\r\n public _currentApplication: any = {};\r\n public get endpoints(): any[] {\r\n return this.environment.endpoints;\r\n }\r\n\r\n\r\n public get currentApplication() {\r\n return this._currentApplication;\r\n }\r\n\r\n public set currentApplication(value) {\r\n this._currentApplication = value;\r\n }\r\n\r\n\r\n public getAdminClients() {\r\n return this.http.get(this.endpoints['IdentityServer'], `/clients/getadminclients`);\r\n\r\n }\r\n}","import { Injectable, EventEmitter, inject, signal, afterNextRender, effect } from '@angular/core';\r\nimport { FlowHttpClient } from '../httpClient/httpClient';\r\nimport { ApplicationSharedService } from '../application-shared/application-shared.service';\r\nimport { GlobalService } from '../global/global.service';\r\nimport { of, shareReplay, tap, firstValueFrom } from 'rxjs';\r\nimport { FlowCookieService, UserAccountService } from '../../services';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { catchError, map, pairwise, startWith } from 'rxjs/operators';\r\nimport { FlowAppConfig } from '../../../flowAppConfig';\r\nimport { toObservable } from '@angular/core/rxjs-interop';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TranslationSharedService {\r\n\r\n public translationsLoaded = signal(false);\r\n public onLanguageChanged = new EventEmitter(true);\r\n public onEditLanguageChanged = new EventEmitter(true);\r\n public onTranslationsLoaded = new EventEmitter(true);\r\n public onSetCountryProvinceCity = new EventEmitter(true);\r\n private environment = inject(FlowAppConfig);\r\n public http = inject(FlowHttpClient);\r\n public applicationService = inject(ApplicationSharedService)\r\n public globalService = inject(GlobalService);\r\n public cookieService = inject(FlowCookieService)\r\n public translations = signal<any>({});\r\n public userService = inject(UserAccountService);\r\n\r\n public languages = signal([]);\r\n\r\n public countries = signal<any[]>([]);\r\n\r\n\r\n public editContent = signal(false);\r\n private translationObs: any;\r\n public countryProvinceCityPlaceholder = signal<any[]>([]);\r\n\r\n\r\n public get endpoint() {\r\n return this.environment.endpoints['TranslationServer'];\r\n }\r\n\r\n\r\n\r\n\r\n public get currentLanguageObj() {\r\n if (this.languages && this.languages[this.globalService.currentLanguage()])\r\n return this.languages[this.globalService.currentLanguage()];\r\n else\r\n return {};\r\n }\r\n\r\n constructor() {\r\n console.log('constructing translations');\r\n\r\n toObservable(this.globalService.currentLanguage).pipe(pairwise()).subscribe(([oldValue, newValue]) => {\r\n console.log(oldValue, newValue);\r\n if (oldValue != newValue)\r\n this.getTranslations(true);\r\n });\r\n\r\n }\r\n\r\n getTranslations(force = true): any {\r\n if (this.translationsLoaded() && !force)\r\n return of(this.translations());\r\n if (this.translationObs && !force)\r\n return this.translationObs;\r\n\r\n if (localStorage['translations']) {\r\n try {\r\n this.translations.set(JSON.parse(localStorage['translations']));\r\n } catch { }\r\n this.translationsLoaded.set(true);\r\n }\r\n\r\n this.translationObs = this.http.get(this.endpoint, `/api/services/app/TranslationClientService/GetTranslations?applicationId=${encodeURIComponent(this.environment.application_id)}&languageCode=${this.globalService.currentLanguage()}&groupId=${this.environment.groupId}`)\r\n .pipe(catchError(err => {\r\n console.log('Error loading translations');\r\n return of([]);\r\n }), shareReplay());\r\n this.translationObs.subscribe(res => {\r\n console.log('Translationsloaded and complete')\r\n this.translations.set(res.result);\r\n this.translationsLoaded.set(true);\r\n this.onTranslationsLoaded.emit();\r\n localStorage['translations'] = JSON.stringify(this.translations());\r\n this.translationObs = null;\r\n });\r\n return this.translationObs;\r\n }\r\n getLanguages() {\r\n let obs = this.http.get(this.endpoint, `/api/services/app/LanguageClientService/GetLanguages?applicationId=${this.environment.application_id}`)\r\n .pipe(catchError(err => {\r\n console.log('Error loading translations');\r\n return of([]);\r\n }),\r\n tap(res => {\r\n if (!(res instanceof HttpErrorResponse))\r\n this.languages.set(res.result);\r\n }));\r\n\r\n return obs;\r\n }\r\n\r\n\r\n quickSaveHtmlContent(name: string, content: string) {\r\n let obs = this.http.post(this.endpoint, `/api/services/app/TranslationAdminService/QuickSave`, { name: name, value: content, languageCode: this.globalService.currentLanguage(), groupName: this.environment.groupId });\r\n return obs;\r\n }\r\n\r\n getCountries() {\r\n let obs = this.http.get(this.endpoint, `/api/services/app/CountryService/GetCountries`)\r\n .pipe(tap(res => {\r\n this.countries.set(res.result);\r\n }),\r\n catchError(err => {\r\n return of({});\r\n }));\r\n return obs;\r\n }\r\n\r\n getCountry(code) {\r\n return this.countries().filter(c => c.code == code)[0];\r\n }\r\n\r\n getHtmlContentByUrl(url) {\r\n return this.http.get(this.endpoint, `/api/services/app/TranslationClientService/GetContentPage?applicationId=${encodeURIComponent(this.environment.application_id)}&url=${encodeURIComponent(url)}&languageCode=${this.globalService.currentLanguage()}`);\r\n }\r\n\r\n async getLocalization() {\r\n let loc: any = {};\r\n\r\n if (this.cookieService.get('localization'))\r\n loc = JSON.parse(this.cookieService.get('localization'));\r\n else {\r\n loc = await firstValueFrom(this.http.get(this.endpoint, `/api/services/app/LocalizationService/GetWithClientIp`).pipe(map(t => t.result)));\r\n let coordsValue = await this.getNavigatorPosition().catch(e => null);\r\n if (coordsValue)\r\n loc.coords = { lat: coordsValue.coords.latitude, lng: coordsValue.coords.longitude };\r\n\r\n this.cookieService.put('localization', JSON.stringify(loc));\r\n }\r\n this.globalService.currentLanguage.set(loc.language);\r\n return loc;\r\n }\r\n\r\n getNavigatorPosition(options?: PositionOptions): Promise<any> {\r\n return new Promise((resolve, reject) =>\r\n navigator.geolocation.getCurrentPosition(resolve, reject, options)\r\n );\r\n }\r\n\r\n getCountryCityPlaceholder(correlation) {\r\n console.log(this.countryProvinceCityPlaceholder()[correlation]);\r\n return this.countryProvinceCityPlaceholder()[correlation];\r\n }\r\n\r\n setCountryCityPlaceholder(correlation, value) {\r\n console.log(value);\r\n this.countryProvinceCityPlaceholder.update(ctx => {\r\n ctx[correlation] = {\r\n ...ctx[correlation],\r\n countryCode: value.countryCode,\r\n currentCountry: this.countries().find(c => c.code == value.countryCode),\r\n city: value.city\r\n };\r\n\r\n if (value.provinceCode) {\r\n ctx[correlation].currentProvince = this.countryProvinceCityPlaceholder()[correlation].currentCountry.provinces.find(p => p.code == value.provinceCode);\r\n ctx[correlation].provinceCode = ctx[correlation].currentProvince.code;\r\n ctx[correlation].provinceName = ctx[correlation].currentProvince.name;\r\n } else {\r\n ctx[correlation].currentProvince = null;\r\n ctx[correlation].provinceCode = null;\r\n ctx[correlation].provinceName = value.provinceName;\r\n }\r\n return ctx;\r\n });\r\n console.log(this.countryProvinceCityPlaceholder()[correlation]);\r\n }\r\n\r\n validateCountryProvinceCity(correlation) {\r\n this.countryProvinceCityPlaceholder.update(ctx => {\r\n ctx[correlation] = this.countryProvinceCityPlaceholder()[correlation] || {};\r\n return ctx;\r\n });\r\n let countryProvinceCity = this.countryProvinceCityPlaceholder()[correlation]\r\n\r\n countryProvinceCity.countryError = false;\r\n countryProvinceCity.provinceError = false;\r\n countryProvinceCity.cityError = false;\r\n\r\n\r\n if (!countryProvinceCity.countryCode) {\r\n countryProvinceCity.countryError = true;\r\n }\r\n\r\n if (!countryProvinceCity.provinceName) {\r\n countryProvinceCity.provinceError = true;\r\n }\r\n\r\n if (!countryProvinceCity.city) {\r\n countryProvinceCity.cityError = true;\r\n }\r\n\r\n this.countryProvinceCityPlaceholder.update(ctx => {\r\n ctx[correlation] = countryProvinceCity;\r\n return ctx;\r\n })\r\n\r\n }\r\n\r\n}\r\n","import { Injectable, EventEmitter, HostListener, inject, signal } from '@angular/core';\r\nimport { FlowHttpClient } from '../httpClient/httpClient';\r\nimport { TranslationSharedService } from '../translation-shared/translation-shared.service';\r\nimport { of } from 'rxjs';\r\nimport { HttpParams } from '@angular/common/http';\r\nimport { ActivatedRoute, GuardsCheckEnd, NavigationStart } from '@angular/router';\r\nimport { Router } from '@angular/router';\r\nimport { Location } from '@angular/common';\r\nimport 'rxjs';\r\ndeclare var window: any;\r\nimport { ModalService } from '../modal/modal.service';\r\nimport { SidebarService } from '../sidebar/sidebar.service';\r\nimport { HttpHeaders } from '@angular/common/http';\r\nimport { map, shareReplay } from 'rxjs/operators';\r\nimport { timer } from 'rxjs';\r\nimport bowser from 'bowser';\r\nimport { FlowCookieService } from '../cookie/cookie.service';\r\nimport { GlobalService } from '../global/global.service';\r\nimport { FlowAppConfig } from '../../../flowAppConfig';\r\ndeclare var moment: any;\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UserAccountService {\r\n public cookieService = inject(FlowCookieService);\r\n public http = inject(FlowHttpClient);\r\n public router = inject(Router);\r\n public location = inject(Location);\r\n public route = inject(ActivatedRoute);\r\n public sidebarService = inject(SidebarService);\r\n public globalService = inject(GlobalService);\r\n private environment = inject(FlowAppConfig);\r\n public currentUser = signal<any>({ claims: [] });\r\n public _redirectTo: string;\r\n source: any;\r\n logoutTimer: any;\r\n public get browser() {\r\n return bowser.getParser(window.navigator.userAgent);\r\n }\r\n public get redirectTo() {\r\n if (!this._redirectTo)\r\n this._redirectTo = this.cookieService.get('redirectTo');\r\n\r\n return this._redirectTo;\r\n }\r\n\r\n public set redirectTo(value) {\r\n this._redirectTo = value;\r\n if (!value)\r\n this.cookieService.remove('redirectTo');\r\n else\r\n this.cookieService.put('redirectTo', value);\r\n }\r\n\r\n // public set loginUser(userAccount){\r\n // this.cookieService.put('userAccount', value);\r\n\r\n // }\r\n\r\n public authError: string;\r\n public onUserLoggedIn = new EventEmitter(false);\r\n public onUserLoggedOut = new EventEmitter(false);\r\n public onAccessRefused = new EventEmitter(false);\r\n public lastRouteAddress: string;\r\n public accessRefused: boolean;\r\n // public timer: TimerDirective;\r\n\r\n public get token() {\r\n return this.cookieService.get('auth_token');\r\n }\r\n\r\n @HostListener('window:focus', ['$event'])\r\n onFocus(event: any): void {\r\n this.setLogOutTimer();\r\n }\r\n\r\n constructor() {\r\n this.router.events.subscribe((res: any) => {\r\n if (res instanceof NavigationStart) {\r\n this.lastRouteAddress = res.url;\r\n }\r\n });\r\n\r\n this.route.queryParams.subscribe(res => {\r\n if (res['tkk'])\r\n this.processLoginToken(res['tkk'])\r\n })\r\n }\r\n\r\n currentUserObs: any;\r\n\r\n\r\n getCurrentUser(force = false) {\r\n if (this.currentUserObs)\r\n return this.currentUserObs;\r\n if ((this.http.token && !this.currentUser().id) || force) {\r\n\r\n this.currentUserObs = this.getCurrentUserDetails(force).pipe(shareReplay());;\r\n this.currentUserObs.subscribe(res => {\r\n if (res.result.status == 'valid')\r\n this.currentUser.set(res.result.user);\r\n else\r\n this.logout();\r\n this.currentUserObs = null;\r\n if (this.currentUser().id)\r\n this.setLogOutTimer();\r\n });\r\n\r\n return this.currentUserObs;\r\n }\r\n else {\r\n return of(this.currentUser);\r\n }\r\n\r\n }\r\n\r\n processLoginResponse(res) {\r\n\r\n if (res.response == 'fill_data') {\r\n this.http.token = res.token;\r\n }\r\n\r\n if (res.response == 'logged_in') {\r\n console.log(res);\r\n this.http.token = res.token;\r\n this.currentUser.set(res.userAccount);\r\n this.cookieService.put('userAccount', JSON.stringify({ firstName: res.userAccount.firstName, lastName: res.userAccount.lastName, email: res.userAccount.email }));\r\n this.onUserLoggedIn.emit(res.userAccount);\r\n this.setLogOutTimer();\r\n\r\n }\r\n\r\n\r\n }\r\n\r\n processLoginToken(tkk) {\r\n return this.http.get(this.environment.endpoints['IdentityServer'], `/api/services/app/IdentityService/ProcessLoginToken?t=${encodeURIComponent(tkk)}`).subscribe(res => {\r\n if (res.result.type == 'TOKEN') {\r\n this.processOtpToken(res.result);\r\n }\r\n });\r\n }\r\n\r\n processOtpToken(result) {\r\n this.http.token = result.authToken;\r\n this.currentUser.set(result.user);\r\n this.onUserLoggedIn.emit({ action: result.action, user: this.currentUser });\r\n this.setLogOutTimer();\r\n }\r\n\r\n getOtp(model) {\r\n model.os = this.browser.getOS().name;\r\n model.osVersion = this.browser.getOS().versionName;\r\n model.userAgent = `${this.browser.getBrowser().name} ${this.browser.getBrowser().version}`;\r\n return this.http.post(this.environment.endpoints['IdentityServer'], `api/services/app/IdentityService/GetOtp`, model);\r\n }\r\n\r\n resendOtp(model) {\r\n model.os = this.browser.getOS().name;\r\n model.osVersion = this.browser.getOS().versionName;\r\n model.userAgent = `${this.browser.getBrowser().name} ${this.browser.getBrowser().version}`;\r\n\r\n return this.http.post(this.environment.endpoints['IdentityServer'], `api/services/app/IdentityService/ResendOtp`, model);\r\n }\r\n\r\n verifyOtp(model) {\r\n return this.http.post(this.environment.endpoints['IdentityServer'], `api/services/app/IdentityService/VerifyOtp`, model);\r\n }\r\n\r\n saveUserProfile(model) {\r\n return this.http.post(this.environment.endpoints['IdentityServer'], `api/services/app/IdentityService/SaveUserProfileAndLogin\r\n`, model);\r\n }\r\n\r\n\r\n\r\n getCurrentUserDetails(force = false) {\r\n if (!this.currentUser().id || force) {\r\n let obs2;\r\n let obs = this.http\r\n .get(this.environment.endpoints['IdentityServer'], '/api/services/app/IdentityService/GetTokenModel')\r\n .pipe(shareReplay());\r\n return obs;\r\n } else {\r\n return of(this.currentUser);\r\n }\r\n }\r\n\r\n logout(returnUrl: string = null) {\r\n this.cookieService.remove(\"op_token\");\r\n let headers = new HttpHeaders();\r\n let loggedOutUser = this.currentUser;\r\n headers = headers.append('Content-Type', 'application/x-www-form-urlencoded');\r\n let postObj = { token: this.token, client_id: this.environment.client_id };\r\n this.cookieService.remove('auth_token');\r\n // this.http.post(this.environment.endpoints['IdentityServer'], '/connect/revocation', this.http.serializeToQueryString(postObj), { headers: headers } );\r\n this.currentUser.set({ claims: [] });\r\n this.currentUserObs = null;\r\n this.http.token = null!;\r\n this.onUserLoggedOut.emit(loggedOutUser);\r\n\r\n }\r\n\r\n getDecodedAccessToken(token: string): any {\r\n let arrSplit = token.split('|');\r\n return { token: arrSplit[0], exp: arrSplit.length > 1 ? arrSplit[1] : null };\r\n }\r\n\r\n setLogOutTimer() {\r\n let tokenInfo = this.getDecodedAccessToken(this.token);\r\n if (!tokenInfo.exp)\r\n return;\r\n\r\n let expireDate: any = moment.unix(tokenInfo.exp);\r\n let currentDate: any = moment();\r\n let timeOut = expireDate.diff(currentDate);\r\n\r\n if (timeOut < 0)\r\n this.logout();\r\n\r\n if (this.logoutTimer) { this.logoutTimer.unsubscribe(); this.logoutTimer = null; }\r\n\r\n this.logoutTimer = timer(timeOut).subscribe(res => {\r\n this.logout()\r\n });\r\n }\r\n\r\n userHasPermission(perm) {\r\n return this.currentUser().permissions && this.currentUser().permissions.includes(perm);\r\n }\r\n\r\n checkCurentUserClaims(route) {\r\n let obs = this.getCurrentUser(!this.currentUser().id);\r\n return obs.pipe(map((result: any) => {\r\n let retValue = !route.data.permissions;//currentRouteConfig.canActivate.length > 0;\r\n if (!route.data.permissions || !this.currentUser().id)\r\n return retValue;\r\n if (route.data.permissions && route.data.permissions.length == 0 && this.currentUser().id)\r\n return true;\r\n console.log(result);\r\n route.data.permissions.forEach(x => {\r\n retValue = retValue || (result?.permissions?.indexOf(x) >= 0);\r\n });\r\n if (!retValue) {\r\n this.redirectTo = window.location.pathname + window.location.search;\r\n if (result)\r\n this.authError = 'Nu aveti suficiente drepturi pentru a accesa pagina dorita';\r\n } else {\r\n this.authError = undefined;\r\n }\r\n return retValue ? true : false;\r\n }));\r\n\r\n }\r\n\r\n requestLoginNameChange(model) {\r\n return this.http.post(this.environment.endpoints['IdentityServer'], '/api/services/app/IdentityService/RequestLoginNameChange', model);\r\n }\r\n\r\n}\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { Router, ActivatedRouteSnapshot, RouterStateSnapshot, CanActivateFn } from '@angular/router';\r\nimport { UserAccountService } from '../user-account/user-account.service';\r\nimport { ApplicationSharedService } from '../application-shared/application-shared.service';\r\nimport { TranslationSharedService } from '../translation-shared/translation-shared.service';\r\nimport { FlowHttpClient } from '../httpClient/httpClient';\r\ndeclare var window;\r\nimport { map } from 'rxjs/operators';\r\nimport { Observable, firstValueFrom, from } from 'rxjs';\r\nimport { FlowAppConfig } from '../../../flowAppConfig';\r\nimport { GlobalService } from '../global/global.service';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AppSettingsLoader {\r\n\r\n public application_id: string;\r\n private environment = inject(FlowAppConfig);\r\n public userService = inject(UserAccountService)\r\n public applicationService = inject(ApplicationSharedService);\r\n public http = inject(FlowHttpClient);\r\n public translationService = inject(TranslationSharedService);\r\n public globalService = inject(GlobalService);\r\n\r\n constructor() {\r\n }\r\n canActivate(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot\r\n ) {\r\n return from(this.loadSettings()).pipe(map(res => true));\r\n }\r\n async loadSettings() {\r\n console.log('loadSettings');\r\n if (this.globalService.loaded)\r\n return;\r\n\r\n await this.translationService.getLocalization();\r\n await firstValueFrom(this.userService.getCurrentUser());\r\n await firstValueFrom(this.translationService.getTranslations());\r\n await firstValueFrom(this.translationService.getCountries());\r\n await firstValueFrom(this.translationService.getLanguages());\r\n //moment.locale(this.translationService.currentLanguage);\r\n this.globalService.loaded = true;\r\n }\r\n\r\n}\r\n\r\nexport const AppSettingsLoaderService: CanActivateFn = (next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> => {\r\n return inject(AppSettingsLoader).canActivate(next, state);\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'sum'\r\n})\r\n// The work of the pipe is handled in the tranform method with our pipe's class\r\nexport class SumPipe implements PipeTransform {\r\n \r\n constructor() {}\r\n\r\n transform(value: any[], member: string) {\r\n let result = 0;\r\n value.forEach(t => result += parseFloat(t[member]));\r\n return result;\r\n }\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { TranslationSharedService } from '../translation-shared/translation-shared.service';\r\nimport { TranslationPipe } from '../../pipes';\r\n// import { DialogModule } from 'primeng/dialog';\r\nimport { ConfirmationService, MessageService } from 'primeng/api';\r\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\r\nimport { ToastModule } from 'primeng/toast';\r\nimport { GlobalService } from '../global/global.service';\r\n\r\n// import { ConfirmDialogModule } from 'primeng/confirmdialog';\r\n// import { Modal, BSModalContext } from 'ngx-modialog-7/plugins/bootstrap';\r\n// import { overlayConfigFactory } from 'ngx-modialog-7';\r\n\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ModalService {\r\n\r\n translationService = inject(TranslationSharedService);\r\n // modal = inject(DialogModule);\r\n confirmationService = inject(ConfirmationService);\r\n messageService = inject(MessageService);\r\n globalService = inject(GlobalService);\r\n\r\n constructor() { }\r\n\r\n\r\n openConfirm(trans) {\r\n this.confirmationService.confirm({\r\n header: new TranslationPipe().transform(`${trans}.title`, this.translationService.translations),\r\n message: new TranslationPipe().transform(`${trans}.body`, this.translationService.translations),\r\n icon: undefined,\r\n acceptIcon: \"none\",\r\n rejectIcon: \"none\",\r\n rejectButtonStyleClass: \"p-button-text\",\r\n acceptLabel: new TranslationPipe().transform(`ok`, this.translationService.translations),\r\n rejectLabel: new TranslationPipe().transform(`cancel`, this.translationService.translations),\r\n accept: () => {\r\n console.log('Dialog closed')\r\n },\r\n // accept: () => {\r\n // this.messageService.add({ severity: 'info', summary: 'Confirmed', detail: 'You have accepted' });\r\n // },\r\n // reject: () => {\r\n // this.messageService.add({ severity: 'error', summary: 'Rejected', detail: 'You have rejected', life: 3000 });\r\n // }\r\n\r\n });\r\n }\r\n\r\n\r\n openAlert(trans) {\r\n this.confirmationService.confirm({\r\n header: new TranslationPipe().transform(`${trans}.title`, this.translationService.translations),\r\n message: new TranslationPipe().transform(`${trans}.body`, this.translationService.translations),\r\n acceptIcon: \"none\",\r\n rejectIcon: \"none\",\r\n rejectButtonStyleClass: \"p-button-text\",\r\n acceptVisible: true,\r\n rejectVisible: false,\r\n acceptLabel: new TranslationPipe().transform(`ok`, this.translationService.translations)\r\n\r\n });\r\n }\r\n\r\n openRawAlert(titleText, bodyText) {\r\n this.confirmationService.confirm({\r\n message: bodyText,\r\n acceptIcon: \"none\",\r\n rejectIcon: \"none\",\r\n rejectButtonStyleClass: \"p-button-text\",\r\n acceptVisible: true,\r\n rejectVisible: false,\r\n acceptLabel: new TranslationPipe().transform(`ok`, this.translationService.translations)\r\n\r\n });\r\n }\r\n // openConfirm(trans) {\r\n // return this.modal.confirm()\r\n // .title(new TranslationPipe().transform(`${trans}.title`, this.translationService.translations))\r\n // .body(new TranslationPipe().transform(`${trans}.body`, this.translationService.translations))\r\n // .okBtn(new TranslationPipe().transform(`ok`, this.translationService.translations))\r\n // .cancelBtn(new TranslationPipe().transform(`cancel`, this.translationService.translations))\r\n // .open();\r\n // }\r\n\r\n // openAlert(trans) {\r\n // return this.modal.alert()\r\n // .title(new TranslationPipe().transform(`${trans}.title`, this.translationService.translations))\r\n // .body(new TranslationPipe().transform(`${trans}.body`, this.translationService.translations))\r\n // .okBtn(new TranslationPipe().transform(`ok`, this.translationService.translations))\r\n // .open();\r\n // }\r\n\r\n // openRawAlert(titleText, bodyText) {\r\n // return this.modal.alert()\r\n // .title(titleText)\r\n // .body(bodyText)\r\n // .okBtn(new TranslationPipe().transform(`ok`, this.translationService.translations))\r\n // .open();\r\n // }\r\n\r\n\r\n // openComponent(type, model) {\r\n // return this.modal.open(type, overlayConfigFactory(model, BSModalContext));\r\n // }\r\n}\r\n","import { Injectable, signal } from '@angular/core';\r\nimport { ViewTransitionInfo } from '@angular/router';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ViewTransitionService {\r\n\r\n currentTransition = signal<ViewTransitionInfo | null>(null);\r\n\r\n}\r\n","import { Component, Input, ApplicationRef, OnInit, signal, computed, inject, effect, input } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { GlobalService, TranslationSharedService, UserAccountService } from '../../services';\r\nimport { TranslationPipe } from '../../pipes';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\nimport { Observable } from 'rxjs';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SkeletonModule } from 'primeng/skeleton';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { InputText } from \"primeng/inputtext\";\r\nimport { TextareaModule } from 'primeng/textarea';\r\nimport { AutoFocusModule } from 'primeng/autofocus';\r\n\r\n@Component({\r\n selector: 'translate',\r\n standalone: true,\r\n templateUrl: './translation.component.html',\r\n styleUrls: ['./translation.component.css'],\r\n imports: [CommonModule, FormsModule, SkeletonModule, ButtonModule, TextareaModule, AutoFocusModule]\r\n})\r\nexport class TranslationComponent implements OnInit {\r\n\r\n public _name = signal<any>(null);\r\n public name = input<any>('name');\r\n\r\n // @Input('name')\r\n // public set name(value) {\r\n // this._name.set(value);\r\n // this.ngOnInit();\r\n // }\r\n\r\n // public get name() {\r\n // return this._name();\r\n // }\r\n\r\n\r\n\r\n // public _replacements: string[] = [];\r\n public _replacements = signal<any>(null);\r\n replacements = input<any>(null)\r\n public translationService = inject(TranslationSharedService);\r\n public sanitizer = inject(DomSanitizer);\r\n\r\n\r\n public editorOpen = signal(false);\r\n public saveSuccess = signal(false);\r\n public editContent = signal(false);\r\n public content = computed(() => this.sanitizer.bypassSecurityTrustHtml(new TranslationPipe().transform(this.name(), this.translationService.translations, this.replacements)));\r\n public editableContentView = computed(() => this.sanitizer.bypassSecurityTrustHtml(this.editableContent() || this.name()));\r\n public editableContent = signal(null);\r\n public router = inject(Router);\r\n public userService = inject(UserAccountService);\r\n public route = inject(ActivatedRoute)\r\n public globalService = inject(GlobalService)\r\n\r\n constructor() {\r\n (<any>window).angularContext = (<any>window).angularContext || { parentComponent: this };\r\n }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n changeEdit() {\r\n\r\n this.userService.getCurrentUser().subscribe((res) => {\r\n this.editContent.set(this.userService.currentUser().permissions &&\r\n this.userService.currentUser().permissions.indexOf('manageTranslations') >= 0);\r\n if (this.editContent())\r\n this.editableContent.set(this.translationService.translations()[this.name()] || '');\r\n this.editorOpen.set(true);\r\n });\r\n\r\n\r\n }\r\n\r\n // navigateUrl(url: string) {\r\n // this.zone.run(() => {\r\n // this.router.navigateByUrl(url);\r\n // this.appRef.tick();\r\n // });\r\n // }\r\n\r\n openEditor() {\r\n if (!this.translationService.editContent())\r\n return;\r\n }\r\n\r\n closeEditor() {\r\n this.editorOpen.set(false);\r\n }\r\n\r\n quickSaveContent() {\r\n this.translationService.quickSaveHtmlContent(this.name(), this.editableContent()).subscribe((res: any) => {\r\n if (res.result === true) {\r\n this.closeEditor();\r\n }\r\n });\r\n }\r\n\r\n handleSave(e) {\r\n console.log(e);\r\n if (e.ctrlKey && (e.which == 83)) {\r\n e.preventDefault();\r\n this.quickSaveContent();\r\n }\r\n }\r\n}\r\n","@if (translationService.translationsLoaded()) {\r\n<span (click)=\"openEditor()\" style=\"position:relative\">\r\n @if(!editContent()){<span (dblclick)=\"changeEdit()\" [innerHtml]=\"content()\"></span>}\r\n</span>\r\n} @else {\r\n<p-skeleton></p-skeleton>\r\n}\r\n\r\n@if (editContent()) {\r\n<span class=\"html-edit\">\r\n <a class=\"btn-show-edit\" (click)=\"openEditor()\"><i class=\"fa fa-edit\"></i>\r\n {{name()}}</a>\r\n <span (click)=\"openEditor()\" [innerHtml]=\"editableContentView()\"></span>\r\n</span>\r\n}\r\n@if(editorOpen()) {\r\n<div class=\"content-editor\">\r\n <textarea [(ngModel)]=\"editableContent\" pTextarea [pAutoFocus]=\"true\" style=\"resize:none; height: 150px;\" class=\"w-full width: 100%\"\r\n (keydown)=\"handleSave($event)\"></textarea>\r\n\r\n <div class=\"modal-footer\">\r\n @if(saveSuccess()){\r\n <span class=\"text-muted\"><i class=\"fa fa-save\"></i> Datele au fost salvate</span>\r\n }\r\n <button pButton (click)=\"closeEditor()\">Anuleaza</button>\r\n <button pButton (click)=\"quickSaveContent()\">Salveaza modificari</button>\r\n </div>\r\n\r\n <style type=\"text/css\">\r\n body {\r\n margin-bottom: 300px\r\n }\r\n </style>\r\n</div>\r\n}","import { Component, computed, effect, EventEmitter, inject, Input, input, model, OnInit, output, signal } from '@angular/core';\r\nimport { TranslationSharedService } from '../../services';\r\nimport { of, share } from 'rxjs';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SelectModule } from 'primeng/select';\r\nimport { InputGroupModule } from 'primeng/inputgroup';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\n\r\n@Component({\r\n selector: 'payvent-international-phone',\r\n standalone: true,\r\n templateUrl: './international-phone.component.html',\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n SelectModule,\r\n InputGroupModule,\r\n InputTextModule,\r\n // CardModule,\r\n // RippleModule,\r\n // ButtonModule,\r\n // DropdownModule,\r\n // CheckboxModule,\r\n // TagModule,\r\n // AvatarModule,\r\n // AvatarGroupModule,\r\n ],\r\n styleUrls: ['./international-phone.component.css']\r\n})\r\nexport class InternationalPhoneComponent implements OnInit {\r\n public countriesList: any[] = [];\r\n countryFlag: string;\r\n localizationCountry: any;\r\n selectedCountryCode = signal<any>(null);\r\n public phoneNo: any;\r\n //private _phoneNumber = computed(() => this.phoneNumber());\r\n // private _phoneNumber = signal('')\r\n countriesObs: any;\r\n selectedCountry: any;\r\n\r\n\r\n private _phoneNumber = signal<string>('');\r\n public phoneNumber = model<any>(null);\r\n\r\n // private _phoneNumber: string;\r\n // @Input()\r\n // public set phoneNumber(value) {\r\n // this._phoneNumber = value;\r\n // this.onPhoneInput(this._phoneNumber);\r\n // }\r\n\r\n\r\n public get currentPhoneNumber() {\r\n let phoneDialCode = this.countriesList.find(ctr => ctr.code == this.selectedCountryCode()).dialCode\r\n\r\n if (this.phoneNo && phoneDialCode) {\r\n return phoneDialCode + this.phoneNo;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n phoneNumberChange = output<any>();\r\n // @Output()\r\n // phoneNumberChange = new EventEmitter(true)\r\n\r\n public translationService = inject(TranslationSharedService)\r\n\r\n constructor(\r\n ) {\r\n\r\n // effect(() => {\r\n // this._phoneNumber.set(this.phoneNumber() || '');\r\n // this.onPhoneInput(this._phoneNumber());\r\n // });\r\n\r\n effect(() => {\r\n this._phoneNumber.set(this.phoneNumber() || '')\r\n this.onPhoneInput(this._phoneNumber())\r\n }, { allowSignalWrites: true });\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.getCountries();\r\n this.getFlagEmoji(this.countriesList);\r\n console.log(this.countriesList)\r\n\r\n\r\n }\r\n\r\n getCountries() {\r\n if (this.countriesList.length > 0)\r\n return of(this.countriesList);\r\n this.countriesObs = this.translationService.getCountries().pipe(share());\r\n this.countriesObs.subscribe(async res => {\r\n if (!this.selectedCountryCode()) {\r\n let r = await this.translationService.getLocalization()\r\n\r\n this.countriesList = res.result;\r\n this.countriesList.forEach(c => c.displayName = `${c.name} ${this.getFlagEmoji(c.code)} (${c.dialCode})`);\r\n this.localizationCountry = r.result.country\r\n\r\n if (this.localizationCountry)\r\n this.onSelectionChange(this.localizationCountry);\r\n\r\n }\r\n });\r\n return this.countriesObs;\r\n }\r\n\r\n\r\n onSelectionChange(selectedCode): void {\r\n if (!selectedCode) return;\r\n this.selectedCountry = this.countriesList.find(c => c.code == selectedCode)\r\n console.log(this.selectedCountry);\r\n this.selectedCountryCode.set(this.selectedCountry.code);\r\n\r\n\r\n\r\n }\r\n\r\n changePhoneNumber() {\r\n if (this._phoneNumber() != this.currentPhoneNumber) {\r\n this._phoneNumber.set(this.currentPhoneNumber);\r\n this.phoneNumberChange.emit(this.currentPhoneNumber);\r\n }\r\n }\r\n\r\n onPaste(pastedText) {\r\n this.onPhoneInput(pastedText.data);\r\n }\r\n onPhoneInput(pastedNumber = this.phoneNo) {\r\n this.getCountries().subscribe(c => {\r\n\r\n this.onSelectionChange(this.selectedCountryCode());\r\n\r\n if (!pastedNumber)\r\n return;\r\n\r\n pastedNumber = pastedNumber.replace(/[^0-9+]/g, '');\r\n\r\n let matchingCountry = this.countriesList.find(c => {\r\n return c.dialCode == pastedNumber.substring(0, c.dialCode.length);\r\n });\r\n if (matchingCountry) {\r\n this.phoneNo = pastedNumber.slice(matchingCountry.dialCode.length).trim();\r\n this.onSelectionChange(matchingCountry.code);\r\n\r\n }\r\n\r\n this.changePhoneNumber();\r\n });\r\n\r\n }\r\n\r\n\r\n getFlagEmoji(countryCodeFlag) {\r\n if (countryCodeFlag.length < 2) {\r\n return \"\";\r\n }\r\n\r\n this.countryFlag =\r\n [...countryCodeFlag?.toUpperCase()]\r\n .map((char) => String.fromCodePoint(127397 + char.charCodeAt(0)))\r\n .reduce((a, b) => `${a}${b}`);\r\n return this.countryFlag\r\n\r\n }\r\n\r\n\r\n\r\n}\r\n","<div class=\"mb-3\">\r\n <p-inputgroup>\r\n <p-select style=\"min-width:120px; flex:0\" resetFilterOnHide=\"true\" optionLabel=\"dialCode\" filter=\"true\"\r\n optionValue=\"code\" placeholder=\"--\" [options]=\"countriesList\" name=\"country\" [(ngModel)]=\"selectedCountryCode\"\r\n (onChange)=\"onPhoneInput()\" #country=\"ngModel\">\r\n <ng-template let-country #item>\r\n <div class=\"flex items-center gap-2\">\r\n <img [src]=\"'/assets/ngx-payvent-shared/flags/' + country.code.toLowerCase() + '.png'\"\r\n [class]=\"'flag flag-' + country.code.toLowerCase()\" style=\"width: 18px\" />\r\n <div>({{ country.dialCode }}) {{ country.name }}</div>\r\n </div>\r\n </ng-template>\r\n <ng-template let-country #selectedItem>\r\n <div class=\"flex items-center gap-2\">\r\n <img [src]=\"'/assets/ngx-payvent-shared/flags/' + country.code.toLowerCase() + '.png'\"\r\n [class]=\"'flag flag-' + country.code.toLowerCase()\" style=\"width: 18px\" />\r\n <div>{{ country.dialCode }}</div>\r\n </div>\r\n </ng-template>\r\n </p-select>\r\n <input style=\"border-radius: 0 6px 6px 0; border-left-width: 0;\" fluid=\"true\" pInputText type=\"phone\"\r\n [(ngModel)]=\"phoneNo\" (input)=\"onPhoneInput()\" phone class=\"form-control\" #phone=\"ngModel\"\r\n (paste)=\"onPaste($event)\" name=\"phone\" placeholder=\"Please enter phone number\" />\r\n </p-inputgroup>\r\n</div>","import { Component, EventEmitter, inject, input, Input, OnInit, Output, Self, signal } from '@angular/core';\r\nimport { TranslationSharedService } from '../../services';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { TranslationComponent } from '../translation/translation.component';\r\nimport { TranslationPipe } from '../../pipes';\r\nimport { OrderModule } from 'ngx-order-pipe';\r\nimport { SelectModule } from 'primeng/select';\r\nimport { InputText } from \"primeng/inputtext\";\r\n\r\n\r\n@Component({\r\n selector: 'payvent-country-province-city',\r\n standalone: true,\r\n templateUrl: './country-province-city.component.html',\r\n styleUrls: ['./country-province-city.component.css'],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n TranslationPipe,\r\n OrderModule,\r\n SelectModule,\r\n InputText\r\n ]\r\n})\r\nexport class CountryProvinceCityComponent implements OnInit {\r\n public translationService = inject(TranslationSharedService);\r\n\r\n public correlation = input<string>('country-province-city');\r\n\r\n public mode = input<string>('country');\r\n private _currentProvinceName: any;\r\n currentCountryCode: any;\r\n currentProvinceCode: any;\r\n\r\n public set currentProvinceName(value) {\r\n this._currentProvinceName = value;\r\n }\r\n\r\n public get currentProvinceName() {\r\n return this._currentProvinceName;\r\n }\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.translationService.countryProvinceCityPlaceholder.update(ctx => {\r\n ctx[this.correlation()] = ctx[this.correlation()] || {};\r\n return ctx;\r\n });\r\n }\r\n\r\n // emitOutput() {\r\n // this.valueChange.emit({ countryCode: this.currentCountryCode, countryName: this.currentCountryName, provinceCode: this.currentProvinceCode, provinceName: this.currentProvinceName });\r\n // }\r\n\r\n setCountry() {\r\n this.translationService.countryProvinceCityPlaceholder.update(p => {\r\n p[this.correlation()] =\r\n {\r\n ...p[this.correlation()],\r\n provinceCode: undefined,\r\n provinceName: undefined,\r\n currentProvince: undefined,\r\n city: undefined\r\n };\r\n return p;\r\n });\r\n this.translationService.setCountryCityPlaceholder(this.correlation(), this.translationService.countryProvinceCityPlaceholder()[this.correlation()]);\r\n }\r\n\r\n setProvince() {\r\n this.translationService.countryProvinceCityPlaceholder.update(p => {\r\n p[this.correlation()] = {\r\n ...p[this.correlation()],\r\n city: undefined\r\n };\r\n return p;\r\n });\r\n\r\n this.translationService.setCountryCityPlaceholder(this.correlation(), this.translationService.countryProvinceCityPlaceholder()[this.correlation()]);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.translationService.countryProvinceCityPlaceholder[this.correlation()] = undefined;\r\n }\r\n\r\n\r\n}\r\n","@if (mode() == 'country') {\r\n<p-select (onChange)=\"setCountry()\" filter=\"true\" optionValue=\"code\" optionLabel=\"name\" resetFilterOnHide=\"true\"\r\n placeholder=\"{{'pleaseSelect' | translation: translationService.translations}}\" fluid\r\n [options]=\"translationService.countries()\"\r\n [(ngModel)]=\"translationService.countryProvinceCityPlaceholder()[this.correlation()].countryCode\"\r\n class=\"form-control\">\r\n <ng-template let-country #item>\r\n <div class=\"flex items-center gap-2\">\r\n <img [src]=\"'/assets/ngx-payvent-shared/flags/' + country.code.toLowerCase() + '.png'\"\r\n [class]=\"'flag flag-' + country.code.toLowerCase()\" style=\"width: 18px\" />\r\n <div>{{ country.name }}</div>\r\n </div>\r\n </ng-template>\r\n <ng-template let-country #selectedItem>\r\n <div class=\"flex items-center gap-2\">\r\n <img [src]=\"'/assets/ngx-payvent-shared/flags/' + country.code.toLowerCase() + '.png'\"\r\n [class]=\"'flag flag-' + country.code.toLowerCase()\" style=\"width: 18px\" />\r\n <div>{{ country.name }}</div>\r\n </div>\r\n </ng-template>\r\n</p-select>\r\n}\r\n\r\n@if(mode()=='province') {\r\n@if(translationService.countryProvinceCityPlaceholder()[this.correlation()]?.currentCountry?.provinces?.length > 0) {\r\n\r\n<p-select placeholder=\"{{'pleaseSelect' | translation: translationService.translations}}\" (onChange)=\"setProvince()\"\r\n resetFilterOnHide=\"true\" filter=\"true\" fluid optionValue=\"code\" optionLabel=\"name\"\r\n [options]=\"translationService.countryProvinceCityPlaceholder()[this.correlation()].currentCountry?.provinces | orderBy: 'name'\"\r\n [(ngModel)]=\"translationService.countryProvinceCityPlaceholder()[this.correlation()].provinceCode\">\r\n</p-select>\r\n}\r\n\r\n@if(!(translationService.countryProvinceCityPlaceholder()[this.correlation()].currentCountry?.provinces?.length > 0)) {\r\n<input type=\"text\" pInputText fluid\r\n [(ngModel)]=\"translationService.countryProvinceCityPlaceholder()[this.correlation()].provinceName\"\r\n class=\"form-control\" #currentPName=\"ngModel\" name=\"currentPName\" required />\r\n}\r\n}\r\n\r\n@if(mode()=='city') {\r\n@if(translationService.countryProvinceCityPlaceholder()[this.correlation()].currentProvince?.cities?.length > 0) {\r\n\r\n<p-select fluid placeholder=\"{{'pleaseSelect' | translation: translationService.translations}}\"\r\n [options]=\"translationService.countryProvinceCityPlaceholder()[this.correlation()].currentProvince?.cities\"\r\n [(ngModel)]=\"translationService.countryProvinceCityPlaceholder()[this.correlation()].city\">\r\n</p-select>\r\n}\r\n\r\n@if(!(translationService.countryProvinceCityPlaceholder()[this.correlation()].currentProvince?.cities?.length > 0)) {\r\n\r\n<input type=\"text\" [(ngModel)]=\"translationService.countryProvinceCityPlaceholder()[this.correlation()].city\"\r\n class=\"form-control\" #currentC=\"ngModel\" name=\"currentC\" pInputText fluid required />\r\n}\r\n}","import { Component, inject, input, Input, model, NgZone, OnInit, signal, ViewChild } from '@angular/core';\r\nimport { FormsModule, NgForm } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { FlowCookieService, FlowHttpClient, GlobalService, SidebarService, TranslationSharedService, UserAccountService } from '../../services';\r\nimport { FlowAppConfig } from '../../../flowAppConfig';\r\nimport { TranslationComponent } from '../translation/translation.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { InternationalPhoneComponent } from '../international-phone/international-phone.component';\r\nimport { CountryProvinceCityComponent } from '../country-province-city/country-province-city.component';\r\nimport { InputText } from 'primeng/inputtext';\r\nimport { InputOtp } from 'primeng/inputotp';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { SidebarContext } from '../../misc';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\n\r\n\r\ndeclare var window;\r\n\r\n@Component({\r\n selector: 'payvent-login-form',\r\n templateUrl: './login-form.component.html',\r\n styleUrls: ['./login-form.component.css'],\r\n standalone: true,\r\n imports: [\r\n TranslationComponent,\r\n CommonModule,\r\n FormsModule,\r\n InternationalPhoneComponent,\r\n CountryProvinceCityComponent,\r\n InputText,\r\n InputOtp,\r\n ButtonModule,\r\n CheckboxModule\r\n ]\r\n})\r\nexport class LoginFormComponent extends SidebarContext implements OnInit {\r\n\r\n @ViewChild('myForm', { static: false })\r\n private myForm: NgForm;\r\n // @ViewChild('cd', { static: false }) private countdown: CountdownComponent;\r\n\r\n public allowAccountCreation: boolean = true;\r\n public tokenType = input<string>('TEMPORARY');\r\n public clientId = input<string | null>(null);\r\n public type = input<string>('EMAIL');\r\n public showError = signal<boolean>(false);\r\n public loginMessage: string;\r\n public env: any;\r\n public status: string;\r\n public cordova: any;\r\n public loginSubscription: any;\r\n public accessRefused = signal<boolean>(false);\r\n public emailSent: boolean;\r\n public verifyPhone: boolean;\r\n public provincesList: any[] = [];\r\n public countriesList: any[] = [];\r\n loading = signal<boolean>(false);\r\n otpLoading = signal<boolean>(false);\r\n otpSuccess = signal<boolean>(false);\r\n contextResponse: any;\r\n responseStatus: any;\r\n otpError = signal<boolean>(false);\r\n otpSent: any;\r\n verified: any;\r\n otpVerified = signal<boolean>(false);\r\n loginToken: any;\r\n userProfile: any;\r\n emailOtp: any;\r\n phoneOtp: any;\r\n prevContext: any = {};\r\n countryFlag: string;\r\n localizationCountry: any;\r\n selectedCountryCode: any;\r\n phoneLoginNumber: any;\r\n profileCountryCode: any;\r\n currentCountry: any;\r\n currentProvince: any;\r\n showResend = signal<boolean>(true);\r\n public expTimestamp: any;\r\n\r\n public countdownConfig: any = {};\r\n\r\n\r\n\r\n public get passwordError() {\r\n if (!this.context().password)\r\n return 'error.login-form.password';\r\n if (this.context().password.length < 6)\r\n return 'error.login-form.password-length';\r\n\r\n return null;\r\n }\r\n\r\n public userService = inject(UserAccountService);\r\n public sidebarService = inject(SidebarService);\r\n public router = inject(Router);\r\n public http = inject(HttpClient);\r\n public translationService = inject(TranslationSharedService);\r\n private environment = inject(FlowAppConfig);\r\n\r\n public httpClient = inject(FlowHttpClient);\r\n // public platform: Platform,\r\n public cookieService = inject(FlowCookieService);\r\n public globalService = inject(GlobalService);\r\n constructor(\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n var result: any = {};\r\n this.context.update(ctx => ({\r\n ...ctx,\r\n user: {},\r\n type: ctx.type ?? this.type(),\r\n tokenType: ctx.tokenType ?? this.tokenType(),\r\n action: ctx.action ?? 'LOGIN',\r\n allowAccountCreation: typeof ctx.allowAccountCreation == 'boolean' ? ctx.allowAccountCreation : this.allowAccountCreation\r\n }));\r\n console.log(this.context());\r\n\r\n this.userService.onAccessRefused.subscribe(res => {\r\n this.resetContext();\r\n this.accessRefused.set(true);\r\n });\r\n\r\n this.env = this.environment;\r\n this.cordova = window.cordova;\r\n if (!this.userService.redirectTo)\r\n this.userService.redirectTo = this.context().returnUrl || window.location.pathname + window.location.search;\r\n\r\n\r\n (<any>window).login = (<any>window).login || this;\r\n\r\n if (this.context().otpType == 'EMAIL') {\r\n this.context.update(ctx => ({\r\n ...ctx,\r\n otp: this.emailOtp\r\n }));\r\n }\r\n\r\n if (this.context().otpType == 'PHONE') {\r\n this.context.update(ctx => ({\r\n ...ctx,\r\n otp: this.phoneOtp\r\n }));\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.loginSubscription)\r\n this.loginSubscription.unsubscribe();\r\n\r\n window.login = null;\r\n }\r\n\r\n\r\n\r\n openConsent(evt, item) {\r\n console.log(evt);\r\n evt.stopPropagation();\r\n // this.http.get(item.contentUrl, { responseType: 'text' }).subscribe(r => {\r\n // this.modalService.openRawAlert(new TranslationPipe().transform('consentTitle.' + item.name, this.translationService.translations), r);\r\n // });\r\n }\r\n\r\n recover() {\r\n this.context.update(ctx => ({\r\n ...ctx,\r\n action: 'RECOVER',\r\n type: ctx.type == 'EMAIL' ? 'PHONE' : 'EMAIL'\r\n }));\r\n }\r\n\r\n getOtp() {\r\n this.showError.set(false);\r\n this.loading.set(true);\r\n this.context.update(ctx => ({ ...ctx, errorMessage: null }));\r\n // this.showResend = false;\r\n\r\n\r\n if (this.myForm && !this.myForm.valid) {\r\n this.showError.set(true);\r\n this.loading.set(false);\r\n this.globalService.onError.emit();\r\n return;\r\n }\r\n\r\n this.context.update(ctx => ({\r\n ...ctx,\r\n clientName: this.environment.client_id,\r\n allowAccountCreation: this.allowAccountCreation\r\n }));\r\n\r\n this.userService.getOtp(this.context()).subscribe(async res => {\r\n console.log(res.result.type);\r\n\r\n this.loading.set(false);\r\n if (res.result.status == 'otp_verified') {\r\n this.otpSuccess.set(true);\r\n this.globalService.onSuccess.emit();\r\n if (res.result.type == 'TOKEN') {\r\n this.userService.processOtpToken(res.result);\r\n return;\r\n }\r\n if (res.result.type == 'DATA') {\r\n console.log(\r\n {\r\n countryCode: res.result.user?.countryCode || (await this.translationService.getLocalization()).result.country,\r\n provinceCode: res.result.user?.provinceCode,\r\n provinceName: res.result.user?.province,\r\n city: res.result.user?.city\r\n }\r\n );\r\n this.translationService.setCountryCityPlaceholder('login-form', {\r\n countryCode: res.result.user?.countryCode || (await this.translationService.getLocalization()).result.country,\r\n provinceCode: res.result.user?.provinceCode,\r\n provinceName: res.result.user?.province,\r\n city: res.result.user?.city\r\n });\r\n\r\n }\r\n }\r\n this.prevContext = this.context();\r\n this.context.set(res.result);\r\n console.log(this.context);\r\n this.countdownConfig = { leftTime: 30, format: 'ss' };\r\n\r\n if (this.context().status == 'error') {\r\n this.globalService.onError.emit();\r\n }\r\n\r\n if (this.context().errorMessage == 'duplicate_phone') {\r\n this.globalService.onError.emit();\r\n console.log('duplicate_phone')\r\n return;\r\n }\r\n\r\n\r\n })\r\n }\r\n\r\n\r\n verifyOtp(val) {\r\n if (val?.value.length < 6)\r\n return;\r\n\r\n this.context.update(ctx => ({\r\n ...ctx,\r\n errorMessage: null,\r\n clientName: this.environment.client_id,\r\n status: 'otp_sent',\r\n }));\r\n\r\n this.otpLoading.set(true);\r\n\r\n this.otpError.set(false);\r\n this.otpSuccess.set(false);\r\n\r\n this.userService.verifyOtp(this.context()).subscribe(async r => {\r\n if (r.result.status == 'otp_verified') {\r\n this.otpSuccess.set(true);\r\n\r\n if (r.result.type == 'TOKEN') {\r\n this.userService.processOtpToken(r.result);\r\n return;\r\n }\r\n if (r.result.action == 'CHANGELOGINNAME' && r.result.status == 'login_name_changed') {\r\n this.userService.currentUser = r.result.user;\r\n this.userService.onUserLoggedIn.emit({ action: this.context().action, user: r.result.user });\r\n return;\r\n }\r\n\r\n if (r.result.type == 'DATA') {\r\n this.translationService.setCountryCityPlaceholder('login-form', {\r\n countryCode: r.result.user?.countryCode || (await this.translationService.getLocalization()).result.country,\r\n provinceCode: r.result.user?.provinceCode,\r\n provinceName: r.result.user?.province,\r\n city: r.result.user?.city\r\n });\r\n }\r\n\r\n }\r\n\r\n this.otpLoading.set(false);\r\n\r\n this.context.set(r.result);\r\n\r\n if (this.context().errorMessage == 'wrong_code') {\r\n // this.context.update(ctx => ({\r\n // ...ctx,\r\n // otp: null\r\n // }));\r\n this.emailOtp = null;\r\n this.phoneOtp = null;\r\n this.otpError.set(true);\r\n }\r\n\r\n\r\n\r\n\r\n })\r\n }\r\n\r\n countdownEvent(evt) {\r\n if (evt.action == 'finished' || evt.action == 'done') {\r\n // this.showResend = true;\r\n }\r\n }\r\n\r\n resendOtp() {\r\n this.loading.set(true);\r\n this.userService.resendOtp(this.context()).subscribe(res => {\r\n this.loading.set(false);\r\n\r\n if (res.result.status == 'error') {\r\n this.context().errorMessage = res.result.errorMessage;\r\n this.globalService.onError.emit();\r\n }\r\n else {\r\n this.globalService.onSuccess.emit();\r\n // this.showResend = false;\r\n this.context.set(res.result);\r\n this.countdownConfig = { leftTime: 30, format: 'ss' };\r\n\r\n }\r\n })\r\n }\r\n\r\n saveUser() {\r\n\r\n this.translationService.validateCountryProvinceCity('login-form')\r\n let countryProvinceCity = this.translationService.countryProvinceCityPlaceholder()['login-form']\r\n\r\n this.showError.set(false);\r\n if ((this.myForm && !this.myForm.valid) || this.context().user.consents.find(c => c.required && !c.consented) || countryProvinceCity.countryError || countryProvinceCity.provinceError || countryProvinceCity.cityError) {\r\n this.globalService.onError.emit();\r\n this.showError.set(true);\r\n return;\r\n }\r\n\r\n this.context().errorMessage = null;\r\n\r\n let cpc = this.translationService.getCountryCityPlaceholder('login-form');\r\n this.context.update(ctx => ({\r\n ...ctx,\r\n user: {\r\n ...ctx.user,\r\n countryCode: cpc.countryCode,\r\n country: cpc.countryName,\r\n provinceCode: cpc.provinceCode,\r\n province: cpc.provinceName,\r\n city: cpc.city\r\n }\r\n }));\r\n\r\n\r\n this.userService.saveUserProfile(this.context()).subscribe(r => {\r\n this.userService.processOtpToken(r.result);\r\n })\r\n }\r\n resetContext() {\r\n this.prevContext.token = null;\r\n this.prevContext.loginName = null;\r\n this.context.set(this.prevContext);\r\n }\r\n\r\n resetContextData() {\r\n\r\n\r\n }\r\n\r\n submitRegister() {\r\n this.context.update(ctx => ({\r\n ...ctx,\r\n token: this.loginToken,\r\n errorMessage: null\r\n }));\r\n\r\n this.userService.verifyOtp(this.context()).subscribe(r => {\r\n this.context.set(r.result);\r\n if (r.result.status == 'error')\r\n this.globalService.onError.emit();\r\n else\r\n this.globalService.onSuccess.emit();\r\n })\r\n }\r\n\r\n\r\n\r\n remove() {\r\n this.cookieService.remove('userAccount');\r\n this.resetContext();\r\n }\r\n\r\n\r\n\r\n}\r\n","<div class=\"login-component\">\r\n @if (accessRefused()) {\r\n <div class=\"alert alert-danger\">\r\n <translate name=\"login-form.access-refused\"></translate>\r\n </div>\r\n }\r\n\r\n <form novalidate #myForm=\"ngForm\">\r\n\r\n @if (context().type == 'EMAIL' && !['otp_sent', 'login_name_changed'].includes(context().status) &&\r\n context().errorMessage != 'wrong_code' ){\r\n <div class=\"mb-3\">\r\n <div class=\"mb-1\">\r\n <translate [name]=\"'login-form.email.' + context().action.toLowerCase()\"></translate>\r\n </div>\r\n <input type=\"email\" [(ngModel)]=\"context().loginName\" pInputText email class=\"form-control\" #email=\"ngModel\"\r\n name=\"email\" required fluid=\"true\" />\r\n @if(context().action=='LOGIN') {\r\n <a (click)=\"recover()\">\r\n <translate name=\"login-form.no-email-access\"></translate>\r\n </a>\r\n }\r\n\r\n @if(!email.valid && showError()) {\r\n <div class=\"text-danger\">\r\n <span class=\"material-symbols mr-1\">info</span>\r\n <translate name=\"error.login-form.email\"></translate>\r\n </div>\r\n }\r\n @if (context().errorMessage) {\r\n <div class=\"mb-2 text-danger\">\r\n <span class=\"material-symbols mr-1\">info</span>\r\n <translate [name]=\"'login-form.error.' + context().errorMessage\"></translate>\r\n </div>\r\n }\r\n </div>\r\n <button pButton fluid=\"true\" [loading]=\"loading()\" (click)=\"getOtp()\">\r\n <translate [name]=\"'login-form.submit-email.' + context().action.toLowerCase()\"></translate>\r\n </button>\r\n }\r\n\r\n\r\n @if (context().status == 'otp_sent' || context().errorMessage == 'wrong_code') {\r\n <div style=\"position:relative\">\r\n @if (otpLoading()) {\r\n <div class=\"loader-container\">\r\n <div class=\"loader\"></div>\r\n </div>\r\n }\r\n <div class=\"mb-2\">\r\n <translate name=\"login-form.enter_otp_code\" [replacements]=\"[context().loginNameMasked]\"></translate>\r\n </div>\r\n <div class=\"mb-2\">\r\n <p-inputotp [disabled]=\"loading()\" [(ngModel)]=\"context().otp\" size=\"large\" [length]=\"6\" [autofocus]=\"true\"\r\n (onChange)=\"verifyOtp($event)\" name=\"inputOtp\" class=\"justify-center my-4\"></p-inputotp>\r\n </div>\r\n @if (context().errorMessage) {\r\n <div class=\"mb-2 text-danger\">\r\n <span class=\"material-symbols mr-1\">info</span>\r\n <translate [name]=\"'login-form.error.' + context().errorMessage\"></translate>\r\n </div>\r\n }\r\n @if(!showResend()) {\r\n <translate name=\"login-form.resend-code.in-sec\"></translate>\r\n <!-- <countdown #cd [config]=\"countdownConfig\" (event)=\"countdownEvent($event)\">$!s!</countdown> sec -->\r\n }\r\n\r\n @if(showResend()) {\r\n <button pButton [loading]=\"loading()\" fluid=\"true\" class=\"mb-1\" (click)=\"resendOtp()\">\r\n <translate name=\"login-form.resend-otp\"></translate>\r\n </button>\r\n }\r\n </div>\r\n\r\n }\r\n\r\n\r\n @if (context().type == 'PHONE' && !['otp_sent', 'login_name_changed'].includes(context().status) &&\r\n context().errorMessage != 'wrong_code') {\r\n <div class=\"mb-2\">\r\n <div class=\"mb-2\">\r\n <label class=\"login-label\">\r\n <translate [name]=\"'login-form.phone.' + context().action.toLowerCase()\"></translate>\r\n </label>\r\n </div>\r\n <payvent-international-phone [(phoneNumber)]=\"context().loginName\" name=\"phone\"\r\n ngDefaultControl></payvent-international-phone>\r\n\r\n @if (showError()) {\r\n <div class=\"text-danger\">\r\n <span class=\"material-symbols mr-1\">info</span>\r\n <translate name=\"error.login-form.phone\"></translate>\r\n </div>\r\n }\r\n\r\n @if (context().status=='duplicate_phone') {\r\n <div class=\"text-danger\">\r\n <span class=\"material-symbols mr-1\">info</span>\r\n <translate name=\"error.login-form.duplicate_phone\"></translate>\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"mr-2\">\r\n <button pButton fluid=\"true\" [loading]=\"loading()\" (click)=\"getOtp()\">\r\n <translate [name]=\"'login-form.submit-phone.' + context().action.toLowerCase()\"></translate>\r\n </button>\r\n </div>\r\n }\r\n\r\n @if (context().type=='DATA') {\r\n <div class=\"mb-2\">\r\n <div class=\"text-center mb-2\">\r\n <label class=\"login-label\">\r\n <translate name=\"login-form.profile-data.login\"></translate>\r\n </label>\r\n </div>\r\n\r\n <div class=\"mb-2\">\r\n <div class=\"mb-1\">\r\n <translate name=\"login-form.email\"></translate>\r\n </div>\r\n <input type=\"email\" pInputText [(ngModel)]=\"context().user.email\" fluid #email=\"ngModel\" name=\"email\"\r\n disabled />\r\n </div>\r\n <div class=\"mb-2 name-group\">\r\n <div class=\"first\">\r\n <div class=\"mb-1\">\r\n <translate name=\"login-form.firstName\"></translate>\r\n </div>\r\n <input type=\"text\" pInputText [(ngModel)]=\"context().user.firstName\" fluid #firstName=\"ngModel\"\r\n name=\"firstName\" required />\r\n @if (!firstName.valid && showError()){\r\n <div class=\"text-danger\">\r\n <span class=\"material-symbols mr-1\">info</span>\r\n <translate name=\"error.login-form.firstName\"></translate>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"second\">\r\n <div class=\"mb-1\">\r\n <translate name=\"login-form.lastName\"></translate>\r\n </div>\r\n <input type=\"text\" [(ngModel)]=\"context().user.lastName\" fluid pInputText #lastName=\"ngModel\" name=\"lastName\"\r\n required />\r\n @if (!lastName.valid && showError()){\r\n <div class=\"text-danger\">\r\n <span class=\"material-symbols mr-1\">info</span>\r\n <translate name=\"error.login-form.lastName\"></translate>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n\r\n <div class=\"mb-2\">\r\n <div class=\"mb-1\">\r\n <translate name=\"login-form.phone\"></translate>\r\n </div>\r\n <input type=\"phone\" [(ngModel)]=\"context().user.phoneNumber\" fluid pInputText #phone=\"ngModel\" name=\"phone\"\r\n disabled />\r\n </div>\r\n\r\n\r\n <div class=\"mb-2\">\r\n <div class=\"mb-1\">\r\n <translate name=\"login-form.country\"></translate>\r\n </div>\r\n <payvent-country-province-city mode=\"country\" correlation=\"login-form\"></payvent-country-province-city>\r\n @if(translationService.countryProvinceCityPlaceholder()['login-form'].countryError) {\r\n <div class=\"text-danger\">\r\n <span class=\"material-symbols mr-1\">info</span>\r\n <translate name=\"error.login-form.country\"></translate>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"mb-2\">\r\n <div class=\"mb-1\">\r\n <translate name=\"login-form.province\"></translate>\r\n </div>\r\n <payvent-country-province-city mode=\"province\" correlation=\"login-form\"></payvent-country-province-city>\r\n\r\n @if(translationService.countryProvinceCityPlaceholder()['login-form'].provinceError) {\r\n <div class=\"text-danger\">\r\n <span class=\"material-symbols mr-1\">info</span>\r\n <translate name=\"error.login-form.province\"></translate>\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"mb-2\">\r\n <div class=\"mb-1\">\r\n <translate name=\"login-form.city\"></translate>\r\n </div>\r\n <payvent-country-province-city mode=\"city\" correlation=\"login-form\"></payvent-country-province-city>\r\n @if(translationService.countryProvinceCityPlaceholder()['login-form'].cityError) {\r\n <div class=\"text-danger\">\r\n <span class=\"material-symbols mr-1\">info</span>\r\n <translate name=\"error.login-form.city\"></translate>\r\n </div>\r\n }\r\n </div>\r\n\r\n @if (context().user.consents.length > 0) {\r\n <div class=\"my-4\">\r\n @for(item of context().user.consents; track item.id) {\r\n <div class=\"mb-2 flex items-center gap-2\">\r\n <p-checkbox [inputId]=\"item.name\" [name]=\"item.name\" [binary]=\"true\" [(ngModel)]=\"item.consented\" />\r\n <label [for]=\"item.name\">\r\n <translate name=\"login-form.consent\"></translate>\r\n </label>\r\n <a (click)=\"openConsent($event, item)\">\r\n <translate [name]=\"'consent.' + item.name\"></translate>\r\n </a>\r\n </div>\r\n @if(!item.consented && item.required && showError()) {\r\n <div class=\"text-danger mb-2\">\r\n <span class=\"material-symbols mr-1\">info</span>\r\n <translate [name]=\"'consentError.' + item.name\"></translate>\r\n </div>\r\n }\r\n\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n </form>\r\n\r\n\r\n <div class=\"my-2\">\r\n @if (context().type == 'DATA') {\r\n <button pButton fluid (click)=\"saveUser()\">\r\n <translate name=\"login-form.save-changes\"></translate>\r\n </button>\r\n }\r\n </div>\r\n\r\n @if (context().status && context().status != 'client_not_found' && context().status != 'login_name_changed' &&\r\n context().status != 'otp_verified' && !loading()) {\r\n <div class=\"mb-2\">\r\n <button pButton severity=\"secondary\" outlined=\"true\" fluid=\"true\" (click)=\"resetContext()\">\r\n <translate name=\"login-form.back\"></translate>\r\n </button>\r\n </div>\r\n }\r\n\r\n @if(context().action=='VERIFYRECOVER' && context().type=='TOKEN') {\r\n <translate name=\"login-form.recover_success\"></translate>\r\n }\r\n\r\n @if(context().action=='CHANGELOGINNAME' && context().status=='login_name_changed') {\r\n <translate [name]=\"'login-form.login_name_changed.' + context().type.toLowerCase()\"></translate>\r\n }\r\n\r\n</div>","import { Component, inject, ViewEncapsulation } from '@angular/core';\r\nimport { FlowCookieService } from '../../services/cookie/cookie.service';\r\nimport { GlobalService } from '../../services';\r\nimport { TranslationComponent } from '../translation/translation.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CardModule } from 'primeng/card';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { StyleClassModule } from 'primeng/styleclass';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'cookie-bar',\r\n templateUrl: './cookie-bar.component.html',\r\n styleUrls: ['./cookie-bar.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n TranslationComponent,\r\n CardModule,\r\n ButtonModule,\r\n StyleClassModule \r\n\r\n // FormsModule,\r\n // RouterModule,\r\n // InputTextModule,\r\n // RippleModule,\r\n // ButtonModule,\r\n // DropdownModule,\r\n // CheckboxModule,\r\n // TagModule,\r\n // CompareDirective\r\n ]\r\n})\r\nexport class CookieBarComponent {\r\n\r\n public get isPrerender() {\r\n return window.navigator.userAgent.includes('prerender');\r\n }\r\n\r\n cookieService = inject(FlowCookieService);\r\n gs = inject(GlobalService);\r\n\r\n constructor(\r\n ) { }\r\n\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n acceptCookies(){\r\n this.cookieService.gdprConsent = '1';\r\n\r\n }\r\n\r\n rejectCookies(){\r\n this.cookieService.gdprConsent = '0';\r\n }\r\n\r\n}\r\n","@if(!cookieService.gdprConsent && !isPrerender){\r\n<div class=\"flow-cookie-bar-overlay\">\r\n <div class=\"flow-cookie-bar-alert\">\r\n <div style=\"padding: 10px;\">\r\n\r\n <div style=\"margin-bottom: 10px;\">\r\n <translate name=\"cookie-bar.text\"></translate>\r\n </div>\r\n <!-- <a pButton pRipple class=\"p-button-link\" (click)=\"acceptCookies()\">\r\n <translate name=\"cookie-bar.accept\"></translate>\r\n </a> -->\r\n\r\n <!-- <button pButton pRipple class=\"w-full\" (click)=\"acceptCookies()\">\r\n <translate name=\"cookie-bar.accept\"></translate>\r\n </button> -->\r\n\r\n <!-- <div class=\"mb-3\">\r\n <button class=\"w-full\" severity=\"secondary\" pRipple pButton (click)=\"acceptCookies()\">\r\n <translate name=\"cookie-bar.accept\"></translate>\r\n </button>\r\n </div> -->\r\n\r\n <div>\r\n <span style=\"padding: 5px;\">\r\n <p-button [outlined]=\"true\" (click)=\"acceptCookies()\" class=\"button-padding\">\r\n <translate name=\"cookie-bar.accept\"></translate>\r\n </p-button>\r\n </span>\r\n <span style=\"padding: 5px;\">\r\n <p-button [outlined]=\"true\" severity=\"secondary\" (click)=\"rejectCookies()\" class=\"button-padding\">\r\n <translate name=\"cookie-bar.reject\"></translate>\r\n </p-button>\r\n </span>\r\n </div>\r\n\r\n\r\n <!-- <button class=\"btn btn-default yes-btn\" (click)=\"acceptCookies()\">\r\n <translate name=\"cookie-bar.accept\"></translate>\r\n </button>\r\n <a class=\"no-link\" (click)=\"rejectCookies()\">\r\n <translate name=\"cookie-bar.reject\"></translate>\r\n </a> -->\r\n </div>\r\n </div>\r\n</div>\r\n}","import { Component, inject, OnInit } from '@angular/core';\r\nimport { SignalrNotificationService, TranslationSharedService } from '../../services';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CardModule } from 'primeng/card';\r\nimport { TranslationComponent } from '../translation/translation.component';\r\n\r\n@Component({\r\n selector: 'app-notification-list',\r\n templateUrl: './notification-list.component.html',\r\n styleUrls: ['./notification-list.component.css'],\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n TranslationComponent,\r\n CardModule,\r\n ]\r\n})\r\nexport class NotificationListComponent implements OnInit {\r\n public pageNo: number = 1;\r\n\r\n public loading: boolean = false;\r\n\r\n signalRService = inject(SignalrNotificationService);\r\n translationService = inject(TranslationSharedService);\r\n\r\n\r\n constructor(\r\n // public signalRService: SignalrNotificationService, public translationService: TranslationSharedService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.signalRService.getNotifications().subscribe(res => {\r\n this.signalRService.messages().filter(m => m.isUnread).forEach(item => {\r\n item.isUnread = false;\r\n item.wasNew = true;\r\n });\r\n this.signalRService.setReadReceipt();\r\n\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.signalRService.messages().forEach(item => {\r\n item.wasNew = false;\r\n });\r\n }\r\n\r\n public get messages(): any[] {\r\n return this.signalRService.messages().slice().sort((a, b) => (a.creationTime.toString() < b.creationTime.toString() ? 1 : -1));\r\n }\r\n\r\n openNextPage() {\r\n this.loading = true;\r\n this.signalRService.messagePageNo++;\r\n this.signalRService.getNotifications().subscribe(res => this.loading = false);\r\n }\r\n\r\n notificationClick(message) {\r\n this.signalRService.onNotificationClick.emit(message);\r\n }\r\n\r\n}\r\n","@for( m of messages; track m){\r\n<span>\r\n <li [class]=\"m.isUnread ? 'dropdown-message-unread' : m.wasNew ? 'dropdown-message-wasnew' : ''\">\r\n <div class=\"dropdown-messages-box\">\r\n <a class=\"media-link\" (click)=\"notificationClick(m)\">\r\n @if(m.mediaType=='Image' && m.mediaSrc){<img [src]=\"m.mediaSrc\" style=\"width:100%\" />}\r\n <span class=\"media-body\">\r\n <!-- <i class=\"fa fa-check bg-green icon\" *ngIf=\"m.class=='success'\"></i>\r\n <i class=\"fa fa-info-circle bg-aqua icon\" *ngIf=\"m.class=='info'\"></i>\r\n <i class=\"fa fa-exclamation-circle icon bg-yellow\" *ngIf=\"m.class=='warning'\"></i>\r\n <i class=\"fa fa-times bg-red icon\" *ngIf=\"m.class=='error'\"></i> -->\r\n @if(m.class=='success'){\r\n <i class=\"pi pi-check\"></i>\r\n }\r\n @if(m.class=='info'){\r\n <i class=\"pi pi-info-circle\"></i>\r\n }\r\n @if(m.class=='warning'){\r\n <i class=\"pi-exclamation-circle\"></i>\r\n }\r\n @if(m.class=='error'){\r\n <i class=\"pi pi-times\"></i>\r\n }\r\n\r\n <!-- @if(m.subject){\r\n <div class=\"media-title\">\r\n {{signalRService.processReplacements(m.subject | translation : translationService.translations, m.model)}}\r\n </div>\r\n }\r\n\r\n <span\r\n [innerHtml]=\"signalRService.processReplacements(m.body | translation : translationService.translations, m.model)\">\r\n </span>\r\n <br />\r\n <small class=\"text-muted\">\r\n <i class=\"fa subicon fa-clock-o\"></i> {{m.creationTime | amFromUtc | amTimeAgo}}</small> -->\r\n </span>\r\n </a>\r\n\r\n </div>\r\n </li>\r\n</span>\r\n}\r\n\r\n@if(messages.length==0){\r\n<li>\r\n <div class=\"media-body text-center text-muted\">\r\n <translate name=\"messages.nomessages\"></translate>\r\n </div>\r\n\r\n</li>\r\n}\r\n@if(signalRService.hasMorePages){\r\n<div class=\"media-body notification-footer text-center text-muted small-text\">\r\n @if(loading){<span class=\"loader loader-small\"></span>}\r\n @if(!loading){\r\n <a (click)=\"openNextPage()\">\r\n <translate name=\"messages.viewmore\"></translate>\r\n </a>\r\n }\r\n</div>\r\n}","import { Component, OnInit, Input, HostBinding, HostListener, ViewChild, ElementRef, inject, input } from '@angular/core';\r\nimport { SignalrNotificationService } from '../../services';\r\nimport { TranslationSharedService } from '../../services';\r\nimport { SortingPagingCriteria } from '../../misc/sorting-paging-criteria';\r\nimport { timer } from 'rxjs';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CardModule } from 'primeng/card';\r\nimport { TranslationComponent } from '../translation/translation.component';\r\nimport { NotificationListComponent } from '../notification-list/notification-list.component';\r\n\r\n@Component({\r\n selector: '[notification-dropdown]',\r\n templateUrl: './notification-dropdown.component.html',\r\n styleUrls: ['./notification-dropdown.component.css'],\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n TranslationComponent,\r\n CardModule,\r\n NotificationListComponent,\r\n ]\r\n})\r\nexport class NotificationDropdownComponent implements OnInit {\r\n\r\n public connection: any;\r\n @HostBinding('class.open') public notificationsOpen: boolean = false;\r\n\r\n public sortingPagingCriteria: SortingPagingCriteria = new SortingPagingCriteria();\r\n\r\n public canClose: boolean;\r\n\r\n icon = input<string>('fa fa-bell')\r\n translation = input<string>('')\r\n linkClass = input<string>('')\r\n\r\n\r\n @HostListener('document:touchend', ['$event'])\r\n @HostListener('document:click', ['$event'])\r\n onDocumentClick(targetElementPath) {\r\n let elementRefInPath = targetElementPath.path ? targetElementPath.path.find(e => e === this._elementRef.nativeElement) : undefined;\r\n if (!elementRefInPath && this.notificationsOpen && this.canClose) {\r\n this.openNotifications();\r\n }\r\n }\r\n\r\n signalRService = inject(SignalrNotificationService);\r\n translationService = inject(TranslationSharedService);\r\n _elementRef = inject(ElementRef);\r\n\r\n\r\n\r\n constructor(\r\n // public signalRService: SignalrNotificationService, private translationService: TranslationSharedService, private _elementRef: ElementRef\r\n ) { }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n\r\n\r\n openNotifications() {\r\n this.canClose = false;\r\n this.notificationsOpen = !this.notificationsOpen;\r\n timer(100).subscribe(r => this.canClose = true);\r\n }\r\n\r\n}\r\n","<a [class]=\"'dropdown-toggle count-info ' + linkClass\" (click)=\"openNotifications()\">\r\n <i [class]=\"icon()\"></i>\r\n @if(signalRService.unreadMessageCount()>0){\r\n <span class=\"label label-primary\">{{signalRService.unreadMessageCount()}}</span>\r\n }\r\n @if(translation){<translate [name]=\"translation\"></translate>}\r\n</a>\r\n@if(notificationsOpen){\r\n<ul class=\"dropdown-menu dropdown-messages\" #messagesCtl>\r\n <app-notification-list></app-notification-list>\r\n</ul>\r\n}","import { Component, inject, OnInit } from '@angular/core';\r\nimport { SignalrNotificationService } from '../../services';\r\nimport { TranslationSharedService } from '../../services';\r\nimport { Observable, of, Subscription, timer } from 'rxjs';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CardModule } from 'primeng/card';\r\nimport { TranslationComponent } from '../translation/translation.component';\r\nimport { MessageService } from 'primeng/api';\r\nimport { ToastModule } from 'primeng/toast';\r\nimport { TranslationPipe } from '../../pipes';\r\nimport { ButtonModule } from 'primeng/button';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-notification-toaster',\r\n templateUrl: './notification-toaster.component.html',\r\n styleUrls: ['./notification-toaster.component.css'],\r\n standalone: true,\r\n imports: [\r\n TranslationPipe,\r\n CommonModule,\r\n TranslationComponent,\r\n CardModule,\r\n ToastModule,\r\n ButtonModule\r\n ]\r\n})\r\nexport class NotificationToasterComponent implements OnInit {\r\n\r\n private connection: any;\r\n public _messages: any[] = [];\r\n public newMessage: any;\r\n public obsTimeout: Observable<any>;\r\n public obsTimer: Subscription;\r\n\r\n signalRService = inject(SignalrNotificationService);\r\n translationService = inject(TranslationSharedService);\r\n messageService = inject(MessageService);\r\n\r\n\r\n constructor(\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.signalRService.onNotification.subscribe(m => {\r\n m.isToasterUnread = true;\r\n m.isUnread = true;\r\n if (this.obsTimer) {\r\n this.obsTimer.unsubscribe();\r\n }\r\n this.obsTimeout = timer(5000);\r\n this.obsTimer = this.obsTimeout.subscribe(() => this.messages.forEach(m => {\r\n m.isToasterUnread = false;\r\n }));\r\n\r\n if (this.messages.length > 5)\r\n this.messages[0].isToasterUnread = false;\r\n });\r\n }\r\n\r\n public get messages(): any[] {\r\n return this.signalRService.messages().filter(m => m && m.isToasterUnread && m.isUnread);\r\n }\r\n\r\n sendMessage() {\r\n this.connection.invoke('send', this.newMessage);\r\n this.newMessage = '';\r\n }\r\n\r\n removeNotification(not) {\r\n not.isUnread = false;\r\n not.isToasterUnread = false;\r\n }\r\n\r\n notificationClick(message) {\r\n this.signalRService.onNotificationClick.emit(message);\r\n this.removeNotification(message);\r\n }\r\n}\r\n","<div id=\"toast-container\" class=\"card flex justify-content-center\" class=\"toast-bottom-right\">\r\n <p-toast />\r\n @for (m of messages; track m) {\r\n <p-button (onClick)=\"notificationClick(m)\" [severity]=\" m.class\" />\r\n <div class=\"toast-progress\"></div>\r\n <div class=\"pull-left\">\r\n @if(!m.iconUrl){\r\n <ng-container>\r\n @if(m.class=='success'){\r\n <i class=\"pi pi-check\"></i>\r\n }\r\n @if(m.class=='info'){\r\n <i class=\"pi pi-info-circle\"></i>\r\n }\r\n @if(m.class=='warning'){\r\n <i class=\"pi-exclamation-circle\"></i>\r\n }\r\n @if(m.class=='error'){\r\n <i class=\"pi pi-times\"></i>\r\n }\r\n </ng-container>\r\n }\r\n\r\n @if(m.iconUrl){<div [style.backgroundImage]=\"'url(' + m.iconUrl + ')'\" class=\"toast-icon\"></div>\r\n}\r\n </div>\r\n\r\n }\r\n</div>\r\n","import { Component, OnInit, Output, EventEmitter, Renderer2, Input, inject, input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'flow-qr-scanner',\r\n templateUrl: './qr-scanner.component.html',\r\n styleUrls: ['./qr-scanner.component.css'],\r\n standalone: true\r\n})\r\nexport class QrScannerComponent implements OnInit {\r\n\r\n private value: string = '';\r\n\r\n // @Input()\r\n // public disabled: boolean;\r\n \r\n // disabled = input<boolean>('')\r\n\r\n private eventListener: any;\r\n @Output()\r\n public valueRead: EventEmitter<any> = new EventEmitter();\r\n public timeout: any;\r\n\r\n\r\n renderer = inject(Renderer2);\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n\r\n this.eventListener = this.renderer.listen(document, 'keydown', (event) => {\r\n // if (this.disabled())\r\n // return;\r\n if (this.timeout)\r\n clearTimeout(this.timeout);\r\n if (event.keyCode != 13) {\r\n if (event.keyCode >= 31) {\r\n this.value += event.key.toString().toUpperCase();\r\n this.timeout = setTimeout(() => {\r\n this.value = '';\r\n }, 1000);\r\n }\r\n }\r\n else {\r\n this.valueRead.emit(this.value);\r\n this.value = '';\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.eventListener();\r\n }\r\n\r\n}\r\n","","import { Component, ElementRef, ViewChild, effect, inject, signal } from '@angular/core';\r\nimport { SidebarService } from '../../services';\r\nimport { CommonModule, JsonPipe, NgComponentOutlet } from '@angular/common';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { HammerModule } from '@angular/platform-browser';\r\nimport { DrawerModule } from 'primeng/drawer';\r\n\r\n@Component({\r\n selector: 'sidebar',\r\n standalone: true,\r\n imports: [DrawerModule, NgComponentOutlet, ButtonModule, HammerModule, CommonModule],\r\n templateUrl: './sidebar.component.html',\r\n styleUrl: './sidebar.component.css'\r\n})\r\nexport class SidebarComponent {\r\n\r\n @ViewChild('content', { read: ElementRef })\r\n contentComponent: ElementRef;\r\n\r\n sidebarService = inject(SidebarService);\r\n private initialHeight: number;\r\n private panElement: HTMLElement | null;\r\n contentScrollable = signal(false);\r\n #deltaScroll: number = 0;\r\n #initialY: number = 0;\r\n #initialTimestamp: number;\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n closeCallback(id) {\r\n this.sidebarService.closeSidebar(id);\r\n }\r\n\r\n onPan(evt, id) {\r\n switch (evt.type) {\r\n case 'touchstart':\r\n let target = (evt.target as HTMLElement);\r\n \r\n // while(target){\r\n // if(target.scrollTop>0 && this.#deltaScroll < 0)\r\n // return;\r\n // if(target.scrollTop + target.clientHeight > target.scrollHeight && this.#deltaScroll > 0)\r\n // return;\r\n // target = target.parentElement;\r\n // }\r\n this.panElement = document.querySelector<HTMLElement>(`#sidebar-${id}`);\r\n this.panElement!.style.transition = 'none';\r\n this.initialHeight = this.panElement!.offsetHeight;\r\n this.#initialY = evt.touches[0].clientY;\r\n this.#initialTimestamp = new Date().getTime();\r\n break;\r\n case 'touchmove':\r\n if (!this.panElement)\r\n return;\r\n this.#deltaScroll = this.#initialY - evt.touches[0].clientY;\r\n\r\n let target2 = (evt.target as HTMLElement);\r\n \r\n while(target2){\r\n if(target2.scrollTop>0 && this.#deltaScroll < 0) {\r\n this.#initialY = evt.touches[0].clientY;\r\n return;\r\n }\r\n if(target2.scrollTop > 0 && target2.scrollTop + target2.clientHeight < target2.scrollHeight && this.#deltaScroll > 0) {\r\n this.#initialY = evt.touches[0].clientY;\r\n return;\r\n }\r\n target2 = target2.parentElement;\r\n }\r\n\r\n if (this.#deltaScroll < 0 && this.contentComponent.nativeElement.scrollTop > 0) {\r\n this.panElement = null;\r\n return;\r\n }\r\n\r\n this.panElement!.style.height = (this.initialHeight + this.#initialY - evt.touches[0].clientY) + 'px';\r\n\r\n break;\r\n case 'touchend':\r\n if (!this.panElement)\r\n return;\r\n\r\n let currentSidebar = this.sidebarService.sidebars().find(s => s.id == id);\r\n\r\n this.panElement!.style.transition = 'height .2s';\r\n let scrollSpeed = Math.abs(this.#deltaScroll) / Math.floor(new Date().getTime() - this.#initialTimestamp);\r\n if (this.panElement!.offsetHeight < window.innerHeight * .3 || (this.#deltaScroll < 0 && scrollSpeed > 1.3)) {\r\n this.closeCallback(id);\r\n }\r\n if (this.panElement!.offsetHeight > window.innerHeight * .3 && this.panElement!.offsetHeight < window.innerHeight * .7) {\r\n this.panElement!.style.height = '50%';\r\n currentSidebar.options.contentScrollable.set(false);\r\n }\r\n if (this.panElement!.offsetHeight > window.innerHeight * .7) {\r\n this.panElement!.style.height = '95%';\r\n currentSidebar.options.contentScrollable.set(true);\r\n }\r\n this.#deltaScroll = 0;\r\n this.#initialTimestamp = 0;\r\n this.#initialY = 0;\r\n this.panElement = null;\r\n break;\r\n }\r\n }\r\n}\r\n","@if(sidebarService.sidebars().length > 0) {\r\n\r\n<div class=\"sidebar-overlay\">\r\n @for(sidebar of sidebarService.sidebars(); track sidebar.id) {\r\n @if(sidebar.visible) {\r\n <div [id]=\"'sidebar-' + sidebar.id\" class=\"sidebar-container container left-1/2 -translate-x-1/2 w-full\"\r\n [ngStyle]=\"sidebar.options.ngStyle\" animate.enter=\"fade-in\" animate.leave=\"fade-out\">\r\n <div class=\"flex flex-col h-full sidebar-pan-control\" [id]=\"'sidebar-body-' + sidebar.id\"\r\n style=\"touch-action: none;\" (touchmove)=\"onPan($event, sidebar.id)\" (touchstart)=\"onPan($event, sidebar.id)\"\r\n (touchend)=\"onPan($event, sidebar.id)\">\r\n <div class=\"sm:text-right text-center px-3 py-2 inline-block leading-none\" [id]=\"'sidebar-header-' + sidebar.id\">\r\n <div class=\"self-center bg-sky-400 rounded-full inline-block sm:hidden\"\r\n [id]=\"'sidebar-header-hook-' + sidebar.id\" style=\"height: .3rem; width:70px\"></div>\r\n <div class=\"hidden sm:inline-block\">\r\n <a (click)=\"closeCallback(sidebar.id)\" class=\"text-2xl p-2 opacity-40 font-bold\">\r\n <i class=\"fi fi-rr-cross\"></i>\r\n </a>\r\n </div>\r\n </div>\r\n <div #content\r\n [class]=\"{ 'overflow-y-auto': sidebar.options.contentScrollable(), 'p-8': !sidebar.options.noPadding, 'h-full': true }\">\r\n <ng-container *ngComponentOutlet=\"sidebar.component;inputs: sidebar.inputs;\" />\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n }\r\n</div>\r\n}","import { Component, ElementRef, Input, TemplateRef, ViewChild, ViewEncapsulation, computed, effect, inject, input, model, output, signal, untracked, viewChild } from '@angular/core';\r\nimport { StoryContext } from '../../misc/story-context';\r\nimport { CommonModule, JsonPipe, NgTemplateOutlet } from '@angular/common';\r\nimport { timer } from 'rxjs';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { SidebarService } from '../../services';\r\n\r\n\r\n@Component({\r\n selector: 'stories',\r\n standalone: true,\r\n imports: [CommonModule, NgTemplateOutlet, ButtonModule],\r\n templateUrl: './stories.component.html',\r\n styleUrl: './stories.component.css',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class StoriesComponent {\r\n stories = input<any[]>([]);\r\n currentStoryIndex = signal(-1);\r\n footerTemplate = input<TemplateRef<any> | null>();\r\n subFooterTemplate = input<TemplateRef<any> | null>();\r\n sideTemplate = input<TemplateRef<any> | null>();\r\n showSubFooter = input<boolean>(true);\r\n mute = signal(true);\r\n descriptionOpen = input<boolean>();\r\n fullScreen = model<boolean>(false);\r\n storyChanged = output<any>();\r\n currentStory = computed(() => this.stories()[this.currentStoryIndex()]);\r\n defaultDuration = input(7);\r\n currentProgress = signal(0);\r\n currentDuration = signal(0);\r\n currentTime = 0;\r\n timerInterval = 100;\r\n timerSubscription: any;\r\n paused = model(false);\r\n close = output<void>();\r\n\r\n sidebarService = inject(SidebarService);\r\n\r\n videoPlayer = viewChild<ElementRef>('videoPlayer');\r\n storyContainer = viewChild<ElementRef>('viewContainer');\r\n regularStyle: any;\r\n\r\n constructor() {\r\n\r\n effect(() => {\r\n if (this.currentStoryIndex() == -1 && this.stories().length > 0)\r\n untracked(() => this.next());\r\n });\r\n\r\n effect(() => {\r\n if (!this.videoPlayer())\r\n return;\r\n this.videoPlayer().nativeElement.addEventListener('loadeddata', () => {\r\n this.currentDuration.set(this.videoPlayer().nativeElement.duration);\r\n this.runTimer();\r\n }, { once: true });\r\n\r\n })\r\n\r\n effect(() => {\r\n if (!this.paused()) {\r\n untracked(() => this.runTimer());\r\n if (this.videoPlayer())\r\n this.videoPlayer().nativeElement.play();\r\n }\r\n else {\r\n if (this.videoPlayer())\r\n this.videoPlayer().nativeElement.pause();\r\n }\r\n });\r\n\r\n effect(() => {\r\n if (this.fullScreen()) {\r\n this.storyContainer().nativeElement.style.position = 'fixed';\r\n this.storyContainer().nativeElement.style.width = '100%';\r\n this.storyContainer().nativeElement.style.height = '100%';\r\n this.storyContainer().nativeElement.style.top = '0';\r\n this.storyContainer().nativeElement.style.left = '0';\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n\r\n next() {\r\n this.currentStoryIndex.update(c => c + 1 < this.stories().length ? c + 1 : 0);\r\n\r\n\r\n this.currentStory().completion = signal(0);\r\n this.storyChanged.emit(this.currentStory());\r\n this.paused.set(false);\r\n this.currentProgress.set(0);\r\n this.currentTime = 0;\r\n if (this.currentStory().type == 'video') {\r\n }\r\n else {\r\n this.currentDuration.set(15);\r\n this.runTimer()\r\n }\r\n }\r\n\r\n\r\n runTimer() {\r\n if (this.timerSubscription)\r\n this.timerSubscription.unsubscribe();\r\n if (this.paused() || this.stories().length == 1)\r\n return;\r\n\r\n this.timerSubscription = timer(this.timerInterval).subscribe(() => {\r\n this.currentTime += this.timerInterval;\r\n let duration = this.currentDuration() ?? this.defaultDuration();\r\n this.currentProgress.set(this.currentTime / (duration * 10));\r\n if (this.currentTime >= duration * 1000)\r\n this.next();\r\n else\r\n this.runTimer();\r\n });\r\n }\r\n\r\n closeCallback(id) {\r\n //this.sidebarService.closeSidebar(id);\r\n }\r\n\r\n emitClose() {\r\n document.getElementsByTagName(\"html\")[0].style['overflow'] = 'initial';\r\n document.getElementsByTagName(\"body\")[0].style['overflow'] = 'initial';\r\n\r\n this.fullScreen.set(false);\r\n if (this.regularStyle) {\r\n this.storyContainer().nativeElement.style.width = this.regularStyle.width;\r\n this.storyContainer().nativeElement.style.height = this.regularStyle.height;\r\n this.storyContainer().nativeElement.style.top = this.regularStyle.top;\r\n this.storyContainer().nativeElement.style.left = this.regularStyle.left;\r\n\r\n this.storyContainer().nativeElement.addEventListener('transitionend', () => {\r\n this.storyContainer().nativeElement.style = {};\r\n this.storyContainer().nativeElement.style.position = 'relative';\r\n\r\n }, { once: true });\r\n }\r\n\r\n this.close.emit();\r\n }\r\n\r\n setFullScreen() {\r\n document.getElementsByTagName(\"html\")[0].style['overflow'] = 'hidden';\r\n document.getElementsByTagName(\"body\")[0].style['overflow'] = 'hidden';\r\n\r\n this.storyContainer().nativeElement.style.width = this.storyContainer().nativeElement.offsetWidth + 'px';\r\n this.storyContainer().nativeElement.style.height = this.storyContainer().nativeElement.offsetHeight + 'px';\r\n this.storyContainer().nativeElement.style.top = this.storyContainer().nativeElement.getBoundingClientRect().top + 'px';\r\n this.storyContainer().nativeElement.style.left = this.storyContainer().nativeElement.getBoundingClientRect().left + 'px';\r\n this.storyContainer().nativeElement.style.transition = 'all .2s';\r\n\r\n this.regularStyle = {\r\n top: this.storyContainer().nativeElement.style.top,\r\n left: this.storyContainer().nativeElement.style.left,\r\n width: this.storyContainer().nativeElement.style.width,\r\n height: this.storyContainer().nativeElement.style.height\r\n };\r\n this.storyContainer().nativeElement.style.position = 'fixed';\r\n this.fullScreen.set(true);\r\n this.storyContainer().nativeElement.style.width = '100%';\r\n this.storyContainer().nativeElement.style.height = '100%';\r\n this.storyContainer().nativeElement.style.top = '0';\r\n this.storyContainer().nativeElement.style.left = '0';\r\n\r\n }\r\n\r\n}\r\n","<div class=\"w-full h-full story-container z-52\" #viewContainer>\r\n\r\n @if(stories().length > 1) {\r\n <div class=\"story-lines-container\">\r\n <div class=\"flex gap-1 story-lines p-3 justify-center\">\r\n @for (story of stories(); track story.id; let i = $index) {\r\n\r\n <div class=\"story-line transition-all\" [ngClass]=\"{ 'story-line-selected' : currentStoryIndex() == i }\">\r\n @if (currentStoryIndex() >= i) {\r\n <div class=\"story-line-inner bg-surface-100\"\r\n [style.width]=\"currentStoryIndex() > i ? '100%' : (currentStoryIndex() == i ? this.currentProgress() + '%' : '0')\">\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n\r\n <div class=\"story-backdrop z-1\" (click)=\"next()\">\r\n @if (currentStory()?.type=='image') {\r\n <img [src]=\"currentStory().src\" />\r\n } @else if (currentStory()?.type=='video') {\r\n <video class=\"w-full\">\r\n <source [src]=\"currentStory().src\" type=\"video/mp4\">\r\n </video>\r\n }\r\n </div>\r\n\r\n\r\n <div class=\"story-content sm:border-round\">\r\n\r\n\r\n @if (currentStory()?.type == 'image') {\r\n <img [src]=\"currentStory().src\" (click)=\"next()\" />\r\n }\r\n @if (currentStory()?.type=='video') {\r\n <video class=\"w-full h-full\" (canplay)=\"videoPlayer.play()\" (loadedmetadata)=\"videoPlayer.muted = mute()\"\r\n #videoPlayer autoplay [muted]=\"mute()\" [playsInline]=\"true\" loop (click)=\"next()\">\r\n <source [src]=\"currentStory().src\" type=\"video/mp4\">\r\n\r\n </video>\r\n }\r\n\r\n </div>\r\n <div class=\"top-7 right-5 z-3 absolute flex gap-2\">\r\n @if (currentStory()?.type=='video') {\r\n <div class=\"w-12 h-12 rounded-full text-center content-center bg-surface-500/30 text-white\">\r\n <a (click)=\"mute.set(!mute())\" style=\"color: inherit;\">\r\n @if(mute()) {\r\n <i class=\"fi text-2xl fi-rr-volume-mute\"></i>\r\n }\r\n @else {\r\n <i class=\"fi text-2xl fi-rr-volume\"></i>\r\n }\r\n </a>\r\n </div>\r\n }\r\n\r\n @if(stories().length > 1) {\r\n <div class=\"w-12 h-12 rounded-full text-center content-center bg-surface-500/30 text-white\">\r\n <a (click)=\"paused.set(!paused())\" style=\"color:inherit\">\r\n @if (paused()) {\r\n <i class=\"fi fi-rr-play text-2xl\"></i>\r\n }\r\n @else {\r\n <i class=\"fi fi-rr-pause text-2xl\"></i>\r\n }\r\n\r\n </a>\r\n </div>\r\n @if(fullScreen()) {\r\n <div class=\"w-12 h-12 rounded-full text-center content-center bg-surface-500/30 text-white\">\r\n <a (click)=\"emitClose()\" style=\"color: inherit;\">\r\n <i class=\"fi text-2xl fi-rr-compress\"></i>\r\n </a>\r\n </div>\r\n }\r\n @if(!fullScreen()) {\r\n <div class=\"w-12 h-12 rounded-full text-center content-center bg-surface-500/30 text-white\">\r\n <a (click)=\"setFullScreen()\" style=\"color: inherit;\">\r\n <i class=\"fi text-2xl fi-rr-expand\"></i>\r\n </a>\r\n </div>\r\n }\r\n }\r\n </div>\r\n\r\n <div [class]=\"'story-overlay absolute bottom-0 p-2 left-0 z-2 gap-2 ' + (descriptionOpen() ? 'scrollable' : '')\">\r\n @if(footerTemplate()){\r\n <div class=\"story-footer\">\r\n <ng-container [ngTemplateOutlet]=\"footerTemplate()\"\r\n [ngTemplateOutletContext]=\"{ $implicit: currentStory() }\"></ng-container>\r\n </div>\r\n }\r\n\r\n\r\n\r\n </div>\r\n\r\n\r\n\r\n</div>","import { Component, OnInit, Input, forwardRef, inject, input, effect, model } from '@angular/core';\r\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { FlowAppConfig } from '../../../flowAppConfig';\r\nimport * as uuid from 'uuid';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TranslationComponent } from '../translation/translation.component';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { RippleModule } from 'primeng/ripple';\r\nimport { CardModule } from 'primeng/card';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\n\r\n// import { UUID } from 'angular2-uuid';\r\n// import { environment } from 'environments/environment';\r\n\r\n\r\n@Component({\r\n selector: 'questions',\r\n templateUrl: './questions.component.html',\r\n styleUrls: ['./questions.component.css'],\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n TranslationComponent,\r\n FormsModule,\r\n InputTextModule,\r\n CardModule,\r\n RippleModule,\r\n ButtonModule,\r\n CheckboxModule,\r\n // DropdownModule,\r\n // TagModule,\r\n // CompareDirective\r\n // RouterModule,\r\n\r\n ],\r\n})\r\n\r\nexport class QuestionsComponent implements OnInit {\r\n\r\n\r\n\r\n imageRoot = input<any>(null);\r\n\r\n\r\n value = input<any>(null);\r\n\r\n // get value(): any {\r\n // return this.registerQuestions;\r\n // };\r\n\r\n mode = input<any>('answer')\r\n\r\n // private _mode: string = 'answer';\r\n\r\n // @Input()\r\n // public get mode() {\r\n // return this._mode;\r\n // }\r\n\r\n // public set mode(value) {\r\n // this._mode = value;\r\n // }\r\n\r\n\r\n public get imageItem() {\r\n return !this.registerQuestions ? null : this.registerQuestions().find(t => t.type == 'IMAGE');\r\n }\r\n public get firstNameItem() {\r\n return !this.registerQuestions ? null : this.registerQuestions().find(t => t.type == 'FIRSTNAME');\r\n }\r\n public get lastNameItem() {\r\n return !this.registerQuestions ? null : this.registerQuestions().find(t => t.type == 'LASTNAME');\r\n }\r\n public get extraFields() {\r\n return !this.registerQuestions ? null : this.registerQuestions().filter(t => t.type != 'IMAGE' && t.type != 'FIRSTNAME' && t.type != 'LASTNAME') || [];\r\n }\r\n\r\n public get imageUrl() {\r\n if (!this.imageItem)\r\n return null;\r\n else\r\n return this.sanitizer.bypassSecurityTrustStyle(`url(${this.imageRoot()}/misc/${!this.environment.production ? '_debug/' : ''}${this.imageItem.answer})`);\r\n }\r\n\r\n public has(item, type) {\r\n return !this.registerQuestions().find(t => t.type == type && t.id != item.id);\r\n }\r\n\r\n public get orderedRegisterQuestions() {\r\n return this.registerQuestions()?.sort((a, b) => a.priority > b.priority ? 1 : a.priority == b.priority ? 0 : -1);\r\n }\r\n\r\n\r\n public registerQuestions = model<any[]>([]);\r\n\r\n sanitizer = inject(DomSanitizer)\r\n private environment = inject(FlowAppConfig);\r\n\r\n\r\n constructor(\r\n ) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n addNew() {\r\n this.registerQuestions.update(rq => ([...rq, { id: uuid.v4(), type: 'TEXTBOX', priority: (Math.max(...rq.map(q => q.priority)) > 0 ? Math.max(...rq.map(q => q.priority)) : 0) + 1 }]));\r\n console.log(this.registerQuestions())\r\n\r\n }\r\n\r\n deleteQuestion(item) {\r\n this.registerQuestions.update(q => q.splice(q.indexOf(item), 1));\r\n }\r\n}\r\n","<div>\r\n @for(item of orderedRegisterQuestions; track item){\r\n <div>\r\n <div class=\"form-group\">\r\n <label>\r\n <translate name=\"company-questions.question\"></translate>\r\n </label>\r\n <input type=\"text\" [(ngModel)]=\"item.name\" class=\"form-control\" name=\"{{item.id}}\" required />\r\n </div>\r\n <div class=\"form-group\">\r\n <label>\r\n <translate name=\"company-questions.type\"></translate>\r\n </label>\r\n\r\n <select [(ngModel)]=\"item.inputType\" class=\"form-control\">\r\n <option>TEXTBOX</option>\r\n <option>TEXTAREA</option>\r\n <option>CHOICE</option>\r\n @if(has(item, 'DATEOFBIRTH')){\r\n <option>DATE</option>\r\n }\r\n\r\n @if(has(item, 'IMAGE')){\r\n <option>IMAGE</option>\r\n }\r\n </select>\r\n </div>\r\n <div class=\"form-group\">\r\n <label>\r\n <translate name=\"company-questions.value-type\"></translate>\r\n </label>\r\n\r\n <select [(ngModel)]=\"item.type\" class=\"form-control\">\r\n @if(has(item, 'FIRSTNAME')){\r\n <option>FIRSTNAME</option>\r\n }\r\n @if(has(item, 'LASTNAME')){\r\n <option>LASTNAME</option>\r\n }\r\n @if(has(item, 'EMAIL')){\r\n <option>EMAIL</option>\r\n }\r\n @if(has(item, 'PHONE')){\r\n <option>PHONE</option>\r\n }\r\n @if(has(item, 'CNP')){\r\n <option>CNP</option>\r\n }\r\n @if(has(item, 'SEX')){\r\n <option>SEX</option>\r\n }\r\n @if(has(item, 'COUNTRY')){\r\n <option>COUNTRY</option>\r\n }\r\n @if(has(item, 'CITY')){\r\n <option>CITY</option>\r\n }\r\n @if(has(item, 'DATEOFBIRTH')){\r\n <option>DATEOFBIRTH</option>\r\n }\r\n @if(has(item, 'GUARDIANNAME')){\r\n <option>GUARDIANNAME</option>\r\n }\r\n @if(has(item, 'GUARDIANPHONE')){\r\n <option>GUARDIANPHONE</option>\r\n }\r\n @if(has(item, 'IMAGE')){\r\n <option>IMAGE</option>\r\n }\r\n <option>OTHER</option>\r\n </select>\r\n </div>\r\n @if(item.inputType=='CHOICE'){\r\n <div class=\"form-group\">\r\n <label>\r\n <translate name=\"company-questions.choices\"></translate>\r\n </label>\r\n <textarea [(ngModel)]=\"item.choices\" class=\"form-control\" #choices=\"ngModel\" name=\"choices\" rows=\"5\"></textarea>\r\n </div>\r\n }\r\n\r\n <div class=\"form-group\" style=\"display: flex; justify-content: space-between; align-items: center;\">\r\n <label>\r\n <translate name=\"company-questions.priority\"></translate>\r\n </label>\r\n <input type=\"number\" [(ngModel)]=\"item.priority\" class=\"form-control\" style=\"width:100px; margin-left: 5px;\" />\r\n\r\n <p-checkbox class=\"pr-3\" [(ngModel)]=\"item.required\" [binary]=\"true\" name=\"is_required\" [inputId]=\"item.required\">\r\n <translate name=\"questions.is-required\">\r\n </translate>\r\n </p-checkbox>\r\n\r\n <!-- <icheck name=\"is_required\" style=\"margin-left: 10px;\" [(ngModel)]=\"item.required\"><translate name=\"questions.is-required\">\r\n </translate>\r\n </icheck> -->\r\n\r\n <a class=\"btn btn-warning btn-sm\" style=\"margin-left: auto;\" (click)=\"deleteQuestion(item)\"><i\r\n class=\"pi pi-trash\"></i></a>\r\n\r\n </div>\r\n <hr />\r\n </div>\r\n}\r\n <button class=\"btn btn-primary\" (click)=\"addNew()\"><i class=\"pi pi-plus\"></i></button>\r\n</div>\r\n<!-- <div *ngIf=\"mode=='answer'\">\r\n <div class=\"form-group text-center\">\r\n <div [style.backgroundImage]=\"imageUrl\" *ngIf=\"imageItem\" class=\"image-upload\"></div>\r\n <h3 *ngIf=\"firstNameItem || lastNameItem\">{{firstNameItem?.answer}} {{lastNameItem?.answer}}</h3>\r\n </div>\r\n <div class=\"form-group extra-fields\" *ngFor=\"let item of extraFields\">\r\n <label>{{item.name}}</label>\r\n \r\n <div>{{item.answer}}</div>\r\n </div>\r\n</div> -->","import { Component, HostListener, OnInit } from '@angular/core';\r\nimport { GlobalService, UserAccountService } from '../../services';\r\nimport { Router } from '@angular/router';\r\nimport { timer } from 'rxjs';\r\nimport { LoginFormComponent } from '../login-form/login-form.component';\r\ndeclare var window: any;\r\n@Component({\r\n selector: 'app-login',\r\n standalone: true,\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.css'],\r\n imports: [LoginFormComponent]\r\n})\r\nexport class LoginComponent implements OnInit {\r\n\r\n public message: string;\r\n\r\n\r\n constructor(public userService: UserAccountService, public globalService: GlobalService, public router: Router) { }\r\n\r\n ngOnInit() {\r\n var result: any = {};\r\n window.location.hash.substring(1).split('&').forEach(e => {\r\n var k = e.split('=');\r\n if (k[1] != 'null')\r\n result[k[0]] = k[1];\r\n });\r\n let provider = decodeURIComponent(result.state).split('|')[0]\r\n let returnUrl = decodeURIComponent(result.state).split('|')[1]\r\n this.userService.redirectTo = returnUrl;\r\n\r\n if (window.opener && window.opener && window.opener.login) {\r\n window.opener.login.externalLogin(result, provider);\r\n window.close();\r\n return;\r\n }\r\n if (window.parent && window.parent.login) {\r\n window.parent.login.externalLogin(result, provider);\r\n return;\r\n }\r\n\r\n\r\n\r\n timer(100).subscribe(r => {\r\n window.login.externalLogin(result, provider);\r\n\r\n\r\n });\r\n\r\n // this.userService.redirectTo = null;\r\n // let redirectUrl = this.userService.processLogin().subscribe(res => {\r\n // console.log(window)\r\n // if (window.opener && window.opener && window.opener.login)\r\n // {\r\n // window.opener.login.userLoggedIn(this.userService.currentUser);\r\n // window.close();\r\n // return;\r\n // }\r\n // if (window.parent && window.parent.login) {\r\n // window.parent.login.userLoggedIn(this.userService.currentUser);\r\n // return;\r\n // }\r\n // window.login.userLoggedIn(this.userService.currentUser);\r\n // });\r\n }\r\n\r\n}\r\n","<!-- <app-loader></app-loader> -->\r\n<div style=\"max-width:400px; width:90%; margin: 0px auto\">\r\n <payvent-login-form></payvent-login-form>\r\n</div>","// export * from './loading-button/loading-button.component';\r\nexport * from './translation/translation.component';\r\n// export * from './login/login.component';\r\nexport * from './login-form/login-form.component';\r\nexport * from './cookie-bar/cookie-bar.component';\r\nexport * from './notification-dropdown/notification-dropdown.component';\r\nexport * from './notification-list/notification-list.component';\r\nexport * from './notification-toaster/notification-toaster.component';\r\nexport * from './qr-scanner/qr-scanner.component';\r\n// export * from './logout/logout.component';\r\n// export * from './loader/loader.component';\r\n// export * from './html-popup/html-popup.component';\r\n// export * from './notification-toaster/notification-toaster.component';\r\n// export * from './notification-dropdown/notification-dropdown.component';\r\n// export * from './multistep-wizard/multistep-wizard.component';\r\n// export * from './html-page/html-page.component';\r\nexport * from './sidebar/sidebar.component';\r\nexport * from './stories/stories.component';\r\nexport * from './questions/questions.component';\r\nexport * from './login/login.component';\r\nexport * from './login-form/login-form.component';\r\nexport * from './country-province-city/country-province-city.component';\r\nexport * from './international-phone/international-phone.component';\r\n// export * from './location-select/location-select.component';\r\n// export * from './flow-uploader/flow-uploader.component';\r\n// export * from './notification-list/notification-list.component';\r\n// export * from './questions/questions.component';\r\n","import { Directive, ElementRef, HostListener, Renderer2, OnDestroy, inject, OutputEmitterRef, output, ModelSignal, model, WritableSignal, signal, effect, afterNextRender, InputSignal, input, afterEveryRender } from '@angular/core';\r\n\r\nexport interface IPositionEvent {\r\n x: number;\r\n y: number;\r\n}\r\n\r\n@Directive({\r\n standalone: true,\r\n selector: '[dragscroll]'\r\n})\r\nexport class DragScrollDirective implements OnDestroy {\r\n private _el: ElementRef<HTMLElement> = inject(ElementRef<HTMLElement>);\r\n private _renderer: Renderer2 = inject(Renderer2);\r\n private readonly _isDragging: WritableSignal<boolean> = signal(false);\r\n private readonly _startY: WritableSignal<number> = signal(0);\r\n private readonly _scrollTop: WritableSignal<number> = signal(0);\r\n private readonly _startX: WritableSignal<number> = signal(0);\r\n private readonly _scrollLeft: WritableSignal<number> = signal(0);\r\n\r\n // Binds methods to maintain the correct context\r\n private _boundMouseMove = this.onMouseMove.bind(this);\r\n private _boundMouseUp = this.onMouseUp.bind(this);\r\n\r\n public readonly onScroll: OutputEmitterRef<IPositionEvent> = output();\r\n public readonly disabled: InputSignal<boolean> = input(false);\r\n public readonly overflowHidden: InputSignal<boolean> = input(false);\r\n public coord: ModelSignal<IPositionEvent> = model({ x: 0, y: 0 });\r\n\r\n constructor() {\r\n // Sets basic styles for the element\r\n this._renderer.setStyle(this._el.nativeElement, 'user-select', 'none');\r\n this._renderer.setStyle(this._el.nativeElement, 'overflow', 'auto');\r\n\r\n // Updates the position when the coord signal changes\r\n effect(() => {\r\n this.setPosition(this.coord().x, this.coord().y);\r\n });\r\n\r\n // Updates the cursor style\r\n afterEveryRender(() => {\r\n this._renderer.setStyle(this._el.nativeElement, 'cursor', this.disabled() ? 'default' : 'move');\r\n });\r\n\r\n // apply inital position\r\n afterNextRender(() => {\r\n this.setPosition(this.coord().x, this.coord().y);\r\n\r\n if (this.overflowHidden()) {\r\n this._renderer.setStyle(this._el.nativeElement, 'scrollbar-width', 'none');\r\n this._renderer.setStyle(this._el.nativeElement, '-ms-overflow-style', 'none');\r\n this._renderer.setStyle(this._el.nativeElement, '::-webkit-scrollbar', 'display: none');\r\n }\r\n });\r\n }\r\n\r\n private setPosition(x: number, y: number): void {\r\n this._renderer.setProperty(this._el.nativeElement, 'scrollLeft', x);\r\n this._renderer.setProperty(this._el.nativeElement, 'scrollTop', y);\r\n }\r\n\r\n @HostListener('mousedown', ['$event'])\r\n public onMouseDown(e: MouseEvent): void {\r\n if (this.disabled()) return;\r\n\r\n // Check if click target is a button or inside a button\r\n const targetElement = e.target as HTMLElement;\r\n if (targetElement.tagName.toLowerCase() === 'button' || targetElement.closest('button')) {\r\n return;\r\n }\r\n\r\n this._isDragging.set(true);\r\n\r\n // Calculates initial positions\r\n const rect = this._el.nativeElement.getBoundingClientRect();\r\n this._startY.set(e.clientY - rect.top);\r\n this._startX.set(e.clientX - rect.left);\r\n this._scrollTop.set(this._el.nativeElement.scrollTop);\r\n this._scrollLeft.set(this._el.nativeElement.scrollLeft);\r\n\r\n // Changes the cursor to grab\r\n this._renderer.setStyle(this._el.nativeElement, 'cursor', 'grab');\r\n\r\n // Adds global listeners\r\n document.addEventListener('mousemove', this._boundMouseMove);\r\n document.addEventListener('mouseup', this._boundMouseUp);\r\n\r\n // Prevents default behaviors\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n\r\n @HostListener('scroll', ['$event'])\r\n public onScrollMove(e: Event): void {\r\n this.coord.set({ x: this._el.nativeElement.scrollLeft, y: this._el.nativeElement.scrollTop });\r\n this.onScroll.emit(this.coord());\r\n }\r\n\r\n @HostListener('selectstart', ['$event'])\r\n public onSelectStart(e: Event): void {\r\n if (this.disabled()) return;\r\n\r\n // Check if target is a button or inside a button\r\n const targetElement = e.target as HTMLElement;\r\n if (targetElement.tagName.toLowerCase() === 'button' || targetElement.closest('button')) {\r\n return;\r\n }\r\n\r\n // Prevents text selection\r\n e.preventDefault();\r\n }\r\n\r\n private onMouseMove(e: MouseEvent): void {\r\n if (!this._isDragging) return;\r\n\r\n e.preventDefault();\r\n\r\n const rect = this._el.nativeElement.getBoundingClientRect();\r\n const y = e.clientY - rect.top;\r\n const x = e.clientX - rect.left;\r\n\r\n const deltaY = y - this._startY();\r\n const deltaX = x - this._startX();\r\n\r\n // Applies scrolling based on mouse movement\r\n this._el.nativeElement.scrollTop = this._scrollTop() - deltaY;\r\n this._el.nativeElement.scrollLeft = this._scrollLeft() - deltaX;\r\n }\r\n\r\n private onMouseUp(): void {\r\n if (this.disabled()) return;\r\n\r\n this._isDragging.set(false);\r\n\r\n // Reset the cursor\r\n this._renderer.setStyle(this._el.nativeElement, 'cursor', 'move');\r\n\r\n // Remove global listeners\r\n this.removeDragListeners();\r\n }\r\n\r\n private removeDragListeners(): void {\r\n document.removeEventListener('mousemove', this._boundMouseMove);\r\n document.removeEventListener('mouseup', this._boundMouseUp);\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.removeDragListeners();\r\n }\r\n}","import { computed, Directive, HostBinding, HostListener, inject, input, signal } from \"@angular/core\";\r\nimport { ViewTransitionService } from \"../services\";\r\n\r\n@Directive({\r\n selector: '[viewTransition]',\r\n standalone: true,\r\n host: { '[style.view-transition-name]': 'viewTransitionName()' },\r\n})\r\nexport class ViewTransitionDirective {\r\n clicked = signal<boolean>(false);\r\n @HostListener('click')\r\n onClicked() {\r\n this.clicked.set(true)\r\n }\r\n static = input<boolean>(false);\r\n\r\n private readonly viewTranistionService = inject(ViewTransitionService);\r\n\r\n public readonly name = input<string>('', { alias: 'viewTransition' });\r\n public readonly id = input<string>();\r\n\r\n protected readonly viewTransitionName = computed(() => {\r\n return this.clicked() || this.static() ? this.name() : 'none';\r\n });\r\n}","/*\r\n * Public API Surface of ngx-payvent-shared\r\n */\r\n\r\nexport * from './flowAppConfig';\r\nexport * from './lib/services';\r\nexport * from './lib/components';\r\nexport * from './lib/directives';\r\nexport * from './lib/pipes';\r\nexport * from './lib/misc';\r\n// export * from './lib/misc/sidebar-context';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["shareReplay","i3","i2","i4","i1","i1.UserAccountService","i1.GlobalService"],"mappings":"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"}