{"version":3,"file":"login-dialog.js","mappings":"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","sources":["webpack:///./src/configs/config.ts","webpack:///./src/contracts/enums/client-type.enum.ts","webpack:///./src/services/app-services/utils.service.ts","webpack:///./src/services/storage-services/local-storage.service.ts","webpack:///./src/services/app-services/log.service.ts","webpack:///./src/dialogs/login-dialog/login-dialog.ts"],"sourcesContent":["import { IConfig } from \"@interfaces/config.interface\";\n\nexport const Config: IConfig = {\n warningsDialogHtml: \"warnings-dialog.html\",\n ribbonButtonDialogHtml: \"ribbon-button-dialog.html\",\n loginDialogHtml: \"login-dialog.html\",\n keywordProximityCount: 300,\n ssoLoginModalBackoffSeconds: 28800,\n version: \"1.3.6.8\",\n timeouts : {\n common: 3000,\n dialog: 15000,\n localRules: 400,\n allowEmailSend: 600,\n updateRelationships: 500,\n onSendEvent: 1000\n },\n storageKeys: {\n statsInfo: \"STATS_INFO\",\n configSync: \"CONFIG_SYNC\",\n errorLogs: \"AIRV_LOGS\",\n ssoLoginModalLastShown: \"SSO_LAST_SHOWN\"\n }\n}\n","export enum ClientType {\n Unknown,\n Web,\n Mac,\n Windows\n}","import { ClientType } from \"@enums/client-type.enum\";\n\nexport class Utils {\n\n public static isOfficeWindows(): boolean {\n \n return Office?.context?.platform === Office.PlatformType.PC || Office?.context?.platform == null;\n }\n\n public static isOfficeMac(): boolean {\n\n return Office?.context?.platform === Office.PlatformType.Mac;\n }\n\n public static isOfficeLocal(): boolean {\n \n return this.isOfficeWindows() || this.isOfficeMac();\n }\n\n public static isItemTypeAppointment(): boolean {\n\n return Office?.context?.mailbox?.item?.itemType === Office.MailboxEnums.ItemType.Appointment;\n }\n\n public static isNotItemTypeMessage(): boolean {\n\n return Office?.context?.mailbox?.item?.itemType !== Office.MailboxEnums.ItemType.Message;\n }\n\n public static getItemType(): string {\n\n return Office?.context?.mailbox?.item?.itemType || \"unknown\";\n }\n\n public static getClientType(): ClientType {\n\n switch (Office?.context?.platform) {\n case Office?.PlatformType?.PC:\n case null: {\n return ClientType.Windows;\n }\n case Office?.PlatformType?.Mac: {\n return ClientType.Mac;\n }\n case Office?.PlatformType?.OfficeOnline: {\n return ClientType.Web;\n }\n default: {\n return ClientType.Unknown;\n }\n }\n }\n\n public static getUnsecuredGuid(): string {\n\n // Do not use this method if the GUID is to be stored in a database as there \n // might be conflicts since this does not guarantee good uniqueness.\n \n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8);\n return v.toString(16);\n });\n }\n}","export class LocalStorageService {\n\n public isLocalStorageAvailable: boolean = false;\n\n constructor() {\n this.checkLocalStorageAvailability();\n }\n \n public removeItem(key: string): void {\n\n if (!this.isLocalStorageAvailable) {\n return;\n }\n \n localStorage.removeItem(key);\n }\n\n public setItem(key: string, value: any): void {\n\n if (!this.isLocalStorageAvailable) {\n return;\n }\n\n localStorage.setItem(key, JSON.stringify(value));\n }\n\n public getItem(key: string): any {\n\n if (!this.isLocalStorageAvailable) {\n return;\n }\n\n return localStorage.getItem(key);\n }\n\n private checkLocalStorageAvailability(): void {\n\n var test = 'test';\n try {\n\n localStorage.setItem(test, test);\n localStorage.removeItem(test);\n\n this.isLocalStorageAvailable = true;\n } catch(e) {\n console.log(\"Local storage not available...\");\n this.isLocalStorageAvailable = false;\n }\n }\n}","import { Config } from \"@configs/config\";\nimport { Utils } from \"@app-services/utils.service\";\nimport { LocalStorageService } from \"@storage-services/local-storage.service\";\n\nexport class Log {\n \n public static logPlatformDetails() {\n\n try {\n\n Log.cLog('Platform: ' + Office?.context?.diagnostics?.platform);\n Log.cLog('HostName: ' + Office?.context?.mailbox?.diagnostics?.hostName);\n Log.cLog('HostVersion: ' + Office?.context?.mailbox?.diagnostics?.hostVersion); \n Log.cLog('AIRVVersion: ' + Config.version); \n } catch (err) {\n Log.cLog(\"Error while retrieving platform data\", err);\n }\n }\n \n public static cLog(message: string, ...optionalParams: any[]): void {\n\n try {\n\n let msgStr = `[${new Date().toISOString()}] ${message}`;\n\n if (optionalParams && optionalParams?.length > 0) {\n console.log(msgStr, optionalParams);\n } else {\n console.log(msgStr);\n }\n\n } catch (ex) {\n console.log(\"Error occurred while appending prefix to log\", ex);\n }\n }\n\n public static cError(error: any, ...optionalParams: any[]): void {\n\n try {\n\n Log.cLog(error, optionalParams);\n\n if (Utils.isOfficeLocal()) {\n return;\n }\n\n const localStorageService = new LocalStorageService();\n\n if (!localStorageService.isLocalStorageAvailable) {\n return;\n }\n\n const errorLogs = localStorageService.getItem(Config.storageKeys.errorLogs);\n\n let currentLogs = (JSON.parse(errorLogs) || []) as Array;\n\n let errorStr = `[${new Date().toISOString()}] ${error}`;\n\n const optionalParamsStr = JSON.stringify(optionalParams);\n\n if (Array.isArray(optionalParams) && optionalParams.length > 0 && optionalParams[0] instanceof Response) {\n\n const resp = optionalParams[0] as Response;\n errorStr += ` | URL: '${resp.url}', Status: ${resp.status}`;\n\n } else if (Array.isArray(optionalParams) && optionalParams.length > 0 && optionalParams[0] instanceof TypeError\n && optionalParams[0].stack) {\n\n errorStr += ` Stack: ${optionalParams[0].stack}`\n\n } else if (optionalParams && optionalParamsStr !== \"{}\") {\n\n errorStr += ` ${optionalParamsStr}`;\n }\n\n currentLogs.push(errorStr); \n\n let logsBlob = new Blob(currentLogs);\n\n // 4mb\n while (logsBlob.size > 4000000) {\n\n currentLogs = currentLogs.splice(0,1);\n\n Log.cLog(\"Removing oldest log and rechecking size...\");\n \n logsBlob = new Blob(currentLogs);\n }\n\n localStorageService.setItem(Config.storageKeys.errorLogs, currentLogs);\n } catch(ex: any) {\n \n try {\n // Just in case storage size is lower than 4mb and exception of storage full is thrown\n if (ex instanceof DOMException && \n (ex.code === 22 || ex.code === 1014 ||\n ex.message.toLowerCase().includes(\"exceeded\") ||\n ex.name === \"QuotaExceededError\" ||\n ex.name === \"NS_ERROR_DOM_QUOTA_REACHED\")) {\n\n const localStorageService = new LocalStorageService();\n\n if (!localStorageService.isLocalStorageAvailable) {\n return;\n }\n\n let currentLogs = localStorageService.getItem(Config.storageKeys.errorLogs);\n currentLogs = (JSON.parse(currentLogs) || []) as Array;\n\n if (currentLogs.length > 2) {\n currentLogs = currentLogs.splice(0, Math.floor(currentLogs.length / 2));\n localStorageService.setItem(Config.storageKeys.errorLogs, currentLogs);\n Log.cLog(\"Truncated half of the logs...\");\n } else {\n localStorageService.removeItem(Config.storageKeys.errorLogs);\n Log.cLog(\"Truncated all logs...\");\n }\n }\n } catch (ex) {\n Log.cLog('Error while clearing local storage', ex);\n }\n\n Log.cLog(error, optionalParams);\n Log.cLog(\"Saving the above error to local storage failed\", ex);\n }\n }\n}","/* global Office */\n\nimport { Log } from \"@app-services/log.service\";\nimport { LoginDialogData } from \"@classes/login-dialog-data.class\";\nimport { LoginDialogService } from \"@dialog-services/login-dialog.service\";\n\n// TODO URP-665: See if we can remove this dialog.\n\n(function () {\n \"use strict\";\n\n Office.onReady(() => {\n\n try {\n\n Log.cLog(\"initialized login dialog\");\n\n //Office.context.ui.addHandlerAsync(Office.EventType.DialogParentMessageReceived, onMessageFromParent);\n\n //Office.context.ui.messageParent(\"dialog-ready\"); \n\n } catch (error) {\n \n Log.cError(error);\n\n //Office.context.ui.messageParent(\"close-dialog-and-send\"); \n }\n });\n\n function onMessageFromParent(msg: Office.DialogParentMessageReceivedEventArgs) {\n\n //try {\n\n // const dialogData = JSON.parse(msg.message) as LoginDialogData;\n \n // const loginDialogService = new LoginDialogService(dialogData);\n \n // loginDialogService.populateInitialStrings();\n\n // loginDialogService.handleRedirect();\n \n //} catch (ex) {\n\n // Log.cError(\"An error occurred in login dialog onMessageFromParent\", ex);\n \n // Office.context.ui.messageParent(\"close-dialog-and-send\"); \n //}\n }\n})();\n"],"names":["Config","ClientType","Utils","static","Office","context","platform","PlatformType","PC","Mac","this","isOfficeWindows","isOfficeMac","mailbox","item","itemType","MailboxEnums","ItemType","Appointment","Message","Windows","OfficeOnline","Web","Unknown","replace","c","r","Math","random","toString","LocalStorageService","constructor","isLocalStorageAvailable","checkLocalStorageAvailability","removeItem","key","localStorage","setItem","value","JSON","stringify","getItem","test","e","console","log","Log","cLog","diagnostics","hostName","hostVersion","err","message","optionalParams","msgStr","Date","toISOString","length","ex","error","isOfficeLocal","localStorageService","errorLogs","currentLogs","parse","errorStr","optionalParamsStr","Array","isArray","Response","resp","url","status","TypeError","stack","push","logsBlob","Blob","size","splice","DOMException","code","toLowerCase","includes","name","floor","onReady","cError"],"sourceRoot":""}