{"version":3,"file":"ngx-aptaero-visitorpass-web-shared.mjs","sources":["../../../projects/ngx-aptaero-visitorpass-web-shared/src/lib/helper/api.helper.ts","../../../projects/ngx-aptaero-visitorpass-web-shared/src/lib/type/date.type.ts","../../../projects/ngx-aptaero-visitorpass-web-shared/src/lib/helper/functions.helper.ts","../../../projects/ngx-aptaero-visitorpass-web-shared/src/lib/helper/security.helper.ts","../../../projects/ngx-aptaero-visitorpass-web-shared/src/lib/type/service.type.ts","../../../projects/ngx-aptaero-visitorpass-web-shared/src/lib/api/api.service.ts","../../../projects/ngx-aptaero-visitorpass-web-shared/src/lib/type/storage.type.ts","../../../projects/ngx-aptaero-visitorpass-web-shared/src/lib/storage/memory.storage.ts","../../../projects/ngx-aptaero-visitorpass-web-shared/src/lib/storage/local.storage.ts","../../../projects/ngx-aptaero-visitorpass-web-shared/src/lib/storage/secure-cookie.storage.ts","../../../projects/ngx-aptaero-visitorpass-web-shared/src/lib/type/state.type.ts","../../../projects/ngx-aptaero-visitorpass-web-shared/src/lib/state/_global.state.ts","../../../projects/ngx-aptaero-visitorpass-web-shared/src/lib/service/user-identity.service.ts","../../../projects/ngx-aptaero-visitorpass-web-shared/src/lib/service/runtime-application.service.ts","../../../projects/ngx-aptaero-visitorpass-web-shared/src/lib/state/account-login.state.ts","../../../projects/ngx-aptaero-visitorpass-web-shared/src/lib/environment/environment.base.ts","../../../projects/ngx-aptaero-visitorpass-web-shared/src/lib/environment/environment.ts","../../../projects/ngx-aptaero-visitorpass-web-shared/src/lib/infrastructure/app-runtime.ts","../../../projects/ngx-aptaero-visitorpass-web-shared/src/lib/interceptor/http-request-header.interceptor.ts","../../../projects/ngx-aptaero-visitorpass-web-shared/src/lib/service/account-login.service.ts","../../../projects/ngx-aptaero-visitorpass-web-shared/src/lib/helper/pcm.helper.ts","../../../projects/ngx-aptaero-visitorpass-web-shared/src/lib/service/pcm.service.ts","../../../projects/ngx-aptaero-visitorpass-web-shared/src/lib/service/print.service.ts","../../../projects/ngx-aptaero-visitorpass-web-shared/src/lib/state/office-visitors.state.ts","../../../projects/ngx-aptaero-visitorpass-web-shared/src/lib/service/office-visitors.service.ts","../../../projects/ngx-aptaero-visitorpass-web-shared/src/public-api.ts","../../../projects/ngx-aptaero-visitorpass-web-shared/src/ngx-aptaero-visitorpass-web-shared.ts"],"sourcesContent":["import { Observable, catchError, map, of } from \"rxjs\";\r\nimport { ActionResult, Pagination } from \"../type/common.type\";\r\n\r\nexport const apiHelper = {\r\n    defaultPageSize: 12,\r\n    defaultPagination: (): Pagination => {\r\n        return apiHelper.pagination(1, 0);\r\n    },\r\n    pagination: (page: number, totalRecords: number, pageSize?: number): Pagination => {\r\n        const calcPageSize = pageSize || apiHelper.defaultPageSize;\r\n        const loadedRecordsCount = calcPageSize * page;\r\n        return {\r\n            page: page,\r\n            totalRecords: totalRecords,\r\n            hasMoreData: totalRecords > loadedRecordsCount\r\n        };\r\n    },\r\n    sendRequest: <T>(request: Observable<T>): Observable<ActionResult<T>> => {\r\n        return request.pipe(\r\n            map(response => {\r\n                return { data: response };\r\n            }),\r\n            catchError(error => {\r\n                const errorData = error.error;\r\n                const errorText = !!errorData && typeof errorData === \"string\" ? errorData : errorData?.title;\r\n                return of({\r\n                    errorMessage: errorText || 'An unexpected error occurred.'\r\n                });\r\n            })\r\n        );\r\n    },\r\n    queryParams: <T extends object>(queryObj: T): T => {\r\n        const objAny: Partial<T> = queryObj;\r\n        const newObj: Partial<T> = {};\r\n        for (const key of Object.keys(objAny) as Array<keyof T>) {\r\n            const defined = !!objAny[key];\r\n            if (defined) {\r\n                newObj[key] = objAny[key];\r\n            }\r\n        }\r\n        return newObj as T;\r\n    }\r\n};\r\n","// https://momentjs.com/\r\nimport moment from \"moment\";\r\nimport { Moment } from \"moment\";\r\n\r\ntype DateTimeParseInputType = string | Date | DateTime;\r\n\r\nexport class DateTime {\r\n    private __VAL: Moment;\r\n\r\n    private constructor(value: string | Date | Moment) {\r\n        this.__VAL = moment(value);\r\n    }\r\n\r\n    // STATIC ******************************************************\r\n    public static maxValue: DateTime = DateTime.parse('2050-01-01');\r\n\r\n    public static safeParseNull(value: DateTimeParseInputType | undefined | null): DateTime | null {\r\n        return value ? DateTime.parse(value) : null;\r\n    }\r\n\r\n    public static safeParse(value: DateTimeParseInputType | undefined | null): DateTime | undefined {\r\n        return value ? DateTime.parse(value) : undefined;\r\n    }\r\n\r\n    public static parse(value: DateTimeParseInputType) {\r\n        return value instanceof DateTime ? value : new DateTime(value);\r\n    }\r\n\r\n    /**\r\n     * Returns current local date and time\r\n     */\r\n    public static now() {\r\n        return new DateTime(moment());\r\n    }\r\n\r\n    /**\r\n     * Returns current local date part only\r\n     */\r\n    public static today() {\r\n        const dateTime = DateTime.now();\r\n        return dateTime.date();\r\n    }\r\n\r\n    public static diff(endDate: DateTime, startDate: DateTime): TimeInterval {\r\n        return new TimeInterval(\r\n            endDate.__VAL.diff(startDate.__VAL, 'days', true),\r\n            endDate.__VAL.diff(startDate.__VAL, 'hours', true),\r\n            endDate.__VAL.diff(startDate.__VAL, 'minutes', true),\r\n            endDate.__VAL.diff(startDate.__VAL, 'seconds', true)\r\n        );\r\n    }\r\n\r\n    public static compare(d1: DateTime | undefined, d2: DateTime | undefined) {\r\n        const hasD1 = !!d1;\r\n        const hasD2 = !!d2;\r\n\r\n        if (!hasD1 && !hasD2)\r\n            return 0;\r\n        if (hasD1 && !hasD2)\r\n            return 1;\r\n        if (!hasD1 && hasD2)\r\n            return -1;\r\n\r\n        const v1 = d1!.__VAL.valueOf();\r\n        const v2 = d2!.__VAL.valueOf();\r\n        if (v1 == v2) {\r\n            return 0;\r\n        }\r\n        return v1 > v2 ? 1 : -1;\r\n    }\r\n\r\n    // Methods ******************************************************\r\n    fromNow() {\r\n        return this.__VAL.fromNow();\r\n    }\r\n\r\n    format(format: string) {\r\n        return this.__VAL.format(format)\r\n    }\r\n\r\n    date() {\r\n        return new DateTime(this.__VAL.clone().startOf('day'));\r\n    }\r\n\r\n    utc() {\r\n        return new DateTime(this.__VAL.clone().utc());\r\n    }\r\n\r\n    modify(update: { days?: number }) {\r\n        let newValue = this.__VAL.clone();\r\n        if (update.days) {\r\n            newValue = newValue.add(update.days, 'day');\r\n        }\r\n        return new DateTime(newValue)\r\n    }\r\n\r\n    round(options: { value: number, interval: 'minutes', type: 'down' | 'up' }) {\r\n        let newValue = this.__VAL.clone();\r\n        switch (options.interval) {\r\n            case 'minutes': {\r\n                const minutes = newValue.minutes();\r\n                const roundedMinutes = options.type == 'down'\r\n                    ? Math.floor(minutes / options.value) * options.value\r\n                    : Math.ceil(minutes / options.value) * options.value;\r\n                newValue = newValue.minutes(roundedMinutes).seconds(0).milliseconds(0);\r\n                break;\r\n            }\r\n        }\r\n        return new DateTime(newValue)\r\n    }\r\n\r\n    next(nextInterval: 'hour') {\r\n        return new DateTime(this.__VAL.clone().add(1, nextInterval).startOf(nextInterval));\r\n    }\r\n\r\n    // Properties ******************************************************\r\n    get year() {\r\n        return this.__VAL.year();\r\n    }\r\n\r\n    // Conversion ******************************************************\r\n    convertToDate() {\r\n        return this.__VAL.toDate();\r\n    }\r\n\r\n    asApiJsonDate() {\r\n        return this.__VAL.format('YYYY-MM-DD');\r\n    }\r\n\r\n    asApiJsonDateTimeLocal() {\r\n        return this.__VAL.format('YYYY-MM-DDTHH:mm:ss')\r\n        //return this._dateTimeInternalValue.toISOString(false);\r\n    }\r\n\r\n    asApiJsonDateTimeUTC() {\r\n        return this.asApiJsonDateTimeLocal() + 'Z';\r\n        //return this._dateTimeInternalValue.toISOString(true);\r\n    }\r\n}\r\n\r\nexport class DateTimeRange {\r\n    public static createSingle(date: DateTime) {\r\n        return new DateTimeRange(date, date);\r\n    }\r\n\r\n    public static createRange(start: DateTime, end: DateTime) {\r\n        return new DateTimeRange(start, end);\r\n    }\r\n\r\n    public static equal(d1: DateTimeRange | undefined, d2: DateTimeRange | undefined) {\r\n        const compareStart = DateTime.compare(d1?.start, d2?.start);\r\n        const compareEnd = DateTime.compare(d1?.end, d2?.end);\r\n        return compareStart == 0 && compareEnd == 0;\r\n    }\r\n\r\n    contains(date: DateTime) {\r\n        return DateTime.compare(date, this.start) >= 0 && DateTime.compare(date, this.end) <= 0;\r\n    }\r\n\r\n    public isEqualStartEnd() {\r\n        return DateTime.compare(this.start, this.end) == 0;\r\n    }\r\n\r\n    private constructor(public start: DateTime, public end: DateTime) {\r\n    }\r\n};\r\n\r\nexport class TimeInterval {\r\n    days = 0;\r\n    hours = 0;\r\n    minutes = 0;\r\n    seconds = 0;\r\n\r\n    constructor(\r\n        public totalDays: number = 0,\r\n        public totalHours: number = 0,\r\n        public totalMinutes: number = 0,\r\n        public totalSeconds: number = 0) {\r\n\r\n        this.days = Math.trunc(totalDays);\r\n        this.hours = Math.trunc(this.totalHours - (Math.trunc(totalDays) * 24));\r\n        this.minutes = Math.trunc(this.totalMinutes - (Math.trunc(totalHours) * 60));\r\n        this.seconds = Math.trunc(this.totalSeconds - (Math.trunc(totalMinutes) * 60));\r\n    }\r\n\r\n    format(value: string) {\r\n        const formatLocal = (value: number, leadZero?: boolean) => {\r\n            const val = Math.abs(value).toFixed(0);\r\n            return val.length == 1 && leadZero ? '0' + val : val;\r\n        };\r\n\r\n        let formatted = value\r\n            .replace(\"D\", this.days > 0 ? this.days + 'd' : '')\r\n            .replace(\"hh\", formatLocal(this.hours, true))\r\n            .replace(\"mm\", formatLocal(this.minutes, true))\r\n            .replace(\"ss\", formatLocal(this.seconds, true))\r\n            .replace(\"h\", formatLocal(this.hours, false))\r\n            .replace(\"m\", formatLocal(this.minutes, false))\r\n            .replace(\"s\", formatLocal(this.seconds, false))\r\n            .trim();\r\n        return this.totalSeconds < 0 ? '-' + formatted : formatted;\r\n    }\r\n};\r\n","import _ from 'lodash';\r\nimport { v4 } from 'uuid';\r\nimport { Observable, of } from \"rxjs\";\r\n\r\nimport { DateTime } from \"../type/date.type\";\r\nimport { DataContentModel } from \"../api/api.schemas\";\r\nimport { ActionResult, ArrayOrSingle, DeepReadonly, EmptyActionResult, NullableType } from \"../type/common.type\";\r\n\r\nexport function jsonSerialize(value: any, pretty?: boolean) {\r\n    return pretty ? JSON.stringify(value, null, 2) : JSON.stringify(value);\r\n}\r\n\r\nexport function jsonDeserialize<T>(value: string) {\r\n    return JSON.parse(value) as T;\r\n}\r\n\r\nexport function ofType<T>(obj: T) {\r\n    return obj;\r\n}\r\n\r\nexport function castValue<T>(value?: T): T | undefined {\r\n    return value;\r\n}\r\n\r\nexport function cast<T>(value?: any) {\r\n    return value as T;\r\n}\r\n\r\nexport function castToNullableType<T extends object>(value?: T, fallback: Partial<T> = {}) {\r\n    return cast<NullableType<T>>(value || fallback);\r\n}\r\n\r\nexport function asNullable<T>(value: T | undefined): T | null {\r\n    return value == undefined ? null : value;\r\n}\r\n\r\nexport function asUndefined<T>(value: T | null): T | undefined {\r\n    return value == null ? undefined : value;\r\n}\r\n\r\ninterface IFullNameAware {\r\n    firstName: string | null | undefined,\r\n    lastName: string | null | undefined\r\n};\r\n\r\nexport function getFullName(data?: IFullNameAware) {\r\n    const { firstName, lastName } = data || {};\r\n    return [firstName || '', lastName || ''].filter(x => !!x).join(' ');\r\n}\r\n\r\nexport function getFullNameInitials(data?: IFullNameAware) {\r\n    const { firstName, lastName } = data || {};\r\n    return [firstName ? firstName[0] : '', lastName ? lastName[0] : ''].filter(x => !!x).join('');\r\n}\r\n\r\nexport function asArray<T>(value: ArrayOrSingle<T>) {\r\n    return Array.isArray(value) ? value : [value];\r\n}\r\n\r\nexport function asSingle<T>(value: ArrayOrSingle<T>) {\r\n    if (Array.isArray(value)) {\r\n        return value.length > 0 ? value[0] : undefined;\r\n    }\r\n    return value;\r\n}\r\n\r\nexport function errorEmptyActionResult(errorMessage: string): Observable<EmptyActionResult> {\r\n    return of({ errorMessage: errorMessage });\r\n};\r\n\r\nexport function errorActionResult<T>(errorMessage: string): Observable<ActionResult<T>> {\r\n    return of({ errorMessage: errorMessage });\r\n};\r\n\r\nexport function successEmptyActionResult(): Observable<EmptyActionResult> {\r\n    return of({ data: undefined });\r\n};\r\n\r\nexport function successActionResult<T>(data: T): Observable<ActionResult<T>> {\r\n    return of({ data: data });\r\n};\r\n\r\nexport function actionsChain<T>(intialData?: T): Observable<ActionResult<T>> {\r\n    const chainResult: ActionResult<T> = {\r\n        data: intialData\r\n    };\r\n    return of(chainResult);\r\n}\r\n\r\nexport function guid() {\r\n  return v4();\r\n}\r\n\r\nexport function isObject(obj?: any) {\r\n    return !!obj && typeof obj === 'object';\r\n}\r\n\r\nexport function isString(obj?: any): obj is string {\r\n  return _.isString(obj)\r\n    //return !!obj && typeof obj === 'string';\r\n}\r\n\r\nexport function isEqualValue<T>(val1?: T, val2?: T) {\r\n    if ((val1 === null && val2 === null) || (val1 === undefined && val2 === undefined)) {\r\n        return true;\r\n    }\r\n\r\n    if (isDateTime(val1) || isDateTime(val2)) {\r\n        return DateTime.compare(val1 as DateTime, val2 as DateTime) == 0;\r\n    }\r\n\r\n    if (Array.isArray(val1) && Array.isArray(val2)) {\r\n        return _.isEqual(val1, val2);\r\n    }\r\n\r\n    return val1 === val2;\r\n}\r\n\r\nexport function isDateTime(value: any): value is DateTime {\r\n    return (value as DateTime)?.asApiJsonDateTimeLocal !== undefined;\r\n}\r\n\r\nexport function arrayAppend<T>(array: T[] | DeepReadonly<T[]>, data: T[] | DeepReadonly<T[]>): T[] {\r\n    const pushData = data as unknown as any[];\r\n    (array as unknown as any[]).push(...pushData);\r\n    return array as T[];\r\n}\r\n\r\nexport function arrayReorder<T extends object>(array: readonly DeepReadonly<T>[], fromIndex: number, toIndex: number): T[] {\r\n    if (fromIndex < 0 || fromIndex >= array.length || toIndex < 0 || toIndex >= array.length) {\r\n        throw new Error('Invalid indices');\r\n    }\r\n\r\n    const newArray = cast<T[]>([...array]);\r\n    // Remove the element from the fromIndex\r\n    const [element] = newArray.splice(fromIndex, 1);\r\n\r\n    // Insert the element at the toIndex\r\n    newArray.splice(toIndex, 0, element);\r\n\r\n    return newArray;\r\n}\r\n\r\nexport function getParentHtmlElementWithClass(htmlElement: HTMLElement, className: string) {\r\n    let currentElement: HTMLElement | null = htmlElement.parentElement;\r\n\r\n    while (currentElement !== null) {\r\n        if (currentElement.classList && currentElement.classList.contains(className)) {\r\n            return currentElement;\r\n        }\r\n        currentElement = currentElement.parentElement;\r\n    }\r\n\r\n    return null;\r\n}\r\n\r\nexport function apiDataContentToBlob(dataContent: DataContentModel, sliceSize: number = 512) {\r\n    const byteCharacters = atob(dataContent.data);\r\n    const byteArrays = [];\r\n\r\n    for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {\r\n        const slice = byteCharacters.slice(offset, offset + sliceSize);\r\n\r\n        const byteNumbers = new Array(slice.length);\r\n        for (let i = 0; i < slice.length; i++) {\r\n            byteNumbers[i] = slice.charCodeAt(i);\r\n        }\r\n\r\n        const byteArray = new Uint8Array(byteNumbers);\r\n        byteArrays.push(byteArray);\r\n    }\r\n\r\n    const blob = new Blob(byteArrays, {\r\n        type: dataContent.contentType\r\n    });\r\n\r\n    return blob;\r\n}\r\n","import { jsonDeserialize } from \"./functions.helper\";\r\n\r\nconst tokenToJson = (token: string) => {\r\n    const rawToken = token.split('.')[1];\r\n    const tokenAsJsonString = atob(rawToken);\r\n    const tokenAsJson = jsonDeserialize<any>(tokenAsJsonString);\r\n    return tokenAsJson;\r\n};\r\n\r\nexport const securityHelper = {\r\n    isIntermediaryJwtToken: (token: string) => {\r\n        const tokenAsJson = tokenToJson(token);\r\n        return !!tokenAsJson['aptaero:intermediary'];\r\n    },\r\n    isJwtTokenExpired: (token: string) => {\r\n        try {          \r\n            const tokenAsJson = tokenToJson(token);\r\n            const expiry = tokenAsJson.exp;\r\n            return expiry * 1000 < Date.now();\r\n        } catch {\r\n            return false;\r\n        }\r\n    },\r\n    getJwtTokenAudience: (token: string) => {\r\n        try {\r\n            const tokenAsJson = tokenToJson(token);\r\n            return tokenAsJson.aud as string;            \r\n        } catch {\r\n            return null;\r\n        }\r\n    }\r\n};\r\n","import { DeepReadonly } from \"./common.type\";\r\nimport { StateProvider } from \"./state.type\";\r\n\r\nexport abstract class StateProviderService<T extends object>{\r\n    constructor(private _stateProvider: StateProvider<T>) {\r\n    }\r\n\r\n    get state$() {\r\n        return this._stateProvider.state$;\r\n    }\r\n\r\n    protected get currentState() {\r\n        return this._stateProvider.currentState;\r\n    }\r\n\r\n    protected updateState(updateCallback: (prevState: DeepReadonly<T>) => DeepReadonly<T>) {\r\n        this._stateProvider.update(updateCallback);\r\n    }\r\n\r\n    protected patchState(patchCallback: ((prevState: DeepReadonly<T>) => DeepReadonly<Partial<T>>) | DeepReadonly<Partial<T>>) {\r\n        this._stateProvider.patch(patchCallback);\r\n    }\r\n}\r\n","/**\r\n * Generated by orval v6.25.0 🍺\r\n * Do not edit manually.\r\n * Aptaero.VisitorPass.WebAPI\r\n * OpenAPI spec version: 1.0\r\n */\r\nimport {\r\n  HttpClient\r\n} from '@angular/common/http'\r\nimport type {\r\n  HttpContext,\r\n  HttpHeaders,\r\n  HttpParams\r\n} from '@angular/common/http'\r\nimport {\r\n  Injectable\r\n} from '@angular/core'\r\nimport {\r\n  Observable\r\n} from 'rxjs'\r\nimport type {\r\n  AccountChangePasswordModel,\r\n  AccountMfaAuthenticatorAppEnableModel,\r\n  AccountMfaAuthenticatorAppSetupModel,\r\n  AccountModel,\r\n  AdminPortalApplicationModel,\r\n  AllotmentDateRangeDetailModel,\r\n  AllotmentModel,\r\n  AllotmentSettingsModel,\r\n  AllotmentToggleActiveModel,\r\n  AllotmentWeekDetailModel,\r\n  CategoryDictionaryModel,\r\n  CompanyDictionaryModel,\r\n  CompanyModel,\r\n  CompanySaveModel,\r\n  CompanyToggleActiveModel,\r\n  DataContentModel,\r\n  DepartmentDictionaryModel,\r\n  DepartmentModel,\r\n  DepartmentSaveModel,\r\n  DeploymentModel,\r\n  FaceDetectionModel,\r\n  IdentityExternalUserAuthenticateRequestModel,\r\n  IdentityMobileAuthenticateRequestModel,\r\n  IdentityMobileAuthenticateResponseModel,\r\n  IdentityPcmAuthenticateRequestModel,\r\n  IdentityPcmAuthenticateResponseModel,\r\n  IdentityUserAuthenticateMfaRequestModel,\r\n  IdentityUserAuthenticatePasswordChangeRequestModel,\r\n  IdentityUserAuthenticateRequestModel,\r\n  IdentityUserAuthenticateResponseModel,\r\n  MidfieldPersonGetParams,\r\n  MidfieldPersonModel,\r\n  MidfieldTripAuditTrailModel,\r\n  MidfieldTripGetDetailParams,\r\n  MidfieldTripGetParams,\r\n  MidfieldTripModel,\r\n  MidfieldTripModelPaginationResultModel,\r\n  MidfieldTripPersonAuthenticationRequestModel,\r\n  MidfieldTripPersonModel,\r\n  MidfieldTripReportReservationHistoryParams,\r\n  MidfieldTripStartModel,\r\n  MobileIdentityAuditTrailModel,\r\n  MobileIdentityModel,\r\n  MobileIdentitySaveModel,\r\n  OfficeVisitorAuditTrailModel,\r\n  OfficeVisitorCategoryDictionaryModel,\r\n  OfficeVisitorCategoryModel,\r\n  OfficeVisitorCategorySaveModel,\r\n  OfficeVisitorCategoryToggleDefaultModel,\r\n  OfficeVisitorGetParams,\r\n  OfficeVisitorHostProfileModel,\r\n  OfficeVisitorHostProfileResponseModel,\r\n  OfficeVisitorInvitationContentRequestModel,\r\n  OfficeVisitorInvitationContentResponseModel,\r\n  OfficeVisitorInvitationModel,\r\n  OfficeVisitorModel,\r\n  OfficeVisitorModelPaginationResultModel,\r\n  OfficeVisitorPrintResponseModel,\r\n  OfficeVisitorRegistrationModel,\r\n  OfficeVisitorRegistrationSaveModel,\r\n  OfficeVisitorReportParams,\r\n  OfficeVisitorSaveModel,\r\n  OfficeVisitorVetResponseModel,\r\n  OfficeVisitorsApplicationModel,\r\n  OfficeVisitorsOutlookAddinApplicationModel,\r\n  PublicAccessAllotmentAvailabilityResponseModel,\r\n  PublicAccessVisitorAllotmentAvailabilityParams,\r\n  PublicAccessVisitorGetParams,\r\n  PublicAccessVisitorModel,\r\n  PublicAccessVisitorModelPaginationResultModel,\r\n  PublicAccessVisitorPrintResponseModel,\r\n  PublicAccessVisitorSaveModel,\r\n  PublicAccessVisitorVetResponseModel,\r\n  RoleDictionaryModel,\r\n  StoplistMatchResolveRequestModel,\r\n  UserAuditTrailModel,\r\n  UserGetParams,\r\n  UserModel,\r\n  UserSaveModel\r\n} from './api.schemas'\r\n\r\n\r\ntype HttpClientOptions = {\r\n  headers?: HttpHeaders | {\r\n      [header: string]: string | string[];\r\n  };\r\n  context?: HttpContext;\r\n  observe?: any;\r\n  params?: HttpParams | {\r\n    [param: string]: string | number | boolean | ReadonlyArray<string | number | boolean>;\r\n  };\r\n  reportProgress?: boolean;\r\n  responseType?: any;\r\n  withCredentials?: boolean;\r\n};\r\n\r\n\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AptaeroVisitorPassWebAPIApiService {\r\n  constructor(\r\n    private http: HttpClient,\r\n  ) {} accountGet<TData = AccountModel>(\r\n     options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.get<TData>(\r\n      `/api/Account`,options\r\n    );\r\n  }\r\n\r\n accountMfaDisable<TData = void>(\r\n     options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.post<TData>(\r\n      `/api/Account/MfaDisable`,undefined,options\r\n    );\r\n  }\r\n\r\n accountMfaEmailEnable<TData = void>(\r\n     options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.post<TData>(\r\n      `/api/Account/MfaEmailEnable`,undefined,options\r\n    );\r\n  }\r\n\r\n accountMfaAuthenticatorAppSetup<TData = AccountMfaAuthenticatorAppSetupModel>(\r\n     options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.post<TData>(\r\n      `/api/Account/MfaAuthenticatorAppSetup`,undefined,options\r\n    );\r\n  }\r\n\r\n accountMfaAuthenticatorAppEnable<TData = void>(\r\n    accountMfaAuthenticatorAppEnableModel: AccountMfaAuthenticatorAppEnableModel, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.post<TData>(\r\n      `/api/Account/MfaAuthenticatorAppEnable`,\r\n      accountMfaAuthenticatorAppEnableModel,options\r\n    );\r\n  }\r\n\r\n accountChangePassword<TData = void>(\r\n    accountChangePasswordModel: AccountChangePasswordModel, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.post<TData>(\r\n      `/api/Account/ChangePassword`,\r\n      accountChangePasswordModel,options\r\n    );\r\n  }\r\n\r\n allotmentGet<TData = AllotmentModel[]>(\r\n     options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.get<TData>(\r\n      `/api/Allotment`,options\r\n    );\r\n  }\r\n\r\n allotmentDelete<TData = void>(\r\n    id: string, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.delete<TData>(\r\n      `/api/Allotment/${id}`,options\r\n    );\r\n  }\r\n\r\n allotmentReorder<TData = void>(\r\n    allotmentReorderBody: string[], options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.post<TData>(\r\n      `/api/Allotment/Reorder`,\r\n      allotmentReorderBody,options\r\n    );\r\n  }\r\n\r\n allotmentToggle<TData = void>(\r\n    id: string,\r\n    allotmentToggleActiveModel: AllotmentToggleActiveModel, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.post<TData>(\r\n      `/api/Allotment/${id}/Toggle`,\r\n      allotmentToggleActiveModel,options\r\n    );\r\n  }\r\n\r\n allotmentGetSettings<TData = AllotmentSettingsModel>(\r\n     options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.get<TData>(\r\n      `/api/Allotment/Settings`,options\r\n    );\r\n  }\r\n\r\n allotmentSaveSettings<TData = AllotmentSettingsModel>(\r\n    allotmentSettingsModel: AllotmentSettingsModel, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.post<TData>(\r\n      `/api/Allotment/Settings`,\r\n      allotmentSettingsModel,options\r\n    );\r\n  }\r\n\r\n allotmentGetWeek<TData = AllotmentWeekDetailModel>(\r\n    id: string, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.get<TData>(\r\n      `/api/Allotment/Week/${id}`,options\r\n    );\r\n  }\r\n\r\n allotmentSaveWeek<TData = AllotmentModel>(\r\n    allotmentWeekDetailModel: AllotmentWeekDetailModel, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.post<TData>(\r\n      `/api/Allotment/Week`,\r\n      allotmentWeekDetailModel,options\r\n    );\r\n  }\r\n\r\n allotmentGetDateRange<TData = AllotmentDateRangeDetailModel>(\r\n    id: string, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.get<TData>(\r\n      `/api/Allotment/DateRange/${id}`,options\r\n    );\r\n  }\r\n\r\n allotmentSaveDateRange<TData = AllotmentModel>(\r\n    allotmentDateRangeDetailModel: AllotmentDateRangeDetailModel, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.post<TData>(\r\n      `/api/Allotment/DateRange`,\r\n      allotmentDateRangeDetailModel,options\r\n    );\r\n  }\r\n\r\n applicationAdminPortal<TData = AdminPortalApplicationModel>(\r\n     options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.get<TData>(\r\n      `/api/Application/AdminPortal`,options\r\n    );\r\n  }\r\n\r\n applicationOfficeVisitors<TData = OfficeVisitorsApplicationModel>(\r\n     options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.get<TData>(\r\n      `/api/Application/OfficeVisitors`,options\r\n    );\r\n  }\r\n\r\n applicationOfficeVisitorsOutlookAddin<TData = OfficeVisitorsOutlookAddinApplicationModel>(\r\n     options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.get<TData>(\r\n      `/api/Application/OfficeVisitorsOutlookAddin`,options\r\n    );\r\n  }\r\n\r\n biometricFaceDetection<TData = void>(\r\n    faceDetectionModel: FaceDetectionModel, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.post<TData>(\r\n      `/api/Biometric/FaceDetection`,\r\n      faceDetectionModel,options\r\n    );\r\n  }\r\n\r\n companyGet<TData = CompanyModel[]>(\r\n     options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.get<TData>(\r\n      `/api/Company`,options\r\n    );\r\n  }\r\n\r\n companySave<TData = CompanyModel>(\r\n    companySaveModel: CompanySaveModel, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.post<TData>(\r\n      `/api/Company`,\r\n      companySaveModel,options\r\n    );\r\n  }\r\n\r\n companyDelete<TData = void>(\r\n    id: string, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.delete<TData>(\r\n      `/api/Company/${id}`,options\r\n    );\r\n  }\r\n\r\n companyToggle<TData = void>(\r\n    id: string,\r\n    companyToggleActiveModel: CompanyToggleActiveModel, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.post<TData>(\r\n      `/api/Company/${id}/Toggle`,\r\n      companyToggleActiveModel,options\r\n    );\r\n  }\r\n\r\n departmentGet<TData = DepartmentModel[]>(\r\n     options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.get<TData>(\r\n      `/api/Department`,options\r\n    );\r\n  }\r\n\r\n departmentAdd<TData = DepartmentModel>(\r\n    departmentSaveModel: DepartmentSaveModel, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.post<TData>(\r\n      `/api/Department`,\r\n      departmentSaveModel,options\r\n    );\r\n  }\r\n\r\n departmentDelete<TData = void>(\r\n    id: string, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.delete<TData>(\r\n      `/api/Department/${id}`,options\r\n    );\r\n  }\r\n\r\n departmentUpdate<TData = DepartmentModel>(\r\n    id: string,\r\n    departmentSaveModel: DepartmentSaveModel, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.put<TData>(\r\n      `/api/Department/${id}`,\r\n      departmentSaveModel,options\r\n    );\r\n  }\r\n\r\n deploymentDeployment<TData = DeploymentModel>(\r\n     options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.get<TData>(\r\n      `/api/Deployment/Deployment`,options\r\n    );\r\n  }\r\n\r\n dictionaryOfficeVisitorCategory<TData = OfficeVisitorCategoryDictionaryModel[]>(\r\n     options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.get<TData>(\r\n      `/api/Dictionary/OfficeVisitorCategory`,options\r\n    );\r\n  }\r\n\r\n dictionaryRole<TData = RoleDictionaryModel[]>(\r\n     options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.get<TData>(\r\n      `/api/Dictionary/Role`,options\r\n    );\r\n  }\r\n\r\n dictionaryCategory<TData = CategoryDictionaryModel[]>(\r\n     options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.get<TData>(\r\n      `/api/Dictionary/Category`,options\r\n    );\r\n  }\r\n\r\n dictionaryCompany<TData = CompanyDictionaryModel[]>(\r\n     options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.get<TData>(\r\n      `/api/Dictionary/Company`,options\r\n    );\r\n  }\r\n\r\n dictionaryDepartment<TData = DepartmentDictionaryModel[]>(\r\n     options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.get<TData>(\r\n      `/api/Dictionary/Department`,options\r\n    );\r\n  }\r\n\r\n identityUserAuthenticate<TData = IdentityUserAuthenticateResponseModel>(\r\n    identityUserAuthenticateRequestModel: IdentityUserAuthenticateRequestModel, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.post<TData>(\r\n      `/api/Identity/UserAuthenticate`,\r\n      identityUserAuthenticateRequestModel,options\r\n    );\r\n  }\r\n\r\n identityUserAuthenticateMfa<TData = IdentityUserAuthenticateResponseModel>(\r\n    identityUserAuthenticateMfaRequestModel: IdentityUserAuthenticateMfaRequestModel, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.post<TData>(\r\n      `/api/Identity/UserAuthenticateMfa`,\r\n      identityUserAuthenticateMfaRequestModel,options\r\n    );\r\n  }\r\n\r\n identityUserAuthenticatePasswordChange<TData = IdentityUserAuthenticateResponseModel>(\r\n    identityUserAuthenticatePasswordChangeRequestModel: IdentityUserAuthenticatePasswordChangeRequestModel, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.post<TData>(\r\n      `/api/Identity/UserAuthenticatePasswordChange`,\r\n      identityUserAuthenticatePasswordChangeRequestModel,options\r\n    );\r\n  }\r\n\r\n identityPcmAuthenticate<TData = IdentityPcmAuthenticateResponseModel>(\r\n    identityPcmAuthenticateRequestModel: IdentityPcmAuthenticateRequestModel, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.post<TData>(\r\n      `/api/Identity/PcmAuthenticate`,\r\n      identityPcmAuthenticateRequestModel,options\r\n    );\r\n  }\r\n\r\n identityExternalUserAuthenticate<TData = IdentityUserAuthenticateResponseModel>(\r\n    identityExternalUserAuthenticateRequestModel: IdentityExternalUserAuthenticateRequestModel, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.post<TData>(\r\n      `/api/Identity/ExternalUserAuthenticate`,\r\n      identityExternalUserAuthenticateRequestModel,options\r\n    );\r\n  }\r\n\r\n identityMobileAuthenticate<TData = IdentityMobileAuthenticateResponseModel>(\r\n    identityMobileAuthenticateRequestModel: IdentityMobileAuthenticateRequestModel, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.post<TData>(\r\n      `/api/Identity/MobileAuthenticate`,\r\n      identityMobileAuthenticateRequestModel,options\r\n    );\r\n  }\r\n\r\n midfieldPersonGet<TData = MidfieldPersonModel[]>(\r\n    params: MidfieldPersonGetParams, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.get<TData>(\r\n      `/api/MidfieldPerson`,{\r\n    ...options,\r\n        params: {...params, ...options?.params},}\r\n    );\r\n  }\r\n\r\n midfieldTripPersonFacePhoto<TData = string>(\r\n    mediaIdentifier: string, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.get<TData>(\r\n      `/api/MidfieldTrip/PersonFacePhoto/${mediaIdentifier}`,options\r\n    );\r\n  }\r\n\r\n midfieldTripAuthenticatePerson<TData = MidfieldTripPersonModel>(\r\n    midfieldTripPersonAuthenticationRequestModel: MidfieldTripPersonAuthenticationRequestModel, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.post<TData>(\r\n      `/api/MidfieldTrip/AuthenticatePerson`,\r\n      midfieldTripPersonAuthenticationRequestModel,options\r\n    );\r\n  }\r\n\r\n midfieldTripGet<TData = MidfieldTripModelPaginationResultModel>(\r\n    params: MidfieldTripGetParams, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.get<TData>(\r\n      `/api/MidfieldTrip`,{\r\n    ...options,\r\n        params: {...params, ...options?.params},}\r\n    );\r\n  }\r\n\r\n midfieldTripStart<TData = MidfieldTripModel>(\r\n    midfieldTripStartModel: MidfieldTripStartModel, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.post<TData>(\r\n      `/api/MidfieldTrip`,\r\n      midfieldTripStartModel,options\r\n    );\r\n  }\r\n\r\n midfieldTripGetDetail<TData = MidfieldTripModel>(\r\n    id: string,\r\n    params?: MidfieldTripGetDetailParams, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.get<TData>(\r\n      `/api/MidfieldTrip/${id}`,{\r\n    ...options,\r\n        params: {...params, ...options?.params},}\r\n    );\r\n  }\r\n\r\n midfieldTripCancel<TData = void>(\r\n    id: string, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.post<TData>(\r\n      `/api/MidfieldTrip/${id}/Cancel`,undefined,options\r\n    );\r\n  }\r\n\r\n midfieldTripExtend<TData = MidfieldTripModel>(\r\n    id: string, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.post<TData>(\r\n      `/api/MidfieldTrip/${id}/Extend`,undefined,options\r\n    );\r\n  }\r\n\r\n midfieldTripAuditTrail<TData = MidfieldTripAuditTrailModel>(\r\n    id: string, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.get<TData>(\r\n      `/api/MidfieldTrip/${id}/AuditTrail`,options\r\n    );\r\n  }\r\n\r\n midfieldTripReportReservationHistory<TData = DataContentModel>(\r\n    params: MidfieldTripReportReservationHistoryParams, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.get<TData>(\r\n      `/api/MidfieldTrip/Report/ReservationHistory`,{\r\n    ...options,\r\n        params: {...params, ...options?.params},}\r\n    );\r\n  }\r\n\r\n mobileIdentityGet<TData = MobileIdentityModel[]>(\r\n     options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.get<TData>(\r\n      `/api/MobileIdentity`,options\r\n    );\r\n  }\r\n\r\n mobileIdentityAdd<TData = MobileIdentityModel>(\r\n    mobileIdentitySaveModel: MobileIdentitySaveModel, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.post<TData>(\r\n      `/api/MobileIdentity`,\r\n      mobileIdentitySaveModel,options\r\n    );\r\n  }\r\n\r\n mobileIdentityDelete<TData = void>(\r\n    id: string, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.delete<TData>(\r\n      `/api/MobileIdentity/${id}`,options\r\n    );\r\n  }\r\n\r\n mobileIdentityUpdate<TData = MobileIdentityModel>(\r\n    id: string,\r\n    mobileIdentitySaveModel: MobileIdentitySaveModel, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.put<TData>(\r\n      `/api/MobileIdentity/${id}`,\r\n      mobileIdentitySaveModel,options\r\n    );\r\n  }\r\n\r\n mobileIdentityNewAuthenticationCode<TData = MobileIdentityModel>(\r\n    id: string, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.post<TData>(\r\n      `/api/MobileIdentity/${id}/NewAuthenticationCode`,undefined,options\r\n    );\r\n  }\r\n\r\n mobileIdentityAuditTrail<TData = MobileIdentityAuditTrailModel>(\r\n    id: string, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.get<TData>(\r\n      `/api/MobileIdentity/${id}/AuditTrail`,options\r\n    );\r\n  }\r\n\r\n officeVisitorGet<TData = OfficeVisitorModelPaginationResultModel>(\r\n    params: OfficeVisitorGetParams, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.get<TData>(\r\n      `/api/OfficeVisitor`,{\r\n    ...options,\r\n        params: {...params, ...options?.params},}\r\n    );\r\n  }\r\n\r\n officeVisitorAdd<TData = OfficeVisitorModel>(\r\n    officeVisitorSaveModel: OfficeVisitorSaveModel, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.post<TData>(\r\n      `/api/OfficeVisitor`,\r\n      officeVisitorSaveModel,options\r\n    );\r\n  }\r\n\r\n officeVisitorGetDetail<TData = OfficeVisitorModel>(\r\n    id: string, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.get<TData>(\r\n      `/api/OfficeVisitor/${id}`,options\r\n    );\r\n  }\r\n\r\n officeVisitorUpdate<TData = OfficeVisitorModel>(\r\n    id: string,\r\n    officeVisitorSaveModel: OfficeVisitorSaveModel, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.put<TData>(\r\n      `/api/OfficeVisitor/${id}`,\r\n      officeVisitorSaveModel,options\r\n    );\r\n  }\r\n\r\n officeVisitorAuditTrail<TData = OfficeVisitorAuditTrailModel>(\r\n    id: string, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.get<TData>(\r\n      `/api/OfficeVisitor/${id}/AuditTrail`,options\r\n    );\r\n  }\r\n\r\n officeVisitorReport<TData = DataContentModel>(\r\n    params: OfficeVisitorReportParams, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.get<TData>(\r\n      `/api/OfficeVisitor/Report`,{\r\n    ...options,\r\n        params: {...params, ...options?.params},}\r\n    );\r\n  }\r\n\r\n officeVisitorMedia<TData = string>(\r\n    mediaIdentifier: string, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.get<TData>(\r\n      `/api/OfficeVisitor/Media/${mediaIdentifier}`,options\r\n    );\r\n  }\r\n\r\n officeVisitorVet<TData = OfficeVisitorVetResponseModel>(\r\n    id: string, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.post<TData>(\r\n      `/api/OfficeVisitor/${id}/Vet`,undefined,options\r\n    );\r\n  }\r\n\r\n officeVisitorCancel<TData = OfficeVisitorModel>(\r\n    id: string, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.post<TData>(\r\n      `/api/OfficeVisitor/${id}/Cancel`,undefined,options\r\n    );\r\n  }\r\n\r\n officeVisitorSignIn<TData = OfficeVisitorModel>(\r\n    id: string, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.post<TData>(\r\n      `/api/OfficeVisitor/${id}/SignIn`,undefined,options\r\n    );\r\n  }\r\n\r\n officeVisitorSignOut<TData = OfficeVisitorModel>(\r\n    id: string, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.post<TData>(\r\n      `/api/OfficeVisitor/${id}/SignOut`,undefined,options\r\n    );\r\n  }\r\n\r\n officeVisitorVetStoplistMatch<TData = OfficeVisitorModel>(\r\n    id: string,\r\n    stoplistMatchResolveRequestModel: StoplistMatchResolveRequestModel, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.post<TData>(\r\n      `/api/OfficeVisitor/${id}/VetStoplistMatch`,\r\n      stoplistMatchResolveRequestModel,options\r\n    );\r\n  }\r\n\r\n officeVisitorPrint<TData = OfficeVisitorPrintResponseModel>(\r\n    id: string, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.post<TData>(\r\n      `/api/OfficeVisitor/${id}/Print`,undefined,options\r\n    );\r\n  }\r\n\r\n officeVisitorCategoryGet<TData = OfficeVisitorCategoryModel[]>(\r\n     options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.get<TData>(\r\n      `/api/OfficeVisitorCategory`,options\r\n    );\r\n  }\r\n\r\n officeVisitorCategoryAdd<TData = OfficeVisitorCategoryModel>(\r\n    officeVisitorCategorySaveModel: OfficeVisitorCategorySaveModel, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.post<TData>(\r\n      `/api/OfficeVisitorCategory`,\r\n      officeVisitorCategorySaveModel,options\r\n    );\r\n  }\r\n\r\n officeVisitorCategoryDelete<TData = void>(\r\n    id: string, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.delete<TData>(\r\n      `/api/OfficeVisitorCategory/${id}`,options\r\n    );\r\n  }\r\n\r\n officeVisitorCategoryUpdate<TData = OfficeVisitorCategoryModel>(\r\n    id: string,\r\n    officeVisitorCategorySaveModel: OfficeVisitorCategorySaveModel, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.put<TData>(\r\n      `/api/OfficeVisitorCategory/${id}`,\r\n      officeVisitorCategorySaveModel,options\r\n    );\r\n  }\r\n\r\n officeVisitorCategoryToggleDefault<TData = void>(\r\n    id: string,\r\n    officeVisitorCategoryToggleDefaultModel: OfficeVisitorCategoryToggleDefaultModel, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.post<TData>(\r\n      `/api/OfficeVisitorCategory/${id}/ToggleDefault`,\r\n      officeVisitorCategoryToggleDefaultModel,options\r\n    );\r\n  }\r\n\r\n officeVisitorInvitationGetHostProfile<TData = OfficeVisitorHostProfileResponseModel>(\r\n    email: string, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.get<TData>(\r\n      `/api/OfficeVisitorInvitation/${email}`,options\r\n    );\r\n  }\r\n\r\n officeVisitorInvitationSaveHostProfile<TData = OfficeVisitorHostProfileModel>(\r\n    officeVisitorHostProfileModel: OfficeVisitorHostProfileModel, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.post<TData>(\r\n      `/api/OfficeVisitorInvitation`,\r\n      officeVisitorHostProfileModel,options\r\n    );\r\n  }\r\n\r\n officeVisitorInvitationGetInvitationContent<TData = OfficeVisitorInvitationContentResponseModel>(\r\n    email: string,\r\n    officeVisitorInvitationContentRequestModel: OfficeVisitorInvitationContentRequestModel, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.post<TData>(\r\n      `/api/OfficeVisitorInvitation/${email}/invitation-link`,\r\n      officeVisitorInvitationContentRequestModel,options\r\n    );\r\n  }\r\n\r\n officeVisitorRegistrationGetVisitDetail<TData = OfficeVisitorRegistrationModel>(\r\n    publicToken: string, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.get<TData>(\r\n      `/api/OfficeVisitorRegistration/visit/${publicToken}`,options\r\n    );\r\n  }\r\n\r\n officeVisitorRegistrationCancelVisit<TData = void>(\r\n    publicToken: string, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.post<TData>(\r\n      `/api/OfficeVisitorRegistration/visit/${publicToken}/cancel`,undefined,options\r\n    );\r\n  }\r\n\r\n officeVisitorRegistrationGetInvitation<TData = OfficeVisitorInvitationModel>(\r\n    invitationToken: string, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.get<TData>(\r\n      `/api/OfficeVisitorRegistration/invitation/${invitationToken}`,options\r\n    );\r\n  }\r\n\r\n officeVisitorRegistrationAddVisit<TData = void>(\r\n    invitationToken: string,\r\n    officeVisitorRegistrationSaveModel: OfficeVisitorRegistrationSaveModel, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.post<TData>(\r\n      `/api/OfficeVisitorRegistration/visit/${invitationToken}/register`,\r\n      officeVisitorRegistrationSaveModel,options\r\n    );\r\n  }\r\n\r\n publicAccessVisitorGet<TData = PublicAccessVisitorModelPaginationResultModel>(\r\n    params: PublicAccessVisitorGetParams, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.get<TData>(\r\n      `/api/PublicAccessVisitor`,{\r\n    ...options,\r\n        params: {...params, ...options?.params},}\r\n    );\r\n  }\r\n\r\n publicAccessVisitorAdd<TData = PublicAccessVisitorModel>(\r\n    publicAccessVisitorSaveModel: PublicAccessVisitorSaveModel, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.post<TData>(\r\n      `/api/PublicAccessVisitor`,\r\n      publicAccessVisitorSaveModel,options\r\n    );\r\n  }\r\n\r\n publicAccessVisitorGetDetail<TData = PublicAccessVisitorModel>(\r\n    id: string, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.get<TData>(\r\n      `/api/PublicAccessVisitor/${id}`,options\r\n    );\r\n  }\r\n\r\n publicAccessVisitorUpdate<TData = PublicAccessVisitorModel>(\r\n    id: string,\r\n    publicAccessVisitorSaveModel: PublicAccessVisitorSaveModel, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.put<TData>(\r\n      `/api/PublicAccessVisitor/${id}`,\r\n      publicAccessVisitorSaveModel,options\r\n    );\r\n  }\r\n\r\n publicAccessVisitorAuditTrail<TData = OfficeVisitorAuditTrailModel>(\r\n    id: string, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.get<TData>(\r\n      `/api/PublicAccessVisitor/${id}/AuditTrail`,options\r\n    );\r\n  }\r\n\r\n publicAccessVisitorAllotmentAvailability<TData = PublicAccessAllotmentAvailabilityResponseModel>(\r\n    params: PublicAccessVisitorAllotmentAvailabilityParams, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.get<TData>(\r\n      `/api/PublicAccessVisitor/AllotmentAvailability`,{\r\n    ...options,\r\n        params: {...params, ...options?.params},}\r\n    );\r\n  }\r\n\r\n publicAccessVisitorVet<TData = PublicAccessVisitorVetResponseModel>(\r\n    id: string, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.post<TData>(\r\n      `/api/PublicAccessVisitor/${id}/Vet`,undefined,options\r\n    );\r\n  }\r\n\r\n publicAccessVisitorVetStoplistMatch<TData = PublicAccessVisitorModel>(\r\n    id: string,\r\n    stoplistMatchResolveRequestModel: StoplistMatchResolveRequestModel, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.post<TData>(\r\n      `/api/PublicAccessVisitor/${id}/VetStoplistMatch`,\r\n      stoplistMatchResolveRequestModel,options\r\n    );\r\n  }\r\n\r\n publicAccessVisitorCancel<TData = PublicAccessVisitorModel>(\r\n    id: string, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.post<TData>(\r\n      `/api/PublicAccessVisitor/${id}/Cancel`,undefined,options\r\n    );\r\n  }\r\n\r\n publicAccessVisitorPrint<TData = PublicAccessVisitorPrintResponseModel>(\r\n    id: string, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.post<TData>(\r\n      `/api/PublicAccessVisitor/${id}/Print`,undefined,options\r\n    );\r\n  }\r\n\r\n userGet<TData = UserModel[]>(\r\n    params?: UserGetParams, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.get<TData>(\r\n      `/api/User`,{\r\n    ...options,\r\n        params: {...params, ...options?.params},}\r\n    );\r\n  }\r\n\r\n userAdd<TData = UserModel>(\r\n    userSaveModel: UserSaveModel, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.post<TData>(\r\n      `/api/User`,\r\n      userSaveModel,options\r\n    );\r\n  }\r\n\r\n userUpdate<TData = UserModel>(\r\n    id: string,\r\n    userSaveModel: UserSaveModel, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.put<TData>(\r\n      `/api/User/${id}`,\r\n      userSaveModel,options\r\n    );\r\n  }\r\n\r\n userActivate<TData = UserModel>(\r\n    id: string, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.post<TData>(\r\n      `/api/User/${id}/Activate`,undefined,options\r\n    );\r\n  }\r\n\r\n userDeactivate<TData = UserModel>(\r\n    id: string, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.post<TData>(\r\n      `/api/User/${id}/Deactivate`,undefined,options\r\n    );\r\n  }\r\n\r\n userAuditTrail<TData = UserAuditTrailModel>(\r\n    id: string, options?: HttpClientOptions\r\n  ): Observable<TData>  {\r\n    return this.http.get<TData>(\r\n      `/api/User/${id}/AuditTrail`,options\r\n    );\r\n  }\r\n\r\n};\r\n\r\nexport type AccountGetClientResult = NonNullable<AccountModel>\r\nexport type AccountMfaDisableClientResult = NonNullable<void>\r\nexport type AccountMfaEmailEnableClientResult = NonNullable<void>\r\nexport type AccountMfaAuthenticatorAppSetupClientResult = NonNullable<AccountMfaAuthenticatorAppSetupModel>\r\nexport type AccountMfaAuthenticatorAppEnableClientResult = NonNullable<void>\r\nexport type AccountChangePasswordClientResult = NonNullable<void>\r\nexport type AllotmentGetClientResult = NonNullable<AllotmentModel[]>\r\nexport type AllotmentDeleteClientResult = NonNullable<void>\r\nexport type AllotmentReorderClientResult = NonNullable<void>\r\nexport type AllotmentToggleClientResult = NonNullable<void>\r\nexport type AllotmentGetSettingsClientResult = NonNullable<AllotmentSettingsModel>\r\nexport type AllotmentSaveSettingsClientResult = NonNullable<AllotmentSettingsModel>\r\nexport type AllotmentGetWeekClientResult = NonNullable<AllotmentWeekDetailModel>\r\nexport type AllotmentSaveWeekClientResult = NonNullable<AllotmentModel>\r\nexport type AllotmentGetDateRangeClientResult = NonNullable<AllotmentDateRangeDetailModel>\r\nexport type AllotmentSaveDateRangeClientResult = NonNullable<AllotmentModel>\r\nexport type ApplicationAdminPortalClientResult = NonNullable<AdminPortalApplicationModel>\r\nexport type ApplicationOfficeVisitorsClientResult = NonNullable<OfficeVisitorsApplicationModel>\r\nexport type ApplicationOfficeVisitorsOutlookAddinClientResult = NonNullable<OfficeVisitorsOutlookAddinApplicationModel>\r\nexport type BiometricFaceDetectionClientResult = NonNullable<void>\r\nexport type CompanyGetClientResult = NonNullable<CompanyModel[]>\r\nexport type CompanySaveClientResult = NonNullable<CompanyModel>\r\nexport type CompanyDeleteClientResult = NonNullable<void>\r\nexport type CompanyToggleClientResult = NonNullable<void>\r\nexport type DepartmentGetClientResult = NonNullable<DepartmentModel[]>\r\nexport type DepartmentAddClientResult = NonNullable<DepartmentModel>\r\nexport type DepartmentDeleteClientResult = NonNullable<void>\r\nexport type DepartmentUpdateClientResult = NonNullable<DepartmentModel>\r\nexport type DeploymentDeploymentClientResult = NonNullable<DeploymentModel>\r\nexport type DictionaryOfficeVisitorCategoryClientResult = NonNullable<OfficeVisitorCategoryDictionaryModel[]>\r\nexport type DictionaryRoleClientResult = NonNullable<RoleDictionaryModel[]>\r\nexport type DictionaryCategoryClientResult = NonNullable<CategoryDictionaryModel[]>\r\nexport type DictionaryCompanyClientResult = NonNullable<CompanyDictionaryModel[]>\r\nexport type DictionaryDepartmentClientResult = NonNullable<DepartmentDictionaryModel[]>\r\nexport type IdentityUserAuthenticateClientResult = NonNullable<IdentityUserAuthenticateResponseModel>\r\nexport type IdentityUserAuthenticateMfaClientResult = NonNullable<IdentityUserAuthenticateResponseModel>\r\nexport type IdentityUserAuthenticatePasswordChangeClientResult = NonNullable<IdentityUserAuthenticateResponseModel>\r\nexport type IdentityPcmAuthenticateClientResult = NonNullable<IdentityPcmAuthenticateResponseModel>\r\nexport type IdentityExternalUserAuthenticateClientResult = NonNullable<IdentityUserAuthenticateResponseModel>\r\nexport type IdentityMobileAuthenticateClientResult = NonNullable<IdentityMobileAuthenticateResponseModel>\r\nexport type MidfieldPersonGetClientResult = NonNullable<MidfieldPersonModel[]>\r\nexport type MidfieldTripPersonFacePhotoClientResult = NonNullable<string>\r\nexport type MidfieldTripAuthenticatePersonClientResult = NonNullable<MidfieldTripPersonModel>\r\nexport type MidfieldTripGetClientResult = NonNullable<MidfieldTripModelPaginationResultModel>\r\nexport type MidfieldTripStartClientResult = NonNullable<MidfieldTripModel>\r\nexport type MidfieldTripGetDetailClientResult = NonNullable<MidfieldTripModel>\r\nexport type MidfieldTripCancelClientResult = NonNullable<void>\r\nexport type MidfieldTripExtendClientResult = NonNullable<MidfieldTripModel>\r\nexport type MidfieldTripAuditTrailClientResult = NonNullable<MidfieldTripAuditTrailModel>\r\nexport type MidfieldTripReportReservationHistoryClientResult = NonNullable<DataContentModel>\r\nexport type MobileIdentityGetClientResult = NonNullable<MobileIdentityModel[]>\r\nexport type MobileIdentityAddClientResult = NonNullable<MobileIdentityModel>\r\nexport type MobileIdentityDeleteClientResult = NonNullable<void>\r\nexport type MobileIdentityUpdateClientResult = NonNullable<MobileIdentityModel>\r\nexport type MobileIdentityNewAuthenticationCodeClientResult = NonNullable<MobileIdentityModel>\r\nexport type MobileIdentityAuditTrailClientResult = NonNullable<MobileIdentityAuditTrailModel>\r\nexport type OfficeVisitorGetClientResult = NonNullable<OfficeVisitorModelPaginationResultModel>\r\nexport type OfficeVisitorAddClientResult = NonNullable<OfficeVisitorModel>\r\nexport type OfficeVisitorGetDetailClientResult = NonNullable<OfficeVisitorModel>\r\nexport type OfficeVisitorUpdateClientResult = NonNullable<OfficeVisitorModel>\r\nexport type OfficeVisitorAuditTrailClientResult = NonNullable<OfficeVisitorAuditTrailModel>\r\nexport type OfficeVisitorReportClientResult = NonNullable<DataContentModel>\r\nexport type OfficeVisitorMediaClientResult = NonNullable<string>\r\nexport type OfficeVisitorVetClientResult = NonNullable<OfficeVisitorVetResponseModel>\r\nexport type OfficeVisitorCancelClientResult = NonNullable<OfficeVisitorModel>\r\nexport type OfficeVisitorSignInClientResult = NonNullable<OfficeVisitorModel>\r\nexport type OfficeVisitorSignOutClientResult = NonNullable<OfficeVisitorModel>\r\nexport type OfficeVisitorVetStoplistMatchClientResult = NonNullable<OfficeVisitorModel>\r\nexport type OfficeVisitorPrintClientResult = NonNullable<OfficeVisitorPrintResponseModel>\r\nexport type OfficeVisitorCategoryGetClientResult = NonNullable<OfficeVisitorCategoryModel[]>\r\nexport type OfficeVisitorCategoryAddClientResult = NonNullable<OfficeVisitorCategoryModel>\r\nexport type OfficeVisitorCategoryDeleteClientResult = NonNullable<void>\r\nexport type OfficeVisitorCategoryUpdateClientResult = NonNullable<OfficeVisitorCategoryModel>\r\nexport type OfficeVisitorCategoryToggleDefaultClientResult = NonNullable<void>\r\nexport type OfficeVisitorInvitationGetHostProfileClientResult = NonNullable<OfficeVisitorHostProfileResponseModel>\r\nexport type OfficeVisitorInvitationSaveHostProfileClientResult = NonNullable<OfficeVisitorHostProfileModel>\r\nexport type OfficeVisitorInvitationGetInvitationContentClientResult = NonNullable<OfficeVisitorInvitationContentResponseModel>\r\nexport type OfficeVisitorRegistrationGetVisitDetailClientResult = NonNullable<OfficeVisitorRegistrationModel>\r\nexport type OfficeVisitorRegistrationCancelVisitClientResult = NonNullable<void>\r\nexport type OfficeVisitorRegistrationGetInvitationClientResult = NonNullable<OfficeVisitorInvitationModel>\r\nexport type OfficeVisitorRegistrationAddVisitClientResult = NonNullable<void>\r\nexport type PublicAccessVisitorGetClientResult = NonNullable<PublicAccessVisitorModelPaginationResultModel>\r\nexport type PublicAccessVisitorAddClientResult = NonNullable<PublicAccessVisitorModel>\r\nexport type PublicAccessVisitorGetDetailClientResult = NonNullable<PublicAccessVisitorModel>\r\nexport type PublicAccessVisitorUpdateClientResult = NonNullable<PublicAccessVisitorModel>\r\nexport type PublicAccessVisitorAuditTrailClientResult = NonNullable<OfficeVisitorAuditTrailModel>\r\nexport type PublicAccessVisitorAllotmentAvailabilityClientResult = NonNullable<PublicAccessAllotmentAvailabilityResponseModel>\r\nexport type PublicAccessVisitorVetClientResult = NonNullable<PublicAccessVisitorVetResponseModel>\r\nexport type PublicAccessVisitorVetStoplistMatchClientResult = NonNullable<PublicAccessVisitorModel>\r\nexport type PublicAccessVisitorCancelClientResult = NonNullable<PublicAccessVisitorModel>\r\nexport type PublicAccessVisitorPrintClientResult = NonNullable<PublicAccessVisitorPrintResponseModel>\r\nexport type UserGetClientResult = NonNullable<UserModel[]>\r\nexport type UserAddClientResult = NonNullable<UserModel>\r\nexport type UserUpdateClientResult = NonNullable<UserModel>\r\nexport type UserActivateClientResult = NonNullable<UserModel>\r\nexport type UserDeactivateClientResult = NonNullable<UserModel>\r\nexport type UserAuditTrailClientResult = NonNullable<UserAuditTrailModel>\r\n","\r\nexport abstract class Storage<T> {\r\n    constructor(protected key: string) {\r\n    }\r\n\r\n    getDataWithDefault(defaultFallback: T): T {\r\n        return this.getData() || defaultFallback;\r\n    }\r\n\r\n    abstract getData(): T | null;\r\n    abstract setData(value: T): void;\r\n    abstract removeData(): void;\r\n}\r\n","import { Storage } from \"../type/storage.type\";\r\nimport { cast } from \"../helper/functions.helper\";\r\n\r\nclass MemoryStorage<T> extends Storage<T> {\r\n    private static _memoryStorage: any = {};\r\n\r\n    constructor(key: string) {\r\n        super(key)\r\n    }\r\n\r\n    getData(): T | null {\r\n        const value = MemoryStorage._memoryStorage[this.key];\r\n        return value ? cast<T>(value) : null;        \r\n    }\r\n\r\n    setData(value: T) {\r\n        MemoryStorage._memoryStorage[this.key] = value;\r\n    }\r\n\r\n    removeData() {\r\n        MemoryStorage._memoryStorage[this.key] = null;\r\n    }\r\n}\r\n\r\nexport function createMemoryStorage<T>(key: string) {\r\n    return new MemoryStorage<T>(key);\r\n};\r\n","import { Storage } from \"../type/storage.type\";\r\nimport { jsonDeserialize, jsonSerialize } from \"../helper/functions.helper\";\r\n\r\nclass LocalStorage<T> extends Storage<T> {\r\n    constructor(key: string) {\r\n        super(key)\r\n    }\r\n\r\n    getData() {\r\n        const value = localStorage.getItem(this.key);\r\n        if (!value) {\r\n            return null;\r\n        }\r\n        return jsonDeserialize<T>(value);\r\n    }\r\n\r\n    setData(value: T) {\r\n        localStorage.setItem(this.key, jsonSerialize(value));\r\n    }\r\n\r\n    removeData() {\r\n        localStorage.removeItem(this.key);\r\n    }\r\n}\r\n\r\nexport function createLocalStorage<T>(key: string) {\r\n    return new LocalStorage<T>(key);\r\n};\r\n","import { Storage } from \"../type/storage.type\";\r\n//import { getCookie, setCookie, removeCookie } from \"typescript-cookie\";\r\nimport { jsonDeserialize, jsonSerialize } from \"../helper/functions.helper\";\r\n\r\nclass SecureCookieStorage<T> extends Storage<T> {\r\n    constructor(key: string) {\r\n        super(key)\r\n    }\r\n\r\n    getData() {\r\n      const value = '';// getCookie(this.key);\r\n        return value ? jsonDeserialize<T>(value) : null;\r\n    }\r\n\r\n    setData(value: T) {\r\n        //removeCookie(this.key);\r\n        //setCookie(this.key, jsonSerialize(value), { secure: true, expires: 365, path: '/' });\r\n    }\r\n\r\n    removeData() {\r\n        //removeCookie(this.key);\r\n    }\r\n}\r\n\r\nexport function createSecureCookieStorage<T>(key: string) {\r\n    return new SecureCookieStorage<T>(key);\r\n};\r\n","import { BehaviorSubject } from \"rxjs\";\r\nimport { Storage } from \"./storage.type\";\r\nimport { DeepReadonly } from \"./common.type\";\r\nimport { createMemoryStorage } from \"../storage/memory.storage\";\r\nimport { createLocalStorage } from \"../storage/local.storage\";\r\nimport { createSecureCookieStorage } from \"../storage/secure-cookie.storage\";\r\n\r\ntype CreateStateProviderOptions<T> = {\r\n    key: string;\r\n    defaultState?: T;\r\n};\r\n\r\ntype StateProviderOptions<T> = {\r\n    storage: Storage<T>;\r\n    defaultState?: T;\r\n};\r\n\r\nexport class StateProvider<T extends object> {\r\n    private _stateSubject = new BehaviorSubject<DeepReadonly<T>>({} as DeepReadonly<T>);\r\n    state$ = this._stateSubject.asObservable();\r\n\r\n    constructor(private _options: StateProviderOptions<T>) {\r\n        const defaultState = this._options.defaultState || {} as T;\r\n        const initState = this._options.storage.getDataWithDefault(defaultState)\r\n        this.update(_ => initState);\r\n    }\r\n\r\n    public get currentState(): DeepReadonly<T> {\r\n        return this._stateSubject.getValue();\r\n    }\r\n\r\n    public update(updateCallback: (prevState: DeepReadonly<T>) => DeepReadonly<T>) {\r\n        if (!this._options || !this._options.storage) {\r\n            throw Error(\"initState() is not implemented\");\r\n        }\r\n\r\n        const currentState = this._stateSubject.getValue();\r\n        const newState = updateCallback(currentState);\r\n\r\n        this._options.storage.setData(newState as T);\r\n        this._stateSubject.next(newState);\r\n    }\r\n\r\n    public patch(patchCallback: ((prevState: DeepReadonly<T>) => DeepReadonly<Partial<T>>) | DeepReadonly<Partial<T>>) {\r\n        if (typeof patchCallback === 'function') {     \r\n            this.update(prev => ({\r\n                ...prev,\r\n                ...patchCallback(prev)\r\n            }));\r\n        } else {\r\n            this.update(prev => ({\r\n                ...prev,\r\n                ...patchCallback\r\n            }));\r\n        }\r\n    }\r\n}\r\n\r\nexport function createMemoryStateProvider<T extends object>(options: CreateStateProviderOptions<T>) {\r\n    return new StateProvider<T>({\r\n        storage: createMemoryStorage(options.key),\r\n        defaultState: options.defaultState\r\n    });\r\n}\r\n\r\nexport function createLocalStateProvider<T extends object>(options: CreateStateProviderOptions<T>) {\r\n    return new StateProvider<T>({\r\n        storage: createLocalStorage(options.key),\r\n        defaultState: options.defaultState\r\n    });\r\n}\r\n\r\nexport function createSecureCookieProvider<T extends object>(options: CreateStateProviderOptions<T>) {\r\n    return new StateProvider<T>({\r\n        storage: createSecureCookieStorage(options.key),\r\n        defaultState: options.defaultState\r\n    });\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\n\r\nimport { PcmState } from \"./pcm.state\";\r\nimport { PrintState } from \"./print.state\";\r\nimport { ScannerState } from \"./scanner.state\";\r\nimport { SecureTokenState } from \"./secure-token.state\";\r\nimport { UserIdentityState } from \"./user-identity.state\";\r\nimport { UserPreferencesState } from \"./user-preferences.state\";\r\nimport { RuntimeApplicationState } from \"./runtime-application.state\";\r\nimport { BrowserPreferencesState } from \"./browser-preferences.state\";\r\nimport { AdminPortalApplicationFeaturesModel, AdminPortalApplicationModel } from \"../api/api.schemas\";\r\nimport { createLocalStateProvider, createMemoryStateProvider, createSecureCookieProvider } from \"../type/state.type\";\r\n\r\n//import { UserIdentityState } from \"./user-identity.state\";\r\n//import { DictionaryState, createDictionaryEntryState } from \"./dictionary.state\";\r\n//import { AppBootstrapLocationState } from \"../../../infrastructure/app-bootstrap-types\";\r\n//import { ImageBase64 } from \"../types/image.types\";\r\n//import { cast, castValue } from \"../helpers/functions.helper\";\r\n\r\nconst GLOBAL_APPLICATION_STATE = {\r\n\r\n  // SECURE COOKIE STORAGE =========================================================\r\n  secureToken: createSecureCookieProvider<SecureTokenState>({\r\n    key: 'secureToken'\r\n  }),\r\n\r\n  // LOCAL BROWSER PERMANENT STORAGE ===============================================\r\n  userPreferences: createLocalStateProvider<UserPreferencesState>({\r\n    key: 'userPreferences',\r\n    defaultState: {\r\n      theme: 'light'\r\n    }\r\n  }),\r\n  browserPreferences: createLocalStateProvider<BrowserPreferencesState>({\r\n    key: 'browserPreferences',\r\n    defaultState: {\r\n    }\r\n  }),\r\n\r\n  // MEMORY RUNTIME ONLY STORAGE ===============================================\r\n  // MEMORY RUNTIME ONLY STORAGE ===============================================\r\n  userIdentity: createMemoryStateProvider<UserIdentityState>({\r\n    key: 'userIdentity'\r\n  }),\r\n  pcm: createMemoryStateProvider<PcmState>({\r\n    key: 'pcm',\r\n    defaultState: {\r\n      state: 'connecting',\r\n      //deviceStatuses: []\r\n    }\r\n  }),\r\n  scanner: createMemoryStateProvider<ScannerState>({\r\n    key: 'scanner',\r\n    defaultState: {\r\n      scannerStatus: 'offline',\r\n      workingStatus: 'idle',\r\n      history: []\r\n    }\r\n  }),\r\n  print: createMemoryStateProvider<PrintState>({\r\n    key: 'print',\r\n    defaultState: {\r\n      printerStatus: 'offline',\r\n      queue: []\r\n\r\n      //queue: [\r\n      //    { name: 'the badge', status: 'printing', uid: '1', source: { contentType: '', data: '' } },\r\n      //    { name: 'job 1', status: 'pending', uid: '2', source: { contentType: '', data: '' } },\r\n      //    { name: 'error.pdf', status: 'error', uid: '3', errorMessage: 'wow! thats error', source: { contentType: '', data: '' } },\r\n      //    { name: 'job 2 with a really-really long title in the header with some additional data.pdf', status: 'pending', uid: '4', source: { contentType: '', data: '' } },\r\n      //    { name: 'hist 1', status: 'printed', uid: '5', source: { contentType: '', data: '' } },\r\n      //    { name: 'hist 2', status: 'printed', uid: '6', source: { contentType: '', data: '' } },\r\n      //    { name: 'hist 3', status: 'printed', uid: '7', source: { contentType: '', data: '' } },\r\n      //    { name: 'error no error tips.pdf', status: 'error', uid: '8', source: { contentType: '', data: '' } },\r\n      //    { name: 'hist 4', status: 'printed', uid: '9', source: { contentType: '', data: '' } },\r\n      //    { name: 'hist 5', status: 'printed', uid: '10', source: { contentType: '', data: '' } },\r\n      //    { name: 'hist 6', status: 'printed', uid: '11', source: { contentType: '', data: '' } },\r\n      //]\r\n\r\n      //queue: [\r\n      //    { name: 'hist 1', status: 'printed', uid: '5', source: { contentType: '', data: '' } },\r\n      //    { name: 'hist 2', status: 'printed', uid: '6', source: { contentType: '', data: '' } },\r\n      //    { name: 'hist 3', status: 'printed', uid: '7', source: { contentType: '', data: '' } },\r\n      //    { name: 'hist 4', status: 'printed', uid: '9', source: { contentType: '', data: '' } },\r\n      //    { name: 'hist 5', status: 'printed', uid: '10', source: { contentType: '', data: '' } },\r\n      //    { name: 'hist 6', status: 'printed', uid: '11', source: { contentType: '', data: '' } },\r\n      //]\r\n\r\n      //queue: [\r\n      //    { name: 'the badge', status: 'printing', uid: '1', source: { contentType: '', data: '' } },\r\n      //    { name: 'job 1', status: 'pending', uid: '2', source: { contentType: '', data: '' } },\r\n      //    { name: 'error.pdf', status: 'error', uid: '3', errorMessage: 'wow! thats error', source: { contentType: '', data: '' } },\r\n      //    { name: 'job 2 with a really-really long title in the header with some additional data.pdf', status: 'pending', uid: '4', source: { contentType: '', data: '' } },\r\n      //    { name: 'error no error tips.pdf', status: 'error', uid: '8', source: { contentType: '', data: '' } },\r\n      //]\r\n\r\n      //queue: [\r\n      //    { name: 'error.pdf', status: 'error', uid: '3', errorMessage: 'wow! thats error', source: { contentType: '', data: '' } },\r\n      //    { name: 'error no error tips.pdf', status: 'error', uid: '8', source: { contentType: '', data: '' } },\r\n      //]\r\n    }\r\n  }),\r\n  runtimeApplication: createMemoryStateProvider<RuntimeApplicationState>({\r\n    key: 'runtimeApplication',\r\n    defaultState: {\r\n      isInitialized: false,\r\n      loginMethod: 'Database',\r\n      loginExternalProviders: [],\r\n      features: <AdminPortalApplicationFeaturesModel>{}\r\n    }\r\n  }),\r\n  //dictionaries: createMemoryStateProvider<DictionaryState>({\r\n  //    key: 'dictionaries',\r\n  //    defaultState: {\r\n  //        airports: createDictionaryEntryState(),\r\n  //        terminals: createDictionaryEntryState(),\r\n  //        officeVisitorCategories: createDictionaryEntryState(),\r\n  //        roles: createDictionaryEntryState(),\r\n  //        companies: createDictionaryEntryState(),\r\n  //        categories: createDictionaryEntryState(),\r\n  //        departments: createDictionaryEntryState(),\r\n  //    }\r\n  //})\r\n};\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AppGlobalState {\r\n  get STATE() {\r\n    return GLOBAL_APPLICATION_STATE;\r\n  }\r\n\r\n  // This method called when website opens for the first time and can be used to init state using initial application information,\r\n  // which is available for all users, including anomymous. Don't return secure info in ApplicationModel it will be available for anonymous users\r\n  //init(options: { applicationModel: AdminPortalApplicationModel, locationState: AppBootstrapLocationState }) {\r\n  //    const { locationState, applicationModel } = options;\r\n\r\n  //    if (locationState.params.deviceName) {\r\n  //        GLOBAL_APPLICATION_STATE.browserPreferences.patch({\r\n  //            pcm: { deviceName: locationState.params.deviceName }\r\n  //        });\r\n  //    }\r\n\r\n  //    GLOBAL_APPLICATION_STATE.runtimeApplication.patch({\r\n  //        serverEnvironment: applicationModel.environment,\r\n  //        loginMethod: applicationModel.loginMethod,\r\n  //        loginExternalProviders: applicationModel.loginExternalProviders,\r\n  //        companyLogo: ImageBase64.safeParse(applicationModel.companyLogo),\r\n  //        websiteCss: applicationModel.websiteCss,\r\n  //        features: applicationModel.features,\r\n  //        helpPanel: applicationModel.helpPanel\r\n  //    });\r\n  //}\r\n}\r\n","import { Router } from \"@angular/router\";\r\nimport { Observable, map, of } from \"rxjs\";\r\nimport { Injectable, inject } from \"@angular/core\";\r\n\r\nimport { apiHelper } from \"../helper/api.helper\";\r\nimport { StateProvider } from \"../type/state.type\";\r\nimport { AppGlobalState } from \"../state/_global.state\";\r\nimport { StateProviderService } from \"../type/service.type\";\r\nimport { SecureTokenState } from \"../state/secure-token.state\";\r\nimport { ActionResult, DeepReadonly } from \"../type/common.type\";\r\nimport { UserIdentityState } from \"../state/user-identity.state\";\r\nimport { AccountModel, RestrictionLookup } from \"../api/api.schemas\";\r\nimport { AptaeroVisitorPassWebAPIApiService } from \"../api/api.service\";\r\nimport { RuntimeApplicationState } from \"../state/runtime-application.state\";\r\n\r\n//import { securityHelper } from \"../helper/security.helper\";\r\n//import { VISITORPASS_CLIENT_MODULE_CONFIGURATION_INJECTION_TOKEN } from \"../../../infrastructure/app-bootstrap-types\";\r\n//import { loginRouterLink } from \"../app-routing/app-routes\";\r\n//import { UserExternalIdentityService } from \"./user-external-identity.service\";\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class UserIdentityService extends StateProviderService<UserIdentityState> {\r\n  //private _clientModuleConfiguration = inject(VISITORPASS_CLIENT_MODULE_CONFIGURATION_INJECTION_TOKEN);\r\n  private _apiService = inject(AptaeroVisitorPassWebAPIApiService);\r\n  private _router = inject(Router);\r\n  private _secureTokenState!: StateProvider<SecureTokenState>;\r\n  private _runtimeApplicationState!: StateProvider<RuntimeApplicationState>;\r\n\r\n  //TEMP\r\n  public token: string = '';\r\n\r\n  constructor(_appGlobalState: AppGlobalState) {\r\n    super(_appGlobalState.STATE.userIdentity);\r\n    this._secureTokenState = _appGlobalState.STATE.secureToken;\r\n    this._runtimeApplicationState = _appGlobalState.STATE.runtimeApplication;\r\n  }\r\n\r\n  invalidateToken() {\r\n    const isValidToken = true; //this.isUserTokenValid();\r\n    if (!isValidToken) {\r\n      this.logout();\r\n    }\r\n    return isValidToken;\r\n  }\r\n\r\n  loadAccount(): Observable<ActionResult<AccountModel>> {\r\n    const isValidToken = this.invalidateToken();\r\n    if (!isValidToken) {\r\n      return of<ActionResult<AccountModel>>({ errorMessage: 'Expired Token' });\r\n    }\r\n    const request = this._apiService.accountGet();\r\n\r\n    return apiHelper.sendRequest(request)\r\n      .pipe(map((response: any) => {\r\n        this.patchState({\r\n          userAccount: response.data\r\n        });\r\n\r\n        return response;\r\n      }));\r\n  }\r\n\r\n  setToken(token?: string) {\r\n    this.token = token || '';//TEMP\r\n\r\n    this._secureTokenState.patch({\r\n      userAuthJwtToken: token\r\n    });\r\n  }\r\n\r\n  logout() {\r\n    this._secureTokenState.patch({\r\n      userAuthJwtToken: undefined\r\n    });\r\n    //this.patchState({\r\n    //    userAccount: undefined\r\n    //});\r\n    //this._router.navigate(loginRouterLink());\r\n    this._router.navigate(['']);\r\n  }\r\n\r\n  isAuthenticated() {\r\n    return true;//!!this.getUserAccount();\r\n  }\r\n\r\n  isAuthorized(restriction: RestrictionLookup) {\r\n    //const user = this.getUserAccount();\r\n    return true;//!!user && user.restrictions.some(x => x == restriction);\r\n  }\r\n\r\n  isAllAuthorized(restrictions: RestrictionLookup[]) {\r\n    return restrictions.length > 0 && restrictions.every(x => this.isAuthorized(x));\r\n  }\r\n\r\n  isAnyAuthorized(restrictions: RestrictionLookup[]) {\r\n    return restrictions.length > 0 && restrictions.some(x => this.isAuthorized(x));\r\n  }\r\n\r\n  //get currentAccount(): DeepReadonly<AccountModel> | undefined {\r\n  //    return this.currentState.userAccount;\r\n  //}\r\n\r\n  //private isUserTokenValid() {\r\n  //    const applicationID = this._clientModuleConfiguration.applicationID;\r\n  //    const token = this._secureTokenState.currentState.userAuthJwtToken;\r\n  //    if (!token || securityHelper.isJwtTokenExpired(token) || applicationID != securityHelper.getJwtTokenAudience(token)) {\r\n  //        return false;\r\n  //    }\r\n  //    return true;\r\n  //}\r\n\r\n  //private getUserAccount() {\r\n  //    this.invalidateToken();\r\n  //    return this.currentState.userAccount;\r\n  //}\r\n}\r\n","import { BehaviorSubject } from \"rxjs\";\r\nimport { EventType, Router } from \"@angular/router\";\r\n\r\nimport { ImageBase64 } from \"../type/image.type\";\r\nimport { apiHelper } from \"../helper/api.helper\";\r\nimport { Injectable, inject } from \"@angular/core\";\r\nimport { AppGlobalState } from \"../state/_global.state\";\r\nimport { StateProviderService } from \"../type/service.type\";\r\nimport { AptaeroVisitorPassWebAPIApiService } from \"../api/api.service\";\r\nimport { RuntimeApplicationState } from \"../state/runtime-application.state\";\r\n\r\n//import { DeploymentModel } from \"../api/api.schemas\";\r\n//import { getCurrentRouteTitle } from \"../app-routing/app-routes\";\r\n//import { createDictionaryEntryState } from \"./state/dictionary.state\";\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class RuntimeApplicationService extends StateProviderService<RuntimeApplicationState> {\r\n  private _windowIsActiveBehaviorSubject = new BehaviorSubject<boolean>(true);\r\n  private _webApi = inject(AptaeroVisitorPassWebAPIApiService);\r\n  private _router = inject(Router);\r\n  //private _activatedRoute = inject(ActivatedRoute);\r\n\r\n  public windowIsActive$ = this._windowIsActiveBehaviorSubject.asObservable();\r\n\r\n  constructor(private _appGlobalState: AppGlobalState) {\r\n    super(_appGlobalState.STATE.runtimeApplication);\r\n    this._router.events\r\n      .subscribe(routerEvent => {\r\n        if (routerEvent.type != EventType.NavigationEnd) {\r\n          return;\r\n\r\n        }\r\n\r\n        //this.patchState({ pageTitle: getCurrentRouteTitle(this._router) });\r\n      });\r\n  }\r\n\r\n  setPageTitleLogo(logoImage?: ImageBase64) {\r\n    this.updateState(prev => ({\r\n      ...prev,\r\n      pageTitleLogoImage: logoImage\r\n    }));\r\n  }\r\n\r\n  setWindowIsActive(isActive: boolean) {\r\n    if (this._windowIsActiveBehaviorSubject.value != isActive) {\r\n      this._windowIsActiveBehaviorSubject.next(isActive);\r\n    }\r\n  }\r\n\r\n  initialize() {\r\n    if (this.currentState.isInitialized) {\r\n      return;\r\n    }\r\n\r\n    const request = this._webApi.deploymentDeployment();\r\n    apiHelper.sendRequest(request)\r\n      .subscribe(response => {\r\n        if (!response.data) {\r\n          return;\r\n        }\r\n        //this.initDeployment(response.data);\r\n        this.patchState({ isInitialized: true });\r\n      });\r\n  }\r\n\r\n  setSidebarMenuOpened(isOpen: boolean) {\r\n    this.updateState(prev => ({\r\n      ...prev,\r\n      isSidebarMenuOpened: isOpen,\r\n      isBackdropOpened: isOpen\r\n    }));\r\n  }\r\n\r\n  setBackdropVisibility(isVisible: boolean) {\r\n    this.updateState(prev => ({\r\n      ...prev,\r\n      isBackdropOpened: isVisible\r\n    }));\r\n  }\r\n\r\n  setScrollTop(value?: number) {\r\n    this.updateState(prev => ({\r\n      ...prev,\r\n      scrollTop: value\r\n    }));\r\n  }\r\n\r\n  get stateSnapshot() {\r\n    return this.currentState;\r\n  }\r\n\r\n  //private initDeployment(model: DeploymentModel) {\r\n  //  //this._appGlobalState.STATE.dictionaries.patch({\r\n  //  //  airports: createDictionaryEntryState(model.airports),\r\n  //  //  terminals: createDictionaryEntryState(model.terminals),\r\n  //  //});\r\n\r\n  //  // If current deployment configuration already has saved airport - use it from the user's state\r\n  //  // If state is empty, or airpot was removed - use the first airport from the deployment list (if exists)\r\n  //  this._appGlobalState.STATE.userPreferences.patch(prev => ({\r\n  //    activeAirportId: model.airports.some(a => a.id == prev.activeAirportId)\r\n  //      ? prev.activeAirportId\r\n  //      : (model.airports.length > 0 ? model.airports[0].id : undefined)\r\n  //  }));\r\n  //}\r\n}\r\n","import { ExternalProvider, IdentitySignInResponseType, LoginMethod, UserMfaVerificationType } from \"../api/api.schemas\"\r\n\r\nexport type AccountLoginPageState = IdentitySignInResponseType | 'Login';\r\n\r\nexport type AccountLoginState = {\r\n    isBusy?: boolean;\r\n    type: AccountLoginPageState;\r\n    mfaType?: UserMfaVerificationType;\r\n    loginMethod: LoginMethod;\r\n    externalProviders: ExternalProvider[];\r\n}\r\n\r\nexport const defaultAccountLoginState = (): AccountLoginState => ({\r\n    type: \"Login\",\r\n    loginMethod: \"Database\",\r\n    externalProviders: []\r\n});\r\n","// https://medium.com/@hongtatyew/about-environment-ts-in-your-angular-applications-50646ab08c81\r\n\r\nimport _ from \"lodash\";\r\nimport { Type } from \"@angular/core\";\r\n\r\nimport { PcmBooleanType } from \"../type/pcm.type\";\r\nimport { DeepPartial } from \"../type/common.type\";\r\nimport { cast } from \"../helper/functions.helper\";\r\nimport { PcmConnectionState } from \"../state/pcm.state\";\r\n\r\nexport enum EnvironmentType {\r\n  Production = 'Production',\r\n  Development = 'Development',\r\n  Testing = 'Testing',\r\n  Localhost = 'Localhost'\r\n};\r\n\r\n// BASE SETTINGS ===============================================================\r\nexport const baseEnvironment: EnvironmentShape = {\r\n  type: EnvironmentType.Localhost,\r\n  applications: [],\r\n  syncfusion: {\r\n    license: 'Ngo9BigBOggjHTQxAR8/V1NBaF5cXmZCf1FpRmJGdld5fUVHYVZUTXxaS00DNHVRdkdnWXpednVUR2NcUEBwWko='\r\n  },\r\n  pcm: {\r\n    hubUrl: '~'\r\n  },\r\n  visitorPassApi: {\r\n    baseUrl: '~',\r\n    applicationIDHeaderKey: 'VisitorPass-App'\r\n  }\r\n};\r\n\r\n// SHAPE OF SETTINGS ===============================================================\r\ntype EnvironmentShape = {\r\n  type: EnvironmentType;\r\n  syncfusion: {\r\n    license: string;\r\n  },\r\n  visitorPassApi: {\r\n    applicationIDHeaderKey: string;\r\n    baseUrl: string;\r\n  },\r\n  pcm: {\r\n    emulator?: {\r\n      state: Extract<PcmConnectionState, 'error' | 'connected' | 'connecting'>;\r\n      dcpDevice: {\r\n        connected: PcmBooleanType;\r\n      },\r\n      fullPageDevice: {\r\n        connected: PcmBooleanType;\r\n      }\r\n    },\r\n    hubUrl: string;\r\n  }\r\n  applications: {\r\n    hosts: string[],\r\n    loader: () => Promise<Type<unknown>>\r\n  }[]\r\n}\r\n\r\n// FUNCTIONS  ===============================================================\r\nexport const setupEnvironment = (base: EnvironmentShape, environment: DeepPartial<EnvironmentShape>) => {\r\n  const rawValue = _.merge(base, environment);\r\n  const value = cast<EnvironmentShape>(rawValue);\r\n  return value;\r\n};\r\n","import { baseEnvironment, setupEnvironment } from \"./environment.base\";\r\n// -------------\r\n// DUMMY. Used by angular as a target file to apply specific environment, like 'environment.development.ts'\r\n// -------------\r\nexport const environment = setupEnvironment(baseEnvironment,  {});\r\n","import { environment } from \"../environment/environment\";\r\nimport { EnvironmentType } from \"../environment/environment.base\";\r\n\r\nexport const appRuntime = {\r\n    isLocalhost: () => (location.hostname === \"localhost\" || location.hostname === \"127.0.0.1\"),\r\n    isEnvironment: (...types: EnvironmentType[]) => types.some(x => environment.type == x),\r\n    env: environment\r\n}\r\n","import { catchError } from \"rxjs\";\r\nimport { Router } from \"@angular/router\";\r\nimport { Injectable, inject } from \"@angular/core\";\r\nimport { HttpHandler, HttpInterceptor, HttpRequest } from \"@angular/common/http\";\r\n\r\nimport { AppGlobalState } from \"../state/_global.state\";\r\nimport { appRuntime } from \"../infrastructure/app-runtime\";\r\nimport { UserIdentityService } from \"../service/user-identity.service\";\r\n//import { VISITORPASS_CLIENT_MODULE_CONFIGURATION_INJECTION_TOKEN } from \"../infrastructure/app-bootstrap-types\";//TEMP\r\n\r\n//import { loginRouterLink } from \"../app-routing/app-routes\";\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class HttpRequestHeaderInterceptor implements HttpInterceptor {\r\n  private static _intermediaryToken?: string;\r\n\r\n  public static setIntermediaryToken(token: string) {\r\n    HttpRequestHeaderInterceptor._intermediaryToken = token;\r\n  }\r\n  public static clearIntermediaryToken() {\r\n    HttpRequestHeaderInterceptor._intermediaryToken = undefined;\r\n  }\r\n\r\n  private _userIdentityService = inject(UserIdentityService);\r\n  private _router = inject(Router);\r\n  //private _moduleConfiguration = inject(VISITORPASS_CLIENT_MODULE_CONFIGURATION_INJECTION_TOKEN);//TEMP\r\n  private _activeJwtToken: string = '';\r\n\r\n  constructor(appGlobalState: AppGlobalState) {\r\n    appGlobalState.STATE.secureToken.state$.subscribe(state => {\r\n      console.log('_activeJwtToken in Interceptor: ' + state.userAuthJwtToken);\r\n      this._activeJwtToken = state.userAuthJwtToken || '';\r\n    });\r\n  }\r\n\r\n  intercept(req: HttpRequest<any>, next: HttpHandler) {\r\n    const headers: { [name: string]: string | string[]; } = {};\r\n    const token = this.getCurrentActiveToken();\r\n    if (token) {\r\n      headers['Authorization'] = `Bearer ${token}`;\r\n    }\r\n    headers[appRuntime.env.visitorPassApi.applicationIDHeaderKey] = 'DEV-AIRPORT';//this._moduleConfiguration.applicationID;//TEMP\r\n\r\n    let baseUrl = 'https://localhost:5280';//TEMP\r\n    const clonedRequest = req.clone({\r\n      //url: `${appRuntime.env.visitorPassApi.baseUrl}${req.url}`,//TEMP\r\n      url: `${baseUrl}${req.url}`,\r\n      setHeaders: headers\r\n    });\r\n\r\n    return next.handle(clonedRequest).pipe(catchError((error) => {\r\n      if (error.status === 401) {\r\n        this._userIdentityService.invalidateToken();\r\n        //this._router.navigate(loginRouterLink());//TEMP\r\n        this._router.navigate(['']);\r\n      }\r\n      throw error;\r\n    })\r\n    );\r\n  }\r\n\r\n  private getCurrentActiveToken() {\r\n    return HttpRequestHeaderInterceptor._intermediaryToken || this._activeJwtToken;\r\n  }\r\n}\r\n","import { Router } from \"@angular/router\";\r\nimport { Injectable, inject } from \"@angular/core\";\r\nimport { map, tap, concatMap, Observable, of } from \"rxjs\";\r\n\r\nimport { apiHelper } from \"../helper/api.helper\";\r\nimport { securityHelper } from \"../helper/security.helper\";\r\nimport { StateProviderService } from \"../type/service.type\";\r\nimport { cast, castValue } from \"../helper/functions.helper\";\r\nimport { UserIdentityService } from \"./user-identity.service\";\r\nimport { createMemoryStateProvider } from \"../type/state.type\";\r\nimport { AptaeroVisitorPassWebAPIApiService } from \"../api/api.service\";\r\nimport { RuntimeApplicationService } from \"./runtime-application.service\";\r\nimport { AccountLoginState, defaultAccountLoginState } from \"../state/account-login.state\";\r\nimport { HttpRequestHeaderInterceptor } from \"../interceptor/http-request-header.interceptor\";\r\nimport { AdminPortalApplicationModel, ExternalProvider, IdentitySignInResponseType, IdentityUserAuthenticateResponseModel, UserMfaVerificationType } from \"../api/api.schemas\";\r\n\r\n//import { ToastNotificationService } from \"../../../core/services/toast-notification.service\";\r\n//import { defaultRouterLink } from \"../../../core/app-routing/app-routes\";\r\n\r\ntype AuthorizeApiResponse = {\r\n  responseType?: IdentitySignInResponseType;\r\n  mfaVerificationType?: UserMfaVerificationType;\r\n  errorMessage?: string;\r\n};\r\ntype AccountLoginResult = { errorMessage?: string };\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AccountLoginService extends StateProviderService<AccountLoginState> {\r\n  private _router = inject(Router);\r\n  private _runtimeApplicationService = inject(RuntimeApplicationService);\r\n  // private _toastNotificationService = inject(ToastNotificationService);\r\n  private _userIdentityService = inject(UserIdentityService);\r\n  private _apiService = inject(AptaeroVisitorPassWebAPIApiService);\r\n\r\n  constructor() {\r\n    super(createMemoryStateProvider<AccountLoginState>({\r\n      key: 'accountLoginService',\r\n      defaultState: defaultAccountLoginState()\r\n    }));\r\n\r\n    this._runtimeApplicationService.state$.subscribe(state => {\r\n      this.patchState({\r\n        loginMethod: state.loginMethod,\r\n        externalProviders: state.loginExternalProviders.map(x => x.name)\r\n      });\r\n    });\r\n  }\r\n\r\n  //authPasswordChange(model: { newPassword: string }) {\r\n  //    const request = this._apiService.identityUserAuthenticatePasswordChange(model);\r\n  //    return this.processAuthorizeApiRequest(request);\r\n  //}\r\n\r\n  //authWithExternalProvider(provider: ExternalProvider, idToken: string): Observable<AccountLoginResult> {\r\n  //    const request = this._apiService.identityExternalUserAuthenticate({\r\n  //        idToken: idToken,\r\n  //        provider: provider\r\n  //    });\r\n  //    return this.processAuthorizeApiRequest(request);\r\n  //}\r\n\r\n  authWithUsernamePassword(model: { username: string, password: string }): Observable<AccountLoginResult> {\r\n    const request = this._apiService.identityUserAuthenticate(model);\r\n    return this.processAuthorizeApiRequest(request);\r\n  }\r\n\r\n  //authWithMfa(model: { code: string }): Observable<AccountLoginResult> {\r\n  //    const request = this._apiService.identityUserAuthenticateMfa(model);\r\n  //    return this.processAuthorizeApiRequest(request);\r\n  //}\r\n\r\n  //reset() {\r\n  //    this.patchState({\r\n  //        type: \"Login\",\r\n  //        mfaType: undefined\r\n  //    });\r\n  //    HttpRequestHeaderInterceptor.clearIntermediaryToken();\r\n  //}\r\n\r\n  goBack() {\r\n    //this.reset();\r\n  }\r\n\r\n  private processAuthorizeApiRequest(observable: Observable<IdentityUserAuthenticateResponseModel>): Observable<AuthorizeApiResponse> {\r\n    //this.patchState({ isBusy: true });\r\n    return apiHelper.sendRequest(observable)\r\n      .pipe(\r\n        tap((response: any) => {\r\n          if (response.errorMessage) {\r\n            return;\r\n          }\r\n\r\n          const { token } = response.data!;\r\n          if (!token) {\r\n            return;\r\n          }\r\n\r\n          if (securityHelper.isIntermediaryJwtToken(token)) {\r\n            HttpRequestHeaderInterceptor.setIntermediaryToken(token);\r\n          } else {\r\n            HttpRequestHeaderInterceptor.clearIntermediaryToken();\r\n            //HttpRequestHeaderInterceptor.staticActiveToken = token;//TEMP\r\n\r\n            this._userIdentityService.setToken(token);\r\n          }\r\n        }),\r\n        concatMap((response: any) => {\r\n          if (response.errorMessage) {\r\n            return of<AuthorizeApiResponse>({ errorMessage: response.errorMessage });\r\n          }\r\n\r\n          if (response.data?.type != 'Authenticated') {\r\n            return of<AuthorizeApiResponse>({\r\n              responseType: response.data?.type,\r\n              mfaVerificationType: response.data?.mfaVerificationType,\r\n            });\r\n          }\r\n\r\n          return this._userIdentityService.loadAccount()\r\n            .pipe(\r\n              map(loadAccountResponse => {\r\n                const loadAccountResult: AuthorizeApiResponse =\r\n                  loadAccountResponse.errorMessage\r\n                    ? { errorMessage: loadAccountResponse.errorMessage }\r\n                    : { responseType: castValue<IdentitySignInResponseType>('Authenticated') };\r\n                return loadAccountResult;\r\n              })\r\n            );\r\n        }),\r\n        tap((response: any) => {\r\n          //this.patchState({ isBusy: false });\r\n          if (response.errorMessage) {\r\n            return;\r\n          }\r\n\r\n          if (response.responseType == 'Authenticated') {\r\n            //this._router.navigate(defaultRouterLink());\r\n            this._router.navigate(['']);\r\n            return;\r\n          }\r\n\r\n          this.patchState({\r\n              type: response.responseType,\r\n              mfaType: response.mfaVerificationType\r\n          });\r\n        })\r\n      );\r\n  }\r\n}\r\n","import { castValue } from \"./functions.helper\";\r\nimport { PcmConnectionState } from \"../state/pcm.state\";\r\nimport { appRuntime } from \"../infrastructure/app-runtime\";\r\nimport { PcmBooleanType, PcmDeviceName, PcmMessage, PcmMessageHandler } from \"../type/pcm.type\";\r\n\r\ntype InternalSendInputMessages = (messages: PcmMessage[], onComplete?: () => void, interval?: number) => void;\r\n\r\nexport const pcmHelper = {\r\n    buildEmulator: (options: { messageHandler: PcmMessageHandler }) => {\r\n        const emulator = appRuntime.env.pcm.emulator;\r\n\r\n        const INTERVALS = 10000;\r\n        const INTERVALS_INPUT_MESSAGES = 2000;\r\n\r\n        const MESSAGES = {\r\n            deviceStatuses: <PcmMessage>{\r\n                Action: \"get_device_statuses\",\r\n                ItemizedProperties: [\r\n                    {\r\n                        device_name: castValue<PcmDeviceName>(\"DCP\"),\r\n                        device_connected: castValue<PcmBooleanType>(emulator?.dcpDevice?.connected || 'False')\r\n                    },\r\n                    {\r\n                        device_name: castValue<PcmDeviceName>(\"FullPage\"),\r\n                        device_connected: castValue<PcmBooleanType>(emulator?.fullPageDevice?.connected || 'False')\r\n                    }\r\n                ]\r\n            }\r\n        };\r\n\r\n        let emulatorSendInputPcmMessage: InternalSendInputMessages = (_) => { };\r\n\r\n        if (emulator) {\r\n            console.warn(`PCM Emulator enabled with state: ${emulator.state}`);\r\n            if (emulator.state == 'connected') {\r\n                setInterval(() => {\r\n                    console.warn('PCM Emulator: Message received');\r\n                    options.messageHandler(MESSAGES.deviceStatuses);\r\n                }, INTERVALS);\r\n                emulatorSendInputPcmMessage = async (messages, onComplete, interval) => {\r\n                    const messageSendInterval = interval || INTERVALS_INPUT_MESSAGES;\r\n                    console.warn(`PCM Emulator: Sending ${messages.length} input messages with ${messageSendInterval} ms interval`);\r\n                    for (const message of messages) {\r\n                        options.messageHandler(message);\r\n                        await new Promise(resolve => setTimeout(resolve, messageSendInterval))\r\n                    }\r\n                    if (onComplete) {\r\n                        onComplete();\r\n                    }\r\n                }\r\n            }\r\n        }\r\n\r\n        return {\r\n            isEnabled: !!emulator,\r\n            state: castValue<PcmConnectionState>(emulator?.state || 'error'),\r\n            errorMessage: emulator?.state == 'error' ? 'PCM Emulator Error Message' : undefined,\r\n            sendMessage: (message: PcmMessage) => {\r\n                console.warn('PCM Emulator: Message sent');\r\n                setTimeout(() => options.messageHandler(message), INTERVALS);\r\n            },\r\n            sendInputMessages: emulatorSendInputPcmMessage\r\n        };\r\n    }\r\n};\r\n","import { Injectable, inject } from \"@angular/core\";\r\nimport { Observable, concatMap, tap, interval, Subject } from \"rxjs\";\r\n\r\nimport { DateTime } from \"../type/date.type\";\r\nimport { apiHelper } from \"../helper/api.helper\";\r\nimport { pcmHelper } from \"../helper/pcm.helper\";\r\nimport { ActionResult } from \"../type/common.type\";\r\nimport { StateProvider } from \"../type/state.type\";\r\nimport { AppGlobalState } from \"../state/_global.state\";\r\nimport { securityHelper } from \"../helper/security.helper\";\r\nimport { appRuntime } from \"../infrastructure/app-runtime\";\r\nimport { StateProviderService } from \"../type/service.type\";\r\nimport { SecureTokenState } from \"../state/secure-token.state\";\r\nimport { PcmConnectionState, PcmState } from \"../state/pcm.state\";\r\nimport { AptaeroVisitorPassWebAPIApiService } from \"../api/api.service\";\r\nimport { RuntimeApplicationService } from \"./runtime-application.service\";\r\nimport { cast, errorActionResult, jsonDeserialize, jsonSerialize, successActionResult } from \"../helper/functions.helper\";\r\nimport { PcmBooleanType, PcmDeviceName, PcmDeviceStatus, PcmMessage, PcmMessageDictionary, PcmMessageHandler } from \"../type/pcm.type\";\r\n\r\nconst OFFLINE_CHECK_INTERVAL_SECONDS = 3;\r\nconst OFFLINE_CHECK_LIMIT_SECONDS = 25;\r\nconst OFFLINE_CHECK_LAST_MESSAGE_FROM_HUB_TILL_RECONNECT_SECONDS = 60;\r\n\r\ntype InternalDeviceStatus = {\r\n  deviceName: PcmDeviceName;\r\n  lastOnlineTime?: DateTime;\r\n  isConnected: boolean;\r\n};\r\n\r\ndeclare let $: any;\r\n//const CONNECTION_ATTEMPTS = 2;\r\nconst PCM_HUB_SETTINGS = {\r\n  name: 'PcmHub',\r\n  methodName: 'sendpcmmessage'\r\n};\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class PcmService extends StateProviderService<PcmState> {\r\n  private _runtimeApplicationService = inject(RuntimeApplicationService);\r\n  private _webApi = inject(AptaeroVisitorPassWebAPIApiService);\r\n  private pcmServerHub?: any;\r\n  private _registeredHandlers: PcmMessageHandler[] = [];\r\n\r\n  private _secureTokenStateProvider!: StateProvider<SecureTokenState>;\r\n\r\n  private _lastHubMessageReceivedDateTime?: DateTime;\r\n  //private _lastHubMessageReceivedMustReconnect = false;\r\n\r\n  private _currentDeviceName?: string;\r\n  private _devices: InternalDeviceStatus[] = [];\r\n  private _deviceStatusSubject = new Subject<PcmDeviceStatus>();\r\n\r\n  deviceStatus$ = this._deviceStatusSubject.asObservable();\r\n  pcmEmulator = pcmHelper.buildEmulator({\r\n    messageHandler: (message) => this.handleMessageFromHub(message)\r\n  });\r\n\r\n  constructor(_appGlobalState: AppGlobalState) {\r\n    super(_appGlobalState.STATE.pcm)\r\n    this._secureTokenStateProvider = _appGlobalState.STATE.secureToken;\r\n\r\n    this._runtimeApplicationService.windowIsActive$.subscribe(isWindowActive => {\r\n      console.info(`PCM: ${(isWindowActive ? 'Active' : 'Inactive')} window`);\r\n      if (!isWindowActive) {\r\n        return;\r\n      }\r\n\r\n      const timestamp = DateTime.now();\r\n      const lastPcmMessageFromHub = DateTime.diff(timestamp, this._lastHubMessageReceivedDateTime || timestamp);\r\n      //console.warn(jsonSerialize(lastPcmMessageFromHub, true));\r\n      if (lastPcmMessageFromHub.totalSeconds > OFFLINE_CHECK_LAST_MESSAGE_FROM_HUB_TILL_RECONNECT_SECONDS) {\r\n        console.info(`PCM: reconnecting due to hub inactivity for ${lastPcmMessageFromHub.totalMinutes} minutes`);\r\n        this.initialize();\r\n      }\r\n    });\r\n\r\n    interval(OFFLINE_CHECK_INTERVAL_SECONDS * 1000)\r\n      .subscribe(() => {\r\n        this.deviceStatusLastActiveUpdate();\r\n      });\r\n\r\n    _appGlobalState.STATE.browserPreferences.state$.subscribe(state => {\r\n      const newDeviceName = state?.pcm?.deviceName;\r\n      const isPcmConfigurationChanged = this._currentDeviceName != newDeviceName;\r\n\r\n      if (this._currentDeviceName && isPcmConfigurationChanged) {\r\n        this._secureTokenStateProvider.patch({ pcmAuthJwtToken: undefined });\r\n      }\r\n\r\n      this._currentDeviceName = newDeviceName;\r\n\r\n      if (newDeviceName) {\r\n        if (isPcmConfigurationChanged) {\r\n          this.initialize();\r\n        }\r\n      } else {\r\n        this.setConnectionState('not-configured', 'PCM Device Name is not specified.');\r\n      }\r\n    });\r\n  }\r\n\r\n  sendMessage(message: PcmMessage) {\r\n    if (this.currentState.state != 'connected') {\r\n      return;\r\n    }\r\n\r\n    const messageToSend = {\r\n      Version: \"1.0\",\r\n      ...message\r\n    };\r\n\r\n    if (this.pcmEmulator.isEnabled) {\r\n      this.pcmEmulator.sendMessage(messageToSend);\r\n    } else {\r\n      this.pcmServerHub.invoke(PCM_HUB_SETTINGS.methodName, jsonSerialize(messageToSend));\r\n    }\r\n  }\r\n\r\n  subscribe(messageHandler: PcmMessageHandler) {\r\n    if (this._registeredHandlers.some(x => x == messageHandler)) {\r\n      return; // Already registered\r\n    }\r\n\r\n    this._registeredHandlers.push(messageHandler);\r\n  }\r\n\r\n  //unsubscribe(messageHandler: PcmMessageHandler) {\r\n  //    const index = this._registeredHandlers.indexOf(messageHandler, 0);\r\n  //    if (index > -1) {\r\n  //        this._registeredHandlers.splice(index, 1);\r\n  //    }\r\n  //}\r\n\r\n  private initialize() {\r\n    if (this.pcmEmulator.isEnabled) {\r\n      this.setConnectionState(cast<PcmConnectionState>(this.pcmEmulator.state), this.pcmEmulator.errorMessage);\r\n      return;\r\n    }\r\n\r\n    this._lastHubMessageReceivedDateTime = undefined;\r\n    //this._lastHubMessageReceivedMustReconnect = false;\r\n\r\n    this.setConnectionState('connecting');\r\n\r\n    this.getBearerToken(this._currentDeviceName!).subscribe(tokenResponse => {\r\n      if (tokenResponse.errorMessage) {\r\n        this.setConnectionState('error', 'Failed to get PCM authorization token.');\r\n        return;\r\n      }\r\n\r\n      try {\r\n        const token = tokenResponse.data!;\r\n        this.initSignalRHub(token);\r\n      } catch {\r\n        this.setConnectionState('error', 'Unexpected PCM connection error.');\r\n      }\r\n    });\r\n  }\r\n\r\n  private initSignalRHub(token: string) {\r\n    if (this.pcmServerHub && this.pcmServerHub.connection) {\r\n      this.pcmServerHub.connection.stop();\r\n    }\r\n\r\n    ($.signalR.ajaxDefaults as any).headers = { Authorization: `Bearer ${token}` };\r\n    const hubConnection = $.hubConnection(appRuntime.env.pcm.hubUrl);\r\n    this.pcmServerHub = hubConnection.createHubProxy(PCM_HUB_SETTINGS.name);\r\n\r\n    this.pcmServerHub.on(PCM_HUB_SETTINGS.methodName, (msg: any) => {\r\n      const message = jsonDeserialize<PcmMessage>(msg);\r\n      this.handleMessageFromHub(message);\r\n    });\r\n\r\n    hubConnection.disconnected = () => {\r\n      console.info('PCM: reconnecting due to disconnection');\r\n      this.initialize();\r\n    };\r\n    hubConnection.start({ jsonp: false })\r\n      .done(() => {\r\n        this.setConnectionState('connected');\r\n      })\r\n      .fail(() => {\r\n        this.setConnectionState('error', 'Error connecting to PCM hub');\r\n\r\n        //const attempNumber = this.currentState.connectionAttempts || 0;\r\n        //if (e.context.state() == 'rejected' && attempNumber < CONNECTION_ATTEMPTS) {\r\n        //    this.patchState(prev => ({\r\n        //        pcmJwtToken: undefined,\r\n        //        connectionAttempts: (prev.connectionAttempts || 0) + 1\r\n        //    }));\r\n        //    this.initialize();\r\n        //} else {\r\n        //    this.setConnectionState('error', 'Error connecting to PCM hub');\r\n        //}\r\n      });\r\n  }\r\n\r\n  private handleMessageFromHub(message: PcmMessage) {\r\n    this._lastHubMessageReceivedDateTime = DateTime.now();\r\n\r\n    if (message.Action == 'get_device_statuses') {\r\n      this.deviceStatusUpdateFromPcm(message.ItemizedProperties || []);\r\n    } else {\r\n      this._registeredHandlers.forEach(handler => {\r\n        try {\r\n          handler(message);\r\n        } catch (e) {\r\n          console.error('Unexpected error in PCM message handler.');\r\n          console.error(e);\r\n        }\r\n      });\r\n    }\r\n  }\r\n\r\n  private deviceStatusUpdateFromPcm(props: PcmMessageDictionary[]) {\r\n    props.forEach(x => {\r\n      const pcmDeviceName = cast<PcmDeviceName>(x.device_name);\r\n      const pcmIsConnected = cast<PcmBooleanType>(x.device_connected) || 'False';\r\n      if (!pcmDeviceName) {\r\n        return;\r\n      }\r\n\r\n      this.deviceStatusChange(pcmDeviceName, pcmIsConnected == 'True');\r\n    });\r\n  }\r\n\r\n  private deviceStatusLastActiveUpdate() {\r\n    this._devices.forEach(deviceStatus => {\r\n      if (deviceStatus.lastOnlineTime && DateTime.diff(DateTime.now(), deviceStatus.lastOnlineTime).totalSeconds > OFFLINE_CHECK_LIMIT_SECONDS) {\r\n        this.deviceStatusChange(deviceStatus.deviceName, false);\r\n      }\r\n    });\r\n  }\r\n\r\n  private deviceStatusChange(deviceName: PcmDeviceName, isOnline: boolean) {\r\n    let isStatusChanged = false;\r\n    let deviceStatus = this._devices.find(x => x.deviceName == deviceName);\r\n    if (!deviceStatus) {\r\n      deviceStatus = { deviceName: deviceName, isConnected: false };\r\n      this._devices.push(deviceStatus);\r\n      isStatusChanged = true;\r\n    } else {\r\n      isStatusChanged = deviceStatus.isConnected != isOnline;\r\n    }\r\n\r\n    deviceStatus.isConnected = isOnline;\r\n    deviceStatus.lastOnlineTime = isOnline ? DateTime.now() : undefined;\r\n\r\n    if (isStatusChanged) {\r\n      this._deviceStatusSubject.next(deviceStatus);\r\n    }\r\n  }\r\n\r\n  private getBearerToken(deviceName: string): Observable<ActionResult<string>> {\r\n    const { pcmAuthJwtToken } = this._secureTokenStateProvider.currentState;\r\n    if (pcmAuthJwtToken && !securityHelper.isJwtTokenExpired(pcmAuthJwtToken)) {\r\n      return successActionResult(pcmAuthJwtToken);\r\n    }\r\n\r\n    const request = this._webApi.identityPcmAuthenticate({ deviceName: deviceName });\r\n\r\n    return apiHelper.sendRequest(request)\r\n      .pipe(\r\n        tap(response => {\r\n          if (response.data) {\r\n            this._secureTokenStateProvider.patch({\r\n              pcmAuthJwtToken: response.data!.token\r\n            });\r\n          }\r\n        }),\r\n        concatMap(response => {\r\n          return !response.errorMessage\r\n            ? successActionResult<string>(response.data!.token)\r\n            : errorActionResult<string>(response.errorMessage)\r\n        })\r\n      );\r\n  }\r\n\r\n  private setConnectionState(connectionState: PcmConnectionState, errorMessage?: string) {\r\n    this.patchState({\r\n      state: connectionState,\r\n      errorMessage: errorMessage\r\n    });\r\n  }\r\n}\r\n","import { Injectable, inject } from \"@angular/core\";\r\nimport { Observable, interval, isObservable } from \"rxjs\";\r\n\r\nimport { PcmService } from \"./pcm.service\";\r\nimport { PrintState } from \"../state/print.state\";\r\nimport { ActionResult } from \"../type/common.type\";\r\nimport { DataContentModel } from \"../api/api.schemas\";\r\nimport { AppGlobalState } from \"../state/_global.state\";\r\nimport { StateProviderService } from \"../type/service.type\";\r\nimport { PrintJob, PrintQueueJob } from \"../type/print.type\";\r\nimport { apiDataContentToBlob, cast, guid } from \"../helper/functions.helper\";\r\n\r\nconst QUEUE_CHECK_INTERVAL = 3000;\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class PrintService extends StateProviderService<PrintState> {\r\n  private _pcmService = inject(PcmService);\r\n\r\n  constructor(_appGlobalState: AppGlobalState) {\r\n    super(_appGlobalState.STATE.print);\r\n\r\n    this._pcmService.deviceStatus$.subscribe(deviceStatus => {\r\n      if (deviceStatus.deviceName == 'DCP') {\r\n        this.patchState({\r\n          printerStatus: deviceStatus.isConnected ? 'online' : 'offline'\r\n        });\r\n      }\r\n    });\r\n\r\n    interval(QUEUE_CHECK_INTERVAL).subscribe(() => {\r\n      const { queue } = this.currentState;\r\n      // Stop printing if queue is empty\r\n      // Of device is offline\r\n      if (queue.length == 0 || this.currentState.printerStatus == 'offline') {\r\n        return;\r\n      }\r\n\r\n      // stop printing if there is already document printing\r\n      if (queue.some(x => x.status == 'printing')) {\r\n        return;\r\n      }\r\n\r\n      const pendingJob = queue.find(x => x.status == 'pending');\r\n      // Stop if there is no pending jobs\r\n      if (!pendingJob) {\r\n        return;\r\n      }\r\n\r\n      this.startJob(pendingJob.uid);\r\n    });\r\n  }\r\n\r\n  queue(job: PrintQueueJob) {\r\n    const newJob: PrintJob = {\r\n      ...job,\r\n      uid: guid(),\r\n      status: \"pending\"\r\n    };\r\n\r\n    this.updateState(prev => ({\r\n      ...prev,\r\n      queue: [...prev.queue, newJob]\r\n    }))\r\n  }\r\n\r\n  cancel(uid: string) {\r\n    const job = this.currentState.queue.find(x => x.uid == uid);\r\n    if (!job) {\r\n      return;\r\n    }\r\n\r\n    this.updateState(prev => ({\r\n      ...prev,\r\n      queue: prev.queue.filter(x => x.uid != job.uid)\r\n    }))\r\n  }\r\n\r\n  restart(uid: string) {\r\n    this.patchJob(uid, { status: \"pending\" });\r\n  }\r\n\r\n  isTagInQueue(tagID: string) {\r\n    return this.currentState.queue.some(x => ['printing', 'pending'].some(status => x.status == status) && x.tagID == tagID);\r\n  }\r\n\r\n  openForPrint(data: DataContentModel, triggerPrint?: boolean) {\r\n    const blob = apiDataContentToBlob(data);\r\n    const pdfUrl = URL.createObjectURL(blob);\r\n\r\n    //var a = document.createElement(\"a\");\r\n    //a.href = pdfUrl;\r\n    //a.download = \"File\";\r\n    //a.click();\r\n\r\n    const pdfWindow = window.open(pdfUrl);\r\n    const tryPrint = () => {\r\n      if (!pdfWindow) {\r\n        return;\r\n      }\r\n\r\n      const printWindow = (wnd: Window) => {\r\n        if (triggerPrint) {\r\n          wnd.print();\r\n        }\r\n      }\r\n\r\n      if (pdfWindow.document.readyState === 'complete') {\r\n        printWindow(pdfWindow);\r\n      } else {\r\n        pdfWindow.addEventListener('load', () => printWindow(pdfWindow));\r\n      }\r\n    };\r\n\r\n    tryPrint();\r\n  }\r\n\r\n  private startJob(uid: string) {\r\n    const job = this.currentState.queue.find(x => x.uid == uid);\r\n    if (!job) {\r\n      return;\r\n    }\r\n\r\n    this.patchJob(uid, { status: \"printing\" });\r\n\r\n    const sendPcmMessage = (documentModel: DataContentModel) => {\r\n      this._pcmService.sendMessage({\r\n        Action: 'print_dcp',\r\n        Properties: {\r\n          pdf_data: documentModel.data,\r\n          uid: job.uid\r\n        }\r\n      });\r\n\r\n      this.patchJob(uid, {\r\n        errorMessage: undefined,\r\n        status: 'printed',\r\n        document: documentModel\r\n      });\r\n    };\r\n\r\n    if (job.document) {\r\n      sendPcmMessage(job.document);\r\n    } else if (!isObservable(job.source)) {\r\n      sendPcmMessage(job.source as DataContentModel);\r\n    } else {\r\n      const observable = cast<Observable<ActionResult<DataContentModel>>>(job.source);\r\n      observable.subscribe(response => {\r\n        if (response.errorMessage) {\r\n          this.patchJob(job.uid, { errorMessage: response.errorMessage, status: 'error' })\r\n        }\r\n        sendPcmMessage(response.data!);\r\n      });\r\n    }\r\n  }\r\n\r\n  private patchJob(uid: string, patch: Partial<PrintJob>) {\r\n    this.updateState(prev => ({\r\n      ...prev,\r\n      queue: prev.queue.map(q => (q.uid == uid ? { ...q, ...patch } : q))\r\n    }));\r\n  }\r\n}\r\n","import { apiHelper } from \"../helper/api.helper\";\r\nimport { Pagination } from \"../type/common.type\";\r\nimport { OfficeVisitorModel } from \"../api/api.schemas\"\r\nimport { DateTime, DateTimeRange } from \"../type/date.type\";\r\nimport { OfficeVisitorsSearchFilter, OfficeVisitorsSearchSorting, } from \"../type/office-visitors.filter\";\r\n\r\nexport type OfficeVisitorsState = {\r\n    visitors: OfficeVisitorModel[];\r\n    searchFilter: OfficeVisitorsSearchFilter;\r\n    searchSorting: OfficeVisitorsSearchSorting;\r\n    pagination: Pagination;\r\n}\r\n\r\nexport function defaultOfficeVisitorsState(): OfficeVisitorsState {\r\n    return {\r\n        visitors: [],\r\n        searchFilter: {\r\n            visitDateRange: DateTimeRange.createSingle( DateTime.today())\r\n        },\r\n        searchSorting: {\r\n            column: \"ScheduledArrivalTime\",\r\n            descending: true\r\n        },\r\n        pagination: apiHelper.defaultPagination()\r\n    };\r\n};\r\n","import { Injectable, inject } from \"@angular/core\";\r\nimport { Subject, concatMap, of, tap } from \"rxjs\";\r\n\r\nimport { DateTime } from \"../type/date.type\";\r\nimport { apiHelper } from \"../helper/api.helper\";\r\nimport { PrintService } from \"../service/print.service\";\r\nimport { StateProviderService } from \"../type/service.type\";\r\nimport { createMemoryStateProvider } from \"../type/state.type\";\r\nimport { OfficeVisitorReportType } from \"../type/office-visitors.type\";\r\nimport { AptaeroVisitorPassWebAPIApiService } from \"../api/api.service\";\r\nimport { OfficeVisitorsState, defaultOfficeVisitorsState } from \"../state/office-visitors.state\";\r\nimport { AuditTrailModel, DataContentModel, OfficeVisitorGetParams, OfficeVisitorSaveModel, OfficeVisitorReportParams, OfficeVisitorModel, GenderType } from \"../api/api.schemas\";\r\nimport { apiDataContentToBlob, asSingle, cast, errorActionResult, errorEmptyActionResult, getFullName, successActionResult, successEmptyActionResult } from \"../helper/functions.helper\";\r\n\r\n//import { StoplistPersonMatchesModal, StoplistPersonMatchesResolutionResult } from \"../../../shared/modals/stoplist-person-matches/stoplist-person-matches.modal\";\r\n//import { ModalContainerComponent } from \"../../../shared/components/modal-container/modal-container.component\";\r\n//import { ActionResult, ArrayOrSingle, Nullable } from \"../../../core/types/common.types\";\r\n//import { ToastNotificationService } from \"../../../core/services/toast-notification.service\";\r\n//import { OfficeVisitorsSearchFilter, OfficeVisitorsSearchSorting } from \"../types/office-visitors.filters\";\r\n//import { MediaCacheService } from \"../../../core/services/media-cache.service\";\r\n//import { officeVisitorsHelper } from \"../types/office-visitors.helper\";\r\n//import { RuntimeApplicationService } from \"../../../core/services/runtime-application.service\";\r\n//import { UserPreferencesService } from \"../../../core/services/user-preferences.service\";\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class OfficeVisitorsService extends StateProviderService<OfficeVisitorsState> {\r\n  private _printService = inject(PrintService);\r\n  //private _mediaCacheService = inject(MediaCacheService);\r\n  //private _toastNotificationService = inject(ToastNotificationService);\r\n  private _webApi = inject(AptaeroVisitorPassWebAPIApiService);\r\n  //private _userPreferencesService = inject(UserPreferencesService);\r\n\r\n  constructor() {\r\n    super(createMemoryStateProvider<OfficeVisitorsState>({\r\n      key: 'officeVisitorsService',\r\n      defaultState: defaultOfficeVisitorsState()\r\n    }));\r\n  }\r\n\r\n  generateReport(reportType: OfficeVisitorReportType) {\r\n    const apiRequestParameters = this.buildReportParameters(reportType);\r\n    const apiRequest = this._webApi.officeVisitorReport(apiRequestParameters);\r\n    return apiHelper.sendRequest(apiRequest)\r\n      .pipe(\r\n        concatMap(apiResponse => {\r\n          if (apiResponse.errorMessage) {\r\n            return errorEmptyActionResult(apiResponse.errorMessage);\r\n          }\r\n\r\n          this._printService.openForPrint(apiResponse.data!, true);\r\n          return successEmptyActionResult();\r\n        })\r\n      );\r\n  }\r\n\r\n  //loadFacePhoto(mediaId?: Nullable<string>) {\r\n  //    return this._mediaCacheService\r\n  //        .getFromCacheOrLoadMedia(mediaId, mediaId ? this._webApi.officeVisitorMedia(mediaId) : undefined);\r\n  //}\r\n\r\n  //updateSorting(searchSorting: Partial<OfficeVisitorsSearchSorting>) {\r\n  //    this.updateState(prev => ({\r\n  //        ...prev,\r\n  //        searchSorting: {\r\n  //            ...prev.searchSorting,\r\n  //            ...searchSorting\r\n  //        }\r\n  //    }));\r\n  //}\r\n\r\n  //updateFilter(searchFilter: Partial<OfficeVisitorsSearchFilter>) {\r\n  //    this.updateState(prev => ({\r\n  //        ...prev,\r\n  //        searchFilter: {\r\n  //            ...prev.searchFilter,\r\n  //            ...searchFilter\r\n  //        }\r\n  //    }));\r\n  //}\r\n\r\n  //loadAuditTrail(id: string) {\r\n  //    const request = this._webApi.officeVisitorAuditTrail(id);\r\n  //    return apiHelper.sendRequest(request)\r\n  //        .pipe(\r\n  //            concatMap(response => {\r\n  //                return response.errorMessage\r\n  //                    ? errorActionResult<AuditTrailModel[]>(response.errorMessage)\r\n  //                    : successActionResult<AuditTrailModel[]>(response.data!.records)\r\n  //            })\r\n  //        );\r\n  //}\r\n\r\n  //loadDetailByID(id: string) {\r\n  //    const request = this._webApi.officeVisitorGetDetail(id);\r\n  //    return apiHelper.sendRequest(request)\r\n  //        .pipe(\r\n  //            concatMap(response => {\r\n  //                if (response.errorMessage) {\r\n  //                    this._toastNotificationService.error(response.errorMessage);\r\n  //                    return errorActionResult<OfficeVisitorModel>(response.errorMessage);;\r\n  //                }\r\n  //                return successActionResult<OfficeVisitorModel>(response.data!);\r\n  //            })\r\n  //        );\r\n  //}\r\n\r\n  //loadDetailByDocument(document: { firstName: string, lastName: string, dob?: DateTime, gender?: GenderType }) {\r\n  //    const fullName = getFullName(document);\r\n\r\n  //    const queryParams: OfficeVisitorGetParams = apiHelper.queryParams({\r\n  //        // Filters\r\n  //        scheduledArrivalDateStart: DateTime.today().asApiJsonDate(),\r\n  //        scheduledArrivalDateEnd: DateTime.maxValue.asApiJsonDate(),\r\n  //        searchQuery: fullName,\r\n  //        gender: document.gender,\r\n  //        dOB: document.dob?.asApiJsonDate(),\r\n  //        firstName: document.firstName,\r\n  //        lastName: document.lastName,\r\n  //        statuses: [\"NeedsApproval\", \"Registered\", \"SignedIn\"],\r\n  //        // Pagination,\r\n  //        pageNumber: 1,\r\n  //        pageSize: 1,\r\n  //        sortColumn: 'ScheduledArrivalTime',\r\n  //        sortDescending: false\r\n  //    });\r\n  //    const request = this._webApi.officeVisitorGet(queryParams);\r\n  //    return apiHelper.sendRequest(request)\r\n  //        .pipe(\r\n  //            concatMap(response => {\r\n  //                if (response.errorMessage) {\r\n  //                    this._toastNotificationService.error(response.errorMessage);\r\n  //                    return errorActionResult<OfficeVisitorModel>(response.errorMessage);;\r\n  //                }\r\n\r\n  //                const totalFoundRecords = response.data?.totalRecords || 0;\r\n  //                if (totalFoundRecords == 0) {\r\n  //                    const notFoundErrorMessage = `Can't find visitor with name: ${fullName}`;\r\n  //                    //this._toastNotificationService.error(notFoundErrorMessage);\r\n  //                    return errorActionResult<OfficeVisitorModel>(notFoundErrorMessage);\r\n  //                }\r\n\r\n  //                return successActionResult<OfficeVisitorModel>(response.data!.records[0]);\r\n  //            })\r\n  //        );\r\n  //}\r\n\r\n  //loadData(nextPage?: boolean) {\r\n  //    const { searchFilter, searchSorting, pagination } = this.currentState\r\n  //    const pageNumber = nextPage ? pagination.page + 1 : 1;\r\n\r\n  //    //this.patchState({ visitors: [] });\r\n  //    const queryParams: OfficeVisitorGetParams = apiHelper.queryParams({\r\n  //        // Filters\r\n  //        scheduledArrivalDateStart: cast<DateTime>(searchFilter.visitDateRange.start).asApiJsonDate(),\r\n  //        scheduledArrivalDateEnd: cast<DateTime>(searchFilter.visitDateRange.end).asApiJsonDate(),\r\n  //        searchQuery: searchFilter.searchQuery,\r\n  //        statuses: searchFilter.statuses,\r\n  //        // Pagination,\r\n  //        pageNumber: pageNumber,\r\n  //        pageSize: apiHelper.defaultPageSize,\r\n  //        sortColumn: searchSorting.column,\r\n  //        sortDescending: searchSorting.descending\r\n  //    });\r\n  //    const request = this._webApi.officeVisitorGet(queryParams);\r\n\r\n  //    return apiHelper.sendRequest(request)\r\n  //        .pipe(\r\n  //            tap(response => {\r\n  //                if (!response.data) {\r\n  //                    return;\r\n  //                }\r\n  //                const responseData = response.data;\r\n  //                this.patchState(prev => ({\r\n  //                    pagination: apiHelper.pagination(pageNumber, responseData.totalRecords),\r\n  //                    visitors: nextPage ? [...prev.visitors, ...responseData.records] : responseData.records\r\n  //                }));\r\n  //            })\r\n  //        );\r\n  //}\r\n\r\n  //save(model: OfficeVisitorSaveModel, id?: string) {\r\n  //    const request = id ? this._webApi.officeVisitorUpdate(id, model) : this._webApi.officeVisitorAdd(model);\r\n  //    return apiHelper.sendRequest(request)\r\n  //        .pipe(tap(response => {\r\n  //            if (!response.errorMessage) {\r\n  //                this._toastNotificationService.success(`The pass has been updated`);\r\n  //            }\r\n  //            this.tapVisitorsUpdate(response.data);\r\n  //        }));\r\n  //}\r\n\r\n  //vet(ids: ArrayOrSingle<string>, modalContainer: ModalContainerComponent) {\r\n  //    const id = asSingle(ids)!; // TEMP\r\n  //    const request = this._webApi.officeVisitorVet(id);\r\n  //    return apiHelper.sendRequest(request)\r\n  //        .pipe(\r\n  //            tap(vetApiResponse => this.tapVisitorsUpdate(vetApiResponse.data?.visitor)),\r\n  //            concatMap(vetApiResponse => {\r\n  //                if (vetApiResponse.errorMessage) {\r\n  //                    return errorActionResult<OfficeVisitorModel>(vetApiResponse.errorMessage);\r\n  //                }\r\n\r\n  //                if (vetApiResponse.data!.visitor.secureFlightVettingResponseCode == 'Error') {\r\n  //                    return errorActionResult<OfficeVisitorModel>('Secure Flight: Unexpected error. Please try again later.');\r\n  //                }\r\n\r\n  //                const { visitor, stoplistPersonMatches } = vetApiResponse.data!;\r\n  //                if (visitor.status == 'Denied') {\r\n  //                    this._toastNotificationService.warning(`The pass has been denied due to an external '${visitor.secureFlightVettingResponseCode}' vetting response`);\r\n  //                    return successActionResult<OfficeVisitorModel>(visitor);\r\n  //                }\r\n  //                else if (visitor.secureFlightVettingResponseCode == 'Error') {\r\n  //                    return successActionResult<OfficeVisitorModel>(visitor);\r\n  //                }\r\n\r\n  //                if (!stoplistPersonMatches) {\r\n  //                    this._toastNotificationService.success(`The pass has been vetted.`);\r\n  //                    return successActionResult<OfficeVisitorModel>(visitor);\r\n  //                }\r\n\r\n  //                const resolutionSubject = new Subject<ActionResult<OfficeVisitorModel>>();\r\n  //                modalContainer.show(StoplistPersonMatchesModal, {\r\n  //                    recordToResolve: {\r\n  //                        stoplistMatches: stoplistPersonMatches,\r\n  //                        visitor: visitor\r\n  //                    },\r\n  //                    onResolve: (resolution) => {\r\n  //                        if (!resolution) {\r\n  //                            resolutionSubject.next({ data: visitor });\r\n  //                            resolutionSubject.complete();\r\n  //                            return of<StoplistPersonMatchesResolutionResult>({});\r\n  //                        }\r\n\r\n  //                        const resolveApiRequest = this._webApi.officeVisitorVetStoplistMatch(visitor.id, resolution);\r\n  //                        return apiHelper.sendRequest(resolveApiRequest)\r\n  //                            .pipe(\r\n  //                                tap(resolveApiResponse => this.tapVisitorsUpdate(resolveApiResponse.data)),\r\n  //                                concatMap(resolveApiResponse => {\r\n  //                                    if (resolveApiResponse.data) {\r\n  //                                        this._toastNotificationService.success(`Stoplist match has been resolved.`);\r\n\r\n  //                                        resolutionSubject.next({ data: resolveApiResponse.data });\r\n  //                                        resolutionSubject.complete();\r\n  //                                        return of<StoplistPersonMatchesResolutionResult>({});\r\n  //                                    } else {\r\n  //                                        return of<StoplistPersonMatchesResolutionResult>({ errorMessage: resolveApiResponse.errorMessage });\r\n  //                                    }\r\n  //                                })\r\n  //                            );\r\n  //                    }\r\n\r\n  //                });\r\n  //                return resolutionSubject.asObservable();\r\n  //            })\r\n  //        );\r\n  //}\r\n\r\n  //cancel(ids: ArrayOrSingle<string>) {\r\n  //    const id = asSingle(ids)!; // TEMP\r\n  //    const request = this._webApi.officeVisitorCancel(id);\r\n  //    return apiHelper.sendRequest(request)\r\n  //        .pipe(tap(response => {\r\n  //            if (!response.errorMessage) {\r\n  //                this._toastNotificationService.warning(`The visit has been canceled`);\r\n  //            }\r\n  //            this.tapVisitorsUpdate(response.data);\r\n  //        }));\r\n  //}\r\n\r\n  //signIn(ids: ArrayOrSingle<string>) {\r\n  //    const id = asSingle(ids)!; // TEMP\r\n  //    const request = this._webApi.officeVisitorSignIn(id);\r\n  //    return apiHelper.sendRequest(request)\r\n  //        .pipe(tap(response => {\r\n  //            if (!response.errorMessage) {\r\n  //                this._toastNotificationService.success(`The pass has been signed in`);\r\n  //            }\r\n  //            this.tapVisitorsUpdate(response.data);\r\n  //        }));\r\n  //}\r\n\r\n  //signOut(ids: ArrayOrSingle<string>) {\r\n  //    const id = asSingle(ids)!; // TEMP\r\n  //    const request = this._webApi.officeVisitorSignOut(id);\r\n  //    return apiHelper.sendRequest(request)\r\n  //        .pipe(tap(response => {\r\n  //            if (!response.errorMessage) {\r\n  //                this._toastNotificationService.success(`The pass has been signed out`);\r\n  //            }\r\n  //            this.tapVisitorsUpdate(response.data);\r\n  //        }));\r\n  //}\r\n\r\n  //print(ids: ArrayOrSingle<string>) {\r\n  //    const id = asSingle(ids)!; // TEMP\r\n  //    const visitor = this.currentState.visitors.find(x => x.id == id);\r\n\r\n  //    const request = this._webApi.officeVisitorPrint(id);\r\n  //    const apiRequest = apiHelper.sendRequest(request)\r\n  //        .pipe(\r\n  //            tap(response => {\r\n  //                if (response.errorMessage) {\r\n  //                    return;\r\n  //                }\r\n  //                const resposeData = response.data!;\r\n  //                this.tapVisitorsUpdate(resposeData.visitor);\r\n  //            })\r\n  //        );\r\n\r\n  //    this._toastNotificationService.success(`The pass has been sent to the printer`);\r\n  //    this._printService.queue({\r\n  //        tagID: visitor?.id,\r\n  //        name: `${getFullName(visitor)} Visitor Badge`,\r\n  //        source: apiRequest.pipe(concatMap(response => {\r\n  //            return response.errorMessage\r\n  //                ? errorActionResult<DataContentModel>(response.errorMessage)\r\n  //                : successActionResult<DataContentModel>(response.data!.pdfDocument);\r\n  //        }))\r\n  //    });\r\n\r\n  //    const visitorModel = cast<OfficeVisitorModel>(visitor!);\r\n  //    return successActionResult<OfficeVisitorModel>(visitorModel!);\r\n  //    //.pipe(concatMap(response => {\r\n  //    //    return response.errorMessage\r\n  //    //        ? errorActionResult<OfficeVisitorModel>(response.errorMessage)\r\n  //    //        : successActionResult<OfficeVisitorModel>(response.data!.visitor);\r\n  //    //}));\r\n  //}\r\n\r\n  //isPrinting(ids: ArrayOrSingle<string>) {\r\n  //    const id = asSingle(ids)!; // TEMP\r\n  //    return this._printService.isTagInQueue(id);\r\n  //}\r\n\r\n  //showInvalidDocumentScanMessage() {\r\n  //    this._toastNotificationService.error(officeVisitorsHelper.invalidDocumentScanMessage);\r\n  //}\r\n\r\n  private buildReportParameters(reportType: OfficeVisitorReportType): OfficeVisitorReportParams {\r\n    switch (reportType) {\r\n      case 'Evacuation':\r\n        return {\r\n          statuses: [\"SignedIn\", \"SignedOut\"],\r\n          dateStart: DateTime.today().asApiJsonDate(),\r\n          dateEnd: DateTime.today().modify({ days: 1 }).asApiJsonDate()\r\n        };\r\n      default:\r\n        throw Error(`Not supported report type: ${reportType}`);\r\n    }\r\n  }\r\n\r\n  //private tapVisitorsUpdate(visitors?: ArrayOrSingle<OfficeVisitorModel>) {\r\n  //    if (!visitors) {\r\n  //        return;\r\n  //    }\r\n\r\n  //    const wrappedArray = !Array.isArray(visitors) ? [visitors] : visitors;\r\n\r\n  //    const updates = wrappedArray.filter(v => this.currentState.visitors.some(x => x.id == v.id));\r\n  //    const inserts = wrappedArray.filter(v => this.currentState.visitors.every(x => x.id != v.id) && this.isInDateFilterRange(v));\r\n\r\n  //    this.updateState(prev => ({\r\n  //        ...prev,\r\n  //        visitors: [\r\n  //            ...inserts,\r\n  //            ...prev.visitors.map(x => (updates.find(update => update.id == x.id) || x))\r\n  //        ]\r\n  //    }));\r\n  //}\r\n\r\n  //private isInDateFilterRange(visitor: OfficeVisitorModel) {\r\n  //    const date = DateTime.parse(visitor.scheduledArrivalTime).date();\r\n  //    const { visitDateRange } = this.currentState.searchFilter\r\n  //    return DateTime.compare(date, visitDateRange.start) >= 0 && DateTime.compare(date, visitDateRange.end) <= 0;\r\n  //}\r\n}\r\n","/*\r\n * Public API Surface of ngx-aptaero-visitorpass-web-shared\r\n */\r\n\r\nexport * from './lib/type/office-visitors.type';\r\nexport * from './lib/service/account-login.service';\r\nexport * from './lib/service/office-visitors.service';\r\nexport * from './lib/interceptor/http-request-header.interceptor';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.AppGlobalState"],"mappings":"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"}