@bnsights/bbsf-utilities 1.0.69-beta.2 → 1.0.69-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/shared/models/index.mjs +1 -2
- package/esm2022/lib/shared/services/index.mjs +1 -2
- package/esm2022/public-api.mjs +3 -5
- package/fesm2022/bnsights-bbsf-utilities.mjs +1 -64
- package/fesm2022/bnsights-bbsf-utilities.mjs.map +1 -1
- package/lib/shared/models/index.d.ts +0 -1
- package/lib/shared/services/index.d.ts +0 -1
- package/package.json +1 -16
- package/public-api.d.ts +0 -2
- package/esm2022/lib/shared/config/word/constants.mjs +0 -105
- package/esm2022/lib/shared/config/word/docx-document.mjs +0 -348
- package/esm2022/lib/shared/config/word/helpers/index.mjs +0 -4
- package/esm2022/lib/shared/config/word/helpers/render-document-file.mjs +0 -154
- package/esm2022/lib/shared/config/word/helpers/xml-builder.mjs +0 -1836
- package/esm2022/lib/shared/config/word/html-to-docx.mjs +0 -187
- package/esm2022/lib/shared/config/word/index.mjs +0 -50
- package/esm2022/lib/shared/config/word/namespaces.mjs +0 -37
- package/esm2022/lib/shared/config/word/schemas/content-types.mjs +0 -26
- package/esm2022/lib/shared/config/word/schemas/core.mjs +0 -27
- package/esm2022/lib/shared/config/word/schemas/document-rels.mjs +0 -16
- package/esm2022/lib/shared/config/word/schemas/document.template.mjs +0 -107
- package/esm2022/lib/shared/config/word/schemas/font-table.mjs +0 -40
- package/esm2022/lib/shared/config/word/schemas/generic-rels.mjs +0 -11
- package/esm2022/lib/shared/config/word/schemas/index.mjs +0 -13
- package/esm2022/lib/shared/config/word/schemas/numbering.mjs +0 -17
- package/esm2022/lib/shared/config/word/schemas/rels.mjs +0 -11
- package/esm2022/lib/shared/config/word/schemas/settings.mjs +0 -13
- package/esm2022/lib/shared/config/word/schemas/styles.mjs +0 -147
- package/esm2022/lib/shared/config/word/schemas/theme.mjs +0 -198
- package/esm2022/lib/shared/config/word/schemas/web-settings.mjs +0 -9
- package/esm2022/lib/shared/config/word/utils/color-conversion.mjs +0 -60
- package/esm2022/lib/shared/config/word/utils/list.mjs +0 -51
- package/esm2022/lib/shared/config/word/utils/unit-conversion.mjs +0 -30
- package/esm2022/lib/shared/config/word/utils/url.mjs +0 -7
- package/esm2022/lib/shared/config/word/utils/vnode.mjs +0 -3
- package/esm2022/lib/shared/config/word/word-work/templates/documentTemplate.mjs +0 -54
- package/esm2022/lib/shared/config/word/word-work/templates/index.mjs +0 -4
- package/esm2022/lib/shared/config/word/word-work/templates/mhtDocumentTemplate.mjs +0 -22
- package/esm2022/lib/shared/config/word/word-work/templates/mhtPartTemplate.mjs +0 -10
- package/esm2022/lib/shared/config/word/word-work/utils.mjs +0 -26
- package/esm2022/lib/shared/models/word-document-model.mjs +0 -8
- package/esm2022/lib/shared/services/word-document.service.mjs +0 -57
- package/esm2022/word/bnsights-bbsf-utilities-word.mjs +0 -5
- package/esm2022/word/public-api.mjs +0 -9
- package/fesm2022/bnsights-bbsf-utilities-index-C3Twnewr.mjs +0 -3536
- package/fesm2022/bnsights-bbsf-utilities-index-C3Twnewr.mjs.map +0 -1
- package/fesm2022/bnsights-bbsf-utilities-word.mjs +0 -13
- package/fesm2022/bnsights-bbsf-utilities-word.mjs.map +0 -1
- package/lib/shared/config/word/constants.d.ts +0 -124
- package/lib/shared/config/word/docx-document.d.ts +0 -73
- package/lib/shared/config/word/helpers/index.d.ts +0 -1
- package/lib/shared/config/word/helpers/render-document-file.d.ts +0 -2
- package/lib/shared/config/word/helpers/xml-builder.d.ts +0 -16
- package/lib/shared/config/word/html-to-docx.d.ts +0 -1
- package/lib/shared/config/word/index.d.ts +0 -1
- package/lib/shared/config/word/namespaces.d.ts +0 -36
- package/lib/shared/config/word/schemas/content-types.d.ts +0 -1
- package/lib/shared/config/word/schemas/core.d.ts +0 -1
- package/lib/shared/config/word/schemas/document-rels.d.ts +0 -1
- package/lib/shared/config/word/schemas/document.template.d.ts +0 -4
- package/lib/shared/config/word/schemas/font-table.d.ts +0 -1
- package/lib/shared/config/word/schemas/generic-rels.d.ts +0 -1
- package/lib/shared/config/word/schemas/index.d.ts +0 -12
- package/lib/shared/config/word/schemas/numbering.d.ts +0 -1
- package/lib/shared/config/word/schemas/rels.d.ts +0 -1
- package/lib/shared/config/word/schemas/settings.d.ts +0 -1
- package/lib/shared/config/word/schemas/styles.d.ts +0 -1
- package/lib/shared/config/word/schemas/theme.d.ts +0 -1
- package/lib/shared/config/word/schemas/web-settings.d.ts +0 -1
- package/lib/shared/config/word/utils/color-conversion.d.ts +0 -7
- package/lib/shared/config/word/utils/list.d.ts +0 -6
- package/lib/shared/config/word/utils/unit-conversion.d.ts +0 -29
- package/lib/shared/config/word/utils/url.d.ts +0 -1
- package/lib/shared/config/word/utils/vnode.d.ts +0 -1
- package/lib/shared/config/word/word-work/templates/documentTemplate.d.ts +0 -12
- package/lib/shared/config/word/word-work/templates/index.d.ts +0 -3
- package/lib/shared/config/word/word-work/templates/mhtDocumentTemplate.d.ts +0 -1
- package/lib/shared/config/word/word-work/templates/mhtPartTemplate.d.ts +0 -1
- package/lib/shared/config/word/word-work/utils.d.ts +0 -1
- package/lib/shared/models/word-document-model.d.ts +0 -16
- package/lib/shared/services/word-document.service.d.ts +0 -25
- package/word/index.d.ts +0 -5
- package/word/public-api.d.ts +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bnsights-bbsf-utilities.mjs","sources":["../../../projects/bbsf-utilities/src/lib/shared/models/UserModel.ts","../../../projects/bbsf-utilities/src/lib/shared/enums/authentication-modes-enums.ts","../../../projects/bbsf-utilities/src/lib/shared/services/appearance-configuration.service.ts","../../../projects/bbsf-utilities/src/lib/shared/services/configuration.service.ts","../../../projects/bbsf-utilities/src/lib/shared/models/area-model.ts","../../../projects/bbsf-utilities/src/lib/shared/models/error-model.ts","../../../projects/bbsf-utilities/src/lib/shared/models/request-options-model.ts","../../../projects/bbsf-utilities/src/lib/shared/models/word-document-model.ts","../../../projects/bbsf-utilities/src/lib/shared/models/speech-language.ts","../../../projects/bbsf-utilities/src/lib/shared/services/control-validation.service.ts","../../../projects/bbsf-utilities/src/lib/shared/config/environment.ts","../../../projects/bbsf-utilities/src/lib/shared/services/environment.service.ts","../../../projects/bbsf-utilities/src/lib/shared/services/master-layout.service.ts","../../../projects/bbsf-utilities/src/lib/shared/services/request-handler.service.ts","../../../projects/bbsf-utilities/src/lib/shared/services/styles-bundle.service.ts","../../../projects/bbsf-utilities/src/lib/shared/services/translate.service.ts","../../../projects/bbsf-utilities/src/lib/shared/services/translation-resolver.service.ts","../../../projects/bbsf-utilities/src/lib/shared/services/utility.service.ts","../../../projects/bbsf-utilities/src/lib/shared/services/word-document.service.ts","../../../projects/bbsf-utilities/src/lib/shared/services/language.service.ts","../../../projects/bbsf-utilities/src/lib/shared/services/speech-recognition.service.ts","../../../projects/bbsf-utilities/src/lib/shared/services/preload.service.ts","../../../projects/bbsf-utilities/src/lib/shared/authentication/auth.service.ts","../../../projects/bbsf-utilities/src/lib/bbsf-utilities.module.ts","../../../projects/bbsf-utilities/src/public-api.ts","../../../projects/bbsf-utilities/src/bnsights-bbsf-utilities.ts"],"sourcesContent":["export class User {\r\n\r\n token_type: string;\r\n access_token: string;\r\n profile: any;\r\n expires_at: any\r\n}\r\n","export enum AuthenticationModes {\r\n Forms = 'Forms',\r\n UAEPass = \"UAEPass\",\r\n WindowsAD = \"WindowsAD\",\r\n AzureAD = \"AzureAD\",\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { ConfigurationService } from \".\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AppearanceConfigurationService {\r\n\r\n constructor(private configService: ConfigurationService) {\r\n }\r\n\r\n getLayoutTheme() {\r\n return this.configService.getConfigurationValue('AnonymousLayout_Theme');\r\n }\r\n\r\n getFooterText() {\r\n return this.configService.getConfigurationValue('AnonymousLayout_FooterText');\r\n }\r\n\r\n getPageTitle() {\r\n return this.configService.getConfigurationValue('AnonymousLayout_PageTitle');\r\n }\r\n\r\n getFavIcon() {\r\n return this.configService.getConfigurationValue('AnonymousLayout_FavIcon');\r\n }\r\n\r\n getCustomStyles() {\r\n return this.configService.getConfigurationValue('AnonymousLayout_CustomStyles');\r\n }\r\n\r\n getLogo() {\r\n return this.configService.getConfigurationValue('AnonymousLayout_Logo');\r\n }\r\n \r\n}","import { HttpClient } from \"@angular/common/http\";\r\nimport { Injectable, Injector, OnInit } from \"@angular/core\";\r\nimport { AuthService } from \"../authentication\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConfigurationService {\r\n\r\n static JsonData: any[] = [];\r\n private currentUserProfile: any;\r\n private _authService: AuthService;\r\n\r\n constructor(private httpClient: HttpClient, private injector: Injector) {\r\n this.httpClient.get(\"./assets/config/configurations.json\")\r\n .subscribe(data => {\r\n ConfigurationService.JsonData = data as any[];\r\n });\r\n }\r\n\r\n private get authService(): AuthService {\r\n if (!this._authService) {\r\n this._authService = this.injector.get(AuthService);\r\n }\r\n return this._authService;\r\n }\r\n\r\n getConfigurationValue(key: string) {\r\n this.currentUserProfile = this.authService.getCurrentUser()?.profile;\r\n var selectedKey = ConfigurationService.JsonData[key];\r\n if (selectedKey && typeof selectedKey === 'object') {\r\n if (selectedKey.OrganizationConfigurations) {\r\n if (this.currentUserProfile && this.currentUserProfile.organizationGUID_ID) {\r\n let organizationValue = Array(selectedKey.OrganizationConfigurations).find(o => o.OrganizationID_GUID == this.currentUserProfile.organizationGUID_ID);\r\n return organizationValue;\r\n }\r\n } else {\r\n return selectedKey.Value;\r\n }\r\n } else {\r\n return selectedKey;\r\n }\r\n }\r\n\r\n}","export class AreaModel {\r\n permissionSetID: number\r\n areaUrl: string;\r\n}\r\n","export class ErrorModel {\r\n field: string;\r\n controlName: string;\r\n message: string;\r\n}\r\n","import { FormGroup } from \"@angular/forms\";\r\n\r\nexport class RequestOptionsModel {\r\n disableSuccessNotification: boolean = false;\r\n disableBlockUI: boolean = false;\r\n disableErrorHandler: boolean = false;\r\n customSuccessMessage: string;\r\n customErrorMessage: string;\r\n responseType: any = \"\"\r\n formGroup: FormGroup = null\r\n castResponsetoClass: boolean = true;\r\n}\r\n","export class WordDocumentModel {\r\n header: string;\r\n footer: string;\r\n body: string;\r\n options: DocumentOptionsModel = new DocumentOptionsModel()\r\n}\r\n\r\nexport class DocumentOptionsModel {\r\n pageHeight: number;\r\n pageWidth: number;\r\n top: number;\r\n bottom: number;\r\n left: number;\r\n right: number;\r\n isLandscape: boolean;\r\n showPaging: boolean;\r\n}\r\n","export class LanguageDTO {\r\n name: string;\r\n prefix: string;\r\n dialect: string;\r\n englishName: string;\r\n arabicName: string;\r\n nativeName: string;\r\n detected: string;\r\n searching: string;\r\n elevating: string;\r\n translating: string;\r\n generatingAnswersForYou: string;\r\n isRTL: boolean;\r\n}\r\n","import { HttpErrorResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { BlockUI, NgBlockUI } from 'ng-block-ui';\r\nimport { ErrorModel, RequestOptionsModel } from '../models';\r\nimport { UtilityService } from '.';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ControlValidationService {\r\n\r\n private requestOptions: RequestOptionsModel = new RequestOptionsModel();\r\n\r\n constructor(private utilityService: UtilityService) {\r\n }\r\n\r\n isCreatedBefor = false;\r\n\r\n @BlockUI() blockUI: NgBlockUI;\r\n\r\n showGlobalError(errorMessage?: string | string[], formId?: string, deleteOld?: boolean) {\r\n let globalErorrElement = document.getElementsByClassName('alert alert-InvalidValidation bg-light-danger text-danger')\r\n if (globalErorrElement.length > 0) {\r\n this.removeElementsByClass('alert alert-InvalidValidation bg-light-danger text-danger');\r\n }\r\n if (this.isCreatedBefor == true) {\r\n this.removeElementsByClass('alert alert-InvalidValidation bg-light-danger text-danger');\r\n }\r\n // tslint:disable-next-line: prefer-const\r\n if (!formId)\r\n formId = \"currentForm\"\r\n var object = document.getElementById(formId);\r\n const tagName = 'div';\r\n // tslint:disable-next-line: prefer-const\r\n var elementToAppend = document.createElement(tagName); // Your tag name here\r\n let message: string | string[] = \"\";\r\n\r\n if (!errorMessage || (typeof errorMessage == \"string\")) {\r\n if (localStorage.getItem('language') == \"ar\")\r\n message = errorMessage ? errorMessage : \"لديك بعص الأخطاء . من فضلك قم بالمراجعه \";\r\n else\r\n message = errorMessage ? errorMessage : \"You have some validation errors. Please check below\"\r\n elementToAppend.innerHTML = \"<ul class='list-unstyled m-0 py-3 d-flex align-items-center fs-6'><li><i class='fa fa-times-circle text-danger me-3 fs-2'></i>\" + message + \"</li></ul>\";\r\n elementToAppend.className += 'alert alert-InvalidValidation bg-light-danger text-danger';\r\n elementToAppend.id += 'errorId';\r\n // tslint:disable-next-line: prefer-for-of\r\n const elementToAppen = elementToAppend.cloneNode(true);\r\n // let targetElement = object.getElementsByClassName(\"b-control\")[0];\r\n object.insertBefore(elementToAppen, object.firstChild);\r\n }\r\n else {\r\n let ul = document.createElement(\"ul\");\r\n elementToAppend.appendChild(ul);\r\n\r\n for (const iterator of errorMessage) {\r\n let li = document.createElement(\"li\");\r\n li.innerHTML = iterator;\r\n ul.appendChild(li);\r\n }\r\n elementToAppend.className += 'alert alert-InvalidValidation bg-light-danger text-danger';\r\n elementToAppend.id += 'errorId';\r\n // tslint:disable-next-line: prefer-for-of\r\n const elementToAppen = elementToAppend.cloneNode(true);\r\n // let targetElement = object.getElementsByClassName(\"b-control\")[0];\r\n object.insertBefore(elementToAppen, object.firstChild);\r\n }\r\n this.isCreatedBefor = true;\r\n }\r\n\r\n removeGlobalError() {\r\n const removedList = document.getElementsByClassName('alert alert-InvalidValidation bg-light-danger text-danger');\r\n // tslint:disable-next-line: prefer-for-of\r\n for (let index = 0; index < removedList.length; index++) {\r\n const element = removedList[index];\r\n element.remove();\r\n }\r\n this.isCreatedBefor = false;\r\n }\r\n\r\n showInputErro(errors: any) {\r\n // show error on top of form \r\n this.showGlobalError();\r\n // remove old error from server\r\n this.removeElementsByClass('errortemplet');\r\n // Looping in error Object\r\n for (const key in errors) {\r\n if (errors.hasOwnProperty(key)) {\r\n for (const iterator of errors[key]) {\r\n const input = document.querySelectorAll('[ng-reflect-name=' + key + ']')[0];\r\n if ((input.attributes['ng-reflect-name'].value as string) === key) {\r\n this.removeElementsByClass('erroclass-' + key);\r\n const tagName = 'p'\r\n const elementToAppend = document.createElement(tagName); // Your tag name here\r\n elementToAppend.innerHTML = iterator;\r\n elementToAppend.style.color = 'red'\r\n elementToAppend.className += 'errortemplet erroclass-' + key;\r\n const elementToappen = elementToAppend.cloneNode(true);\r\n input.parentNode.insertBefore(elementToappen, input.lastChild);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n removeElementsByClass(className) {\r\n const elements = document.getElementsByClassName(className);\r\n while (elements.length > 0) {\r\n elements[0].parentNode.removeChild(elements[0]);\r\n }\r\n }\r\n\r\n renderServerErrors(form: FormGroup, err: HttpErrorResponse, requestOptions: RequestOptionsModel, formId?: string) {\r\n if (err.error == null) {\r\n return;\r\n }\r\n let errorsArray: string[] = [];\r\n\r\n this.requestOptions = requestOptions;\r\n\r\n if (err.error.validation_errors) {\r\n err.error.validation_errors.forEach((element: ErrorModel) => {\r\n let fieldName = element.field;\r\n let controlName = element.controlName;\r\n let message = element.message;\r\n if (form == null) {\r\n this.requestOptions.customErrorMessage ? this.utilityService.notifyErrorMessage(this.requestOptions.customErrorMessage) : this.utilityService.notifyErrorMessage(`${message}`);\r\n }\r\n else if (controlName && !this.hasControlName(form, controlName)) {\r\n errorsArray.push(`${fieldName}: ${message}`);\r\n }\r\n else {\r\n this.setFieldError(form, controlName, fieldName, message);\r\n this.showGlobalError(null, formId);\r\n }\r\n });\r\n\r\n if (errorsArray.length > 0)\r\n this.showGlobalError(errorsArray, formId)\r\n }\r\n }\r\n\r\n private hasControlName(form: FormGroup, controlName: string): boolean {\r\n let control = form.get(controlName);\r\n return control != null;\r\n }\r\n\r\n private setFieldError(form: FormGroup, controlName: string, fieldName: string, message: string) {\r\n let control = null\r\n\r\n if (controlName)\r\n control = this.getControlFormNameByFieldName(form, controlName);\r\n else\r\n control = this.getControlFormNameByFieldName(form, fieldName.split('.')[0]);\r\n\r\n let errors = { \"errorMassage\": message };\r\n let fieldNameArray = fieldName.split('.');\r\n if (fieldNameArray.length >= 1) {\r\n switch (fieldNameArray[fieldNameArray.length - 1].toLocaleLowerCase()) {\r\n case \"english\":\r\n let englishControl = control.get(\"English\")\r\n englishControl.setErrors(errors);\r\n break;\r\n case \"arabic\":\r\n let arabicControl = control.get(\"Arabic\")\r\n arabicControl.setErrors(errors);\r\n break;\r\n default:\r\n control.setErrors(errors);\r\n }\r\n }\r\n else {\r\n this.requestOptions.customErrorMessage ? this.utilityService.notifyErrorMessage(this.requestOptions.customErrorMessage) : this.utilityService.notifyErrorMessage(`${message}`)\r\n }\r\n }\r\n\r\n private getControlFormNameByFieldName(form: FormGroup, fieldName: string) {\r\n const formControls = form.controls;\r\n let controlName = Object.keys(formControls).find(c => c.toLocaleLowerCase() === fieldName.toLocaleLowerCase());\r\n let control = form.get(controlName);\r\n return control;\r\n }\r\n\r\n}\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build ---prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = Object.assign({}, (window as any).Environment);\r\n\r\n\r\n/*\r\n * In development mode, to ignore zone related error stack frames such as\r\n * `zone.run`, `zoneDelegate.invokeTask` for easier debugging, you can\r\n * import the following file, but please comment it out in production mode\r\n * because it will have performance impact when throw error\r\n */\r\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../config/environment';\r\nimport { AreaModel } from '../models';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EnvironmentService {\r\n\r\n static areaList: AreaModel[] = [];\r\n\r\n static AreaList: AreaModel[] = [];\r\n\r\n getEnvironmentObject() {\r\n return environment;\r\n }\r\n\r\n getBaseUrl() {\r\n return environment[\"BBSF_BaseURL\"];\r\n }\r\n\r\n getApiUrl() {\r\n return environment[\"BBSF_ApiUrl\"];\r\n }\r\n\r\n getProductionMode() {\r\n return environment[\"BBSF_IsProduction\"] as boolean;\r\n }\r\n\r\n getDefaultLanguage() {\r\n return environment[\"BBSF_DefaultLanguage\"] as string;\r\n }\r\n\r\n getIdentityServerUrl() {\r\n return environment[\"BBSF_IdentityServerUrl\"];\r\n }\r\n\r\n getIsIdentityServerExternal() {\r\n return environment[\"BBSF_IsExternalIdentityServer\"] as string;\r\n }\r\n\r\n getIsIdentityServerClientId() {\r\n return environment[\"BBSF_IdentityServer_Client_Id\"] as string;\r\n }\r\n\r\n getIsIdentityServerClientSecret() {\r\n return environment[\"BBSF_IdentityServer_Client_Secret\"] as string;\r\n }\r\n\r\n getBBSFAuthenticationMode() {\r\n let Mode = environment[\"BBSF_AuthenticationMode\"] as string;\r\n return Mode;\r\n }\r\n\r\n getUAEPassBaseUrl() {\r\n let Mode = environment[\"UAEPass_BaseUrl\"] as string;\r\n return Mode;\r\n }\r\n getUAEPassClientID() {\r\n let Mode = environment[\"UAEPass_ClientID\"] as string;\r\n return Mode;\r\n }\r\n getUAEPassRedirectUrl() {\r\n let Mode = environment[\"UAEPass_RedirectUrl\"] as string;\r\n return Mode;\r\n }\r\n getUAEPassAuthorizationEndPoint() {\r\n let Mode = environment[\"UAEPass_AuthorizationEndPoint\"] as string;\r\n return Mode;\r\n }\r\n\r\n getUAEPassRedirectLogoutUrl() {\r\n let Mode = environment[\"UAEPass_RedirectLogoutUrl\"] as string;\r\n return Mode;\r\n }\r\n\r\n getUAEPassLogoutEndPoint() {\r\n let Mode = environment[\"UAEPass_LogoutEndPoint\"] as string;\r\n return Mode;\r\n }\r\n\r\n\r\n getIsEnableWindowsAuthentication() {\r\n let Mode = environment[\"BBSF_Enable_WindowsAuthentication\"] as string;\r\n return Mode.toLocaleLowerCase() == 'true';\r\n }\r\n\r\n getAllowMultiTenancy() {\r\n let mode = environment[\"BBSF_AllowMultiTenancy\"] as string;\r\n return mode.toLocaleLowerCase() == 'true';\r\n }\r\n\r\n getCookieName() {\r\n let cookieName = environment[\"BBSF_CookieName\"];\r\n return cookieName;\r\n }\r\n}\r\n","import { HttpParams } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { EnvironmentService, RequestHandlerService, StylesBundleService } from '.';\r\nimport { AuthService } from '../authentication';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MasterLayoutService {\r\n\r\n apiUrl = '/api/Home/';\r\n\r\n constructor(private router: Router, private http: RequestHandlerService, private authService: AuthService,\r\n private stylesBundleService: StylesBundleService, private translate: TranslateService,\r\n private environmentService: EnvironmentService) { }\r\n\r\n switchLang(lang: string, bundleEnglishName: string, bundleArabicName: string) {\r\n if (this.authService.isAuthenticated()) {\r\n this.changeLanguage(lang).subscribe((result) => {\r\n this.updateUserInfo().subscribe((Value) => {\r\n let UserInfoObject = Value as any;\r\n this.authService.handleAccessToken(UserInfoObject.token);\r\n this.stylesBundleService.loadThemes(\r\n lang,\r\n bundleEnglishName,\r\n bundleArabicName\r\n );\r\n localStorage.setItem('language', lang);\r\n this.translate.use(lang);\r\n });\r\n });\r\n }\r\n else\r\n this.router.navigate(['/Admin/account/login']);\r\n }\r\n\r\n reloadComponent() {\r\n let currentUrl = this.router.url;\r\n this.router.routeReuseStrategy.shouldReuseRoute = () => false;\r\n this.router.onSameUrlNavigation = 'reload';\r\n this.router.navigate([currentUrl]);\r\n }\r\n\r\n private changeLanguage(key: string) {\r\n let params = new HttpParams();\r\n params = params.append('UserId', AuthService.user.profile.id);\r\n params = params.append('LanguageKey', key);\r\n return this.http.post(this.apiUrl + 'UpdateLanguage', null, null, params);\r\n }\r\n\r\n logError(error: string) {\r\n let params = new HttpParams();\r\n params = params.append('error', error);\r\n return this.http.post(this.apiUrl + 'LogError', null, null, params);\r\n }\r\n\r\n private updateUserInfo() {\r\n return this.http.get(this.apiUrl + 'UpdateUserInfo', null, null);\r\n\r\n }\r\n\r\n switchRole(permissionSetID: string) {\r\n this.updateRole(permissionSetID).subscribe((result) => {\r\n this.updateUserInfo().subscribe((Value) => {\r\n let UserInfoObject = Value as any;\r\n this.authService.handleAccessToken(UserInfoObject.token);\r\n });\r\n });\r\n }\r\n\r\n private updateRole(permissionSetID: string) {\r\n let params = new HttpParams();\r\n params = params.append('UserId', AuthService.user.profile.id);\r\n params = params.append('RoleID', permissionSetID);\r\n return this.http.post(this.apiUrl + 'SwitchRole', null, null, params);\r\n }\r\n\r\n}\r\n","import { HttpClient, HttpErrorResponse, HttpHeaders, HttpParams } from \"@angular/common/http\";\r\nimport { Injectable, OnDestroy } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { plainToClass } from 'class-transformer';\r\nimport { Observable, Subject, throwError } from 'rxjs';\r\nimport { map, takeUntil, tap } from 'rxjs/operators';\r\nimport { BBSFTranslateService, EnvironmentService, UtilityService } from \".\";\r\nimport { AuthService } from '../authentication/auth.service';\r\nimport { RequestOptionsModel } from '../models';\r\n\r\n@Injectable()\r\nexport class RequestHandlerService implements OnDestroy {\r\n\r\n private currentLanguage = \"\";\r\n public onDestroy$: Subject<void> = new Subject<void>();\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private authService: AuthService,\r\n private environmentService: EnvironmentService,\r\n private utilityService: UtilityService,\r\n private bbsfTranslateService: BBSFTranslateService,\r\n private router: Router\r\n ) {\r\n //using localStorage to avoid call getCurrentLanguage() because it is not all to use async in constructor\r\n this.bbsfTranslateService.onLangChange.subscribe((event) => {\r\n if (this.currentLanguage != event.lang) {\r\n this.currentLanguage = event.lang;\r\n }\r\n });\r\n }\r\n\r\n // Function to check if the internet connection is available\r\n private isOnline(): boolean {\r\n return navigator.onLine || !this.environmentService.getProductionMode();\r\n }\r\n\r\n // ...\r\n get<T>(Url: string, params?: HttpParams, responseType?: new () => T, requestOptions?: RequestOptionsModel): Observable<T> {\r\n if (!this.isOnline()) {\r\n const errorCode = 504; // Custom error code for internet disconnection\r\n const errorMessage = 'Internet connection is disconnected.';\r\n var error = new HttpErrorResponse({ error: { Message: errorMessage }, status: errorCode });\r\n this.handleError(error);\r\n return;\r\n }\r\n\r\n const currentRequestOptions = requestOptions || new RequestOptionsModel();\r\n\r\n let headers = this.getHeaders();\r\n if (!currentRequestOptions.disableBlockUI)\r\n this.utilityService.startBlockUI();\r\n return this.http.get<T>(this.environmentService.getApiUrl() + Url, { headers: headers, params: params }).pipe(\r\n takeUntil(this.onDestroy$),\r\n tap((result) => {\r\n if (!currentRequestOptions.disableBlockUI)\r\n this.utilityService.stopBlockUI();\r\n }, error => {\r\n if (!currentRequestOptions.disableErrorHandler)\r\n this.handleError(error);\r\n }), map((data: T) => {\r\n if (currentRequestOptions.castResponsetoClass)\r\n return plainToClass(responseType, data, { excludeExtraneousValues: true });\r\n else\r\n return data;\r\n })\r\n ) as Observable<T>;\r\n }\r\n\r\n post<T>(Url: string, model?: any, responseType?: new () => T, params?: HttpParams, requestOptions?: RequestOptionsModel): Observable<T> {\r\n if (!this.isOnline()) {\r\n const errorCode = 504; // Custom error code for internet disconnection\r\n const errorMessage = 'Internet connection is disconnected.';\r\n var error = new HttpErrorResponse({ error: { Message: errorMessage }, status: 504 });\r\n this.handleError(error);\r\n return;\r\n }\r\n\r\n const currentRequestOptions = requestOptions || new RequestOptionsModel();\r\n let headers = this.getHeaders();\r\n if (!currentRequestOptions.disableBlockUI)\r\n this.utilityService.startBlockUI();\r\n return this.http.post<T>(this.environmentService.getApiUrl() + Url, model, { headers: headers, params: params, responseType: currentRequestOptions.responseType }).pipe(\r\n takeUntil(this.onDestroy$),\r\n tap((result) => {\r\n if (!currentRequestOptions.disableBlockUI)\r\n this.utilityService.stopBlockUI();\r\n }, error => {\r\n if (!currentRequestOptions.disableErrorHandler)\r\n this.handleError(error);\r\n }), map((data: T) => {\r\n if (currentRequestOptions.castResponsetoClass)\r\n return plainToClass(responseType, data, { excludeExtraneousValues: true });\r\n else\r\n return data;\r\n })\r\n );\r\n }\r\n\r\n delete<T>(Url: string, deletedId: string, requestOptions?: RequestOptionsModel, responseType?: new () => T, params?: HttpParams): Observable<T> {\r\n if (!this.isOnline()) {\r\n const errorCode = 504; // Custom error code for internet disconnection\r\n const errorMessage = 'Internet connection is disconnected.';\r\n var error = new HttpErrorResponse({ error: { Message: errorMessage }, status: 504 });\r\n this.handleError(error);\r\n return;\r\n }\r\n\r\n const currentRequestOptions = requestOptions || new RequestOptionsModel();\r\n\r\n let headers = this.getHeaders();\r\n if (!currentRequestOptions.disableBlockUI)\r\n this.utilityService.startBlockUI();\r\n return this.http.delete<T>(this.environmentService.getApiUrl() + Url + `/${deletedId}`, { headers: headers, params: params }).pipe(\r\n takeUntil(this.onDestroy$),\r\n tap((result) => {\r\n if (!currentRequestOptions.disableBlockUI)\r\n this.utilityService.stopBlockUI();\r\n }, error => {\r\n if (!currentRequestOptions.disableErrorHandler)\r\n this.handleError(error);\r\n }), map((data: T) => {\r\n if (currentRequestOptions.castResponsetoClass)\r\n return plainToClass(responseType, data, { excludeExtraneousValues: true });\r\n else\r\n return data;\r\n })\r\n );\r\n }\r\n\r\n put<T>(Url: string, model?: any, params?: HttpParams, responseType?: new () => T, requestOptions?: RequestOptionsModel): Observable<T> {\r\n if (!this.isOnline()) {\r\n const errorCode = 504; // Custom error code for internet disconnection\r\n const errorMessage = 'Internet connection is disconnected.';\r\n var error = new HttpErrorResponse({ error: { Message: errorMessage }, status: 504 });\r\n this.handleError(error);\r\n return;\r\n }\r\n\r\n const currentRequestOptions = requestOptions || new RequestOptionsModel();\r\n\r\n let headers = this.getHeaders();\r\n if (!currentRequestOptions.disableBlockUI)\r\n this.utilityService.startBlockUI();\r\n return this.http.put<T>(this.environmentService.getApiUrl() + Url, model, { headers: headers, params: params, responseType: currentRequestOptions.responseType }).pipe(\r\n takeUntil(this.onDestroy$),\r\n tap((result) => {\r\n if (!currentRequestOptions.disableBlockUI)\r\n this.utilityService.stopBlockUI();\r\n }, error => {\r\n if (!currentRequestOptions.disableErrorHandler)\r\n this.handleError(error);\r\n }), map((data: T) => {\r\n if (currentRequestOptions.castResponsetoClass)\r\n return plainToClass(responseType, data, { excludeExtraneousValues: true });\r\n else\r\n return data;\r\n })\r\n );\r\n }\r\n\r\n patch<T>(Url: string, model?: any, responseType?: new () => T, params?: HttpParams, requestOptions?: RequestOptionsModel): Observable<T> {\r\n if (!this.isOnline()) {\r\n const errorCode = 504; // Custom error code for internet disconnection\r\n const errorMessage = 'Internet connection is disconnected.';\r\n var error = new HttpErrorResponse({ error: { Message: errorMessage }, status: 504 });\r\n this.handleError(error);\r\n return;\r\n }\r\n\r\n const currentRequestOptions = requestOptions || new RequestOptionsModel();\r\n\r\n let headers = new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': this.authService.authorizationHeaderValue(),\r\n\r\n });\r\n this.currentLanguage = localStorage.getItem('language');\r\n headers = headers.set('Accept-Language', this.currentLanguage.toString());\r\n headers = headers.set('ignore-cookies', 'true');\r\n if (!currentRequestOptions.disableBlockUI)\r\n this.utilityService.startBlockUI();\r\n\r\n return this.http.patch<T>(this.environmentService.getApiUrl() + Url, model, { headers: headers, params: params, responseType: currentRequestOptions.responseType }).pipe(\r\n takeUntil(this.onDestroy$),\r\n tap((result) => {\r\n if (!currentRequestOptions.disableBlockUI)\r\n this.utilityService.stopBlockUI();\r\n }, error => {\r\n if (!currentRequestOptions.disableErrorHandler)\r\n this.handleError(error);\r\n }), map((data: T) => {\r\n if (currentRequestOptions.castResponsetoClass)\r\n return plainToClass(responseType, data, { excludeExtraneousValues: true });\r\n else\r\n return data;\r\n })\r\n );\r\n }\r\n\r\n download<T>(Url: string, params?: HttpParams, requestOptions?: RequestOptionsModel): Observable<T> {\r\n if (!this.isOnline()) {\r\n const errorCode = 504; // Custom error code for internet disconnection\r\n const errorMessage = 'Internet connection is disconnected.';\r\n var error = new HttpErrorResponse({ error: { Message: errorMessage }, status: 504 });\r\n this.handleError(error);\r\n return;\r\n }\r\n\r\n const currentRequestOptions = requestOptions || new RequestOptionsModel();\r\n\r\n let headers = this.getHeaders();\r\n if (!currentRequestOptions.disableBlockUI)\r\n this.utilityService.startBlockUI();\r\n return this.http.get<T>(this.environmentService.getApiUrl() + Url, { headers: headers, params: params, responseType: currentRequestOptions.responseType }).pipe(\r\n takeUntil(this.onDestroy$),\r\n tap((result) => {\r\n if (!currentRequestOptions.disableBlockUI)\r\n this.utilityService.stopBlockUI();\r\n }, error => {\r\n if (!currentRequestOptions.disableErrorHandler)\r\n this.handleError(error);\r\n })\r\n );\r\n }\r\n\r\n\r\n Upload<T>(Url: string, model?: any, requestOptions?: RequestOptionsModel): Observable<any> {\r\n if (!this.isOnline()) {\r\n const errorCode = 504; // Custom error code for internet disconnection\r\n const errorMessage = 'Internet connection is disconnected.';\r\n var error = new HttpErrorResponse({ error: { Message: errorMessage }, status: 504 });\r\n this.handleError(error);\r\n return;\r\n }\r\n\r\n const currentRequestOptions = requestOptions || new RequestOptionsModel();\r\n\r\n let headers = this.getHeadersUpdated();\r\n return this.http.post(this.environmentService.getApiUrl() + Url, model, { headers: headers, reportProgress: true, observe: 'events' }).pipe(\r\n takeUntil(this.onDestroy$),\r\n tap((result) => {\r\n if (!currentRequestOptions.disableBlockUI)\r\n this.utilityService.stopBlockUI();\r\n }, error => {\r\n if (!currentRequestOptions.disableErrorHandler)\r\n this.handleError(error);\r\n })\r\n );\r\n }\r\n public destroyHandler(): void {\r\n this.onDestroy$.next();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n console.log(\"clearInterval\");\r\n this.destroyHandler();\r\n }\r\n\r\n private handleError(err: HttpErrorResponse) {\r\n var isEnglish = this.utilityService.getCurrentLanguage() == \"en\";\r\n if (err.error instanceof ErrorEvent) {\r\n this.utilityService.notifyErrorMessage();\r\n }\r\n else {\r\n if (err.status == 400)\r\n throwError(err);//error 400 is thrown to be catch by the Form component to handle Fluent validation errors\r\n else if (err.status == 401)\r\n this.router.navigate([\"/Admin/account/login\"]);\r\n else if (err.status == 403)\r\n this.utilityService.notifyErrorMessage(isEnglish ? \"Sorry, You're not authorized to access this action\" : \"عذرا ليس لديك الصلاحيه لهذا الطلب\");\r\n else if (err.status == 510)\r\n this.utilityService.notifyErrorMessage(isEnglish ? \"Can not delete this item as it is related to others\" : \"لا يمكن حذف هذا العنصر لأنه مرتبط بعناصر أخرى\");\r\n else if (err.status == 515)\r\n this.utilityService.notifyErrorMessage((err.error ? err.error.Message : err.message));\r\n else if (err.status == 504)\r\n this.utilityService.notifyErrorMessage((err.error ? err.error.Message : err.message));\r\n else {\r\n console.log(`error message is: ${err.error ? err.error.Message : err.message}`);\r\n this.utilityService.notifyErrorMessage(this.utilityService.getResourceValue(\"ErrorMassage\"));\r\n }\r\n }\r\n this.utilityService.stopBlockUI();\r\n }\r\n\r\n getHeaders() {\r\n return new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': this.authService.authorizationHeaderValue(),\r\n 'Client-Local-Time-Zone': Intl.DateTimeFormat().resolvedOptions().timeZone,\r\n 'Accept-Language': localStorage.getItem('language'),\r\n 'ignore-cookies': 'true'\r\n });\r\n }\r\n getHeadersUpdated() {\r\n return new HttpHeaders({\r\n 'Authorization': this.authService.authorizationHeaderValue(),\r\n 'Client-Local-Time-Zone': Intl.DateTimeFormat().resolvedOptions().timeZone,\r\n 'Accept-Language': localStorage.getItem('language'),\r\n 'ignore-cookies': 'true',\r\n 'Video-Upload': 'true',\r\n 'Image-Upload': 'true',\r\n });\r\n\r\n }\r\n}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { BBSFTranslateService } from '.';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StylesBundleService {\r\n\r\n constructor(@Inject(DOCUMENT) private document: Document, private translateService: BBSFTranslateService) { }\r\n\r\n loadThemes(lang: string, bundleEnglishName: string, bundleArabicName: string) {\r\n if (lang == \"ar\") {\r\n this.loadStyleBundle(bundleArabicName.toString());\r\n document.querySelector('html').setAttribute(\"b-lang\", \"ar\"); //use b-lang instead of lang to fix firefox number inputs in Arabic locale\r\n document.querySelector('html').setAttribute(\"dir\", \"rtl\");\r\n } else {\r\n this.loadStyleBundle(bundleEnglishName.toString());\r\n document.querySelector('html').setAttribute(\"b-lang\", \"en\");\r\n document.querySelector('html').setAttribute(\"dir\", \"ltr\");\r\n }\r\n\r\n }\r\n\r\n loadThemesColor(theme: string, bundleDarkName: string, bundleLightName: string) {\r\n if (theme == \"Light\")\r\n this.loadStyleBundle(bundleLightName.toString());\r\n else\r\n this.loadStyleBundle(bundleDarkName.toString());\r\n }\r\n\r\n private loadStyleBundle(styleName: string): void {\r\n const head = this.document.getElementsByTagName('head')[0];\r\n let themeLink = this.document.getElementById('client-theme') as HTMLLinkElement;\r\n let shouldRemoveOld = false;\r\n\r\n if (themeLink) {\r\n // ✅ Check if current CSS already loaded (by exact filename)\r\n const currentFileName = this.getFileName(themeLink.href);\r\n const requestedFileName = this.getFileName(styleName);\r\n\r\n if (currentFileName === requestedFileName) {\r\n return; // Same CSS already loaded\r\n } else {\r\n shouldRemoveOld = true; // Mark for removal after new CSS is added\r\n }\r\n }\r\n\r\n // ✅ Add new CSS first (prevents FOUC)\r\n const style = this.document.createElement('link');\r\n style.id = 'client-theme';\r\n style.rel = 'stylesheet';\r\n style.href = `${styleName}`;\r\n head.appendChild(style);\r\n\r\n // ✅ Remove old CSS after new one is added (smooth transition)\r\n if (shouldRemoveOld && themeLink) {\r\n themeLink.remove();\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Extract filename from full path\r\n * @param path Full path or just filename\r\n * @returns The filename only\r\n */\r\n private getFileName(path: string): string {\r\n // Extract just the filename from full path\r\n const parts = path.split('/');\r\n return parts[parts.length - 1];\r\n }\r\n}\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BBSFTranslateService extends TranslateService {\r\n}","import { inject } from \"@angular/core\";\r\nimport { ResolveFn } from \"@angular/router\";\r\nimport { BBSFTranslateService } from \".\";\r\n\r\nexport const TranslationResolverService: ResolveFn<any> = () => {\r\n let translateService = inject(BBSFTranslateService);\r\n return translateService.getTranslation(translateService.currentLang);\r\n}","import { Injectable, Injector } from '@angular/core';\r\nimport { BlockUI, NgBlockUI } from 'ng-block-ui';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { BBSFTranslateService, EnvironmentService } from '.';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UtilityService {\r\n\r\n isCreatedBefore = false;\r\n\r\n @BlockUI() blockUI: NgBlockUI;\r\n\r\n constructor(private translator: BBSFTranslateService, private environmentService: EnvironmentService, private injector: Injector) {\r\n\r\n }\r\n\r\n getResourceValue(Key: string): string { \r\n let ResourceValue = this.translator.instant(Key)\r\n return ResourceValue;\r\n }\r\n\r\n getCurrentLanguage() {\r\n let currentLanguage = this.environmentService.getDefaultLanguage();\r\n let lang = localStorage.getItem('language');\r\n if (lang)\r\n currentLanguage = lang;\r\n else\r\n localStorage.setItem('language', currentLanguage);\r\n return currentLanguage;\r\n }\r\n\r\n isCurrentLanguageEnglish() {\r\n return this.getCurrentLanguage() == \"en\"\r\n }\r\n\r\n isCurrentLanguageArabic() {\r\n return this.getCurrentLanguage() == \"ar\"\r\n }\r\n\r\n notifySuccessMessage(Message?: string, title?: string, time?: number, showHeader: boolean = true) {\r\n let MessageTemplate = this.getResourceValue(\"SuccessMessage\");\r\n let titleTemplate: string;\r\n if (Message) {\r\n MessageTemplate = Message;\r\n }\r\n if (title) {\r\n titleTemplate = title;\r\n }\r\n let toaster = this.injector.get(ToastrService);\r\n showHeader ? toaster.success(MessageTemplate, titleTemplate) : toaster.success(MessageTemplate);\r\n }\r\n\r\n notifyErrorMessage(Message?: string, title?: string, time?: number, showHeader: boolean = true) {\r\n let MessageTemplate = this.getResourceValue(\"ErrorMessage\");\r\n let titleTemplate = this.getResourceValue(\"Error\");\r\n if (Message) {\r\n MessageTemplate = Message;\r\n }\r\n if (title) {\r\n titleTemplate = title;\r\n }\r\n const toaster = this.injector.get(ToastrService);\r\n showHeader ? toaster.error(MessageTemplate, titleTemplate) : toaster.error(MessageTemplate);\r\n }\r\n\r\n notifyWarningMessage(Message?: string, title?: string, time?: number, showHeader: boolean = true) {\r\n let MessageTemplate = this.getResourceValue(\"WarningMessage\");\r\n let titleTemplate = this.getResourceValue(\"Warning\");\r\n if (Message) {\r\n MessageTemplate = Message;\r\n }\r\n if (title) {\r\n titleTemplate = title;\r\n }\r\n const toaster = this.injector.get(ToastrService);\r\n showHeader ? toaster.warning(MessageTemplate, titleTemplate) : toaster.warning(MessageTemplate);\r\n }\r\n\r\n startBlockUI() {\r\n this.blockUI.start();\r\n }\r\n\r\n stopBlockUI() {\r\n this.blockUI.stop();\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { WordDocumentModel } from '../models';\r\n\r\n/**\r\n * Word Document Service\r\n * \r\n * Uses dynamic imports to avoid bundling word generation dependencies (~8 MB)\r\n * unless the service is actually used.\r\n * \r\n * Dependencies (loaded on-demand):\r\n * - xmlbuilder2\r\n * - jszip\r\n * - html-to-vdom\r\n * - virtual-dom\r\n * - image-size\r\n * - image-to-base64\r\n * - color-name\r\n * - escape-html\r\n * - mime-types\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class WordDocumentService {\r\n\r\n async generateWordByteFile(model: WordDocumentModel) {\r\n // Dynamic import to avoid bundling word generation dependencies\r\n // unless this method is actually called\r\n const { generateContainer } = await import('../config/word/index');\r\n\r\n let documentOptions: any = {};\r\n if (model.options.isLandscape) documentOptions.orientation = 'landscape';\r\n documentOptions.pageSize = {\r\n width: model.options.pageWidth * 15,\r\n height: model.options.pageHeight * 15,\r\n };\r\n documentOptions.margins = {\r\n top: model.options.top * 15,\r\n right: model.options.right * 15,\r\n bottom: model.options.bottom * 15,\r\n left: model.options.left * 15,\r\n header: model.options.top * 15 * 2,\r\n footer: model.options.bottom * 15 * 2,\r\n gutter: 0,\r\n };\r\n documentOptions.footer = true;\r\n documentOptions.header = true;\r\n documentOptions.pageNumber = model.options.showPaging;\r\n documentOptions.table = { row: { cantSplit: true } };\r\n var fileBuffer = await generateContainer(\r\n model.body,\r\n model.header,\r\n documentOptions,\r\n model.footer\r\n );\r\n return fileBuffer;\r\n }\r\n\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { RequestHandlerService } from \"./request-handler.service\";\r\nimport { Observable } from \"rxjs\";\r\nimport { LanguageDTO } from \"../models\";\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n })\r\n export class LanguageService {\r\n apiUrl = '/api/Language/';\r\n constructor(private http: RequestHandlerService) { }\r\n\r\n getLanguages():Observable<LanguageDTO[]> {\r\n return this.http.get(this.apiUrl + 'GetAll', null, null);\r\n }\r\n \r\n }","import { Injectable, NgZone } from '@angular/core';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { UtilityService } from './utility.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SpeechRecognitionService {\r\n recognition: any;\r\n isListening = false;\r\n isSupported = false;\r\n language: string = 'en-US';\r\n\r\n constructor(private zone: NgZone,private utilityService:UtilityService) {\r\n const SpeechRecognition = (window as any).SpeechRecognition || (window as any).webkitSpeechRecognition;\r\n\r\n if (SpeechRecognition) {\r\n this.recognition = new SpeechRecognition();\r\n this.recognition.continuous = true;\r\n this.recognition.interimResults = false;\r\n this.recognition.maxAlternatives = 1;\r\n this.isSupported = true;\r\n }\r\n }\r\n\r\n startListening(language: string = this.language): Observable<string> {\r\n if (!this.isSupported) {\r\n return throwError(() => new Error('Web Speech API is not supported in this browser.'));\r\n }\r\n\r\n return new Observable(observer => {\r\n this.isListening = true;\r\n this.recognition.lang = language;\r\n this.recognition.start();\r\n\r\n this.recognition.onresult = (event: any) => {\r\n this.zone.run(() => {\r\n const transcript = event.results[event.results.length - 1][0].transcript;\r\n observer.next(transcript);\r\n });\r\n };\r\n\r\n this.recognition.onspeechend = () => {\r\n this.stopListening();\r\n };\r\n\r\n this.recognition.onerror = (event: any) => {\r\n this.zone.run(() => {\r\n if (event.error === 'not-allowed') {\r\n this.utilityService.notifyErrorMessage(this.utilityService.getResourceValue(\"MicAccessDenied\"));\r\n observer.error('Microphone access denied by the user.');\r\n } else {\r\n observer.error(event.error);\r\n }\r\n });\r\n };\r\n\r\n this.recognition.onend = () => {\r\n this.zone.run(() => {\r\n if (this.isListening) {\r\n this.recognition.start(); // Automatically restart\r\n } else {\r\n observer.complete();\r\n }\r\n });\r\n };\r\n });\r\n }\r\n\r\n stopListening() {\r\n if (this.isSupported) {\r\n this.isListening = false;\r\n this.recognition.stop();\r\n }\r\n }\r\n\r\n\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { lastValueFrom } from 'rxjs';\r\nimport { BBSFTranslateService } from './translate.service';\r\nimport { environment } from '../config/environment';\r\n\r\ndeclare const window: any;\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class FileLoaderService {\r\n private availableLanguages = ['en', 'ar']; // Add more languages as needed\r\n // environment:any;\r\n constructor(private translate: BBSFTranslateService, private http: HttpClient) {\r\n this.translate.addLangs(this.availableLanguages);\r\n }\r\n\r\n loadEnvironment(): Promise<void> {\r\n return new Promise((resolve, reject) => {\r\n const script = document.createElement('script');\r\n script.src = '/assets/config/environment.js';\r\n script.onload = () => {\r\n if (window.Environment) {\r\n Object.assign(environment, window.Environment);\r\n resolve();\r\n } else {\r\n reject('Environment variables not found.');\r\n }\r\n };\r\n script.onerror = () => reject('Failed to load environment.js');\r\n document.head.appendChild(script);\r\n });\r\n }\r\n\r\n async preloadTranslations(): Promise<void> {\r\n try {\r\n const requests = this.availableLanguages.map(async (lang) => {\r\n const translations = await lastValueFrom(this.http.get(`/assets/i18n/${lang}.json`));\r\n this.translate.setTranslation(lang, translations, true);\r\n });\r\n\r\n await Promise.all(requests);\r\n this.translate.use('en'); // Set default language manually\r\n } catch (error) {\r\n console.error('Error preloading translations:', error);\r\n }\r\n }\r\n}","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable, Injector } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { Router } from '@angular/router';\r\nimport { JwtHelperService } from '@auth0/angular-jwt';\r\nimport { BBSFTranslateService, EnvironmentService } from '../services';\r\nimport { User } from '../models/UserModel';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { UtilityService } from '../services/utility.service';\r\nimport { AuthenticationModes } from '../enums/authentication-modes-enums';\r\nimport { setTimeout } from 'timers';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AuthService {\r\n public redirectUrl: string = '';\r\n static user: User | null = null;\r\n _user: User | null;\r\n private get user(): User | null {\r\n if (!this._user) {\r\n this._user = this.getUserManager();\r\n }\r\n return this._user;\r\n }\r\n static UserClaims: any = null;\r\n private jwtHelper: JwtHelperService = new JwtHelperService();\r\n private isAuthenticatedSubject = new BehaviorSubject<boolean>(this.hasToken());\r\n isAuthenticate$ = this.isAuthenticatedSubject.asObservable();\r\n //refresh\r\n static timers = [];\r\n static seconds = 0;\r\n\r\n constructor(private injector: Injector, private http: HttpClient, private environmentService: EnvironmentService, private translateService: BBSFTranslateService, private router: Router, private cookieService: CookieService, private utilityService: UtilityService) {\r\n \r\n }\r\n\r\n private _TOKEN_KEY: string\r\n get TOKEN_KEY() {\r\n if (!this._TOKEN_KEY) {\r\n this._TOKEN_KEY = this.environmentService.getCookieName();\r\n }\r\n return this._TOKEN_KEY;\r\n }\r\n\r\n private hasToken(): boolean {\r\n const token = this.cookieService.get(this.TOKEN_KEY);\r\n return token && !this.jwtHelper.isTokenExpired(token);\r\n }\r\n\r\n getUserManager() {\r\n const token = this.cookieService.get(this.TOKEN_KEY);\r\n if (token) {\r\n if (!this.jwtHelper.isTokenExpired(token))\r\n this.handleAccessTokenWithoutLanguage(token);\r\n else\r\n this.cookieService.delete(this.TOKEN_KEY, '/');\r\n }\r\n else {\r\n AuthService.timers.map(t => clearInterval(t));\r\n AuthService.timers = [];\r\n AuthService.user = null;\r\n this._user = null;\r\n }\r\n return AuthService.user;\r\n }\r\n\r\n getUser() {\r\n this._user = AuthService.user;\r\n }\r\n storUser(User: any) {\r\n AuthService.user = this._user = this.user;\r\n }\r\n\r\n getCurrentUser() {\r\n return AuthService.user;\r\n }\r\n\r\n isAuthenticated(): boolean {\r\n AuthService.user = this.user;\r\n return AuthService.user != null && !this.jwtHelper.isTokenExpired(AuthService.user.access_token);\r\n }\r\n isUserInRole(allowedPermission) {\r\n let selectedPermissionSetID = Number.parseInt(AuthService.user.profile['selectedpermissionsetid']);\r\n return allowedPermission.includes(selectedPermissionSetID);\r\n }\r\n\r\n isUserPermissionSetsInRoles(allowedPermission: number[]): boolean {\r\n const permissionSetSIDString = AuthService.user.profile['permissionSetSID'];\r\n if (!permissionSetSIDString) {\r\n return false;\r\n }\r\n\r\n // Split comma-separated string and convert to numbers\r\n const userPermissionSets = permissionSetSIDString\r\n .split(',')\r\n .map(id => Number.parseInt(id.trim()))\r\n .filter(id => !isNaN(id)); // Filter out invalid numbers\r\n\r\n // Check if any user permission set is in the allowed permissions\r\n return userPermissionSets.some(permissionSetID => allowedPermission.includes(permissionSetID));\r\n }\r\n\r\n authorizationHeaderValue(): string {\r\n return AuthService.user\r\n ? `${AuthService.user.token_type} ${AuthService.user.access_token}`\r\n : '';\r\n }\r\n\r\n name(): string {\r\n return AuthService.user != null ? AuthService.user.profile.given_name : '';\r\n }\r\n setUrl(url) {\r\n localStorage.setItem('redirectUrl', url);\r\n }\r\n getUrl() {\r\n return localStorage.getItem('redirectUrl') ?? \"/\";\r\n }\r\n\r\n signOut() {\r\n let isAuthenticated = this.isAuthenticated();\r\n this.cookieService.delete(this.TOKEN_KEY, '/');\r\n AuthService.timers.map(t => clearInterval(t));\r\n AuthService.timers = [];\r\n AuthService.user = null;\r\n this._user = null;\r\n localStorage.removeItem(\"redirectUrl\");\r\n if (isAuthenticated) {\r\n this.logout().subscribe(res => {\r\n if (this.environmentService.getBBSFAuthenticationMode() == AuthenticationModes.UAEPass)\r\n this.logoutFromUAEPass();\r\n else\r\n this.router.navigate(['/Admin/account/login']);\r\n });\r\n }\r\n else {\r\n if (this.environmentService.getBBSFAuthenticationMode() == AuthenticationModes.UAEPass)\r\n this.logoutFromUAEPass();\r\n else\r\n this.router.navigate(['/Admin/account/login']);\r\n }\r\n }\r\n\r\n logout() {\r\n const httpOptions = {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n }),\r\n };\r\n let ApiUrl = '/Account/';\r\n return this.http.get(this.environmentService.getApiUrl() + ApiUrl + 'Logout', httpOptions);\r\n }\r\n\r\n\r\n clearUserSessionClaims() {\r\n const httpOptions = {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n }),\r\n };\r\n let ApiUrl = '/api/Home/';\r\n return this.http.get(this.environmentService.getBaseUrl() + ApiUrl + 'ClearCurrentUserSession', httpOptions);\r\n }\r\n\r\n async handleAccessToken(response: any): Promise<void> {\r\n this.cookieService.delete(this.TOKEN_KEY, '/');\r\n const token = response;\r\n AuthService.user = null;\r\n AuthService.user = new User();\r\n AuthService.user.token_type = \"Bearer\";\r\n AuthService.user.access_token = token;\r\n AuthService.user.profile = this.jwtHelper.decodeToken(token);\r\n AuthService.user.expires_at = this.jwtHelper.getTokenExpirationDate(token);\r\n this._user = AuthService.user;\r\n localStorage.setItem(\"language\", AuthService.user.profile.locale);\r\n this.cookieService.set(this.TOKEN_KEY, token, AuthService.user.expires_at, \"/\", null, true, 'Lax');\r\n this.isAuthenticatedSubject.next(true);\r\n this.setTokenSeconds();\r\n AuthService.timers.push(this.checkRefreshToken());\r\n await this.updateLanguage();\r\n }\r\n\r\n handleAccessTokenWithoutLanguage(response: any) {\r\n this.cookieService.delete(this.TOKEN_KEY, '/');\r\n const token = response;\r\n AuthService.user = null;\r\n AuthService.user = new User();\r\n AuthService.user.token_type = \"Bearer\";\r\n AuthService.user.access_token = token;\r\n AuthService.user.profile = this.jwtHelper.decodeToken(token);\r\n AuthService.user.expires_at = this.jwtHelper.getTokenExpirationDate(token);\r\n this.setTokenSeconds();\r\n this._user = AuthService.user;\r\n localStorage.setItem(\"language\", AuthService.user.profile.locale);\r\n this.cookieService.set(this.TOKEN_KEY, token, AuthService.user.expires_at, \"/\", null, true, 'Lax');\r\n this.isAuthenticatedSubject.next(true);\r\n AuthService.timers.push(this.checkRefreshToken());\r\n }\r\n async updateLanguage() {\r\n if (!localStorage.getItem('language') || localStorage.getItem('language') == this.user.profile.locale)\r\n localStorage.setItem('language', this.user.profile.locale);\r\n\r\n if (this.translateService.currentLang != localStorage.getItem('language')) {\r\n this.translateService.resetLang(this.translateService.currentLang);\r\n await this.translateService.reloadLang(localStorage.getItem('language')).subscribe();\r\n }\r\n }\r\n\r\n checkRefreshToken() {\r\n let date = new Date() as any;\r\n return setInterval(() => {\r\n if (Math.floor(AuthService.seconds) < 120 && this.isAuthenticated()) {\r\n AuthService.timers.map(t => clearInterval(t));\r\n AuthService.timers = [];\r\n const token = this.cookieService.get(this.TOKEN_KEY);\r\n if (token) {\r\n this.refresh();\r\n }\r\n }\r\n AuthService.seconds--;\r\n }, 1000);\r\n }\r\n setTokenSeconds() {\r\n let date = new Date() as any;\r\n AuthService.seconds = (AuthService.user.expires_at - date) / 1000;\r\n }\r\n refresh() {\r\n this.cookieService.delete(this.TOKEN_KEY, '/');\r\n const httpOptions = {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': this.authorizationHeaderValue(),\r\n }),\r\n };\r\n let ApiUrl = '/api/Home/';\r\n this.http.get(this.environmentService.getApiUrl() + ApiUrl + 'RefreshAccessToken', httpOptions).subscribe((res: any) => {\r\n this.handleAccessTokenWithoutLanguage(res.val);\r\n });\r\n }\r\n\r\n loginWithUAEPass() {\r\n const authEndpoint = `${this.environmentService.getUAEPassBaseUrl()}${this.environmentService.getUAEPassAuthorizationEndPoint()}`;\r\n const queryParams = {\r\n response_type: 'code',\r\n client_id: `${this.environmentService.getUAEPassClientID()}`,\r\n redirect_uri: `${this.environmentService.getBaseUrl()}${this.environmentService.getUAEPassRedirectUrl()}`,\r\n scope: 'urn:uae:digitalid:profile:general urn:uae:digitalid:profile:general:profileType urn:uae:digitalid:profile:general:unifiedId',\r\n state: this.translateService.currentLang,\r\n acr_values: 'urn:safelayer:tws:policies:authentication:level:low',\r\n ui_locales: this.translateService.currentLang,\r\n };\r\n const queryParamsString = Object.entries(queryParams)\r\n .map(([key, value]) => `${key}=${encodeURIComponent(value)}`)\r\n .join('&');\r\n const loginUrl = `${authEndpoint}?${queryParamsString}`;\r\n window.location.href = loginUrl;\r\n return;\r\n }\r\n\r\n logoutFromUAEPass() {\r\n const logoutEndpoint = `${this.environmentService.getUAEPassBaseUrl()}${this.environmentService.getUAEPassLogoutEndPoint()}`;\r\n const queryParams = {\r\n redirect_uri: `${this.environmentService.getBaseUrl()}`,\r\n };\r\n const queryParamsString = Object.entries(queryParams)\r\n .map(([key, value]) => `${key}=${encodeURIComponent(value)}`)\r\n .join('&');\r\n\r\n const logoutUrl = `${logoutEndpoint}?${queryParamsString}`;\r\n window.location.href = logoutUrl;\r\n return;\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { BlockUIModule } from 'ng-block-ui';\r\nimport { ToastrModule } from 'ngx-toastr';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport {\r\n UtilityService, EnvironmentService, RequestHandlerService, StylesBundleService, BBSFTranslateService,\r\n ControlValidationService, MasterLayoutService, ConfigurationService, AuthService, LanguageService,\r\n SpeechRecognitionService\r\n} from './shared';\r\n\r\n@NgModule({\r\n declarations: [\r\n ],\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n BlockUIModule.forRoot(),\r\n ToastrModule.forRoot(),\r\n\r\n ],\r\n exports: [],\r\n providers: [\r\n UtilityService,\r\n EnvironmentService,\r\n AuthService,\r\n RequestHandlerService,\r\n StylesBundleService,\r\n TranslateService,\r\n BBSFTranslateService,\r\n ControlValidationService,\r\n MasterLayoutService,\r\n ConfigurationService,\r\n CookieService,\r\n LanguageService,\r\n SpeechRecognitionService\r\n ]\r\n})\r\nexport class BBSFUtilitiesModule {\r\n\r\n}\r\n","/*\r\n * Public API Surface of @bnsights/bbsf-utilities\r\n * \r\n * This is the CORE entry point with minimal dependencies.\r\n * \r\n * For feature-specific services, use secondary entry points:\r\n * - @bnsights/bbsf-utilities/auth - Authentication services\r\n * - @bnsights/bbsf-utilities/word - Word document generation\r\n * - @bnsights/bbsf-utilities/translate - Translation services\r\n * - @bnsights/bbsf-utilities/ui - UI services (BlockUI, Toastr, etc.)\r\n * - @bnsights/bbsf-utilities/http - HTTP request handling\r\n */\r\n\r\n//Module (Note: for backward compatibility - contains ALL providers)\r\nexport * from './lib/bbsf-utilities.module';\r\n\r\n//#region Core Services (minimal dependencies)\r\n\r\nexport * from './lib/shared/services/environment.service';\r\nexport * from './lib/shared/services/styles-bundle.service';\r\nexport * from './lib/shared/services/appearance-configuration.service';\r\nexport * from './lib/shared/services/configuration.service';\r\n\r\n//#endregion\r\n\r\n//#region config\r\nexport * from './lib/shared/config/environment';\r\n//#endregion\r\n\r\n//#region models \r\nexport * from './lib/shared/models/area-model';\r\nexport * from './lib/shared/models/error-model';\r\nexport * from './lib/shared/models/UserModel';\r\n//#endregion\r\n\r\n//#region export enums\r\nexport * from './lib/shared/enums/authentication-modes-enums';\r\n//#endregion\r\n\r\n/* \r\n * DEPRECATED EXPORTS (for backward compatibility)\r\n * Please migrate to secondary entry points for these:\r\n */\r\n\r\n// Use @bnsights/bbsf-utilities/ui instead\r\nexport * from './lib/shared/services/utility.service';\r\nexport * from './lib/shared/services/control-validation.service';\r\nexport * from './lib/shared/services/speech-recognition.service';\r\n\r\n// Use @bnsights/bbsf-utilities/translate instead\r\nexport * from './lib/shared/services/translate.service';\r\nexport * from './lib/shared/services/translation-resolver.service';\r\nexport { TranslationResolverService } from './lib/shared/services/translation-resolver.service';\r\nexport * from './lib/shared/services/language.service';\r\n\r\n// Use @bnsights/bbsf-utilities/http instead\r\nexport * from './lib/shared/services/request-handler.service';\r\nexport * from './lib/shared/services/master-layout.service';\r\nexport * from './lib/shared/services/preload.service';\r\nexport * from './lib/shared/models/request-options-model';\r\n\r\n// Use @bnsights/bbsf-utilities/word instead\r\n// NOTE: These exports use dynamic imports internally to avoid bundling word dependencies\r\nexport * from './lib/shared/services/word-document.service';\r\nexport * from './lib/shared/models/word-document-model';\r\n\r\n// Use @bnsights/bbsf-utilities/auth instead\r\nexport * from './lib/shared/authentication/auth.service';\r\n\r\n// Re-export speech-language model\r\nexport * from './lib/shared/models/speech-language';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ConfigurationService","i1.UtilityService","i1","i2.RequestHandlerService","i3.AuthService","i2.StylesBundleService","i2.EnvironmentService","i2.AuthService","i3.EnvironmentService","i3.UtilityService","i3.BBSFTranslateService","i4","i1.BBSFTranslateService","i1.EnvironmentService","i1.RequestHandlerService","i2","i2.BBSFTranslateService","i3","i5.UtilityService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bnsights-bbsf-utilities.mjs","sources":["../../../projects/bbsf-utilities/src/lib/shared/models/UserModel.ts","../../../projects/bbsf-utilities/src/lib/shared/enums/authentication-modes-enums.ts","../../../projects/bbsf-utilities/src/lib/shared/services/appearance-configuration.service.ts","../../../projects/bbsf-utilities/src/lib/shared/services/configuration.service.ts","../../../projects/bbsf-utilities/src/lib/shared/models/area-model.ts","../../../projects/bbsf-utilities/src/lib/shared/models/error-model.ts","../../../projects/bbsf-utilities/src/lib/shared/models/request-options-model.ts","../../../projects/bbsf-utilities/src/lib/shared/models/speech-language.ts","../../../projects/bbsf-utilities/src/lib/shared/services/control-validation.service.ts","../../../projects/bbsf-utilities/src/lib/shared/config/environment.ts","../../../projects/bbsf-utilities/src/lib/shared/services/environment.service.ts","../../../projects/bbsf-utilities/src/lib/shared/services/master-layout.service.ts","../../../projects/bbsf-utilities/src/lib/shared/services/request-handler.service.ts","../../../projects/bbsf-utilities/src/lib/shared/services/styles-bundle.service.ts","../../../projects/bbsf-utilities/src/lib/shared/services/translate.service.ts","../../../projects/bbsf-utilities/src/lib/shared/services/translation-resolver.service.ts","../../../projects/bbsf-utilities/src/lib/shared/services/utility.service.ts","../../../projects/bbsf-utilities/src/lib/shared/services/language.service.ts","../../../projects/bbsf-utilities/src/lib/shared/services/speech-recognition.service.ts","../../../projects/bbsf-utilities/src/lib/shared/services/preload.service.ts","../../../projects/bbsf-utilities/src/lib/shared/authentication/auth.service.ts","../../../projects/bbsf-utilities/src/lib/bbsf-utilities.module.ts","../../../projects/bbsf-utilities/src/public-api.ts","../../../projects/bbsf-utilities/src/bnsights-bbsf-utilities.ts"],"sourcesContent":["export class User {\r\n\r\n token_type: string;\r\n access_token: string;\r\n profile: any;\r\n expires_at: any\r\n}\r\n","export enum AuthenticationModes {\r\n Forms = 'Forms',\r\n UAEPass = \"UAEPass\",\r\n WindowsAD = \"WindowsAD\",\r\n AzureAD = \"AzureAD\",\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { ConfigurationService } from \".\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AppearanceConfigurationService {\r\n\r\n constructor(private configService: ConfigurationService) {\r\n }\r\n\r\n getLayoutTheme() {\r\n return this.configService.getConfigurationValue('AnonymousLayout_Theme');\r\n }\r\n\r\n getFooterText() {\r\n return this.configService.getConfigurationValue('AnonymousLayout_FooterText');\r\n }\r\n\r\n getPageTitle() {\r\n return this.configService.getConfigurationValue('AnonymousLayout_PageTitle');\r\n }\r\n\r\n getFavIcon() {\r\n return this.configService.getConfigurationValue('AnonymousLayout_FavIcon');\r\n }\r\n\r\n getCustomStyles() {\r\n return this.configService.getConfigurationValue('AnonymousLayout_CustomStyles');\r\n }\r\n\r\n getLogo() {\r\n return this.configService.getConfigurationValue('AnonymousLayout_Logo');\r\n }\r\n \r\n}","import { HttpClient } from \"@angular/common/http\";\r\nimport { Injectable, Injector, OnInit } from \"@angular/core\";\r\nimport { AuthService } from \"../authentication\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConfigurationService {\r\n\r\n static JsonData: any[] = [];\r\n private currentUserProfile: any;\r\n private _authService: AuthService;\r\n\r\n constructor(private httpClient: HttpClient, private injector: Injector) {\r\n this.httpClient.get(\"./assets/config/configurations.json\")\r\n .subscribe(data => {\r\n ConfigurationService.JsonData = data as any[];\r\n });\r\n }\r\n\r\n private get authService(): AuthService {\r\n if (!this._authService) {\r\n this._authService = this.injector.get(AuthService);\r\n }\r\n return this._authService;\r\n }\r\n\r\n getConfigurationValue(key: string) {\r\n this.currentUserProfile = this.authService.getCurrentUser()?.profile;\r\n var selectedKey = ConfigurationService.JsonData[key];\r\n if (selectedKey && typeof selectedKey === 'object') {\r\n if (selectedKey.OrganizationConfigurations) {\r\n if (this.currentUserProfile && this.currentUserProfile.organizationGUID_ID) {\r\n let organizationValue = Array(selectedKey.OrganizationConfigurations).find(o => o.OrganizationID_GUID == this.currentUserProfile.organizationGUID_ID);\r\n return organizationValue;\r\n }\r\n } else {\r\n return selectedKey.Value;\r\n }\r\n } else {\r\n return selectedKey;\r\n }\r\n }\r\n\r\n}","export class AreaModel {\r\n permissionSetID: number\r\n areaUrl: string;\r\n}\r\n","export class ErrorModel {\r\n field: string;\r\n controlName: string;\r\n message: string;\r\n}\r\n","import { FormGroup } from \"@angular/forms\";\r\n\r\nexport class RequestOptionsModel {\r\n disableSuccessNotification: boolean = false;\r\n disableBlockUI: boolean = false;\r\n disableErrorHandler: boolean = false;\r\n customSuccessMessage: string;\r\n customErrorMessage: string;\r\n responseType: any = \"\"\r\n formGroup: FormGroup = null\r\n castResponsetoClass: boolean = true;\r\n}\r\n","export class LanguageDTO {\r\n name: string;\r\n prefix: string;\r\n dialect: string;\r\n englishName: string;\r\n arabicName: string;\r\n nativeName: string;\r\n detected: string;\r\n searching: string;\r\n elevating: string;\r\n translating: string;\r\n generatingAnswersForYou: string;\r\n isRTL: boolean;\r\n}\r\n","import { HttpErrorResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { BlockUI, NgBlockUI } from 'ng-block-ui';\r\nimport { ErrorModel, RequestOptionsModel } from '../models';\r\nimport { UtilityService } from '.';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ControlValidationService {\r\n\r\n private requestOptions: RequestOptionsModel = new RequestOptionsModel();\r\n\r\n constructor(private utilityService: UtilityService) {\r\n }\r\n\r\n isCreatedBefor = false;\r\n\r\n @BlockUI() blockUI: NgBlockUI;\r\n\r\n showGlobalError(errorMessage?: string | string[], formId?: string, deleteOld?: boolean) {\r\n let globalErorrElement = document.getElementsByClassName('alert alert-InvalidValidation bg-light-danger text-danger')\r\n if (globalErorrElement.length > 0) {\r\n this.removeElementsByClass('alert alert-InvalidValidation bg-light-danger text-danger');\r\n }\r\n if (this.isCreatedBefor == true) {\r\n this.removeElementsByClass('alert alert-InvalidValidation bg-light-danger text-danger');\r\n }\r\n // tslint:disable-next-line: prefer-const\r\n if (!formId)\r\n formId = \"currentForm\"\r\n var object = document.getElementById(formId);\r\n const tagName = 'div';\r\n // tslint:disable-next-line: prefer-const\r\n var elementToAppend = document.createElement(tagName); // Your tag name here\r\n let message: string | string[] = \"\";\r\n\r\n if (!errorMessage || (typeof errorMessage == \"string\")) {\r\n if (localStorage.getItem('language') == \"ar\")\r\n message = errorMessage ? errorMessage : \"لديك بعص الأخطاء . من فضلك قم بالمراجعه \";\r\n else\r\n message = errorMessage ? errorMessage : \"You have some validation errors. Please check below\"\r\n elementToAppend.innerHTML = \"<ul class='list-unstyled m-0 py-3 d-flex align-items-center fs-6'><li><i class='fa fa-times-circle text-danger me-3 fs-2'></i>\" + message + \"</li></ul>\";\r\n elementToAppend.className += 'alert alert-InvalidValidation bg-light-danger text-danger';\r\n elementToAppend.id += 'errorId';\r\n // tslint:disable-next-line: prefer-for-of\r\n const elementToAppen = elementToAppend.cloneNode(true);\r\n // let targetElement = object.getElementsByClassName(\"b-control\")[0];\r\n object.insertBefore(elementToAppen, object.firstChild);\r\n }\r\n else {\r\n let ul = document.createElement(\"ul\");\r\n elementToAppend.appendChild(ul);\r\n\r\n for (const iterator of errorMessage) {\r\n let li = document.createElement(\"li\");\r\n li.innerHTML = iterator;\r\n ul.appendChild(li);\r\n }\r\n elementToAppend.className += 'alert alert-InvalidValidation bg-light-danger text-danger';\r\n elementToAppend.id += 'errorId';\r\n // tslint:disable-next-line: prefer-for-of\r\n const elementToAppen = elementToAppend.cloneNode(true);\r\n // let targetElement = object.getElementsByClassName(\"b-control\")[0];\r\n object.insertBefore(elementToAppen, object.firstChild);\r\n }\r\n this.isCreatedBefor = true;\r\n }\r\n\r\n removeGlobalError() {\r\n const removedList = document.getElementsByClassName('alert alert-InvalidValidation bg-light-danger text-danger');\r\n // tslint:disable-next-line: prefer-for-of\r\n for (let index = 0; index < removedList.length; index++) {\r\n const element = removedList[index];\r\n element.remove();\r\n }\r\n this.isCreatedBefor = false;\r\n }\r\n\r\n showInputErro(errors: any) {\r\n // show error on top of form \r\n this.showGlobalError();\r\n // remove old error from server\r\n this.removeElementsByClass('errortemplet');\r\n // Looping in error Object\r\n for (const key in errors) {\r\n if (errors.hasOwnProperty(key)) {\r\n for (const iterator of errors[key]) {\r\n const input = document.querySelectorAll('[ng-reflect-name=' + key + ']')[0];\r\n if ((input.attributes['ng-reflect-name'].value as string) === key) {\r\n this.removeElementsByClass('erroclass-' + key);\r\n const tagName = 'p'\r\n const elementToAppend = document.createElement(tagName); // Your tag name here\r\n elementToAppend.innerHTML = iterator;\r\n elementToAppend.style.color = 'red'\r\n elementToAppend.className += 'errortemplet erroclass-' + key;\r\n const elementToappen = elementToAppend.cloneNode(true);\r\n input.parentNode.insertBefore(elementToappen, input.lastChild);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n removeElementsByClass(className) {\r\n const elements = document.getElementsByClassName(className);\r\n while (elements.length > 0) {\r\n elements[0].parentNode.removeChild(elements[0]);\r\n }\r\n }\r\n\r\n renderServerErrors(form: FormGroup, err: HttpErrorResponse, requestOptions: RequestOptionsModel, formId?: string) {\r\n if (err.error == null) {\r\n return;\r\n }\r\n let errorsArray: string[] = [];\r\n\r\n this.requestOptions = requestOptions;\r\n\r\n if (err.error.validation_errors) {\r\n err.error.validation_errors.forEach((element: ErrorModel) => {\r\n let fieldName = element.field;\r\n let controlName = element.controlName;\r\n let message = element.message;\r\n if (form == null) {\r\n this.requestOptions.customErrorMessage ? this.utilityService.notifyErrorMessage(this.requestOptions.customErrorMessage) : this.utilityService.notifyErrorMessage(`${message}`);\r\n }\r\n else if (controlName && !this.hasControlName(form, controlName)) {\r\n errorsArray.push(`${fieldName}: ${message}`);\r\n }\r\n else {\r\n this.setFieldError(form, controlName, fieldName, message);\r\n this.showGlobalError(null, formId);\r\n }\r\n });\r\n\r\n if (errorsArray.length > 0)\r\n this.showGlobalError(errorsArray, formId)\r\n }\r\n }\r\n\r\n private hasControlName(form: FormGroup, controlName: string): boolean {\r\n let control = form.get(controlName);\r\n return control != null;\r\n }\r\n\r\n private setFieldError(form: FormGroup, controlName: string, fieldName: string, message: string) {\r\n let control = null\r\n\r\n if (controlName)\r\n control = this.getControlFormNameByFieldName(form, controlName);\r\n else\r\n control = this.getControlFormNameByFieldName(form, fieldName.split('.')[0]);\r\n\r\n let errors = { \"errorMassage\": message };\r\n let fieldNameArray = fieldName.split('.');\r\n if (fieldNameArray.length >= 1) {\r\n switch (fieldNameArray[fieldNameArray.length - 1].toLocaleLowerCase()) {\r\n case \"english\":\r\n let englishControl = control.get(\"English\")\r\n englishControl.setErrors(errors);\r\n break;\r\n case \"arabic\":\r\n let arabicControl = control.get(\"Arabic\")\r\n arabicControl.setErrors(errors);\r\n break;\r\n default:\r\n control.setErrors(errors);\r\n }\r\n }\r\n else {\r\n this.requestOptions.customErrorMessage ? this.utilityService.notifyErrorMessage(this.requestOptions.customErrorMessage) : this.utilityService.notifyErrorMessage(`${message}`)\r\n }\r\n }\r\n\r\n private getControlFormNameByFieldName(form: FormGroup, fieldName: string) {\r\n const formControls = form.controls;\r\n let controlName = Object.keys(formControls).find(c => c.toLocaleLowerCase() === fieldName.toLocaleLowerCase());\r\n let control = form.get(controlName);\r\n return control;\r\n }\r\n\r\n}\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build ---prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = Object.assign({}, (window as any).Environment);\r\n\r\n\r\n/*\r\n * In development mode, to ignore zone related error stack frames such as\r\n * `zone.run`, `zoneDelegate.invokeTask` for easier debugging, you can\r\n * import the following file, but please comment it out in production mode\r\n * because it will have performance impact when throw error\r\n */\r\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../config/environment';\r\nimport { AreaModel } from '../models';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EnvironmentService {\r\n\r\n static areaList: AreaModel[] = [];\r\n\r\n static AreaList: AreaModel[] = [];\r\n\r\n getEnvironmentObject() {\r\n return environment;\r\n }\r\n\r\n getBaseUrl() {\r\n return environment[\"BBSF_BaseURL\"];\r\n }\r\n\r\n getApiUrl() {\r\n return environment[\"BBSF_ApiUrl\"];\r\n }\r\n\r\n getProductionMode() {\r\n return environment[\"BBSF_IsProduction\"] as boolean;\r\n }\r\n\r\n getDefaultLanguage() {\r\n return environment[\"BBSF_DefaultLanguage\"] as string;\r\n }\r\n\r\n getIdentityServerUrl() {\r\n return environment[\"BBSF_IdentityServerUrl\"];\r\n }\r\n\r\n getIsIdentityServerExternal() {\r\n return environment[\"BBSF_IsExternalIdentityServer\"] as string;\r\n }\r\n\r\n getIsIdentityServerClientId() {\r\n return environment[\"BBSF_IdentityServer_Client_Id\"] as string;\r\n }\r\n\r\n getIsIdentityServerClientSecret() {\r\n return environment[\"BBSF_IdentityServer_Client_Secret\"] as string;\r\n }\r\n\r\n getBBSFAuthenticationMode() {\r\n let Mode = environment[\"BBSF_AuthenticationMode\"] as string;\r\n return Mode;\r\n }\r\n\r\n getUAEPassBaseUrl() {\r\n let Mode = environment[\"UAEPass_BaseUrl\"] as string;\r\n return Mode;\r\n }\r\n getUAEPassClientID() {\r\n let Mode = environment[\"UAEPass_ClientID\"] as string;\r\n return Mode;\r\n }\r\n getUAEPassRedirectUrl() {\r\n let Mode = environment[\"UAEPass_RedirectUrl\"] as string;\r\n return Mode;\r\n }\r\n getUAEPassAuthorizationEndPoint() {\r\n let Mode = environment[\"UAEPass_AuthorizationEndPoint\"] as string;\r\n return Mode;\r\n }\r\n\r\n getUAEPassRedirectLogoutUrl() {\r\n let Mode = environment[\"UAEPass_RedirectLogoutUrl\"] as string;\r\n return Mode;\r\n }\r\n\r\n getUAEPassLogoutEndPoint() {\r\n let Mode = environment[\"UAEPass_LogoutEndPoint\"] as string;\r\n return Mode;\r\n }\r\n\r\n\r\n getIsEnableWindowsAuthentication() {\r\n let Mode = environment[\"BBSF_Enable_WindowsAuthentication\"] as string;\r\n return Mode.toLocaleLowerCase() == 'true';\r\n }\r\n\r\n getAllowMultiTenancy() {\r\n let mode = environment[\"BBSF_AllowMultiTenancy\"] as string;\r\n return mode.toLocaleLowerCase() == 'true';\r\n }\r\n\r\n getCookieName() {\r\n let cookieName = environment[\"BBSF_CookieName\"];\r\n return cookieName;\r\n }\r\n}\r\n","import { HttpParams } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { EnvironmentService, RequestHandlerService, StylesBundleService } from '.';\r\nimport { AuthService } from '../authentication';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MasterLayoutService {\r\n\r\n apiUrl = '/api/Home/';\r\n\r\n constructor(private router: Router, private http: RequestHandlerService, private authService: AuthService,\r\n private stylesBundleService: StylesBundleService, private translate: TranslateService,\r\n private environmentService: EnvironmentService) { }\r\n\r\n switchLang(lang: string, bundleEnglishName: string, bundleArabicName: string) {\r\n if (this.authService.isAuthenticated()) {\r\n this.changeLanguage(lang).subscribe((result) => {\r\n this.updateUserInfo().subscribe((Value) => {\r\n let UserInfoObject = Value as any;\r\n this.authService.handleAccessToken(UserInfoObject.token);\r\n this.stylesBundleService.loadThemes(\r\n lang,\r\n bundleEnglishName,\r\n bundleArabicName\r\n );\r\n localStorage.setItem('language', lang);\r\n this.translate.use(lang);\r\n });\r\n });\r\n }\r\n else\r\n this.router.navigate(['/Admin/account/login']);\r\n }\r\n\r\n reloadComponent() {\r\n let currentUrl = this.router.url;\r\n this.router.routeReuseStrategy.shouldReuseRoute = () => false;\r\n this.router.onSameUrlNavigation = 'reload';\r\n this.router.navigate([currentUrl]);\r\n }\r\n\r\n private changeLanguage(key: string) {\r\n let params = new HttpParams();\r\n params = params.append('UserId', AuthService.user.profile.id);\r\n params = params.append('LanguageKey', key);\r\n return this.http.post(this.apiUrl + 'UpdateLanguage', null, null, params);\r\n }\r\n\r\n logError(error: string) {\r\n let params = new HttpParams();\r\n params = params.append('error', error);\r\n return this.http.post(this.apiUrl + 'LogError', null, null, params);\r\n }\r\n\r\n private updateUserInfo() {\r\n return this.http.get(this.apiUrl + 'UpdateUserInfo', null, null);\r\n\r\n }\r\n\r\n switchRole(permissionSetID: string) {\r\n this.updateRole(permissionSetID).subscribe((result) => {\r\n this.updateUserInfo().subscribe((Value) => {\r\n let UserInfoObject = Value as any;\r\n this.authService.handleAccessToken(UserInfoObject.token);\r\n });\r\n });\r\n }\r\n\r\n private updateRole(permissionSetID: string) {\r\n let params = new HttpParams();\r\n params = params.append('UserId', AuthService.user.profile.id);\r\n params = params.append('RoleID', permissionSetID);\r\n return this.http.post(this.apiUrl + 'SwitchRole', null, null, params);\r\n }\r\n\r\n}\r\n","import { HttpClient, HttpErrorResponse, HttpHeaders, HttpParams } from \"@angular/common/http\";\r\nimport { Injectable, OnDestroy } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { plainToClass } from 'class-transformer';\r\nimport { Observable, Subject, throwError } from 'rxjs';\r\nimport { map, takeUntil, tap } from 'rxjs/operators';\r\nimport { BBSFTranslateService, EnvironmentService, UtilityService } from \".\";\r\nimport { AuthService } from '../authentication/auth.service';\r\nimport { RequestOptionsModel } from '../models';\r\n\r\n@Injectable()\r\nexport class RequestHandlerService implements OnDestroy {\r\n\r\n private currentLanguage = \"\";\r\n public onDestroy$: Subject<void> = new Subject<void>();\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private authService: AuthService,\r\n private environmentService: EnvironmentService,\r\n private utilityService: UtilityService,\r\n private bbsfTranslateService: BBSFTranslateService,\r\n private router: Router\r\n ) {\r\n //using localStorage to avoid call getCurrentLanguage() because it is not all to use async in constructor\r\n this.bbsfTranslateService.onLangChange.subscribe((event) => {\r\n if (this.currentLanguage != event.lang) {\r\n this.currentLanguage = event.lang;\r\n }\r\n });\r\n }\r\n\r\n // Function to check if the internet connection is available\r\n private isOnline(): boolean {\r\n return navigator.onLine || !this.environmentService.getProductionMode();\r\n }\r\n\r\n // ...\r\n get<T>(Url: string, params?: HttpParams, responseType?: new () => T, requestOptions?: RequestOptionsModel): Observable<T> {\r\n if (!this.isOnline()) {\r\n const errorCode = 504; // Custom error code for internet disconnection\r\n const errorMessage = 'Internet connection is disconnected.';\r\n var error = new HttpErrorResponse({ error: { Message: errorMessage }, status: errorCode });\r\n this.handleError(error);\r\n return;\r\n }\r\n\r\n const currentRequestOptions = requestOptions || new RequestOptionsModel();\r\n\r\n let headers = this.getHeaders();\r\n if (!currentRequestOptions.disableBlockUI)\r\n this.utilityService.startBlockUI();\r\n return this.http.get<T>(this.environmentService.getApiUrl() + Url, { headers: headers, params: params }).pipe(\r\n takeUntil(this.onDestroy$),\r\n tap((result) => {\r\n if (!currentRequestOptions.disableBlockUI)\r\n this.utilityService.stopBlockUI();\r\n }, error => {\r\n if (!currentRequestOptions.disableErrorHandler)\r\n this.handleError(error);\r\n }), map((data: T) => {\r\n if (currentRequestOptions.castResponsetoClass)\r\n return plainToClass(responseType, data, { excludeExtraneousValues: true });\r\n else\r\n return data;\r\n })\r\n ) as Observable<T>;\r\n }\r\n\r\n post<T>(Url: string, model?: any, responseType?: new () => T, params?: HttpParams, requestOptions?: RequestOptionsModel): Observable<T> {\r\n if (!this.isOnline()) {\r\n const errorCode = 504; // Custom error code for internet disconnection\r\n const errorMessage = 'Internet connection is disconnected.';\r\n var error = new HttpErrorResponse({ error: { Message: errorMessage }, status: 504 });\r\n this.handleError(error);\r\n return;\r\n }\r\n\r\n const currentRequestOptions = requestOptions || new RequestOptionsModel();\r\n let headers = this.getHeaders();\r\n if (!currentRequestOptions.disableBlockUI)\r\n this.utilityService.startBlockUI();\r\n return this.http.post<T>(this.environmentService.getApiUrl() + Url, model, { headers: headers, params: params, responseType: currentRequestOptions.responseType }).pipe(\r\n takeUntil(this.onDestroy$),\r\n tap((result) => {\r\n if (!currentRequestOptions.disableBlockUI)\r\n this.utilityService.stopBlockUI();\r\n }, error => {\r\n if (!currentRequestOptions.disableErrorHandler)\r\n this.handleError(error);\r\n }), map((data: T) => {\r\n if (currentRequestOptions.castResponsetoClass)\r\n return plainToClass(responseType, data, { excludeExtraneousValues: true });\r\n else\r\n return data;\r\n })\r\n );\r\n }\r\n\r\n delete<T>(Url: string, deletedId: string, requestOptions?: RequestOptionsModel, responseType?: new () => T, params?: HttpParams): Observable<T> {\r\n if (!this.isOnline()) {\r\n const errorCode = 504; // Custom error code for internet disconnection\r\n const errorMessage = 'Internet connection is disconnected.';\r\n var error = new HttpErrorResponse({ error: { Message: errorMessage }, status: 504 });\r\n this.handleError(error);\r\n return;\r\n }\r\n\r\n const currentRequestOptions = requestOptions || new RequestOptionsModel();\r\n\r\n let headers = this.getHeaders();\r\n if (!currentRequestOptions.disableBlockUI)\r\n this.utilityService.startBlockUI();\r\n return this.http.delete<T>(this.environmentService.getApiUrl() + Url + `/${deletedId}`, { headers: headers, params: params }).pipe(\r\n takeUntil(this.onDestroy$),\r\n tap((result) => {\r\n if (!currentRequestOptions.disableBlockUI)\r\n this.utilityService.stopBlockUI();\r\n }, error => {\r\n if (!currentRequestOptions.disableErrorHandler)\r\n this.handleError(error);\r\n }), map((data: T) => {\r\n if (currentRequestOptions.castResponsetoClass)\r\n return plainToClass(responseType, data, { excludeExtraneousValues: true });\r\n else\r\n return data;\r\n })\r\n );\r\n }\r\n\r\n put<T>(Url: string, model?: any, params?: HttpParams, responseType?: new () => T, requestOptions?: RequestOptionsModel): Observable<T> {\r\n if (!this.isOnline()) {\r\n const errorCode = 504; // Custom error code for internet disconnection\r\n const errorMessage = 'Internet connection is disconnected.';\r\n var error = new HttpErrorResponse({ error: { Message: errorMessage }, status: 504 });\r\n this.handleError(error);\r\n return;\r\n }\r\n\r\n const currentRequestOptions = requestOptions || new RequestOptionsModel();\r\n\r\n let headers = this.getHeaders();\r\n if (!currentRequestOptions.disableBlockUI)\r\n this.utilityService.startBlockUI();\r\n return this.http.put<T>(this.environmentService.getApiUrl() + Url, model, { headers: headers, params: params, responseType: currentRequestOptions.responseType }).pipe(\r\n takeUntil(this.onDestroy$),\r\n tap((result) => {\r\n if (!currentRequestOptions.disableBlockUI)\r\n this.utilityService.stopBlockUI();\r\n }, error => {\r\n if (!currentRequestOptions.disableErrorHandler)\r\n this.handleError(error);\r\n }), map((data: T) => {\r\n if (currentRequestOptions.castResponsetoClass)\r\n return plainToClass(responseType, data, { excludeExtraneousValues: true });\r\n else\r\n return data;\r\n })\r\n );\r\n }\r\n\r\n patch<T>(Url: string, model?: any, responseType?: new () => T, params?: HttpParams, requestOptions?: RequestOptionsModel): Observable<T> {\r\n if (!this.isOnline()) {\r\n const errorCode = 504; // Custom error code for internet disconnection\r\n const errorMessage = 'Internet connection is disconnected.';\r\n var error = new HttpErrorResponse({ error: { Message: errorMessage }, status: 504 });\r\n this.handleError(error);\r\n return;\r\n }\r\n\r\n const currentRequestOptions = requestOptions || new RequestOptionsModel();\r\n\r\n let headers = new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': this.authService.authorizationHeaderValue(),\r\n\r\n });\r\n this.currentLanguage = localStorage.getItem('language');\r\n headers = headers.set('Accept-Language', this.currentLanguage.toString());\r\n headers = headers.set('ignore-cookies', 'true');\r\n if (!currentRequestOptions.disableBlockUI)\r\n this.utilityService.startBlockUI();\r\n\r\n return this.http.patch<T>(this.environmentService.getApiUrl() + Url, model, { headers: headers, params: params, responseType: currentRequestOptions.responseType }).pipe(\r\n takeUntil(this.onDestroy$),\r\n tap((result) => {\r\n if (!currentRequestOptions.disableBlockUI)\r\n this.utilityService.stopBlockUI();\r\n }, error => {\r\n if (!currentRequestOptions.disableErrorHandler)\r\n this.handleError(error);\r\n }), map((data: T) => {\r\n if (currentRequestOptions.castResponsetoClass)\r\n return plainToClass(responseType, data, { excludeExtraneousValues: true });\r\n else\r\n return data;\r\n })\r\n );\r\n }\r\n\r\n download<T>(Url: string, params?: HttpParams, requestOptions?: RequestOptionsModel): Observable<T> {\r\n if (!this.isOnline()) {\r\n const errorCode = 504; // Custom error code for internet disconnection\r\n const errorMessage = 'Internet connection is disconnected.';\r\n var error = new HttpErrorResponse({ error: { Message: errorMessage }, status: 504 });\r\n this.handleError(error);\r\n return;\r\n }\r\n\r\n const currentRequestOptions = requestOptions || new RequestOptionsModel();\r\n\r\n let headers = this.getHeaders();\r\n if (!currentRequestOptions.disableBlockUI)\r\n this.utilityService.startBlockUI();\r\n return this.http.get<T>(this.environmentService.getApiUrl() + Url, { headers: headers, params: params, responseType: currentRequestOptions.responseType }).pipe(\r\n takeUntil(this.onDestroy$),\r\n tap((result) => {\r\n if (!currentRequestOptions.disableBlockUI)\r\n this.utilityService.stopBlockUI();\r\n }, error => {\r\n if (!currentRequestOptions.disableErrorHandler)\r\n this.handleError(error);\r\n })\r\n );\r\n }\r\n\r\n\r\n Upload<T>(Url: string, model?: any, requestOptions?: RequestOptionsModel): Observable<any> {\r\n if (!this.isOnline()) {\r\n const errorCode = 504; // Custom error code for internet disconnection\r\n const errorMessage = 'Internet connection is disconnected.';\r\n var error = new HttpErrorResponse({ error: { Message: errorMessage }, status: 504 });\r\n this.handleError(error);\r\n return;\r\n }\r\n\r\n const currentRequestOptions = requestOptions || new RequestOptionsModel();\r\n\r\n let headers = this.getHeadersUpdated();\r\n return this.http.post(this.environmentService.getApiUrl() + Url, model, { headers: headers, reportProgress: true, observe: 'events' }).pipe(\r\n takeUntil(this.onDestroy$),\r\n tap((result) => {\r\n if (!currentRequestOptions.disableBlockUI)\r\n this.utilityService.stopBlockUI();\r\n }, error => {\r\n if (!currentRequestOptions.disableErrorHandler)\r\n this.handleError(error);\r\n })\r\n );\r\n }\r\n public destroyHandler(): void {\r\n this.onDestroy$.next();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n console.log(\"clearInterval\");\r\n this.destroyHandler();\r\n }\r\n\r\n private handleError(err: HttpErrorResponse) {\r\n var isEnglish = this.utilityService.getCurrentLanguage() == \"en\";\r\n if (err.error instanceof ErrorEvent) {\r\n this.utilityService.notifyErrorMessage();\r\n }\r\n else {\r\n if (err.status == 400)\r\n throwError(err);//error 400 is thrown to be catch by the Form component to handle Fluent validation errors\r\n else if (err.status == 401)\r\n this.router.navigate([\"/Admin/account/login\"]);\r\n else if (err.status == 403)\r\n this.utilityService.notifyErrorMessage(isEnglish ? \"Sorry, You're not authorized to access this action\" : \"عذرا ليس لديك الصلاحيه لهذا الطلب\");\r\n else if (err.status == 510)\r\n this.utilityService.notifyErrorMessage(isEnglish ? \"Can not delete this item as it is related to others\" : \"لا يمكن حذف هذا العنصر لأنه مرتبط بعناصر أخرى\");\r\n else if (err.status == 515)\r\n this.utilityService.notifyErrorMessage((err.error ? err.error.Message : err.message));\r\n else if (err.status == 504)\r\n this.utilityService.notifyErrorMessage((err.error ? err.error.Message : err.message));\r\n else {\r\n console.log(`error message is: ${err.error ? err.error.Message : err.message}`);\r\n this.utilityService.notifyErrorMessage(this.utilityService.getResourceValue(\"ErrorMassage\"));\r\n }\r\n }\r\n this.utilityService.stopBlockUI();\r\n }\r\n\r\n getHeaders() {\r\n return new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': this.authService.authorizationHeaderValue(),\r\n 'Client-Local-Time-Zone': Intl.DateTimeFormat().resolvedOptions().timeZone,\r\n 'Accept-Language': localStorage.getItem('language'),\r\n 'ignore-cookies': 'true'\r\n });\r\n }\r\n getHeadersUpdated() {\r\n return new HttpHeaders({\r\n 'Authorization': this.authService.authorizationHeaderValue(),\r\n 'Client-Local-Time-Zone': Intl.DateTimeFormat().resolvedOptions().timeZone,\r\n 'Accept-Language': localStorage.getItem('language'),\r\n 'ignore-cookies': 'true',\r\n 'Video-Upload': 'true',\r\n 'Image-Upload': 'true',\r\n });\r\n\r\n }\r\n}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { BBSFTranslateService } from '.';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StylesBundleService {\r\n\r\n constructor(@Inject(DOCUMENT) private document: Document, private translateService: BBSFTranslateService) { }\r\n\r\n loadThemes(lang: string, bundleEnglishName: string, bundleArabicName: string) {\r\n if (lang == \"ar\") {\r\n this.loadStyleBundle(bundleArabicName.toString());\r\n document.querySelector('html').setAttribute(\"b-lang\", \"ar\"); //use b-lang instead of lang to fix firefox number inputs in Arabic locale\r\n document.querySelector('html').setAttribute(\"dir\", \"rtl\");\r\n } else {\r\n this.loadStyleBundle(bundleEnglishName.toString());\r\n document.querySelector('html').setAttribute(\"b-lang\", \"en\");\r\n document.querySelector('html').setAttribute(\"dir\", \"ltr\");\r\n }\r\n\r\n }\r\n\r\n loadThemesColor(theme: string, bundleDarkName: string, bundleLightName: string) {\r\n if (theme == \"Light\")\r\n this.loadStyleBundle(bundleLightName.toString());\r\n else\r\n this.loadStyleBundle(bundleDarkName.toString());\r\n }\r\n\r\n private loadStyleBundle(styleName: string): void {\r\n const head = this.document.getElementsByTagName('head')[0];\r\n let themeLink = this.document.getElementById('client-theme') as HTMLLinkElement;\r\n let shouldRemoveOld = false;\r\n\r\n if (themeLink) {\r\n // ✅ Check if current CSS already loaded (by exact filename)\r\n const currentFileName = this.getFileName(themeLink.href);\r\n const requestedFileName = this.getFileName(styleName);\r\n\r\n if (currentFileName === requestedFileName) {\r\n return; // Same CSS already loaded\r\n } else {\r\n shouldRemoveOld = true; // Mark for removal after new CSS is added\r\n }\r\n }\r\n\r\n // ✅ Add new CSS first (prevents FOUC)\r\n const style = this.document.createElement('link');\r\n style.id = 'client-theme';\r\n style.rel = 'stylesheet';\r\n style.href = `${styleName}`;\r\n head.appendChild(style);\r\n\r\n // ✅ Remove old CSS after new one is added (smooth transition)\r\n if (shouldRemoveOld && themeLink) {\r\n themeLink.remove();\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Extract filename from full path\r\n * @param path Full path or just filename\r\n * @returns The filename only\r\n */\r\n private getFileName(path: string): string {\r\n // Extract just the filename from full path\r\n const parts = path.split('/');\r\n return parts[parts.length - 1];\r\n }\r\n}\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BBSFTranslateService extends TranslateService {\r\n}","import { inject } from \"@angular/core\";\r\nimport { ResolveFn } from \"@angular/router\";\r\nimport { BBSFTranslateService } from \".\";\r\n\r\nexport const TranslationResolverService: ResolveFn<any> = () => {\r\n let translateService = inject(BBSFTranslateService);\r\n return translateService.getTranslation(translateService.currentLang);\r\n}","import { Injectable, Injector } from '@angular/core';\r\nimport { BlockUI, NgBlockUI } from 'ng-block-ui';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { BBSFTranslateService, EnvironmentService } from '.';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UtilityService {\r\n\r\n isCreatedBefore = false;\r\n\r\n @BlockUI() blockUI: NgBlockUI;\r\n\r\n constructor(private translator: BBSFTranslateService, private environmentService: EnvironmentService, private injector: Injector) {\r\n\r\n }\r\n\r\n getResourceValue(Key: string): string { \r\n let ResourceValue = this.translator.instant(Key)\r\n return ResourceValue;\r\n }\r\n\r\n getCurrentLanguage() {\r\n let currentLanguage = this.environmentService.getDefaultLanguage();\r\n let lang = localStorage.getItem('language');\r\n if (lang)\r\n currentLanguage = lang;\r\n else\r\n localStorage.setItem('language', currentLanguage);\r\n return currentLanguage;\r\n }\r\n\r\n isCurrentLanguageEnglish() {\r\n return this.getCurrentLanguage() == \"en\"\r\n }\r\n\r\n isCurrentLanguageArabic() {\r\n return this.getCurrentLanguage() == \"ar\"\r\n }\r\n\r\n notifySuccessMessage(Message?: string, title?: string, time?: number, showHeader: boolean = true) {\r\n let MessageTemplate = this.getResourceValue(\"SuccessMessage\");\r\n let titleTemplate: string;\r\n if (Message) {\r\n MessageTemplate = Message;\r\n }\r\n if (title) {\r\n titleTemplate = title;\r\n }\r\n let toaster = this.injector.get(ToastrService);\r\n showHeader ? toaster.success(MessageTemplate, titleTemplate) : toaster.success(MessageTemplate);\r\n }\r\n\r\n notifyErrorMessage(Message?: string, title?: string, time?: number, showHeader: boolean = true) {\r\n let MessageTemplate = this.getResourceValue(\"ErrorMessage\");\r\n let titleTemplate = this.getResourceValue(\"Error\");\r\n if (Message) {\r\n MessageTemplate = Message;\r\n }\r\n if (title) {\r\n titleTemplate = title;\r\n }\r\n const toaster = this.injector.get(ToastrService);\r\n showHeader ? toaster.error(MessageTemplate, titleTemplate) : toaster.error(MessageTemplate);\r\n }\r\n\r\n notifyWarningMessage(Message?: string, title?: string, time?: number, showHeader: boolean = true) {\r\n let MessageTemplate = this.getResourceValue(\"WarningMessage\");\r\n let titleTemplate = this.getResourceValue(\"Warning\");\r\n if (Message) {\r\n MessageTemplate = Message;\r\n }\r\n if (title) {\r\n titleTemplate = title;\r\n }\r\n const toaster = this.injector.get(ToastrService);\r\n showHeader ? toaster.warning(MessageTemplate, titleTemplate) : toaster.warning(MessageTemplate);\r\n }\r\n\r\n startBlockUI() {\r\n this.blockUI.start();\r\n }\r\n\r\n stopBlockUI() {\r\n this.blockUI.stop();\r\n }\r\n\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { RequestHandlerService } from \"./request-handler.service\";\r\nimport { Observable } from \"rxjs\";\r\nimport { LanguageDTO } from \"../models\";\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n })\r\n export class LanguageService {\r\n apiUrl = '/api/Language/';\r\n constructor(private http: RequestHandlerService) { }\r\n\r\n getLanguages():Observable<LanguageDTO[]> {\r\n return this.http.get(this.apiUrl + 'GetAll', null, null);\r\n }\r\n \r\n }","import { Injectable, NgZone } from '@angular/core';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { UtilityService } from './utility.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SpeechRecognitionService {\r\n recognition: any;\r\n isListening = false;\r\n isSupported = false;\r\n language: string = 'en-US';\r\n\r\n constructor(private zone: NgZone,private utilityService:UtilityService) {\r\n const SpeechRecognition = (window as any).SpeechRecognition || (window as any).webkitSpeechRecognition;\r\n\r\n if (SpeechRecognition) {\r\n this.recognition = new SpeechRecognition();\r\n this.recognition.continuous = true;\r\n this.recognition.interimResults = false;\r\n this.recognition.maxAlternatives = 1;\r\n this.isSupported = true;\r\n }\r\n }\r\n\r\n startListening(language: string = this.language): Observable<string> {\r\n if (!this.isSupported) {\r\n return throwError(() => new Error('Web Speech API is not supported in this browser.'));\r\n }\r\n\r\n return new Observable(observer => {\r\n this.isListening = true;\r\n this.recognition.lang = language;\r\n this.recognition.start();\r\n\r\n this.recognition.onresult = (event: any) => {\r\n this.zone.run(() => {\r\n const transcript = event.results[event.results.length - 1][0].transcript;\r\n observer.next(transcript);\r\n });\r\n };\r\n\r\n this.recognition.onspeechend = () => {\r\n this.stopListening();\r\n };\r\n\r\n this.recognition.onerror = (event: any) => {\r\n this.zone.run(() => {\r\n if (event.error === 'not-allowed') {\r\n this.utilityService.notifyErrorMessage(this.utilityService.getResourceValue(\"MicAccessDenied\"));\r\n observer.error('Microphone access denied by the user.');\r\n } else {\r\n observer.error(event.error);\r\n }\r\n });\r\n };\r\n\r\n this.recognition.onend = () => {\r\n this.zone.run(() => {\r\n if (this.isListening) {\r\n this.recognition.start(); // Automatically restart\r\n } else {\r\n observer.complete();\r\n }\r\n });\r\n };\r\n });\r\n }\r\n\r\n stopListening() {\r\n if (this.isSupported) {\r\n this.isListening = false;\r\n this.recognition.stop();\r\n }\r\n }\r\n\r\n\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { lastValueFrom } from 'rxjs';\r\nimport { BBSFTranslateService } from './translate.service';\r\nimport { environment } from '../config/environment';\r\n\r\ndeclare const window: any;\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class FileLoaderService {\r\n private availableLanguages = ['en', 'ar']; // Add more languages as needed\r\n // environment:any;\r\n constructor(private translate: BBSFTranslateService, private http: HttpClient) {\r\n this.translate.addLangs(this.availableLanguages);\r\n }\r\n\r\n loadEnvironment(): Promise<void> {\r\n return new Promise((resolve, reject) => {\r\n const script = document.createElement('script');\r\n script.src = '/assets/config/environment.js';\r\n script.onload = () => {\r\n if (window.Environment) {\r\n Object.assign(environment, window.Environment);\r\n resolve();\r\n } else {\r\n reject('Environment variables not found.');\r\n }\r\n };\r\n script.onerror = () => reject('Failed to load environment.js');\r\n document.head.appendChild(script);\r\n });\r\n }\r\n\r\n async preloadTranslations(): Promise<void> {\r\n try {\r\n const requests = this.availableLanguages.map(async (lang) => {\r\n const translations = await lastValueFrom(this.http.get(`/assets/i18n/${lang}.json`));\r\n this.translate.setTranslation(lang, translations, true);\r\n });\r\n\r\n await Promise.all(requests);\r\n this.translate.use('en'); // Set default language manually\r\n } catch (error) {\r\n console.error('Error preloading translations:', error);\r\n }\r\n }\r\n}","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable, Injector } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { Router } from '@angular/router';\r\nimport { JwtHelperService } from '@auth0/angular-jwt';\r\nimport { BBSFTranslateService, EnvironmentService } from '../services';\r\nimport { User } from '../models/UserModel';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { UtilityService } from '../services/utility.service';\r\nimport { AuthenticationModes } from '../enums/authentication-modes-enums';\r\nimport { setTimeout } from 'timers';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AuthService {\r\n public redirectUrl: string = '';\r\n static user: User | null = null;\r\n _user: User | null;\r\n private get user(): User | null {\r\n if (!this._user) {\r\n this._user = this.getUserManager();\r\n }\r\n return this._user;\r\n }\r\n static UserClaims: any = null;\r\n private jwtHelper: JwtHelperService = new JwtHelperService();\r\n private isAuthenticatedSubject = new BehaviorSubject<boolean>(this.hasToken());\r\n isAuthenticate$ = this.isAuthenticatedSubject.asObservable();\r\n //refresh\r\n static timers = [];\r\n static seconds = 0;\r\n\r\n constructor(private injector: Injector, private http: HttpClient, private environmentService: EnvironmentService, private translateService: BBSFTranslateService, private router: Router, private cookieService: CookieService, private utilityService: UtilityService) {\r\n \r\n }\r\n\r\n private _TOKEN_KEY: string\r\n get TOKEN_KEY() {\r\n if (!this._TOKEN_KEY) {\r\n this._TOKEN_KEY = this.environmentService.getCookieName();\r\n }\r\n return this._TOKEN_KEY;\r\n }\r\n\r\n private hasToken(): boolean {\r\n const token = this.cookieService.get(this.TOKEN_KEY);\r\n return token && !this.jwtHelper.isTokenExpired(token);\r\n }\r\n\r\n getUserManager() {\r\n const token = this.cookieService.get(this.TOKEN_KEY);\r\n if (token) {\r\n if (!this.jwtHelper.isTokenExpired(token))\r\n this.handleAccessTokenWithoutLanguage(token);\r\n else\r\n this.cookieService.delete(this.TOKEN_KEY, '/');\r\n }\r\n else {\r\n AuthService.timers.map(t => clearInterval(t));\r\n AuthService.timers = [];\r\n AuthService.user = null;\r\n this._user = null;\r\n }\r\n return AuthService.user;\r\n }\r\n\r\n getUser() {\r\n this._user = AuthService.user;\r\n }\r\n storUser(User: any) {\r\n AuthService.user = this._user = this.user;\r\n }\r\n\r\n getCurrentUser() {\r\n return AuthService.user;\r\n }\r\n\r\n isAuthenticated(): boolean {\r\n AuthService.user = this.user;\r\n return AuthService.user != null && !this.jwtHelper.isTokenExpired(AuthService.user.access_token);\r\n }\r\n isUserInRole(allowedPermission) {\r\n let selectedPermissionSetID = Number.parseInt(AuthService.user.profile['selectedpermissionsetid']);\r\n return allowedPermission.includes(selectedPermissionSetID);\r\n }\r\n\r\n isUserPermissionSetsInRoles(allowedPermission: number[]): boolean {\r\n const permissionSetSIDString = AuthService.user.profile['permissionSetSID'];\r\n if (!permissionSetSIDString) {\r\n return false;\r\n }\r\n\r\n // Split comma-separated string and convert to numbers\r\n const userPermissionSets = permissionSetSIDString\r\n .split(',')\r\n .map(id => Number.parseInt(id.trim()))\r\n .filter(id => !isNaN(id)); // Filter out invalid numbers\r\n\r\n // Check if any user permission set is in the allowed permissions\r\n return userPermissionSets.some(permissionSetID => allowedPermission.includes(permissionSetID));\r\n }\r\n\r\n authorizationHeaderValue(): string {\r\n return AuthService.user\r\n ? `${AuthService.user.token_type} ${AuthService.user.access_token}`\r\n : '';\r\n }\r\n\r\n name(): string {\r\n return AuthService.user != null ? AuthService.user.profile.given_name : '';\r\n }\r\n setUrl(url) {\r\n localStorage.setItem('redirectUrl', url);\r\n }\r\n getUrl() {\r\n return localStorage.getItem('redirectUrl') ?? \"/\";\r\n }\r\n\r\n signOut() {\r\n let isAuthenticated = this.isAuthenticated();\r\n this.cookieService.delete(this.TOKEN_KEY, '/');\r\n AuthService.timers.map(t => clearInterval(t));\r\n AuthService.timers = [];\r\n AuthService.user = null;\r\n this._user = null;\r\n localStorage.removeItem(\"redirectUrl\");\r\n if (isAuthenticated) {\r\n this.logout().subscribe(res => {\r\n if (this.environmentService.getBBSFAuthenticationMode() == AuthenticationModes.UAEPass)\r\n this.logoutFromUAEPass();\r\n else\r\n this.router.navigate(['/Admin/account/login']);\r\n });\r\n }\r\n else {\r\n if (this.environmentService.getBBSFAuthenticationMode() == AuthenticationModes.UAEPass)\r\n this.logoutFromUAEPass();\r\n else\r\n this.router.navigate(['/Admin/account/login']);\r\n }\r\n }\r\n\r\n logout() {\r\n const httpOptions = {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n }),\r\n };\r\n let ApiUrl = '/Account/';\r\n return this.http.get(this.environmentService.getApiUrl() + ApiUrl + 'Logout', httpOptions);\r\n }\r\n\r\n\r\n clearUserSessionClaims() {\r\n const httpOptions = {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n }),\r\n };\r\n let ApiUrl = '/api/Home/';\r\n return this.http.get(this.environmentService.getBaseUrl() + ApiUrl + 'ClearCurrentUserSession', httpOptions);\r\n }\r\n\r\n async handleAccessToken(response: any): Promise<void> {\r\n this.cookieService.delete(this.TOKEN_KEY, '/');\r\n const token = response;\r\n AuthService.user = null;\r\n AuthService.user = new User();\r\n AuthService.user.token_type = \"Bearer\";\r\n AuthService.user.access_token = token;\r\n AuthService.user.profile = this.jwtHelper.decodeToken(token);\r\n AuthService.user.expires_at = this.jwtHelper.getTokenExpirationDate(token);\r\n this._user = AuthService.user;\r\n localStorage.setItem(\"language\", AuthService.user.profile.locale);\r\n this.cookieService.set(this.TOKEN_KEY, token, AuthService.user.expires_at, \"/\", null, true, 'Lax');\r\n this.isAuthenticatedSubject.next(true);\r\n this.setTokenSeconds();\r\n AuthService.timers.push(this.checkRefreshToken());\r\n await this.updateLanguage();\r\n }\r\n\r\n handleAccessTokenWithoutLanguage(response: any) {\r\n this.cookieService.delete(this.TOKEN_KEY, '/');\r\n const token = response;\r\n AuthService.user = null;\r\n AuthService.user = new User();\r\n AuthService.user.token_type = \"Bearer\";\r\n AuthService.user.access_token = token;\r\n AuthService.user.profile = this.jwtHelper.decodeToken(token);\r\n AuthService.user.expires_at = this.jwtHelper.getTokenExpirationDate(token);\r\n this.setTokenSeconds();\r\n this._user = AuthService.user;\r\n localStorage.setItem(\"language\", AuthService.user.profile.locale);\r\n this.cookieService.set(this.TOKEN_KEY, token, AuthService.user.expires_at, \"/\", null, true, 'Lax');\r\n this.isAuthenticatedSubject.next(true);\r\n AuthService.timers.push(this.checkRefreshToken());\r\n }\r\n async updateLanguage() {\r\n if (!localStorage.getItem('language') || localStorage.getItem('language') == this.user.profile.locale)\r\n localStorage.setItem('language', this.user.profile.locale);\r\n\r\n if (this.translateService.currentLang != localStorage.getItem('language')) {\r\n this.translateService.resetLang(this.translateService.currentLang);\r\n await this.translateService.reloadLang(localStorage.getItem('language')).subscribe();\r\n }\r\n }\r\n\r\n checkRefreshToken() {\r\n let date = new Date() as any;\r\n return setInterval(() => {\r\n if (Math.floor(AuthService.seconds) < 120 && this.isAuthenticated()) {\r\n AuthService.timers.map(t => clearInterval(t));\r\n AuthService.timers = [];\r\n const token = this.cookieService.get(this.TOKEN_KEY);\r\n if (token) {\r\n this.refresh();\r\n }\r\n }\r\n AuthService.seconds--;\r\n }, 1000);\r\n }\r\n setTokenSeconds() {\r\n let date = new Date() as any;\r\n AuthService.seconds = (AuthService.user.expires_at - date) / 1000;\r\n }\r\n refresh() {\r\n this.cookieService.delete(this.TOKEN_KEY, '/');\r\n const httpOptions = {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': this.authorizationHeaderValue(),\r\n }),\r\n };\r\n let ApiUrl = '/api/Home/';\r\n this.http.get(this.environmentService.getApiUrl() + ApiUrl + 'RefreshAccessToken', httpOptions).subscribe((res: any) => {\r\n this.handleAccessTokenWithoutLanguage(res.val);\r\n });\r\n }\r\n\r\n loginWithUAEPass() {\r\n const authEndpoint = `${this.environmentService.getUAEPassBaseUrl()}${this.environmentService.getUAEPassAuthorizationEndPoint()}`;\r\n const queryParams = {\r\n response_type: 'code',\r\n client_id: `${this.environmentService.getUAEPassClientID()}`,\r\n redirect_uri: `${this.environmentService.getBaseUrl()}${this.environmentService.getUAEPassRedirectUrl()}`,\r\n scope: 'urn:uae:digitalid:profile:general urn:uae:digitalid:profile:general:profileType urn:uae:digitalid:profile:general:unifiedId',\r\n state: this.translateService.currentLang,\r\n acr_values: 'urn:safelayer:tws:policies:authentication:level:low',\r\n ui_locales: this.translateService.currentLang,\r\n };\r\n const queryParamsString = Object.entries(queryParams)\r\n .map(([key, value]) => `${key}=${encodeURIComponent(value)}`)\r\n .join('&');\r\n const loginUrl = `${authEndpoint}?${queryParamsString}`;\r\n window.location.href = loginUrl;\r\n return;\r\n }\r\n\r\n logoutFromUAEPass() {\r\n const logoutEndpoint = `${this.environmentService.getUAEPassBaseUrl()}${this.environmentService.getUAEPassLogoutEndPoint()}`;\r\n const queryParams = {\r\n redirect_uri: `${this.environmentService.getBaseUrl()}`,\r\n };\r\n const queryParamsString = Object.entries(queryParams)\r\n .map(([key, value]) => `${key}=${encodeURIComponent(value)}`)\r\n .join('&');\r\n\r\n const logoutUrl = `${logoutEndpoint}?${queryParamsString}`;\r\n window.location.href = logoutUrl;\r\n return;\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { BlockUIModule } from 'ng-block-ui';\r\nimport { ToastrModule } from 'ngx-toastr';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport {\r\n UtilityService, EnvironmentService, RequestHandlerService, StylesBundleService, BBSFTranslateService,\r\n ControlValidationService, MasterLayoutService, ConfigurationService, AuthService, LanguageService,\r\n SpeechRecognitionService\r\n} from './shared';\r\n\r\n@NgModule({\r\n declarations: [\r\n ],\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n BlockUIModule.forRoot(),\r\n ToastrModule.forRoot(),\r\n\r\n ],\r\n exports: [],\r\n providers: [\r\n UtilityService,\r\n EnvironmentService,\r\n AuthService,\r\n RequestHandlerService,\r\n StylesBundleService,\r\n TranslateService,\r\n BBSFTranslateService,\r\n ControlValidationService,\r\n MasterLayoutService,\r\n ConfigurationService,\r\n CookieService,\r\n LanguageService,\r\n SpeechRecognitionService\r\n ]\r\n})\r\nexport class BBSFUtilitiesModule {\r\n\r\n}\r\n","/*\r\n * Public API Surface of @bnsights/bbsf-utilities\r\n * \r\n * This is the CORE entry point with minimal dependencies.\r\n * \r\n * For feature-specific services, use secondary entry points:\r\n * - @bnsights/bbsf-utilities/auth - Authentication services\r\n * - @bnsights/bbsf-utilities/word - Word document generation\r\n * - @bnsights/bbsf-utilities/translate - Translation services\r\n * - @bnsights/bbsf-utilities/ui - UI services (BlockUI, Toastr, etc.)\r\n * - @bnsights/bbsf-utilities/http - HTTP request handling\r\n */\r\n\r\n//Module (Note: for backward compatibility - contains ALL providers)\r\nexport * from './lib/bbsf-utilities.module';\r\n\r\n//#region Core Services (minimal dependencies)\r\n\r\nexport * from './lib/shared/services/environment.service';\r\nexport * from './lib/shared/services/styles-bundle.service';\r\nexport * from './lib/shared/services/appearance-configuration.service';\r\nexport * from './lib/shared/services/configuration.service';\r\n\r\n//#endregion\r\n\r\n//#region config\r\nexport * from './lib/shared/config/environment';\r\n//#endregion\r\n\r\n//#region models \r\nexport * from './lib/shared/models/area-model';\r\nexport * from './lib/shared/models/error-model';\r\nexport * from './lib/shared/models/UserModel';\r\n//#endregion\r\n\r\n//#region export enums\r\nexport * from './lib/shared/enums/authentication-modes-enums';\r\n//#endregion\r\n\r\n/* \r\n * DEPRECATED EXPORTS (for backward compatibility)\r\n * Please migrate to secondary entry points for these:\r\n */\r\n\r\n// Use @bnsights/bbsf-utilities/ui instead\r\nexport * from './lib/shared/services/utility.service';\r\nexport * from './lib/shared/services/control-validation.service';\r\nexport * from './lib/shared/services/speech-recognition.service';\r\n\r\n// Use @bnsights/bbsf-utilities/translate instead\r\nexport * from './lib/shared/services/translate.service';\r\nexport * from './lib/shared/services/translation-resolver.service';\r\nexport { TranslationResolverService } from './lib/shared/services/translation-resolver.service';\r\nexport * from './lib/shared/services/language.service';\r\n\r\n// Use @bnsights/bbsf-utilities/http instead\r\nexport * from './lib/shared/services/request-handler.service';\r\nexport * from './lib/shared/services/master-layout.service';\r\nexport * from './lib/shared/services/preload.service';\r\nexport * from './lib/shared/models/request-options-model';\r\n\r\n// Word document generation moved to @bnsights/bbsf-utilities-doc\r\n// Install: npm install @bnsights/bbsf-utilities-doc\r\n\r\n// Use @bnsights/bbsf-utilities/auth instead\r\nexport * from './lib/shared/authentication/auth.service';\r\n\r\n// Re-export speech-language model\r\nexport * from './lib/shared/models/speech-language';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ConfigurationService","i1.UtilityService","i1","i2.RequestHandlerService","i3.AuthService","i2.StylesBundleService","i2.EnvironmentService","i2.AuthService","i3.EnvironmentService","i3.UtilityService","i3.BBSFTranslateService","i4","i1.BBSFTranslateService","i1.EnvironmentService","i1.RequestHandlerService","i2","i2.BBSFTranslateService","i3","i5.UtilityService"],"mappings":"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"}
|
|
@@ -8,7 +8,6 @@ export * from './styles-bundle.service';
|
|
|
8
8
|
export * from './translate.service';
|
|
9
9
|
export * from './translation-resolver.service';
|
|
10
10
|
export * from './utility.service';
|
|
11
|
-
export * from './word-document.service';
|
|
12
11
|
export * from './language.service';
|
|
13
12
|
export * from './speech-recognition.service';
|
|
14
13
|
export * from './preload.service';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bnsights/bbsf-utilities",
|
|
3
|
-
"version": "1.0.69-beta.
|
|
3
|
+
"version": "1.0.69-beta.3",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/animations": "^17.0.5",
|
|
6
6
|
"@angular/cdk": "^17.0.2",
|
|
@@ -18,16 +18,7 @@
|
|
|
18
18
|
},
|
|
19
19
|
"optionalDependencies": {
|
|
20
20
|
"@auth0/angular-jwt": "^5.2.0",
|
|
21
|
-
"color-name": "^2.0.0",
|
|
22
|
-
"escape-html": "^1.0.3",
|
|
23
|
-
"html-to-vdom": "^0.7.0",
|
|
24
|
-
"image-size": "^1.0.2",
|
|
25
|
-
"image-to-base64": "^2.2.0",
|
|
26
|
-
"jszip": "^3.10.1",
|
|
27
|
-
"mime-types": "^2.1.35",
|
|
28
21
|
"ngx-cookie-service": "17.0.0",
|
|
29
|
-
"virtual-dom": "^2.1.1",
|
|
30
|
-
"xmlbuilder2": "3.1.1",
|
|
31
22
|
"ng-block-ui": "^4.0.1",
|
|
32
23
|
"ngx-toastr": "^18.0.0",
|
|
33
24
|
"oidc-client": "^1.11.5",
|
|
@@ -64,12 +55,6 @@
|
|
|
64
55
|
"esm": "./esm2022/translate/bnsights-bbsf-utilities-translate.mjs",
|
|
65
56
|
"default": "./fesm2022/bnsights-bbsf-utilities-translate.mjs"
|
|
66
57
|
},
|
|
67
|
-
"./word": {
|
|
68
|
-
"types": "./word/index.d.ts",
|
|
69
|
-
"esm2022": "./esm2022/word/bnsights-bbsf-utilities-word.mjs",
|
|
70
|
-
"esm": "./esm2022/word/bnsights-bbsf-utilities-word.mjs",
|
|
71
|
-
"default": "./fesm2022/bnsights-bbsf-utilities-word.mjs"
|
|
72
|
-
},
|
|
73
58
|
"./ui": {
|
|
74
59
|
"types": "./ui/index.d.ts",
|
|
75
60
|
"esm2022": "./esm2022/ui/bnsights-bbsf-utilities-ui.mjs",
|
package/public-api.d.ts
CHANGED
|
@@ -19,7 +19,5 @@ export * from './lib/shared/services/request-handler.service';
|
|
|
19
19
|
export * from './lib/shared/services/master-layout.service';
|
|
20
20
|
export * from './lib/shared/services/preload.service';
|
|
21
21
|
export * from './lib/shared/models/request-options-model';
|
|
22
|
-
export * from './lib/shared/services/word-document.service';
|
|
23
|
-
export * from './lib/shared/models/word-document-model';
|
|
24
22
|
export * from './lib/shared/authentication/auth.service';
|
|
25
23
|
export * from './lib/shared/models/speech-language';
|