{"version":3,"sources":["./$_lazy_route_resource lazy namespace object","./src/app/app.component.html","./src/app/components/administration/administrationmenu/administrationmenu.component.html","./src/app/components/administration/agentsinfo/agentsinfo.component.html","./src/app/components/administration/botlookup/botlookup.component.html","./src/app/components/administration/botregister/botregister.component.html","./src/app/components/administration/enablehiledit/enablehiledit.component.html","./src/app/components/administration/userlookup/userlookup.component.html","./src/app/components/administration/userregister/userregister.component.html","./src/app/components/administration/userrolemanagement/userrolemanagement.component.html","./src/app/components/conversation/add-new-agent/add-new-agent.component.html","./src/app/components/conversation/conversationsmenu/conversationsmenu.component.html","./src/app/components/conversation/group-chat-participants/group-chat-participants.component.html","./src/app/components/conversation/hilconversations/hilconversations.component.html","./src/app/components/dashboard/botdashboard/botdashboard.component.html","./src/app/components/dashboard/dashboardmenu/dashboardmenu.component.html","./src/app/components/shared/authentication/authentication.component.html","./src/app/components/shared/bot-history/bot-history.component.html","./src/app/components/shared/breadcrumb/breadcrumb.component.html","./src/app/components/shared/dialog/dialog.component.html","./src/app/components/shared/error/error.component.html","./src/app/components/shared/footer/footer.component.html","./src/app/components/shared/handoff-comment/handoff-comment.component.html","./src/app/components/shared/header/header.component.html","./src/app/components/shared/home/home.component.html","./src/app/components/shared/notification/notification.component.html","./src/app/components/shared/privacy-statement/privacy-statement.component.html","./src/app/components/shared/signout/signout.component.html","./src/app/components/shared/toaster/toaster.component.html","./src/app/components/shared/warning-popup/warning-popup.component.html","./src/app/components/utility/addbroadcast/addbroadcast.component.html","./src/app/components/utility/botpushnotification/botpushnotification.component.html","./src/app/components/utility/broadcast/broadcast.component.html","./src/app/components/utility/broadcastactions/broadcastactions.component.html","./src/app/components/utility/fileupload/fileupload.component.html","./src/app/components/utility/utilityhome/utilityhome.component.html","./src/app/components/utility/utilitymenu/utilitymenu.component.html","./node_modules/tslib/tslib.es6.js","./src/app/app-routing.module.ts","./src/app/app.component.scss","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/components/administration/administrationmenu/administrationmenu.component.scss","./src/app/components/administration/administrationmenu/administrationmenu.component.ts","./src/app/components/administration/agentsinfo/agentsinfo.component.scss","./src/app/components/administration/agentsinfo/agentsinfo.component.ts","./src/app/components/administration/botlookup/botlookup.component.scss","./src/app/components/administration/botlookup/botlookup.component.ts","./src/app/components/administration/botregister/botregister.component.scss","./src/app/components/administration/botregister/botregister.component.ts","./src/app/components/administration/enablehiledit/enablehiledit.component.scss","./src/app/components/administration/enablehiledit/enablehiledit.component.ts","./src/app/components/administration/userlookup/userlookup.component.scss","./src/app/components/administration/userlookup/userlookup.component.ts","./src/app/components/administration/userregister/userregister.component.scss","./src/app/components/administration/userregister/userregister.component.ts","./src/app/components/administration/userrolemanagement/userrolemanagement.component.scss","./src/app/components/administration/userrolemanagement/userrolemanagement.component.ts","./src/app/components/conversation/add-new-agent/add-new-agent.component.scss","./src/app/components/conversation/add-new-agent/add-new-agent.component.ts","./src/app/components/conversation/conversationsmenu/conversationsmenu.component.scss","./src/app/components/conversation/conversationsmenu/conversationsmenu.component.ts","./src/app/components/conversation/group-chat-participants/group-chat-participants.component.scss","./src/app/components/conversation/group-chat-participants/group-chat-participants.component.ts","./src/app/components/conversation/hilconversations/hilconversations.component.scss","./src/app/components/conversation/hilconversations/hilconversations.component.ts","./src/app/components/dashboard/botdashboard/botdashboard.component.scss","./src/app/components/dashboard/botdashboard/botdashboard.component.ts","./src/app/components/dashboard/dashboardmenu/dashboardmenu.component.scss","./src/app/components/dashboard/dashboardmenu/dashboardmenu.component.ts","./src/app/components/shared/authentication/authentication.component.scss","./src/app/components/shared/authentication/authentication.component.ts","./src/app/components/shared/bot-history/bot-history.component.scss","./src/app/components/shared/bot-history/bot-history.component.ts","./src/app/components/shared/breadcrumb/breadcrumb.component.scss","./src/app/components/shared/breadcrumb/breadcrumb.component.ts","./src/app/components/shared/dialog/dialog.component.scss","./src/app/components/shared/dialog/dialog.component.ts","./src/app/components/shared/error/error.component.scss","./src/app/components/shared/error/error.component.ts","./src/app/components/shared/footer/footer.component.scss","./src/app/components/shared/footer/footer.component.ts","./src/app/components/shared/handoff-comment/handoff-comment.component.scss","./src/app/components/shared/handoff-comment/handoff-comment.component.ts","./src/app/components/shared/header/header.component.scss","./src/app/components/shared/header/header.component.ts","./src/app/components/shared/home/home.component.scss","./src/app/components/shared/home/home.component.ts","./src/app/components/shared/notification/notification.component.scss","./src/app/components/shared/notification/notification.component.ts","./src/app/components/shared/privacy-statement/privacy-statement.component.scss","./src/app/components/shared/privacy-statement/privacy-statement.component.ts","./src/app/components/shared/signout/signout.component.scss","./src/app/components/shared/signout/signout.component.ts","./src/app/components/shared/toaster/toaster.component.scss","./src/app/components/shared/toaster/toaster.component.ts","./src/app/components/shared/warning-popup/warning-popup.component.scss","./src/app/components/shared/warning-popup/warning-popup.component.ts","./src/app/components/utility/addbroadcast/addbroadcast.component.scss","./src/app/components/utility/addbroadcast/addbroadcast.component.ts","./src/app/components/utility/botpushnotification/botpushnotification.component.scss","./src/app/components/utility/botpushnotification/botpushnotification.component.ts","./src/app/components/utility/broadcast/broadcast.component.scss","./src/app/components/utility/broadcast/broadcast.component.ts","./src/app/components/utility/broadcastactions/broadcastactions.component.scss","./src/app/components/utility/broadcastactions/broadcastactions.component.ts","./src/app/components/utility/fileupload/fileupload.component.scss","./src/app/components/utility/fileupload/fileupload.component.ts","./src/app/components/utility/utilityhome/utilityhome.component.scss","./src/app/components/utility/utilityhome/utilityhome.component.ts","./src/app/components/utility/utilitymenu/utilitymenu.component.scss","./src/app/components/utility/utilitymenu/utilitymenu.component.ts","./src/app/guards/auth/auth.guard.ts","./src/app/interceptors/authentication/authentication.interceptor.ts","./src/app/interceptors/error/error.interceptor.ts","./src/app/models/alert.ts","./src/app/models/configuration.settings.ts","./src/app/models/group-chat-active-agents.ts","./src/app/pipes/nameinitials/nameinitials.pipe.ts","./src/app/services/core/agent-history/agent-history.service.ts","./src/app/services/core/authentication/authentication.service.ts","./src/app/services/core/bot-proactive-notification/bot-proactive-notification.service.ts","./src/app/services/core/bot-registration/bot-registration.service.ts","./src/app/services/core/broadcast/broadcast.service.ts","./src/app/services/core/token/token.service.ts","./src/app/services/core/user/user.service.ts","./src/app/services/shared/communication/communication.service.ts","./src/app/services/shared/connection-status/connected-status.service.ts","./src/app/services/shared/data/data.service.ts","./src/app/services/shared/export/export.service.ts","./src/app/services/shared/fileupload/fileupload.service.ts","./src/app/services/shared/localstorage/localstorage.service.ts","./src/app/services/shared/message/message.service.ts","./src/app/services/shared/notification/notification.service.ts","./src/app/services/shared/privacyacceptance/privacyacceptance.service.ts","./src/app/services/shared/sessionstorage/sessionstorage.service.ts","./src/app/services/shared/toaster/toaster.service.ts","./src/app/services/shared/utility/utility.service.ts","./src/environments/environment.ts","./src/main.ts"],"names":[],"mappings":"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","file":"main-es2015.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./$$_lazy_route_resource lazy recursive\";","export default \"
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\"","export default \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","export default \"
\\r\\n
\\r\\n

AGENT INFORMATION

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Choose a date\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Agents *\\r\\n \\r\\n ALL\\r\\n \\r\\n {{agent.firstName}} {{agent.lastName}} - {{agent.emailID}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Choose Start Date *\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Choose End Date *\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
{{con.AgentName}} - {{con.AgentEmail}} ({{con.ChatAgentHistoryData.length}})
\\r\\n
\\r\\n
\\r\\n
0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Bot User NameChat Received Time (UTC)Chat Attended Time (UTC)Chat Response Time (hh:mm:ss)Chat Closed Time (UTC)Chat Resolution Time (hh:mm:ss)Chat Status
{{agentInfo.BotUserName}}{{agentInfo.ChatReceivedTime}}{{agentInfo.ChatAttentedTime}}{{agentInfo.ChatResponseTime}}{{agentInfo.ChatClosedTime}}{{agentInfo.ChatResolutionTime}}{{agentInfo.ChatStatus}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n\"","export default \"
\\r\\n
\\r\\n

BOT LOOKUP

\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\"","export default \"
\\r\\n
\\r\\n

BOT REGISTRATION

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Engagement/Client Name is\\r\\n required\\r\\n The field Engagement/Client Name must be a\\r\\n string with a maximum length of 200\\r\\n The field Engagement/Client Name must not contain any special characters.\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Report ID\\r\\n is invalid\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Invalid Input\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Invalid Input\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","export default \"
\\r\\n \\r\\n
\\r\\n

ENABLE/DISABLE HIL

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Bot ID : {{botDetails.botId}} | Bot Name : {{botDetails.displayName}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\"","export default \"
\\r\\n
\\r\\n

USER LOOKUP

\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \"","export default \"
\\r\\n
\\r\\n

EXTERNAL USER REGISTRATION

\\r\\n

0\\\" class=\\\"display-5\\\">UPDATE USER INFO

\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n First Name is required\\r\\n The field First Name must be a string with a maximum length of 50\\r\\n\\r\\n The field First Name must not have any contain character\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Last Name is required\\r\\n The field Last Name must be a string with a maximum length of 50\\r\\n The field Last Name must not contain any special character\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Email Id is required\\r\\n Email Id is invalid\\r\\n The field Email Id must be a string with a maximum length of 50\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n The field Company name must be a string with a maximum length of 50\\r\\n\\r\\n The field Company must not contain any special character\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","export default \"
\\r\\n
\\r\\n

USER-ROLE MANAGEMENT

\\r\\n Manage user-roles to BOT.\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Bot ID : {{botData.botId}} | Bot Name - {{botData.displayName}} | Service Line - {{botData.serviceLine}} |\\r\\n Offering Type - {{botData.offeringType}} | Bot Type - {{botData.botType}} | Engagement/Client Name - {{botData.customerContact}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n User Type\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Loading...\\r\\n \\r\\n \\r\\n {{option.emailAddress}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Role\\r\\n \\r\\n \\r\\n {{role.displayName}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
USER ROLES
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","export default \"
\\r\\n
\\r\\n
\\r\\n

AVAILABLE AGENTS

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{agentInfo.fullname}}\\r\\n
\\r\\n Active Chats: {{agentInfo.activeChats}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{selectedActiveAgent.fullname}}
\\r\\n Active Chats: {{selectedActiveAgent.activeChats}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\"","export default \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","export default \"
\\r\\n
\\r\\n
\\r\\n

PARTICIPANTS

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{activeGroupChatBotUserName | nameinitials}}\\r\\n {{activeGroupChatBotUserName}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"","export default \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
0\\\" class=\\\"\\\">CHAT
\\r\\n
NO ACTIVE HIL REQUEST(S)
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{activeBotUserName | nameinitials}}\\r\\n
\\r\\n {{activeBotUserName | nameinitials}}{{activeBotUserName}}\\r\\n
\\r\\n
\\r\\n  {{activeBotUserId}}\\r\\n
\\r\\n
\\r\\n  {{activeBotName}}\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n {{activeBotUserName}}\\r\\n  {{activeBotName}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{activeGroupChatBotUserName | nameinitials}}\\r\\n \\r\\n \\r\\n \\r\\n  | \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{con.Sender | nameinitials}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

File upload permission granted!

\\r\\n {{con.DateTime | date:'shortTime'}}\\r\\n
\\r\\n
\\r\\n

{{con.Message}}

\\r\\n {{con.DateTime | date:'shortTime'}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n Click To View \\r\\n
\\r\\n
\\r\\n Click To View\\r\\n \\r\\n
\\r\\n {{con.DateTime | date:'shortTime'}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

File upload permission granted!

\\r\\n {{con.DateTime | date:'shortTime'}}\\r\\n
\\r\\n
\\r\\n

{{con.Message}}

\\r\\n {{con.DateTime | date:'shortTime'}}\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n \\r\\n   {{con.Message}}\\r\\n {{con.DateTime | date:'shortTime'}}\\r\\n \\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n \\r\\n   {{con.Message}}\\r\\n {{con.DateTime | date:'shortTime'}}\\r\\n \\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n \\r\\n   {{con.Message}}\\r\\n {{con.DateTime | date:'shortTime'}}\\r\\n \\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{activeTypingNotificationMessage}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n Download\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","export default \"
\\r\\n
\\r\\n

BOT ANALYTICS

\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{ReportConfig.errorMessage}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\"","export default \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","export default \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

CT Chatbot as a Service

\\r\\n

Authenticating and validating user details

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","export default \"\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n

CONVERSATION HISTORY

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
Current Conversation
\\r\\n
{{con.date}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
0 && con.botConversations[i - 1].conversationId !== history.conversationId\\\" style=\\\"width: 100%; border-top: 1px dashed; padding-bottom:5px;\\\">
\\r\\n
\\r\\n
\\r\\n {{history.sender}}\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n
\\r\\n
\\r\\n {{history.date}}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n {{history.sender}}\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n
\\r\\n
\\r\\n {{history.date}}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n {{history.sender}}\\r\\n
\\r\\n
\\r\\n

\\r\\n
\\r\\n {{history.date}}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\"","export default \"
\\r\\n
    \\r\\n
  1. \\r\\n {{ breadcrumb.label }}\\r\\n 0\\\" [routerLink]=\\\"breadcrumb.url\\\" routerLinkActive=\\\"router-link-active\\\">{{ breadcrumb.label }}\\r\\n
  2. \\r\\n
\\r\\n
\\r\\n\"","export default \"

dialog works!

\\r\\n\"","export default \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Error

\\r\\n

You are not authorized to perform this action

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","export default \"
\\r\\n
\\r\\n
\\r\\n

\\r\\n Privacy Statement\\r\\n |\\r\\n © 2020. All Rights Reserved.\\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","export default \"
\\r\\n
\\r\\n
\\r\\n

HANDOFF COMMENT

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
    \\r\\n
  • \\r\\n {{handOffComment.handOffTime | date:'shortTime' }}\\r\\n
    {{handOffComment.handOffBy}} - {{handOffComment.handOffTo}}
    \\r\\n

    {{handOffComment.handOffComment}}

    \\r\\n
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","export default \"\\r\\n\\r\\n\"","export default \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n

CBaaS Contact Center

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","export default \"

notification works!

\\r\\n\"","export default \"
\\r\\n
\\r\\n
\\r\\n

Privacy Notice – Chatbot as a Service

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
1.Introduction
\\r\\n

This Privacy Notice is intended to describe the practices EY follows in relation to the Chatbot as a Service (“Tool”) with respect to the privacy of all individuals whose personal data is processed and stored in the Tool. This Privacy Notice should be read together with the ey.com Privacy Statement, and in case of any conflict with the ey.com Privacy Statement, the terms of this Privacy Notice will prevail. Please read this Privacy Notice carefully.

\\r\\n\\r\\n \\r\\n
2.Who manages the Tool?
\\r\\n

“EY” refers to one or more of the member firms of Ernst & Young Global Limited (“EYG”), each of which is a separate legal entity and can determine the purposes and means for data processing in its own right (i.e. act as a data controller or in a similar capacity) . The entity that is acting as data controller (or similar capacity) by providing this Tool on which your personal data will be processed and stored is EY Global Services Limited, an EY global entity. EY Global Services Limited licenses the Tool from Microsoft Corporation.

\\r\\n

The personal data in the Tool is shared by EY Global Services Limited with one or more member firms of EYG (see “Who can access your personal data” section 6 below).

\\r\\n

The Tool is hosted on servers externally in an EY managed MS Azure Data Centre in the United States, Europe, and South East Asia.

\\r\\n\\r\\n \\r\\n
3.Why do we need your information?
\\r\\n

The Tool has been designed to establish and maintain automated conversation assistants (each a “chatbot”) with minimal effort and to support the ability to hand off the conversation to a human being if required.

\\r\\n

Your personal data processed in the Tool is used as follows:

\\r\\n

Questions asked by users are (a) used to respond to the given user and (b) stored and later retrieved for bot training purpose to improve the accuracy of the given chatbot (“Training Data”). Authentication information regarding Users is used for the sole purposes of administrating access to the given chatbot. The Tool will be used across EY in a large number of varying use cases. It is therefore possible that other use cases may be initiated by the given Customer.

\\r\\n

The human interface of CBaaS Contact Centre is a centralized portal deployed in the EU WEST region through which the agents logging in globally will be accessing the portal. However, no conversation data is stored in the centralized portal for agents. The conversation data is stored in the respective dedicated client chatbot instances in the choice of customer regions and populated in the portal real-time for agent access for the history of the current case that the agent is supporting the user.

\\r\\n

EY relies on the following basis to legitimize the processing of your personal data in the Tool: EY relies on the following basis to legitimize the processing of your personal data in the Tool: processing is necessary for the purposes of the legitimate interests pursued by the data controller or by a third party, except where such interests are overridden by the interests or fundamental rights and freedoms of the data subject which require protection of personal data. The specific legitimate interest pursued is conducting client engagements.

\\r\\n

You have the right to object at any time, on grounds relating to your particular situation, to the processing of personal data concerning you based on the above legitimate interest(s).

\\r\\n\\r\\n \\r\\n
4.What type of personal data is processed in the Tool?
\\r\\n

\\r\\n \\r\\n The Tool processes these personal data categories:\\r\\n

    \\r\\n
  • \\r\\n Client Customer Users:\\r\\n
      \\r\\n
    • Questions and answers input by the applicable user to the chatbot
    • \\r\\n
    • Domain of user
    • \\r\\n
    • Token/UserID supplied by relevant client customer SSO authentication method is temporarily processed for authentication of client customer users
    • \\r\\n
    • Tool access times
    • \\r\\n
    • First name, Last name
    • \\r\\n
    • Email ID
    • \\r\\n
    \\r\\n
  • \\r\\n
\\r\\n
    \\r\\n
  • \\r\\n EY Customer Users:\\r\\n
      \\r\\n
    • Questions input by the applicable user to the chatbot
    • \\r\\n
    • Token/UserID through Active Directory
    • \\r\\n
    • Tool access times
    • \\r\\n
    • First name, Last name
    • \\r\\n
    • Email ID
    • \\r\\n
    \\r\\n
  • \\r\\n
\\r\\n
\\r\\n

\\r\\n

This data is sourced directly from EY Partners, employees or contractors and directly from clients and through a feed from Azure Active Directory.

\\r\\n\\r\\n \\r\\n
5.Sensitive Personal Data
\\r\\n

Sensitive personal data reveals your racial or ethnic origin, political opinions, religious or philosophical beliefs, trade union membership, genetic data, biometric data, data concerning health or data concerning sex life or sexual orientation.

\\r\\n

EY does not intentionally collect any sensitive personal data from you via the Tool. The Tool’s intention is not to process such information. Accordingly, you should not submit sensitive personal data into the Tool.

\\r\\n\\r\\n \\r\\n
6.Who can access your information?
\\r\\n

\\r\\n \\r\\n Your personal data is accessed in the Tool by the following persons/teams:\\r\\n

    \\r\\n
  • \\r\\n Levels of access:\\r\\n
      \\r\\n
    • Configuration Team (Global) – Deploy and update the chatbot (Full control access to all data and authentication enrolment). Access is provisioned for purposes of facilitating configuration and support of chatbots initiated by EY Customers and Client Customers. 7 Configuration Team members globally.
    • \\r\\n
    • Support Team (Global) –Maintain the chatbot answers with read/write access to the Customer-seeded questions and answers. Number and location of Support Team members is dependent on each individually deployed chatbot.
    • \\r\\n
    • Customer Users (Global) – Access is provided so they can interact with the chatbot and receive answers to questions. Read/write access to the questions they submit and read access to answers they receive to their individual questions. Number and location of Customer Users is dependent on each individually deployed chatbot.
    • \\r\\n
    \\r\\n
  • \\r\\n
\\r\\n
    \\r\\n
  • \\r\\n For Contact Center:\\r\\n
      \\r\\n
    • Super Admin (Global): Typically, an EY person from enablement team will be responsible to add the Admin/agents.
    • \\r\\n
    • Admin (Global): The customer users who will have access only to the specific bot deployed by them and they further add/delete the agents.
    • \\r\\n
    • Agents (Global): Converse with customers users once the bot fails to answer the queries.
    • \\r\\n
    • Business Manager (Global): Part of the engagement team and will have read access to dashboard/Analytics page only.
    • \\r\\n
    \\r\\n
  • \\r\\n
\\r\\n
\\r\\n

\\r\\n

The access rights detailed above involves transferring personal data in various jurisdictions (including jurisdictions outside the European Union) in which EY operates (EY office locations are listed at www.ey.com/ourlocations). An overview of EY network entities providing services to external clients is accessible here (See Section 1 (About EY) - “View a list of EY member firms and affiliates”). EY will process your personal data in the Tool in accordance with applicable law and professional regulations in your jurisdiction. Transfers of personal data within the EY network are governed by EY’s Binding Corporate Rules.

\\r\\n

We transfer or disclose the personal data we collect to third-party service providers (and their subsidiaries and affiliates) who are engaged by us to support our internal ancillary processes. For example, we engage service providers to provide, run and support our IT infrastructure (such as identity management, hosting, data analysis, back-up, security and cloud storage services) and for the storage and secure disposal of our hard copy files. It is our policy to only use third-party service providers that are bound to maintain appropriate levels of data protection, security and confidentiality, and that comply with any applicable legal requirements for transferring personal data outside the jurisdiction in which it was originally collected.

\\r\\n

To the extent that personal data has been rendered anonymous in such a way that you or your device are no longer reasonably identifiable, such information will be treated as non-personal data and the terms of this Privacy Notice will not apply.

\\r\\n

For data collected in the European Economic Area (EEA) or which relates to individuals in the EEA, EY requires an appropriate transfer mechanism as necessary to comply with applicable law. The transfer of personal data from the Tool to Microsoft Corporation is governed by the Privacy Shield certification of Microsoft and by an agreement between EY and the service provider that includes standard data protection clauses adopted by the European Commission.

\\r\\n\\r\\n \\r\\n
7.Data retention
\\r\\n

Our policy is to retain personal data only for as long as it is needed for the purposes described in the section “Why do we need your personal data”. Retention periods vary in different jurisdictions and are set in accordance with local regulatory and professional retention requirements.

\\r\\n

In order to meet our professional and legal requirements, to establish, exercise or defend our legal rights and for archiving and historical purposes, we need to retain information for significant periods of time.

\\r\\n

\\r\\n \\r\\n The policies and/or procedures for the retention of personal data in the Tool are:\\r\\n

    \\r\\n
  • \\r\\n Individual chatbot data is deleted at the end of the applicable engagement. Training Data is also deleted at this time or earlier where the corresponding question/answer is removed or updated in the system in a manner where the Training Data is no longer relevant.\\r\\n
  • \\r\\n
\\r\\n \\r\\n

\\r\\n

After the end of the data retention period, your personal data will be deleted.

\\r\\n\\r\\n \\r\\n
8.Security
\\r\\n

EY protects the confidentiality and security of information it obtains in the course of its business. Access to such information is limited, and policies and procedures are in place that are designed to safeguard the information from loss, misuse and improper disclosure. Additional information regarding our approach to data protection and information security is available in our Protecting your data brochure.

\\r\\n\\r\\n \\r\\n
9.Controlling your personal data
\\r\\n

EY will not transfer your personal data to third parties (other than any external parties referred to in section 6 above) unless we have your permission or are required by law to do so.

\\r\\n

You are legally entitled to request details of EY’s personal data about you.

\\r\\n

To confirm whether your personal data is processed in the Tool or to access your personal data in the Tool or (where applicable) to withdraw your consent, contact your usual EY representative or email your request to global.data.protection@ey.com.

\\r\\n\\r\\n \\r\\n
10.Object, rectification, erasure, restriction of processing or data portability
\\r\\n

You can confirm your personal data is accurate and current. You can object to the processing of your personal data or request rectification, erasure, restriction of processing or a readily portable copy of your personal data by contacting your usual EY representative or by sending an e-mail to global.data.protection@ey.com.

\\r\\n\\r\\n \\r\\n
11.Complaints
\\r\\n

If you are concerned about an alleged breach of privacy law or any other regulation, contact EY’s Global Privacy Leader, Office of the General Counsel, 6 More London Place, London, SE1 2DA, United Kingdom or via email at global.data.protection@ey.com or via your usual EY representative. An EY Privacy Leader will investigate your complaint and provide information about how it will be handled and resolved.

\\r\\n

If you are not satisfied with how EY resolved your complaint, you have the right to complain to your country’s data protection authority. You can also refer the matter to a court of competent jurisdiction.

\\r\\n

Certain EY member firms in countries outside the European Union (EU) have appointed a representative in the EU to act on their behalf if, and when, they undertake data processing activities to which the EU General Data Protection Regulation (GDPR) applies. Further information and the contact details of these representatives are available here.

\\r\\n\\r\\n \\r\\n
12.Contact us
\\r\\n

If you have additional questions or concerns, contact your usual EY representative or email global.data.protection@ey.com.

\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","export default \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

LOGGED OUT

\\r\\n

You are successfully logged out.

\\r\\n LOG IN\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","export default \"
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{alert.message}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","export default \"
\\r\\n
\\r\\n

WARNING

\\r\\n
\\r\\n Are you sure you want to delete Bot Registration for Bot - {{data.data.displayName}} ?\\r\\n
\\r\\n
\\r\\n Are you sure you want to delete user role mapping for {{data.data.username}} - {{data.data.role}}?\\r\\n
\\r\\n
\\r\\n Are you sure you want to delete this file?\\r\\n
\\r\\n
\\r\\n Are you sure you want to delete User - {{data.data.userName}}?

\\r\\n Please note : All roles assigned to this user will also be deleted.\\r\\n
\\r\\n
\\r\\n User was already deleted and is currently Inactive.\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Are you sure you want to leave selected Chat?\\r\\n
\\r\\n
\\r\\n Your access token has been expired and you will need to log in in order to view this page info.

\\r\\n Please note : All your active chats will be lost.\\r\\n
\\r\\n
\\r\\n Your connection has been closed. Please log in to connect again.\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","export default \"
\\r\\n
\\r\\n

Broadcast

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Broadcast Name is required\\r\\n The field Broadcast Name must not contain any special characters\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n The field Description must not contain any special characters\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n QnA\\r\\n Key is required \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{recipient}}\\r\\n cancel\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{recipient}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Recipients will include the list of users who have accessed chatbot at this point in time. Any new users who access the chatbot in the future will not be considered. If you don't see a recipient, it's because the user hasn't yet used the chatbot.\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","export default \"
\\r\\n
\\r\\n

Proactive Notification

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","export default \"
\\r\\n
\\r\\n

Broadcast

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
{{modalTitle}}
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\"","export default \"
\\r\\n
\\r\\n

Broadcast

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{broadcastBotInfo.displayName}}
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{broadcastData.name}}
\\r\\n

{{broadcastData.description}}.

\\r\\n
\\r\\n
\\r\\n
    \\r\\n
  • Status
  • \\r\\n
  • \\r\\n \\r\\n
    {{broadcastData.status}}
    \\r\\n
    {{broadcastData.status}}
  • \\r\\n
\\r\\n
    \\r\\n
  • Trigger Mode
  • \\r\\n
  • {{broadcastData.triggerMode}}
  • \\r\\n
\\r\\n \\r\\n
    \\r\\n
  • QnA Key
  • \\r\\n
  • {{broadcastData.qnaQuestion}}
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Recipients
\\r\\n
\\r\\n
\\r\\n
    \\r\\n
  • {{rec}}
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{modalHeader}}
\\r\\n \\r\\n
\\r\\n
\\r\\n {{modalBody}}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","export default \"
\\r\\n
\\r\\n

File Upload

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","export default \"\"","export default \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { HomeComponent } from './components/shared/home/home.component';\r\nimport { BotlookupComponent } from './components/administration/botlookup/botlookup.component';\r\nimport { BotregisterComponent } from './components/administration/botregister/botregister.component';\r\nimport { DashboardmenuComponent } from './components/dashboard/dashboardmenu/dashboardmenu.component';\r\nimport { BotdashboardComponent } from './components/dashboard/botdashboard/botdashboard.component';\r\nimport { AdministrationmenuComponent } from './components/administration/administrationmenu/administrationmenu.component';\r\nimport { UserrolemanagementComponent } from './components/administration/userrolemanagement/userrolemanagement.component';\r\nimport { ConversationsmenuComponent } from './components/conversation/conversationsmenu/conversationsmenu.component';\r\nimport { HilconversationsComponent } from './components/conversation/hilconversations/hilconversations.component';\r\nimport { AuthenticationComponent } from './components/shared/authentication/authentication.component';\r\nimport { AuthGuard } from './guards/auth/auth.guard';\r\nimport { SignoutComponent } from './components/shared/signout/signout.component';\r\nimport { ErrorComponent } from './components/shared/error/error.component';\r\nimport { UserregisterComponent } from './components/administration/userregister/userregister.component';\r\nimport { UserlookupComponent } from './components/administration/userlookup/userlookup.component';\r\nimport { UtilitymenuComponent } from './components/utility/utilitymenu/utilitymenu.component';\r\nimport { UtilityHomeComponent } from './components/utility/utilityhome/utilityhome.component';\r\nimport { FileUploadComponent } from './components/utility/fileupload/fileupload.component';\r\nimport { BotPushNotificationComponent } from './components/utility/botpushnotification/botpushnotification.component';\r\nimport { BroadcastComponent } from './components/utility/broadcast/broadcast.component';\r\nimport { AddbroadcastComponent } from './components/utility/addbroadcast/addbroadcast.component';\r\nimport { BroadcastactionsComponent } from './components/utility/broadcastactions/broadcastactions.component';\r\nimport { AgentsinfoComponent } from './components/administration/agentsinfo/agentsinfo.component';\r\n\r\n\r\nconst routes: Routes = [\r\n { path: '', component: AuthenticationComponent, canActivate: [AuthGuard]},\r\n { path: 'home', component: HomeComponent, data: { breadcrumb: 'HOME' }, canActivate: [AuthGuard] },\r\n {\r\n path: 'conversations', component: ConversationsmenuComponent, data: { breadcrumb: 'CONVERSATIONS' }, canActivate: [AuthGuard], canActivateChild: [AuthGuard],\r\n children: [\r\n { path: 'hilconversations', component: HilconversationsComponent, data: { breadcrumb: 'HIL CONVERSATIONS' }}\r\n ]\r\n },\r\n {\r\n path: 'dashboard', component: DashboardmenuComponent, data: { breadcrumb: 'DASHBOARD' }, canActivate: [AuthGuard], canActivateChild: [AuthGuard],\r\n children: [\r\n { path: 'botdashboard', component: BotdashboardComponent, data: { breadcrumb: 'BOT ANALYTICS' }}\r\n ]\r\n },\r\n {\r\n path: 'administration', component: AdministrationmenuComponent, data: { breadcrumb: 'ADMINISTRATION' }, canActivate: [AuthGuard], canActivateChild: [AuthGuard],\r\n children: [\r\n { path: 'botlookup', component: BotlookupComponent, data: { breadcrumb: 'BOT LOOKUP' } },\r\n { path: 'botregister', component: BotregisterComponent, data: { breadcrumb: 'BOT REGISTER' } },\r\n { path: 'botregisteredit', component: BotregisterComponent, data: { breadcrumb: 'BOT REGISTER EDIT' } },\r\n { path: 'userrolemanagement', component: UserrolemanagementComponent, data: { breadcrumb: 'USER-ROLE MANAGEMENT' } },\r\n { path: 'userregister', component: UserregisterComponent, data: { breadcrumb: 'USER REGISTER' } },\r\n { path: 'userregisteredit', component: UserregisterComponent, data: { breadcrumb: 'USER REGISTER EDIT' } },\r\n { path: 'userlookup', component: UserlookupComponent, data: { breadcrumb: 'USER LOOKUP' } },\r\n { path: 'agentsinfo', component: AgentsinfoComponent, data: { breadcrumb: 'AGENT History' }},\r\n \r\n ]\r\n },\r\n {\r\n path: 'utility', component: UtilitymenuComponent, data: { breadcrumb: 'UTILITY' }, canActivate: [AuthGuard], canActivateChild: [AuthGuard],\r\n children: [\r\n { path: 'utilityhome', component: UtilityHomeComponent, data: { breadcrumb: 'UTILITY HOME' } },\r\n { path: 'fileupload', component: FileUploadComponent, data: { breadcrumb: 'FILE UPLOAD' } },\r\n { path: 'botpushnotification', component: BotPushNotificationComponent, data: { breadcrumb: 'PROACTIVE NOTIFICATION' } },\r\n { path: 'broadcast', component: BroadcastComponent, data: { breadcrumb: 'BROADCAST' } },\r\n { path: 'addbroadcast', component: AddbroadcastComponent, data: { breadcrumb: 'ADD BROADCAST' } },\r\n { path: 'broadcastactions', component: BroadcastactionsComponent, data: { breadcrumb: 'BROADCAST ACTIONS' } },\r\n \r\n ]\r\n },\r\n { path: 'signout', component: SignoutComponent},\r\n { path: 'error', component: ErrorComponent},\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutingModule { }\r\n","export default \"body {\\n overflow: hidden;\\n}\\n\\n#content {\\n max-height: calc(100% - 110px);\\n overflow-y: auto;\\n padding: 0px 0px !important;\\n margin-top: 76px !important;\\n margin-bottom: 33px;\\n}\\n\\nhtml, body {\\n height: 100%;\\n width: 100%;\\n margin: 0;\\n padding: 0;\\n}\\n\\nheader {\\n width: 100%;\\n height: 76px;\\n position: fixed;\\n top: 0;\\n z-index: 999999;\\n}\\n\\nfooter {\\n width: 100%;\\n height: 34px;\\n position: fixed;\\n bottom: 0;\\n z-index: 999999;\\n}\\n\\n.mat-accordion {\\n display: grid;\\n margin: auto;\\n margin-top: 2rem;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvQzpcXFVzZXJzXFxLTjYyNFFYXFxzb3VyY2VcXEdpdFxcY3RwLWNiYWFzLWNsaWVudC1wb3J0YWxcXENCYWFTLkhJTC5DbGllbnRQb3J0YWwuV2ViXFxDbGllbnRBcHAvc3JjXFxhcHBcXGFwcC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvYXBwLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZ0JBQUE7QUNDRjs7QURFQTtFQUNFLDhCQUFBO0VBQ0EsZ0JBQUE7RUFDQSwyQkFBQTtFQUNBLDJCQUFBO0VBQ0EsbUJBQUE7QUNDRjs7QURHQTtFQUNFLFlBQUE7RUFDQSxXQUFBO0VBQ0EsU0FBQTtFQUNBLFVBQUE7QUNBRjs7QURHQTtFQUNFLFdBQUE7RUFDQSxZQUFBO0VBQ0EsZUFBQTtFQUNBLE1BQUE7RUFDQSxlQUFBO0FDQUY7O0FER0E7RUFDRSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGVBQUE7RUFDQSxTQUFBO0VBQ0EsZUFBQTtBQ0FGOztBREdBO0VBQ0ksYUFBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtBQ0FKIiwiZmlsZSI6InNyYy9hcHAvYXBwLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiYm9keSB7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxufVxyXG5cclxuI2NvbnRlbnQge1xyXG4gIG1heC1oZWlnaHQ6IGNhbGMoMTAwJSAtIDExMHB4KTtcclxuICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gIHBhZGRpbmc6IDBweCAwcHggIWltcG9ydGFudDtcclxuICBtYXJnaW4tdG9wOiA3NnB4ICFpbXBvcnRhbnQ7XHJcbiAgbWFyZ2luLWJvdHRvbTogMzNweDtcclxufVxyXG5cclxuXHJcbmh0bWwsIGJvZHkge1xyXG4gIGhlaWdodDogMTAwJTtcclxuICB3aWR0aDogMTAwJTtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMDtcclxufVxyXG5cclxuaGVhZGVyIHtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDc2cHg7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIHRvcDogMDtcclxuICB6LWluZGV4Ojk5OTk5OTtcclxufVxyXG5cclxuZm9vdGVyIHtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDM0cHg7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIGJvdHRvbTogMDtcclxuICB6LWluZGV4OiA5OTk5OTk7XHJcbn1cclxuXHJcbi5tYXQtYWNjb3JkaW9ue1xyXG4gICAgZGlzcGxheTpncmlkO1xyXG4gICAgbWFyZ2luOmF1dG87XHJcbiAgICBtYXJnaW4tdG9wOjJyZW07XHJcbn1cclxuIiwiYm9keSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbiNjb250ZW50IHtcbiAgbWF4LWhlaWdodDogY2FsYygxMDAlIC0gMTEwcHgpO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBwYWRkaW5nOiAwcHggMHB4ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi10b3A6IDc2cHggIWltcG9ydGFudDtcbiAgbWFyZ2luLWJvdHRvbTogMzNweDtcbn1cblxuaHRtbCwgYm9keSB7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuaGVhZGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNzZweDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHotaW5kZXg6IDk5OTk5OTtcbn1cblxuZm9vdGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMzRweDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBib3R0b206IDA7XG4gIHotaW5kZXg6IDk5OTk5OTtcbn1cblxuLm1hdC1hY2NvcmRpb24ge1xuICBkaXNwbGF5OiBncmlkO1xuICBtYXJnaW46IGF1dG87XG4gIG1hcmdpbi10b3A6IDJyZW07XG59Il19 */\"","import { Component } from '@angular/core';\r\nimport { PushNotificationsService } from 'ng-push';\r\nimport { ElementRef } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss']\r\n})\r\nexport class AppComponent {\r\n title = 'ClientApp';\r\n\r\n constructor(private _pushNotifications: PushNotificationsService, private _elementRef: ElementRef) {\r\n\r\n if (!(\"Notification\" in window)) {\r\n alert(\"This browser does not support desktop notification\");\r\n }\r\n else if (this._pushNotifications.permission === \"granted\") {\r\n //var today = new Date();\r\n //var date = today.getDate() + '-' + (today.getMonth() + 1) + '-' + today.getFullYear();\r\n //var time = today.getHours() + \":\" + today.getMinutes();\r\n //var dateTime = time + ' | ' + date;\r\n\r\n //let options = {\r\n // body: \"Push notification(s) enabled\\r\\n\" + dateTime.toString(),\r\n // icon: \"assets/images/pushnotification-default.png\"\r\n //};\r\n \r\n //this._pushNotifications.create('Cbaas Client Portal', options).subscribe();\r\n }\r\n else if (this._pushNotifications.permission !== \"denied\") {\r\n this._pushNotifications.requestPermission();\r\n }\r\n }\r\n ngOnInit(): void {\r\n this._elementRef.nativeElement.removeAttribute(\"ng-version\");\r\n }\r\n}\r\n","import { BrowserModule } from \"@angular/platform-browser\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { AgGridModule } from \"ag-grid-angular\";\r\nimport { AppRoutingModule } from \"./app-routing.module\";\r\nimport { AppComponent } from \"./app.component\";\r\nimport { HeaderComponent } from \"./components/shared/header/header.component\";\r\nimport { FooterComponent } from \"./components/shared/footer/footer.component\";\r\nimport { HomeComponent } from \"./components/shared/home/home.component\";\r\nimport { DialogComponent } from \"./components/shared/dialog/dialog.component\";\r\nimport { NotificationComponent } from \"./components/shared/notification/notification.component\";\r\nimport { ToasterComponent } from \"./components/shared/toaster/toaster.component\";\r\nimport { BotregisterComponent } from \"./components/administration/botregister/botregister.component\";\r\nimport { BotlookupComponent } from \"./components/administration/botlookup/botlookup.component\";\r\nimport { BreadcrumbComponent } from \"./components/shared/breadcrumb/breadcrumb.component\";\r\nimport { DashboardmenuComponent } from \"./components/dashboard/dashboardmenu/dashboardmenu.component\";\r\nimport { BotdashboardComponent } from \"./components/dashboard/botdashboard/botdashboard.component\";\r\nimport { AdministrationmenuComponent } from \"./components/administration/administrationmenu/administrationmenu.component\";\r\nimport { UserrolemanagementComponent } from \"./components/administration/userrolemanagement/userrolemanagement.component\";\r\nimport { ConversationsmenuComponent } from \"./components/conversation/conversationsmenu/conversationsmenu.component\";\r\nimport { HilconversationsComponent } from \"./components/conversation/hilconversations/hilconversations.component\";\r\nimport { HttpClientModule, HTTP_INTERCEPTORS } from \"@angular/common/http\";\r\nimport { ConfigurationSettings } from \"./models/configuration.settings\";\r\nimport { AuthenticationInterceptor } from \"./interceptors/authentication/authentication.interceptor\";\r\nimport { ErrorInterceptor } from \"./interceptors/error/error.interceptor\";\r\nimport { ToastrModule } from \"ngx-toastr\";\r\nimport { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\r\nimport { NotifierModule, NotifierOptions } from \"angular-notifier\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { NameinitialsPipe } from \"./pipes/nameinitials/nameinitials.pipe\";\r\nimport { SignoutComponent } from \"./components/shared/signout/signout.component\";\r\nimport { MatDialogModule } from \"@angular/material/dialog\";\r\nimport { MatAutocompleteModule } from \"@angular/material/autocomplete\";\r\nimport {MatChipsModule} from '@angular/material/chips';\r\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\r\nimport { MatInputModule } from \"@angular/material\";\r\nimport {MatIconModule} from '@angular/material/icon';\r\nimport { MatSelectModule } from \"@angular/material/select\";\r\nimport { MatTableModule } from \"@angular/material/table\";\r\nimport { MatPaginatorModule } from \"@angular/material/paginator\";\r\nimport { MatRadioModule } from \"@angular/material/radio\";\r\nimport { MatDatepickerModule } from \"@angular/material/datepicker\";\r\nimport { MatNativeDateModule, MatRippleModule } from \"@angular/material/core\";\r\nimport { WarningPopupComponent } from \"./components/shared/warning-popup/warning-popup.component\";\r\nimport { BotHistoryComponent } from \"./components/shared/bot-history/bot-history.component\";\r\nimport { HandoffCommentComponent } from \"./components/shared/handoff-comment/handoff-comment.component\";\r\nimport { AuthenticationComponent } from \"./components/shared/authentication/authentication.component\";\r\nimport { ErrorComponent } from \"./components/shared/error/error.component\";\r\nimport { UserregisterComponent } from \"./components/administration/userregister/userregister.component\";\r\n/*import \"hammerjs\";*/\r\nimport { UserlookupComponent } from \"./components/administration/userlookup/userlookup.component\";\r\nimport { PrivacyStatementComponent } from \"./components/shared/privacy-statement/privacy-statement.component\";\r\nimport { PushNotificationsModule } from \"ng-push\";\r\nimport { AddNewAgentComponent } from \"./components/conversation/add-new-agent/add-new-agent.component\";\r\nimport { GroupChatParticipantsComponent } from \"./components/conversation/group-chat-participants/group-chat-participants.component\";\r\nimport { EnablehileditComponent } from \"./components/administration/enablehiledit/enablehiledit.component\";\r\nimport { UtilitymenuComponent } from \"./components/utility/utilitymenu/utilitymenu.component\";\r\nimport { UtilityHomeComponent } from \"./components/utility/utilityhome/utilityhome.component\";\r\nimport { FileUploadComponent } from \"./components/utility/fileupload/fileupload.component\";\r\nimport { BotPushNotificationComponent } from \"./components/utility/botpushnotification/botpushnotification.component\";\r\nimport { BroadcastComponent } from \"./components/utility/broadcast/broadcast.component\";\r\nimport { AddbroadcastComponent } from \"./components/utility/addbroadcast/addbroadcast.component\";\r\nimport { BroadcastactionsComponent } from './components/utility/broadcastactions/broadcastactions.component';\r\nimport { AgentsinfoComponent } from \"./components/administration/agentsinfo/agentsinfo.component\";\r\nimport { DatePipe } from \"@angular/common\";\r\nimport {MatExpansionModule} from \"@angular/material/expansion\";\r\nconst customNotifierOptions: NotifierOptions = {\r\n position: {\r\n horizontal: {\r\n position: \"left\",\r\n distance: 12,\r\n },\r\n vertical: {\r\n position: \"bottom\",\r\n distance: 12,\r\n gap: 10,\r\n },\r\n },\r\n theme: \"material\",\r\n behaviour: {\r\n autoHide: 5000,\r\n onClick: \"hide\",\r\n onMouseover: \"pauseAutoHide\",\r\n showDismissButton: true,\r\n stacking: 4,\r\n },\r\n animations: {\r\n enabled: true,\r\n show: {\r\n preset: \"slide\",\r\n speed: 300,\r\n easing: \"ease\",\r\n },\r\n hide: {\r\n preset: \"fade\",\r\n speed: 300,\r\n easing: \"ease\",\r\n offset: 50,\r\n },\r\n shift: {\r\n speed: 300,\r\n easing: \"ease\",\r\n },\r\n overlap: 150,\r\n },\r\n};\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n HeaderComponent,\r\n FooterComponent,\r\n HomeComponent,\r\n DialogComponent,\r\n NotificationComponent,\r\n ToasterComponent,\r\n BotregisterComponent,\r\n BotlookupComponent,\r\n BreadcrumbComponent,\r\n DashboardmenuComponent,\r\n BotdashboardComponent,\r\n AdministrationmenuComponent,\r\n UserrolemanagementComponent,\r\n ConversationsmenuComponent,\r\n HilconversationsComponent,\r\n NameinitialsPipe,\r\n SignoutComponent,\r\n WarningPopupComponent,\r\n BotHistoryComponent,\r\n HandoffCommentComponent,\r\n AuthenticationComponent,\r\n ErrorComponent,\r\n UserregisterComponent,\r\n UserlookupComponent,\r\n PrivacyStatementComponent,\r\n AddNewAgentComponent,\r\n GroupChatParticipantsComponent,\r\n EnablehileditComponent,\r\n UtilitymenuComponent,\r\n UtilityHomeComponent,\r\n FileUploadComponent,\r\n BotPushNotificationComponent,\r\n BroadcastComponent,\r\n AddbroadcastComponent,\r\n BroadcastactionsComponent,\r\n AgentsinfoComponent\r\n ],\r\n imports: [\r\n BrowserModule,\r\n AppRoutingModule,\r\n HttpClientModule,\r\n AgGridModule.withComponents(null),\r\n ToastrModule.forRoot(),\r\n BrowserAnimationsModule,\r\n NotifierModule.withConfig(customNotifierOptions),\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatDialogModule,\r\n MatAutocompleteModule,\r\n MatFormFieldModule,\r\n MatSelectModule, \r\n MatChipsModule,\r\n MatIconModule,\r\n MatTableModule,\r\n MatPaginatorModule,\r\n MatInputModule,\r\n MatNativeDateModule,\r\n MatRippleModule,\r\n MatRadioModule,\r\n MatDatepickerModule,\r\n PushNotificationsModule,\r\n MatExpansionModule,\r\n ],\r\n entryComponents: [\r\n WarningPopupComponent,\r\n HandoffCommentComponent,\r\n BotHistoryComponent,\r\n PrivacyStatementComponent,\r\n AddNewAgentComponent,\r\n GroupChatParticipantsComponent,\r\n EnablehileditComponent,\r\n ],\r\n providers: [\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: AuthenticationInterceptor,\r\n multi: true,\r\n },\r\n { provide: HTTP_INTERCEPTORS, useClass: ErrorInterceptor, multi: true },\r\n ConfigurationSettings,\r\n DatePipe\r\n ],\r\n bootstrap: [AppComponent],\r\n})\r\nexport class AppModule {}\r\n","export default \".row-fill-available-height {\\n /*height: -webkit-fill-available !important;*/\\n height: calc(-109px + 100vh);\\n overflow: auto;\\n}\\n\\n.menu-container {\\n min-height: 90%;\\n height: 90%;\\n}\\n\\n.menu-container .row {\\n min-height: 100%;\\n}\\n\\n.menu-container .row .col-menu {\\n display: -webkit-inline-box;\\n display: inline-flex;\\n max-width: 50px;\\n}\\n\\n.menu-container .row .col-menu .menu {\\n background: #333333;\\n display: inline-block;\\n white-space: nowrap;\\n width: 50px;\\n -webkit-transition: width 0.5s;\\n transition: width 0.5s;\\n}\\n\\n.menu-container .row .col-menu .menu .item {\\n height: 50px;\\n overflow: hidden;\\n color: #9c9da0;\\n cursor: pointer;\\n outline: 0;\\n}\\n\\n.menu-container .row .col-menu .menu .item:hover, .menu-container .row .col-menu .menu .item:focus, .menu-container .row .col-menu .menu .item.active {\\n background-color: #222;\\n color: #ffffff;\\n border-left: 3px solid #ffE600;\\n}\\n\\n.menu-container .row .col-menu .menu .item:hover .fas, .menu-container .row .col-menu .menu .item:focus .fas, .menu-container .row .col-menu .menu .item.active .fas {\\n color: #ffffff;\\n}\\n\\n.menu-container .row .col-menu .menu .item .fas {\\n margin: 15px;\\n width: 20px;\\n color: #9c9da0;\\n}\\n\\n.menu-container .row .col-menu .menu .item .fas:hover, .menu-container .row .col-menu .menu .item .fas:focus, .menu-container .row .col-menu .menu .item .fas.active {\\n color: #ffffff;\\n}\\n\\n.menu-container .col {\\n padding: 0 !important;\\n margin: 0 !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9hZG1pbmlzdHJhdGlvbi9hZG1pbmlzdHJhdGlvbm1lbnUvQzpcXFVzZXJzXFxLTjYyNFFYXFxzb3VyY2VcXEdpdFxcY3RwLWNiYWFzLWNsaWVudC1wb3J0YWxcXENCYWFTLkhJTC5DbGllbnRQb3J0YWwuV2ViXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGFkbWluaXN0cmF0aW9uXFxhZG1pbmlzdHJhdGlvbm1lbnVcXGFkbWluaXN0cmF0aW9ubWVudS5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50cy9hZG1pbmlzdHJhdGlvbi9hZG1pbmlzdHJhdGlvbm1lbnUvYWRtaW5pc3RyYXRpb25tZW51LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BO0VBQ0UsNkNBQUE7RUFDQSw0QkFBQTtFQUNBLGNBQUE7QUNMRjs7QURRQTtFQUNFLGVBQUE7RUFDQSxXQUFBO0FDTEY7O0FET0U7RUFDRSxnQkFBQTtBQ0xKOztBRE9JO0VBQ0UsMkJBQUE7RUFBQSxvQkFBQTtFQUNBLGVBQUE7QUNMTjs7QURPTTtFQUNFLG1CQXhCSTtFQXlCSixxQkFBQTtFQUNBLG1CQUFBO0VBQ0EsV0FBQTtFQUNBLDhCQUFBO0VBQUEsc0JBQUE7QUNMUjs7QURPUTtFQUNFLFlBQUE7RUFDQSxnQkFBQTtFQUNBLGNBL0JHO0VBZ0NILGVBQUE7RUFDQSxVQUFBO0FDTFY7O0FET1U7RUFDRSxzQkFBQTtFQUNBLGNBcENHO0VBcUNILDhCQUFBO0FDTFo7O0FET1k7RUFDRSxjQXhDQztBQ21DZjs7QURTVTtFQUNFLFlBQUE7RUFDQSxXQUFBO0VBQ0EsY0FoREM7QUN5Q2I7O0FEU1k7RUFDRSxjQWxEQztBQzJDZjs7QURlRTtFQUNFLHFCQUFBO0VBQ0Esb0JBQUE7QUNiSiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvYWRtaW5pc3RyYXRpb24vYWRtaW5pc3RyYXRpb25tZW51L2FkbWluaXN0cmF0aW9ubWVudS5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIiRiZ0RlZmF1bHQ6ICMzMzMzMzM7XHJcbiRiZ0hpZ2hsaWdodDogIzAwMDAwMDtcclxuJGNvbERlZmF1bHQ6ICM5YzlkYTA7XHJcbiRjb2xIaWdobGlnaHQ6ICNmZmZmZmY7XHJcbiRiZ0xlZnRCb3JkZXI6ICNmZkU2MDA7XHJcblxyXG4ucm93LWZpbGwtYXZhaWxhYmxlLWhlaWdodCB7XHJcbiAgLypoZWlnaHQ6IC13ZWJraXQtZmlsbC1hdmFpbGFibGUgIWltcG9ydGFudDsqL1xyXG4gIGhlaWdodDogY2FsYygtMTA5cHggKyAxMDB2aCk7XHJcbiAgb3ZlcmZsb3c6IGF1dG87XHJcbn1cclxuXHJcbi5tZW51LWNvbnRhaW5lciB7XHJcbiAgbWluLWhlaWdodDogOTAlO1xyXG4gIGhlaWdodDogOTAlO1xyXG5cclxuICAucm93IHtcclxuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XHJcblxyXG4gICAgLmNvbC1tZW51IHtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgICAgIG1heC13aWR0aDogNTBweDtcclxuXHJcbiAgICAgIC5tZW51IHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAkYmdEZWZhdWx0O1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgICAgIHdpZHRoOiA1MHB4O1xyXG4gICAgICAgIHRyYW5zaXRpb246IHdpZHRoIC41cztcclxuXHJcbiAgICAgICAgLml0ZW0ge1xyXG4gICAgICAgICAgaGVpZ2h0OiA1MHB4O1xyXG4gICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICAgIGNvbG9yOiAkY29sRGVmYXVsdDtcclxuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICAgIG91dGxpbmU6IDA7XHJcblxyXG4gICAgICAgICAgJjpob3ZlciwgJjpmb2N1cywgJi5hY3RpdmUge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyO1xyXG4gICAgICAgICAgICBjb2xvcjogJGNvbEhpZ2hsaWdodDtcclxuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCAkYmdMZWZ0Qm9yZGVyO1xyXG5cclxuICAgICAgICAgICAgLmZhcyB7XHJcbiAgICAgICAgICAgICAgY29sb3I6ICRjb2xIaWdobGlnaHQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAuZmFzIHtcclxuICAgICAgICAgICAgbWFyZ2luOiAxNXB4O1xyXG4gICAgICAgICAgICB3aWR0aDogMjBweDtcclxuICAgICAgICAgICAgY29sb3I6ICRjb2xEZWZhdWx0O1xyXG5cclxuICAgICAgICAgICAgJjpob3ZlciwgJjpmb2N1cywgJi5hY3RpdmUge1xyXG4gICAgICAgICAgICAgIGNvbG9yOiAkY29sSGlnaGxpZ2h0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuY29sIHtcclxuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcclxuICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xyXG4gIH1cclxufVxyXG4iLCIucm93LWZpbGwtYXZhaWxhYmxlLWhlaWdodCB7XG4gIC8qaGVpZ2h0OiAtd2Via2l0LWZpbGwtYXZhaWxhYmxlICFpbXBvcnRhbnQ7Ki9cbiAgaGVpZ2h0OiBjYWxjKC0xMDlweCArIDEwMHZoKTtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi5tZW51LWNvbnRhaW5lciB7XG4gIG1pbi1oZWlnaHQ6IDkwJTtcbiAgaGVpZ2h0OiA5MCU7XG59XG4ubWVudS1jb250YWluZXIgLnJvdyB7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG59XG4ubWVudS1jb250YWluZXIgLnJvdyAuY29sLW1lbnUge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgbWF4LXdpZHRoOiA1MHB4O1xufVxuLm1lbnUtY29udGFpbmVyIC5yb3cgLmNvbC1tZW51IC5tZW51IHtcbiAgYmFja2dyb3VuZDogIzMzMzMzMztcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3aWR0aDogNTBweDtcbiAgdHJhbnNpdGlvbjogd2lkdGggMC41cztcbn1cbi5tZW51LWNvbnRhaW5lciAucm93IC5jb2wtbWVudSAubWVudSAuaXRlbSB7XG4gIGhlaWdodDogNTBweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY29sb3I6ICM5YzlkYTA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3V0bGluZTogMDtcbn1cbi5tZW51LWNvbnRhaW5lciAucm93IC5jb2wtbWVudSAubWVudSAuaXRlbTpob3ZlciwgLm1lbnUtY29udGFpbmVyIC5yb3cgLmNvbC1tZW51IC5tZW51IC5pdGVtOmZvY3VzLCAubWVudS1jb250YWluZXIgLnJvdyAuY29sLW1lbnUgLm1lbnUgLml0ZW0uYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIyMjtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGJvcmRlci1sZWZ0OiAzcHggc29saWQgI2ZmRTYwMDtcbn1cbi5tZW51LWNvbnRhaW5lciAucm93IC5jb2wtbWVudSAubWVudSAuaXRlbTpob3ZlciAuZmFzLCAubWVudS1jb250YWluZXIgLnJvdyAuY29sLW1lbnUgLm1lbnUgLml0ZW06Zm9jdXMgLmZhcywgLm1lbnUtY29udGFpbmVyIC5yb3cgLmNvbC1tZW51IC5tZW51IC5pdGVtLmFjdGl2ZSAuZmFzIHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4ubWVudS1jb250YWluZXIgLnJvdyAuY29sLW1lbnUgLm1lbnUgLml0ZW0gLmZhcyB7XG4gIG1hcmdpbjogMTVweDtcbiAgd2lkdGg6IDIwcHg7XG4gIGNvbG9yOiAjOWM5ZGEwO1xufVxuLm1lbnUtY29udGFpbmVyIC5yb3cgLmNvbC1tZW51IC5tZW51IC5pdGVtIC5mYXM6aG92ZXIsIC5tZW51LWNvbnRhaW5lciAucm93IC5jb2wtbWVudSAubWVudSAuaXRlbSAuZmFzOmZvY3VzLCAubWVudS1jb250YWluZXIgLnJvdyAuY29sLW1lbnUgLm1lbnUgLml0ZW0gLmZhcy5hY3RpdmUge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi5tZW51LWNvbnRhaW5lciAuY29sIHtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbn0iXX0= */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-administrationmenu',\r\n templateUrl: './administrationmenu.component.html',\r\n styleUrls: ['./administrationmenu.component.scss']\r\n})\r\nexport class AdministrationmenuComponent implements OnInit {\r\n userRoles: string[] = [];\r\n canDoBotRegistration: boolean = false;\r\n canSeeAgentHistory :boolean =false;\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.userRoles = sessionStorage.getItem('userRoles') ? sessionStorage.getItem('userRoles').split(',') : [];\r\n let botRegistrationView = this.userRoles.find(ob => ob.toLowerCase() === 'superadmin' || ob.toLowerCase() === 'super admin');\r\n let agentHistoryView=this.userRoles.find(ob => ob.toLowerCase() === 'superadmin' || ob.toLowerCase() === 'super admin' || ob.toLowerCase() === 'chatbotadmin' || ob.toLowerCase() === 'chatbot admin'|| ob.toLowerCase() === 'businessmanager' || ob.toLowerCase() === 'business manager');\r\n \r\n if (botRegistrationView) {\r\n this.canDoBotRegistration = true; \r\n }\r\n if(agentHistoryView) { \r\n this.canSeeAgentHistory=true;\r\n }\r\n }\r\n\r\n}\r\n","export default \"h4 {\\n margin: 3rem 0rem 2rem;\\n}\\n\\n.nav-tabs .nav-item.show .nav-link, .nav-tabs .nav-link.active {\\n color: #212529;\\n background-color: #ffee56;\\n border-color: #ffee56;\\n}\\n\\n.nav-tabs .nav-link {\\n text-transform: uppercase;\\n font-size: 0.875rem;\\n}\\n\\n#btnSubmit {\\n margin-top: -90px !important;\\n margin-left: 246px !important;\\n padding: 5px 10px !important;\\n background-color: #ffee56 !important;\\n}\\n\\n.mat-form-field-appearance-fill .mat-form-field-flex {\\n border-radius: 4px 4px 0 0;\\n padding: 0 0 0 0.75em !important;\\n}\\n\\ntable, th, td {\\n border: 1px solid #e5d1d1;\\n border-collapse: collapse;\\n padding: 12px;\\n}\\n\\n/*************/\\n\\n.btn-warning {\\n color: #212529;\\n background-color: #ffee56;\\n border-color: #ffee56;\\n}\\n\\n.btn-warning:hover, .btn-warning:focus, .btn-warning.active {\\n background-color: #ffe500;\\n border-color: #ffe500;\\n}\\n\\n.bg-gold {\\n background: linear-gradient(110deg, #fdcd3b 60%, #ffed4b 60%);\\n}\\n\\n.closebutton {\\n cursor: pointer;\\n float: right;\\n}\\n\\n.msg-history {\\n overflow-y: auto;\\n}\\n\\n.msg-history .incoming-msg .incoming-msg-img {\\n display: inline-block;\\n width: 6%;\\n padding: 4px;\\n}\\n\\n.msg-history .incoming-msg .received-msg {\\n display: inline-block;\\n padding: 0 0 0 10px;\\n vertical-align: top;\\n width: 92%;\\n}\\n\\n.msg-history .incoming-msg .received-msg .received-withd-msg {\\n width: 57%;\\n}\\n\\n.msg-history .incoming-msg .received-msg .received-withd-msg p {\\n background: #fff9c7 none repeat scroll 0 0;\\n border-radius: 3px;\\n font-size: 12px;\\n margin: 0;\\n color: #000;\\n padding: 5px 10px 5px 12px;\\n width: 100%;\\n margin-left: 1rem;\\n word-wrap: break-word;\\n}\\n\\n.msg-history .outgoing-msg {\\n overflow: hidden;\\n margin-bottom: 0.5rem !important;\\n}\\n\\n.msg-history .outgoing-msg .outgoing-msg-img {\\n display: inline-block;\\n width: 4%;\\n padding: 4px;\\n}\\n\\n.msg-history .outgoing-msg .sent-msg {\\n float: right;\\n width: 46%;\\n}\\n\\n.msg-history .outgoing-msg .sent-msg p {\\n background: #ebebeb none repeat scroll 0 0;\\n border-radius: 3px;\\n color: #444444;\\n font-size: 12px;\\n margin: 0;\\n padding: 5px 10px 5px 12px;\\n width: 100%;\\n word-wrap: break-word;\\n}\\n\\n.msg-history img {\\n max-width: 100%;\\n}\\n\\n.msg-history .time-date {\\n color: #747474;\\n display: block;\\n font-size: 10px;\\n margin: 8px 0 0;\\n}\\n\\n.name-initials-circle {\\n background: #cecece;\\n padding: 4px;\\n margin: 6px;\\n border-radius: 10rem;\\n font-weight: 500;\\n padding-top: 5px;\\n}\\n\\n.notification-msg h4 {\\n width: 100%;\\n text-align: center;\\n border-bottom: 0.5px solid #999;\\n line-height: 0.1em;\\n margin: 10px 0 20px;\\n}\\n\\n.notification-msg h4 span {\\n background: white;\\n padding: 0 5px;\\n font-size: 0.6rem;\\n border-radius: 30rem;\\n color: #999;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9hZG1pbmlzdHJhdGlvbi9hZ2VudHNpbmZvL0M6XFxVc2Vyc1xcS042MjRRWFxcc291cmNlXFxHaXRcXGN0cC1jYmFhcy1jbGllbnQtcG9ydGFsXFxDQmFhUy5ISUwuQ2xpZW50UG9ydGFsLldlYlxcQ2xpZW50QXBwL3NyY1xcYXBwXFxjb21wb25lbnRzXFxhZG1pbmlzdHJhdGlvblxcYWdlbnRzaW5mb1xcYWdlbnRzaW5mby5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50cy9hZG1pbmlzdHJhdGlvbi9hZ2VudHNpbmZvL2FnZW50c2luZm8uY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxzQkFBQTtBQ0NGOztBRENBO0VBQ0UsY0FBQTtFQUNBLHlCQUFBO0VBQ0EscUJBQUE7QUNFRjs7QURBQTtFQUNBLHlCQUFBO0VBQ0EsbUJBQUE7QUNHQTs7QUREQTtFQUNBLDRCQUFBO0VBQ0EsNkJBQUE7RUFDQSw0QkFBQTtFQUNBLG9DQUFBO0FDSUE7O0FERkE7RUFDQSwwQkFBQTtFQUNBLGdDQUFBO0FDS0E7O0FESEE7RUFDRSx5QkFBQTtFQUNBLHlCQUFBO0VBQ0EsYUFBQTtBQ01GOztBREpBLGNBQUE7O0FBS0E7RUFDRSxjQUFBO0VBQ0EseUJBTlM7RUFPVCxxQkFQUztBQ1VYOztBRERFO0VBQ0UseUJBVFc7RUFVWCxxQkFWVztBQ2FmOztBRENBO0VBSUUsNkRBQUE7QUNFRjs7QURDQTtFQUNFLGVBQUE7RUFDQSxZQUFBO0FDRUY7O0FEQ0E7RUFDRSxnQkFBQTtBQ0VGOztBREVJO0VBQ0UscUJBQUE7RUFDQSxTQUFBO0VBQ0EsWUFBQTtBQ0FOOztBREdJO0VBQ0UscUJBQUE7RUFDQSxtQkFBQTtFQUNBLG1CQUFBO0VBQ0EsVUFBQTtBQ0ROOztBREdNO0VBQ0UsVUFBQTtBQ0RSOztBREdRO0VBQ0UsMENBQUE7RUFDQSxrQkFBQTtFQUNBLGVBQUE7RUFDQSxTQUFBO0VBQ0EsV0FBQTtFQUNBLDBCQUFBO0VBQ0EsV0FBQTtFQUNBLGlCQUFBO0VBQ0EscUJBQUE7QUNEVjs7QURPRTtFQUNFLGdCQUFBO0VBQ0EsZ0NBQUE7QUNMSjs7QURPSTtFQUNFLHFCQUFBO0VBQ0EsU0FBQTtFQUNBLFlBQUE7QUNMTjs7QURRSTtFQUNFLFlBQUE7RUFDQSxVQUFBO0FDTk47O0FEUU07RUFDRSwwQ0FBQTtFQUNBLGtCQUFBO0VBQ0EsY0FBQTtFQUNBLGVBQUE7RUFDQSxTQUFBO0VBQ0EsMEJBQUE7RUFDQSxXQUFBO0VBQ0EscUJBQUE7QUNOUjs7QURXRTtFQUNFLGVBQUE7QUNUSjs7QURZRTtFQUNFLGNBQUE7RUFDQSxjQUFBO0VBQ0EsZUFBQTtFQUNBLGVBQUE7QUNWSjs7QURlQTtFQUNFLG1CQUFBO0VBQ0EsWUFBQTtFQUNBLFdBQUE7RUFDQSxvQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7QUNaRjs7QURlQTtFQUNFLFdBQUE7RUFDQSxrQkFBQTtFQUNBLCtCQUFBO0VBQ0Esa0JBQUE7RUFDQSxtQkFBQTtBQ1pGOztBRGdCQTtFQUNFLGlCQUFBO0VBQ0EsY0FBQTtFQUNBLGlCQUFBO0VBQ0Esb0JBQUE7RUFDQSxXQUFBO0FDYkYiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2FkbWluaXN0cmF0aW9uL2FnZW50c2luZm8vYWdlbnRzaW5mby5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbImg0IHtcclxuICBtYXJnaW46IDNyZW0gMHJlbSAycmVtO1xyXG59XHJcbi5uYXYtdGFicyAubmF2LWl0ZW0uc2hvdyAubmF2LWxpbmssIC5uYXYtdGFicyAubmF2LWxpbmsuYWN0aXZlIHtcclxuICBjb2xvcjogIzIxMjUyOTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlZTU2O1xyXG4gIGJvcmRlci1jb2xvcjogI2ZmZWU1NjtcclxufVxyXG4ubmF2LXRhYnMgLm5hdi1saW5rIHtcclxudGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuZm9udC1zaXplOiAuODc1cmVtO1xyXG59XHJcbiNidG5TdWJtaXR7XHJcbm1hcmdpbi10b3A6IC05MHB4ICFpbXBvcnRhbnQ7XHJcbm1hcmdpbi1sZWZ0OiAyNDZweCAhaW1wb3J0YW50O1xyXG5wYWRkaW5nOiA1cHggMTBweCAhaW1wb3J0YW50O1xyXG5iYWNrZ3JvdW5kLWNvbG9yOiAjZmZlZTU2ICFpbXBvcnRhbnQ7XHJcbn1cclxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtZmxleCB7XHJcbmJvcmRlci1yYWRpdXM6IDRweCA0cHggMCAwO1xyXG5wYWRkaW5nOiAwIDAgMCAwLjc1ZW0gIWltcG9ydGFudDtcclxufVxyXG50YWJsZSwgdGgsIHRkIHtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjZTVkMWQxO1xyXG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XHJcbiAgcGFkZGluZzogMTJweDtcclxufVxyXG4vKioqKioqKioqKioqKi9cclxuJGV5WWVsbG93OiAjZmZlZTU2O1xyXG4kZXlEYXJrWWVsbG93OiAjZmZlNTAwO1xyXG4kZXlMaWdodFllbGxvdzogI2ZmZjljNztcclxuXHJcbi5idG4td2FybmluZyB7XHJcbiAgY29sb3I6ICMyMTI1Mjk7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGV5WWVsbG93O1xyXG4gIGJvcmRlci1jb2xvcjogJGV5WWVsbG93O1xyXG5cclxuICAmOmhvdmVyLCAmOmZvY3VzLCAmLmFjdGl2ZSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZXlEYXJrWWVsbG93O1xyXG4gICAgYm9yZGVyLWNvbG9yOiAkZXlEYXJrWWVsbG93O1xyXG4gIH1cclxufVxyXG5cclxuLmJnLWdvbGQge1xyXG4gIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KDExMGRlZywgI2ZkY2QzYiA2MCUsICNmZmVkNGIgNjAlKTtcclxuICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQoMTEwZGVnLCAjZmRjZDNiIDYwJSwgI2ZmZWQ0YiA2MCUpO1xyXG4gIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KDExMGRlZywgI2ZkY2QzYiA2MCUsICNmZmVkNGIgNjAlKTtcclxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTEwZGVnLCAjZmRjZDNiIDYwJSwgI2ZmZWQ0YiA2MCUpO1xyXG59XHJcblxyXG4uY2xvc2VidXR0b24ge1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBmbG9hdDogcmlnaHQ7XHJcbn1cclxuXHJcbi5tc2ctaGlzdG9yeSB7XHJcbiAgb3ZlcmZsb3cteTogYXV0bztcclxuXHJcblxyXG4gIC5pbmNvbWluZy1tc2cge1xyXG4gICAgLmluY29taW5nLW1zZy1pbWcge1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgIHdpZHRoOiA2JTtcclxuICAgICAgcGFkZGluZzogNHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5yZWNlaXZlZC1tc2cge1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgIHBhZGRpbmc6IDAgMCAwIDEwcHg7XHJcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcbiAgICAgIHdpZHRoOiA5MiU7XHJcblxyXG4gICAgICAucmVjZWl2ZWQtd2l0aGQtbXNnIHtcclxuICAgICAgICB3aWR0aDogNTclO1xyXG5cclxuICAgICAgICBwIHtcclxuICAgICAgICAgIGJhY2tncm91bmQ6ICRleUxpZ2h0WWVsbG93IG5vbmUgcmVwZWF0IHNjcm9sbCAwIDA7XHJcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XHJcbiAgICAgICAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICBjb2xvcjogIzAwMDtcclxuICAgICAgICAgIHBhZGRpbmc6IDVweCAxMHB4IDVweCAxMnB4O1xyXG4gICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMXJlbTtcclxuICAgICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5vdXRnb2luZy1tc2cge1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIG1hcmdpbi1ib3R0b206IC41cmVtICFpbXBvcnRhbnQ7XHJcblxyXG4gICAgLm91dGdvaW5nLW1zZy1pbWcge1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgIHdpZHRoOiA0JTtcclxuICAgICAgcGFkZGluZzogNHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5zZW50LW1zZyB7XHJcbiAgICAgIGZsb2F0OiByaWdodDtcclxuICAgICAgd2lkdGg6IDQ2JTtcclxuXHJcbiAgICAgIHAge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICNlYmViZWIgbm9uZSByZXBlYXQgc2Nyb2xsIDAgMDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XHJcbiAgICAgICAgY29sb3I6ICM0NDQ0NDQ7XHJcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICBwYWRkaW5nOiA1cHggMTBweCA1cHggMTJweDtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGltZyB7XHJcbiAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG5cclxuICAudGltZS1kYXRlIHtcclxuICAgIGNvbG9yOiAjNzQ3NDc0O1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBmb250LXNpemU6IDEwcHg7XHJcbiAgICBtYXJnaW46IDhweCAwIDA7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLm5hbWUtaW5pdGlhbHMtY2lyY2xlIHtcclxuICBiYWNrZ3JvdW5kOiAjY2VjZWNlO1xyXG4gIHBhZGRpbmc6IDRweDtcclxuICBtYXJnaW46IDZweDtcclxuICBib3JkZXItcmFkaXVzOiAxMHJlbTtcclxuICBmb250LXdlaWdodDogNTAwO1xyXG4gIHBhZGRpbmctdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5ub3RpZmljYXRpb24tbXNnIGg0IHtcclxuICB3aWR0aDogMTAwJTtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgYm9yZGVyLWJvdHRvbTogMC41cHggc29saWQgIzk5OTtcclxuICBsaW5lLWhlaWdodDogMC4xZW07XHJcbiAgbWFyZ2luOiAxMHB4IDAgMjBweDtcclxufVxyXG5cclxuXHJcbi5ub3RpZmljYXRpb24tbXNnIGg0IHNwYW4ge1xyXG4gIGJhY2tncm91bmQ6IHdoaXRlO1xyXG4gIHBhZGRpbmc6IDAgNXB4O1xyXG4gIGZvbnQtc2l6ZTogMC42MHJlbTtcclxuICBib3JkZXItcmFkaXVzOiAzMHJlbTtcclxuICBjb2xvcjogIzk5OTtcclxufVxyXG5cclxuXHJcbiIsImg0IHtcbiAgbWFyZ2luOiAzcmVtIDByZW0gMnJlbTtcbn1cblxuLm5hdi10YWJzIC5uYXYtaXRlbS5zaG93IC5uYXYtbGluaywgLm5hdi10YWJzIC5uYXYtbGluay5hY3RpdmUge1xuICBjb2xvcjogIzIxMjUyOTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZWU1NjtcbiAgYm9yZGVyLWNvbG9yOiAjZmZlZTU2O1xufVxuXG4ubmF2LXRhYnMgLm5hdi1saW5rIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbn1cblxuI2J0blN1Ym1pdCB7XG4gIG1hcmdpbi10b3A6IC05MHB4ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1sZWZ0OiAyNDZweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiA1cHggMTBweCAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlZTU2ICFpbXBvcnRhbnQ7XG59XG5cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwgLm1hdC1mb3JtLWZpZWxkLWZsZXgge1xuICBib3JkZXItcmFkaXVzOiA0cHggNHB4IDAgMDtcbiAgcGFkZGluZzogMCAwIDAgMC43NWVtICFpbXBvcnRhbnQ7XG59XG5cbnRhYmxlLCB0aCwgdGQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTVkMWQxO1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBwYWRkaW5nOiAxMnB4O1xufVxuXG4vKioqKioqKioqKioqKi9cbi5idG4td2FybmluZyB7XG4gIGNvbG9yOiAjMjEyNTI5O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlZTU2O1xuICBib3JkZXItY29sb3I6ICNmZmVlNTY7XG59XG4uYnRuLXdhcm5pbmc6aG92ZXIsIC5idG4td2FybmluZzpmb2N1cywgLmJ0bi13YXJuaW5nLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmU1MDA7XG4gIGJvcmRlci1jb2xvcjogI2ZmZTUwMDtcbn1cblxuLmJnLWdvbGQge1xuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgxMTBkZWcsICNmZGNkM2IgNjAlLCAjZmZlZDRiIDYwJSk7XG4gIGJhY2tncm91bmQ6IC1vLWxpbmVhci1ncmFkaWVudCgxMTBkZWcsICNmZGNkM2IgNjAlLCAjZmZlZDRiIDYwJSk7XG4gIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KDExMGRlZywgI2ZkY2QzYiA2MCUsICNmZmVkNGIgNjAlKTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDExMGRlZywgI2ZkY2QzYiA2MCUsICNmZmVkNGIgNjAlKTtcbn1cblxuLmNsb3NlYnV0dG9uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbi5tc2ctaGlzdG9yeSB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG4ubXNnLWhpc3RvcnkgLmluY29taW5nLW1zZyAuaW5jb21pbmctbXNnLWltZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDYlO1xuICBwYWRkaW5nOiA0cHg7XG59XG4ubXNnLWhpc3RvcnkgLmluY29taW5nLW1zZyAucmVjZWl2ZWQtbXNnIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwIDAgMCAxMHB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB3aWR0aDogOTIlO1xufVxuLm1zZy1oaXN0b3J5IC5pbmNvbWluZy1tc2cgLnJlY2VpdmVkLW1zZyAucmVjZWl2ZWQtd2l0aGQtbXNnIHtcbiAgd2lkdGg6IDU3JTtcbn1cbi5tc2ctaGlzdG9yeSAuaW5jb21pbmctbXNnIC5yZWNlaXZlZC1tc2cgLnJlY2VpdmVkLXdpdGhkLW1zZyBwIHtcbiAgYmFja2dyb3VuZDogI2ZmZjljNyBub25lIHJlcGVhdCBzY3JvbGwgMCAwO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbWFyZ2luOiAwO1xuICBjb2xvcjogIzAwMDtcbiAgcGFkZGluZzogNXB4IDEwcHggNXB4IDEycHg7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tbGVmdDogMXJlbTtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xufVxuLm1zZy1oaXN0b3J5IC5vdXRnb2luZy1tc2cge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW0gIWltcG9ydGFudDtcbn1cbi5tc2ctaGlzdG9yeSAub3V0Z29pbmctbXNnIC5vdXRnb2luZy1tc2ctaW1nIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogNCU7XG4gIHBhZGRpbmc6IDRweDtcbn1cbi5tc2ctaGlzdG9yeSAub3V0Z29pbmctbXNnIC5zZW50LW1zZyB7XG4gIGZsb2F0OiByaWdodDtcbiAgd2lkdGg6IDQ2JTtcbn1cbi5tc2ctaGlzdG9yeSAub3V0Z29pbmctbXNnIC5zZW50LW1zZyBwIHtcbiAgYmFja2dyb3VuZDogI2ViZWJlYiBub25lIHJlcGVhdCBzY3JvbGwgMCAwO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGNvbG9yOiAjNDQ0NDQ0O1xuICBmb250LXNpemU6IDEycHg7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogNXB4IDEwcHggNXB4IDEycHg7XG4gIHdpZHRoOiAxMDAlO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG59XG4ubXNnLWhpc3RvcnkgaW1nIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuLm1zZy1oaXN0b3J5IC50aW1lLWRhdGUge1xuICBjb2xvcjogIzc0NzQ3NDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgbWFyZ2luOiA4cHggMCAwO1xufVxuXG4ubmFtZS1pbml0aWFscy1jaXJjbGUge1xuICBiYWNrZ3JvdW5kOiAjY2VjZWNlO1xuICBwYWRkaW5nOiA0cHg7XG4gIG1hcmdpbjogNnB4O1xuICBib3JkZXItcmFkaXVzOiAxMHJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgcGFkZGluZy10b3A6IDVweDtcbn1cblxuLm5vdGlmaWNhdGlvbi1tc2cgaDQge1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXItYm90dG9tOiAwLjVweCBzb2xpZCAjOTk5O1xuICBsaW5lLWhlaWdodDogMC4xZW07XG4gIG1hcmdpbjogMTBweCAwIDIwcHg7XG59XG5cbi5ub3RpZmljYXRpb24tbXNnIGg0IHNwYW4ge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgcGFkZGluZzogMCA1cHg7XG4gIGZvbnQtc2l6ZTogMC42cmVtO1xuICBib3JkZXItcmFkaXVzOiAzMHJlbTtcbiAgY29sb3I6ICM5OTk7XG59Il19 */\"","import { Component, OnInit } from '@angular/core';\r\nimport { ToasterService } from 'src/app/services/shared/toaster/toaster.service';\r\nimport { UtilityService } from \"src/app/services/shared/utility/utility.service\";\r\nimport { BotRegistrationService } from \"src/app/services/core/bot-registration/bot-registration.service\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { IBroadcastBotInfo } from \"src/app/models/broadcast\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { AgentHistoryService } from 'src/app/services/core/agent-history/agent-history.service';\r\nimport { IActiveAgentDetails, IAgentChatInfo, IAgentHistoryDetails, IAgentInformation } from 'src/app/models/agenthistory';\r\nimport { DatePipe } from '@angular/common';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { UserService } from 'src/app/services/core/user/user.service';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { ExportService } from '../../../services/shared/export/export.service';\r\nimport { IAgentChatHistoryInfo } from 'src/app/models/chat-history';\r\n\r\n\r\n@Component({\r\n selector: 'app-agentsinfo',\r\n templateUrl: './agentsinfo.component.html',\r\n styleUrls: ['./agentsinfo.component.scss']\r\n})\r\nexport class AgentsinfoComponent implements OnInit {\r\n private _subscriptions = new Subscription();\r\n constructor(private botRegistrationService: BotRegistrationService, \r\n private toasterService: ToasterService,\r\n private utilityService: UtilityService,\r\n private agentHistoryService :AgentHistoryService,\r\n private datePipe: DatePipe, private dialogWarning: MatDialog, private userService: UserService,\r\n private exportService: ExportService) { }\r\n superAdmin: boolean; \r\n botConfigId: number;\r\n private userRoles: string[] = [];\r\n columnDefs: any[] = [];\r\n columnDefs_history: any[] = [];\r\n private route: ActivatedRoute;\r\n broadcastBotInfo: IBroadcastBotInfo;\r\n selectedBot = \"\";\r\n selectedOption: Number;\r\n rowDataActiveAgent = [];\r\n rowDataHistoryAgent = [];\r\n activeAgentList: IActiveAgentDetails[] = [];\r\n historyAgentList: IAgentHistoryDetails[] = [];\r\n private gridApi;\r\n private gridColumnApi;\r\n selectedDate: string;\r\n domLayout:string;\r\n paginationPageSize = 100;\r\n agentData;\r\n displayStyle = \"none\";\r\n agents = [];\r\n agentList = [];\r\n agentInformation: IAgentInformation[] = []; \r\n myGroup = new FormGroup({\r\n Agent: new FormControl(),\r\n selectedEndDate: new FormControl(),\r\n selectedStartDate: new FormControl()\r\n // Make sure this control is defined\r\n });\r\n agentControl = new FormControl();\r\n selectedAgents: string[];\r\n selectedStartDate: string;\r\n selectedEndDate: string;\r\n agentChatInfoJson: IAgentChatInfo[] = [];\r\n showExportButton: boolean;\r\n previousSelectedAgents: string[] = [];\r\n\r\n \r\n\r\n onBotChange(event) {\r\n if (event.target.value != -1) {\r\n this.botConfigId = event.target.value;\r\n this.selectedBot = event.target.options[event.target.options.selectedIndex].text;\r\n this.createRowData();\r\n this.setBotInfoSession();\r\n this.getAllUsers(this.botConfigId);\r\n this.selectedStartDate = \"\";\r\n this.selectedEndDate = \"\";\r\n\r\n }\r\n }\r\n \r\n ShowAgentHistory() {\r\n if (this.selectedOption != -1) {\r\n this.selectedStartDate = this.datePipe.transform(this.selectedStartDate, 'yyyy-MM-dd');\r\n this.selectedEndDate = this.datePipe.transform(this.selectedEndDate, 'yyyy-MM-dd');\r\n if (this.selectedStartDate > this.selectedEndDate) {\r\n this.toasterService.error('Start date must be before end date.');\r\n return false;\r\n }\r\n if (this.selectedAgents === undefined && this.selectedStartDate == null || this.selectedEndDate == null) {\r\n this.toasterService.error(\"Please Select all Mandatory Dates and Agents\");\r\n }\r\n else if (this.selectedStartDate == null || this.selectedEndDate == null && this.selectedAgents.length < 0) {\r\n this.toasterService.error(\"Please Select all Mandatory Dates and Agents\");\r\n }\r\n else if (this.selectedAgents === undefined || this.selectedAgents.length === 0) {\r\n this.toasterService.error(\"Please Select Agent\");\r\n }\r\n else if (this.selectedStartDate && this.selectedEndDate && this.selectedAgents.length > 0 ) {\r\n this.getDataForAgentHistory(this.selectedOption, this.selectedStartDate, this.selectedEndDate, this.selectedAgents);\r\n }\r\n \r\n }\r\n else {\r\n this.toasterService.error(\r\n \"Please choose Bot\"\r\n );\r\n } \r\n }\r\n \r\n onGridReady(params) {\r\n this.gridApi = params.api;\r\n this.gridApi.sizeColumnsToFit();\r\n this.gridColumnApi = params.columnApi;\r\n this.gridApi.setDomLayout(\"autoHeight\");\r\n this.gridApi.paginationSetPageSize(15);\r\n }\r\n setBotInfoSession() {\r\n let botInfo = {\r\n botConfigId: this.botConfigId,\r\n displayName: this.selectedBot,\r\n };\r\n let botData = JSON.stringify(botInfo);\r\n sessionStorage.removeItem(\"AgentHistory\");\r\n sessionStorage.setItem(\"AgentHistory\", botData);\r\n }\r\n\r\n setBotList(botlistResult) {\r\n let listOfBots = [];\r\n listOfBots.push({ botConfigId: -1, displayName: \"-Select Bot-\" });\r\n if (this.superAdmin) { \r\n botlistResult.forEach((item) => {\r\n listOfBots.push({\r\n botConfigId: item.botConfigId,\r\n displayName: item.displayName,\r\n });\r\n });\r\n } else {\r\n let botIds = this.utilityService.GetFeaturewiseBotList(sessionStorage.getItem('userBotRoles'),\"AgentHistory\");\r\n botlistResult.forEach((item) => {\r\n botIds.forEach((botConfigId) => {\r\n if (botConfigId == item.botConfigId) {\r\n listOfBots.push({\r\n botConfigId: item.botConfigId,\r\n displayName: item.displayName\r\n });\r\n }\r\n });\r\n });\r\n }\r\n return listOfBots;\r\n }\r\n setAgentList(agentlistResult) {\r\n let listOfAgents = [];\r\n const seenUserIds = new Set();\r\n agentlistResult.forEach((item) => {\r\n if (!seenUserIds.has(item.userId)) {\r\n listOfAgents.push({\r\n emailID: item.username,\r\n firstName: item.firstname,\r\n lastName: item.lastname,\r\n UserId: item.userId\r\n });\r\n seenUserIds.add(item.userId);\r\n }\r\n });\r\n return listOfAgents;\r\n }\r\n onAgentSelectionChange() {\r\n const allValue = 'all';\r\n let currentSelectedAgents = this.myGroup.get('Agent').value as string[];\r\n let clickedOption;\r\n\r\n if (currentSelectedAgents.length > this.previousSelectedAgents.length) {\r\n // If the current selection has more items, find the added item\r\n clickedOption = currentSelectedAgents.find(agent => !this.previousSelectedAgents.includes(agent));\r\n } else if (currentSelectedAgents.length < this.previousSelectedAgents.length) {\r\n // If the current selection has fewer items, find the removed item\r\n clickedOption = this.previousSelectedAgents.find(agent => !currentSelectedAgents.includes(agent));\r\n }\r\n\r\n if (clickedOption === allValue) {\r\n // If \"ALL\" was clicked\r\n if (currentSelectedAgents.includes(allValue)) {\r\n // If \"ALL\" is now selected, select all agents\r\n this.selectedAgents = this.agents.map(agent => agent.UserId).concat(allValue);\r\n } else {\r\n // If \"ALL\" is now deselected, deselect all agents\r\n this.selectedAgents = [];\r\n }\r\n } else {\r\n // If an individual agent was clicked\r\n if (currentSelectedAgents.includes(allValue)) {\r\n // If \"ALL\" is still selected, remove it since an individual agent was clicked\r\n this.selectedAgents = currentSelectedAgents.filter(agent => agent !== allValue);\r\n } else {\r\n // If \"ALL\" is not selected, use the current selection\r\n this.selectedAgents = currentSelectedAgents;\r\n }\r\n }\r\n\r\n // Update the form control to reflect the current state, without emitting the change event\r\n this.myGroup.get('Agent').setValue(this.selectedAgents, { emitEvent: false });\r\n\r\n // Update the previous selection state\r\n this.previousSelectedAgents = [...this.selectedAgents];\r\n\r\n }\r\n getAllUsers(botConfigId: number) {\r\n this._subscriptions.add(\r\n this.userService.getAllUserRoles(botConfigId)\r\n .subscribe(\r\n res => {\r\n sessionStorage.setItem(\"lastActiveTab\", \"AgentChatInformation\");\r\n\r\n this.agents = this.setAgentList(res);\r\n if (this.agents.length > 0) {\r\n this.agentInformation = this.agents[0];\r\n }\r\n },\r\n (error) => {\r\n this.toasterService.error(\"Unable to retrieve User-Roles\");\r\n }\r\n )\r\n )\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.selectedOption = -1;\r\n //Taking accessed bot list\r\n this.botRegistrationService.getRegisteredBots().subscribe(\r\n (res) => {\r\n sessionStorage.setItem(\"lastActiveTab\", \"AgentHistory\");\r\n this.botList = this.setBotList(res);\r\n if (this.botList.length > 0) {\r\n this.botConfigId = this.botList[0].botConfigId; \r\n }\r\n },\r\n (error) => {\r\n this.toasterService.error(\r\n \"Unable to fetch BOT(s) details at the moment\"\r\n );\r\n }\r\n );\r\n\r\n this.userRoles = sessionStorage.getItem(\"userRoles\")\r\n ? sessionStorage.getItem(\"userRoles\").split(\",\")\r\n : [];\r\n let superAdminUser = this.userRoles.find(\r\n (ob) =>\r\n ob.toLowerCase() === \"superadmin\" || ob.toLowerCase() === \"super admin\"\r\n );\r\n if (superAdminUser) {\r\n this.superAdmin = true;\r\n }\r\n }\r\n botList: any;\r\n createColumnDefs() {\r\n const customComparator = (valueA, valueB) => {\r\n valueA = valueA ? valueA : \"\";\r\n valueB = valueB ? valueB : \"\";\r\n return valueA.toLowerCase().localeCompare(valueB.toLowerCase());\r\n };\r\n const columnDefs = [\r\n {\r\n headerName: \"Agent Name\",\r\n field: \"agentName\",\r\n width: 180,\r\n comparator: customComparator,\r\n filter: true,\r\n sortable: true,\r\n sortingOrder: [\"asc\", \"desc\"],\r\n },\r\n {\r\n headerName: \"Agent Type\",\r\n field: \"agentType\",\r\n width: 140,\r\n comparator: customComparator,\r\n filter: false,\r\n sortable: false,\r\n },\r\n {\r\n headerName: \"Email ID\",\r\n field: \"emailId\",\r\n width: 250,\r\n comparator: customComparator,\r\n filter: true,\r\n sortable: true,\r\n sortingOrder: [\"asc\", \"desc\"],\r\n },\r\n {\r\n headerName: \"Login Time (UTC)\",\r\n field: \"agentStartTime\",\r\n width: 180,\r\n comparator: customComparator,\r\n filter: true,\r\n sortable: true,\r\n sortingOrder: [\"asc\", \"desc\"],\r\n },\r\n {\r\n headerName: \"Active\",\r\n field: \"activeChats\",\r\n width: 75,\r\n comparator: customComparator,\r\n filter: false,\r\n sortable: false,\r\n },\r\n {\r\n headerName: \"Attended\",\r\n field: \"chatsAttended\",\r\n width: 95,\r\n comparator: customComparator,\r\n filter: true,\r\n sortable: true,\r\n sortingOrder: [\"asc\", \"desc\"],\r\n },\r\n {\r\n headerName: \"In Queue\",\r\n field: \"chatsInQueue\",\r\n width: 90,\r\n comparator: customComparator,\r\n filter: true,\r\n sortable: true,\r\n sortingOrder: [\"asc\", \"desc\"],\r\n },\r\n {\r\n headerName: \"Closed\",\r\n field: \"chatsClosed\",\r\n width: 80,\r\n comparator: customComparator,\r\n filter: true,\r\n sortable: true,\r\n sortingOrder: [\"asc\", \"desc\"],\r\n } \r\n ];\r\n this.columnDefs = columnDefs;\r\n }\r\n onSubmit() { \r\n if(this.selectedOption != -1){\r\n this.selectedDate=this.datePipe.transform(this.selectedDate, 'yyyy-MM-dd');\r\n if(this.selectedDate !=null){\r\n this.createRowDataForAgentHistory();\r\n }\r\n else{\r\n this.toasterService.error(\r\n \"Please select particular date\"\r\n );\r\n } \r\n }\r\n else{\r\n this.toasterService.error(\r\n \"Please choose Bot\"\r\n );\r\n }\r\n \r\n } \r\n\r\n createRowData() {\r\n this.rowDataActiveAgent = [];\r\n this._subscriptions.add(\r\n this.agentHistoryService.GetAllActiveAgents(this.botConfigId).subscribe(\r\n (res) => {\r\n this.activeAgentList = res;\r\n this.rowDataActiveAgent = this.activeAgentList;\r\n this.createColumnDefs();\r\n },\r\n (error) => {\r\n this.toasterService.warn(\"No active agents found\");\r\n }\r\n )\r\n );\r\n }\r\n //Agent History\r\n createHistoryColumnDefs() {\r\n const customComparator = (valueA, valueB) => {\r\n valueA = valueA ? valueA : \"\";\r\n valueB = valueB ? valueB : \"\";\r\n return valueA.toLowerCase().localeCompare(valueB.toLowerCase());\r\n };\r\n const columnDefs_history = [\r\n {\r\n headerName: \"Agent Name\",\r\n field: \"agentName\",\r\n width: 150,\r\n comparator: customComparator,\r\n filter: true,\r\n sortable: true,\r\n sortingOrder: [\"asc\", \"desc\"],\r\n },\r\n {\r\n headerName: \"Agent Type\",\r\n field: \"agenttype\",\r\n width: 150,\r\n comparator: customComparator,\r\n filter: false,\r\n sortable: false,\r\n },\r\n {\r\n headerName: \"Email ID\",\r\n field: \"emailId\",\r\n width: 200,\r\n comparator: customComparator,\r\n filter: true,\r\n sortable: true,\r\n sortingOrder: [\"asc\", \"desc\"],\r\n },\r\n {\r\n headerName: \"Session Start Time(UTC)\",\r\n field: \"startTime\",\r\n width: 180,\r\n comparator: customComparator,\r\n filter: true,\r\n sortable: true,\r\n sortingOrder: [\"asc\", \"desc\"],\r\n },\r\n {\r\n headerName: \"Session End Time(UTC)\",\r\n field: \"endTime\",\r\n width: 180,\r\n comparator: customComparator,\r\n filter: true,\r\n sortable: true,\r\n sortingOrder: [\"asc\", \"desc\"],\r\n },\r\n {\r\n headerName: \"Status\",\r\n field: \"sessionStatus\",\r\n width: 80,\r\n comparator: customComparator,\r\n filter: true,\r\n sortable: true,\r\n sortingOrder: [\"asc\", \"desc\"],\r\n },\r\n {\r\n headerName: \"Spend Time(hh:mm:ss)\",\r\n field: \"spendTime\",\r\n width: 167.5,\r\n comparator: customComparator,\r\n filter: true,\r\n sortable: true,\r\n sortingOrder: [\"asc\", \"desc\"],\r\n }\r\n ];\r\n this.columnDefs_history = columnDefs_history;\r\n }\r\n createRowDataForAgentHistory() {\r\n this._subscriptions.add(\r\n this.agentHistoryService.GetHistoryAgents(this.botConfigId,this.selectedDate).subscribe(\r\n (res) => {\r\n this.historyAgentList = res;\r\n this.rowDataHistoryAgent = this.historyAgentList;\r\n this.createHistoryColumnDefs();\r\n },\r\n (error) => {\r\n this.toasterService.warn(\"No agent history found\");\r\n }\r\n )\r\n );\r\n }\r\n getDataForAgentHistory(botConfigId, selectedStartDate, selectedEndDate, selectedAgents) {\r\n this._subscriptions.add(\r\n this.agentHistoryService.GetAgentChatHistoryDetails(botConfigId, selectedAgents, selectedStartDate, selectedEndDate).subscribe(\r\n (res) => {\r\n if (res.length == 0) {\r\n this.toasterService.warn(\"No agent chat history found\");\r\n }\r\n this.agentChatInfoJson = res; // Fetching data for CSV export method.\r\n this.showExportButton = this.agentChatInfoJson.some(agentChatInfo => agentChatInfo.ChatAgentHistoryData.length > 0); // Enable/Disable the export button if data is available.\r\n },\r\n (error) => {\r\n this.agentChatInfoJson = null;\r\n this.toasterService.warn(\"No agent chat history found\");\r\n }\r\n )\r\n );\r\n } \r\n\r\n exportCSV(): void {\r\n\r\n const exportData = [];\r\n this.agentChatInfoJson.forEach(agent => {\r\n const { AgentEmail, AgentName } = agent; // Extract the agent's email and name\r\n\r\n const agentChatInfo = agent.ChatAgentHistoryData.map(chat => ({ \r\n AgentName,\r\n AgentEmail,\r\n UserName: chat.BotUserName,\r\n ChatReceivedTime: chat.ChatReceivedTime,\r\n ChatAttentedTime: chat.ChatAttentedTime,\r\n ChatResponseTime: chat.ChatResponseTime,\r\n ChatClosedTime: chat.ChatClosedTime,\r\n ChatResolutionTime: chat.ChatResolutionTime,\r\n ChatClosed: chat.ChatClosed,\r\n ChatStatus: chat.ChatStatus\r\n })); // Extracting the Agent Name and Agent Email from external list to ChatAgentHistoryData list to combine as a single list. Also Sorting the data according to Column Header\r\n \r\n exportData.push({\r\n ChatAgentHistoryData: agentChatInfo // Pushing the Agent Name and Agent Email from external list to ChatAgentHistoryData list \r\n });\r\n });\r\n\r\n const flattenedData: IAgentChatHistoryInfo[] = [].concat(...exportData.map(agent => agent.ChatAgentHistoryData)); // Converting the multiple listed array into single array list\r\n\r\n const columnsToInclude = [\r\n 'AgentEmail',\r\n 'AgentName',\r\n 'UserName',\r\n 'ChatReceivedTime',\r\n 'ChatAttentedTime',\r\n 'ChatResponseTime',\r\n 'ChatClosedTime',\r\n 'ChatResolutionTime',\r\n 'ChatClosed',\r\n 'ChatStatus'\r\n ]; // Add the columns Header to be added in CSV in sorted order\r\n\r\n this.exportService.exportToCsv(flattenedData, 'Agent_Chat_History_Info', columnsToInclude);\r\n }\r\n}\r\n\r\n","export default \"/*.ag-theme-balham {\\n .ag-header {\\n background-color: $eyDarkGrey !important;\\n color: $eyGrey !important;\\n font-weight: 600;\\n font-size: 13px;\\n font-family: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \\\"Helvetica Neue\\\", sans-serif;\\n border-bottom: 1px solid #BDC3C7;\\n }\\n}*/\\n.btn-warning {\\n color: #212529;\\n background-color: #ffee56;\\n border-color: #ffee56;\\n}\\n.btn-warning:hover, .btn-warning:focus, .btn-warning.active {\\n background-color: #ffe500;\\n border-color: #ffe500;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9hZG1pbmlzdHJhdGlvbi9ib3Rsb29rdXAvQzpcXFVzZXJzXFxLTjYyNFFYXFxzb3VyY2VcXEdpdFxcY3RwLWNiYWFzLWNsaWVudC1wb3J0YWxcXENCYWFTLkhJTC5DbGllbnRQb3J0YWwuV2ViXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGFkbWluaXN0cmF0aW9uXFxib3Rsb29rdXBcXGJvdGxvb2t1cC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50cy9hZG1pbmlzdHJhdGlvbi9ib3Rsb29rdXAvYm90bG9va3VwLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBOzs7Ozs7Ozs7RUFBQTtBQVVBO0VBQ0UsY0FBQTtFQUNBLHlCQWpCUztFQWtCVCxxQkFsQlM7QUNjWDtBRE1FO0VBQ0UseUJBcEJXO0VBcUJYLHFCQXJCVztBQ2lCZiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvYWRtaW5pc3RyYXRpb24vYm90bG9va3VwL2JvdGxvb2t1cC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIiRleVllbGxvdzogI2ZmZWU1NjtcclxuJGV5RGFya1llbGxvdzogI2ZmZTUwMDtcclxuJGV5R3JleTogIzgyN2I3YjtcclxuJGV5RGFya0dyZXk6ICMzMzMzMzM7XHJcblxyXG4vKi5hZy10aGVtZS1iYWxoYW0ge1xyXG4gIC5hZy1oZWFkZXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGV5RGFya0dyZXkgIWltcG9ydGFudDtcclxuICAgIGNvbG9yOiAkZXlHcmV5ICFpbXBvcnRhbnQ7XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgZm9udC1zaXplOiAxM3B4O1xyXG4gICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXCJTZWdvZSBVSVwiLCBSb2JvdG8sIE94eWdlbi1TYW5zLCBVYnVudHUsIENhbnRhcmVsbCwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNCREMzQzc7XHJcbiAgfVxyXG59Ki9cclxuLmJ0bi13YXJuaW5nIHtcclxuICBjb2xvcjogIzIxMjUyOTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZXlZZWxsb3c7XHJcbiAgYm9yZGVyLWNvbG9yOiAkZXlZZWxsb3c7XHJcblxyXG4gICY6aG92ZXIsICY6Zm9jdXMsICYuYWN0aXZlIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRleURhcmtZZWxsb3c7XHJcbiAgICBib3JkZXItY29sb3I6ICRleURhcmtZZWxsb3c7XHJcbiAgfVxyXG59XHJcbiIsIi8qLmFnLXRoZW1lLWJhbGhhbSB7XG4gIC5hZy1oZWFkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRleURhcmtHcmV5ICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICRleUdyZXkgIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIFJvYm90bywgT3h5Z2VuLVNhbnMsIFVidW50dSwgQ2FudGFyZWxsLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNCREMzQzc7XG4gIH1cbn0qL1xuLmJ0bi13YXJuaW5nIHtcbiAgY29sb3I6ICMyMTI1Mjk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmVlNTY7XG4gIGJvcmRlci1jb2xvcjogI2ZmZWU1Njtcbn1cbi5idG4td2FybmluZzpob3ZlciwgLmJ0bi13YXJuaW5nOmZvY3VzLCAuYnRuLXdhcm5pbmcuYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZTUwMDtcbiAgYm9yZGVyLWNvbG9yOiAjZmZlNTAwO1xufSJdfQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { UserrolemanagementComponent } from '../userrolemanagement/userrolemanagement.component';\r\nimport { Subscription } from 'rxjs';\r\nimport { ConfigurationSettings } from 'src/app/models/configuration.settings';\r\nimport { BotRegistrationService } from 'src/app/services/core/bot-registration/bot-registration.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Router } from '@angular/router';\r\nimport { IUserRoleDetails } from 'src/app/models/user-role-details';\r\nimport { IBotRegistration } from 'src/app/models/bot-registration';\r\nimport { WarningPopupComponent } from '../../shared/warning-popup/warning-popup.component';\r\nimport { MatDialog } from '@angular/material';\r\nimport { SessionstorageService } from 'src/app/services/shared/sessionstorage/sessionstorage.service';\r\nimport { ToasterService } from 'src/app/services/shared/toaster/toaster.service';\r\nimport { EnablehileditComponent } from '../enablehiledit/enablehiledit.component';\r\n\r\n@Component({\r\n selector: 'app-botlookup',\r\n templateUrl: './botlookup.component.html',\r\n styleUrls: ['./botlookup.component.scss']\r\n})\r\nexport class BotlookupComponent implements OnInit {\r\n\r\n paginationPageSize = 100;\r\n columnDefs: any[] = [];\r\n rowData: IBotRegistration[] = [];\r\n private userRoles: string[] = [];\r\n private userRoleDetails: IUserRoleDetails[] = [];\r\n canDoBotRegistration: boolean = false;\r\n canAddUserRole: boolean = false;\r\n private width: string;\r\n private gridApi;\r\n domLayout;\r\n private gridColumnApi;\r\n private _subscriptions = new Subscription();\r\n sortingOrder;\r\n defaultColDef;\r\n configurations: ConfigurationSettings;\r\n constructor(private botRegistrationService: BotRegistrationService,\r\n private toasterService: ToasterService,\r\n private toastr: ToastrService,\r\n private router: Router,\r\n private dialogWarning: MatDialog,\r\n private configuration: ConfigurationSettings,\r\n private sessionStorageService: SessionstorageService) {\r\n this.configurations = configuration;\r\n }\r\n\r\n ngOnInit() {\r\n this.getUserRoles();\r\n this.domLayout = \"autoHeight\";\r\n this.createRowData();\r\n }\r\n\r\n createColumnDefs() {\r\n const customComparator = (valueA, valueB) => {\r\n valueA = valueA ? valueA : '';\r\n valueB = valueB ? valueB : '';\r\n return valueA.toLowerCase().localeCompare(valueB.toLowerCase());\r\n };\r\n const columnDefs = [\r\n { headerName: 'Bot Id', field: 'botId', width: 250, filter: true, comparator: customComparator, sortable: true, sortingOrder: [\"asc\", \"desc\"] },\r\n { headerName: 'Bot Name', field: 'displayName', width: 100, filter: true, comparator: customComparator, sortable: true, sortingOrder: [\"asc\", \"desc\"] },\r\n { headerName: 'Service Line', field: 'serviceLine', width: 110, filter: true, comparator: customComparator, sortable: true, sortingOrder: [\"asc\", \"desc\"] },\r\n { headerName: 'Offering Type', field: 'offeringType', width: 125, filter: true, comparator: customComparator, sortable: true, sortingOrder: [\"asc\", \"desc\"] },\r\n { headerName: 'Bot Type', field: 'botType', width: 90, filter: true, comparator: customComparator, sortable: true, sortingOrder: [\"asc\", \"desc\"] },\r\n { headerName: 'Engagement/Client Name', field: 'customerContact', width: 185, filter: true, comparator: customComparator, sortable: true, sortingOrder: [\"asc\", \"desc\"] },\r\n { headerName: 'Add User/Role', width: 120, hide: !this.canAddUserRole, cellRenderer: this.addUserRoleCellRenderer.bind(this) },\r\n { headerName: 'HIL Config', width: 90, left: 637, hide: !this.canAddUserRole, cellRenderer: this.editHILStatusCellRenderer.bind(this) },\r\n { headerName: 'Edit', field: 'botRegistrationId', width: 60, left: 637, hide: !this.canDoBotRegistration, cellRenderer: this.editCellRenderer.bind(this) },\r\n { headerName: 'Delete', width: 60, hide: !this.canDoBotRegistration, cellRenderer: this.deleteCellRenderer.bind(this) },\r\n ]\r\n this.columnDefs = columnDefs;\r\n\r\n }\r\n\r\n getUserRoles() {\r\n this.userRoles = sessionStorage.getItem('userRoles') ? sessionStorage.getItem('userRoles').split(',') : [];\r\n let botRegistrationView = this.userRoles.find(ob => ob.toLowerCase() === 'superadmin' || ob.toLowerCase() === 'super admin');\r\n if (botRegistrationView) {\r\n this.canDoBotRegistration = true;\r\n this.canAddUserRole = true;\r\n }\r\n else {\r\n let userRolesAdd = this.userRoles.find(ob => ob.toLowerCase() === 'superadmin' || ob.toLowerCase() === 'super admin' || ob.toLowerCase() === 'chatbotadmin' || ob.toLowerCase() === 'chatbot admin');\r\n if (userRolesAdd) {\r\n this.canAddUserRole = true;\r\n }\r\n }\r\n\r\n }\r\n createRowData() {\r\n this._subscriptions.add(\r\n this.botRegistrationService.getRegisteredBots()\r\n .subscribe(\r\n res => {\r\n this.rowData = res;\r\n sessionStorage.setItem(\"lastActiveTab\", \"administration\");\r\n this.createColumnDefs();\r\n },\r\n (error) => {\r\n this.toasterService.error(\"Unable to retrieve BOT(s) details\");\r\n }\r\n )\r\n )\r\n }\r\n\r\n editCellRenderer(param) {\r\n const element = document.createElement('span');\r\n let cellValue = \"Edit\";\r\n let template = '';\r\n element.innerHTML = template;\r\n element.addEventListener('click', (event) => {\r\n\r\n this.router.navigate(['administration/botregisteredit'],\r\n { queryParams: { Id: param.value } });\r\n });\r\n return element;\r\n }\r\n\r\n editHILStatusCellRenderer(botInfo: any) {\r\n const element = document.createElement('span');\r\n let template = '';\r\n element.innerHTML = template;\r\n element.addEventListener('click', () => {\r\n this.openEnableHilModal(botInfo);\r\n });\r\n return element;\r\n }\r\n\r\n deleteCellRenderer(botRegistration: any) {\r\n const element = document.createElement('span');\r\n\r\n let template = '';\r\n element.innerHTML = template;\r\n element.addEventListener('click', () => {\r\n this.openWarning(botRegistration);\r\n });\r\n return element;\r\n }\r\n\r\n openWarning(botRegistration: any) {\r\n let dialogRef = this.dialogWarning.open(WarningPopupComponent, {\r\n height: '27%',\r\n width: '35%',\r\n autoFocus: false,\r\n data: botRegistration\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.createRowData();\r\n })\r\n }\r\n\r\n openEnableHilModal(botRegistration: any) {\r\n let allowAction = this.checkRoleForAction(botRegistration);\r\n if (allowAction) {\r\n let dialogRef = this.dialogWarning.open(EnablehileditComponent, {\r\n height: '70%',\r\n width: '50%',\r\n autoFocus: false,\r\n data: botRegistration.data\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.createRowData();\r\n })\r\n }\r\n else {\r\n this.toasterService.error(\"You are not authorized to Enable/Disable HIL for this BOT!\");\r\n }\r\n }\r\n\r\n\r\n addUserRoleCellRenderer(botInfo: any) {\r\n let botData = JSON.stringify(botInfo.data);\r\n const element = document.createElement('span');\r\n let template = '';\r\n element.innerHTML = template;\r\n element.addEventListener('click', () => {\r\n sessionStorage.removeItem('botData');\r\n sessionStorage.setItem('botData', botData);\r\n let allowAction = this.checkRoleForAction(botInfo);\r\n if (allowAction) {\r\n this.router.navigate(['administration/userrolemanagement']);\r\n }\r\n else {\r\n this.toasterService.error(\"You are not authorized to add user roles for this BOT!\");\r\n }\r\n });\r\n return element;\r\n }\r\n\r\n onGridReady(params) {\r\n this.gridApi = params.api;\r\n this.gridApi.sizeColumnsToFit();\r\n this.gridColumnApi = params.columnApi;\r\n this.gridApi.setDomLayout(\"autoHeight\");\r\n //this.gridApi.paginationGoToPage(2); \r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._subscriptions.unsubscribe();\r\n }\r\n\r\n checkRoleForAction(botInfo: any) {\r\n this.userRoleDetails = JSON.parse(sessionStorage.getItem('userBotRoles'));\r\n let botConfigId = this.userRoleDetails.filter(x => (x.botConfigId == botInfo.data.botConfigId || x.botConfigId == 0) &&\r\n (x.role.toLowerCase() == \"chatbot admin\" || x.role.toLowerCase() == \"chatbotadmin\" ||\r\n x.role.toLowerCase() == \"super admin\" || x.role.toLowerCase() == \"superadmin\"));\r\n\r\n if (botConfigId && botConfigId.length > 0)\r\n return true;\r\n else\r\n return false;\r\n }\r\n}\r\n","export default \".form-control:focus {\\n border-color: #827b7b;\\n box-shadow: 0px 1px 1px #ffee56 inset, 0px 0px 8px #ffee56;\\n}\\n\\nlabel {\\n border-left: 3px solid #ffee56;\\n padding-left: 4px;\\n border-top: 0.51px solid #ffee56;\\n}\\n\\ninput, select {\\n border: 1px solid #827b7b;\\n}\\n\\n.btn-warning {\\n color: #212529;\\n background-color: #ffee56;\\n border-color: #ffee56;\\n}\\n\\n.btn-warning:hover, .btn-warning:focus, .btn-warning.active {\\n background-color: #ffe500;\\n border-color: #ffe500;\\n}\\n\\n.btn-secondary {\\n color: #fff;\\n background-color: #827b7b;\\n border-color: #827b7b;\\n}\\n\\n.btn-secondary:hover, .btn-secondary:focus, .btn-secondary.active {\\n background-color: #333333;\\n border-color: #333333;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9hZG1pbmlzdHJhdGlvbi9ib3RyZWdpc3Rlci9DOlxcVXNlcnNcXEtONjI0UVhcXHNvdXJjZVxcR2l0XFxjdHAtY2JhYXMtY2xpZW50LXBvcnRhbFxcQ0JhYVMuSElMLkNsaWVudFBvcnRhbC5XZWJcXENsaWVudEFwcC9zcmNcXGFwcFxcY29tcG9uZW50c1xcYWRtaW5pc3RyYXRpb25cXGJvdHJlZ2lzdGVyXFxib3RyZWdpc3Rlci5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50cy9hZG1pbmlzdHJhdGlvbi9ib3RyZWdpc3Rlci9ib3RyZWdpc3Rlci5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQTtFQUNFLHFCQUpPO0VBS1AsMERBQUE7QUNKRjs7QURPQTtFQUNFLDhCQUFBO0VBQ0EsaUJBQUE7RUFDQSxnQ0FBQTtBQ0pGOztBRE9BO0VBQ0UseUJBQUE7QUNKRjs7QURPQTtFQUNFLGNBQUE7RUFDQSx5QkF0QlM7RUF1QlQscUJBdkJTO0FDbUJYOztBRE1FO0VBQ0UseUJBekJXO0VBMEJYLHFCQTFCVztBQ3NCZjs7QURPQTtFQUNFLFdBQUE7RUFDQSx5QkE5Qk87RUErQlAscUJBL0JPO0FDMkJUOztBRE1FO0VBQ0UseUJBakNTO0VBa0NULHFCQWxDUztBQzhCYiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvYWRtaW5pc3RyYXRpb24vYm90cmVnaXN0ZXIvYm90cmVnaXN0ZXIuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIkZXlZZWxsb3c6ICNmZmVlNTY7XHJcbiRleURhcmtZZWxsb3c6ICNmZmU1MDA7XHJcbiRleUdyZXk6ICM4MjdiN2I7XHJcbiRleURhcmtHcmV5OiAjMzMzMzMzO1xyXG5cclxuLmZvcm0tY29udHJvbDpmb2N1cyB7XHJcbiAgYm9yZGVyLWNvbG9yOiAkZXlHcmV5O1xyXG4gIGJveC1zaGFkb3c6IDBweCAxcHggMXB4ICRleVllbGxvdyBpbnNldCwgMHB4IDBweCA4cHggJGV5WWVsbG93O1xyXG59XHJcblxyXG5sYWJlbCB7XHJcbiAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCAkZXlZZWxsb3c7XHJcbiAgcGFkZGluZy1sZWZ0OiA0cHg7XHJcbiAgYm9yZGVyLXRvcDogMC41MXB4IHNvbGlkICRleVllbGxvdztcclxufVxyXG5cclxuaW5wdXQsIHNlbGVjdCB7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgJGV5R3JleTtcclxufVxyXG5cclxuLmJ0bi13YXJuaW5nIHtcclxuICBjb2xvcjogIzIxMjUyOTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZXlZZWxsb3c7XHJcbiAgYm9yZGVyLWNvbG9yOiAkZXlZZWxsb3c7XHJcblxyXG4gICY6aG92ZXIsICY6Zm9jdXMsICYuYWN0aXZlIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRleURhcmtZZWxsb3c7XHJcbiAgICBib3JkZXItY29sb3I6ICRleURhcmtZZWxsb3c7XHJcbiAgfVxyXG59XHJcbi5idG4tc2Vjb25kYXJ5IHtcclxuICBjb2xvcjogI2ZmZjtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZXlHcmV5O1xyXG4gIGJvcmRlci1jb2xvcjogJGV5R3JleTtcclxuXHJcbiAgJjpob3ZlciwgJjpmb2N1cywgJi5hY3RpdmUge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGV5RGFya0dyZXk7XHJcbiAgICBib3JkZXItY29sb3I6ICRleURhcmtHcmV5O1xyXG4gIH1cclxufVxyXG4iLCIuZm9ybS1jb250cm9sOmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiAjODI3YjdiO1xuICBib3gtc2hhZG93OiAwcHggMXB4IDFweCAjZmZlZTU2IGluc2V0LCAwcHggMHB4IDhweCAjZmZlZTU2O1xufVxuXG5sYWJlbCB7XG4gIGJvcmRlci1sZWZ0OiAzcHggc29saWQgI2ZmZWU1NjtcbiAgcGFkZGluZy1sZWZ0OiA0cHg7XG4gIGJvcmRlci10b3A6IDAuNTFweCBzb2xpZCAjZmZlZTU2O1xufVxuXG5pbnB1dCwgc2VsZWN0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzgyN2I3Yjtcbn1cblxuLmJ0bi13YXJuaW5nIHtcbiAgY29sb3I6ICMyMTI1Mjk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmVlNTY7XG4gIGJvcmRlci1jb2xvcjogI2ZmZWU1Njtcbn1cbi5idG4td2FybmluZzpob3ZlciwgLmJ0bi13YXJuaW5nOmZvY3VzLCAuYnRuLXdhcm5pbmcuYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZTUwMDtcbiAgYm9yZGVyLWNvbG9yOiAjZmZlNTAwO1xufVxuXG4uYnRuLXNlY29uZGFyeSB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODI3YjdiO1xuICBib3JkZXItY29sb3I6ICM4MjdiN2I7XG59XG4uYnRuLXNlY29uZGFyeTpob3ZlciwgLmJ0bi1zZWNvbmRhcnk6Zm9jdXMsIC5idG4tc2Vjb25kYXJ5LmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMzMzMzM7XG4gIGJvcmRlci1jb2xvcjogIzMzMzMzMztcbn0iXX0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { IBotInfo } from 'src/app/models/bot-info';\r\nimport { Subscription } from 'rxjs';\r\nimport { IBotRegistration } from 'src/app/models/bot-registration';\r\nimport { BotRegistrationService } from 'src/app/services/core/bot-registration/bot-registration.service';\r\nimport { ToasterService } from 'src/app/services/shared/toaster/toaster.service';\r\n\r\n@Component({\r\n selector: 'app-botregister',\r\n templateUrl: './botregister.component.html',\r\n styleUrls: ['./botregister.component.scss']\r\n})\r\nexport class BotregisterComponent implements OnInit {\r\n\r\n newBotRegisterForm: FormGroup;\r\n OfferingType: FormControl;\r\n HILTier: FormControl;\r\n BotId: FormControl;\r\n BotName: FormControl;\r\n BotType: FormControl;\r\n ClientName: FormControl;\r\n ServiceLine: FormControl;\r\n ReportId: FormControl;\r\n AgentChatAllocations: FormControl;\r\n ChatHistoryDisplayPeriod: FormControl;\r\n status: string;\r\n botConfigDetails: {\r\n botId: any,\r\n displayName: string,\r\n serviceLine: string,\r\n id: number\r\n }\r\n botRegistrationDetails: IBotRegistration;\r\n botRegistrationId: number;\r\n botConfigId: number;\r\n registeredBotData: IBotInfo;\r\n private _subscriptions = new Subscription();\r\n offeringTypes: string[] = [];\r\n hilTiers: string[] = [];\r\n addBotRegistration: boolean = false;\r\n hasError: boolean = false;\r\n constructor(private _botRegistrationService: BotRegistrationService,\r\n private _toaster: ToasterService,\r\n private router: Router,\r\n private route: ActivatedRoute) { }\r\n\r\n ngOnInit() {\r\n this.hasError = false;\r\n this.OfferingType = new FormControl('', Validators.required)\r\n this.HILTier = new FormControl('', Validators.required)\r\n this.BotId = new FormControl('', Validators.required)\r\n this.BotName = new FormControl({ value: '', disabled: true }, Validators.required)\r\n this.BotType = new FormControl('', Validators.required)\r\n\r\n this.ClientName = new FormControl('', Validators.compose([Validators.required, Validators.maxLength(200), Validators.pattern(/^[ a-zA-Z0-9]+$/)]))\r\n\r\n this.ServiceLine = new FormControl({ value: '', disabled: true }, Validators.required)\r\n this.ReportId = new FormControl('', Validators.pattern(/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i))\r\n this.AgentChatAllocations = new FormControl('', [Validators.min(1)])\r\n this.ChatHistoryDisplayPeriod = new FormControl('', [Validators.min(1)])\r\n this.newBotRegisterForm = new FormGroup({\r\n OfferingType: this.OfferingType,\r\n HILTier : this.HILTier,\r\n BotId: this.BotId,\r\n BotName: this.BotName,\r\n BotType: this.BotType,\r\n ClientName: this.ClientName,\r\n ServiceLine: this.ServiceLine,\r\n ReportId: this.ReportId,\r\n AgentChatAllocations: this.AgentChatAllocations,\r\n ChatHistoryDisplayPeriod: this.ChatHistoryDisplayPeriod\r\n })\r\n this._subscriptions.add(\r\n this._botRegistrationService.getBotRegistrationConfigurations()\r\n .subscribe(\r\n res => {\r\n this.offeringTypes = res.offeringTypes;\r\n this.hilTiers = res.hilTiers;\r\n },\r\n (error) => { \r\n this.hasError = true;\r\n }\r\n )\r\n )\r\n //For Edit\r\n this._subscriptions.add(\r\n this.route.queryParams.subscribe(params => {\r\n this.botRegistrationId = params['Id'];\r\n }));\r\n\r\n if (this.botRegistrationId && this.botRegistrationId != 0) {\r\n this._subscriptions.add(\r\n this._botRegistrationService.getRegisteredBotDetails(this.botRegistrationId)\r\n .subscribe(\r\n res => {\r\n this.registeredBotData = res;\r\n this.ServiceLine.setValue(this.registeredBotData.serviceLine);\r\n this.BotName.setValue(this.registeredBotData.displayName);\r\n this.BotId.setValue(this.registeredBotData.botId);\r\n this.newBotRegisterForm.controls['BotId'].disable();\r\n this.OfferingType.setValue(this.registeredBotData.offeringType);\r\n this.HILTier.setValue(this.registeredBotData.hilTier);\r\n this.BotType.setValue(this.registeredBotData.botType);\r\n this.ClientName.setValue(this.registeredBotData.customerContact);\r\n this.ReportId.setValue(this.registeredBotData.reportId);\r\n this.AgentChatAllocations.setValue(this.registeredBotData.agentChatAllocations);\r\n this.ChatHistoryDisplayPeriod.setValue(this.registeredBotData.chatLogDisplayPeriod)\r\n },\r\n (error) => {\r\n this._toaster.error(\"Unable to retrieve BOT details\");\r\n this.hasError = true;\r\n }\r\n )\r\n )\r\n }\r\n }\r\n\r\n registerBotSave(formValues) {\r\n this.addBotRegistration = true;\r\n //Bot Registration Edit\r\n if (this.botRegistrationId && this.botRegistrationId != 0) {\r\n this.botRegistrationDetails = {\r\n botConfigId: this.registeredBotData.botConfigId,\r\n customerContact: formValues.ClientName,\r\n botType: formValues.BotType,\r\n offeringType: formValues.OfferingType,\r\n hilTier : formValues.HILTier,\r\n isActive: true,\r\n id: this.registeredBotData.botRegistrationId,\r\n reportId: formValues.ReportId == \"\" ? null : formValues.ReportId,\r\n agentChatAllocations: formValues.AgentChatAllocations,\r\n chatLogDisplayPeriod: formValues.ChatHistoryDisplayPeriod\r\n }\r\n }\r\n // New Bot Registration\r\n else {\r\n this.botRegistrationDetails = {\r\n botConfigId: this.botConfigDetails.id,\r\n customerContact: formValues.ClientName,\r\n botType: formValues.BotType,\r\n offeringType: formValues.OfferingType,\r\n hilTier: formValues.HILTier,\r\n isActive: true,\r\n id: 0,\r\n reportId: formValues.ReportId == \"\" ? null : formValues.ReportId,\r\n agentChatAllocations: formValues.AgentChatAllocations,\r\n chatLogDisplayPeriod: formValues.ChatHistoryDisplayPeriod\r\n }\r\n }\r\n this._subscriptions.add(\r\n this._botRegistrationService.addUpdateBotRegistration(this.botRegistrationDetails)\r\n .subscribe(\r\n res => {\r\n this.addBotRegistration = false;\r\n if (this.botRegistrationId && this.botRegistrationId != 0)\r\n this._toaster.success(\"Bot registration updated successfully!!\");\r\n else\r\n this._toaster.success(\"Bot registered successfully!!\");\r\n this.newBotRegisterForm.reset();\r\n this.router.navigate(['administration/botlookup']);\r\n },\r\n (error) => { \r\n this.addBotRegistration = false;\r\n }\r\n )\r\n )\r\n }\r\n\r\n resetform() {\r\n this.newBotRegisterForm.reset();\r\n }\r\n\r\n valuechange(event) {\r\n\r\n this._subscriptions.add(\r\n this._botRegistrationService.getBotConfigData(event.currentTarget.value)\r\n .subscribe(\r\n res => {\r\n if (res) {\r\n this.hasError = false;\r\n this.OfferingType.enable();\r\n this.HILTier.enable();\r\n this.ClientName.enable();\r\n this.ReportId.enable();\r\n this.AgentChatAllocations.enable();\r\n this.BotType.enable();\r\n this.botConfigDetails = res;\r\n this.ServiceLine.setValue(this.botConfigDetails.serviceLine);\r\n this.BotName.setValue(this.botConfigDetails.displayName);\r\n this.ChatHistoryDisplayPeriod.enable();\r\n }\r\n else {\r\n this._toaster.error(\"Bot Not Found\");\r\n this.hasError = true;\r\n this.ServiceLine.setValue(\"\");\r\n this.BotName.setValue(\"\");\r\n this.OfferingType.disable();\r\n this.HILTier.disable();\r\n this.ClientName.disable();\r\n this.ReportId.disable();\r\n this.AgentChatAllocations.disable();\r\n this.BotType.disable();\r\n this.ChatHistoryDisplayPeriod.disable();\r\n }\r\n },\r\n (error) => {\r\n this.hasError = true;\r\n this.ServiceLine.setValue(\"\");\r\n this.BotName.setValue(\"\");\r\n this.OfferingType.disable();\r\n this.HILTier.disable();\r\n this.ClientName.disable();\r\n this.ReportId.disable();\r\n this.AgentChatAllocations.disable();\r\n this.BotType.disable();\r\n this.ChatHistoryDisplayPeriod.disable();\r\n }\r\n )\r\n )\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._subscriptions.unsubscribe();\r\n }\r\n\r\n\r\n}\r\n","export default \".card {\\n box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);\\n padding: 16px;\\n text-align: center;\\n background-color: #f1f1f1;\\n border-left: 3px solid #ffee56;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9hZG1pbmlzdHJhdGlvbi9lbmFibGVoaWxlZGl0L0M6XFxVc2Vyc1xcS042MjRRWFxcc291cmNlXFxHaXRcXGN0cC1jYmFhcy1jbGllbnQtcG9ydGFsXFxDQmFhUy5ISUwuQ2xpZW50UG9ydGFsLldlYlxcQ2xpZW50QXBwL3NyY1xcYXBwXFxjb21wb25lbnRzXFxhZG1pbmlzdHJhdGlvblxcZW5hYmxlaGlsZWRpdFxcZW5hYmxlaGlsZWRpdC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50cy9hZG1pbmlzdHJhdGlvbi9lbmFibGVoaWxlZGl0L2VuYWJsZWhpbGVkaXQuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0E7RUFDRSwwQ0FBQTtFQUNBLGFBQUE7RUFDQSxrQkFBQTtFQUNBLHlCQUFBO0VBQ0EsOEJBQUE7QUNKRiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvYWRtaW5pc3RyYXRpb24vZW5hYmxlaGlsZWRpdC9lbmFibGVoaWxlZGl0LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiJGV5WWVsbG93OiAjZmZlZTU2O1xyXG4kZXlEYXJrWWVsbG93OiAjZmZlNTAwO1xyXG4kZXlHcmV5OiAjODI3YjdiO1xyXG4kZXlEYXJrR3JleTogIzMzMzMzMztcclxuXHJcbi5jYXJkIHtcclxuICBib3gtc2hhZG93OiAwIDRweCA4cHggMCByZ2JhKDAsIDAsIDAsIDAuMik7XHJcbiAgcGFkZGluZzogMTZweDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjFmMTtcclxuICBib3JkZXItbGVmdDogM3B4IHNvbGlkICRleVllbGxvdztcclxufVxyXG4iLCIuY2FyZCB7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDhweCAwIHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgcGFkZGluZzogMTZweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMWYxO1xuICBib3JkZXItbGVmdDogM3B4IHNvbGlkICNmZmVlNTY7XG59Il19 */\"","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { Router, NavigationStart, RouterEvent } from '@angular/router';\r\nimport { IHilAvaialabilityConfig } from 'src/app/models/hil-availability';\r\nimport { filter } from 'rxjs/operators';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { BotRegistrationService } from 'src/app/services/core/bot-registration/bot-registration.service';\r\nimport { ToasterService } from 'src/app/services/shared/toaster/toaster.service';\r\n\r\n@Component({\r\n selector: 'app-enablehiledit',\r\n templateUrl: './enablehiledit.component.html',\r\n styleUrls: ['./enablehiledit.component.scss']\r\n})\r\nexport class EnablehileditComponent implements OnInit {\r\n botDetails: any;\r\n hilAvailabilityConfigForm: FormGroup;\r\n hilFromHour: FormControl;\r\n hilFromMin: FormControl;\r\n hilToHour: FormControl;\r\n hilToMin: FormControl;\r\n hilEnabled: FormControl;\r\n hilWeekendEnablement: FormControl;\r\n\r\n _routerSubscription: any;\r\n saveClicked: boolean = false;\r\n hasError: boolean = false;\r\n\r\n botHilAvailabilityConfigDetails: IHilAvaialabilityConfig;\r\n botHilAvailabilityConfigId: number=0;\r\n botConfigId: number;\r\n\r\n constructor(private router: Router,\r\n private dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private _botRegistrationService: BotRegistrationService,\r\n private _toaster: ToasterService) { }\r\n\r\n ngOnInit() {\r\n this.botDetails = JSON.parse(JSON.stringify(this.data));\r\n this.botConfigId= this.botDetails.botConfigId;\r\n\r\n this.hilEnabled = new FormControl('', Validators.required);\r\n this.hilFromHour = new FormControl('', Validators.required);\r\n this.hilFromMin = new FormControl('', Validators.required);\r\n this.hilToHour = new FormControl('', Validators.required);\r\n this.hilToMin = new FormControl('', Validators.required);\r\n this.hilWeekendEnablement = new FormControl('', Validators.required);\r\n\r\n this.hilAvailabilityConfigForm = new FormGroup({\r\n hilEnabled: this.hilEnabled,\r\n hilFromHour: this.hilFromHour,\r\n hilFromMin: this.hilFromMin,\r\n hilToHour: this.hilToHour,\r\n hilToMin: this.hilToMin,\r\n hilWeekendEnablement: this.hilWeekendEnablement\r\n });\r\n\r\n this.hilAvailabilityConfigForm.controls['hilFromHour'].setValue('00', { onlySelf: true });\r\n this.hilAvailabilityConfigForm.controls['hilFromMin'].setValue('00', { onlySelf: true });\r\n this.hilAvailabilityConfigForm.controls['hilToHour'].setValue('00', { onlySelf: true });\r\n this.hilAvailabilityConfigForm.controls['hilToMin'].setValue('00', { onlySelf: true }); \r\n\r\n this._routerSubscription = this.router.events\r\n .pipe(\r\n filter((event: RouterEvent) => event instanceof NavigationStart),\r\n filter(() => !!this.dialogRef)\r\n )\r\n .subscribe(() => {\r\n this.dialogRef.close();\r\n });\r\n \r\n this._botRegistrationService.getBotHilAavaialabilityConfig(this.botDetails.botConfigId)\r\n .subscribe(\r\n res => {\r\n if (res == null) {\r\n this.reset();\r\n return;\r\n }\r\n this.hilEnabled.setValue(res.enabled);\r\n this.hilFromHour.setValue(res.fromTime.split(':')[0]);\r\n this.hilFromMin.setValue(res.fromTime.split(':')[1]);\r\n this.hilToHour.setValue(res.toTime.split(':')[0]);\r\n this.hilToMin.setValue(res.toTime.split(':')[1]);\r\n this.hilWeekendEnablement.setValue(res.excludeWeekends);\r\n this.botConfigId = res.botConfigId;\r\n this.botHilAvailabilityConfigId = res.id;\r\n },\r\n (error) => {\r\n this.hasError = true;\r\n console.log(error);\r\n }\r\n );\r\n }\r\n\r\n reset() {\r\n this.hilEnabled.setValue(false);\r\n this.hilFromHour.setValue('00');\r\n this.hilFromMin.setValue('00');\r\n this.hilToHour.setValue('00');\r\n this.hilToMin.setValue('00');\r\n this.hilWeekendEnablement.setValue(true);\r\n this.botHilAvailabilityConfigId = 0;\r\n }\r\n\r\n updateHilStatus(formValues) {\r\n this.saveClicked = true;\r\n this.hasError = false;\r\n\r\n this.botHilAvailabilityConfigDetails = {\r\n botConfigId: this.botConfigId,\r\n fromTime: formValues.hilFromHour + ':' + formValues.hilFromMin,\r\n toTime: formValues.hilToHour + ':' + formValues.hilToMin,\r\n enabled: formValues.hilEnabled === true,\r\n excludeWeekends: formValues.hilWeekendEnablement === true,\r\n id: this.botHilAvailabilityConfigId == undefined ? 0 : this.botHilAvailabilityConfigId,\r\n }\r\n\r\n this._botRegistrationService.addUpdateBotHilAavaialability(this.botHilAvailabilityConfigDetails)\r\n .subscribe(\r\n res => {\r\n this.dialogRef.close('CONFIRM');\r\n this._toaster.success(\"Hil status updated successfully!!\");\r\n this.botHilAvailabilityConfigId = res;\r\n },\r\n (error) => {\r\n this.hasError = true;\r\n console.log(error);\r\n }\r\n );\r\n }\r\n\r\n onCancel() {\r\n this.dialogRef.close('CANCEL');\r\n }\r\n\r\n onClose() {\r\n this.dialogRef.close('CLOSE');\r\n }\r\n}\r\n","export default \"/*.ag-theme-balham {\\n .ag-header {\\n background-color: $eyDarkGrey !important;\\n color: $eyGrey !important;\\n font-weight: 600;\\n font-size: 13px;\\n font-family: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \\\"Helvetica Neue\\\", sans-serif;\\n border-bottom: 1px solid #BDC3C7;\\n }\\n}*/\\n.btn-warning {\\n color: #212529;\\n background-color: #ffee56;\\n border-color: #ffee56;\\n}\\n.btn-warning:hover, .btn-warning:focus, .btn-warning.active {\\n background-color: #ffe500;\\n border-color: #ffe500;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9hZG1pbmlzdHJhdGlvbi91c2VybG9va3VwL0M6XFxVc2Vyc1xcS042MjRRWFxcc291cmNlXFxHaXRcXGN0cC1jYmFhcy1jbGllbnQtcG9ydGFsXFxDQmFhUy5ISUwuQ2xpZW50UG9ydGFsLldlYlxcQ2xpZW50QXBwL3NyY1xcYXBwXFxjb21wb25lbnRzXFxhZG1pbmlzdHJhdGlvblxcdXNlcmxvb2t1cFxcdXNlcmxvb2t1cC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50cy9hZG1pbmlzdHJhdGlvbi91c2VybG9va3VwL3VzZXJsb29rdXAuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0E7Ozs7Ozs7OztFQUFBO0FBVUE7RUFDRSxjQUFBO0VBQ0EseUJBakJTO0VBa0JULHFCQWxCUztBQ2NYO0FETUU7RUFDRSx5QkFwQlc7RUFxQlgscUJBckJXO0FDaUJmIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9hZG1pbmlzdHJhdGlvbi91c2VybG9va3VwL3VzZXJsb29rdXAuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIkZXlZZWxsb3c6ICNmZmVlNTY7XHJcbiRleURhcmtZZWxsb3c6ICNmZmU1MDA7XHJcbiRleUdyZXk6ICM4MjdiN2I7XHJcbiRleURhcmtHcmV5OiAjMzMzMzMzO1xyXG5cclxuLyouYWctdGhlbWUtYmFsaGFtIHtcclxuICAuYWctaGVhZGVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRleURhcmtHcmV5ICFpbXBvcnRhbnQ7XHJcbiAgICBjb2xvcjogJGV5R3JleSAhaW1wb3J0YW50O1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgIGZvbnQtc2l6ZTogMTNweDtcclxuICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgUm9ib3RvLCBPeHlnZW4tU2FucywgVWJ1bnR1LCBDYW50YXJlbGwsIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjQkRDM0M3O1xyXG4gIH1cclxufSovXHJcbi5idG4td2FybmluZyB7XHJcbiAgY29sb3I6ICMyMTI1Mjk7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGV5WWVsbG93O1xyXG4gIGJvcmRlci1jb2xvcjogJGV5WWVsbG93O1xyXG5cclxuICAmOmhvdmVyLCAmOmZvY3VzLCAmLmFjdGl2ZSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZXlEYXJrWWVsbG93O1xyXG4gICAgYm9yZGVyLWNvbG9yOiAkZXlEYXJrWWVsbG93O1xyXG4gIH1cclxufVxyXG4iLCIvKi5hZy10aGVtZS1iYWxoYW0ge1xuICAuYWctaGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZXlEYXJrR3JleSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAkZXlHcmV5ICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXCJTZWdvZSBVSVwiLCBSb2JvdG8sIE94eWdlbi1TYW5zLCBVYnVudHUsIENhbnRhcmVsbCwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjQkRDM0M3O1xuICB9XG59Ki9cbi5idG4td2FybmluZyB7XG4gIGNvbG9yOiAjMjEyNTI5O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlZTU2O1xuICBib3JkZXItY29sb3I6ICNmZmVlNTY7XG59XG4uYnRuLXdhcm5pbmc6aG92ZXIsIC5idG4td2FybmluZzpmb2N1cywgLmJ0bi13YXJuaW5nLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmU1MDA7XG4gIGJvcmRlci1jb2xvcjogI2ZmZTUwMDtcbn0iXX0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { UserService } from 'src/app/services/core/user/user.service';\r\nimport { ToasterService } from 'src/app/services/shared/toaster/toaster.service';\r\nimport { MatDialog } from '@angular/material';\r\nimport { SessionstorageService } from 'src/app/services/shared/sessionstorage/sessionstorage.service';\r\nimport { Router } from '@angular/router';\r\nimport { WarningPopupComponent } from '../../shared/warning-popup/warning-popup.component';\r\nimport { Subscription } from 'rxjs';\r\nimport { IUserDetails } from 'src/app/models/user';\r\n\r\n@Component({\r\n selector: 'app-userlookup',\r\n templateUrl: './userlookup.component.html',\r\n styleUrls: ['./userlookup.component.scss']\r\n})\r\nexport class UserlookupComponent implements OnInit {\r\n domLayout: string;\r\n paginationPageSize = 100;\r\n columnDefs: any[] = [];\r\n rowData: IUserDetails[] = [];\r\n private gridApi;\r\n private gridColumnApi;\r\n userData: any[] = [];\r\n sortingOrder;\r\n defaultColDef;\r\n private _subscriptions = new Subscription();\r\n constructor(private userService: UserService,\r\n private toasterService: ToasterService,\r\n private router: Router,\r\n private dialogWarning: MatDialog) { }\r\n\r\n ngOnInit() {\r\n this.domLayout = \"autoHeight\";\r\n this.createRowData();\r\n }\r\n\r\n createColumnDefs() {\r\n const customComparator = (valueA, valueB) => { \r\n valueA = valueA ? valueA : '';\r\n valueB = valueB ? valueB : '';\r\n return valueA.toLowerCase().localeCompare(valueB.toLowerCase());\r\n };\r\n const columnDefs = [\r\n { headerName: 'Email Id', field: 'userName', width: 200, comparator: customComparator, filter: true, sortable: true, sortingOrder: [\"asc\", \"desc\"] },\r\n { headerName: 'First Name', field: 'firstName', width: 110, comparator: customComparator, filter: true, sortable: true, sortingOrder: [\"asc\", \"desc\"] },\r\n { headerName: 'Last Name', field: 'lastName', width: 120, comparator: customComparator, filter: true, sortable: true, sortingOrder: [\"asc\", \"desc\"] },\r\n { headerName: 'User Type', field: 'userType', width: 110, comparator: customComparator, filter: true, sortable: true, sortingOrder: [\"asc\", \"desc\"] },\r\n { headerName: 'Company', field: 'company', width: 100, comparator: customComparator, filter: true, sortable: true, sortingOrder: [\"asc\", \"desc\"] },\r\n // { headerName: 'Status', field: 'status', width: 100, comparator : customComparator, filter: true, sortable : true, sortingOrder:[\"asc\", \"desc\"] },\r\n { headerName: 'Edit', width: 60, left: 637, cellRenderer: this.editCellRenderer.bind(this) },\r\n { headerName: 'Delete', width: 60, cellRenderer: this.deleteCellRenderer.bind(this) },\r\n ]\r\n this.columnDefs = columnDefs;\r\n }\r\n\r\n\r\n createRowData() {\r\n this._subscriptions.add(\r\n this.userService.getAllUsers()\r\n .subscribe(\r\n res => { \r\n this.userData = res;\r\n this.userData.forEach(element => {\r\n element.userType = element.isExternal == false ? 'Internal' : 'External';\r\n element.status = element.isActive == false ? 'Inactive' : 'Active';\r\n }); \r\n this.rowData = this.userData;\r\n this.createColumnDefs();\r\n },\r\n (error) => {\r\n this.toasterService.error(\"Unable to retrieve User(s) details\");\r\n }\r\n )\r\n )\r\n }\r\n\r\n editCellRenderer(userDetails: any) {\r\n const element = document.createElement('span');\r\n let cellValue = \"Edit\";\r\n let template = '';\r\n element.innerHTML = template;\r\n element.addEventListener('click', (event) => {\r\n sessionStorage.removeItem('userData');\r\n let userData = JSON.stringify(userDetails.data);\r\n sessionStorage.setItem('userData', userData);\r\n this.router.navigate(['administration/userregisteredit'],\r\n { queryParams: { Id: userDetails.data.id } });\r\n });\r\n return element;\r\n }\r\n\r\n deleteCellRenderer(userDetails: any) {\r\n const element = document.createElement('span');\r\n\r\n let template = '';\r\n element.innerHTML = template;\r\n element.addEventListener('click', () => {\r\n this.openWarning(userDetails);\r\n });\r\n return element;\r\n }\r\n\r\n openWarning(userDetails: any) {\r\n let dialogRef = this.dialogWarning.open(WarningPopupComponent, {\r\n height: '35%',\r\n width: '35%',\r\n autoFocus: false,\r\n data: userDetails\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.createRowData();\r\n })\r\n }\r\n\r\n onGridReady(params) {\r\n this.gridApi = params.api;\r\n this.gridApi.sizeColumnsToFit();\r\n this.gridColumnApi = params.columnApi;\r\n this.gridApi.setDomLayout(\"autoHeight\");\r\n //this.gridApi.paginationGoToPage(2); \r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._subscriptions.unsubscribe();\r\n }\r\n\r\n}\r\n","export default \".form-control:focus {\\n border-color: #827b7b;\\n box-shadow: 0px 1px 1px #ffee56 inset, 0px 0px 8px #ffee56;\\n}\\n\\nlabel {\\n border-left: 3px solid #ffee56;\\n padding-left: 4px;\\n border-top: 0.51px solid #ffee56;\\n}\\n\\ninput, select {\\n border: 1px solid #827b7b;\\n}\\n\\n.btn-warning {\\n color: #212529;\\n background-color: #ffee56;\\n border-color: #ffee56;\\n}\\n\\n.btn-warning:hover, .btn-warning:focus, .btn-warning.active {\\n background-color: #ffe500;\\n border-color: #ffe500;\\n}\\n\\n.btn-secondary {\\n color: #fff;\\n background-color: #827b7b;\\n border-color: #827b7b;\\n}\\n\\n.btn-secondary:hover, .btn-secondary:focus, .btn-secondary.active {\\n background-color: #333333;\\n border-color: #333333;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9hZG1pbmlzdHJhdGlvbi91c2VycmVnaXN0ZXIvQzpcXFVzZXJzXFxLTjYyNFFYXFxzb3VyY2VcXEdpdFxcY3RwLWNiYWFzLWNsaWVudC1wb3J0YWxcXENCYWFTLkhJTC5DbGllbnRQb3J0YWwuV2ViXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGFkbWluaXN0cmF0aW9uXFx1c2VycmVnaXN0ZXJcXHVzZXJyZWdpc3Rlci5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50cy9hZG1pbmlzdHJhdGlvbi91c2VycmVnaXN0ZXIvdXNlcnJlZ2lzdGVyLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBO0VBQ0UscUJBSk87RUFLUCwwREFBQTtBQ0pGOztBRE9BO0VBQ0UsOEJBQUE7RUFDQSxpQkFBQTtFQUNBLGdDQUFBO0FDSkY7O0FET0E7RUFDRSx5QkFBQTtBQ0pGOztBRE9BO0VBQ0UsY0FBQTtFQUNBLHlCQXRCUztFQXVCVCxxQkF2QlM7QUNtQlg7O0FETUU7RUFDRSx5QkF6Qlc7RUEwQlgscUJBMUJXO0FDc0JmOztBRE9BO0VBQ0UsV0FBQTtFQUNBLHlCQTlCTztFQStCUCxxQkEvQk87QUMyQlQ7O0FETUU7RUFDRSx5QkFqQ1M7RUFrQ1QscUJBbENTO0FDOEJiIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9hZG1pbmlzdHJhdGlvbi91c2VycmVnaXN0ZXIvdXNlcnJlZ2lzdGVyLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiJGV5WWVsbG93OiAjZmZlZTU2O1xyXG4kZXlEYXJrWWVsbG93OiAjZmZlNTAwO1xyXG4kZXlHcmV5OiAjODI3YjdiO1xyXG4kZXlEYXJrR3JleTogIzMzMzMzMztcclxuXHJcbi5mb3JtLWNvbnRyb2w6Zm9jdXMge1xyXG4gIGJvcmRlci1jb2xvcjogJGV5R3JleTtcclxuICBib3gtc2hhZG93OiAwcHggMXB4IDFweCAkZXlZZWxsb3cgaW5zZXQsIDBweCAwcHggOHB4ICRleVllbGxvdztcclxufVxyXG5cclxubGFiZWwge1xyXG4gIGJvcmRlci1sZWZ0OiAzcHggc29saWQgJGV5WWVsbG93O1xyXG4gIHBhZGRpbmctbGVmdDogNHB4O1xyXG4gIGJvcmRlci10b3A6IDAuNTFweCBzb2xpZCAkZXlZZWxsb3c7XHJcbn1cclxuXHJcbmlucHV0LCBzZWxlY3Qge1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICRleUdyZXk7XHJcbn1cclxuXHJcbi5idG4td2FybmluZyB7XHJcbiAgY29sb3I6ICMyMTI1Mjk7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGV5WWVsbG93O1xyXG4gIGJvcmRlci1jb2xvcjogJGV5WWVsbG93O1xyXG5cclxuICAmOmhvdmVyLCAmOmZvY3VzLCAmLmFjdGl2ZSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZXlEYXJrWWVsbG93O1xyXG4gICAgYm9yZGVyLWNvbG9yOiAkZXlEYXJrWWVsbG93O1xyXG4gIH1cclxufVxyXG4uYnRuLXNlY29uZGFyeSB7XHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGV5R3JleTtcclxuICBib3JkZXItY29sb3I6ICRleUdyZXk7XHJcblxyXG4gICY6aG92ZXIsICY6Zm9jdXMsICYuYWN0aXZlIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRleURhcmtHcmV5O1xyXG4gICAgYm9yZGVyLWNvbG9yOiAkZXlEYXJrR3JleTtcclxuICB9XHJcbn1cclxuIiwiLmZvcm0tY29udHJvbDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogIzgyN2I3YjtcbiAgYm94LXNoYWRvdzogMHB4IDFweCAxcHggI2ZmZWU1NiBpbnNldCwgMHB4IDBweCA4cHggI2ZmZWU1Njtcbn1cblxubGFiZWwge1xuICBib3JkZXItbGVmdDogM3B4IHNvbGlkICNmZmVlNTY7XG4gIHBhZGRpbmctbGVmdDogNHB4O1xuICBib3JkZXItdG9wOiAwLjUxcHggc29saWQgI2ZmZWU1Njtcbn1cblxuaW5wdXQsIHNlbGVjdCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM4MjdiN2I7XG59XG5cbi5idG4td2FybmluZyB7XG4gIGNvbG9yOiAjMjEyNTI5O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlZTU2O1xuICBib3JkZXItY29sb3I6ICNmZmVlNTY7XG59XG4uYnRuLXdhcm5pbmc6aG92ZXIsIC5idG4td2FybmluZzpmb2N1cywgLmJ0bi13YXJuaW5nLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmU1MDA7XG4gIGJvcmRlci1jb2xvcjogI2ZmZTUwMDtcbn1cblxuLmJ0bi1zZWNvbmRhcnkge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzgyN2I3YjtcbiAgYm9yZGVyLWNvbG9yOiAjODI3YjdiO1xufVxuLmJ0bi1zZWNvbmRhcnk6aG92ZXIsIC5idG4tc2Vjb25kYXJ5OmZvY3VzLCAuYnRuLXNlY29uZGFyeS5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzMzMzO1xuICBib3JkZXItY29sb3I6ICMzMzMzMzM7XG59Il19 */\"","import { Component, OnInit } from '@angular/core';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { IUserDetails } from 'src/app/models/user';\r\nimport { UserService } from 'src/app/services/core/user/user.service';\r\nimport { ToasterService } from 'src/app/services/shared/toaster/toaster.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-userregister',\r\n templateUrl: './userregister.component.html',\r\n styleUrls: ['./userregister.component.scss']\r\n})\r\nexport class UserregisterComponent implements OnInit {\r\n newUserRegisterForm: FormGroup;\r\n //userType : FormControl;\r\n firstName: FormControl;\r\n lastName: FormControl;\r\n emailId: FormControl;\r\n company: FormControl;\r\n\r\n userRegistrationDetails: IUserDetails;\r\n userId: number = 0;\r\n addUser: boolean = false;\r\n private _subscriptions = new Subscription();\r\n\r\n constructor(private _userService: UserService,\r\n private _toaster: ToasterService,\r\n private router: Router,\r\n private route: ActivatedRoute) { }\r\n\r\n ngOnInit() {\r\n //this.userType = new FormControl('', Validators.required)\r\n this.firstName = new FormControl('', Validators.compose([Validators.required, Validators.maxLength(50), Validators.pattern('[a-zA-Z][a-zA-Z ]+')]))\r\n this.lastName = new FormControl('', Validators.compose([Validators.required, Validators.maxLength(50), Validators.pattern('[a-zA-Z][a-zA-Z ]+')]))\r\n this.emailId = new FormControl('', Validators.compose([Validators.required, Validators.maxLength(50), Validators.pattern(/^([a-zA-Z0-9_\\-\\.]+)@([a-zA-Z0-9_\\-\\.]+)\\.([a-zA-Z]{2,5})$/)]))\r\n this.company = new FormControl('', [Validators.maxLength(50), Validators.pattern(/^[-. a-zA-Z0-9]+$/)])\r\n\r\n this.newUserRegisterForm = new FormGroup({\r\n //userType: this.userType,\r\n emailId: this.emailId,\r\n firstName: this.firstName,\r\n lastName: this.lastName,\r\n company: this.company\r\n })\r\n\r\n //For Edit\r\n this._subscriptions.add(\r\n this.route.queryParams.subscribe(params => {\r\n this.userId = parseInt(params['Id']);\r\n this.userId = isNaN(this.userId) ? 0 : this.userId;\r\n }));\r\n\r\n if (this.userId && this.userId != 0) {\r\n this.userRegistrationDetails = JSON.parse(sessionStorage.getItem('userData'));\r\n this.firstName.setValue(this.userRegistrationDetails.firstName);\r\n this.lastName.setValue(this.userRegistrationDetails.lastName);\r\n this.emailId.setValue(this.userRegistrationDetails.userName);\r\n this.company.setValue(this.userRegistrationDetails.company);\r\n }\r\n }\r\n\r\n registerUserSave(formValues) {\r\n this.addUser = true;\r\n //Update User Registration (Internal & External)\r\n if (this.userId && this.userId != 0) {\r\n this.userRegistrationDetails = {\r\n userName: formValues.emailId,\r\n firstName: formValues.firstName,\r\n lastName: formValues.lastName,\r\n isExternal: this.userRegistrationDetails.isExternal,\r\n isActive: true,\r\n company: formValues.company,\r\n id: this.userId,\r\n userType: this.userRegistrationDetails.userType,\r\n status: \"true\"\r\n }\r\n }\r\n // New User Registration only External\r\n else {\r\n this.userRegistrationDetails = {\r\n userName: formValues.emailId,\r\n firstName: formValues.firstName,\r\n lastName: formValues.lastName,\r\n isExternal: true,//formValues.userType == 'External' ? true : false, \r\n isActive: true,\r\n company: formValues.company,\r\n id: 0,\r\n userType: 'External',//formValues.userType,\r\n status: \"true\"\r\n }\r\n }\r\n\r\n this._subscriptions.add(\r\n this._userService.addUpdateUserRegistration(this.userRegistrationDetails)\r\n .subscribe(\r\n res => {\r\n if (this.userId && this.userId != 0)\r\n this._toaster.success(\"User info updated successfully!!\");\r\n else\r\n this._toaster.success(\"User registered successfully!!\");\r\n this.newUserRegisterForm.reset();\r\n this.addUser = false;\r\n this.router.navigate(['administration/userlookup']);\r\n },\r\n (error) => {\r\n this.addUser = false;\r\n }\r\n )\r\n )\r\n }\r\n\r\n resetform() {\r\n this.newUserRegisterForm.reset();\r\n }\r\n\r\n}\r\n","export default \".card {\\n box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);\\n padding: 16px;\\n text-align: center;\\n background-color: #f1f1f1;\\n border-left: 3px solid #ffee56;\\n}\\n\\n/*.form-control:focus {\\n border-color: $eyGrey;\\n box-shadow: 0px 1px 1px $eyYellow inset, 0px 0px 8px $eyYellow;\\n}*/\\n\\n/*label {\\n border-left: 3px solid $eyYellow;\\n padding-left: 4px;\\n border-top: 0.51px solid $eyYellow;\\n}\\n\\ninput, select {\\n border: 1px solid $eyGrey;\\n}*/\\n\\n.btn-warning {\\n color: #212529;\\n background-color: #ffee56;\\n border-color: #ffee56;\\n}\\n\\n.btn-warning:hover, .btn-warning:focus, .btn-warning.active {\\n background-color: #ffe500;\\n border-color: #ffe500;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9hZG1pbmlzdHJhdGlvbi91c2Vycm9sZW1hbmFnZW1lbnQvQzpcXFVzZXJzXFxLTjYyNFFYXFxzb3VyY2VcXEdpdFxcY3RwLWNiYWFzLWNsaWVudC1wb3J0YWxcXENCYWFTLkhJTC5DbGllbnRQb3J0YWwuV2ViXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGFkbWluaXN0cmF0aW9uXFx1c2Vycm9sZW1hbmFnZW1lbnRcXHVzZXJyb2xlbWFuYWdlbWVudC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50cy9hZG1pbmlzdHJhdGlvbi91c2Vycm9sZW1hbmFnZW1lbnQvdXNlcnJvbGVtYW5hZ2VtZW50LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBO0VBQ0UsMENBQUE7RUFDQSxhQUFBO0VBQ0Esa0JBQUE7RUFDQSx5QkFBQTtFQUNBLDhCQUFBO0FDSkY7O0FEUUE7OztFQUFBOztBQUtBOzs7Ozs7OztFQUFBOztBQVVBO0VBQ0UsY0FBQTtFQUNBLHlCQS9CUztFQWdDVCxxQkFoQ1M7QUN5Qlg7O0FEU0U7RUFDRSx5QkFsQ1c7RUFtQ1gscUJBbkNXO0FDNEJmIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9hZG1pbmlzdHJhdGlvbi91c2Vycm9sZW1hbmFnZW1lbnQvdXNlcnJvbGVtYW5hZ2VtZW50LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiJGV5WWVsbG93OiAjZmZlZTU2O1xyXG4kZXlEYXJrWWVsbG93OiAjZmZlNTAwO1xyXG4kZXlHcmV5OiAjODI3YjdiO1xyXG4kZXlEYXJrR3JleTogIzMzMzMzMztcclxuXHJcbi5jYXJkIHtcclxuICBib3gtc2hhZG93OiAwIDRweCA4cHggMCByZ2JhKDAsIDAsIDAsIDAuMik7XHJcbiAgcGFkZGluZzogMTZweDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjFmMTtcclxuICBib3JkZXItbGVmdDogM3B4IHNvbGlkICRleVllbGxvdztcclxufVxyXG5cclxuXHJcbi8qLmZvcm0tY29udHJvbDpmb2N1cyB7XHJcbiAgYm9yZGVyLWNvbG9yOiAkZXlHcmV5O1xyXG4gIGJveC1zaGFkb3c6IDBweCAxcHggMXB4ICRleVllbGxvdyBpbnNldCwgMHB4IDBweCA4cHggJGV5WWVsbG93O1xyXG59Ki9cclxuXHJcbi8qbGFiZWwge1xyXG4gIGJvcmRlci1sZWZ0OiAzcHggc29saWQgJGV5WWVsbG93O1xyXG4gIHBhZGRpbmctbGVmdDogNHB4O1xyXG4gIGJvcmRlci10b3A6IDAuNTFweCBzb2xpZCAkZXlZZWxsb3c7XHJcbn1cclxuXHJcbmlucHV0LCBzZWxlY3Qge1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICRleUdyZXk7XHJcbn0qL1xyXG5cclxuLmJ0bi13YXJuaW5nIHtcclxuICBjb2xvcjogIzIxMjUyOTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZXlZZWxsb3c7XHJcbiAgYm9yZGVyLWNvbG9yOiAkZXlZZWxsb3c7XHJcblxyXG4gICY6aG92ZXIsICY6Zm9jdXMsICYuYWN0aXZlIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRleURhcmtZZWxsb3c7XHJcbiAgICBib3JkZXItY29sb3I6ICRleURhcmtZZWxsb3c7XHJcbiAgfVxyXG59XHJcbiIsIi5jYXJkIHtcbiAgYm94LXNoYWRvdzogMCA0cHggOHB4IDAgcmdiYSgwLCAwLCAwLCAwLjIpO1xuICBwYWRkaW5nOiAxNnB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMWYxZjE7XG4gIGJvcmRlci1sZWZ0OiAzcHggc29saWQgI2ZmZWU1Njtcbn1cblxuLyouZm9ybS1jb250cm9sOmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiAkZXlHcmV5O1xuICBib3gtc2hhZG93OiAwcHggMXB4IDFweCAkZXlZZWxsb3cgaW5zZXQsIDBweCAwcHggOHB4ICRleVllbGxvdztcbn0qL1xuLypsYWJlbCB7XG4gIGJvcmRlci1sZWZ0OiAzcHggc29saWQgJGV5WWVsbG93O1xuICBwYWRkaW5nLWxlZnQ6IDRweDtcbiAgYm9yZGVyLXRvcDogMC41MXB4IHNvbGlkICRleVllbGxvdztcbn1cblxuaW5wdXQsIHNlbGVjdCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRleUdyZXk7XG59Ki9cbi5idG4td2FybmluZyB7XG4gIGNvbG9yOiAjMjEyNTI5O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlZTU2O1xuICBib3JkZXItY29sb3I6ICNmZmVlNTY7XG59XG4uYnRuLXdhcm5pbmc6aG92ZXIsIC5idG4td2FybmluZzpmb2N1cywgLmJ0bi13YXJuaW5nLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmU1MDA7XG4gIGJvcmRlci1jb2xvcjogI2ZmZTUwMDtcbn0iXX0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { Inject } from '@angular/core';\r\nimport { UserService } from 'src/app/services/core/user/user.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Subscription } from 'rxjs';\r\nimport { IUserRoleDetails } from 'src/app/models/user-role-details';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ConfigurationSettings } from 'src/app/models/configuration.settings';\r\nimport { startWith, map, debounceTime, tap, switchMap, finalize } from 'rxjs/operators';\r\nimport { IRoles } from 'src/app/models/roles';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { ToasterService } from '../../../services/shared/toaster/toaster.service';\r\nimport { MatDialog } from '@angular/material';\r\nimport { WarningPopupComponent } from '../../shared/warning-popup/warning-popup.component';\r\n\r\n@Component({\r\n selector: 'app-userrolemanagement',\r\n templateUrl: './userrolemanagement.component.html',\r\n styleUrls: ['./userrolemanagement.component.scss']\r\n})\r\nexport class UserrolemanagementComponent implements OnInit {\r\n paginationPageSize = 50;\r\n newUserRoleForm: FormGroup;\r\n UserName: FormControl;\r\n Role: FormControl;\r\n UserType: FormControl;\r\n roles: IRoles[] = [];\r\n userRoles: IUserRoleDetails[] = [];\r\n botConfigId: number;\r\n botData: any;\r\n selectedRole: string = '';\r\n private _subscriptions = new Subscription();\r\n isSearching: boolean;\r\n filteredOptions: any;\r\n private gridApi;\r\n private gridColumnApi;\r\n columnDefs: any[] = [];\r\n sortingOrder;\r\n defaultColDef;\r\n addUserRole: boolean = false;\r\n userType: string;\r\n selectedUserId: string;\r\n UserManagement: any;\r\n isRoleValidForUser: boolean = true;\r\n constructor(private userService: UserService,\r\n private toasterService: ToasterService,\r\n private toastr: ToastrService,\r\n private http: HttpClient,\r\n private configurationSettings: ConfigurationSettings,\r\n private route: ActivatedRoute,\r\n private dialogWarning: MatDialog) {\r\n this.isSearching = false;\r\n }\r\n rowData = [];\r\n ngOnInit() {\r\n this.botData = JSON.parse(sessionStorage.getItem('botData'));\r\n this.botConfigId = this.botData.botConfigId;\r\n this.createColumnDefs();\r\n this.UserType = new FormControl('', Validators.required)\r\n this.UserName = new FormControl({ value: '', disabled: true }, Validators.compose([Validators.required, Validators.maxLength(50), Validators.pattern(/^([a-zA-Z0-9_\\-\\.]+)@([a-zA-Z0-9_\\-\\.]+)\\.([a-zA-Z]{2,5})$/)]))\r\n this.Role = new FormControl({ value: '', disabled: true }, Validators.required)\r\n\r\n this.newUserRoleForm = new FormGroup({\r\n UserName: this.UserName,\r\n Role: this.Role,\r\n UserType: this.UserType\r\n })\r\n\r\n this._subscriptions.add(\r\n this.userService.getRoles()\r\n .subscribe(\r\n res => {\r\n this.roles = res;\r\n this.getAllUserRoles(this.botConfigId);\r\n },\r\n (error) => {\r\n this.toasterService.error(\"Unable to retrieve Roles\");\r\n }\r\n )\r\n )\r\n }\r\n\r\n getAllUserRoles(botConfigId: number) {\r\n this._subscriptions.add(\r\n this.userService.getAllUserRoles(botConfigId)\r\n .subscribe(\r\n res => {\r\n this.rowData = res;\r\n },\r\n (error) => {\r\n this.toasterService.error(\"Unable to retrieve User-Roles\");\r\n }\r\n )\r\n )\r\n }\r\n\r\n onItemChange(Value) {\r\n this.userType = this.newUserRoleForm.value.UserType;\r\n this.UserName.setValue(\"\");\r\n this.Role.setValue(\"\");\r\n this.UserName.enable();\r\n this.Role.enable();\r\n this.peoplePickerFn();\r\n }\r\n\r\n onSelectionChanged(selectedUser) {\r\n this.selectedUserId = selectedUser;\r\n }\r\n\r\n peoplePickerFn() {\r\n this.UserName.valueChanges.subscribe(newValue => {\r\n this.UserManagement = { UserName: newValue, UserType: this.userType }\r\n });\r\n this.UserName.valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n map(value => value ? typeof value === 'string' ? value.length >= 3 ? value : [] : value.emailAddress : []),\r\n tap(() => {\r\n this.filteredOptions = [];\r\n this.isSearching = true;\r\n }),\r\n switchMap(value => this.http.post(this.configurationSettings.user_api_endpoint + \"/GetMatchingUsers\", this.UserManagement)\r\n .pipe(\r\n finalize(() => {\r\n this.isSearching = false\r\n }),\r\n )\r\n )\r\n )\r\n .subscribe(data => {\r\n if (data) {\r\n this.filteredOptions = data;\r\n }\r\n });\r\n }\r\n\r\n registerUserSave(formValues) {\r\n this.userRoles = [];\r\n if (this.selectedUserId != formValues.UserName) {\r\n this.toasterService.error(\"Invalid user\");\r\n }\r\n else {\r\n //this.spinner.show();\r\n for (let i = 0; i < formValues.Role.length; i++) {\r\n this.userRoles[i] = {\r\n botConfigId: this.botConfigId,\r\n username: formValues.UserName,\r\n userId: 0,\r\n roleId: this.roles.findIndex(item => item.displayName === formValues.Role[i]) > -1 ? this.roles[this.roles.findIndex(item => item.displayName === formValues.Role[i])].id : 0,\r\n role: formValues.Role[i],\r\n firstname: \"\",\r\n lastname: \"\",\r\n isExternal: formValues.UserType == 'External' ? true : false,\r\n privacyStatementFlag: true\r\n };\r\n\r\n if (formValues.Role[i].toLowerCase() === \"chat manager\") {\r\n let isAgentOrSA = this.rowData.find(ob => ob.username.toLowerCase() === formValues.UserName.toLowerCase() && (ob.role.toLowerCase().includes(\"agent\") || ob.role.toLowerCase().includes(\"senior agent\")));\r\n if (isAgentOrSA || isAgentOrSA != null) {\r\n this.isRoleValidForUser = false;\r\n }\r\n }\r\n else if (formValues.Role[i].toLowerCase() === \"agent\" || formValues.Role[i].toLowerCase() === \"senior agent\") {\r\n let isChatManager = this.rowData.find(ob => ob.username.toLowerCase() === formValues.UserName.toLowerCase() && ob.role.toLowerCase().includes(\"chat manager\"));\r\n if (isChatManager || isChatManager != null) {\r\n this.isRoleValidForUser = false;\r\n }\r\n }\r\n else {\r\n this.isRoleValidForUser = true;\r\n }\r\n }\r\n\r\n let data = this.rowData.find(ob => ob.username.toLowerCase() === formValues.UserName.toLowerCase() && ob.role === formValues.Role[0]);\r\n\r\n if (this.isRoleValidForUser === false) {\r\n this.toasterService.error(\"Selected user role(s) conflicts with existing roles for the user.\");\r\n }\r\n else {\r\n if (!data || data === null) {\r\n this.addUserRole = true;\r\n this._subscriptions.add(\r\n this.userService.addUserRoles(this.userRoles)\r\n .subscribe(\r\n res => {\r\n this.toasterService.success(\"Successfully added User role\");\r\n this.newUserRoleForm.markAsUntouched();\r\n this.newUserRoleForm.reset();\r\n this.rowData = res;\r\n this.UserName.disable();\r\n this.Role.disable();\r\n this.peoplePickerFn();\r\n this.addUserRole = false;\r\n },\r\n (error) => {\r\n this.addUserRole = false;\r\n }\r\n )\r\n )\r\n }\r\n else {\r\n this.toasterService.error(\"User role mapping already exists\");\r\n }\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._subscriptions.unsubscribe();\r\n }\r\n\r\n\r\n createColumnDefs() {\r\n const customComparator = (valueA, valueB) => {\r\n valueA = valueA ? valueA : '';\r\n valueB = valueB ? valueB : '';\r\n return valueA.toLowerCase().localeCompare(valueB.toLowerCase());\r\n };\r\n const columnDefs = [\r\n { headerName: 'User', field: 'username', width: 200, comparator: customComparator, filter: true, sortable: true, sortingOrder: [\"asc\", \"desc\"] },\r\n { headerName: 'Role', field: 'role', width: 100, comparator: customComparator, filter: true, sortable: true, sortingOrder: [\"asc\", \"desc\"] },\r\n { headerName: 'Delete', width: 90, cellRenderer: this.deleteCellRenderer.bind(this) },\r\n ]\r\n this.columnDefs = columnDefs;\r\n }\r\n\r\n deleteCellRenderer(userRole: any) {\r\n const element = document.createElement('span');\r\n\r\n let template = '';\r\n element.innerHTML = template;\r\n element.addEventListener('click', () => {\r\n this.openWarning(userRole);\r\n });\r\n return element;\r\n }\r\n\r\n openWarning(userRole: any) {\r\n let dialogRef = this.dialogWarning.open(WarningPopupComponent, {\r\n height: '27%',\r\n width: '35%',\r\n autoFocus: false,\r\n data: userRole\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.getAllUserRoles(userRole.data.botConfigId);\r\n })\r\n }\r\n\r\n onGridReady(params) {\r\n this.gridApi = params.api;\r\n this.gridApi.sizeColumnsToFit();\r\n this.gridColumnApi = params.columnApi;\r\n this.gridApi.setDomLayout(\"autoHeight\");\r\n }\r\n\r\n onRoleSelectionChange() {\r\n const selectedRoles = this.Role.value as string[];\r\n const isCMSelected = selectedRoles.includes('Chat Manager');\r\n const areSAndASelected = selectedRoles.includes('Senior Agent') || selectedRoles.includes('Agent');\r\n\r\n if (isCMSelected) {\r\n if (selectedRoles.includes('Senior Agent') || selectedRoles.includes('Agent')) {\r\n const updatedRoles = selectedRoles.filter(role => role !== 'Senior Agent' && role !== 'Agent');\r\n this.Role.setValue(updatedRoles);\r\n }\r\n }\r\n else if (areSAndASelected) {\r\n if (selectedRoles.includes('Chat Manager')) {\r\n const updatedRoles = selectedRoles.filter(role => role !== 'Chat Manager');\r\n this.Role.setValue(updatedRoles);\r\n }\r\n }\r\n }\r\n\r\n}\r\n","export default \".closebutton {\\n cursor: pointer;\\n float: right;\\n}\\n\\n.active-agent-card {\\n box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);\\n padding: 14px;\\n background-color: #f1f1f1;\\n border-left: 3px solid #ffee56;\\n min-width: 14px;\\n width: 100%;\\n cursor: pointer;\\n}\\n\\n.active-agent-card:hover, .active-agent-card:focus, .active-agent-card.active {\\n cursor: pointer;\\n}\\n\\n.btn-warning {\\n color: #212529;\\n background-color: #ffee56;\\n border-color: #ffee56;\\n}\\n\\n.btn-warning:hover, .btn-warning:focus, .btn-warning.active {\\n background-color: #ffe500;\\n border-color: #ffe500;\\n}\\n\\n.lbl-no-active {\\n color: gray;\\n font-size: smaller;\\n margin-left: 26px;\\n margin-top: 10px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb252ZXJzYXRpb24vYWRkLW5ldy1hZ2VudC9DOlxcVXNlcnNcXEtONjI0UVhcXHNvdXJjZVxcR2l0XFxjdHAtY2JhYXMtY2xpZW50LXBvcnRhbFxcQ0JhYVMuSElMLkNsaWVudFBvcnRhbC5XZWJcXENsaWVudEFwcC9zcmNcXGFwcFxcY29tcG9uZW50c1xcY29udmVyc2F0aW9uXFxhZGQtbmV3LWFnZW50XFxhZGQtbmV3LWFnZW50LmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnRzL2NvbnZlcnNhdGlvbi9hZGQtbmV3LWFnZW50L2FkZC1uZXctYWdlbnQuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0E7RUFDSSxlQUFBO0VBQ0EsWUFBQTtBQ05KOztBRFNBO0VBQ0UsMENBQUE7RUFDQSxhQUFBO0VBQ0EseUJBQUE7RUFDQSw4QkFBQTtFQUNBLGVBQUE7RUFDQSxXQUFBO0VBQ0EsZUFBQTtBQ05GOztBRFFFO0VBQ0UsZUFBQTtBQ05KOztBRFVBO0VBQ0UsY0FBQTtFQUNBLHlCQTVCUztFQTZCVCxxQkE3QlM7QUNzQlg7O0FEU0U7RUFDRSx5QkEvQlc7RUFnQ1gscUJBaENXO0FDeUJmOztBRFdBO0VBQ0UsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsaUJBQUE7RUFDQSxnQkFBQTtBQ1JGIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9jb252ZXJzYXRpb24vYWRkLW5ldy1hZ2VudC9hZGQtbmV3LWFnZW50LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiJGV5WWVsbG93OiAjZmZlZTU2O1xyXG4kZXlEYXJrWWVsbG93OiAjZmZlNTAwO1xyXG4kZXlMaWdodFllbGxvdzogI2ZmZjljNztcclxuJGV5R3JleTogIzgyN2I3YjtcclxuJGV5RGFya0dyZXk6ICMzMzMzMzM7XHJcbiRleUxpZ2h0R3JleTogI2ViZWJlYjtcclxuXHJcbi5jbG9zZWJ1dHRvbiB7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBmbG9hdDogcmlnaHQ7XHJcbiAgfVxyXG5cclxuLmFjdGl2ZS1hZ2VudC1jYXJkIHtcclxuICBib3gtc2hhZG93OiAwIDRweCA4cHggMCByZ2JhKDAsIDAsIDAsIDAuMik7XHJcbiAgcGFkZGluZzogMTRweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMWYxO1xyXG4gIGJvcmRlci1sZWZ0OiAzcHggc29saWQgI2ZmZWU1NjtcclxuICBtaW4td2lkdGg6IDE0cHg7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG5cclxuICAmOmhvdmVyLCAmOmZvY3VzLCAmLmFjdGl2ZSB7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgfVxyXG59XHJcblxyXG4uYnRuLXdhcm5pbmcge1xyXG4gIGNvbG9yOiAjMjEyNTI5O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRleVllbGxvdztcclxuICBib3JkZXItY29sb3I6ICRleVllbGxvdztcclxuXHJcbiAgJjpob3ZlciwgJjpmb2N1cywgJi5hY3RpdmUge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGV5RGFya1llbGxvdztcclxuICAgIGJvcmRlci1jb2xvcjogJGV5RGFya1llbGxvdztcclxuICB9XHJcbn1cclxuXHJcbi5sYmwtbm8tYWN0aXZleyAgXHJcbiAgY29sb3I6IGdyYXk7XHJcbiAgZm9udC1zaXplOiBzbWFsbGVyO1xyXG4gIG1hcmdpbi1sZWZ0OiAyNnB4O1xyXG4gIG1hcmdpbi10b3A6IDEwcHg7XHJcbn1cclxuIiwiLmNsb3NlYnV0dG9uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbi5hY3RpdmUtYWdlbnQtY2FyZCB7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDhweCAwIHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgcGFkZGluZzogMTRweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjFmMTtcbiAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCAjZmZlZTU2O1xuICBtaW4td2lkdGg6IDE0cHg7XG4gIHdpZHRoOiAxMDAlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uYWN0aXZlLWFnZW50LWNhcmQ6aG92ZXIsIC5hY3RpdmUtYWdlbnQtY2FyZDpmb2N1cywgLmFjdGl2ZS1hZ2VudC1jYXJkLmFjdGl2ZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmJ0bi13YXJuaW5nIHtcbiAgY29sb3I6ICMyMTI1Mjk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmVlNTY7XG4gIGJvcmRlci1jb2xvcjogI2ZmZWU1Njtcbn1cbi5idG4td2FybmluZzpob3ZlciwgLmJ0bi13YXJuaW5nOmZvY3VzLCAuYnRuLXdhcm5pbmcuYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZTUwMDtcbiAgYm9yZGVyLWNvbG9yOiAjZmZlNTAwO1xufVxuXG4ubGJsLW5vLWFjdGl2ZSB7XG4gIGNvbG9yOiBncmF5O1xuICBmb250LXNpemU6IHNtYWxsZXI7XG4gIG1hcmdpbi1sZWZ0OiAyNnB4O1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufSJdfQ== */\"","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Router, RouterEvent, NavigationStart } from '@angular/router';\r\nimport { filter, debounceTime, map, tap, switchMap, finalize } from 'rxjs/operators';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { ConfigurationSettings } from 'src/app/models/configuration.settings';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { HubConnection } from '@microsoft/signalr';\r\nimport { CommunicationService } from 'src/app/services/shared/communication/communication.service';\r\nimport { ToasterService } from 'src/app/services/shared/toaster/toaster.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { UserService } from 'src/app/services/core/user/user.service';\r\nimport { IHandOffComments } from 'src/app/models/handoff-comment';\r\nimport { TokenService } from 'src/app/services/core/token/token.service';\r\nimport { IChatHistory, IConversationHistory } from 'src/app/models/chat-history';\r\n\r\n@Component({\r\n selector: 'app-add-new-agent',\r\n templateUrl: './add-new-agent.component.html',\r\n styleUrls: ['./add-new-agent.component.scss']\r\n})\r\nexport class AddNewAgentComponent implements OnInit { \r\n _routerSubscription: any;\r\n botInfo: any;\r\n agentHandOffComment: string;\r\n AddLeaveClicked: boolean = false;\r\n addAgentClicked: boolean = false;\r\n handOffDetails: IHandOffComments;\r\n type: string;\r\n allSelected: boolean = true;\r\n isValidChatManagerRole = false;\r\n private _hubConnection: HubConnection;\r\n activeChatbotHistory: IChatHistory[] = [];\r\n hasAssociatedBot: boolean = false;\r\n associatedBotName: string;\r\n associatedBotId: number;\r\n isAssociatedBotAgents: boolean = false;\r\n isActiveAgentsTab: boolean;\r\n isActiveAssociatedAgentsTab: boolean;\r\n\r\n private _subscriptions = new Subscription();\r\n\r\n agentsInfo = [];\r\n allagentsInfo = []\r\n allAssociatedAgentsInfo = [];\r\n selectedActiveAgent: any;\r\n\r\n showActiveAgentsCardContainer = false;\r\n showSelectedActiveAgentContainer = false;\r\n\r\n constructor(private dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private router: Router,\r\n private configurationSettings: ConfigurationSettings,\r\n private http: HttpClient,\r\n private service: CommunicationService,\r\n private toasterService: ToasterService,\r\n private userService: UserService,\r\n private tokenService: TokenService) { \r\n this.addAgentClicked = false; \r\n }\r\n\r\n ngOnInit() {\r\n this._routerSubscription = this.router.events\r\n .pipe(\r\n filter((event: RouterEvent) => event instanceof NavigationStart),\r\n filter(() => !!this.dialogRef)\r\n )\r\n .subscribe(() => {\r\n this.dialogRef.close();\r\n });\r\n\r\n this.botInfo = JSON.parse(this.data); /* console.log(this.botInfo);*/\r\n\r\n this.hasAssociatedBot = this.botInfo.HasAssociatedBot;\r\n this.associatedBotId = this.botInfo.AssociatedBotId;\r\n this.associatedBotName = this.botInfo.AssociatedBotName;\r\n\r\n this.getAllActiveAgentsInfo(this.botInfo.BotConfigId);\r\n this._hubConnection = this.service.GetHubConnection();\r\n this.isValidChatManagerRole = this.botInfo.IsValidChatManagerRole;\r\n }\r\n\r\n AddAgentNew(selectedAgent: any) {\r\n this.addAgentClicked = true;\r\n if (selectedAgent.emailAddress.toLowerCase() == this.botInfo.AddedByAgentId.toLowerCase()) {\r\n this.toasterService.error(\"Error: Invalid Agent selection\");\r\n }\r\n else {\r\n\r\n let currentAgentChatHistory = this.botInfo.Conversations.map(item => { \r\n return {\r\n date: new Date(),\r\n botConversations: [\r\n {\r\n sender: item.Sender,\r\n message: item.Message,\r\n type: item.Type == \"send\" || (item.Type == \"receive\" && item.Sender != this.botInfo.BotUserName) ? 'Agent' : item.Type == \"receive\" && item.Sender == this.botInfo.BotUserName ? 'User' : (item.Type == \"addNotification\" || item.Type == \"removeNotification\") ? 'System' : 'Bot',\r\n date: item.DateTime,\r\n conversationId: item.ConversationId\r\n }\r\n ]\r\n }\r\n })\r\n\r\n currentAgentChatHistory.forEach(e => {\r\n if (e.message == '*#grant') {\r\n e.message = 'Permission granted for file upload';\r\n }\r\n\r\n })\r\n\r\n //Below line was commented,ChatHistory contains many data, due to heavy data passing to middleware, the connection gets closed in between, will reload all the chats via middleware to portal\r\n //currentAgentChatHistory.forEach(item => this.botInfo.ChatHistory.push(item));\r\n\r\n var today = new Date();\r\n var date = today.getFullYear() + '-' + (today.getMonth() + 1) + '-' + today.getDate();\r\n var time = today.getHours() + \":\" + today.getMinutes() + \":\" + today.getSeconds();\r\n var currentDateTime = date + ' ' + time;\r\n this.handOffDetails = {\r\n handOffBy: 'Agent ' + this.botInfo.AddedByAgentId,\r\n handOffTo: 'Agent ' + selectedAgent.emailAddress,\r\n handOffComment: this.agentHandOffComment,\r\n handOffTime: currentDateTime\r\n };\r\n this.botInfo.HandOffInfo.push(this.handOffDetails);\r\n const botInfoForAddAgent =\r\n {\r\n BotId: this.botInfo.BotId,\r\n BotConfigId: this.botInfo.BotConfigId,\r\n BotUserId: this.botInfo.BotUserId,\r\n ConversationId: this.botInfo.ConversationId,\r\n BotUserName: this.botInfo.BotUserName,\r\n ChatHistory: currentAgentChatHistory, // passing current agent-user conversations\r\n HandOffInfo: this.botInfo.HandOffInfo,\r\n Domain: \"\",\r\n BotName: this.botInfo.BotName,\r\n NewAgentId: selectedAgent.emailAddress,\r\n AddedByAgentId: this.botInfo.AddedByAgentId,\r\n HandOffTime: currentDateTime,\r\n HasAssociatedBot: this.hasAssociatedBot,\r\n IsAssociatedBotAgent: this.isAssociatedBotAgents,\r\n AssociatedBotConfigId: this.associatedBotId,\r\n AssociatedBotName: this.associatedBotName\r\n }\r\n \r\n\r\n if (this.AddLeaveClicked) {\r\n let method = \"AgentEscalationAddAndLeave\";\r\n this._hubConnection\r\n .invoke(method, botInfoForAddAgent)\r\n .then(() => {\r\n this.onClose()\r\n })\r\n .catch(err => {\r\n this.toasterService.error(\"Error : \" + err.message.toString());\r\n })\r\n } else {\r\n let method = \"AgentEscalationAddAndStay\";\r\n this._hubConnection\r\n .invoke(method, botInfoForAddAgent)\r\n .then(() => {\r\n this.onClose()\r\n })\r\n .catch(err => {\r\n })\r\n }\r\n }\r\n }\r\n\r\n onAddLeaveClick(): void {\r\n this.AddLeaveClicked = true;\r\n this.AddAgentNew(this.selectedActiveAgent);\r\n }\r\n\r\n onAddStayClick(): void {\r\n this.AddLeaveClicked = false;\r\n this.AddAgentNew(this.selectedActiveAgent);\r\n }\r\n\r\n applyAgentTypeFilter(agentRole: any) {\r\n this.closeSelectedActiveAgentCard();\r\n if (agentRole != \"All\") {\r\n this.allSelected = false;\r\n this.agentsInfo = [];\r\n if (this.allagentsInfo && this.allagentsInfo.length > 0) {\r\n this.agentsInfo = this.allagentsInfo.filter(x => x.userAgentRole == agentRole || x.userAgentRole == \"Both\");\r\n this.isAssociatedBotAgents = false; // to hide/ show Add & Stay Button based on Agent selection, if the selected agent is an Associated Bot Agent\r\n }\r\n if (agentRole == \"AssociatedAgent\") {\r\n if (this.allAssociatedAgentsInfo && this.allAssociatedAgentsInfo.length > 0) {\r\n this.agentsInfo = this.allAssociatedAgentsInfo.filter(x => x.userAgentRole == agentRole);\r\n this.isAssociatedBotAgents = true; // to show Add & Stay Button based on Agent selection, if the selected agent is an Associated Bot Agent\r\n }\r\n }\r\n }\r\n else {\r\n this.allSelected = true;\r\n this.agentsInfo = this.allagentsInfo;\r\n this.isAssociatedBotAgents = false; // to hide/ show Add & Stay Button based on Agent selection, if the selected agent is an Associated Bot Agent\r\n }\r\n\r\n if (agentRole == \"AssociatedAgent\") {\r\n this.isActiveAssociatedAgentsTab = true;\r\n this.isActiveAgentsTab = false;\r\n }\r\n else {\r\n this.isActiveAssociatedAgentsTab = false;\r\n this.isActiveAgentsTab = true;\r\n }\r\n\r\n }\r\n\r\n getAllActiveAgentsInfo(botConfigId: number) {\r\n this._subscriptions.add(\r\n this.userService.getAllActiveAgents(botConfigId, this.associatedBotId)\r\n .subscribe(\r\n res => { \r\n let allActiveAgents = res.filter(x => x.emailAddress.toLowerCase() != this.botInfo.AddedByAgentId.toLowerCase() && this.botInfo.GroupChatAgents.agentEmailId.indexOf(x.emailAddress.toLowerCase()) < 0);\r\n this.allagentsInfo = allActiveAgents.filter(x => x.userAgentRole != 'AssociatedAgent');\r\n this.agentsInfo = allActiveAgents.filter(x => x.userAgentRole != 'AssociatedAgent'); // Avoiding to get associated agents list in initiall agent escalation pop up\r\n this.allAssociatedAgentsInfo = allActiveAgents.filter(x => x.userAgentRole == 'AssociatedAgent'); // To obtain associated agents to a seperate array\r\n\r\n this.isActiveAgentsTab = true;\r\n this.showActiveAgentsCardContainer = true;\r\n this.showSelectedActiveAgentContainer = false;\r\n this.allSelected = true;\r\n },\r\n (error) => {\r\n console.log(\"Error in Escalate getAllActiveAgentsInfo: \");\r\n console.log(error);\r\n if (error != 'Internal Server Error')\r\n this.getRefreshToken();\r\n else\r\n this.toasterService.error(\"Unable to retrieve active Agents\");\r\n }\r\n )\r\n )\r\n }\r\n\r\n getRefreshToken() {\r\n console.log(\"GetRefreshToken called for Escalate\")\r\n this.tokenService.getRefreshToken()\r\n .subscribe(\r\n res => {\r\n let objToken = res;\r\n localStorage.setItem('accessToken', objToken.token);\r\n localStorage.setItem('refreshToken', objToken.refreshToken);\r\n this.getAllActiveAgentsInfo(this.botInfo.BotConfigId);\r\n },\r\n (error) => {\r\n console.log(\"Error in Escalate GetRefreshToken:\");\r\n console.log(error);\r\n }\r\n );\r\n }\r\n\r\n closeSelectedActiveAgentCard() {\r\n this.showActiveAgentsCardContainer = true;\r\n this.showSelectedActiveAgentContainer = false;\r\n }\r\n\r\n onActiveAgentSelection(activeAgent: any) {\r\n this.selectedActiveAgent = activeAgent; \r\n this.showActiveAgentsCardContainer = false;\r\n this.showSelectedActiveAgentContainer = true;\r\n }\r\n\r\n onClose() {\r\n this.dialogRef.close('Close');\r\n }\r\n\r\n}\r\n","export default \".row-fill-available-height {\\n /*height: -webkit-fill-available !important;*/\\n height: calc(-109px + 100vh);\\n overflow: auto;\\n}\\n\\n.menu-container {\\n min-height: 90%;\\n height: 90%;\\n}\\n\\n.menu-container .row {\\n min-height: 100%;\\n}\\n\\n.menu-container .row .col-menu {\\n display: -webkit-inline-box;\\n display: inline-flex;\\n max-width: 50px;\\n}\\n\\n.menu-container .row .col-menu .menu {\\n background: #333333;\\n display: inline-block;\\n white-space: nowrap;\\n width: 50px;\\n -webkit-transition: width 0.5s;\\n transition: width 0.5s;\\n}\\n\\n.menu-container .row .col-menu .menu .item {\\n height: 50px;\\n overflow: hidden;\\n color: #9c9da0;\\n cursor: pointer;\\n outline: 0;\\n}\\n\\n.menu-container .row .col-menu .menu .item:hover, .menu-container .row .col-menu .menu .item:focus, .menu-container .row .col-menu .menu .item.active {\\n background-color: #222;\\n color: #ffffff;\\n border-left: 3px solid #ffE600;\\n}\\n\\n.menu-container .row .col-menu .menu .item:hover .fas, .menu-container .row .col-menu .menu .item:focus .fas, .menu-container .row .col-menu .menu .item.active .fas {\\n color: #ffffff;\\n}\\n\\n.menu-container .row .col-menu .menu .item .fas {\\n margin: 15px;\\n width: 20px;\\n color: #9c9da0;\\n}\\n\\n.menu-container .row .col-menu .menu .item .fas:hover, .menu-container .row .col-menu .menu .item .fas:focus, .menu-container .row .col-menu .menu .item .fas.active {\\n color: #ffffff;\\n}\\n\\n.menu-container .col {\\n padding: 0 !important;\\n margin: 0 !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb252ZXJzYXRpb24vY29udmVyc2F0aW9uc21lbnUvQzpcXFVzZXJzXFxLTjYyNFFYXFxzb3VyY2VcXEdpdFxcY3RwLWNiYWFzLWNsaWVudC1wb3J0YWxcXENCYWFTLkhJTC5DbGllbnRQb3J0YWwuV2ViXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGNvbnZlcnNhdGlvblxcY29udmVyc2F0aW9uc21lbnVcXGNvbnZlcnNhdGlvbnNtZW51LmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnRzL2NvbnZlcnNhdGlvbi9jb252ZXJzYXRpb25zbWVudS9jb252ZXJzYXRpb25zbWVudS5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQTtFQUNFLDZDQUFBO0VBQ0EsNEJBQUE7RUFDQSxjQUFBO0FDTEY7O0FEUUE7RUFDRSxlQUFBO0VBQ0EsV0FBQTtBQ0xGOztBRE9FO0VBQ0UsZ0JBQUE7QUNMSjs7QURPSTtFQUNFLDJCQUFBO0VBQUEsb0JBQUE7RUFDQSxlQUFBO0FDTE47O0FET007RUFDRSxtQkF4Qkk7RUF5QkoscUJBQUE7RUFDQSxtQkFBQTtFQUNBLFdBQUE7RUFDQSw4QkFBQTtFQUFBLHNCQUFBO0FDTFI7O0FET1E7RUFDRSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSxjQS9CRztFQWdDSCxlQUFBO0VBQ0EsVUFBQTtBQ0xWOztBRE9VO0VBQ0Usc0JBQUE7RUFDQSxjQXBDRztFQXFDSCw4QkFBQTtBQ0xaOztBRE9ZO0VBQ0UsY0F4Q0M7QUNtQ2Y7O0FEU1U7RUFDRSxZQUFBO0VBQ0EsV0FBQTtFQUNBLGNBaERDO0FDeUNiOztBRFNZO0VBQ0UsY0FsREM7QUMyQ2Y7O0FEZUU7RUFDRSxxQkFBQTtFQUNBLG9CQUFBO0FDYkoiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2NvbnZlcnNhdGlvbi9jb252ZXJzYXRpb25zbWVudS9jb252ZXJzYXRpb25zbWVudS5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIiRiZ0RlZmF1bHQ6ICMzMzMzMzM7XHJcbiRiZ0hpZ2hsaWdodDogIzAwMDAwMDtcclxuJGNvbERlZmF1bHQ6ICM5YzlkYTA7XHJcbiRjb2xIaWdobGlnaHQ6ICNmZmZmZmY7XHJcbiRiZ0xlZnRCb3JkZXI6ICNmZkU2MDA7XHJcblxyXG4ucm93LWZpbGwtYXZhaWxhYmxlLWhlaWdodCB7XHJcbiAgLypoZWlnaHQ6IC13ZWJraXQtZmlsbC1hdmFpbGFibGUgIWltcG9ydGFudDsqL1xyXG4gIGhlaWdodDogY2FsYygtMTA5cHggKyAxMDB2aCk7XHJcbiAgb3ZlcmZsb3c6IGF1dG87XHJcbn1cclxuXHJcbi5tZW51LWNvbnRhaW5lciB7XHJcbiAgbWluLWhlaWdodDogOTAlO1xyXG4gIGhlaWdodDogOTAlO1xyXG5cclxuICAucm93IHtcclxuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XHJcblxyXG4gICAgLmNvbC1tZW51IHtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgICAgIG1heC13aWR0aDogNTBweDtcclxuXHJcbiAgICAgIC5tZW51IHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAkYmdEZWZhdWx0O1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgICAgIHdpZHRoOiA1MHB4O1xyXG4gICAgICAgIHRyYW5zaXRpb246IHdpZHRoIC41cztcclxuXHJcbiAgICAgICAgLml0ZW0ge1xyXG4gICAgICAgICAgaGVpZ2h0OiA1MHB4O1xyXG4gICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICAgIGNvbG9yOiAkY29sRGVmYXVsdDtcclxuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICAgIG91dGxpbmU6IDA7XHJcblxyXG4gICAgICAgICAgJjpob3ZlciwgJjpmb2N1cywgJi5hY3RpdmUge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyO1xyXG4gICAgICAgICAgICBjb2xvcjogJGNvbEhpZ2hsaWdodDtcclxuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCAkYmdMZWZ0Qm9yZGVyO1xyXG5cclxuICAgICAgICAgICAgLmZhcyB7XHJcbiAgICAgICAgICAgICAgY29sb3I6ICRjb2xIaWdobGlnaHQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAuZmFzIHtcclxuICAgICAgICAgICAgbWFyZ2luOiAxNXB4O1xyXG4gICAgICAgICAgICB3aWR0aDogMjBweDtcclxuICAgICAgICAgICAgY29sb3I6ICRjb2xEZWZhdWx0O1xyXG5cclxuICAgICAgICAgICAgJjpob3ZlciwgJjpmb2N1cywgJi5hY3RpdmUge1xyXG4gICAgICAgICAgICAgIGNvbG9yOiAkY29sSGlnaGxpZ2h0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuY29sIHtcclxuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcclxuICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xyXG4gIH1cclxufVxyXG4iLCIucm93LWZpbGwtYXZhaWxhYmxlLWhlaWdodCB7XG4gIC8qaGVpZ2h0OiAtd2Via2l0LWZpbGwtYXZhaWxhYmxlICFpbXBvcnRhbnQ7Ki9cbiAgaGVpZ2h0OiBjYWxjKC0xMDlweCArIDEwMHZoKTtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi5tZW51LWNvbnRhaW5lciB7XG4gIG1pbi1oZWlnaHQ6IDkwJTtcbiAgaGVpZ2h0OiA5MCU7XG59XG4ubWVudS1jb250YWluZXIgLnJvdyB7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG59XG4ubWVudS1jb250YWluZXIgLnJvdyAuY29sLW1lbnUge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgbWF4LXdpZHRoOiA1MHB4O1xufVxuLm1lbnUtY29udGFpbmVyIC5yb3cgLmNvbC1tZW51IC5tZW51IHtcbiAgYmFja2dyb3VuZDogIzMzMzMzMztcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3aWR0aDogNTBweDtcbiAgdHJhbnNpdGlvbjogd2lkdGggMC41cztcbn1cbi5tZW51LWNvbnRhaW5lciAucm93IC5jb2wtbWVudSAubWVudSAuaXRlbSB7XG4gIGhlaWdodDogNTBweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY29sb3I6ICM5YzlkYTA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3V0bGluZTogMDtcbn1cbi5tZW51LWNvbnRhaW5lciAucm93IC5jb2wtbWVudSAubWVudSAuaXRlbTpob3ZlciwgLm1lbnUtY29udGFpbmVyIC5yb3cgLmNvbC1tZW51IC5tZW51IC5pdGVtOmZvY3VzLCAubWVudS1jb250YWluZXIgLnJvdyAuY29sLW1lbnUgLm1lbnUgLml0ZW0uYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIyMjtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGJvcmRlci1sZWZ0OiAzcHggc29saWQgI2ZmRTYwMDtcbn1cbi5tZW51LWNvbnRhaW5lciAucm93IC5jb2wtbWVudSAubWVudSAuaXRlbTpob3ZlciAuZmFzLCAubWVudS1jb250YWluZXIgLnJvdyAuY29sLW1lbnUgLm1lbnUgLml0ZW06Zm9jdXMgLmZhcywgLm1lbnUtY29udGFpbmVyIC5yb3cgLmNvbC1tZW51IC5tZW51IC5pdGVtLmFjdGl2ZSAuZmFzIHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4ubWVudS1jb250YWluZXIgLnJvdyAuY29sLW1lbnUgLm1lbnUgLml0ZW0gLmZhcyB7XG4gIG1hcmdpbjogMTVweDtcbiAgd2lkdGg6IDIwcHg7XG4gIGNvbG9yOiAjOWM5ZGEwO1xufVxuLm1lbnUtY29udGFpbmVyIC5yb3cgLmNvbC1tZW51IC5tZW51IC5pdGVtIC5mYXM6aG92ZXIsIC5tZW51LWNvbnRhaW5lciAucm93IC5jb2wtbWVudSAubWVudSAuaXRlbSAuZmFzOmZvY3VzLCAubWVudS1jb250YWluZXIgLnJvdyAuY29sLW1lbnUgLm1lbnUgLml0ZW0gLmZhcy5hY3RpdmUge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi5tZW51LWNvbnRhaW5lciAuY29sIHtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbn0iXX0= */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-conversationsmenu',\r\n templateUrl: './conversationsmenu.component.html',\r\n styleUrls: ['./conversationsmenu.component.scss']\r\n})\r\nexport class ConversationsmenuComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n sessionStorage.setItem(\"lastActiveTab\", \"conversation\");\r\n }\r\n\r\n}\r\n","export default \".name-initials-circle-small {\\n background: #cecece;\\n padding: 6px;\\n margin: 6px;\\n border-radius: 10rem;\\n font-weight: 500;\\n font-size: 12px;\\n}\\n\\n.active-groupchat-agents {\\n font-size: 14px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb252ZXJzYXRpb24vZ3JvdXAtY2hhdC1wYXJ0aWNpcGFudHMvQzpcXFVzZXJzXFxLTjYyNFFYXFxzb3VyY2VcXEdpdFxcY3RwLWNiYWFzLWNsaWVudC1wb3J0YWxcXENCYWFTLkhJTC5DbGllbnRQb3J0YWwuV2ViXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXGNvbnZlcnNhdGlvblxcZ3JvdXAtY2hhdC1wYXJ0aWNpcGFudHNcXGdyb3VwLWNoYXQtcGFydGljaXBhbnRzLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnRzL2NvbnZlcnNhdGlvbi9ncm91cC1jaGF0LXBhcnRpY2lwYW50cy9ncm91cC1jaGF0LXBhcnRpY2lwYW50cy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLG1CQUFBO0VBQ0EsWUFBQTtFQUNBLFdBQUE7RUFDQSxvQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZUFBQTtBQ0NKOztBREVFO0VBQ0UsZUFBQTtBQ0NKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9jb252ZXJzYXRpb24vZ3JvdXAtY2hhdC1wYXJ0aWNpcGFudHMvZ3JvdXAtY2hhdC1wYXJ0aWNpcGFudHMuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIubmFtZS1pbml0aWFscy1jaXJjbGUtc21hbGx7XHJcbiAgICBiYWNrZ3JvdW5kOiAjY2VjZWNlO1xyXG4gICAgcGFkZGluZzogNnB4O1xyXG4gICAgbWFyZ2luOiA2cHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxMHJlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICBmb250LXNpemU6IDEycHg7XHJcbiAgfVxyXG5cclxuICAuYWN0aXZlLWdyb3VwY2hhdC1hZ2VudHN7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgfSIsIi5uYW1lLWluaXRpYWxzLWNpcmNsZS1zbWFsbCB7XG4gIGJhY2tncm91bmQ6ICNjZWNlY2U7XG4gIHBhZGRpbmc6IDZweDtcbiAgbWFyZ2luOiA2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDEwcmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5hY3RpdmUtZ3JvdXBjaGF0LWFnZW50cyB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn0iXX0= */\"","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-group-chat-participants',\r\n templateUrl: './group-chat-participants.component.html',\r\n styleUrls: ['./group-chat-participants.component.scss']\r\n})\r\nexport class GroupChatParticipantsComponent implements OnInit {\r\n\r\n _routerSubscription: any;\r\n activeGroupChatAgents: any;\r\n\r\n constructor(private dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private router: Router) {\r\n }\r\n\r\n ngOnInit() {\r\n this.activeGroupChatAgents = JSON.parse(this.data); \r\n }\r\n onClose() {\r\n this.dialogRef.close('Close');\r\n }\r\n \r\n\r\n}\r\n","export default \".chat-window {\\n min-height: 500px;\\n background: whitesmoke;\\n}\\n\\n/* width */\\n\\n::-webkit-scrollbar {\\n width: 10px;\\n}\\n\\n/* Track */\\n\\n::-webkit-scrollbar-track {\\n background: #f1f1f1;\\n}\\n\\n/* Handle */\\n\\n::-webkit-scrollbar-thumb {\\n background: #888;\\n}\\n\\n/* Handle on hover */\\n\\n::-webkit-scrollbar-thumb:hover {\\n background: #555;\\n}\\n\\n.msg-window {\\n min-height: 350px;\\n height: 350px;\\n overflow: auto;\\n}\\n\\n.list-group {\\n width: 100%;\\n}\\n\\n.name-initials-circle {\\n background: #cecece;\\n padding: 4px;\\n margin: 6px;\\n border-radius: 10rem;\\n font-weight: 500;\\n cursor: pointer;\\n}\\n\\n.list-group-item {\\n border: none;\\n}\\n\\n.list-group-item:hover {\\n background: whitesmoke;\\n cursor: pointer;\\n border-left: 4px solid grey;\\n}\\n\\nhr.solid {\\n border-top: 0.25px solid #ebebeb;\\n}\\n\\n.btn-warning {\\n color: #212529;\\n background-color: #ffee56;\\n border-color: #ffee56;\\n}\\n\\n.btn-warning:hover, .btn-warning:focus, .btn-warning.active {\\n background-color: #ffe500;\\n border-color: #ffe500;\\n}\\n\\n.badge-secondary {\\n font-size: 90%;\\n color: #333333;\\n background-color: #ebebeb;\\n border-color: #ffee56;\\n}\\n\\n.badge-secondary:hover, .badge-secondary:focus, .badge-secondary.active {\\n font-size: 90%;\\n color: #333333;\\n background-color: #ebebeb;\\n border-color: #ffee56;\\n}\\n\\n.sender-input-box {\\n border: 0;\\n font-size: 85%;\\n padding: 1.5rem 1rem;\\n outline: 0;\\n width: 100%;\\n}\\n\\n.sender-input-box:focus, .sender-input-box:active {\\n outline: 0;\\n border-bottom: 2px solid #ffee56;\\n}\\n\\n.sender-send-button {\\n padding: 0;\\n cursor: pointer;\\n}\\n\\n.sender-send-button .fas {\\n padding: 10px;\\n background: #ebebeb;\\n border-radius: 50%;\\n}\\n\\n.sender-send-button .fas:hover {\\n background: #9f9999;\\n}\\n\\n.msg-history {\\n overflow-y: auto;\\n}\\n\\n.msg-history .incoming-msg .incoming-msg-img {\\n display: inline-block;\\n width: 4%;\\n padding: 4px;\\n}\\n\\n.msg-history .incoming-msg .received-msg {\\n display: inline-block;\\n padding: 0 0 0 10px;\\n vertical-align: top;\\n width: 92%;\\n}\\n\\n.msg-history .incoming-msg .received-msg .received-withd-msg {\\n width: 57%;\\n}\\n\\n.msg-history .incoming-msg .received-msg .received-withd-msg p {\\n background: #ffffff none repeat scroll 0 0;\\n border-radius: 3px;\\n font-size: 12px;\\n margin: 0;\\n color: #000;\\n padding: 5px 10px 5px 12px;\\n width: 100%;\\n word-wrap: break-word;\\n}\\n\\n.msg-history .outgoing-msg {\\n overflow: hidden;\\n /*margin: 15px 0 15px;*/\\n margin-bottom: 0.5rem !important;\\n}\\n\\n.msg-history .outgoing-msg .sent-msg {\\n float: right;\\n width: 46%;\\n}\\n\\n.msg-history .outgoing-msg .sent-msg p {\\n background: #ebebeb none repeat scroll 0 0;\\n border-radius: 3px;\\n color: #444444;\\n font-size: 12px;\\n margin: 0;\\n padding: 5px 10px 5px 12px;\\n width: 100%;\\n word-wrap: break-word;\\n}\\n\\n.msg-history img {\\n max-width: 100%;\\n}\\n\\n.msg-history .time-date {\\n color: #747474;\\n display: block;\\n font-size: 10px;\\n margin: 8px 0 0;\\n}\\n\\n.new-chat-notification {\\n background: #fbecec;\\n border-left: 4px solid red;\\n}\\n\\n.active-chat {\\n background: #fff9c7;\\n border-left: 4px solid #ffee56;\\n font-weight: 500;\\n}\\n\\n.name-initials-circle-small {\\n background: #cecece;\\n padding: 4px;\\n margin: 4px;\\n border-radius: 10rem;\\n font-weight: 500;\\n font-size: 12px;\\n cursor: pointer;\\n}\\n\\n.active-groupchat-agents {\\n font-size: 12px;\\n}\\n\\n.group-chat-container {\\n background-color: #fff9c7;\\n min-height: 16px;\\n padding: 6px 5px 10px 0px;\\n border-bottom-right-radius: 8px;\\n border-top-left-radius: 8px;\\n border-top-right-radius: 8px;\\n border-bottom-left-radius: 8px;\\n}\\n\\n.notification-msg h4 {\\n width: 100%;\\n text-align: center;\\n border-bottom: 0.5px solid #999;\\n line-height: 0.1em;\\n margin: 10px 0 20px;\\n}\\n\\n.notification-msg h4 span {\\n background: whitesmoke;\\n padding: 0 5px;\\n font-size: 0.6rem;\\n border-radius: 30rem;\\n color: #999;\\n}\\n\\n.name-initials-tooltip .bottom {\\n min-width: 200px;\\n top: 40px;\\n left: 4%;\\n -webkit-transform: translate(-50%, 0);\\n transform: translate(-50%, 0);\\n padding: 10px 20px;\\n color: #444444;\\n background-color: #EEEEEE;\\n font-weight: normal;\\n font-size: 13px;\\n border-radius: 8px;\\n position: absolute;\\n z-index: 99999999;\\n box-sizing: border-box;\\n box-shadow: 0 1px 8px rgba(0, 0, 0, 0.5);\\n display: block;\\n}\\n\\n.maessagetypingstatus {\\n color: gray;\\n font-size: 70%;\\n font-weight: 400;\\n margin: 10px;\\n}\\n\\n.maessagetypingstatus-loader {\\n height: 5px;\\n width: 15px;\\n margin-top: 2px;\\n}\\n\\n.centered-container {\\n background-color: #ffee56;\\n display: -webkit-inline-box;\\n display: inline-flex;\\n padding: 4px;\\n border-radius: 3px;\\n border: 1px solid rgba(0, 0, 0, 0.1);\\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.04);\\n}\\n\\n.link {\\n color: #000;\\n cursor: pointer;\\n font-weight: 400;\\n text-decoration: none;\\n}\\n\\n.link--arrowed {\\n display: inline-block;\\n height: 2rem;\\n line-height: 2rem;\\n}\\n\\n#anchorLink {\\n background-color: #ffee56;\\n color: #000;\\n}\\n\\n#imgStyle {\\n display: block;\\n margin-right: auto;\\n margin-left: auto;\\n max-width: 500px;\\n width: 100%;\\n height: auto;\\n}\\n\\n.outgoin-msg-img {\\n display: inline-block;\\n width: 4%;\\n padding: 4px;\\n float: right;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb252ZXJzYXRpb24vaGlsY29udmVyc2F0aW9ucy9DOlxcVXNlcnNcXEtONjI0UVhcXHNvdXJjZVxcR2l0XFxjdHAtY2JhYXMtY2xpZW50LXBvcnRhbFxcQ0JhYVMuSElMLkNsaWVudFBvcnRhbC5XZWJcXENsaWVudEFwcC9zcmNcXGFwcFxcY29tcG9uZW50c1xcY29udmVyc2F0aW9uXFxoaWxjb252ZXJzYXRpb25zXFxoaWxjb252ZXJzYXRpb25zLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnRzL2NvbnZlcnNhdGlvbi9oaWxjb252ZXJzYXRpb25zL2hpbGNvbnZlcnNhdGlvbnMuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVUE7RUFDRSxpQkFBQTtFQUNBLHNCQUFBO0FDVEY7O0FEWUEsVUFBQTs7QUFDQTtFQUNFLFdBQUE7QUNURjs7QURZQSxVQUFBOztBQUNBO0VBQ0UsbUJBQUE7QUNURjs7QURZQSxXQUFBOztBQUNBO0VBQ0UsZ0JBQUE7QUNURjs7QURZQSxvQkFBQTs7QUFDQTtFQUNFLGdCQUFBO0FDVEY7O0FEV0E7RUFDRSxpQkFBQTtFQUNBLGFBQUE7RUFDQSxjQUFBO0FDUkY7O0FEWUE7RUFDRSxXQUFBO0FDVEY7O0FEWUE7RUFDRSxtQkFBQTtFQUNBLFlBQUE7RUFDQSxXQUFBO0VBQ0Esb0JBQUE7RUFDQSxnQkFBQTtFQUNBLGVBQUE7QUNURjs7QURZQTtFQUNFLFlBQUE7QUNURjs7QURXRTtFQUNFLHNCQUFBO0VBQ0EsZUFBQTtFQUNBLDJCQUFBO0FDVEo7O0FEYUE7RUFDRSxnQ0FBQTtBQ1ZGOztBRGNBO0VBQ0UsY0FBQTtFQUNBLHlCQXZFUztFQXdFVCxxQkF4RVM7QUM2RFg7O0FEYUU7RUFDRSx5QkExRVc7RUEyRVgscUJBM0VXO0FDZ0VmOztBRGVBO0VBQ0UsY0FBQTtFQUNBLGNBOUVXO0VBK0VYLHlCQTlFWTtFQStFWixxQkFwRlM7QUN3RVg7O0FEY0U7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Ijoic3JjL2FwcC9jb21wb25lbnRzL2NvbnZlcnNhdGlvbi9oaWxjb252ZXJzYXRpb25zL2hpbGNvbnZlcnNhdGlvbnMuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIkZXlZZWxsb3c6ICNmZmVlNTY7XHJcbiRleURhcmtZZWxsb3c6ICNmZmU1MDA7XHJcbiRleUxpZ2h0WWVsbG93OiAjZmZmOWM3O1xyXG4kZXlHcmV5OiAjODI3YjdiO1xyXG4kZXlEYXJrR3JleTogIzMzMzMzMztcclxuJGV5TGlnaHRHcmV5OiAjZWJlYmViO1xyXG5cclxuLm5hbWUtd2luZG93IHtcclxufVxyXG5cclxuLmNoYXQtd2luZG93IHtcclxuICBtaW4taGVpZ2h0OiA1MDBweDtcclxuICBiYWNrZ3JvdW5kOiB3aGl0ZXNtb2tlO1xyXG5cclxufVxyXG4vKiB3aWR0aCAqL1xyXG46Oi13ZWJraXQtc2Nyb2xsYmFyIHtcclxuICB3aWR0aDogMTBweDtcclxufVxyXG5cclxuLyogVHJhY2sgKi9cclxuOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XHJcbiAgYmFja2dyb3VuZDogI2YxZjFmMTtcclxufVxyXG5cclxuLyogSGFuZGxlICovXHJcbjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xyXG4gIGJhY2tncm91bmQ6ICM4ODg7XHJcbn1cclxuXHJcbi8qIEhhbmRsZSBvbiBob3ZlciAqL1xyXG46Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kOiAjNTU1O1xyXG59XHJcbi5tc2ctd2luZG93IHtcclxuICBtaW4taGVpZ2h0OiAzNTBweDtcclxuICBoZWlnaHQ6IDM1MHB4O1xyXG4gIG92ZXJmbG93OiBhdXRvO1xyXG5cclxufVxyXG5cclxuLmxpc3QtZ3JvdXAge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4ubmFtZS1pbml0aWFscy1jaXJjbGUge1xyXG4gIGJhY2tncm91bmQ6ICNjZWNlY2U7XHJcbiAgcGFkZGluZzogNHB4O1xyXG4gIG1hcmdpbjogNnB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDEwcmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcblxyXG4ubGlzdC1ncm91cC1pdGVtIHtcclxuICBib3JkZXI6IG5vbmU7XHJcblxyXG4gICY6aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZDogd2hpdGVzbW9rZTtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgZ3JleTtcclxuICB9XHJcbn1cclxuXHJcbmhyLnNvbGlkIHtcclxuICBib3JkZXItdG9wOiAwLjI1cHggc29saWQgJGV5TGlnaHRHcmV5O1xyXG59XHJcblxyXG5cclxuLmJ0bi13YXJuaW5nIHtcclxuICBjb2xvcjogIzIxMjUyOTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZXlZZWxsb3c7XHJcbiAgYm9yZGVyLWNvbG9yOiAkZXlZZWxsb3c7XHJcblxyXG4gICY6aG92ZXIsICY6Zm9jdXMsICYuYWN0aXZlIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRleURhcmtZZWxsb3c7XHJcbiAgICBib3JkZXItY29sb3I6ICRleURhcmtZZWxsb3c7XHJcbiAgfVxyXG59XHJcblxyXG4uYmFkZ2Utc2Vjb25kYXJ5IHtcclxuICBmb250LXNpemU6IDkwJTtcclxuICBjb2xvcjogJGV5RGFya0dyZXk7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGV5TGlnaHRHcmV5O1xyXG4gIGJvcmRlci1jb2xvcjogJGV5WWVsbG93O1xyXG5cclxuICAmOmhvdmVyLCAmOmZvY3VzLCAmLmFjdGl2ZSB7XHJcbiAgICBmb250LXNpemU6IDkwJTtcclxuICAgIGNvbG9yOiAkZXlEYXJrR3JleTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRleUxpZ2h0R3JleTtcclxuICAgIGJvcmRlci1jb2xvcjogJGV5WWVsbG93O1xyXG4gIH1cclxufVxyXG5cclxuLnNlbmRlci1pbnB1dC1ib3gge1xyXG4gIGJvcmRlcjogMDtcclxuICBmb250LXNpemU6IDg1JTtcclxuICBwYWRkaW5nOiAxLjVyZW0gMXJlbTtcclxuICBvdXRsaW5lOiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG5cclxuICAmOmZvY3VzLCAmOmFjdGl2ZSB7XHJcbiAgICBvdXRsaW5lOiAwO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRleVllbGxvdztcclxuICB9XHJcbn1cclxuXHJcbi5zZW5kZXItc2VuZC1idXR0b24ge1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG5cclxuICAuZmFzIHtcclxuICAgIHBhZGRpbmc6IDEwcHg7XHJcbiAgICBiYWNrZ3JvdW5kOiAkZXlMaWdodEdyZXk7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIGJhY2tncm91bmQ6ICM5Zjk5OTk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4ubXNnLWhpc3Rvcnkge1xyXG4gIG92ZXJmbG93LXk6IGF1dG87XHJcblxyXG5cclxuICAuaW5jb21pbmctbXNnIHtcclxuICAgIC5pbmNvbWluZy1tc2ctaW1nIHtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICB3aWR0aDogNCU7XHJcbiAgICAgIHBhZGRpbmc6IDRweDtcclxuICAgIH1cclxuXHJcbiAgICAucmVjZWl2ZWQtbXNnIHtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICBwYWRkaW5nOiAwIDAgMCAxMHB4O1xyXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG4gICAgICB3aWR0aDogOTIlO1xyXG5cclxuICAgICAgLnJlY2VpdmVkLXdpdGhkLW1zZyB7XHJcbiAgICAgICAgd2lkdGg6IDU3JTtcclxuXHJcbiAgICAgICAgcCB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmIG5vbmUgcmVwZWF0IHNjcm9sbCAwIDA7XHJcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XHJcbiAgICAgICAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICBjb2xvcjogIzAwMDtcclxuICAgICAgICAgIHBhZGRpbmc6IDVweCAxMHB4IDVweCAxMnB4O1xyXG4gICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAub3V0Z29pbmctbXNnIHtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAvKm1hcmdpbjogMTVweCAwIDE1cHg7Ki9cclxuICAgIG1hcmdpbi1ib3R0b206IC41cmVtICFpbXBvcnRhbnQ7XHJcblxyXG4gICAgLnNlbnQtbXNnIHtcclxuICAgICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgICB3aWR0aDogNDYlO1xyXG5cclxuICAgICAgcCB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogI2ViZWJlYiBub25lIHJlcGVhdCBzY3JvbGwgMCAwO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcclxuICAgICAgICBjb2xvcjogIzQ0NDQ0NDtcclxuICAgICAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIHBhZGRpbmc6IDVweCAxMHB4IDVweCAxMnB4O1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW1nIHtcclxuICAgIG1heC13aWR0aDogMTAwJTtcclxuICB9XHJcblxyXG4gIC50aW1lLWRhdGUge1xyXG4gICAgY29sb3I6ICM3NDc0NzQ7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGZvbnQtc2l6ZTogMTBweDtcclxuICAgIG1hcmdpbjogOHB4IDAgMDtcclxuICB9XHJcbn1cclxuXHJcbi5uZXctY2hhdC1ub3RpZmljYXRpb24ge1xyXG4gIGJhY2tncm91bmQ6ICNmYmVjZWM7XHJcbiAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCByZWQ7XHJcbn1cclxuXHJcbi5hY3RpdmUtY2hhdCB7XHJcbiAgYmFja2dyb3VuZDogJGV5TGlnaHRZZWxsb3c7XHJcbiAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCAkZXlZZWxsb3c7XHJcbiAgZm9udC13ZWlnaHQ6IDUwMDtcclxufVxyXG5cclxuLm5hbWUtaW5pdGlhbHMtY2lyY2xlLXNtYWxse1xyXG4gIGJhY2tncm91bmQ6ICNjZWNlY2U7XHJcbiAgcGFkZGluZzogNHB4O1xyXG4gIG1hcmdpbjogNHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDEwcmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgZm9udC1zaXplOiAxMnB4O1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG5cclxuLmFjdGl2ZS1ncm91cGNoYXQtYWdlbnRze1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxufVxyXG5cclxuLmdyb3VwLWNoYXQtY29udGFpbmVyeyAgXHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOWM3O1xyXG4gICAgbWluLWhlaWdodDogMTZweDtcclxuICAgIHBhZGRpbmc6IDZweCA1cHggMTBweCAwcHg7XHJcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogOHB4O1xyXG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogOHB4O1xyXG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDhweDtcclxuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDhweDtcclxufVxyXG5cclxuICAgXHJcbi5ub3RpZmljYXRpb24tbXNnIGg0IHtcclxuICB3aWR0aDogMTAwJTtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgYm9yZGVyLWJvdHRvbTogMC41cHggc29saWQgIzk5OTtcclxuICBsaW5lLWhlaWdodDogMC4xZW07XHJcbiAgbWFyZ2luOiAxMHB4IDAgMjBweDtcclxufVxyXG5cclxuXHJcbi5ub3RpZmljYXRpb24tbXNnIGg0IHNwYW4ge1xyXG4gIGJhY2tncm91bmQ6IHdoaXRlc21va2U7XHJcbiAgcGFkZGluZzogMCA1cHg7XHJcbiAgZm9udC1zaXplOiAwLjYwcmVtO1xyXG4gIGJvcmRlci1yYWRpdXM6IDMwcmVtO1xyXG4gIGNvbG9yOiM5OTk7XHJcbn1cclxuIFxyXG4ubmFtZS1pbml0aWFscy10b29sdGlwIC5ib3R0b20ge1xyXG4gIG1pbi13aWR0aDoyMDBweDsgXHJcbiAgdG9wOjQwcHg7XHJcbiAgbGVmdDo0JTtcclxuICB0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIDApO1xyXG4gIHBhZGRpbmc6MTBweCAyMHB4O1xyXG4gIGNvbG9yOiM0NDQ0NDQ7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjojRUVFRUVFO1xyXG4gIGZvbnQtd2VpZ2h0Om5vcm1hbDtcclxuICBmb250LXNpemU6MTNweDtcclxuICBib3JkZXItcmFkaXVzOjhweDtcclxuICBwb3NpdGlvbjphYnNvbHV0ZTtcclxuICB6LWluZGV4Ojk5OTk5OTk5O1xyXG4gIGJveC1zaXppbmc6Ym9yZGVyLWJveDtcclxuICBib3gtc2hhZG93OjAgMXB4IDhweCByZ2JhKDAsMCwwLDAuNSk7ICBcclxuICBkaXNwbGF5OmJsb2NrO1xyXG59XHJcblxyXG4ubWFlc3NhZ2V0eXBpbmdzdGF0dXMge1xyXG4gIGNvbG9yOiBncmF5O1xyXG4gIGZvbnQtc2l6ZTogNzAlO1xyXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgbWFyZ2luOiAxMHB4O1xyXG59XHJcblxyXG4ubWFlc3NhZ2V0eXBpbmdzdGF0dXMtbG9hZGVyIHtcclxuICBoZWlnaHQ6IDVweDtcclxuICB3aWR0aDogMTVweDtcclxuICBtYXJnaW4tdG9wOiAycHg7XHJcbn1cclxuLmNlbnRlcmVkLWNvbnRhaW5lciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZWU1NjtcclxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICBwYWRkaW5nOiA0cHg7XHJcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcclxuICBib3gtc2hhZG93OiAwIDAuMTI1cmVtIDAuMjVyZW0gcmdiYSgwLCAwLCAwLCAwLjA0KTtcclxufVxyXG5cclxuLmxpbmsge1xyXG4gIGNvbG9yOiAjMDAwO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBmb250LXdlaWdodDogNDAwO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxufVxyXG5cclxuLmxpbmstLWFycm93ZWQge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBoZWlnaHQ6IDJyZW07XHJcbiAgbGluZS1oZWlnaHQ6IDJyZW07XHJcbn1cclxuI2FuY2hvckxpbmsge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmVlNTY7XHJcbiAgY29sb3I6IzAwMDtcclxufVxyXG4jaW1nU3R5bGUge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIG1hcmdpbi1yaWdodDogYXV0bztcclxuICBtYXJnaW4tbGVmdDogYXV0bztcclxuICBtYXgtd2lkdGg6NTAwcHg7XHJcbiAgd2lkdGg6MTAwJTtcclxuICBoZWlnaHQ6YXV0bztcclxufVxyXG5cclxuLm91dGdvaW4tbXNnLWltZyB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHdpZHRoOiA0JTtcclxuICBwYWRkaW5nOiA0cHg7XHJcbiAgZmxvYXQ6IHJpZ2h0O1xyXG59XHJcbiIsIi5jaGF0LXdpbmRvdyB7XG4gIG1pbi1oZWlnaHQ6IDUwMHB4O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZXNtb2tlO1xufVxuXG4vKiB3aWR0aCAqL1xuOjotd2Via2l0LXNjcm9sbGJhciB7XG4gIHdpZHRoOiAxMHB4O1xufVxuXG4vKiBUcmFjayAqL1xuOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gIGJhY2tncm91bmQ6ICNmMWYxZjE7XG59XG5cbi8qIEhhbmRsZSAqL1xuOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJhY2tncm91bmQ6ICM4ODg7XG59XG5cbi8qIEhhbmRsZSBvbiBob3ZlciAqL1xuOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICM1NTU7XG59XG5cbi5tc2ctd2luZG93IHtcbiAgbWluLWhlaWdodDogMzUwcHg7XG4gIGhlaWdodDogMzUwcHg7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4ubGlzdC1ncm91cCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ubmFtZS1pbml0aWFscy1jaXJjbGUge1xuICBiYWNrZ3JvdW5kOiAjY2VjZWNlO1xuICBwYWRkaW5nOiA0cHg7XG4gIG1hcmdpbjogNnB4O1xuICBib3JkZXItcmFkaXVzOiAxMHJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubGlzdC1ncm91cC1pdGVtIHtcbiAgYm9yZGVyOiBub25lO1xufVxuLmxpc3QtZ3JvdXAtaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHdoaXRlc21va2U7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCBncmV5O1xufVxuXG5oci5zb2xpZCB7XG4gIGJvcmRlci10b3A6IDAuMjVweCBzb2xpZCAjZWJlYmViO1xufVxuXG4uYnRuLXdhcm5pbmcge1xuICBjb2xvcjogIzIxMjUyOTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZWU1NjtcbiAgYm9yZGVyLWNvbG9yOiAjZmZlZTU2O1xufVxuLmJ0bi13YXJuaW5nOmhvdmVyLCAuYnRuLXdhcm5pbmc6Zm9jdXMsIC5idG4td2FybmluZy5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlNTAwO1xuICBib3JkZXItY29sb3I6ICNmZmU1MDA7XG59XG5cbi5iYWRnZS1zZWNvbmRhcnkge1xuICBmb250LXNpemU6IDkwJTtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlYmViZWI7XG4gIGJvcmRlci1jb2xvcjogI2ZmZWU1Njtcbn1cbi5iYWRnZS1zZWNvbmRhcnk6aG92ZXIsIC5iYWRnZS1zZWNvbmRhcnk6Zm9jdXMsIC5iYWRnZS1zZWNvbmRhcnkuYWN0aXZlIHtcbiAgZm9udC1zaXplOiA5MCU7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWJlYmViO1xuICBib3JkZXItY29sb3I6ICNmZmVlNTY7XG59XG5cbi5zZW5kZXItaW5wdXQtYm94IHtcbiAgYm9yZGVyOiAwO1xuICBmb250LXNpemU6IDg1JTtcbiAgcGFkZGluZzogMS41cmVtIDFyZW07XG4gIG91dGxpbmU6IDA7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnNlbmRlci1pbnB1dC1ib3g6Zm9jdXMsIC5zZW5kZXItaW5wdXQtYm94OmFjdGl2ZSB7XG4gIG91dGxpbmU6IDA7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjZmZlZTU2O1xufVxuXG4uc2VuZGVyLXNlbmQtYnV0dG9uIHtcbiAgcGFkZGluZzogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnNlbmRlci1zZW5kLWJ1dHRvbiAuZmFzIHtcbiAgcGFkZGluZzogMTBweDtcbiAgYmFja2dyb3VuZDogI2ViZWJlYjtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuLnNlbmRlci1zZW5kLWJ1dHRvbiAuZmFzOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogIzlmOTk5OTtcbn1cblxuLm1zZy1oaXN0b3J5IHtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cbi5tc2ctaGlzdG9yeSAuaW5jb21pbmctbXNnIC5pbmNvbWluZy1tc2ctaW1nIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogNCU7XG4gIHBhZGRpbmc6IDRweDtcbn1cbi5tc2ctaGlzdG9yeSAuaW5jb21pbmctbXNnIC5yZWNlaXZlZC1tc2cge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDAgMCAwIDEwcHg7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIHdpZHRoOiA5MiU7XG59XG4ubXNnLWhpc3RvcnkgLmluY29taW5nLW1zZyAucmVjZWl2ZWQtbXNnIC5yZWNlaXZlZC13aXRoZC1tc2cge1xuICB3aWR0aDogNTclO1xufVxuLm1zZy1oaXN0b3J5IC5pbmNvbWluZy1tc2cgLnJlY2VpdmVkLW1zZyAucmVjZWl2ZWQtd2l0aGQtbXNnIHAge1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmIG5vbmUgcmVwZWF0IHNjcm9sbCAwIDA7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBtYXJnaW46IDA7XG4gIGNvbG9yOiAjMDAwO1xuICBwYWRkaW5nOiA1cHggMTBweCA1cHggMTJweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbn1cbi5tc2ctaGlzdG9yeSAub3V0Z29pbmctbXNnIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgLyptYXJnaW46IDE1cHggMCAxNXB4OyovXG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbSAhaW1wb3J0YW50O1xufVxuLm1zZy1oaXN0b3J5IC5vdXRnb2luZy1tc2cgLnNlbnQtbXNnIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICB3aWR0aDogNDYlO1xufVxuLm1zZy1oaXN0b3J5IC5vdXRnb2luZy1tc2cgLnNlbnQtbXNnIHAge1xuICBiYWNrZ3JvdW5kOiAjZWJlYmViIG5vbmUgcmVwZWF0IHNjcm9sbCAwIDA7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgY29sb3I6ICM0NDQ0NDQ7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiA1cHggMTBweCA1cHggMTJweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbn1cbi5tc2ctaGlzdG9yeSBpbWcge1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG4ubXNnLWhpc3RvcnkgLnRpbWUtZGF0ZSB7XG4gIGNvbG9yOiAjNzQ3NDc0O1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxMHB4O1xuICBtYXJnaW46IDhweCAwIDA7XG59XG5cbi5uZXctY2hhdC1ub3RpZmljYXRpb24ge1xuICBiYWNrZ3JvdW5kOiAjZmJlY2VjO1xuICBib3JkZXItbGVmdDogNHB4IHNvbGlkIHJlZDtcbn1cblxuLmFjdGl2ZS1jaGF0IHtcbiAgYmFja2dyb3VuZDogI2ZmZjljNztcbiAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCAjZmZlZTU2O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4ubmFtZS1pbml0aWFscy1jaXJjbGUtc21hbGwge1xuICBiYWNrZ3JvdW5kOiAjY2VjZWNlO1xuICBwYWRkaW5nOiA0cHg7XG4gIG1hcmdpbjogNHB4O1xuICBib3JkZXItcmFkaXVzOiAxMHJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5hY3RpdmUtZ3JvdXBjaGF0LWFnZW50cyB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmdyb3VwLWNoYXQtY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjljNztcbiAgbWluLWhlaWdodDogMTZweDtcbiAgcGFkZGluZzogNnB4IDVweCAxMHB4IDBweDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDhweDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogOHB4O1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogOHB4O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA4cHg7XG59XG5cbi5ub3RpZmljYXRpb24tbXNnIGg0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyLWJvdHRvbTogMC41cHggc29saWQgIzk5OTtcbiAgbGluZS1oZWlnaHQ6IDAuMWVtO1xuICBtYXJnaW46IDEwcHggMCAyMHB4O1xufVxuXG4ubm90aWZpY2F0aW9uLW1zZyBoNCBzcGFuIHtcbiAgYmFja2dyb3VuZDogd2hpdGVzbW9rZTtcbiAgcGFkZGluZzogMCA1cHg7XG4gIGZvbnQtc2l6ZTogMC42cmVtO1xuICBib3JkZXItcmFkaXVzOiAzMHJlbTtcbiAgY29sb3I6ICM5OTk7XG59XG5cbi5uYW1lLWluaXRpYWxzLXRvb2x0aXAgLmJvdHRvbSB7XG4gIG1pbi13aWR0aDogMjAwcHg7XG4gIHRvcDogNDBweDtcbiAgbGVmdDogNCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDApO1xuICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gIGNvbG9yOiAjNDQ0NDQ0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUVFRUVFO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiA5OTk5OTk5OTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm94LXNoYWRvdzogMCAxcHggOHB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5tYWVzc2FnZXR5cGluZ3N0YXR1cyB7XG4gIGNvbG9yOiBncmF5O1xuICBmb250LXNpemU6IDcwJTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbWFyZ2luOiAxMHB4O1xufVxuXG4ubWFlc3NhZ2V0eXBpbmdzdGF0dXMtbG9hZGVyIHtcbiAgaGVpZ2h0OiA1cHg7XG4gIHdpZHRoOiAxNXB4O1xuICBtYXJnaW4tdG9wOiAycHg7XG59XG5cbi5jZW50ZXJlZC1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlZTU2O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgcGFkZGluZzogNHB4O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgYm94LXNoYWRvdzogMCAwLjEyNXJlbSAwLjI1cmVtIHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG5cbi5saW5rIHtcbiAgY29sb3I6ICMwMDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4ubGluay0tYXJyb3dlZCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgaGVpZ2h0OiAycmVtO1xuICBsaW5lLWhlaWdodDogMnJlbTtcbn1cblxuI2FuY2hvckxpbmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlZTU2O1xuICBjb2xvcjogIzAwMDtcbn1cblxuI2ltZ1N0eWxlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1heC13aWR0aDogNTAwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi5vdXRnb2luLW1zZy1pbWcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiA0JTtcbiAgcGFkZGluZzogNHB4O1xuICBmbG9hdDogcmlnaHQ7XG59Il19 */\"","import { Component, OnInit, EventEmitter, Input, Output, ChangeDetectorRef } from '@angular/core';\r\nimport { HubConnection, HubConnectionBuilder } from '@microsoft/signalr';\r\nimport { IConversation } from '../../../models/iconversation';\r\nimport { CommunicationService } from '../../../services/shared/communication/communication.service';\r\nimport { MessageService } from '../../../services/shared/message/message.service';\r\nimport { IChatHistory, IConversationHistory } from 'src/app/models/chat-history';\r\nimport { TokenService } from 'src/app/services/core/token/token.service';\r\nimport { MatDialog } from '@angular/material';\r\nimport { HandoffCommentComponent } from '../../shared/handoff-comment/handoff-comment.component';\r\nimport { NotificationService } from '../../../services/shared/notification/notification.service';\r\nimport { ToasterService } from '../../../services/shared/toaster/toaster.service';\r\nimport { WarningPopupComponent } from '../../shared/warning-popup/warning-popup.component';\r\nimport { BotHistoryComponent } from '../../shared/bot-history/bot-history.component';\r\nimport { ConnectedStatusService } from 'src/app/services/shared/connection-status/connected-status.service';\r\nimport { AddNewAgentComponent } from '../add-new-agent/add-new-agent.component';\r\nimport { IHandOffComments } from 'src/app/models/handoff-comment';\r\nimport { IHilRequest } from 'src/app/models/hilrequest';\r\nimport { GroupChatParticipantsComponent } from '../group-chat-participants/group-chat-participants.component';\r\nimport { GroupChatActiveAgents } from 'src/app/models/group-chat-active-agents';\r\nimport { ITypingStatus } from '../../../models/itypingstatus';\r\nimport { Message } from '@angular/compiler/src/i18n/i18n_ast';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'app-hilconversations',\r\n templateUrl: './hilconversations.component.html',\r\n styleUrls: ['./hilconversations.component.scss']\r\n})\r\nexport class HilconversationsComponent implements OnInit {\r\n\r\n private _hubConnection: HubConnection;\r\n agentLoginId = '';\r\n loggedInAgentFullName = '';\r\n activeBotUserName = '';\r\n activeBotUserId = '';\r\n activeBotName = '';\r\n activeBotConfigId: number;\r\n activeBotId: string = '';\r\n activeBotHandOffComment: IHandOffComments[] = [];\r\n BotHandOffInfo: IHandOffComments[] = [];\r\n handOffDetails: IHandOffComments;\r\n activeChatbotHistory: IChatHistory[] = [];\r\n conversationHistory: IConversationHistory[] = [];\r\n agentNickName = '';\r\n hilRequest = false;\r\n connectedStatus = false;\r\n message = '';\r\n mm = {} as IConversation;\r\n conversations = [] as Array;\r\n activeConversations = [] as Array;\r\n activeConversationsByChatID = [] as Array;\r\n activeConversationId = '';\r\n activePrimaryAgent = true;\r\n activeChatIsGroupChat = false;\r\n activeGroupChatAgents: GroupChatActiveAgents = new GroupChatActiveAgents();\r\n messages = [];\r\n connectedBots = [];\r\n duplicateChat: any;\r\n agentName: string;\r\n scrollerHt: any;\r\n showBotUserDetailsTootTip: boolean = false;\r\n tooltipDisplay: any;\r\n activeTypings = [] as Array;\r\n activeTypingsByActiveConversationId = [] as Array;\r\n activeTypingNotificationMessage: string;\r\n currentTypingStatus: boolean;\r\n isCCenterWindowFocused = true;\r\n notifyTypingStatusOffSourceSendButton = false;\r\n botUserReconnectionStatus: string = '';\r\n isAttached = false;\r\n click = true;\r\n imageURL = '';\r\n isImage = '';\r\n hrefLink = '';\r\n specialcharacter = false;\r\n htmlElements = false;\r\n messageboxvalid: boolean = true;\r\n IsValidChatManagerRole = false;\r\n FirstMessage: boolean;\r\n hasAssociatedBot: boolean = false;\r\n associatedBotId: number;\r\n associatedBotName: string = '';\r\n isAssociatedBotAgent: boolean = false;\r\n\r\n\r\n constructor(private service: CommunicationService,\r\n private toasterService: ToasterService,\r\n private notificationService: NotificationService,\r\n private messageService: MessageService,\r\n private tokenService: TokenService,\r\n private dialogComment: MatDialog,\r\n private dialogChatHistory: MatDialog,\r\n private dialogWarning: MatDialog,\r\n private changeDetector: ChangeDetectorRef,\r\n private connectedStatusService: ConnectedStatusService,\r\n private sanitizer: DomSanitizer) {\r\n\r\n window.addEventListener('blur', event => {\r\n this.isCCenterWindowFocused = false;\r\n this.notifyTypingStatusOff(null);\r\n });\r\n window.addEventListener('focus', event => {\r\n this.isCCenterWindowFocused = true;\r\n });\r\n }\r\n ngAfterViewInit() {\r\n this.onNavigationFromNotifications();//set connected Bot based on notification selection\r\n }\r\n ngAfterViewChecked() {\r\n this.changeDetector.detectChanges();//refresh the chat window after row selection from notification\r\n }\r\n ngOnInit() {\r\n this.initialiseConversationTab();\r\n }\r\n initialiseConversationTab() {\r\n this._hubConnection = this.service.GetHubConnection();\r\n this.agentLoginId = localStorage.getItem('userEmailId');\r\n this.loggedInAgentFullName = localStorage.getItem('userFullName');\r\n this.clearAllNotifications();\r\n var conBots = localStorage.getItem(\"connectedBots\");\r\n if (conBots != null) {\r\n this.connectedBots = JSON.parse(conBots);\r\n }\r\n\r\n var conv = localStorage.getItem(\"conversations\");\r\n if (conv != null) {\r\n this.conversations = JSON.parse(conv);\r\n }\r\n\r\n if (this._hubConnection) {\r\n //on HIL request handler\r\n let onHilRequestHandler = (botUserName: string, chatId: string, botConfigId: number, hilRequest: IHilRequest) => {\r\n this.BotHandOffInfo = [];\r\n this.handOffDetails = {\r\n handOffBy: 'Bot User ' + botUserName,\r\n handOffTo: 'Agent ' + this.agentLoginId,\r\n handOffComment: hilRequest.handOffComment,\r\n handOffTime: hilRequest.handOffTime\r\n };\r\n this.BotHandOffInfo.push(this.handOffDetails);\r\n let agents = [];\r\n agents.push(this.loggedInAgentFullName);\r\n const chatInfo =\r\n {\r\n ChatId: chatId,\r\n BotUserName: botUserName,\r\n BotName: hilRequest.botName,\r\n HandOffComment: hilRequest.handOffComment,\r\n ChatHistory: hilRequest.chatHistory,\r\n BotUserId: hilRequest.botUserId,\r\n BotConfigId: botConfigId,\r\n HandOffTime: hilRequest.handOffTime,\r\n HandOffInfo: this.BotHandOffInfo,\r\n IsGroupChat: false,\r\n IsPrimaryAgent: true,\r\n GroupChatAgents: hilRequest.groupChatAgents,\r\n BotId: hilRequest.botId,\r\n IsChatManagerRole: hilRequest.isChatManagerRole,\r\n HasAssociatedBot: hilRequest.hasAssociatedBot,\r\n AssociatedBotConfigId: hilRequest.associatedBotConfigId,\r\n AssociatedBotName: hilRequest.associatedBotName\r\n }\r\n this.IsValidChatManagerRole = hilRequest.isChatManagerRole;\r\n this.associatedBotId = hilRequest.associatedBotConfigId;\r\n\r\n this.duplicateChat = this.connectedBots.find(x => x.BotUserName == botUserName && x.BotName == hilRequest.botName);\r\n\r\n if (this.duplicateChat) {\r\n //this.connectedBots.slice(this.connectedBots.indexOf(this.duplicateChat)); // slice is used to select an element from array and not remove\r\n this.connectedBots.splice(this.connectedBots.indexOf(this.duplicateChat), 1);\r\n //this.connectedBots.splice(this.duplicateChat,this.connectedBots.indexOf(this.duplicateChat))\r\n //if (!this.connectedBots.find(x => x.botName == chatInfo.BotName && x.botUserName == chatInfo.BotUserName))\r\n this.connectedBots.push(chatInfo);\r\n }\r\n else {\r\n this.connectedBots.push(chatInfo);\r\n }\r\n let activity: IConversation =\r\n {\r\n Type: \"ConnectionState\",\r\n ChatId: \"\",\r\n Message: botUserName + \" connected\",\r\n DateTime: new Date(),\r\n Sender: botUserName,\r\n BotId: hilRequest.botId,\r\n HasAttachment: false,\r\n IsImage: '',\r\n IsAssociatedBotAgent: this.isAssociatedBotAgent,\r\n AssociatedBotConfigId: this.associatedBotId\r\n }\r\n this.sendNotification(activity);\r\n\r\n localStorage.setItem(\"connectedBots\", JSON.stringify(this.connectedBots));\r\n this.toasterService.info(botUserName + \" Connected\");\r\n };\r\n\r\n this._hubConnection.off(\"OnHilRequest\");\r\n this._hubConnection.on(\"OnHilRequest\", onHilRequestHandler);\r\n\r\n //on New Agent Request Handler\r\n let onAgentEscalationHandler = (hilRequest: IHilRequest, chatId: string, agentFullName: string, oldAgentFullName: string) => {\r\n const chatInfo =\r\n {\r\n ChatId: chatId,\r\n BotUserName: hilRequest.botUserName,\r\n BotName: hilRequest.botName,\r\n HandOffComment: hilRequest.handOffComment,\r\n ChatHistory: hilRequest.chatHistory,\r\n BotUserId: hilRequest.botUserId,\r\n BotConfigId: hilRequest.botConfigId,\r\n BotId: hilRequest.botId,\r\n AddedByAgentId: hilRequest.addedByAgentId,\r\n NewAgentId: hilRequest.newAgentId,\r\n HandOffTime: hilRequest.handOffTime,\r\n HandOffInfo: hilRequest.handOffInfo,\r\n IsGroupChat: hilRequest.isGroupChat,\r\n IsPrimaryAgent: hilRequest.isPrimaryAgent,\r\n GroupChatAgents: hilRequest.groupChatAgents,\r\n IsChatManagerRole: hilRequest.isChatManagerRole,\r\n IsAssociatedBotAgent: hilRequest.isAssociatedBotAgent,\r\n AssociatedBotConfigId: hilRequest.associatedBotConfigId\r\n }\r\n this.IsValidChatManagerRole = hilRequest.isChatManagerRole;\r\n this.duplicateChat = this.connectedBots.find(x => x.BotUserName == hilRequest.botUserName && x.botName == hilRequest.botName);\r\n this.isAssociatedBotAgent = hilRequest.isAssociatedBotAgent;\r\n this.associatedBotId = hilRequest.associatedBotConfigId;\r\n\r\n if (this.duplicateChat) {\r\n //this.connectedBots.slice(this.connectedBots.indexOf(this.duplicateChat)); // slice is used to select an element from array and not remove\r\n this.connectedBots.splice(this.connectedBots.indexOf(this.duplicateChat), 1);\r\n //this.connectedBots.splice(this.duplicateChat,this.connectedBots.indexOf(this.duplicateChat))\r\n //if (!this.connectedBots.find(x => x.botName == chatInfo.BotName && x.botUserName == chatInfo.BotUserName))\r\n this.connectedBots.push(chatInfo);\r\n }\r\n else {\r\n this.connectedBots.push(chatInfo);\r\n }\r\n let activity: IConversation =\r\n {\r\n Type: \"ConnectionState\",\r\n ChatId: chatId,\r\n Message: hilRequest.botUserName + \" connected\",\r\n DateTime: new Date(),\r\n Sender: hilRequest.botUserName,\r\n BotId: hilRequest.botId,\r\n HasAttachment: false,\r\n IsImage: '',\r\n IsAssociatedBotAgent: this.isAssociatedBotAgent,\r\n AssociatedBotConfigId: this.associatedBotId\r\n }\r\n this.sendNotification(activity);\r\n\r\n localStorage.setItem(\"connectedBots\", JSON.stringify(this.connectedBots));\r\n\r\n if (hilRequest.isGroupChat) {\r\n this.toasterService.info(\"Agent: \" + oldAgentFullName + \" added you to group chat with Bot user: \" + hilRequest.botUserName);\r\n this.addNotificationToActiveConversations(\"Agent: \" + oldAgentFullName + \" added agent: \" + this.loggedInAgentFullName + \" to chat\", chatId, 'add');\r\n\r\n } else\r\n this.toasterService.info(hilRequest.botUserName + \" transferred by Agent: \" + oldAgentFullName);\r\n };\r\n\r\n this._hubConnection.off(\"onAgentEscalation\");\r\n this._hubConnection.on(\"onAgentEscalation\", onAgentEscalationHandler);\r\n\r\n //On New Agent Error handler\r\n let onAgentEscalationErrorHandler = (error: string) => {\r\n this.toasterService.error(\"Error: \" + error);\r\n };\r\n\r\n this._hubConnection.off(\"onAgentEscalationError\");\r\n this._hubConnection.on(\"onAgentEscalationError\", onAgentEscalationErrorHandler);\r\n\r\n\r\n //on receive message handler\r\n let onReceiveMessageHandler = (chat) => {\r\n let array = ['jpg', 'png', 'gif', 'jpeg'];\r\n\r\n for (let i = 0; i < array.length; i++) {\r\n if (chat.message.toLowerCase().includes(array[i])) {\r\n this.isImage = 'yes';\r\n break;\r\n } else {\r\n this.isImage = 'no';\r\n }\r\n }\r\n const activity: IConversation = {\r\n ChatId: chat.chatId,\r\n Message: chat.message,\r\n Type: 'receive',\r\n DateTime: new Date(),\r\n Sender: chat.sender,\r\n BotId: chat.botId,\r\n HasAttachment: chat.type == 'file' ? true : false,\r\n IsImage: this.isImage,\r\n IsAssociatedBotAgent: this.isAssociatedBotAgent,\r\n AssociatedBotConfigId: this.associatedBotId\r\n };\r\n\r\n this.click = true;\r\n //apply css on new message arrival\r\n if (this.connectedBots.length > 1 && this.activeConversationId !== chat.chatId && document.getElementById(chat.chatId)) {\r\n this.applyBadgeOnConnectedBot(document.getElementById(chat.chatId).classList, 'new-chat-notification');\r\n }\r\n\r\n this.conversations.push(activity);\r\n\r\n this.activeConversations = this.conversations.filter(x => x.ChatId == this.activeConversationId);\r\n localStorage.setItem(\"conversations\", JSON.stringify(this.conversations));\r\n this.scrollToBottom();\r\n this.sendNotification(activity);\r\n };\r\n\r\n this._hubConnection.off(\"ReceiveMessage\");\r\n this._hubConnection.on(\"ReceiveMessage\", onReceiveMessageHandler);\r\n\r\n\r\n //on Bot Disconnected handler\r\n let onBotDisconnectedHandler = (botName: string, chatId: string, state: string) => {\r\n this.botUserReconnectionStatus = '';\r\n if (state == \"Reconnected\") {\r\n //clearTimeout(this.timeoutState);\r\n this.botUserReconnectionStatus = botName + \" Reconnected\";\r\n this.toasterService.success(botName + \" Re-connected\");\r\n }\r\n else {\r\n this.toasterService.error(botName + \" Disconnected\");\r\n setTimeout(() => {\r\n if (this.botUserReconnectionStatus != botName + \" Reconnected\") {\r\n if (this.activeConversationId == chatId) {\r\n this.activeConversations = [];\r\n const endChat = this.connectedBots.find(x => x.ChatId == chatId);\r\n if (endChat != null) {\r\n this.connectedBots.splice(this.connectedBots.indexOf(endChat), 1);\r\n this.hilRequest = false;\r\n }\r\n }\r\n else {\r\n //remove the conversations for disconnected user which is other than active conversation user\r\n this.activeConversationsByChatID = this.conversations.filter(x => x.ChatId == chatId);\r\n if (this.activeConversationsByChatID) {\r\n this.conversations = this.conversations.filter(activity =>\r\n !this.activeConversationsByChatID.includes(activity)\r\n );\r\n localStorage.setItem(\"conversations\", JSON.stringify(this.conversations));\r\n localStorage.setItem(chatId, \"true\");\r\n this.scrollToBottom();\r\n }\r\n\r\n //remove the connected bot entry for disconnected user\r\n const endChat = this.connectedBots.find(x => x.ChatId == chatId);\r\n if (endChat != null) {\r\n this.connectedBots.splice(this.connectedBots.indexOf(endChat), 1);\r\n this.hilRequest = false;\r\n }\r\n }\r\n localStorage.setItem(\"connectedBots\", JSON.stringify(this.connectedBots));\r\n localStorage.removeItem(chatId);\r\n this.CloseObsoleteMapping(chatId);\r\n }\r\n }, 30000);\r\n }\r\n };\r\n\r\n this._hubConnection.off(\"onBotDisconnected\");\r\n this._hubConnection.on(\"onBotDisconnected\", onBotDisconnectedHandler);\r\n\r\n //on Agent Transferred handler\r\n let onAgentTransferredHandler = (botUserName, chatId, oldAgentId, newAgentName) => {\r\n if (this.activeConversationId == chatId) {\r\n this.activeConversations = [];\r\n const endChat = this.connectedBots.find(x => x.ChatId == chatId);\r\n if (endChat != null && oldAgentId == this.agentLoginId) {\r\n this.connectedBots.splice(this.connectedBots.indexOf(endChat), 1);\r\n this.hilRequest = false;\r\n this.toasterService.warn(botUserName + \" transferred to Agent: \" + newAgentName);\r\n }\r\n this.activeConversationsByChatID = this.conversations.filter(x => x.ChatId == chatId);\r\n if (this.activeConversationsByChatID && oldAgentId == this.agentLoginId) {\r\n this.conversations = this.conversations.filter(activity =>\r\n !this.activeConversationsByChatID.includes(activity)\r\n );\r\n localStorage.setItem(\"conversations\", JSON.stringify(this.conversations));\r\n this.scrollToBottom();\r\n }\r\n }\r\n\r\n localStorage.setItem(\"connectedBots\", JSON.stringify(this.connectedBots))\r\n };\r\n\r\n this._hubConnection.off(\"onAgentTransferred\");\r\n this._hubConnection.on(\"onAgentTransferred\", onAgentTransferredHandler);\r\n\r\n //on Agent Added to Group chat handler\r\n let onAgentAddedHandler = (chatId, newAgentFullName: string, oldAgentFullName: string, activeGroupChatAgents: GroupChatActiveAgents) => {\r\n this.connectedBots = JSON.parse(localStorage.getItem(\"connectedBots\"))\r\n const groupChat = this.connectedBots.find(x => x.ChatId == chatId);\r\n if (groupChat != null) {\r\n this.connectedBots.splice(this.connectedBots.indexOf(groupChat), 1);\r\n groupChat.IsGroupChat = true;\r\n this.activeChatIsGroupChat = true;\r\n groupChat.GroupChatAgents = activeGroupChatAgents;\r\n this.activeGroupChatAgents = activeGroupChatAgents;\r\n this.connectedBots.push(groupChat);\r\n }\r\n localStorage.setItem(\"connectedBots\", JSON.stringify(this.connectedBots));\r\n this.toasterService.info(\"Agent: \" + oldAgentFullName + \" added agent: \" + newAgentFullName + \" to chat\");\r\n this.addNotificationToActiveConversations(\"Agent: \" + oldAgentFullName + \" added agent: \" + newAgentFullName + \" to chat\", chatId, 'add');\r\n };\r\n\r\n this._hubConnection.off(\"onAgentAdded\");\r\n this._hubConnection.on(\"onAgentAdded\", onAgentAddedHandler);\r\n\r\n //on Group Chat Agent Left Handler\r\n let onGroupChatAgentLeftHandler = (chatId, disconnectedAgentFullName, disconnectedAgentEmailId) => {\r\n const leftChat = this.connectedBots.find(x => x.ChatId == chatId);\r\n if (leftChat != null) {\r\n this.toasterService.warn(\"Agent: \" + disconnectedAgentFullName + \" left the chat with Bot user: \" + leftChat.BotUserName + \" connected to Bot: \" + leftChat.BotName);\r\n this.connectedBots.splice(this.connectedBots.indexOf(leftChat), 1);\r\n leftChat.GroupChatAgents.agentFullName.splice(leftChat.GroupChatAgents.agentFullName.indexOf(disconnectedAgentFullName), 1);\r\n leftChat.GroupChatAgents.agentEmailId.splice(leftChat.GroupChatAgents.agentEmailId.indexOf(disconnectedAgentEmailId.toLowerCase()), 1);\r\n if (leftChat.GroupChatAgents.agentFullName.length == 1 && leftChat.GroupChatAgents.agentFullName.indexOf(this.loggedInAgentFullName) >= 0) {\r\n leftChat.isGroupChat = false;\r\n if (this.activeConversationId == chatId)\r\n this.activeChatIsGroupChat = false;\r\n }\r\n this.connectedBots.push(leftChat);\r\n localStorage.setItem(\"connectedBots\", JSON.stringify(this.connectedBots));\r\n this.addNotificationToActiveConversations(\"Agent: \" + disconnectedAgentFullName + \" left the chat\", chatId, 'remove');\r\n }\r\n else {\r\n this.toasterService.warn(\"Agent: \" + disconnectedAgentFullName + \" left the chat\");\r\n }\r\n };\r\n\r\n this._hubConnection.off(\"onGroupChatAgentLeft\");\r\n this._hubConnection.on(\"onGroupChatAgentLeft\", onGroupChatAgentLeftHandler);\r\n\r\n //on Group Chat Agent Diconnected Handler\r\n let onGroupChatAgentDisconnectedHandler = (chatId, disconnectedAgentFullName, disconnectedAgentEmailId) => {\r\n const disconnectedChat = this.connectedBots.find(x => x.ChatId == chatId);\r\n if (disconnectedChat != null) {\r\n this.toasterService.warn(\"Agent: \" + disconnectedAgentFullName + \" disconnected from the chat with Bot user: \" + disconnectedChat.BotUserName + \" connected to Bot: \" + disconnectedChat.BotName);\r\n this.connectedBots.splice(this.connectedBots.indexOf(disconnectedChat), 1);\r\n disconnectedChat.GroupChatAgents.agentFullName.splice(disconnectedChat.GroupChatAgents.agentFullName.indexOf(disconnectedAgentFullName), 1);\r\n disconnectedChat.GroupChatAgents.agentEmailId.splice(disconnectedChat.GroupChatAgents.agentEmailId.indexOf(disconnectedAgentEmailId.toLowerCase()), 1);\r\n if (disconnectedChat.GroupChatAgents.agentFullName.length == 1 && disconnectedChat.GroupChatAgents.agentFullName.indexOf(this.loggedInAgentFullName) >= 0) {\r\n disconnectedChat.isGroupChat = false;\r\n if (this.activeConversationId == chatId)\r\n this.activeChatIsGroupChat = false;\r\n }\r\n this.connectedBots.push(disconnectedChat);\r\n localStorage.setItem(\"connectedBots\", JSON.stringify(this.connectedBots));\r\n this.addNotificationToActiveConversations(\"Agent: \" + disconnectedAgentFullName + \" disconnected from the chat\", chatId, 'remove');\r\n }\r\n else {\r\n this.toasterService.warn(\"Agent: \" + disconnectedAgentFullName + \" disconnected from the chat\");\r\n }\r\n\r\n };\r\n\r\n this._hubConnection.off(\"onGroupChatAgentDisconnected\");\r\n this._hubConnection.on(\"onGroupChatAgentDisconnected\", onGroupChatAgentDisconnectedHandler);\r\n\r\n\r\n //on Agent Added to Group chat handler\r\n let onGroupChatAgentReconnectedHandler = (agentFullName: string, agentEmailId: string, chatId) => {\r\n this.connectedBots = JSON.parse(localStorage.getItem(\"connectedBots\"))\r\n const groupChat = this.connectedBots.find(x => x.ChatId == chatId);\r\n const reconnectedAgent = groupChat.GroupChatAgents.agentEmailId.find(x => x.toLowerCase() == agentEmailId.toLowerCase())\r\n if (groupChat != null && reconnectedAgent == null) {\r\n this.connectedBots.splice(this.connectedBots.indexOf(groupChat), 1);\r\n groupChat.IsGroupChat = true;\r\n groupChat.GroupChatAgents.agentFullName.push(agentFullName);\r\n groupChat.GroupChatAgents.agentEmailId.push(agentEmailId.toLowerCase());\r\n if (this.activeConversationId == chatId) {\r\n this.activeChatIsGroupChat = true;\r\n this.activeGroupChatAgents = groupChat.GroupChatAgents;\r\n }\r\n this.connectedBots.push(groupChat);\r\n localStorage.setItem(\"connectedBots\", JSON.stringify(this.connectedBots));\r\n this.addNotificationToActiveConversations(\"Agent: \" + agentFullName + \" reconnected to chat\", chatId, 'add');\r\n this.toasterService.info(\"Agent: \" + agentFullName + \" reconnected to chat\");\r\n }\r\n };\r\n\r\n this._hubConnection.off(\"onGroupChatAgentReconnected\");\r\n this._hubConnection.on(\"onGroupChatAgentReconnected\", onGroupChatAgentReconnectedHandler);\r\n\r\n //on Agent Ended Chat Handler\r\n let onAgentEndedChatHandler = (chatId, disconnectedAgentFullName) => {\r\n const endConversation = this.conversations.filter(x => x.ChatId == chatId);\r\n if (endConversation) {\r\n this.conversations = this.conversations.filter(activity =>\r\n !endConversation.includes(activity)\r\n );\r\n localStorage.setItem(\"conversations\", JSON.stringify(this.conversations));\r\n }\r\n const endChat = this.connectedBots.find(x => x.ChatId == chatId);\r\n if (endChat != null) {\r\n this.toasterService.warn(\"Agent: \" + disconnectedAgentFullName + \" ended the chat with Bot user: \" + endChat.BotUserName + \" connected to Bot: \" + endChat.BotName);\r\n this.connectedBots.splice(this.connectedBots.indexOf(endChat), 1);\r\n this.hilRequest = false;\r\n localStorage.setItem(\"connectedBots\", JSON.stringify(this.connectedBots));\r\n this.addNotificationToActiveConversations(\"Agent: \" + disconnectedAgentFullName + \" ended the chat\", chatId, 'remove');\r\n }\r\n else {\r\n this.toasterService.warn(\"Agent: \" + disconnectedAgentFullName + \" ended the chat\");\r\n }\r\n\r\n }\r\n this._hubConnection.off(\"onAgentEndedChat\");\r\n this._hubConnection.on(\"onAgentEndedChat\", onAgentEndedChatHandler);\r\n\r\n\r\n //on Agent Ended Chat Handler\r\n let onGroupChatLeftSuccessfullyHandler = (chatId) => {\r\n const endConversation = this.conversations.filter(x => x.ChatId == chatId);\r\n if (endConversation) {\r\n this.conversations = this.conversations.filter(activity =>\r\n !endConversation.includes(activity)\r\n );\r\n localStorage.setItem(\"conversations\", JSON.stringify(this.conversations));\r\n }\r\n const leftChat = this.connectedBots.find(x => x.ChatId == chatId);\r\n if (leftChat != null) {\r\n this.connectedBots.splice(this.connectedBots.indexOf(leftChat), 1);\r\n this.hilRequest = false;\r\n localStorage.setItem(\"connectedBots\", JSON.stringify(this.connectedBots));\r\n }\r\n }\r\n this._hubConnection.off(\"onGroupChatLeftSuccessfully\");\r\n this._hubConnection.on(\"onGroupChatLeftSuccessfully\", onGroupChatLeftSuccessfullyHandler);\r\n\r\n //notify typing status\r\n let onTypingStatusChangedHandler = (chatId, agentFullName, typingStatus, sender) => {\r\n\r\n var typStatus = { ChatId: chatId, UserFullName: agentFullName, TypingStatus: typingStatus, Sender: sender, DateTime: new Date() };\r\n const userName = localStorage.getItem(\"userFullName\");\r\n\r\n //add user details to active typing\r\n if (typingStatus && agentFullName.toLowerCase() != userName.toLowerCase()) {\r\n const activeTyping = this.activeTypings.find(x => (x.ChatId == typStatus.ChatId\r\n && x.TypingStatus == true\r\n && x.UserFullName == typStatus.UserFullName));\r\n\r\n if (activeTyping != undefined || activeTyping != null) {\r\n this.activeTypings.splice(this.activeTypings.indexOf(activeTyping), 1);\r\n }\r\n this.activeTypings.push(typStatus);\r\n }\r\n else//remove user details to active typing\r\n {\r\n const stoppedTyping = this.activeTypings.find(x => (x.ChatId == typStatus.ChatId && x.UserFullName == typStatus.UserFullName));\r\n if (stoppedTyping != undefined || stoppedTyping != null) {\r\n this.activeTypings.splice(this.activeTypings.indexOf(stoppedTyping), 1);\r\n }\r\n }\r\n this.activeTypingsByActiveConversationId = this.activeTypings.filter(x => (x.ChatId == this.activeConversationId));\r\n\r\n //construct active typing user notification\r\n var activeTypingUserNames = new Array();\r\n for (var i = 0; i < this.activeTypingsByActiveConversationId.length; i++) {\r\n activeTypingUserNames.push(this.activeTypingsByActiveConversationId[i].UserFullName);\r\n }\r\n if (activeTypingUserNames.length <= 0) {\r\n this.activeTypingNotificationMessage = null;\r\n } else if (activeTypingUserNames.length == 1) {\r\n this.activeTypingNotificationMessage = activeTypingUserNames[0] + \" is typing \";\r\n } else {\r\n this.activeTypingNotificationMessage = activeTypingUserNames.join(\", \") + \" are typing \";\r\n }\r\n }\r\n this._hubConnection.off(\"onTypingStatusChanged\");\r\n this._hubConnection.on(\"onTypingStatusChanged\", onTypingStatusChangedHandler);\r\n\r\n\r\n this._hubConnection.onclose(() => {\r\n if (this.connectedBots.length > 0)\r\n this.toasterService.warn(\"Connection closed, re-establishing connection..\");\r\n this.connectedStatusService.sendAgentConnectedStatus(false);\r\n if (localStorage.getItem('userEmailId') && localStorage.getItem('userEmailId') != '') {\r\n setTimeout(() => {\r\n this.service.CreateHubConnection(true);\r\n this.initialiseConversationTab();\r\n }, 3000);\r\n }\r\n }\r\n );\r\n }\r\n else {\r\n localStorage.clear();\r\n this.connectedBots = []; \r\n this.openWarning('connectionClosed');\r\n }\r\n }\r\n\r\n closeHubConnection() {\r\n if (this._hubConnection) {\r\n this._hubConnection\r\n .stop()\r\n .then(() => {\r\n this.connectedStatus = false;\r\n })\r\n .catch(err => this.toasterService.error(\"Error while establishing connection\"));\r\n }\r\n }\r\n\r\n openWarning(value: string) {\r\n let dialogRef = this.dialogWarning.open(WarningPopupComponent, {\r\n height: '27%',\r\n width: '35%',\r\n autoFocus: false,\r\n data: value\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n })\r\n }\r\n isFirstMessageChat(chatId: string): boolean {\r\n const isFirst = localStorage.getItem(chatId) === null;\r\n if (isFirst) {\r\n localStorage.setItem(chatId, 'false');\r\n }\r\n return isFirst;\r\n }\r\n\r\n public onNavigationFromNotifications(): void {\r\n if (localStorage.getItem(\"navigatedChatId\")) {\r\n var navigatedChatId = localStorage.getItem(\"navigatedChatId\");\r\n const navigatedBot = JSON.parse(localStorage.getItem(\"connectedBots\")).find(x => x.ChatId == navigatedChatId);\r\n if (navigatedBot) {\r\n this.SetSelectedChat(document.getElementById(navigatedChatId), navigatedBot);\r\n }\r\n localStorage.removeItem(\"navigatedChatId\");\r\n }\r\n }\r\n\r\n public sendNotification(activity: IConversation): void {\r\n this.notificationService.sendHilConversationNotification(activity);\r\n }\r\n\r\n public clearAllNotifications(): void {\r\n this.notificationService.clearAllNotifications();\r\n }\r\n\r\n public specialCharacterCheck(text): boolean {\r\n let count = 0;\r\n for (let i = 0; i < this.message.length; i++) {\r\n if (this.message[i].match(/[^A-Za-z0-9 ]/)) {\r\n count++;\r\n if (count === 4) {\r\n return this.specialcharacter = true;\r\n }\r\n }\r\n else {\r\n count = 0;\r\n }\r\n }\r\n return this.specialcharacter = false;\r\n }\r\n\r\n public checkForHTML(text): boolean {\r\n var elem = document.createElement('div')\r\n elem.innerHTML = text;\r\n this.htmlElements = !!elem.childElementCount;\r\n return this.htmlElements;\r\n }\r\n\r\n public sendMessage(): void {\r\n if (this.message.trim().length > 0) {\r\n const userName = localStorage.getItem(\"userFullName\");\r\n const activity: IConversation = {\r\n ChatId: this.activeConversationId,\r\n Message: this.message,\r\n Type: 'send',\r\n DateTime: new Date(),\r\n Sender: userName,\r\n BotId: this.activeBotId,\r\n HasAttachment: false,\r\n IsImage: '',\r\n IsAssociatedBotAgent: this.isAssociatedBotAgent,\r\n AssociatedBotConfigId: this.associatedBotId\r\n };\r\n\r\n this.specialCharacterCheck(this.message);\r\n this.checkForHTML(this.message);\r\n\r\n if (this.specialcharacter == false && this.htmlElements == false) {\r\n if (this._hubConnection) {\r\n\r\n if (this.isFirstMessageChat(this.activeConversationId)) {\r\n this.FirstMessage = true;\r\n } else {\r\n this.FirstMessage = false;\r\n } \r\n this._hubConnection\r\n .invoke('Send', activity, true,this.FirstMessage)\r\n .then(() => {\r\n this.conversations.push(activity);\r\n this.activeConversations = this.conversations.filter(x => x.ChatId == this.activeConversationId);\r\n this.message = '';\r\n document.getElementById(\"message\").blur();\r\n this.notifyTypingStatusOffSourceSendButton = true;\r\n this.notifyTypingStatusOff(null);\r\n localStorage.setItem(\"conversations\", JSON.stringify(this.conversations));\r\n this.scrollToBottom();\r\n })\r\n\r\n .catch(err => {\r\n //TODO with status code\r\n if (err.message === \"Failed to invoke 'Send' because user is unauthorized\") {\r\n this.getRefreshToken();\r\n }\r\n })\r\n }\r\n else {\r\n this.toasterService.error(\"Error Occured. Invalid Input\");\r\n }\r\n }\r\n else {\r\n this.toasterService.error(\"Error Occured.Invalid input or special characters are not allowed.\");\r\n }\r\n }\r\n }\r\n\r\n //custom message\r\n public sendMessageFileUpload(message: any): void {\r\n const userName = localStorage.getItem(\"userFullName\");\r\n this.click = false;\r\n const activity: IConversation = {\r\n ChatId: this.activeConversationId,\r\n Message: message,\r\n Type: 'send',\r\n DateTime: new Date(),\r\n Sender: userName,\r\n BotId: this.activeBotId,\r\n HasAttachment: false,\r\n IsImage: '',\r\n IsAssociatedBotAgent: this.isAssociatedBotAgent,\r\n AssociatedBotConfigId: this.associatedBotId\r\n };\r\n\r\n if (this._hubConnection) {\r\n this._hubConnection\r\n .invoke('Send', activity, true, this.FirstMessage)\r\n .then(() => {\r\n this.conversations.push(activity);\r\n this.activeConversations = this.conversations.filter(x => x.ChatId == this.activeConversationId);\r\n this.message = '';\r\n document.getElementById(\"message\").blur();\r\n this.notifyTypingStatusOffSourceSendButton = true;\r\n this.notifyTypingStatusOff(null);\r\n localStorage.setItem(\"conversations\", JSON.stringify(this.conversations));\r\n this.scrollToBottom();\r\n })\r\n\r\n .catch(err => {\r\n //TODO with status code\r\n if (err.message === \"Failed to invoke 'Send' because user is unauthorized\") {\r\n this.getRefreshToken();\r\n }\r\n })\r\n }\r\n }\r\n\r\n getRefreshToken() {\r\n this.tokenService.getRefreshToken()\r\n .subscribe(\r\n res => {\r\n let objToken = res;\r\n localStorage.setItem('accessToken', objToken.token);\r\n localStorage.setItem('refreshToken', objToken.refreshToken);\r\n this.sendMessage();\r\n },\r\n (error) => {\r\n }\r\n );\r\n }\r\n applyBadgeOnConnectedBot(element: any, cssClass: any): void {\r\n if (element) {\r\n element.add(cssClass);\r\n }\r\n }\r\n removeBadgeOnConnectedBot(element: any, cssClass: any): void {\r\n if (element) {\r\n element.remove(cssClass);\r\n }\r\n }\r\n\r\n removeSelectionFromConnectedBots(): void {\r\n var connectedBotList = document.getElementsByClassName('active-chat');\r\n for (var i = 0; i < connectedBotList.length; i++) {\r\n connectedBotList[i].classList.remove('active-chat');\r\n }\r\n }\r\n\r\n scrollToBottom(): void {\r\n this.scrollerHt = document.getElementById(\"msgWindow\") ? document.getElementById(\"msgWindow\").scrollHeight : 0;\r\n }\r\n\r\n setActiveConnectedBot(bot: any): void {\r\n this.activeBotUserName = bot.BotUserName;\r\n this.activeBotUserId = bot.BotUserId;\r\n this.activeBotName = bot.BotName;\r\n this.activeBotConfigId = bot.BotConfigId;\r\n this.activeBotHandOffComment = bot.HandOffInfo;\r\n this.activeChatbotHistory = bot.ChatHistory;\r\n this.activeConversationId = bot.ChatId;\r\n this.activeConversations = this.conversations.filter(x => x.ChatId == this.activeConversationId);\r\n this.activePrimaryAgent = bot.IsPrimaryAgent;\r\n this.activeChatIsGroupChat = bot.IsGroupChat;\r\n this.activeGroupChatAgents = bot.GroupChatAgents;\r\n this.activeBotId = bot.BotId;\r\n this.message = '';\r\n this.activeTypingNotificationMessage = null;\r\n this.IsValidChatManagerRole = bot.IsChatManagerRole;\r\n this.hasAssociatedBot = bot.HasAssociatedBot;\r\n this.associatedBotId = bot.AssociatedBotConfigId;\r\n this.associatedBotName = bot.AssociatedBotName;\r\n }\r\n\r\n showSelectedChat() {\r\n this.hilRequest = true;\r\n }\r\n\r\n SetSelectedChat(event, bot): void {\r\n //set bot as currently active one in the connected bot list\r\n this.setActiveConnectedBot(bot);\r\n const countGrantMsg = this.conversations.filter((obj) => obj.Message === \"*#grant\" && obj.ChatId == this.activeConversationId).length;\r\n const countUrlMsg = this.conversations.filter((obj) => obj.Message.includes('/file-attachments/') && obj.ChatId == this.activeConversationId).length;\r\n if (countGrantMsg != 0 && countUrlMsg != 0) {\r\n if (countGrantMsg == countUrlMsg) {\r\n this.click = false;\r\n }\r\n }\r\n if (countGrantMsg != 0 || countUrlMsg != 0) {\r\n if (countGrantMsg == countUrlMsg) {\r\n this.click = true;\r\n }\r\n }\r\n if (countGrantMsg != 0 || countUrlMsg != 0) {\r\n if (countGrantMsg != countUrlMsg) {\r\n this.click = false;\r\n }\r\n }\r\n if (countGrantMsg == 0 && countUrlMsg == 0) {\r\n this.click = true;\r\n }\r\n //reload the active chat css on connected bot list\r\n if (event)\r\n this.removeBadgeOnConnectedBot((event.classList ? event.classList : event.target.classList), 'new-chat-notification');\r\n this.removeSelectionFromConnectedBots();\r\n if (event)\r\n this.applyBadgeOnConnectedBot((event.classList ? event.classList : event.target.classList), 'active-chat');\r\n this.showSelectedChat();\r\n }\r\n\r\n CloseObsoleteMapping(chatId: string): void {\r\n this._hubConnection\r\n .invoke('CloseObsoleteMappingAsync', chatId, \"Agent\", \"\")\r\n .then(() => {\r\n })\r\n }\r\n\r\n EndSelectedChat(): void {\r\n\r\n const myChat = this.connectedBots.find(x => x.ChatId == this.activeConversationId);\r\n const con = this.conversations.find(y => y.ChatId == this.activeConversationId)\r\n let stringChatInfo = JSON.stringify(myChat);\r\n\r\n const jsonChatInfo = JSON.parse(stringChatInfo);\r\n let history = jsonChatInfo[\"ChatHistory\"];\r\n\r\n let conhistory = this.activeConversations;\r\n\r\n conhistory.forEach(item => {\r\n history.push({ 'Message': item.Message, 'Sender': item.Sender, 'type': item.Type == 'send' ? 'Agent' : 'User', 'DateTime': item.DateTime });\r\n });\r\n\r\n\r\n this._hubConnection\r\n .invoke('EndChatByAgentAsync', this.activeConversationId, localStorage.getItem(\"userFullName\"), localStorage.getItem(\"terminationReason\"), conhistory, this.isAssociatedBotAgent, this.associatedBotId)\r\n .then(() => {\r\n this.activeConversations = [];\r\n const endChat = this.connectedBots.find(x => x.ChatId == this.activeConversationId);\r\n if (endChat != null) {\r\n this.connectedBots.splice(this.connectedBots.indexOf(endChat), 1);\r\n this.hilRequest = false;\r\n localStorage.setItem(\"connectedBots\", JSON.stringify(this.connectedBots));\r\n localStorage.setItem(this.activeConversationId, \"true\");\r\n //this.toasterService.info();\r\n history = [];\r\n }\r\n })\r\n }\r\n\r\n LeaveSelectedChat(): void {\r\n this._hubConnection\r\n .invoke('LeaveChatByAgentAsync', this.activeConversationId, localStorage.getItem(\"userFullName\"))\r\n .then(() => {\r\n this.activeConversations = [];\r\n const leaveChat = this.connectedBots.find(x => x.ChatId == this.activeConversationId);\r\n if (leaveChat != null) {\r\n this.connectedBots.splice(this.connectedBots.indexOf(leaveChat), 1);\r\n this.hilRequest = false;\r\n localStorage.setItem(\"connectedBots\", JSON.stringify(this.connectedBots));\r\n }\r\n })\r\n }\r\n\r\n notifyTypingStatusOn(e): void {\r\n if (this._hubConnection && this.connectedBots.length > 0 && this.activeConversationId != \"\" && this.message != \"\") {\r\n this._hubConnection\r\n .invoke('NotifyTypingStatusAsync', this.activeConversationId, localStorage.getItem(\"userFullName\"), true, \"Agent\")\r\n .then(() => {\r\n })\r\n }\r\n //validating Cross Site Scripting tags.\r\n const input = e.target as HTMLInputElement;\r\n const textboxvalue = input.value;\r\n if (textboxvalue.includes('onerror')) {\r\n this.messageboxvalid = false;\r\n }\r\n else {\r\n this.messageboxvalid = true;\r\n }\r\n }\r\n\r\n notifyTypingStatusOff(event): void {\r\n if (this._hubConnection && this.connectedBots.length > 0 && this.activeConversationId != \"\" && (!(document.getElementById(\"message\") == document.activeElement) || !(this.isCCenterWindowFocused))) {\r\n this._hubConnection\r\n .invoke('NotifyTypingStatusAsync', this.activeConversationId, localStorage.getItem(\"userFullName\"), false, \"Agent\")\r\n .then(() => {\r\n if (this.notifyTypingStatusOffSourceSendButton) {\r\n document.getElementById(\"message\").focus();\r\n this.notifyTypingStatusOffSourceSendButton = false;\r\n }\r\n })\r\n }\r\n }\r\n\r\n AgentLogOut(): void {\r\n this._hubConnection\r\n .stop()\r\n .then(() => {\r\n //this.toasterService.warn(\"Agent logged-out\");\r\n })\r\n .catch(err => this.toasterService.error(\"Error while establishing connection\"));\r\n }\r\n\r\n showComment(activeBotHandOffComment: IHandOffComments[]) {\r\n let dialogRef = this.dialogComment.open(HandoffCommentComponent, {\r\n height: '60%',\r\n width: '60%',\r\n autoFocus: false,\r\n data: JSON.stringify(activeBotHandOffComment)\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n })\r\n }\r\n\r\n showConfirmationPopUp(chatStatus: string) {\r\n localStorage.removeItem('endChat');\r\n localStorage.removeItem('leaveChat');\r\n localStorage.removeItem('terminationReason');\r\n let data = {\r\n chatStatus: chatStatus,\r\n botConfigId: this.activeBotConfigId,\r\n }\r\n let dialogRef = this.dialogWarning.open(WarningPopupComponent, {\r\n height: '27%',\r\n width: '35%',\r\n autoFocus: false,\r\n data: data\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (localStorage.getItem('endChat') == 'true')\r\n this.EndSelectedChat();\r\n else if (localStorage.getItem('leaveChat') == 'true')\r\n this.LeaveSelectedChat();\r\n })\r\n }\r\n\r\n showBotChatHistory(activeChatbotHistory: IChatHistory[]) {\r\n let dialogRef = this.dialogComment.open(BotHistoryComponent, {\r\n height: '60%',\r\n width: '60%',\r\n autoFocus: false,\r\n data: {\r\n chatHistory: JSON.stringify(activeChatbotHistory),\r\n isAssociatedBotAgent: this.isAssociatedBotAgent\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n })\r\n }\r\n\r\n addAgentSeniorAgent() {\r\n const botInfoForAddAgent =\r\n {\r\n BotId: this.activeBotId,\r\n BotConfigId: this.activeBotConfigId,\r\n BotUserId: this.activeBotUserId,\r\n ConversationId: this.activeConversationId,\r\n BotUserName: this.activeBotUserName,\r\n ChatHistory: this.activeChatbotHistory,\r\n HandOffInfo: this.activeBotHandOffComment,\r\n Domain: \"\",\r\n BotName: this.activeBotName,\r\n NewAgentId: \"\",\r\n AddedByAgentId: this.agentLoginId,\r\n Conversations: this.activeConversations,\r\n GroupChatAgents: this.activeGroupChatAgents,\r\n IsValidChatManagerRole: this.IsValidChatManagerRole,\r\n HasAssociatedBot: this.hasAssociatedBot,\r\n AssociatedBotId: this.associatedBotId,\r\n AssociatedBotName: this.associatedBotName\r\n }\r\n\r\n\r\n let dialogRef = this.dialogComment.open(AddNewAgentComponent, {\r\n height: '63%',\r\n width: '60%',\r\n autoFocus: false,\r\n data: JSON.stringify(botInfoForAddAgent)\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n })\r\n }\r\n\r\n showParticipantList() {\r\n let dialogRef = this.dialogComment.open(GroupChatParticipantsComponent, {\r\n height: '33%',\r\n width: '30%',\r\n autoFocus: false,\r\n data: JSON.stringify(this.activeGroupChatAgents)\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n })\r\n }\r\n\r\n showBotUserDetails() {\r\n clearTimeout(this.tooltipDisplay);\r\n this.showBotUserDetailsTootTip = true;\r\n this.tooltipDisplay = setTimeout(() => {\r\n this.showBotUserDetailsTootTip = false;\r\n }, 4000);\r\n }\r\n\r\n endChat() {\r\n this.showConfirmationPopUp('endChat');\r\n }\r\n\r\n leaveChat() {\r\n this.showConfirmationPopUp('leaveChat');\r\n }\r\n\r\n addNotificationToActiveConversations(Notification: string, ChatId: string, Type: string) {\r\n const notificationActivity: IConversation = {\r\n ChatId: ChatId,\r\n Message: Notification,\r\n Type: Type == 'add' ? 'addNotification' : Type == 'remove' ? 'removeNotification' : '',\r\n DateTime: new Date(),\r\n Sender: 'System',\r\n BotId: '',\r\n HasAttachment: false,\r\n IsImage: '',\r\n IsAssociatedBotAgent: this.isAssociatedBotAgent,\r\n AssociatedBotConfigId: this.associatedBotId\r\n };\r\n this.conversations.push(notificationActivity);\r\n this.activeConversations = this.conversations.filter(x => x.ChatId == this.activeConversationId);\r\n localStorage.setItem(\"conversations\", JSON.stringify(this.conversations));\r\n }\r\n onClick(event) {\r\n var target = event.target || event.srcElement || event.currentTarget;\r\n var idAttr = event.currentTarget;\r\n var value = idAttr.id;\r\n this.imageURL = value;\r\n //isImage\r\n const array = ['.jpg', '.png'];\r\n const substring = this.imageURL;\r\n\r\n const match = array.find(element => {\r\n if (element.includes(substring)) {\r\n return true;\r\n }\r\n });\r\n if (match !== undefined) {\r\n // array contains substring match\r\n this.isImage = 'block';\r\n }\r\n if (this.imageURL.includes('jpg')) {\r\n this.isImage = 'block';\r\n }\r\n }\r\n OpenOfficeFiles(data) {\r\n let encodedUrl = encodeURIComponent(data);\r\n if (data.includes('pdf')) {\r\n this.hrefLink = data;\r\n window.open(data, '_blank');\r\n } else {\r\n this.hrefLink = \"https://view.officeapps.live.com/op/view.aspx?src=\" + encodedUrl + \"&wdOrigin=BROWSELINK\";\r\n window.open(this.hrefLink, '_blank');\r\n }\r\n }\r\n}\r\n","export default \".powerbi-frame {\\n display: block;\\n height: calc((100vw - 55px) * 0.59);\\n padding-bottom: 40px;\\n}\\n\\n.container-fluid {\\n background: white;\\n}\\n\\nselect {\\n border: 1px solid #827b7b;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9kYXNoYm9hcmQvYm90ZGFzaGJvYXJkL0M6XFxVc2Vyc1xcS042MjRRWFxcc291cmNlXFxHaXRcXGN0cC1jYmFhcy1jbGllbnQtcG9ydGFsXFxDQmFhUy5ISUwuQ2xpZW50UG9ydGFsLldlYlxcQ2xpZW50QXBwL3NyY1xcYXBwXFxjb21wb25lbnRzXFxkYXNoYm9hcmRcXGJvdGRhc2hib2FyZFxcYm90ZGFzaGJvYXJkLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnRzL2Rhc2hib2FyZC9ib3RkYXNoYm9hcmQvYm90ZGFzaGJvYXJkLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBO0VBQ0UsY0FBQTtFQUNBLG1DQUFBO0VBQ0Esb0JBQUE7QUNERjs7QURJQTtFQUNFLGlCQUFBO0FDREY7O0FESUE7RUFDRSx5QkFBQTtBQ0RGIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9kYXNoYm9hcmQvYm90ZGFzaGJvYXJkL2JvdGRhc2hib2FyZC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIiRleUdyZXk6ICM4MjdiN2I7XHJcblxyXG4ucG93ZXJiaS1mcmFtZSB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgaGVpZ2h0OiBjYWxjKCgxMDB2dyAtIDU1cHgpICogMC41OSk7XHJcbiAgcGFkZGluZy1ib3R0b206IDQwcHg7XHJcbn1cclxuXHJcbi5jb250YWluZXItZmx1aWQge1xyXG4gIGJhY2tncm91bmQ6IHdoaXRlO1xyXG59XHJcblxyXG5zZWxlY3Qge1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICRleUdyZXk7XHJcbn1cclxuIiwiLnBvd2VyYmktZnJhbWUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiBjYWxjKCgxMDB2dyAtIDU1cHgpICogMC41OSk7XG4gIHBhZGRpbmctYm90dG9tOiA0MHB4O1xufVxuXG4uY29udGFpbmVyLWZsdWlkIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG5cbnNlbGVjdCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM4MjdiN2I7XG59Il19 */\"","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as pbi from 'powerbi-client';\r\nimport { BotRegistrationService } from 'src/app/services/core/bot-registration/bot-registration.service';\r\nimport { ConfigurationSettings } from 'src/app/models/configuration.settings';\r\nimport { ToasterService } from '../../../services/shared/toaster/toaster.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-botdashboard',\r\n templateUrl: './botdashboard.component.html',\r\n styleUrls: ['./botdashboard.component.scss']\r\n})\r\nexport class BotdashboardComponent implements OnInit {\r\n\r\n @ViewChild('reportContainer', null) embeddedReport: ElementRef;\r\n config: any;\r\n botList: any;\r\n BotListMessage: string;\r\n report: pbi.Embed;\r\n ReportConfig: any;\r\n constructor(private httpClient: HttpClient,\r\n private botRegistrationService: BotRegistrationService,\r\n private configurationSetting: ConfigurationSettings,\r\n private toasterService: ToasterService) { }\r\n\r\n ngOnInit() {\r\n //Taking accessed bot list\r\n this.botRegistrationService.getRegisteredBots()\r\n .subscribe(\r\n res => {\r\n sessionStorage.setItem(\"lastActiveTab\", \"dashboard\");\r\n this.botList = res;\r\n const models = pbi.models;\r\n if (this.botList.length > 0) {\r\n //Calling Get report call\r\n var url = this.configurationSetting.hostUrl + \"/api/dashboard?reportId=\" + this.botList[0].reportId;\r\n this.httpClient.get(url)\r\n .subscribe(config => {\r\n this.ReportConfig = config;\r\n //debugger;\r\n if (!config.isSpnPowerBi) {\r\n let reportContainer = this.embeddedReport.nativeElement;\r\n let powerbi = new pbi.service.Service(pbi.factories.hpmFactory, pbi.factories.wpmpFactory, pbi.factories.routerFactory);\r\n let report1 = powerbi.embed(reportContainer, config);\r\n } else {\r\n if (config.errorMessage != '' && config.errorMessage != null) {\r\n this.ReportConfig.errorMessage = config.errorMessage;\r\n }\r\n else {\r\n let reportContainer = this.embeddedReport.nativeElement;\r\n let powerbi = new pbi.service.Service(pbi.factories.hpmFactory, pbi.factories.wpmpFactory, pbi.factories.routerFactory);\r\n\r\n var embedConfig = {\r\n type: 'report',\r\n tokenType: models.TokenType.Embed,\r\n accessToken: config.embedToken.token,\r\n embedUrl: config.embedUrl,\r\n id: config.id,\r\n permissions: models.Permissions.All,\r\n };\r\n let report1 = powerbi.embed(reportContainer, embedConfig);\r\n }\r\n }\r\n });\r\n } else {\r\n this.toasterService.warn(\"No BOT(s) available\");\r\n }\r\n },\r\n (error) => {\r\n this.toasterService.error(\"Unable to fetch BOT(s) details at the moment\");\r\n }\r\n )\r\n }\r\n\r\n onBotChange(reportId) {\r\n this.ReportConfig.errorMessage = \"\";\r\n var url = this.configurationSetting.hostUrl + \"/api/dashboard?reportId=\" + reportId;\r\n let reportContainer = this.embeddedReport.nativeElement;\r\n let powerbi = new pbi.service.Service(pbi.factories.hpmFactory, pbi.factories.wpmpFactory, pbi.factories.routerFactory);\r\n powerbi.reset(reportContainer);\r\n const models = pbi.models;\r\n this.httpClient.get(url)\r\n .subscribe(config => {\r\n //debugger;\r\n this.ReportConfig = config;\r\n if (!config.isSpnPowerBi) {\r\n let report1 = powerbi.embed(reportContainer, config);\r\n } else {\r\n this.report = config;\r\n if (config.errorMessage != '' && config.errorMessage != null) {\r\n this.ReportConfig.errorMessage = config.errorMessage;\r\n }\r\n else {\r\n let reportContainer = this.embeddedReport.nativeElement;\r\n let powerbi = new pbi.service.Service(pbi.factories.hpmFactory, pbi.factories.wpmpFactory, pbi.factories.routerFactory);\r\n\r\n var embedConfig = {\r\n type: 'report',\r\n tokenType: models.TokenType.Embed,\r\n accessToken: config.embedToken.token,\r\n embedUrl: config.embedUrl,\r\n id: config.id,\r\n permissions: models.Permissions.All,\r\n };\r\n let report1 = powerbi.embed(reportContainer, embedConfig);\r\n }\r\n }\r\n });\r\n }\r\n\r\n}\r\n","export default \".row-fill-available-height {\\n /*height: -webkit-fill-available !important;*/\\n height: calc(-109px + 100vh);\\n overflow: auto;\\n}\\n\\n.menu-container {\\n min-height: 90%;\\n height: 90%;\\n}\\n\\n.menu-container .row {\\n min-height: 100%;\\n}\\n\\n.menu-container .row .col-menu {\\n display: -webkit-inline-box;\\n display: inline-flex;\\n max-width: 50px;\\n}\\n\\n.menu-container .row .col-menu .menu {\\n background: #333333;\\n display: inline-block;\\n white-space: nowrap;\\n width: 50px;\\n -webkit-transition: width 0.5s;\\n transition: width 0.5s;\\n}\\n\\n.menu-container .row .col-menu .menu .item {\\n height: 50px;\\n overflow: hidden;\\n color: #9c9da0;\\n cursor: pointer;\\n outline: 0;\\n}\\n\\n.menu-container .row .col-menu .menu .item:hover, .menu-container .row .col-menu .menu .item:focus, .menu-container .row .col-menu .menu .item.active {\\n background-color: #222;\\n color: #ffffff;\\n border-left: 3px solid #ffE600;\\n}\\n\\n.menu-container .row .col-menu .menu .item:hover .fas, .menu-container .row .col-menu .menu .item:focus .fas, .menu-container .row .col-menu .menu .item.active .fas {\\n color: #ffffff;\\n}\\n\\n.menu-container .row .col-menu .menu .item .fas {\\n margin: 15px;\\n width: 20px;\\n color: #9c9da0;\\n}\\n\\n.menu-container .row .col-menu .menu .item .fas:hover, .menu-container .row .col-menu .menu .item .fas:focus, .menu-container .row .col-menu .menu .item .fas.active {\\n color: #ffffff;\\n}\\n\\n.menu-container .col {\\n padding: 0 !important;\\n margin: 0 !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9kYXNoYm9hcmQvZGFzaGJvYXJkbWVudS9DOlxcVXNlcnNcXEtONjI0UVhcXHNvdXJjZVxcR2l0XFxjdHAtY2JhYXMtY2xpZW50LXBvcnRhbFxcQ0JhYVMuSElMLkNsaWVudFBvcnRhbC5XZWJcXENsaWVudEFwcC9zcmNcXGFwcFxcY29tcG9uZW50c1xcZGFzaGJvYXJkXFxkYXNoYm9hcmRtZW51XFxkYXNoYm9hcmRtZW51LmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnRzL2Rhc2hib2FyZC9kYXNoYm9hcmRtZW51L2Rhc2hib2FyZG1lbnUuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUE7RUFDRSw2Q0FBQTtFQUNBLDRCQUFBO0VBQ0EsY0FBQTtBQ0xGOztBRFFBO0VBQ0UsZUFBQTtFQUNBLFdBQUE7QUNMRjs7QURPRTtFQUNFLGdCQUFBO0FDTEo7O0FET0k7RUFDRSwyQkFBQTtFQUFBLG9CQUFBO0VBQ0EsZUFBQTtBQ0xOOztBRE9NO0VBQ0UsbUJBeEJJO0VBeUJKLHFCQUFBO0VBQ0EsbUJBQUE7RUFDQSxXQUFBO0VBQ0EsOEJBQUE7RUFBQSxzQkFBQTtBQ0xSOztBRE9RO0VBQ0UsWUFBQTtFQUNBLGdCQUFBO0VBQ0EsY0EvQkc7RUFnQ0gsZUFBQTtFQUNBLFVBQUE7QUNMVjs7QURPVTtFQUNFLHNCQUFBO0VBQ0EsY0FwQ0c7RUFxQ0gsOEJBQUE7QUNMWjs7QURPWTtFQUNFLGNBeENDO0FDbUNmOztBRFNVO0VBQ0UsWUFBQTtFQUNBLFdBQUE7RUFDQSxjQWhEQztBQ3lDYjs7QURTWTtFQUNFLGNBbERDO0FDMkNmOztBRGVFO0VBQ0UscUJBQUE7RUFDQSxvQkFBQTtBQ2JKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9kYXNoYm9hcmQvZGFzaGJvYXJkbWVudS9kYXNoYm9hcmRtZW51LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiJGJnRGVmYXVsdDogIzMzMzMzMztcclxuJGJnSGlnaGxpZ2h0OiAjMDAwMDAwO1xyXG4kY29sRGVmYXVsdDogIzljOWRhMDtcclxuJGNvbEhpZ2hsaWdodDogI2ZmZmZmZjtcclxuJGJnTGVmdEJvcmRlcjogI2ZmRTYwMDtcclxuXHJcbi5yb3ctZmlsbC1hdmFpbGFibGUtaGVpZ2h0IHtcclxuICAvKmhlaWdodDogLXdlYmtpdC1maWxsLWF2YWlsYWJsZSAhaW1wb3J0YW50OyovXHJcbiAgaGVpZ2h0OiBjYWxjKC0xMDlweCArIDEwMHZoKTtcclxuICBvdmVyZmxvdzogYXV0bztcclxufVxyXG5cclxuLm1lbnUtY29udGFpbmVyIHtcclxuICBtaW4taGVpZ2h0OiA5MCU7XHJcbiAgaGVpZ2h0OiA5MCU7XHJcblxyXG4gIC5yb3cge1xyXG4gICAgbWluLWhlaWdodDogMTAwJTtcclxuXHJcbiAgICAuY29sLW1lbnUge1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICAgICAgbWF4LXdpZHRoOiA1MHB4O1xyXG5cclxuICAgICAgLm1lbnUge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICRiZ0RlZmF1bHQ7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICAgICAgd2lkdGg6IDUwcHg7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggLjVzO1xyXG5cclxuICAgICAgICAuaXRlbSB7XHJcbiAgICAgICAgICBoZWlnaHQ6IDUwcHg7XHJcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgICAgY29sb3I6ICRjb2xEZWZhdWx0O1xyXG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgICAgb3V0bGluZTogMDtcclxuXHJcbiAgICAgICAgICAmOmhvdmVyLCAmOmZvY3VzLCAmLmFjdGl2ZSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyMjI7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkY29sSGlnaGxpZ2h0O1xyXG4gICAgICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICRiZ0xlZnRCb3JkZXI7XHJcblxyXG4gICAgICAgICAgICAuZmFzIHtcclxuICAgICAgICAgICAgICBjb2xvcjogJGNvbEhpZ2hsaWdodDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC5mYXMge1xyXG4gICAgICAgICAgICBtYXJnaW46IDE1cHg7XHJcbiAgICAgICAgICAgIHdpZHRoOiAyMHB4O1xyXG4gICAgICAgICAgICBjb2xvcjogJGNvbERlZmF1bHQ7XHJcblxyXG4gICAgICAgICAgICAmOmhvdmVyLCAmOmZvY3VzLCAmLmFjdGl2ZSB7XHJcbiAgICAgICAgICAgICAgY29sb3I6ICRjb2xIaWdobGlnaHQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5jb2wge1xyXG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xyXG4gICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG59XHJcbiIsIi5yb3ctZmlsbC1hdmFpbGFibGUtaGVpZ2h0IHtcbiAgLypoZWlnaHQ6IC13ZWJraXQtZmlsbC1hdmFpbGFibGUgIWltcG9ydGFudDsqL1xuICBoZWlnaHQ6IGNhbGMoLTEwOXB4ICsgMTAwdmgpO1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLm1lbnUtY29udGFpbmVyIHtcbiAgbWluLWhlaWdodDogOTAlO1xuICBoZWlnaHQ6IDkwJTtcbn1cbi5tZW51LWNvbnRhaW5lciAucm93IHtcbiAgbWluLWhlaWdodDogMTAwJTtcbn1cbi5tZW51LWNvbnRhaW5lciAucm93IC5jb2wtbWVudSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBtYXgtd2lkdGg6IDUwcHg7XG59XG4ubWVudS1jb250YWluZXIgLnJvdyAuY29sLW1lbnUgLm1lbnUge1xuICBiYWNrZ3JvdW5kOiAjMzMzMzMzO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHdpZHRoOiA1MHB4O1xuICB0cmFuc2l0aW9uOiB3aWR0aCAwLjVzO1xufVxuLm1lbnUtY29udGFpbmVyIC5yb3cgLmNvbC1tZW51IC5tZW51IC5pdGVtIHtcbiAgaGVpZ2h0OiA1MHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjb2xvcjogIzljOWRhMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvdXRsaW5lOiAwO1xufVxuLm1lbnUtY29udGFpbmVyIC5yb3cgLmNvbC1tZW51IC5tZW51IC5pdGVtOmhvdmVyLCAubWVudS1jb250YWluZXIgLnJvdyAuY29sLW1lbnUgLm1lbnUgLml0ZW06Zm9jdXMsIC5tZW51LWNvbnRhaW5lciAucm93IC5jb2wtbWVudSAubWVudSAuaXRlbS5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCAjZmZFNjAwO1xufVxuLm1lbnUtY29udGFpbmVyIC5yb3cgLmNvbC1tZW51IC5tZW51IC5pdGVtOmhvdmVyIC5mYXMsIC5tZW51LWNvbnRhaW5lciAucm93IC5jb2wtbWVudSAubWVudSAuaXRlbTpmb2N1cyAuZmFzLCAubWVudS1jb250YWluZXIgLnJvdyAuY29sLW1lbnUgLm1lbnUgLml0ZW0uYWN0aXZlIC5mYXMge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi5tZW51LWNvbnRhaW5lciAucm93IC5jb2wtbWVudSAubWVudSAuaXRlbSAuZmFzIHtcbiAgbWFyZ2luOiAxNXB4O1xuICB3aWR0aDogMjBweDtcbiAgY29sb3I6ICM5YzlkYTA7XG59XG4ubWVudS1jb250YWluZXIgLnJvdyAuY29sLW1lbnUgLm1lbnUgLml0ZW0gLmZhczpob3ZlciwgLm1lbnUtY29udGFpbmVyIC5yb3cgLmNvbC1tZW51IC5tZW51IC5pdGVtIC5mYXM6Zm9jdXMsIC5tZW51LWNvbnRhaW5lciAucm93IC5jb2wtbWVudSAubWVudSAuaXRlbSAuZmFzLmFjdGl2ZSB7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLm1lbnUtY29udGFpbmVyIC5jb2wge1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xufSJdfQ== */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-dashboardmenu',\r\n templateUrl: './dashboardmenu.component.html',\r\n styleUrls: ['./dashboardmenu.component.scss']\r\n})\r\nexport class DashboardmenuComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() { \r\n }\r\n\r\n}\r\n","export default \".bg-gold {\\n background: linear-gradient(110deg, #fdcd3b 60%, #ffed4b 60%);\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9zaGFyZWQvYXV0aGVudGljYXRpb24vQzpcXFVzZXJzXFxLTjYyNFFYXFxzb3VyY2VcXEdpdFxcY3RwLWNiYWFzLWNsaWVudC1wb3J0YWxcXENCYWFTLkhJTC5DbGllbnRQb3J0YWwuV2ViXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXHNoYXJlZFxcYXV0aGVudGljYXRpb25cXGF1dGhlbnRpY2F0aW9uLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnRzL3NoYXJlZC9hdXRoZW50aWNhdGlvbi9hdXRoZW50aWNhdGlvbi5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUlFLDZEQUFBO0FDQ0YiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3NoYXJlZC9hdXRoZW50aWNhdGlvbi9hdXRoZW50aWNhdGlvbi5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5iZy1nb2xkIHtcclxuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgxMTBkZWcsICNmZGNkM2IgNjAlLCAjZmZlZDRiIDYwJSk7XHJcbiAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KDExMGRlZywgI2ZkY2QzYiA2MCUsICNmZmVkNGIgNjAlKTtcclxuICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCgxMTBkZWcsICNmZGNkM2IgNjAlLCAjZmZlZDRiIDYwJSk7XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDExMGRlZywgI2ZkY2QzYiA2MCUsICNmZmVkNGIgNjAlKTtcclxufVxyXG4iLCIuYmctZ29sZCB7XG4gIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KDExMGRlZywgI2ZkY2QzYiA2MCUsICNmZmVkNGIgNjAlKTtcbiAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KDExMGRlZywgI2ZkY2QzYiA2MCUsICNmZmVkNGIgNjAlKTtcbiAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQoMTEwZGVnLCAjZmRjZDNiIDYwJSwgI2ZmZWQ0YiA2MCUpO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTEwZGVnLCAjZmRjZDNiIDYwJSwgI2ZmZWQ0YiA2MCUpO1xufSJdfQ== */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-authentication',\r\n templateUrl: './authentication.component.html',\r\n styleUrls: ['./authentication.component.scss']\r\n})\r\nexport class AuthenticationComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","export default \".btn-warning {\\n color: #212529;\\n background-color: #ffee56;\\n border-color: #ffee56;\\n}\\n.btn-warning:hover, .btn-warning:focus, .btn-warning.active {\\n background-color: #ffe500;\\n border-color: #ffe500;\\n}\\n.bg-gold {\\n background: linear-gradient(110deg, #fdcd3b 60%, #ffed4b 60%);\\n}\\n.closebutton {\\n cursor: pointer;\\n float: right;\\n}\\n.msg-history {\\n overflow-y: auto;\\n}\\n.msg-history .incoming-msg .incoming-msg-img {\\n display: inline-block;\\n width: 6%;\\n padding: 4px;\\n}\\n.msg-history .incoming-msg .received-msg {\\n display: inline-block;\\n padding: 0 0 0 10px;\\n vertical-align: top;\\n width: 92%;\\n}\\n.msg-history .incoming-msg .received-msg .received-withd-msg {\\n width: 57%;\\n}\\n.msg-history .incoming-msg .received-msg .received-withd-msg p {\\n background: #fff9c7 none repeat scroll 0 0;\\n border-radius: 3px;\\n font-size: 12px;\\n margin: 0;\\n color: #000;\\n padding: 5px 10px 5px 12px;\\n width: 100%;\\n margin-left: 1rem;\\n word-wrap: break-word;\\n}\\n.msg-history .outgoing-msg {\\n overflow: hidden;\\n margin-bottom: 0.5rem !important;\\n}\\n.msg-history .outgoing-msg .outgoing-msg-img {\\n display: inline-block;\\n width: 4%;\\n padding: 4px;\\n}\\n.msg-history .outgoing-msg .sent-msg {\\n float: right;\\n width: 46%;\\n}\\n.msg-history .outgoing-msg .sent-msg p {\\n background: #ebebeb none repeat scroll 0 0;\\n border-radius: 3px;\\n color: #444444;\\n font-size: 12px;\\n margin: 0;\\n padding: 5px 10px 5px 12px;\\n width: 100%;\\n word-wrap: break-word;\\n}\\n.msg-history img {\\n max-width: 100%;\\n}\\n.msg-history .time-date {\\n color: #747474;\\n display: block;\\n font-size: 10px;\\n margin: 8px 0 0;\\n}\\n.name-initials-circle {\\n background: #cecece;\\n padding: 4px;\\n margin: 6px;\\n border-radius: 10rem;\\n font-weight: 500;\\n padding-top: 5px;\\n}\\n.notification-msg h4 {\\n width: 100%;\\n text-align: center;\\n border-bottom: 0.5px solid #999;\\n line-height: 0.1em;\\n margin: 10px 0 20px;\\n}\\n.notification-msg h4 span {\\n background: white;\\n padding: 0 5px;\\n font-size: 0.6rem;\\n border-radius: 30rem;\\n color: #999;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9zaGFyZWQvYm90LWhpc3RvcnkvQzpcXFVzZXJzXFxLTjYyNFFYXFxzb3VyY2VcXEdpdFxcY3RwLWNiYWFzLWNsaWVudC1wb3J0YWxcXENCYWFTLkhJTC5DbGllbnRQb3J0YWwuV2ViXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXHNoYXJlZFxcYm90LWhpc3RvcnlcXGJvdC1oaXN0b3J5LmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnRzL3NoYXJlZC9ib3QtaGlzdG9yeS9ib3QtaGlzdG9yeS5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQTtFQUNFLGNBQUE7RUFDQSx5QkFOUztFQU9ULHFCQVBTO0FDSVg7QURLRTtFQUNFLHlCQVRXO0VBVVgscUJBVlc7QUNPZjtBRE9BO0VBSUUsNkRBQUE7QUNKRjtBRE9BO0VBQ0UsZUFBQTtFQUNBLFlBQUE7QUNKRjtBRE9BO0VBQ0UsZ0JBQUE7QUNKRjtBRFFJO0VBQ0UscUJBQUE7RUFDQSxTQUFBO0VBQ0EsWUFBQTtBQ05OO0FEU0k7RUFDRSxxQkFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7RUFDQSxVQUFBO0FDUE47QURTTTtFQUNFLFVBQUE7QUNQUjtBRFNRO0VBQ0UsMENBQUE7RUFDQSxrQkFBQTtFQUNBLGVBQUE7RUFDQSxTQUFBO0VBQ0EsV0FBQTtFQUNBLDBCQUFBO0VBQ0EsV0FBQTtFQUNBLGlCQUFBO0VBQ0EscUJBQUE7QUNQVjtBRGFFO0VBQ0UsZ0JBQUE7RUFDQSxnQ0FBQTtBQ1hKO0FEYUk7RUFDRSxxQkFBQTtFQUNBLFNBQUE7RUFDQSxZQUFBO0FDWE47QURjSTtFQUNFLFlBQUE7RUFDQSxVQUFBO0FDWk47QURjTTtFQUNFLDBDQUFBO0VBQ0Esa0JBQUE7RUFDQSxjQUFBO0VBQ0EsZUFBQTtFQUNBLFNBQUE7RUFDQSwwQkFBQTtFQUNBLFdBQUE7RUFDQSxxQkFBQTtBQ1pSO0FEaUJFO0VBQ0UsZUFBQTtBQ2ZKO0FEa0JFO0VBQ0UsY0FBQTtFQUNBLGNBQUE7RUFDQSxlQUFBO0VBQ0EsZUFBQTtBQ2hCSjtBRHFCQTtFQUNFLG1CQUFBO0VBQ0EsWUFBQTtFQUNBLFdBQUE7RUFDQSxvQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7QUNsQkY7QURxQkE7RUFDRSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSwrQkFBQTtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7QUNsQkY7QURzQkE7RUFDRSxpQkFBQTtFQUNBLGNBQUE7RUFDQSxpQkFBQTtFQUNBLG9CQUFBO0VBQ0EsV0FBQTtBQ25CRiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvc2hhcmVkL2JvdC1oaXN0b3J5L2JvdC1oaXN0b3J5LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiJGV5WWVsbG93OiAjZmZlZTU2O1xyXG4kZXlEYXJrWWVsbG93OiAjZmZlNTAwO1xyXG4kZXlMaWdodFllbGxvdzogI2ZmZjljNztcclxuXHJcbi5idG4td2FybmluZyB7XHJcbiAgY29sb3I6ICMyMTI1Mjk7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGV5WWVsbG93O1xyXG4gIGJvcmRlci1jb2xvcjogJGV5WWVsbG93O1xyXG5cclxuICAmOmhvdmVyLCAmOmZvY3VzLCAmLmFjdGl2ZSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZXlEYXJrWWVsbG93O1xyXG4gICAgYm9yZGVyLWNvbG9yOiAkZXlEYXJrWWVsbG93O1xyXG4gIH1cclxufVxyXG5cclxuLmJnLWdvbGQge1xyXG4gIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KDExMGRlZywgI2ZkY2QzYiA2MCUsICNmZmVkNGIgNjAlKTtcclxuICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQoMTEwZGVnLCAjZmRjZDNiIDYwJSwgI2ZmZWQ0YiA2MCUpO1xyXG4gIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KDExMGRlZywgI2ZkY2QzYiA2MCUsICNmZmVkNGIgNjAlKTtcclxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTEwZGVnLCAjZmRjZDNiIDYwJSwgI2ZmZWQ0YiA2MCUpO1xyXG59XHJcblxyXG4uY2xvc2VidXR0b24ge1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBmbG9hdDogcmlnaHQ7XHJcbn1cclxuXHJcbi5tc2ctaGlzdG9yeSB7XHJcbiAgb3ZlcmZsb3cteTogYXV0bztcclxuXHJcblxyXG4gIC5pbmNvbWluZy1tc2cge1xyXG4gICAgLmluY29taW5nLW1zZy1pbWcge1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgIHdpZHRoOiA2JTtcclxuICAgICAgcGFkZGluZzogNHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5yZWNlaXZlZC1tc2cge1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgIHBhZGRpbmc6IDAgMCAwIDEwcHg7XHJcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcbiAgICAgIHdpZHRoOiA5MiU7XHJcblxyXG4gICAgICAucmVjZWl2ZWQtd2l0aGQtbXNnIHtcclxuICAgICAgICB3aWR0aDogNTclO1xyXG5cclxuICAgICAgICBwIHtcclxuICAgICAgICAgIGJhY2tncm91bmQ6ICRleUxpZ2h0WWVsbG93IG5vbmUgcmVwZWF0IHNjcm9sbCAwIDA7XHJcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XHJcbiAgICAgICAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICBjb2xvcjogIzAwMDtcclxuICAgICAgICAgIHBhZGRpbmc6IDVweCAxMHB4IDVweCAxMnB4O1xyXG4gICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMXJlbTtcclxuICAgICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5vdXRnb2luZy1tc2cge1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIG1hcmdpbi1ib3R0b206IC41cmVtICFpbXBvcnRhbnQ7XHJcblxyXG4gICAgLm91dGdvaW5nLW1zZy1pbWcge1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgIHdpZHRoOiA0JTtcclxuICAgICAgcGFkZGluZzogNHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5zZW50LW1zZyB7XHJcbiAgICAgIGZsb2F0OiByaWdodDtcclxuICAgICAgd2lkdGg6IDQ2JTtcclxuXHJcbiAgICAgIHAge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICNlYmViZWIgbm9uZSByZXBlYXQgc2Nyb2xsIDAgMDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XHJcbiAgICAgICAgY29sb3I6ICM0NDQ0NDQ7XHJcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICBwYWRkaW5nOiA1cHggMTBweCA1cHggMTJweDtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGltZyB7XHJcbiAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG5cclxuICAudGltZS1kYXRlIHtcclxuICAgIGNvbG9yOiAjNzQ3NDc0O1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBmb250LXNpemU6IDEwcHg7XHJcbiAgICBtYXJnaW46IDhweCAwIDA7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLm5hbWUtaW5pdGlhbHMtY2lyY2xlIHtcclxuICBiYWNrZ3JvdW5kOiAjY2VjZWNlO1xyXG4gIHBhZGRpbmc6IDRweDtcclxuICBtYXJnaW46IDZweDtcclxuICBib3JkZXItcmFkaXVzOiAxMHJlbTtcclxuICBmb250LXdlaWdodDogNTAwO1xyXG4gIHBhZGRpbmctdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5ub3RpZmljYXRpb24tbXNnIGg0IHtcclxuICB3aWR0aDogMTAwJTtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgYm9yZGVyLWJvdHRvbTogMC41cHggc29saWQgIzk5OTtcclxuICBsaW5lLWhlaWdodDogMC4xZW07XHJcbiAgbWFyZ2luOiAxMHB4IDAgMjBweDtcclxufVxyXG5cclxuXHJcbi5ub3RpZmljYXRpb24tbXNnIGg0IHNwYW4ge1xyXG4gIGJhY2tncm91bmQ6IHdoaXRlO1xyXG4gIHBhZGRpbmc6IDAgNXB4O1xyXG4gIGZvbnQtc2l6ZTogMC42MHJlbTtcclxuICBib3JkZXItcmFkaXVzOiAzMHJlbTtcclxuICBjb2xvcjojOTk5O1xyXG59XHJcbiIsIi5idG4td2FybmluZyB7XG4gIGNvbG9yOiAjMjEyNTI5O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlZTU2O1xuICBib3JkZXItY29sb3I6ICNmZmVlNTY7XG59XG4uYnRuLXdhcm5pbmc6aG92ZXIsIC5idG4td2FybmluZzpmb2N1cywgLmJ0bi13YXJuaW5nLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmU1MDA7XG4gIGJvcmRlci1jb2xvcjogI2ZmZTUwMDtcbn1cblxuLmJnLWdvbGQge1xuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgxMTBkZWcsICNmZGNkM2IgNjAlLCAjZmZlZDRiIDYwJSk7XG4gIGJhY2tncm91bmQ6IC1vLWxpbmVhci1ncmFkaWVudCgxMTBkZWcsICNmZGNkM2IgNjAlLCAjZmZlZDRiIDYwJSk7XG4gIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KDExMGRlZywgI2ZkY2QzYiA2MCUsICNmZmVkNGIgNjAlKTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDExMGRlZywgI2ZkY2QzYiA2MCUsICNmZmVkNGIgNjAlKTtcbn1cblxuLmNsb3NlYnV0dG9uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbi5tc2ctaGlzdG9yeSB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG4ubXNnLWhpc3RvcnkgLmluY29taW5nLW1zZyAuaW5jb21pbmctbXNnLWltZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDYlO1xuICBwYWRkaW5nOiA0cHg7XG59XG4ubXNnLWhpc3RvcnkgLmluY29taW5nLW1zZyAucmVjZWl2ZWQtbXNnIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwIDAgMCAxMHB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB3aWR0aDogOTIlO1xufVxuLm1zZy1oaXN0b3J5IC5pbmNvbWluZy1tc2cgLnJlY2VpdmVkLW1zZyAucmVjZWl2ZWQtd2l0aGQtbXNnIHtcbiAgd2lkdGg6IDU3JTtcbn1cbi5tc2ctaGlzdG9yeSAuaW5jb21pbmctbXNnIC5yZWNlaXZlZC1tc2cgLnJlY2VpdmVkLXdpdGhkLW1zZyBwIHtcbiAgYmFja2dyb3VuZDogI2ZmZjljNyBub25lIHJlcGVhdCBzY3JvbGwgMCAwO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbWFyZ2luOiAwO1xuICBjb2xvcjogIzAwMDtcbiAgcGFkZGluZzogNXB4IDEwcHggNXB4IDEycHg7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tbGVmdDogMXJlbTtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xufVxuLm1zZy1oaXN0b3J5IC5vdXRnb2luZy1tc2cge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW0gIWltcG9ydGFudDtcbn1cbi5tc2ctaGlzdG9yeSAub3V0Z29pbmctbXNnIC5vdXRnb2luZy1tc2ctaW1nIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogNCU7XG4gIHBhZGRpbmc6IDRweDtcbn1cbi5tc2ctaGlzdG9yeSAub3V0Z29pbmctbXNnIC5zZW50LW1zZyB7XG4gIGZsb2F0OiByaWdodDtcbiAgd2lkdGg6IDQ2JTtcbn1cbi5tc2ctaGlzdG9yeSAub3V0Z29pbmctbXNnIC5zZW50LW1zZyBwIHtcbiAgYmFja2dyb3VuZDogI2ViZWJlYiBub25lIHJlcGVhdCBzY3JvbGwgMCAwO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGNvbG9yOiAjNDQ0NDQ0O1xuICBmb250LXNpemU6IDEycHg7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogNXB4IDEwcHggNXB4IDEycHg7XG4gIHdpZHRoOiAxMDAlO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG59XG4ubXNnLWhpc3RvcnkgaW1nIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuLm1zZy1oaXN0b3J5IC50aW1lLWRhdGUge1xuICBjb2xvcjogIzc0NzQ3NDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgbWFyZ2luOiA4cHggMCAwO1xufVxuXG4ubmFtZS1pbml0aWFscy1jaXJjbGUge1xuICBiYWNrZ3JvdW5kOiAjY2VjZWNlO1xuICBwYWRkaW5nOiA0cHg7XG4gIG1hcmdpbjogNnB4O1xuICBib3JkZXItcmFkaXVzOiAxMHJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgcGFkZGluZy10b3A6IDVweDtcbn1cblxuLm5vdGlmaWNhdGlvbi1tc2cgaDQge1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXItYm90dG9tOiAwLjVweCBzb2xpZCAjOTk5O1xuICBsaW5lLWhlaWdodDogMC4xZW07XG4gIG1hcmdpbjogMTBweCAwIDIwcHg7XG59XG5cbi5ub3RpZmljYXRpb24tbXNnIGg0IHNwYW4ge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgcGFkZGluZzogMCA1cHg7XG4gIGZvbnQtc2l6ZTogMC42cmVtO1xuICBib3JkZXItcmFkaXVzOiAzMHJlbTtcbiAgY29sb3I6ICM5OTk7XG59Il19 */\"","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { BotRegistrationService } from 'src/app/services/core/bot-registration/bot-registration.service';\r\nimport { IChartService } from 'ag-grid-community';\r\nimport { IChatHistory } from 'src/app/models/chat-history';\r\nimport { NavigationStart, RouterEvent, Router } from '@angular/router';\r\nimport { filter } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-bot-history',\r\n templateUrl: './bot-history.component.html',\r\n styleUrls: ['./bot-history.component.scss']\r\n})\r\nexport class BotHistoryComponent implements OnInit {\r\n chatHistory: IChatHistory[] = [];\r\n isAssociatedBotAgent: boolean = false;\r\n _routerSubscription: any;\r\n toggle = true;\r\n\r\n constructor(private dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private router: Router) {\r\n this.chatHistory = JSON.parse(this.data.chatHistory);\r\n this.isAssociatedBotAgent = this.data.isAssociatedBotAgent;\r\n }\r\n\r\n ngOnInit() {\r\n this._routerSubscription = this.router.events\r\n .pipe(\r\n filter((event: RouterEvent) => event instanceof NavigationStart),\r\n filter(() => !!this.dialogRef)\r\n )\r\n .subscribe(() => {\r\n this.dialogRef.close();\r\n });\r\n this.chatHistory = JSON.parse(this.data.chatHistory);\r\n\r\n //console.log(this.chatHistory);\r\n }\r\n onClose() {\r\n this.dialogRef.close('Close');\r\n }\r\n}\r\n","export default \".bg-grey {\\n background: linear-gradient(110deg, #181A1C 60%, #7d7e82 60%);\\n min-height: 33px;\\n}\\n\\n.breadcrumb {\\n background: none;\\n font-size: 0.8em;\\n margin: 0;\\n}\\n\\n.breadcrumb a,\\n.breadcrumb span {\\n color: darkgrey;\\n outline: none;\\n}\\n\\n.breadcrumb a:hover,\\n.breadcrumb span:hover {\\n color: white;\\n text-decoration: none;\\n cursor: pointer;\\n outline: none;\\n}\\n\\n.breadcrumb li {\\n list-style: none;\\n float: left;\\n margin: 2px;\\n}\\n\\n.breadcrumb li:last-child {\\n margin-right: 20px;\\n}\\n\\n.breadcrumb li::after {\\n content: \\\">\\\";\\n color: darkgrey;\\n}\\n\\n.breadcrumb li:last-child::after {\\n content: \\\"\\\";\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9zaGFyZWQvYnJlYWRjcnVtYi9DOlxcVXNlcnNcXEtONjI0UVhcXHNvdXJjZVxcR2l0XFxjdHAtY2JhYXMtY2xpZW50LXBvcnRhbFxcQ0JhYVMuSElMLkNsaWVudFBvcnRhbC5XZWJcXENsaWVudEFwcC9zcmNcXGFwcFxcY29tcG9uZW50c1xcc2hhcmVkXFxicmVhZGNydW1iXFxicmVhZGNydW1iLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnRzL3NoYXJlZC9icmVhZGNydW1iL2JyZWFkY3J1bWIuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFJRSw2REFBQTtFQUNBLGdCQUFBO0FDQ0Y7O0FERUE7RUFDRSxnQkFBQTtFQUNBLGdCQUFBO0VBQ0EsU0FBQTtBQ0NGOztBRENFOztFQUVFLGVBQUE7RUFDQSxhQUFBO0FDQ0o7O0FERUU7O0VBRUUsWUFBQTtFQUNBLHFCQUFBO0VBQ0EsZUFBQTtFQUNBLGFBQUE7QUNBSjs7QURHRTtFQUNFLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLFdBQUE7QUNESjs7QURJRTtFQUNFLGtCQUFBO0FDRko7O0FES0U7RUFDRSxZQUFBO0VBQ0EsZUFBQTtBQ0hKOztBRE1FO0VBQ0UsV0FBQTtBQ0pKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9zaGFyZWQvYnJlYWRjcnVtYi9icmVhZGNydW1iLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmJnLWdyZXkge1xyXG4gIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KDExMGRlZywgIzE4MUExQyA2MCUsICM3ZDdlODIgNjAlKTtcclxuICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQoMTEwZGVnLCAjMTgxQTFDIDYwJSwgIzdkN2U4MiA2MCUpO1xyXG4gIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KDExMGRlZywgIzE4MUExQyA2MCUsICM3ZDdlODIgNjAlKTtcclxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTEwZGVnLCAjMTgxQTFDIDYwJSwgIzdkN2U4MiA2MCUpO1xyXG4gIG1pbi1oZWlnaHQ6MzNweDtcclxufVxyXG5cclxuLmJyZWFkY3J1bWIge1xyXG4gIGJhY2tncm91bmQ6IG5vbmU7XHJcbiAgZm9udC1zaXplOiAwLjhlbTtcclxuICBtYXJnaW46IDA7XHJcblxyXG4gIGEsXHJcbiAgc3BhbiB7XHJcbiAgICBjb2xvcjogZGFya2dyZXk7XHJcbiAgICBvdXRsaW5lOiBub25lO1xyXG4gIH1cclxuXHJcbiAgYTpob3ZlcixcclxuICBzcGFuOmhvdmVyIHtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgfVxyXG5cclxuICBsaSB7XHJcbiAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICBtYXJnaW46IDJweDtcclxuICB9XHJcblxyXG4gIGxpOmxhc3QtY2hpbGQge1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xyXG4gIH1cclxuXHJcbiAgbGk6OmFmdGVyIHtcclxuICAgIGNvbnRlbnQ6IFwiPlwiO1xyXG4gICAgY29sb3I6IGRhcmtncmV5O1xyXG4gIH1cclxuXHJcbiAgbGk6bGFzdC1jaGlsZDo6YWZ0ZXIge1xyXG4gICAgY29udGVudDogXCJcIjtcclxuICB9XHJcbn1cclxuIiwiLmJnLWdyZXkge1xuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgxMTBkZWcsICMxODFBMUMgNjAlLCAjN2Q3ZTgyIDYwJSk7XG4gIGJhY2tncm91bmQ6IC1vLWxpbmVhci1ncmFkaWVudCgxMTBkZWcsICMxODFBMUMgNjAlLCAjN2Q3ZTgyIDYwJSk7XG4gIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KDExMGRlZywgIzE4MUExQyA2MCUsICM3ZDdlODIgNjAlKTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDExMGRlZywgIzE4MUExQyA2MCUsICM3ZDdlODIgNjAlKTtcbiAgbWluLWhlaWdodDogMzNweDtcbn1cblxuLmJyZWFkY3J1bWIge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBmb250LXNpemU6IDAuOGVtO1xuICBtYXJnaW46IDA7XG59XG4uYnJlYWRjcnVtYiBhLFxuLmJyZWFkY3J1bWIgc3BhbiB7XG4gIGNvbG9yOiBkYXJrZ3JleTtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5icmVhZGNydW1iIGE6aG92ZXIsXG4uYnJlYWRjcnVtYiBzcGFuOmhvdmVyIHtcbiAgY29sb3I6IHdoaXRlO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5icmVhZGNydW1iIGxpIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbjogMnB4O1xufVxuLmJyZWFkY3J1bWIgbGk6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1yaWdodDogMjBweDtcbn1cbi5icmVhZGNydW1iIGxpOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiPlwiO1xuICBjb2xvcjogZGFya2dyZXk7XG59XG4uYnJlYWRjcnVtYiBsaTpsYXN0LWNoaWxkOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG59Il19 */\"","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router, NavigationEnd } from '@angular/router';\r\nimport { IBreadCrumb } from '../../../models/ibread-crumb';\r\nimport { filter, distinctUntilChanged } from 'rxjs/operators';\r\nimport { from } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-breadcrumb',\r\n templateUrl: './breadcrumb.component.html',\r\n styleUrls: ['./breadcrumb.component.scss']\r\n})\r\n\r\nexport class BreadcrumbComponent implements OnInit {\r\n public breadcrumbs: IBreadCrumb[]\r\n\r\n constructor(\r\n private router: Router,\r\n private activatedRoute: ActivatedRoute,\r\n ) {\r\n this.breadcrumbs = this.buildBreadCrumb(this.activatedRoute.root);\r\n }\r\n\r\n ngOnInit() {\r\n this.router.events.pipe(\r\n filter(event => event instanceof NavigationEnd)\r\n ).subscribe(() => {\r\n this.breadcrumbs = this.buildBreadCrumb(this.activatedRoute.root);\r\n });\r\n }\r\n\r\n buildBreadCrumb(route: ActivatedRoute, url: string = '', breadcrumbs: IBreadCrumb[] = []): IBreadCrumb[] {\r\n //If no routeConfig is avalailable we are on the root path\r\n let label = route.routeConfig && route.routeConfig.data ? route.routeConfig.data.breadcrumb : '';\r\n let isClickable = route.routeConfig && route.routeConfig.data && route.routeConfig.data.isClickable;\r\n let path = route.routeConfig && route.routeConfig.data ? route.routeConfig.path : '';\r\n\r\n // If the route is dynamic route such as ':id', remove it\r\n const lastRoutePart = path.split('/').pop();\r\n const isDynamicRoute = lastRoutePart.startsWith(':');\r\n if (isDynamicRoute && !!route.snapshot) {\r\n const paramName = lastRoutePart.split(':')[1];\r\n path = path.replace(lastRoutePart, route.snapshot.params[paramName]);\r\n label = route.snapshot.params[paramName];\r\n }\r\n\r\n //In the routeConfig the complete path is not available,\r\n //so we rebuild it each time\r\n const nextUrl = path ? `${url}/${path}` : url;\r\n\r\n const breadcrumb: IBreadCrumb = {\r\n label: label,\r\n url: nextUrl,\r\n };\r\n // Only adding route with non-empty label\r\n const newBreadcrumbs = breadcrumb.label ? [...breadcrumbs, breadcrumb] : [...breadcrumbs];\r\n if (route.firstChild) {\r\n //If we are not on our current path yet,\r\n //there will be more children to look after, to build our breadcumb\r\n return this.buildBreadCrumb(route.firstChild, nextUrl, newBreadcrumbs);\r\n }\r\n return newBreadcrumbs;\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvc2hhcmVkL2RpYWxvZy9kaWFsb2cuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-dialog',\r\n templateUrl: './dialog.component.html',\r\n styleUrls: ['./dialog.component.scss']\r\n})\r\nexport class DialogComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","export default \".bg-grey {\\n background: linear-gradient(110deg, #181A1C 60%, #7d7e82 60%);\\n color: white;\\n}\\n\\n.btn-warning {\\n color: #212529;\\n background-color: #ffee56;\\n border-color: #ffee56;\\n}\\n\\n.btn-warning:hover, .btn-warning:focus, .btn-warning.active {\\n background-color: #ffe500;\\n border-color: #ffe500;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9zaGFyZWQvZXJyb3IvQzpcXFVzZXJzXFxLTjYyNFFYXFxzb3VyY2VcXEdpdFxcY3RwLWNiYWFzLWNsaWVudC1wb3J0YWxcXENCYWFTLkhJTC5DbGllbnRQb3J0YWwuV2ViXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXHNoYXJlZFxcZXJyb3JcXGVycm9yLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnRzL3NoYXJlZC9lcnJvci9lcnJvci5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQTtFQUlFLDZEQUFBO0VBQ0EsWUFBQTtBQ0ZGOztBREtBO0VBQ0UsY0FBQTtFQUNBLHlCQWJTO0VBY1QscUJBZFM7QUNZWDs7QURJRTtFQUNFLHlCQWhCVztFQWlCWCxxQkFqQlc7QUNlZiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvc2hhcmVkL2Vycm9yL2Vycm9yLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiJGV5WWVsbG93OiAjZmZlZTU2O1xyXG4kZXlEYXJrWWVsbG93OiAjZmZlNTAwO1xyXG5cclxuLmJnLWdyZXkge1xyXG4gIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KDExMGRlZywgIzE4MUExQyA2MCUsICM3ZDdlODIgNjAlKTtcclxuICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQoMTEwZGVnLCAjMTgxQTFDIDYwJSwgIzdkN2U4MiA2MCUpO1xyXG4gIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KDExMGRlZywgIzE4MUExQyA2MCUsICM3ZDdlODIgNjAlKTtcclxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTEwZGVnLCAjMTgxQTFDIDYwJSwgIzdkN2U4MiA2MCUpO1xyXG4gIGNvbG9yOndoaXRlO1xyXG59XHJcblxyXG4uYnRuLXdhcm5pbmcge1xyXG4gIGNvbG9yOiAjMjEyNTI5O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRleVllbGxvdztcclxuICBib3JkZXItY29sb3I6ICRleVllbGxvdztcclxuXHJcbiAgJjpob3ZlciwgJjpmb2N1cywgJi5hY3RpdmUge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGV5RGFya1llbGxvdztcclxuICAgIGJvcmRlci1jb2xvcjogJGV5RGFya1llbGxvdztcclxuICB9XHJcbn1cclxuIiwiLmJnLWdyZXkge1xuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgxMTBkZWcsICMxODFBMUMgNjAlLCAjN2Q3ZTgyIDYwJSk7XG4gIGJhY2tncm91bmQ6IC1vLWxpbmVhci1ncmFkaWVudCgxMTBkZWcsICMxODFBMUMgNjAlLCAjN2Q3ZTgyIDYwJSk7XG4gIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KDExMGRlZywgIzE4MUExQyA2MCUsICM3ZDdlODIgNjAlKTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDExMGRlZywgIzE4MUExQyA2MCUsICM3ZDdlODIgNjAlKTtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4uYnRuLXdhcm5pbmcge1xuICBjb2xvcjogIzIxMjUyOTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZWU1NjtcbiAgYm9yZGVyLWNvbG9yOiAjZmZlZTU2O1xufVxuLmJ0bi13YXJuaW5nOmhvdmVyLCAuYnRuLXdhcm5pbmc6Zm9jdXMsIC5idG4td2FybmluZy5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlNTAwO1xuICBib3JkZXItY29sb3I6ICNmZmU1MDA7XG59Il19 */\"","import { Component, OnInit } from '@angular/core';\r\nimport { DataService } from 'src/app/services/shared/data/data.service';\r\n\r\n@Component({\r\n selector: 'app-error',\r\n templateUrl: './error.component.html',\r\n styleUrls: ['./error.component.scss']\r\n})\r\nexport class ErrorComponent implements OnInit {\r\n\r\n constructor(private dataService:DataService) { }\r\n\r\n ngOnInit() {\r\n this.dataService.sendUsername('User'); \r\n }\r\n\r\n}\r\n","export default \".footer {\\n background: #333 !important;\\n color: #ffffff !important;\\n position: absolute;\\n bottom: 0;\\n width: 100%;\\n}\\n.footer .copyright p {\\n border-top: 1px solid rgba(255, 255, 255, 0.1);\\n}\\n.footer .col {\\n padding-left: 0 !important;\\n}\\n.footer .privacystatement {\\n cursor: pointer;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9zaGFyZWQvZm9vdGVyL0M6XFxVc2Vyc1xcS042MjRRWFxcc291cmNlXFxHaXRcXGN0cC1jYmFhcy1jbGllbnQtcG9ydGFsXFxDQmFhUy5ISUwuQ2xpZW50UG9ydGFsLldlYlxcQ2xpZW50QXBwL3NyY1xcYXBwXFxjb21wb25lbnRzXFxzaGFyZWRcXGZvb3RlclxcZm9vdGVyLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnRzL3NoYXJlZC9mb290ZXIvZm9vdGVyLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsMkJBQUE7RUFDQSx5QkFBQTtFQUNBLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLFdBQUE7QUNDRjtBRENFO0VBQ0UsOENBQUE7QUNDSjtBREVFO0VBQ0UsMEJBQUE7QUNBSjtBREdFO0VBQ0UsZUFBQTtBQ0RKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9zaGFyZWQvZm9vdGVyL2Zvb3Rlci5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5mb290ZXIge1xyXG4gIGJhY2tncm91bmQ6ICMzMzMgIWltcG9ydGFudDtcclxuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBib3R0b206IDA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcblxyXG4gIC5jb3B5cmlnaHQgcCB7XHJcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMSk7XHJcbiAgfVxyXG5cclxuICAuY29sIHtcclxuICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLnByaXZhY3lzdGF0ZW1lbnQge1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIH1cclxufVxyXG4iLCIuZm9vdGVyIHtcbiAgYmFja2dyb3VuZDogIzMzMyAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDEwMCU7XG59XG4uZm9vdGVyIC5jb3B5cmlnaHQgcCB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG4uZm9vdGVyIC5jb2wge1xuICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcbn1cbi5mb290ZXIgLnByaXZhY3lzdGF0ZW1lbnQge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59Il19 */\"","import { Component, OnInit } from '@angular/core';\r\nimport { MatDialog } from '@angular/material';\r\nimport { PrivacyStatementComponent } from '../privacy-statement/privacy-statement.component';\r\n\r\n@Component({\r\n selector: 'app-footer',\r\n templateUrl: './footer.component.html',\r\n styleUrls: ['./footer.component.scss']\r\n})\r\nexport class FooterComponent implements OnInit {\r\n\r\n constructor(private dialogPrivacyStatement: MatDialog) { }\r\n privacystatement: string;\r\n ngOnInit() {\r\n }\r\n showPrivacyStatement() {\r\n if (sessionStorage.getItem('privacyStatementFlag') == \"false\") {\r\n let dialogRef = this.dialogPrivacyStatement.open(PrivacyStatementComponent, {\r\n height: '75%',\r\n width: '80%',\r\n autoFocus: false,\r\n data: null\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n })\r\n }\r\n }\r\n}\r\n","export default \".btn-warning {\\n color: #212529;\\n background-color: #ffee56;\\n border-color: #ffee56;\\n}\\n.btn-warning:hover, .btn-warning:focus, .btn-warning.active {\\n background-color: #ffe500;\\n border-color: #ffe500;\\n}\\n.bg-gold {\\n background: linear-gradient(110deg, #fdcd3b 60%, #ffed4b 60%);\\n}\\n.closebutton {\\n cursor: pointer;\\n float: right;\\n}\\nul.timeline {\\n list-style-type: none;\\n position: relative;\\n}\\nul.timeline:before {\\n content: \\\" \\\";\\n background: #d4d9df;\\n display: inline-block;\\n position: absolute;\\n left: 29px;\\n width: 2px;\\n height: 100%;\\n z-index: 400;\\n}\\nul.timeline > li {\\n margin: 20px 0;\\n padding-left: 20px;\\n}\\nul.timeline > li:before {\\n content: \\\" \\\";\\n background: white;\\n display: inline-block;\\n position: absolute;\\n border-radius: 50%;\\n border: 3px solid #ffe500;\\n left: 20px;\\n width: 20px;\\n height: 20px;\\n z-index: 400;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9zaGFyZWQvaGFuZG9mZi1jb21tZW50L0M6XFxVc2Vyc1xcS042MjRRWFxcc291cmNlXFxHaXRcXGN0cC1jYmFhcy1jbGllbnQtcG9ydGFsXFxDQmFhUy5ISUwuQ2xpZW50UG9ydGFsLldlYlxcQ2xpZW50QXBwL3NyY1xcYXBwXFxjb21wb25lbnRzXFxzaGFyZWRcXGhhbmRvZmYtY29tbWVudFxcaGFuZG9mZi1jb21tZW50LmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnRzL3NoYXJlZC9oYW5kb2ZmLWNvbW1lbnQvaGFuZG9mZi1jb21tZW50LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBO0VBQ0UsY0FBQTtFQUNBLHlCQUxTO0VBTVQscUJBTlM7QUNJWDtBRElFO0VBQ0UseUJBUlc7RUFTWCxxQkFUVztBQ09mO0FETUE7RUFJRSw2REFBQTtBQ0hGO0FETUE7RUFDRSxlQUFBO0VBQ0EsWUFBQTtBQ0hGO0FES0E7RUFDRSxxQkFBQTtFQUNBLGtCQUFBO0FDRkY7QURJQTtFQUNFLFlBQUE7RUFDQSxtQkFBQTtFQUNBLHFCQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBO0VBQ0EsVUFBQTtFQUNBLFlBQUE7RUFDQSxZQUFBO0FDREY7QURHQTtFQUNFLGNBQUE7RUFDQSxrQkFBQTtBQ0FGO0FERUE7RUFDRSxZQUFBO0VBQ0EsaUJBQUE7RUFDQSxxQkFBQTtFQUNBLGtCQUFBO0VBQ0Esa0JBQUE7RUFDQSx5QkFBQTtFQUNBLFVBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLFlBQUE7QUNDRiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvc2hhcmVkL2hhbmRvZmYtY29tbWVudC9oYW5kb2ZmLWNvbW1lbnQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIkZXlZZWxsb3c6ICNmZmVlNTY7XHJcbiRleURhcmtZZWxsb3c6ICNmZmU1MDA7XHJcblxyXG4uYnRuLXdhcm5pbmcge1xyXG4gIGNvbG9yOiAjMjEyNTI5O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRleVllbGxvdztcclxuICBib3JkZXItY29sb3I6ICRleVllbGxvdztcclxuXHJcbiAgJjpob3ZlciwgJjpmb2N1cywgJi5hY3RpdmUge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGV5RGFya1llbGxvdztcclxuICAgIGJvcmRlci1jb2xvcjogJGV5RGFya1llbGxvdztcclxuICB9XHJcbn1cclxuXHJcbi5iZy1nb2xkIHtcclxuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgxMTBkZWcsICNmZGNkM2IgNjAlLCAjZmZlZDRiIDYwJSk7XHJcbiAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KDExMGRlZywgI2ZkY2QzYiA2MCUsICNmZmVkNGIgNjAlKTtcclxuICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCgxMTBkZWcsICNmZGNkM2IgNjAlLCAjZmZlZDRiIDYwJSk7XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDExMGRlZywgI2ZkY2QzYiA2MCUsICNmZmVkNGIgNjAlKTtcclxufVxyXG5cclxuLmNsb3NlYnV0dG9uIHtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgZmxvYXQ6IHJpZ2h0O1xyXG59XHJcbnVsLnRpbWVsaW5lIHtcclxuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG59XHJcbnVsLnRpbWVsaW5lOmJlZm9yZSB7XHJcbiAgY29udGVudDogJyAnO1xyXG4gIGJhY2tncm91bmQ6ICNkNGQ5ZGY7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBsZWZ0OiAyOXB4O1xyXG4gIHdpZHRoOiAycHg7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIHotaW5kZXg6IDQwMDtcclxufVxyXG51bC50aW1lbGluZSA+IGxpIHtcclxuICBtYXJnaW46IDIwcHggMDtcclxuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XHJcbn1cclxudWwudGltZWxpbmUgPiBsaTpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6ICcgJztcclxuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICBib3JkZXI6IDNweCBzb2xpZCAkZXlEYXJrWWVsbG93O1xyXG4gIGxlZnQ6IDIwcHg7XHJcbiAgd2lkdGg6IDIwcHg7XHJcbiAgaGVpZ2h0OiAyMHB4O1xyXG4gIHotaW5kZXg6IDQwMDtcclxufVxyXG4iLCIuYnRuLXdhcm5pbmcge1xuICBjb2xvcjogIzIxMjUyOTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZWU1NjtcbiAgYm9yZGVyLWNvbG9yOiAjZmZlZTU2O1xufVxuLmJ0bi13YXJuaW5nOmhvdmVyLCAuYnRuLXdhcm5pbmc6Zm9jdXMsIC5idG4td2FybmluZy5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlNTAwO1xuICBib3JkZXItY29sb3I6ICNmZmU1MDA7XG59XG5cbi5iZy1nb2xkIHtcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoMTEwZGVnLCAjZmRjZDNiIDYwJSwgI2ZmZWQ0YiA2MCUpO1xuICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQoMTEwZGVnLCAjZmRjZDNiIDYwJSwgI2ZmZWQ0YiA2MCUpO1xuICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCgxMTBkZWcsICNmZGNkM2IgNjAlLCAjZmZlZDRiIDYwJSk7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMTBkZWcsICNmZGNkM2IgNjAlLCAjZmZlZDRiIDYwJSk7XG59XG5cbi5jbG9zZWJ1dHRvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuXG51bC50aW1lbGluZSB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG51bC50aW1lbGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIiBcIjtcbiAgYmFja2dyb3VuZDogI2Q0ZDlkZjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDI5cHg7XG4gIHdpZHRoOiAycHg7XG4gIGhlaWdodDogMTAwJTtcbiAgei1pbmRleDogNDAwO1xufVxuXG51bC50aW1lbGluZSA+IGxpIHtcbiAgbWFyZ2luOiAyMHB4IDA7XG4gIHBhZGRpbmctbGVmdDogMjBweDtcbn1cblxudWwudGltZWxpbmUgPiBsaTpiZWZvcmUge1xuICBjb250ZW50OiBcIiBcIjtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJvcmRlcjogM3B4IHNvbGlkICNmZmU1MDA7XG4gIGxlZnQ6IDIwcHg7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIHotaW5kZXg6IDQwMDtcbn0iXX0= */\"","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { BotRegistrationService } from 'src/app/services/core/bot-registration/bot-registration.service';\r\nimport { NavigationStart, RouterEvent, Router } from '@angular/router';\r\nimport { filter } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-handoff-comment',\r\n templateUrl: './handoff-comment.component.html',\r\n styleUrls: ['./handoff-comment.component.scss']\r\n})\r\nexport class HandoffCommentComponent implements OnInit {\r\n _routerSubscription: any;\r\n handOffCommentInfo : any\r\n constructor(private dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private router: Router){} \r\n\r\n ngOnInit() {\r\n this._routerSubscription = this.router.events\r\n .pipe(\r\n filter((event: RouterEvent) => event instanceof NavigationStart),\r\n filter(() => !!this.dialogRef)\r\n )\r\n .subscribe(() => {\r\n this.dialogRef.close();\r\n });\r\n\r\n this.handOffCommentInfo = JSON.parse(this.data);\r\n }\r\n \r\n onClose() {\r\n this.dialogRef.close('Close');\r\n }\r\n \r\n}\r\n","export default \".header {\\n background: #333 !important;\\n color: #ffffff !important;\\n}\\n\\n.navbar {\\n background-color: #333333;\\n padding: 0rem 1rem;\\n font-size: 13px;\\n font-weight: 400;\\n}\\n\\n.navbar .navbar-brand {\\n color: #9c9da0;\\n}\\n\\n.navbar .navbar-brand:hover, .navbar .navbar-brand:focus {\\n color: #ffffff;\\n}\\n\\n.navbar .navbar-text {\\n color: #9c9da0;\\n}\\n\\n.navbar .navbar-text a {\\n color: #ffffff;\\n}\\n\\n.navbar .navbar-text a:hover, .navbar .navbar-text a:focus {\\n color: #ffffff;\\n}\\n\\n.navbar .navbar-nav .nav-link {\\n color: #9c9da0;\\n /*border-radius: .25rem;*/\\n margin: 0 0.25em;\\n cursor: pointer;\\n}\\n\\n.navbar .navbar-nav .nav-link:not(.disabled):hover, .navbar .navbar-nav .nav-link:not(.disabled):focus {\\n color: #ffffff;\\n}\\n\\n.navbar .navbar-nav .dropdown-menu {\\n background-color: #333333;\\n border-color: #000000;\\n font-size: 13px;\\n font-weight: 400;\\n padding: 0rem;\\n}\\n\\n.navbar .navbar-nav .dropdown-menu .dropdown-item {\\n color: #9c9da0;\\n}\\n\\n.navbar .navbar-nav .dropdown-menu .dropdown-item:hover, .navbar .navbar-nav .dropdown-menu .dropdown-item:focus, .navbar .navbar-nav .dropdown-menu .dropdown-item.active {\\n color: #ffffff;\\n background-color: #000000;\\n border-bottom: 2px solid #ffE600;\\n}\\n\\n.navbar .navbar-nav .dropdown-menu .dropdown-divider {\\n border-top-color: #000000;\\n}\\n\\n.navbar .navbar-nav .nav-item.active .nav-link, .navbar .navbar-nav .nav-item.active .nav-link:hover, .navbar .navbar-nav .nav-item.active .nav-link:focus, .navbar .navbar-nav .nav-item.show .nav-link, .navbar .navbar-nav .nav-item.show .nav-link:hover, .navbar .navbar-nav .nav-item.show .nav-link:focus {\\n color: #ffffff;\\n background-color: #000000;\\n border-bottom: 2px solid #ffE600;\\n}\\n\\n.navbar .navbar-toggle {\\n border-color: #000000;\\n}\\n\\n.navbar .navbar-toggle:hover, .navbar .navbar-toggle:focus {\\n background-color: #000000;\\n}\\n\\n.navbar .navbar-toggle .navbar-toggler-icon {\\n color: #9c9da0;\\n}\\n\\n.navbar .navbar-collapse,\\n.navbar .navbar-form {\\n border-color: #9c9da0;\\n}\\n\\n.navbar .navbar-link {\\n color: #9c9da0;\\n}\\n\\n.navbar .navbar-link:hover {\\n color: #ffffff;\\n}\\n\\n@media (max-width: 575px) {\\n .navbar-expend-sm .navbar-nav .show .dropdown-menu {\\n padding: 0rem;\\n }\\n .navbar-expend-sm .navbar-nav .show .dropdown-menu .dropdown-item {\\n color: #9c9da0;\\n }\\n .navbar-expend-sm .navbar-nav .show .dropdown-menu .dropdown-item:hover, .navbar-expend-sm .navbar-nav .show .dropdown-menu .dropdown-item:focus {\\n color: #ffffff;\\n }\\n .navbar-expend-sm .navbar-nav .show .dropdown-menu .dropdown-item.active {\\n color: #ffffff;\\n background-color: #000000;\\n border-bottom: 2px solid #ffE600;\\n }\\n}\\n\\n@media (max-width: 767px) {\\n .navbar-expend-md .navbar-nav .show .dropdown-menu {\\n padding: 0rem;\\n }\\n .navbar-expend-md .navbar-nav .show .dropdown-menu .dropdown-item {\\n color: #9c9da0;\\n }\\n .navbar-expend-md .navbar-nav .show .dropdown-menu .dropdown-item:hover, .navbar-expend-md .navbar-nav .show .dropdown-menu .dropdown-item:focus {\\n color: #ffffff;\\n }\\n .navbar-expend-md .navbar-nav .show .dropdown-menu .dropdown-item.active {\\n color: #ffffff;\\n background-color: #000000;\\n border-bottom: 2px solid #ffE600;\\n }\\n}\\n\\n@media (max-width: 991px) {\\n .navbar-expend-lg .navbar-nav .show .dropdown-menu {\\n padding: 0rem;\\n }\\n .navbar-expend-lg .navbar-nav .show .dropdown-menu .dropdown-item {\\n color: #9c9da0;\\n }\\n .navbar-expend-lg .navbar-nav .show .dropdown-menu .dropdown-item:hover, .navbar-expend-lg .navbar-nav .show .dropdown-menu .dropdown-item:focus {\\n color: #ffffff;\\n }\\n .navbar-expend-lg .navbar-nav .show .dropdown-menu .dropdown-item.active {\\n color: #ffffff;\\n background-color: #000000;\\n border-bottom: 2px solid #ffE600;\\n }\\n}\\n\\n@media (max-width: 1199px) {\\n .navbar-expend-xl .navbar-nav .show .dropdown-menu {\\n padding: 0rem;\\n }\\n .navbar-expend-xl .navbar-nav .show .dropdown-menu .dropdown-item {\\n color: #9c9da0;\\n }\\n .navbar-expend-xl .navbar-nav .show .dropdown-menu .dropdown-item:hover, .navbar-expend-xl .navbar-nav .show .dropdown-menu .dropdown-item:focus {\\n color: #ffffff;\\n }\\n .navbar-expend-xl .navbar-nav .show .dropdown-menu .dropdown-item.active {\\n color: #ffffff;\\n background-color: #000000;\\n border-bottom: 3px solid #ffE600;\\n }\\n}\\n\\n.navbar-expend .navbar-nav .show .dropdown-menu {\\n padding: 0rem;\\n}\\n\\n.navbar-expend .navbar-nav .show .dropdown-menu .dropdown-item {\\n color: #9c9da0;\\n}\\n\\n.navbar-expend .navbar-nav .show .dropdown-menu .dropdown-item:hover, .navbar-expend .navbar-nav .show .dropdown-menu .dropdown-item:focus {\\n color: #ffffff;\\n}\\n\\n.navbar-expend .navbar-nav .show .dropdown-menu .dropdown-item.active {\\n color: #ffffff;\\n background-color: #000000;\\n border-bottom: 2px solid #ffE600;\\n}\\n\\n.notification-count {\\n float: right;\\n margin-bottom: -10px;\\n margin-top: 3px;\\n background: #ffE600;\\n color: black;\\n}\\n\\n.navbar-dropdown-items-float-left {\\n right: 0;\\n left: auto;\\n}\\n\\n.navbar-dropdown-items-float-left .dropdown-item {\\n padding: 0.25rem 0.5rem;\\n}\\n\\n.dropdown-toggle::after {\\n display: none;\\n}\\n\\n.navbar-dropdown-items-large {\\n min-height: 4rem;\\n min-width: 20rem;\\n cursor: pointer;\\n}\\n\\n.dropdown-divider {\\n margin: 0;\\n}\\n\\n.led-green {\\n background: green;\\n background-size: 5px 5px;\\n width: 15px;\\n height: 15px;\\n border-radius: 50%;\\n border: solid 2px lime;\\n box-shadow: 0 0 20px #28a745 inset, 0 0 10px lime;\\n -webkit-animation: 13s green infinite;\\n animation: 13s green infinite;\\n cursor: pointer;\\n}\\n\\n.led-red {\\n background: red;\\n background-size: 5px 5px;\\n width: 15px;\\n height: 15px;\\n border-radius: 50%;\\n -webkit-animation: 13s red infinite;\\n animation: 13s red infinite;\\n border: solid 2px red;\\n box-shadow: 0 0 20px #d21e2f inset, 0 0 10px red;\\n cursor: pointer;\\n}\\n\\n#testNotification {\\n cursor: pointer;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9zaGFyZWQvaGVhZGVyL0M6XFxVc2Vyc1xcS042MjRRWFxcc291cmNlXFxHaXRcXGN0cC1jYmFhcy1jbGllbnQtcG9ydGFsXFxDQmFhUy5ISUwuQ2xpZW50UG9ydGFsLldlYlxcQ2xpZW50QXBwL3NyY1xcYXBwXFxjb21wb25lbnRzXFxzaGFyZWRcXGhlYWRlclxcaGVhZGVyLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnRzL3NoYXJlZC9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsMkJBQUE7RUFDQSx5QkFBQTtBQ0NGOztBRFNBO0VBQ0UseUJBUlU7RUFTVixrQkFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtBQ05GOztBRFFFO0VBQ0UsY0FaUztBQ01iOztBRFFJO0VBQ0UsY0FkUztBQ1FmOztBRFVFO0VBQ0UsY0FwQlM7QUNZYjs7QURVSTtFQUNFLGNBdEJTO0FDY2Y7O0FEVU07RUFDRSxjQXpCTztBQ2lCZjs7QURjSTtFQUNFLGNBakNPO0VBa0NQLHlCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxlQUFBO0FDWk47O0FEZ0JRO0VBQ0UsY0F4Q0s7QUMwQmY7O0FEb0JNO0VBQ0UseUJBbERJO0VBbURKLHFCQWxETTtFQW1ETixlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxhQUFBO0FDbEJSOztBRG9CUTtFQUNFLGNBdkRHO0FDcUNiOztBRG9CVTtFQUNFLGNBekRHO0VBMERILHlCQTVERTtFQTZERixnQ0FBQTtBQ2xCWjs7QURzQlE7RUFDRSx5QkFsRUk7QUM4Q2Q7O0FEMEJNO0VBQ0UsY0F2RU87RUF3RVAseUJBMUVNO0VBMkVOLGdDQUFBO0FDeEJSOztBRDZCRTtFQUNFLHFCQWpGVTtBQ3NEZDs7QUQ2Qkk7RUFDRSx5QkFwRlE7QUN5RGQ7O0FEOEJJO0VBQ0UsY0F2Rk87QUMyRGI7O0FEZ0NFOztFQUVFLHFCQTdGUztBQytEYjs7QURpQ0U7RUFDRSxjQWpHUztBQ2tFYjs7QURpQ0k7RUFDRSxjQW5HUztBQ29FZjs7QURvQ0E7RUFDRTtJQUNFLGFBQUE7RUNqQ0Y7RURtQ0U7SUFDRSxjQTlHTztFQzZFWDtFRG1DSTtJQUNFLGNBaEhPO0VDK0ViO0VEcUNFO0lBQ0UsY0FySFM7SUFzSFQseUJBeEhRO0lBeUhSLGdDQUFBO0VDbkNKO0FBQ0Y7O0FEdUNBO0VBQ0U7SUFDRSxhQUFBO0VDckNGO0VEdUNFO0lBQ0UsY0FsSU87RUM2Rlg7RUR1Q0k7SUFDRSxjQXBJTztFQytGYjtFRHlDRTtJQUNFLGNBeklTO0lBMElULHlCQTVJUTtJQTZJUixnQ0FBQTtFQ3ZDSjtBQUNGOztBRDJDQTtFQUNFO0lBQ0UsYUFBQTtFQ3pDRjtFRDJDRTtJQUNFLGNBdEpPO0VDNkdYO0VEMkNJO0lBQ0UsY0F4Sk87RUMrR2I7RUQ2Q0U7SUFDRSxjQTdKUztJQThKVCx5QkFoS1E7SUFpS1IsZ0NBQUE7RUMzQ0o7QUFDRjs7QUQrQ0E7RUFDRTtJQUNFLGFBQUE7RUM3Q0Y7RUQrQ0U7SUFDRSxjQTFLTztFQzZIWDtFRCtDSTtJQUNFLGNBNUtPO0VDK0hiO0VEaURFO0lBQ0UsY0FqTFM7SUFrTFQseUJBcExRO0lBcUxSLGdDQUFBO0VDL0NKO0FBQ0Y7O0FEbURBO0VBQ0UsYUFBQTtBQ2pERjs7QURtREU7RUFDRSxjQTdMUztBQzRJYjs7QURtREk7RUFDRSxjQS9MUztBQzhJZjs7QURxREU7RUFDRSxjQXBNVztFQXFNWCx5QkF2TVU7RUF3TVYsZ0NBQUE7QUNuREo7O0FEdURBO0VBQ0UsWUFBQTtFQUNBLG9CQUFBO0VBQ0EsZUFBQTtFQUNBLG1CQUFBO0VBQ0EsWUFBQTtBQ3BERjs7QUR1REE7RUFDRSxRQUFBO0VBQ0EsVUFBQTtBQ3BERjs7QURzREU7RUFDRSx1QkFBQTtBQ3BESjs7QUR1REE7RUFDRSxhQUFBO0FDcERGOztBRHVEQTtFQUNFLGdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxlQUFBO0FDcERGOztBRHVEQTtFQUNFLFNBQUE7QUNwREY7O0FEdURBO0VBQ0UsaUJBQUE7RUFDQSx3QkFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7RUFDQSxzQkFBQTtFQUNBLGlEQUFBO0VBQ0EscUNBQUE7RUFDQSw2QkFBQTtFQUNBLGVBQUE7QUNwREY7O0FEdURBO0VBQ0UsZUFBQTtFQUNBLHdCQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxrQkFBQTtFQUNBLG1DQUFBO1VBQUEsMkJBQUE7RUFDQSxxQkFBQTtFQUNBLGdEQUFBO0VBQ0EsZUFBQTtBQ3BERjs7QURzREE7RUFDRSxlQUFBO0FDbkRGIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9zaGFyZWQvaGVhZGVyL2hlYWRlci5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5oZWFkZXIge1xyXG4gIGJhY2tncm91bmQ6ICMzMzMgIWltcG9ydGFudDtcclxuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4kYmdEZWZhdWx0OiAjMzMzMzMzO1xyXG4kYmdIaWdobGlnaHQ6ICMwMDAwMDA7XHJcbiRjb2xEZWZhdWx0OiAjOWM5ZGEwO1xyXG4kY29sSGlnaGxpZ2h0OiAjZmZmZmZmO1xyXG4kZHJvcERvd246IHRydWU7XHJcbiRiZ0JvdHRvbUJvcmRlcjogI2ZmRTYwMDtcclxuXHJcbi5uYXZiYXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRiZ0RlZmF1bHQ7XHJcbiAgcGFkZGluZzogMHJlbSAxcmVtO1xyXG4gIGZvbnQtc2l6ZTogMTNweDtcclxuICBmb250LXdlaWdodDogNDAwO1xyXG5cclxuICAubmF2YmFyLWJyYW5kIHtcclxuICAgIGNvbG9yOiAkY29sRGVmYXVsdDtcclxuXHJcbiAgICAmOmhvdmVyLCAmOmZvY3VzIHtcclxuICAgICAgY29sb3I6ICRjb2xIaWdobGlnaHQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAubmF2YmFyLXRleHQge1xyXG4gICAgY29sb3I6ICRjb2xEZWZhdWx0O1xyXG5cclxuICAgIGEge1xyXG4gICAgICBjb2xvcjogJGNvbEhpZ2hsaWdodDtcclxuXHJcbiAgICAgICY6aG92ZXIsICY6Zm9jdXMge1xyXG4gICAgICAgIGNvbG9yOiAkY29sSGlnaGxpZ2h0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAubmF2YmFyLW5hdiB7XHJcbiAgICAubmF2LWxpbmsge1xyXG4gICAgICBjb2xvcjogJGNvbERlZmF1bHQ7XHJcbiAgICAgIC8qYm9yZGVyLXJhZGl1czogLjI1cmVtOyovXHJcbiAgICAgIG1hcmdpbjogMCAwLjI1ZW07XHJcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuXHJcblxyXG4gICAgICAmOm5vdCguZGlzYWJsZWQpIHtcclxuICAgICAgICAmOmhvdmVyLCAmOmZvY3VzIHtcclxuICAgICAgICAgIGNvbG9yOiAkY29sSGlnaGxpZ2h0O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBpZiAoJGRyb3BEb3duKSB7XHJcbiAgICAgIC5kcm9wZG93bi1tZW51IHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmdEZWZhdWx0O1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogJGJnSGlnaGxpZ2h0O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcclxuICAgICAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgICAgIHBhZGRpbmc6IDByZW07XHJcblxyXG4gICAgICAgIC5kcm9wZG93bi1pdGVtIHtcclxuICAgICAgICAgIGNvbG9yOiAkY29sRGVmYXVsdDtcclxuXHJcbiAgICAgICAgICAmOmhvdmVyLCAmOmZvY3VzLCAmLmFjdGl2ZSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkY29sSGlnaGxpZ2h0O1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmdIaWdobGlnaHQ7XHJcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkYmdCb3R0b21Cb3JkZXI7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuZHJvcGRvd24tZGl2aWRlciB7XHJcbiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkYmdIaWdobGlnaHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLm5hdi1pdGVtLmFjdGl2ZSwgLm5hdi1pdGVtLnNob3cge1xyXG4gICAgICAubmF2LWxpbmssIC5uYXYtbGluazpob3ZlciwgLm5hdi1saW5rOmZvY3VzIHtcclxuICAgICAgICBjb2xvcjogJGNvbEhpZ2hsaWdodDtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmdIaWdobGlnaHQ7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRiZ0JvdHRvbUJvcmRlcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLm5hdmJhci10b2dnbGUge1xyXG4gICAgYm9yZGVyLWNvbG9yOiAkYmdIaWdobGlnaHQ7XHJcblxyXG4gICAgJjpob3ZlciwgJjpmb2N1cyB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiZ0hpZ2hsaWdodDtcclxuICAgIH1cclxuXHJcbiAgICAubmF2YmFyLXRvZ2dsZXItaWNvbiB7XHJcbiAgICAgIGNvbG9yOiAkY29sRGVmYXVsdDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5uYXZiYXItY29sbGFwc2UsXHJcbiAgLm5hdmJhci1mb3JtIHtcclxuICAgIGJvcmRlci1jb2xvcjogJGNvbERlZmF1bHQ7XHJcbiAgfVxyXG5cclxuICAubmF2YmFyLWxpbmsge1xyXG4gICAgY29sb3I6ICRjb2xEZWZhdWx0O1xyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICBjb2xvcjogJGNvbEhpZ2hsaWdodDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCkge1xyXG4gIC5uYXZiYXItZXhwZW5kLXNtIC5uYXZiYXItbmF2IC5zaG93IC5kcm9wZG93bi1tZW51IHtcclxuICAgIHBhZGRpbmc6IDByZW07XHJcblxyXG4gICAgLmRyb3Bkb3duLWl0ZW0ge1xyXG4gICAgICBjb2xvcjogJGNvbERlZmF1bHQ7XHJcblxyXG4gICAgICAmOmhvdmVyLCAmOmZvY3VzIHtcclxuICAgICAgICBjb2xvcjogJGNvbEhpZ2hsaWdodDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5kcm9wZG93bi1pdGVtLmFjdGl2ZSB7XHJcbiAgICAgIGNvbG9yOiAkY29sSGlnaGxpZ2h0O1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmdIaWdobGlnaHQ7XHJcbiAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkYmdCb3R0b21Cb3JkZXI7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcclxuICAubmF2YmFyLWV4cGVuZC1tZCAubmF2YmFyLW5hdiAuc2hvdyAuZHJvcGRvd24tbWVudSB7XHJcbiAgICBwYWRkaW5nOiAwcmVtO1xyXG5cclxuICAgIC5kcm9wZG93bi1pdGVtIHtcclxuICAgICAgY29sb3I6ICRjb2xEZWZhdWx0O1xyXG5cclxuICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XHJcbiAgICAgICAgY29sb3I6ICRjb2xIaWdobGlnaHQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuZHJvcGRvd24taXRlbS5hY3RpdmUge1xyXG4gICAgICBjb2xvcjogJGNvbEhpZ2hsaWdodDtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJnSGlnaGxpZ2h0O1xyXG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJGJnQm90dG9tQm9yZGVyO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MXB4KSB7XHJcbiAgLm5hdmJhci1leHBlbmQtbGcgLm5hdmJhci1uYXYgLnNob3cgLmRyb3Bkb3duLW1lbnUge1xyXG4gICAgcGFkZGluZzogMHJlbTtcclxuXHJcbiAgICAuZHJvcGRvd24taXRlbSB7XHJcbiAgICAgIGNvbG9yOiAkY29sRGVmYXVsdDtcclxuXHJcbiAgICAgICY6aG92ZXIsICY6Zm9jdXMge1xyXG4gICAgICAgIGNvbG9yOiAkY29sSGlnaGxpZ2h0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmRyb3Bkb3duLWl0ZW0uYWN0aXZlIHtcclxuICAgICAgY29sb3I6ICRjb2xIaWdobGlnaHQ7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiZ0hpZ2hsaWdodDtcclxuICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRiZ0JvdHRvbUJvcmRlcjtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiAxMTk5cHgpIHtcclxuICAubmF2YmFyLWV4cGVuZC14bCAubmF2YmFyLW5hdiAuc2hvdyAuZHJvcGRvd24tbWVudSB7XHJcbiAgICBwYWRkaW5nOiAwcmVtO1xyXG5cclxuICAgIC5kcm9wZG93bi1pdGVtIHtcclxuICAgICAgY29sb3I6ICRjb2xEZWZhdWx0O1xyXG5cclxuICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XHJcbiAgICAgICAgY29sb3I6ICRjb2xIaWdobGlnaHQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuZHJvcGRvd24taXRlbS5hY3RpdmUge1xyXG4gICAgICBjb2xvcjogJGNvbEhpZ2hsaWdodDtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJnSGlnaGxpZ2h0O1xyXG4gICAgICBib3JkZXItYm90dG9tOiAzcHggc29saWQgJGJnQm90dG9tQm9yZGVyO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLm5hdmJhci1leHBlbmQgLm5hdmJhci1uYXYgLnNob3cgLmRyb3Bkb3duLW1lbnUge1xyXG4gIHBhZGRpbmc6IDByZW07XHJcblxyXG4gIC5kcm9wZG93bi1pdGVtIHtcclxuICAgIGNvbG9yOiAkY29sRGVmYXVsdDtcclxuXHJcbiAgICAmOmhvdmVyLCAmOmZvY3VzIHtcclxuICAgICAgY29sb3I6ICRjb2xIaWdobGlnaHQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuZHJvcGRvd24taXRlbS5hY3RpdmUge1xyXG4gICAgY29sb3I6ICRjb2xIaWdobGlnaHQ7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmdIaWdobGlnaHQ7XHJcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJGJnQm90dG9tQm9yZGVyO1xyXG4gIH1cclxufVxyXG5cclxuLm5vdGlmaWNhdGlvbi1jb3VudCB7XHJcbiAgZmxvYXQ6IHJpZ2h0O1xyXG4gIG1hcmdpbi1ib3R0b206IC0xMHB4O1xyXG4gIG1hcmdpbi10b3A6IDNweDtcclxuICBiYWNrZ3JvdW5kOiAjZmZFNjAwO1xyXG4gIGNvbG9yOiBibGFjaztcclxufVxyXG5cclxuLm5hdmJhci1kcm9wZG93bi1pdGVtcy1mbG9hdC1sZWZ0IHtcclxuICByaWdodDogMDtcclxuICBsZWZ0OiBhdXRvO1xyXG5cclxuICAuZHJvcGRvd24taXRlbSB7XHJcbiAgICBwYWRkaW5nOiAuMjVyZW0gMC41cmVtO1xyXG4gIH1cclxufVxyXG4uZHJvcGRvd24tdG9nZ2xlOjphZnRlciB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuLm5hdmJhci1kcm9wZG93bi1pdGVtcy1sYXJnZSB7XHJcbiAgbWluLWhlaWdodDogNHJlbTtcclxuICBtaW4td2lkdGg6IDIwcmVtO1xyXG4gIGN1cnNvcjpwb2ludGVyO1xyXG59XHJcblxyXG4uZHJvcGRvd24tZGl2aWRlciB7XHJcbiAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4ubGVkLWdyZWVuIHtcclxuICBiYWNrZ3JvdW5kOiBncmVlbjtcclxuICBiYWNrZ3JvdW5kLXNpemU6IDVweCA1cHg7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICBib3JkZXI6IHNvbGlkIDJweCBsaW1lO1xyXG4gIGJveC1zaGFkb3c6IDAgMCAyMHB4ICMyOGE3NDUgaW5zZXQsIDAgMCAxMHB4IGxpbWU7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IDEzcyBncmVlbiBpbmZpbml0ZTtcclxuICBhbmltYXRpb246IDEzcyBncmVlbiBpbmZpbml0ZTtcclxuICBjdXJzb3I6cG9pbnRlcjtcclxufVxyXG5cclxuLmxlZC1yZWQge1xyXG4gIGJhY2tncm91bmQ6IHJlZDtcclxuICBiYWNrZ3JvdW5kLXNpemU6IDVweCA1cHg7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICBhbmltYXRpb246IDEzcyByZWQgaW5maW5pdGU7XHJcbiAgYm9yZGVyOiBzb2xpZCAycHggcmVkO1xyXG4gIGJveC1zaGFkb3c6IDAgMCAyMHB4ICNkMjFlMmYgaW5zZXQsIDAgMCAxMHB4IHJlZDtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuI3Rlc3ROb3RpZmljYXRpb24ge1xyXG4gIGN1cnNvcjpwb2ludGVyO1xyXG59XHJcbiIsIi5oZWFkZXIge1xuICBiYWNrZ3JvdW5kOiAjMzMzICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbi5uYXZiYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzMzMzO1xuICBwYWRkaW5nOiAwcmVtIDFyZW07XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cbi5uYXZiYXIgLm5hdmJhci1icmFuZCB7XG4gIGNvbG9yOiAjOWM5ZGEwO1xufVxuLm5hdmJhciAubmF2YmFyLWJyYW5kOmhvdmVyLCAubmF2YmFyIC5uYXZiYXItYnJhbmQ6Zm9jdXMge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi5uYXZiYXIgLm5hdmJhci10ZXh0IHtcbiAgY29sb3I6ICM5YzlkYTA7XG59XG4ubmF2YmFyIC5uYXZiYXItdGV4dCBhIHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4ubmF2YmFyIC5uYXZiYXItdGV4dCBhOmhvdmVyLCAubmF2YmFyIC5uYXZiYXItdGV4dCBhOmZvY3VzIHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4ubmF2YmFyIC5uYXZiYXItbmF2IC5uYXYtbGluayB7XG4gIGNvbG9yOiAjOWM5ZGEwO1xuICAvKmJvcmRlci1yYWRpdXM6IC4yNXJlbTsqL1xuICBtYXJnaW46IDAgMC4yNWVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubmF2YmFyIC5uYXZiYXItbmF2IC5uYXYtbGluazpub3QoLmRpc2FibGVkKTpob3ZlciwgLm5hdmJhciAubmF2YmFyLW5hdiAubmF2LWxpbms6bm90KC5kaXNhYmxlZCk6Zm9jdXMge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi5uYXZiYXIgLm5hdmJhci1uYXYgLmRyb3Bkb3duLW1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzMzMzO1xuICBib3JkZXItY29sb3I6ICMwMDAwMDA7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgcGFkZGluZzogMHJlbTtcbn1cbi5uYXZiYXIgLm5hdmJhci1uYXYgLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW0ge1xuICBjb2xvcjogIzljOWRhMDtcbn1cbi5uYXZiYXIgLm5hdmJhci1uYXYgLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW06aG92ZXIsIC5uYXZiYXIgLm5hdmJhci1uYXYgLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW06Zm9jdXMsIC5uYXZiYXIgLm5hdmJhci1uYXYgLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW0uYWN0aXZlIHtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjZmZFNjAwO1xufVxuLm5hdmJhciAubmF2YmFyLW5hdiAuZHJvcGRvd24tbWVudSAuZHJvcGRvd24tZGl2aWRlciB7XG4gIGJvcmRlci10b3AtY29sb3I6ICMwMDAwMDA7XG59XG4ubmF2YmFyIC5uYXZiYXItbmF2IC5uYXYtaXRlbS5hY3RpdmUgLm5hdi1saW5rLCAubmF2YmFyIC5uYXZiYXItbmF2IC5uYXYtaXRlbS5hY3RpdmUgLm5hdi1saW5rOmhvdmVyLCAubmF2YmFyIC5uYXZiYXItbmF2IC5uYXYtaXRlbS5hY3RpdmUgLm5hdi1saW5rOmZvY3VzLCAubmF2YmFyIC5uYXZiYXItbmF2IC5uYXYtaXRlbS5zaG93IC5uYXYtbGluaywgLm5hdmJhciAubmF2YmFyLW5hdiAubmF2LWl0ZW0uc2hvdyAubmF2LWxpbms6aG92ZXIsIC5uYXZiYXIgLm5hdmJhci1uYXYgLm5hdi1pdGVtLnNob3cgLm5hdi1saW5rOmZvY3VzIHtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjZmZFNjAwO1xufVxuLm5hdmJhciAubmF2YmFyLXRvZ2dsZSB7XG4gIGJvcmRlci1jb2xvcjogIzAwMDAwMDtcbn1cbi5uYXZiYXIgLm5hdmJhci10b2dnbGU6aG92ZXIsIC5uYXZiYXIgLm5hdmJhci10b2dnbGU6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwO1xufVxuLm5hdmJhciAubmF2YmFyLXRvZ2dsZSAubmF2YmFyLXRvZ2dsZXItaWNvbiB7XG4gIGNvbG9yOiAjOWM5ZGEwO1xufVxuLm5hdmJhciAubmF2YmFyLWNvbGxhcHNlLFxuLm5hdmJhciAubmF2YmFyLWZvcm0ge1xuICBib3JkZXItY29sb3I6ICM5YzlkYTA7XG59XG4ubmF2YmFyIC5uYXZiYXItbGluayB7XG4gIGNvbG9yOiAjOWM5ZGEwO1xufVxuLm5hdmJhciAubmF2YmFyLWxpbms6aG92ZXIge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NXB4KSB7XG4gIC5uYXZiYXItZXhwZW5kLXNtIC5uYXZiYXItbmF2IC5zaG93IC5kcm9wZG93bi1tZW51IHtcbiAgICBwYWRkaW5nOiAwcmVtO1xuICB9XG4gIC5uYXZiYXItZXhwZW5kLXNtIC5uYXZiYXItbmF2IC5zaG93IC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVtIHtcbiAgICBjb2xvcjogIzljOWRhMDtcbiAgfVxuICAubmF2YmFyLWV4cGVuZC1zbSAubmF2YmFyLW5hdiAuc2hvdyAuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbTpob3ZlciwgLm5hdmJhci1leHBlbmQtc20gLm5hdmJhci1uYXYgLnNob3cgLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW06Zm9jdXMge1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICB9XG4gIC5uYXZiYXItZXhwZW5kLXNtIC5uYXZiYXItbmF2IC5zaG93IC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVtLmFjdGl2ZSB7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2ZmRTYwMDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5uYXZiYXItZXhwZW5kLW1kIC5uYXZiYXItbmF2IC5zaG93IC5kcm9wZG93bi1tZW51IHtcbiAgICBwYWRkaW5nOiAwcmVtO1xuICB9XG4gIC5uYXZiYXItZXhwZW5kLW1kIC5uYXZiYXItbmF2IC5zaG93IC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVtIHtcbiAgICBjb2xvcjogIzljOWRhMDtcbiAgfVxuICAubmF2YmFyLWV4cGVuZC1tZCAubmF2YmFyLW5hdiAuc2hvdyAuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbTpob3ZlciwgLm5hdmJhci1leHBlbmQtbWQgLm5hdmJhci1uYXYgLnNob3cgLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW06Zm9jdXMge1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICB9XG4gIC5uYXZiYXItZXhwZW5kLW1kIC5uYXZiYXItbmF2IC5zaG93IC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVtLmFjdGl2ZSB7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2ZmRTYwMDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gIC5uYXZiYXItZXhwZW5kLWxnIC5uYXZiYXItbmF2IC5zaG93IC5kcm9wZG93bi1tZW51IHtcbiAgICBwYWRkaW5nOiAwcmVtO1xuICB9XG4gIC5uYXZiYXItZXhwZW5kLWxnIC5uYXZiYXItbmF2IC5zaG93IC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVtIHtcbiAgICBjb2xvcjogIzljOWRhMDtcbiAgfVxuICAubmF2YmFyLWV4cGVuZC1sZyAubmF2YmFyLW5hdiAuc2hvdyAuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbTpob3ZlciwgLm5hdmJhci1leHBlbmQtbGcgLm5hdmJhci1uYXYgLnNob3cgLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW06Zm9jdXMge1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICB9XG4gIC5uYXZiYXItZXhwZW5kLWxnIC5uYXZiYXItbmF2IC5zaG93IC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVtLmFjdGl2ZSB7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2ZmRTYwMDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAubmF2YmFyLWV4cGVuZC14bCAubmF2YmFyLW5hdiAuc2hvdyAuZHJvcGRvd24tbWVudSB7XG4gICAgcGFkZGluZzogMHJlbTtcbiAgfVxuICAubmF2YmFyLWV4cGVuZC14bCAubmF2YmFyLW5hdiAuc2hvdyAuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbSB7XG4gICAgY29sb3I6ICM5YzlkYTA7XG4gIH1cbiAgLm5hdmJhci1leHBlbmQteGwgLm5hdmJhci1uYXYgLnNob3cgLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW06aG92ZXIsIC5uYXZiYXItZXhwZW5kLXhsIC5uYXZiYXItbmF2IC5zaG93IC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVtOmZvY3VzIHtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgfVxuICAubmF2YmFyLWV4cGVuZC14bCAubmF2YmFyLW5hdiAuc2hvdyAuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbS5hY3RpdmUge1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG4gICAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkICNmZkU2MDA7XG4gIH1cbn1cbi5uYXZiYXItZXhwZW5kIC5uYXZiYXItbmF2IC5zaG93IC5kcm9wZG93bi1tZW51IHtcbiAgcGFkZGluZzogMHJlbTtcbn1cbi5uYXZiYXItZXhwZW5kIC5uYXZiYXItbmF2IC5zaG93IC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVtIHtcbiAgY29sb3I6ICM5YzlkYTA7XG59XG4ubmF2YmFyLWV4cGVuZCAubmF2YmFyLW5hdiAuc2hvdyAuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbTpob3ZlciwgLm5hdmJhci1leHBlbmQgLm5hdmJhci1uYXYgLnNob3cgLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW06Zm9jdXMge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi5uYXZiYXItZXhwZW5kIC5uYXZiYXItbmF2IC5zaG93IC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVtLmFjdGl2ZSB7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwO1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2ZmRTYwMDtcbn1cblxuLm5vdGlmaWNhdGlvbi1jb3VudCB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLWJvdHRvbTogLTEwcHg7XG4gIG1hcmdpbi10b3A6IDNweDtcbiAgYmFja2dyb3VuZDogI2ZmRTYwMDtcbiAgY29sb3I6IGJsYWNrO1xufVxuXG4ubmF2YmFyLWRyb3Bkb3duLWl0ZW1zLWZsb2F0LWxlZnQge1xuICByaWdodDogMDtcbiAgbGVmdDogYXV0bztcbn1cbi5uYXZiYXItZHJvcGRvd24taXRlbXMtZmxvYXQtbGVmdCAuZHJvcGRvd24taXRlbSB7XG4gIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xufVxuXG4uZHJvcGRvd24tdG9nZ2xlOjphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5uYXZiYXItZHJvcGRvd24taXRlbXMtbGFyZ2Uge1xuICBtaW4taGVpZ2h0OiA0cmVtO1xuICBtaW4td2lkdGg6IDIwcmVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5kcm9wZG93bi1kaXZpZGVyIHtcbiAgbWFyZ2luOiAwO1xufVxuXG4ubGVkLWdyZWVuIHtcbiAgYmFja2dyb3VuZDogZ3JlZW47XG4gIGJhY2tncm91bmQtc2l6ZTogNXB4IDVweDtcbiAgd2lkdGg6IDE1cHg7XG4gIGhlaWdodDogMTVweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBib3JkZXI6IHNvbGlkIDJweCBsaW1lO1xuICBib3gtc2hhZG93OiAwIDAgMjBweCAjMjhhNzQ1IGluc2V0LCAwIDAgMTBweCBsaW1lO1xuICAtd2Via2l0LWFuaW1hdGlvbjogMTNzIGdyZWVuIGluZmluaXRlO1xuICBhbmltYXRpb246IDEzcyBncmVlbiBpbmZpbml0ZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubGVkLXJlZCB7XG4gIGJhY2tncm91bmQ6IHJlZDtcbiAgYmFja2dyb3VuZC1zaXplOiA1cHggNXB4O1xuICB3aWR0aDogMTVweDtcbiAgaGVpZ2h0OiAxNXB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGFuaW1hdGlvbjogMTNzIHJlZCBpbmZpbml0ZTtcbiAgYm9yZGVyOiBzb2xpZCAycHggcmVkO1xuICBib3gtc2hhZG93OiAwIDAgMjBweCAjZDIxZTJmIGluc2V0LCAwIDAgMTBweCByZWQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuI3Rlc3ROb3RpZmljYXRpb24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59Il19 */\"","import { Component, OnInit } from '@angular/core';\r\nimport { ConfigurationSettings } from 'src/app/models/configuration.settings';\r\nimport { IUserRoleDetails } from 'src/app/models/user-role-details';\r\nimport { Subscription } from 'rxjs';\r\nimport { UserService } from 'src/app/services/core/user/user.service';\r\nimport { UtilityService } from 'src/app/services/shared/utility/utility.service';\r\nimport { Router } from '@angular/router';\r\nimport { DataService } from 'src/app/services/shared/data/data.service';\r\nimport { CommunicationService } from 'src/app/services/shared/communication/communication.service';\r\nimport { MessageService } from 'src/app/services/shared/message/message.service';\r\nimport { NotificationService } from '../../../services/shared/notification/notification.service';\r\nimport { ConnectedStatusService } from 'src/app/services/shared/connection-status/connected-status.service';\r\nimport { PrivacyacceptanceService } from '../../../services/shared/privacyacceptance/privacyacceptance.service';\r\n\r\n@Component({\r\n selector: 'app-header',\r\n templateUrl: './header.component.html',\r\n styleUrls: ['./header.component.scss']\r\n})\r\nexport class HeaderComponent {\r\n\r\n notifications: any[] = [];\r\n isAgentHubConnection: boolean = false;\r\n isExpanded = false;\r\n isLoggedOut = false;\r\n public userRoles: string[] = [];\r\n isSuperAdmin: boolean = false;\r\n isAgent: boolean = false;\r\n isSeniorAgent: boolean = false;\r\n isChatbotAdmin: boolean = false;\r\n isBusinessManager: boolean = false;\r\n isShowUtilityMenu: boolean = false;\r\n isChatManager: boolean = false;\r\n configurations: ConfigurationSettings;\r\n userRoleDetails: IUserRoleDetails[] = [];\r\n userName: string = '';\r\n subscription: Subscription;\r\n newNotification: boolean = false;\r\n permission: any;\r\n constructor(private userService: UserService,\r\n private messageService: MessageService,\r\n private router: Router,\r\n private configuration: ConfigurationSettings,\r\n private dataService: DataService,\r\n private notificationService: NotificationService,\r\n private communicationService: CommunicationService,\r\n private connectedStatusService: ConnectedStatusService,\r\n private privacyacceptanceService: PrivacyacceptanceService,\r\n private utilityService: UtilityService) {\r\n this.configurations = configuration;\r\n this.requestPermission();\r\n\r\n this.subscription = this.notificationService.getHilConversationNotification().subscribe(notification => {\r\n if (notification && this.router.url != '/conversations/hilconversations') {\r\n this.notifications.push(notification);\r\n }\r\n });\r\n\r\n this.subscription = this.notificationService.clearAllNotifications().subscribe(notification => {\r\n if (!notification)\r\n this.notifications = [];\r\n });\r\n\r\n this.subscription = this.dataService.getUsername().subscribe(username => {\r\n if (username) {\r\n this.userName = username.text;\r\n if (this.userName && this.userName != '') {\r\n if (this.userName == 'User') {\r\n this.isSuperAdmin = false;\r\n this.isChatbotAdmin = false;\r\n this.isBusinessManager = false;\r\n this.isAgent = false;\r\n this.isSeniorAgent = false;\r\n this.isChatManager = false;\r\n this.isLoggedOut = true;\r\n }\r\n else {\r\n this.userRoles = sessionStorage.getItem('userRoles') ? sessionStorage.getItem('userRoles').split(',') : [];\r\n let superAdmin = this.userRoles.find(ob => ob.toLowerCase() === 'superadmin' || ob.toLowerCase() === 'super admin');\r\n let chatbotAdmin = this.userRoles.find(ob => ob.toLowerCase() === 'chatbotadmin' || ob.toLowerCase() === 'chatbot admin');\r\n let businessManager = this.userRoles.find(ob => ob.toLowerCase() === 'businessmanager' || ob.toLowerCase() === 'business manager');\r\n let agent = this.userRoles.find(ob => ob.toLowerCase() === 'agent');\r\n let seniorAgent = this.userRoles.find(ob => ob.toLowerCase() === 'senioragent' || ob.toLowerCase() === 'senior agent');\r\n let chatManager = this.userRoles.find(ob => ob.toLowerCase() === 'chatmanager' || ob.toLowerCase() === 'chat manager');\r\n this.subscription = this.privacyacceptanceService.getPrivacyAcceptance().subscribe(privacyStatementFlag => {\r\n if (!privacyStatementFlag.text) {\r\n if (superAdmin) {\r\n this.isSuperAdmin = true;\r\n }\r\n if (chatbotAdmin) {\r\n this.isChatbotAdmin = true;\r\n }\r\n if (agent) {\r\n this.isAgent = true;\r\n }\r\n else if (seniorAgent) {\r\n this.isSeniorAgent = true;\r\n }\r\n if (businessManager) {\r\n this.isBusinessManager = true;\r\n }\r\n if (chatManager) {\r\n this.isChatManager = true;\r\n }\r\n this.isShowUtilityMenu = utilityService.ShowUtilityMenu(sessionStorage.getItem('userBotRoles'),\r\n this.isSuperAdmin, this.isChatbotAdmin, this.isBusinessManager);\r\n }\r\n })\r\n }\r\n }\r\n }\r\n });\r\n //if (this.isAgent) {\r\n this.subscription = this.connectedStatusService.getAgentConnectedStatus().subscribe(agentConnectedStatus => {\r\n this.isAgentHubConnection = agentConnectedStatus.status;\r\n });\r\n //}\r\n }\r\n\r\n collapse() {\r\n this.isExpanded = false;\r\n }\r\n\r\n toggle() {\r\n this.isExpanded = !this.isExpanded;\r\n }\r\n\r\n ngOnDestroy() {\r\n // unsubscribe to ensure no memory leaks\r\n this.subscription.unsubscribe();\r\n }\r\n public StopNotifictionAlert(): void {\r\n this.newNotification = false;\r\n }\r\n\r\n public removeNotification(item: any): void {\r\n this.notifications = this.notifications.filter(function (obj) {\r\n return (obj.notification.type !== item.notification.type\r\n && obj.notification.from !== item.notification.from\r\n && obj.notification.dateTime !== item.notification.dateTime);\r\n });\r\n this.navigateToConversations(item);\r\n //this.notificationService.clearAllNotifications();\r\n }\r\n public navigateToConversations(item: any) {\r\n if (this.router.url != '/conversations/hilconversations') {\r\n this.router.navigate(['/conversations/hilconversations']);\r\n localStorage.setItem(\"navigatedChatId\", item.notification.ChatId);\r\n this.notificationService.clearAllNotifications();\r\n this.notifications = [];\r\n }\r\n }\r\n requestPermission() {\r\n if ('Notification' in window) {\r\n Notification.requestPermission()\r\n .then((permission) => {\r\n this.permission = permission;\r\n });\r\n }\r\n }\r\n showNotification() {\r\n new Notification('Hello, The Notifications for the CBaaS Portal are already active.');\r\n }\r\n}\r\n","export default \".bg-gold {\\n background: linear-gradient(110deg, #fdcd3b 60%, #ffed4b 60%);\\n}\\n\\n.row-fill-available-height {\\n /*height: -webkit-fill-available !important;*/\\n height: calc(-109px + 100vh);\\n overflow-y: auto;\\n background-image: url('bg-hil.jpg');\\n background-color: #e0e0e0;\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: cover;\\n}\\n\\n.menu-container {\\n min-height: 90%;\\n height: 90%;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9zaGFyZWQvaG9tZS9DOlxcVXNlcnNcXEtONjI0UVhcXHNvdXJjZVxcR2l0XFxjdHAtY2JhYXMtY2xpZW50LXBvcnRhbFxcQ0JhYVMuSElMLkNsaWVudFBvcnRhbC5XZWJcXENsaWVudEFwcC9zcmNcXGFwcFxcY29tcG9uZW50c1xcc2hhcmVkXFxob21lXFxob21lLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnRzL3NoYXJlZC9ob21lL2hvbWUuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFJRSw2REFBQTtBQ0NGOztBREdBO0VBQ0UsNkNBQUE7RUFDQSw0QkFBQTtFQUNBLGdCQUFBO0VBQ0EsbUNBQUE7RUFDQSx5QkFBQTtFQUNBLDJCQUFBO0VBQ0EsNEJBQUE7RUFDQSxzQkFBQTtBQ0FGOztBREdBO0VBQ0UsZUFBQTtFQUNBLFdBQUE7QUNBRiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvc2hhcmVkL2hvbWUvaG9tZS5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5iZy1nb2xkIHtcclxuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgxMTBkZWcsICNmZGNkM2IgNjAlLCAjZmZlZDRiIDYwJSk7XHJcbiAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KDExMGRlZywgI2ZkY2QzYiA2MCUsICNmZmVkNGIgNjAlKTtcclxuICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCgxMTBkZWcsICNmZGNkM2IgNjAlLCAjZmZlZDRiIDYwJSk7XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDExMGRlZywgI2ZkY2QzYiA2MCUsICNmZmVkNGIgNjAlKTtcclxufVxyXG5cclxuXHJcbi5yb3ctZmlsbC1hdmFpbGFibGUtaGVpZ2h0IHtcclxuICAvKmhlaWdodDogLXdlYmtpdC1maWxsLWF2YWlsYWJsZSAhaW1wb3J0YW50OyovXHJcbiAgaGVpZ2h0OiBjYWxjKC0xMDlweCArIDEwMHZoKTtcclxuICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnfnNyYy9hc3NldHMvaW1hZ2VzL2JnLWhpbC5qcGcnKTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwO1xyXG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcbn1cclxuXHJcbi5tZW51LWNvbnRhaW5lciB7XHJcbiAgbWluLWhlaWdodDogOTAlO1xyXG4gIGhlaWdodDogOTAlO1xyXG59XHJcbiIsIi5iZy1nb2xkIHtcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoMTEwZGVnLCAjZmRjZDNiIDYwJSwgI2ZmZWQ0YiA2MCUpO1xuICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQoMTEwZGVnLCAjZmRjZDNiIDYwJSwgI2ZmZWQ0YiA2MCUpO1xuICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCgxMTBkZWcsICNmZGNkM2IgNjAlLCAjZmZlZDRiIDYwJSk7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMTBkZWcsICNmZGNkM2IgNjAlLCAjZmZlZDRiIDYwJSk7XG59XG5cbi5yb3ctZmlsbC1hdmFpbGFibGUtaGVpZ2h0IHtcbiAgLypoZWlnaHQ6IC13ZWJraXQtZmlsbC1hdmFpbGFibGUgIWltcG9ydGFudDsqL1xuICBoZWlnaHQ6IGNhbGMoLTEwOXB4ICsgMTAwdmgpO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJ+c3JjL2Fzc2V0cy9pbWFnZXMvYmctaGlsLmpwZ1wiKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwZTBlMDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xufVxuXG4ubWVudS1jb250YWluZXIge1xuICBtaW4taGVpZ2h0OiA5MCU7XG4gIGhlaWdodDogOTAlO1xufSJdfQ== */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-home',\r\n templateUrl: './home.component.html',\r\n styleUrls: ['./home.component.scss']\r\n})\r\nexport class HomeComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvc2hhcmVkL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24uY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-notification',\r\n templateUrl: './notification.component.html',\r\n styleUrls: ['./notification.component.scss']\r\n})\r\nexport class NotificationComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","export default \".closebutton {\\n cursor: pointer;\\n}\\n\\n.privacy-statement-table table {\\n font-family: arial, sans-serif;\\n border-collapse: collapse;\\n width: 100%;\\n}\\n\\n.privacy-statement-table td, .privacy-statement-table th {\\n border: 1px solid #dddddd;\\n text-align: left;\\n padding: 8px;\\n}\\n\\n.privacy-statement-table tr:nth-child(even) {\\n background-color: #dddddd;\\n}\\n\\n.btn-warning {\\n color: #212529;\\n background-color: #ffee56;\\n border-color: #ffee56;\\n}\\n\\n.btn-warning:hover, .btn-warning:focus, .btn-warning.active {\\n background-color: #ffe500;\\n border-color: #ffe500;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9zaGFyZWQvcHJpdmFjeS1zdGF0ZW1lbnQvQzpcXFVzZXJzXFxLTjYyNFFYXFxzb3VyY2VcXEdpdFxcY3RwLWNiYWFzLWNsaWVudC1wb3J0YWxcXENCYWFTLkhJTC5DbGllbnRQb3J0YWwuV2ViXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXHNoYXJlZFxccHJpdmFjeS1zdGF0ZW1lbnRcXHByaXZhY3ktc3RhdGVtZW50LmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnRzL3NoYXJlZC9wcml2YWN5LXN0YXRlbWVudC9wcml2YWN5LXN0YXRlbWVudC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQTtFQUNFLGVBQUE7QUNKRjs7QURRRTtFQUNFLDhCQUFBO0VBQ0EseUJBQUE7RUFDQSxXQUFBO0FDTEo7O0FEUUU7RUFDRSx5QkFBQTtFQUNBLGdCQUFBO0VBQ0EsWUFBQTtBQ05KOztBRFNFO0VBQ0UseUJBQUE7QUNQSjs7QURXQTtFQUNFLGNBQUE7RUFDQSx5QkE3QlM7RUE4QlQscUJBOUJTO0FDc0JYOztBRFVFO0VBQ0UseUJBaENXO0VBaUNYLHFCQWpDVztBQ3lCZiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvc2hhcmVkL3ByaXZhY3ktc3RhdGVtZW50L3ByaXZhY3ktc3RhdGVtZW50LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiJGV5WWVsbG93OiAjZmZlZTU2O1xyXG4kZXlEYXJrWWVsbG93OiAjZmZlNTAwO1xyXG4kZXlHcmV5OiAjODI3YjdiO1xyXG4kZXlEYXJrR3JleTogIzMzMzMzMztcclxuXHJcbi5jbG9zZWJ1dHRvbiB7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcblxyXG4ucHJpdmFjeS1zdGF0ZW1lbnQtdGFibGUge1xyXG4gIHRhYmxlIHtcclxuICAgIGZvbnQtZmFtaWx5OiBhcmlhbCwgc2Fucy1zZXJpZjtcclxuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcblxyXG4gIHRkLCB0aCB7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkZGRkO1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgIHBhZGRpbmc6IDhweDtcclxuICB9XHJcblxyXG4gIHRyOm50aC1jaGlsZChldmVuKSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkZGRkO1xyXG4gIH1cclxufVxyXG5cclxuLmJ0bi13YXJuaW5nIHtcclxuICBjb2xvcjogIzIxMjUyOTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZXlZZWxsb3c7XHJcbiAgYm9yZGVyLWNvbG9yOiAkZXlZZWxsb3c7XHJcblxyXG4gICY6aG92ZXIsICY6Zm9jdXMsICYuYWN0aXZlIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRleURhcmtZZWxsb3c7XHJcbiAgICBib3JkZXItY29sb3I6ICRleURhcmtZZWxsb3c7XHJcbiAgfVxyXG59XHJcbiIsIi5jbG9zZWJ1dHRvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnByaXZhY3ktc3RhdGVtZW50LXRhYmxlIHRhYmxlIHtcbiAgZm9udC1mYW1pbHk6IGFyaWFsLCBzYW5zLXNlcmlmO1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICB3aWR0aDogMTAwJTtcbn1cbi5wcml2YWN5LXN0YXRlbWVudC10YWJsZSB0ZCwgLnByaXZhY3ktc3RhdGVtZW50LXRhYmxlIHRoIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZGRkZDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcGFkZGluZzogOHB4O1xufVxuLnByaXZhY3ktc3RhdGVtZW50LXRhYmxlIHRyOm50aC1jaGlsZChldmVuKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZGRkZGQ7XG59XG5cbi5idG4td2FybmluZyB7XG4gIGNvbG9yOiAjMjEyNTI5O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlZTU2O1xuICBib3JkZXItY29sb3I6ICNmZmVlNTY7XG59XG4uYnRuLXdhcm5pbmc6aG92ZXIsIC5idG4td2FybmluZzpmb2N1cywgLmJ0bi13YXJuaW5nLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmU1MDA7XG4gIGJvcmRlci1jb2xvcjogI2ZmZTUwMDtcbn0iXX0= */\"","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { NavigationStart, RouterEvent, Router } from '@angular/router';\r\nimport { filter } from 'rxjs/operators';\r\nimport { PrivacyacceptanceService } from '../../../services/shared/privacyacceptance/privacyacceptance.service';\r\nimport { UserService } from '../../../services/core/user/user.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { ConfigurationSettings } from 'src/app/models/configuration.settings';\r\nimport { CommunicationService } from '../../../services/shared/communication/communication.service';\r\n\r\n@Component({\r\n selector: 'app-privacy-statement',\r\n templateUrl: './privacy-statement.component.html',\r\n styleUrls: ['./privacy-statement.component.scss']\r\n})\r\nexport class PrivacyStatementComponent implements OnInit {\r\n _routerSubscription: any;\r\n isReadOnlyModal: boolean;\r\n subscription: Subscription;\r\n userRoles = [];\r\n\r\n constructor(private dialogRef: MatDialogRef,\r\n private privacyacceptanceService: PrivacyacceptanceService,\r\n private _userService: UserService,\r\n private configurationSettings: ConfigurationSettings,\r\n private communication: CommunicationService,\r\n @Inject(MAT_DIALOG_DATA) public data: string,\r\n private router: Router) { }\r\n\r\n ngOnInit() {\r\n if (sessionStorage.getItem('privacyStatementFlag') && !JSON.parse(sessionStorage.getItem('privacyStatementFlag'))) {\r\n this._routerSubscription = this.router.events\r\n .pipe(\r\n filter((event: RouterEvent) => event instanceof NavigationStart),\r\n filter(() => !!this.dialogRef)\r\n )\r\n .subscribe(() => {\r\n this.dialogRef.close();\r\n });\r\n this.isReadOnlyModal = true;\r\n } else {\r\n this.isReadOnlyModal = false;\r\n }\r\n }\r\n\r\n onClose() {\r\n this.dialogRef.close('Close');\r\n }\r\n\r\n onAccept() {\r\n this._userService.setUserPrivacyAcceptance()\r\n .subscribe(\r\n res => {\r\n sessionStorage.setItem('privacyStatementFlag', \"false\");\r\n this.privacyacceptanceService.sendPrivacyAcceptance(false);\r\n this.userRoles = sessionStorage.getItem('userRoles') ? sessionStorage.getItem('userRoles').split(',') : [];\r\n\r\n let agent = this.userRoles.find(ob => ob.toLowerCase() === 'agent');\r\n let seniorAgent = this.userRoles.find(ob => ob.toLowerCase() === 'senioragent' || ob.toLowerCase() === 'senior agent');\r\n let chatManager = this.userRoles.find(ob => ob.toLowerCase() === 'chatmanager' || ob.toLowerCase() === 'chat manager');\r\n\r\n if ((agent && agent.length > 0) || (seniorAgent && seniorAgent.length > 0) || (chatManager && chatManager.length > 0)) {//if user type is Agent then create hubconnection\r\n this.configurationSettings.userRole = agent && agent.length > 0 ? 'Agent' : 'Senior Agent';\r\n if (chatManager && chatManager.length > 0) {\r\n this.configurationSettings.userRole = 'chatManager';\r\n }\r\n if (!localStorage.getItem(\"agentConnected\") || localStorage.getItem(\"agentConnected\") != 'true') {\r\n this.communication.CreateAgentConnection(localStorage.getItem('userEmailId'));\r\n }\r\n }\r\n\r\n this.onClose();\r\n },\r\n (error) => {\r\n this.router.navigate(['signout']);\r\n }\r\n )\r\n }\r\n\r\n //onDecline() {\r\n // this._userService.setUserPrivacyAcceptance(false)\r\n // .subscribe(\r\n // res => {\r\n // this.router.navigate(['signout']);\r\n // },\r\n // (error) => {\r\n // this.router.navigate(['signout']);\r\n // }\r\n // )\r\n //}\r\n}\r\n","export default \".bg-grey {\\n background: linear-gradient(110deg, #181A1C 60%, #7d7e82 60%);\\n color: white;\\n}\\n\\n.btn-warning {\\n color: #212529;\\n background-color: #ffee56;\\n border-color: #ffee56;\\n}\\n\\n.btn-warning:hover, .btn-warning:focus, .btn-warning.active {\\n background-color: #ffe500;\\n border-color: #ffe500;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9zaGFyZWQvc2lnbm91dC9DOlxcVXNlcnNcXEtONjI0UVhcXHNvdXJjZVxcR2l0XFxjdHAtY2JhYXMtY2xpZW50LXBvcnRhbFxcQ0JhYVMuSElMLkNsaWVudFBvcnRhbC5XZWJcXENsaWVudEFwcC9zcmNcXGFwcFxcY29tcG9uZW50c1xcc2hhcmVkXFxzaWdub3V0XFxzaWdub3V0LmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnRzL3NoYXJlZC9zaWdub3V0L3NpZ25vdXQuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0E7RUFJRSw2REFBQTtFQUNBLFlBQUE7QUNGRjs7QURLQTtFQUNFLGNBQUE7RUFDQSx5QkFiUztFQWNULHFCQWRTO0FDWVg7O0FESUU7RUFDRSx5QkFoQlc7RUFpQlgscUJBakJXO0FDZWYiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3NoYXJlZC9zaWdub3V0L3NpZ25vdXQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIkZXlZZWxsb3c6ICNmZmVlNTY7XHJcbiRleURhcmtZZWxsb3c6ICNmZmU1MDA7XHJcblxyXG4uYmctZ3JleSB7XHJcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoMTEwZGVnLCAjMTgxQTFDIDYwJSwgIzdkN2U4MiA2MCUpO1xyXG4gIGJhY2tncm91bmQ6IC1vLWxpbmVhci1ncmFkaWVudCgxMTBkZWcsICMxODFBMUMgNjAlLCAjN2Q3ZTgyIDYwJSk7XHJcbiAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQoMTEwZGVnLCAjMTgxQTFDIDYwJSwgIzdkN2U4MiA2MCUpO1xyXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMTBkZWcsICMxODFBMUMgNjAlLCAjN2Q3ZTgyIDYwJSk7XHJcbiAgY29sb3I6d2hpdGU7XHJcbn1cclxuXHJcbi5idG4td2FybmluZyB7XHJcbiAgY29sb3I6ICMyMTI1Mjk7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGV5WWVsbG93O1xyXG4gIGJvcmRlci1jb2xvcjogJGV5WWVsbG93O1xyXG5cclxuICAmOmhvdmVyLCAmOmZvY3VzLCAmLmFjdGl2ZSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZXlEYXJrWWVsbG93O1xyXG4gICAgYm9yZGVyLWNvbG9yOiAkZXlEYXJrWWVsbG93O1xyXG4gIH1cclxufVxyXG4iLCIuYmctZ3JleSB7XG4gIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KDExMGRlZywgIzE4MUExQyA2MCUsICM3ZDdlODIgNjAlKTtcbiAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KDExMGRlZywgIzE4MUExQyA2MCUsICM3ZDdlODIgNjAlKTtcbiAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQoMTEwZGVnLCAjMTgxQTFDIDYwJSwgIzdkN2U4MiA2MCUpO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTEwZGVnLCAjMTgxQTFDIDYwJSwgIzdkN2U4MiA2MCUpO1xuICBjb2xvcjogd2hpdGU7XG59XG5cbi5idG4td2FybmluZyB7XG4gIGNvbG9yOiAjMjEyNTI5O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlZTU2O1xuICBib3JkZXItY29sb3I6ICNmZmVlNTY7XG59XG4uYnRuLXdhcm5pbmc6aG92ZXIsIC5idG4td2FybmluZzpmb2N1cywgLmJ0bi13YXJuaW5nLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmU1MDA7XG4gIGJvcmRlci1jb2xvcjogI2ZmZTUwMDtcbn0iXX0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { DataService } from 'src/app/services/shared/data/data.service';\r\nimport { CommunicationService } from 'src/app/services/shared/communication/communication.service';\r\n\r\n@Component({\r\n selector: 'app-signout',\r\n templateUrl: './signout.component.html',\r\n styleUrls: ['./signout.component.scss']\r\n})\r\nexport class SignoutComponent implements OnInit {\r\n\r\n constructor(private dataService : DataService,\r\n private communicationService : CommunicationService) { }\r\n\r\n ngOnInit() {\r\n sessionStorage.clear();\r\n localStorage.clear();\r\n this.communicationService.deleteHubConnection();\r\n this.dataService.sendUsername('User'); \r\n }\r\n\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvc2hhcmVkL3RvYXN0ZXIvdG9hc3Rlci5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit, OnDestroy, Input } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { Alert, AlertType } from '../../../models/alert';\r\nimport { ToasterService } from '../../../services/shared/toaster/toaster.service';\r\n\r\n@Component({\r\n selector: 'app-toaster',\r\n templateUrl: './toaster.component.html',\r\n styleUrls: ['./toaster.component.scss']\r\n})\r\nexport class ToasterComponent implements OnInit, OnDestroy {\r\n @Input() id: string;\r\n\r\n alerts: Alert[] = [];\r\n subscription: Subscription;\r\n\r\n constructor(private alertService: ToasterService) { }\r\n\r\n ngOnInit() {\r\n this.subscription = this.alertService.onAlert(this.id)\r\n .subscribe(alert => {\r\n if (!alert.message) {\r\n // clear alerts when an empty alert is received\r\n this.alerts = [];\r\n return;\r\n }\r\n // add alert to array\r\n this.alerts.push(alert);\r\n if (alert.message.endsWith) {\r\n if (!alert.message.endsWith(\"Disconnected\") && !alert.message.endsWith(\"Connected\") && !alert.message.includes(\"ended the chat\") && !alert.message.endsWith(\"Re-connected\") && alert.message.length < 100) {\r\n setTimeout(() => {\r\n this.removeAlert(alert);\r\n }, 5000);\r\n }\r\n }\r\n else {\r\n setTimeout(() => {\r\n this.removeAlert(alert);\r\n }, 3000);\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n // unsubscribe to avoid memory leaks\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n removeAlert(alert: Alert) {\r\n // remove specified alert from array\r\n this.alerts = this.alerts.filter(x => x !== alert);\r\n }\r\n\r\n cssClass(alert: Alert) {\r\n if (!alert) {\r\n return;\r\n }\r\n\r\n // return css class based on alert type\r\n switch (alert.type) {\r\n case AlertType.Success:\r\n return 'alert alert-success';\r\n case AlertType.Error:\r\n return 'alert alert-danger';\r\n case AlertType.Info:\r\n return 'alert alert-info';\r\n case AlertType.Warning:\r\n return 'alert alert-warning';\r\n }\r\n }\r\n}\r\n","export default \".btn-warning {\\n color: #212529;\\n background-color: #ffee56;\\n border-color: #ffee56;\\n}\\n.btn-warning:hover, .btn-warning:focus, .btn-warning.active {\\n background-color: #ffe500;\\n border-color: #ffe500;\\n}\\n.bg-gold {\\n background: linear-gradient(110deg, #fdcd3b 60%, #ffed4b 60%);\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9zaGFyZWQvd2FybmluZy1wb3B1cC9DOlxcVXNlcnNcXEtONjI0UVhcXHNvdXJjZVxcR2l0XFxjdHAtY2JhYXMtY2xpZW50LXBvcnRhbFxcQ0JhYVMuSElMLkNsaWVudFBvcnRhbC5XZWJcXENsaWVudEFwcC9zcmNcXGFwcFxcY29tcG9uZW50c1xcc2hhcmVkXFx3YXJuaW5nLXBvcHVwXFx3YXJuaW5nLXBvcHVwLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnRzL3NoYXJlZC93YXJuaW5nLXBvcHVwL3dhcm5pbmctcG9wdXAuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0E7RUFDRSxjQUFBO0VBQ0EseUJBTFM7RUFNVCxxQkFOUztBQ0lYO0FESUU7RUFDRSx5QkFSVztFQVNYLHFCQVRXO0FDT2Y7QURNQTtFQUlFLDZEQUFBO0FDSEYiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3NoYXJlZC93YXJuaW5nLXBvcHVwL3dhcm5pbmctcG9wdXAuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIkZXlZZWxsb3c6ICNmZmVlNTY7XHJcbiRleURhcmtZZWxsb3c6ICNmZmU1MDA7XHJcblxyXG4uYnRuLXdhcm5pbmcge1xyXG4gIGNvbG9yOiAjMjEyNTI5O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRleVllbGxvdztcclxuICBib3JkZXItY29sb3I6ICRleVllbGxvdztcclxuXHJcbiAgJjpob3ZlciwgJjpmb2N1cywgJi5hY3RpdmUge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGV5RGFya1llbGxvdztcclxuICAgIGJvcmRlci1jb2xvcjogJGV5RGFya1llbGxvdztcclxuICB9XHJcbn1cclxuXHJcbi5iZy1nb2xkIHtcclxuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgxMTBkZWcsICNmZGNkM2IgNjAlLCAjZmZlZDRiIDYwJSk7XHJcbiAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KDExMGRlZywgI2ZkY2QzYiA2MCUsICNmZmVkNGIgNjAlKTtcclxuICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCgxMTBkZWcsICNmZGNkM2IgNjAlLCAjZmZlZDRiIDYwJSk7XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDExMGRlZywgI2ZkY2QzYiA2MCUsICNmZmVkNGIgNjAlKTtcclxufVxyXG4iLCIuYnRuLXdhcm5pbmcge1xuICBjb2xvcjogIzIxMjUyOTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZWU1NjtcbiAgYm9yZGVyLWNvbG9yOiAjZmZlZTU2O1xufVxuLmJ0bi13YXJuaW5nOmhvdmVyLCAuYnRuLXdhcm5pbmc6Zm9jdXMsIC5idG4td2FybmluZy5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlNTAwO1xuICBib3JkZXItY29sb3I6ICNmZmU1MDA7XG59XG5cbi5iZy1nb2xkIHtcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoMTEwZGVnLCAjZmRjZDNiIDYwJSwgI2ZmZWQ0YiA2MCUpO1xuICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQoMTEwZGVnLCAjZmRjZDNiIDYwJSwgI2ZmZWQ0YiA2MCUpO1xuICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCgxMTBkZWcsICNmZGNkM2IgNjAlLCAjZmZlZDRiIDYwJSk7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMTBkZWcsICNmZGNkM2IgNjAlLCAjZmZlZDRiIDYwJSk7XG59Il19 */\"","import { Component, OnInit, Inject } from \"@angular/core\";\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material\";\r\nimport { BotRegistrationService } from \"src/app/services/core/bot-registration/bot-registration.service\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { ToasterService } from \"../../../services/shared/toaster/toaster.service\";\r\nimport { Router, NavigationStart, RouterEvent } from \"@angular/router\";\r\nimport { UserService } from \"src/app/services/core/user/user.service\";\r\nimport { filter } from \"rxjs/operators\";\r\nimport { FormGroup, FormControl, Validators } from \"@angular/forms\";\r\nimport { TokenService } from \"src/app/services/core/token/token.service\";\r\nimport { FileuploadService } from \"src/app/services/shared/fileupload/fileupload.service\";\r\n\r\n@Component({\r\n selector: \"app-warning-popup\",\r\n templateUrl: \"./warning-popup.component.html\",\r\n styleUrls: [\"./warning-popup.component.scss\"],\r\n})\r\nexport class WarningPopupComponent implements OnInit {\r\n public confirmClicked: boolean;\r\n public warningFor: string;\r\n _routerSubscription: any;\r\n public fromConversation: boolean = false;\r\n userRoles: string[];\r\n public isAgent: boolean = false;\r\n public allTerminationMessages: any;\r\n public isSeniorAgent: boolean = false;\r\n terminationReasonDetails: any;\r\n terminationReasonForm: FormGroup;\r\n terminationReason: FormControl;\r\n constructor(\r\n private dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private botService: BotRegistrationService,\r\n private userService: UserService,\r\n private fileuploadService:FileuploadService,\r\n private toasterService: ToasterService,\r\n private router: Router,\r\n private tokenService: TokenService\r\n ) {\r\n this.confirmClicked = false;\r\n }\r\n\r\n ngOnInit() {\r\n this._routerSubscription = this.router.events\r\n .pipe(\r\n filter((event: RouterEvent) => event instanceof NavigationStart),\r\n filter(() => !!this.dialogRef)\r\n )\r\n .subscribe(() => {\r\n this.dialogRef.close();\r\n });\r\n if (this.data == \"expiredToken\") this.warningFor = \"expiredToken\";\r\n else if (this.data.chatStatus == \"endChat\") {\r\n this.warningFor = \"endChat\";\r\n this.getAllTerminationMsg(this.data.botConfigId);\r\n } else if (this.data.chatStatus == \"leaveChat\")\r\n this.warningFor = \"leaveChat\";\r\n else if (this.data.data.storageId) this.warningFor = \"deleteFileFromBlob\";\r\n else if (this.data == \"connectionClosed\")\r\n this.warningFor = \"connectionClosed\";\r\n else if (this.data.data.botRegistrationId)\r\n this.warningFor = \"deleteBotRegistration\";\r\n else if (this.data.data.firstName) this.warningFor = \"deleteUser\";\r\n else this.warningFor = \"deleteUserRole\";\r\n\r\n if (sessionStorage.getItem(\"lastActiveTab\") == \"conversation\") {\r\n this.fromConversation = true;\r\n }\r\n\r\n this.userRoles = sessionStorage.getItem(\"userRoles\")\r\n ? sessionStorage.getItem(\"userRoles\").split(\",\")\r\n : [];\r\n let agent = this.userRoles.find((ob) => ob.toLowerCase() === \"agent\");\r\n let seniorAgent = this.userRoles.find(\r\n (ob) =>\r\n ob.toLowerCase() === \"senioragent\" ||\r\n ob.toLowerCase() === \"senior agent\"\r\n );\r\n if (agent) this.isAgent = true;\r\n if (seniorAgent) this.isSeniorAgent = true;\r\n\r\n this.terminationReason = new FormControl(\"\", Validators.required);\r\n this.terminationReasonForm = new FormGroup({\r\n terminationReason: this.terminationReason,\r\n });\r\n }\r\n onCloseCancel() {\r\n this.dialogRef.close(\"CANCEL\");\r\n if (this.data == \"expiredToken\")\r\n this.router.navigate([\"/conversations/hilconversations\"]);\r\n }\r\n\r\n getAllTerminationMsg(botConfigId: number) {\r\n this.userService.getTerminationMsg(botConfigId).subscribe(\r\n (res) => {\r\n this.allTerminationMessages = res;\r\n },\r\n (error) => {\r\n console.log(\"Error in Termination getAllTerminationMsg: \");\r\n console.log(error);\r\n if (error != \"Internal Server Error\") this.getRefreshToken();\r\n else\r\n this.toasterService.error(\"Unable to retrieve termination messages\");\r\n }\r\n );\r\n }\r\n\r\n getRefreshToken() {\r\n console.log(\"GetRefreshToken called for Termination Reason\");\r\n this.tokenService.getRefreshToken().subscribe(\r\n (res) => {\r\n let objToken = res;\r\n localStorage.setItem(\"accessToken\", objToken.token);\r\n localStorage.setItem(\"refreshToken\", objToken.refreshToken);\r\n this.getAllTerminationMsg(this.data.botConfigId);\r\n },\r\n (error) => {\r\n console.log(\"Error in Termination GetRefreshToken:\");\r\n console.log(error);\r\n }\r\n );\r\n }\r\n\r\n onConfirmOk() {\r\n this.confirmClicked = true;\r\n if (typeof this.data == \"string\") {\r\n if (this.data == \"expiredToken\" || this.data == \"connectionClosed\") {\r\n this.dialogRef.close(\"CONFIRM\");\r\n //this.router.navigate([\"/\"]);\r\n window.location.href = \"/\";\r\n }\r\n } else if (typeof this.data.chatStatus == \"string\") {\r\n if (this.data.chatStatus == \"endChat\") {\r\n localStorage.setItem(\"endChat\", \"true\");\r\n //ToDo: change hardcode value with selected termination reason\r\n localStorage.setItem(\"terminationReason\", \"termination reason 1\");\r\n this.dialogRef.close(\"CONFIRM\");\r\n } else if (this.data.chatStatus == \"leaveChat\") {\r\n localStorage.setItem(\"leaveChat\", \"true\");\r\n this.dialogRef.close(\"CONFIRM\");\r\n }\r\n } else {\r\n if (this.data.data.botRegistrationId) {\r\n this.botService.deleteBotRegistration(this.data).subscribe(\r\n (data) => {\r\n this.dialogRef.close(\"CONFIRM\");\r\n this.toasterService.warn(\"Successfully deleted Bot Registration\");\r\n },\r\n (error) => {\r\n this.dialogRef.close(\"CONFIRM\");\r\n this.toasterService.error(\r\n \"Error occured while deleting Bot Registration\"\r\n );\r\n }\r\n );\r\n } else if (this.data.data.firstName) {\r\n this.userService.deleteUser(this.data).subscribe(\r\n (data) => {\r\n this.dialogRef.close(\"CONFIRM\");\r\n this.toasterService.warn(\"Successfully deleted User\");\r\n },\r\n (error) => {\r\n this.dialogRef.close(\"CONFIRM\");\r\n this.toasterService.error(\"Error occured while deleting User\");\r\n }\r\n );\r\n } \r\n else if (this.data.data.storageId) {\r\n this.fileuploadService.DeleteFile(this.data.data.storageId).subscribe(\r\n (data) => {\r\n this.dialogRef.close(\"CONFIRM\");\r\n this.toasterService.success(\"File deleted successfully\");\r\n },\r\n (error) => {\r\n this.dialogRef.close(\"CONFIRM\");\r\n this.toasterService.error(\"Error occured while deleting File\");\r\n }\r\n );\r\n }\r\n \r\n else {\r\n this.userService.deleteUserRole(this.data.data).subscribe(\r\n (res) => {\r\n this.dialogRef.close(\"CONFIRM\");\r\n this.toasterService.success(\"Successfully deleted User role\");\r\n },\r\n (error) => {\r\n this.dialogRef.close(\"CONFIRM\");\r\n this.toasterService.error(\"Error Occured while deleting User role\");\r\n }\r\n );\r\n }\r\n }\r\n }\r\n\r\n saveTerminationReason(formValues) {\r\n localStorage.setItem(\"endChat\", \"true\");\r\n //ToDo: change hardcode value with selected termination reason\r\n localStorage.setItem(\"terminationReason\", formValues.terminationReason);\r\n this.dialogRef.close(\"CONFIRM\");\r\n }\r\n}\r\n","export default \".recipient-option {\\n margin-top: 1rem;\\n}\\n\\n.mat-chip {\\n font-size: 12px;\\n font-weight: 400;\\n}\\n\\n.mat-option {\\n height: 30px;\\n font-size: 12px;\\n}\\n\\n.mat-chip.mat-standard-chip {\\n background-color: #f1da0c;\\n color: #343a40;\\n}\\n\\n.mat-standard-chip {\\n height: 24px;\\n min-height: 24px;\\n}\\n\\n.mat-form-field-flex {\\n background-color: white;\\n}\\n\\ntextarea {\\n resize: none;\\n}\\n\\n.legend-wrap {\\n font-size: 12px;\\n font-style: italic;\\n background: #e9ecef;\\n padding: 6px;\\n border-radius: 5px;\\n}\\n\\n.schedule-area {\\n padding-top: 15px;\\n}\\n\\n.recipient-list {\\n border: 1px solid #ced4da;\\n border-radius: 0.25rem;\\n width: 100%;\\n height: 100px;\\n overflow: auto;\\n padding: 5px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy91dGlsaXR5L2FkZGJyb2FkY2FzdC9DOlxcVXNlcnNcXEtONjI0UVhcXHNvdXJjZVxcR2l0XFxjdHAtY2JhYXMtY2xpZW50LXBvcnRhbFxcQ0JhYVMuSElMLkNsaWVudFBvcnRhbC5XZWJcXENsaWVudEFwcC9zcmNcXGFwcFxcY29tcG9uZW50c1xcdXRpbGl0eVxcYWRkYnJvYWRjYXN0XFxhZGRicm9hZGNhc3QuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NvbXBvbmVudHMvdXRpbGl0eS9hZGRicm9hZGNhc3QvYWRkYnJvYWRjYXN0LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBRUUsZ0JBQUE7QUNBRjs7QURFQTtFQUVFLGVBQUE7RUFDQSxnQkFBQTtBQ0FGOztBREVBO0VBRUksWUFBQTtFQUNBLGVBQUE7QUNBSjs7QURFQTtFQUNJLHlCQUFBO0VBQ0EsY0FBQTtBQ0NKOztBRENBO0VBRUksWUFBQTtFQUNBLGdCQUFBO0FDQ0o7O0FEQ0E7RUFFRSx1QkFBQTtBQ0NGOztBREVBO0VBQ0UsWUFBQTtBQ0NGOztBRENBO0VBRUUsZUFBQTtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7QUNDRjs7QURDQTtFQUVFLGlCQUFBO0FDQ0Y7O0FEQ0E7RUFFQSx5QkFBQTtFQUNJLHNCQUFBO0VBQ0EsV0FBQTtFQUNBLGFBQUE7RUFDQSxjQUFBO0VBQ0EsWUFBQTtBQ0NKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy91dGlsaXR5L2FkZGJyb2FkY2FzdC9hZGRicm9hZGNhc3QuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIucmVjaXBpZW50LW9wdGlvblxyXG57XHJcbiAgbWFyZ2luLXRvcDogMXJlbTtcclxufVxyXG4ubWF0LWNoaXBcclxue1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBmb250LXdlaWdodDogNDAwO1xyXG59XHJcbi5tYXQtb3B0aW9uXHJcbntcclxuICAgIGhlaWdodDogMzBweDtcclxuICAgIGZvbnQtc2l6ZTogMTJweDtcclxufVxyXG4ubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZGEwYztcclxuICAgIGNvbG9yOiAjMzQzYTQwO1xyXG59XHJcbi5tYXQtc3RhbmRhcmQtY2hpcCBcclxue1xyXG4gICAgaGVpZ2h0OiAyNHB4O1xyXG4gICAgbWluLWhlaWdodDogMjRweDtcclxufVxyXG4ubWF0LWZvcm0tZmllbGQtZmxleFxyXG57XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbn1cclxuXHJcbnRleHRhcmVhIHtcclxuICByZXNpemU6IG5vbmU7XHJcbn1cclxuLmxlZ2VuZC13cmFwXHJcbntcclxuICBmb250LXNpemU6IDEycHg7XHJcbiAgZm9udC1zdHlsZTogaXRhbGljO1xyXG4gIGJhY2tncm91bmQ6ICNlOWVjZWY7XHJcbiAgcGFkZGluZzogNnB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcclxufVxyXG4uc2NoZWR1bGUtYXJlYVxyXG57XHJcbiAgcGFkZGluZy10b3A6IDE1cHg7XHJcbn1cclxuLnJlY2lwaWVudC1saXN0XHJcbntcclxuYm9yZGVyOiAxcHggc29saWQgI2NlZDRkYTtcclxuICAgIGJvcmRlci1yYWRpdXM6IC4yNXJlbTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDBweDtcclxuICAgIG92ZXJmbG93OiBhdXRvO1xyXG4gICAgcGFkZGluZzogNXB4O1xyXG59IiwiLnJlY2lwaWVudC1vcHRpb24ge1xuICBtYXJnaW4tdG9wOiAxcmVtO1xufVxuXG4ubWF0LWNoaXAge1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi5tYXQtb3B0aW9uIHtcbiAgaGVpZ2h0OiAzMHB4O1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMWRhMGM7XG4gIGNvbG9yOiAjMzQzYTQwO1xufVxuXG4ubWF0LXN0YW5kYXJkLWNoaXAge1xuICBoZWlnaHQ6IDI0cHg7XG4gIG1pbi1oZWlnaHQ6IDI0cHg7XG59XG5cbi5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG5cbnRleHRhcmVhIHtcbiAgcmVzaXplOiBub25lO1xufVxuXG4ubGVnZW5kLXdyYXAge1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgYmFja2dyb3VuZDogI2U5ZWNlZjtcbiAgcGFkZGluZzogNnB4O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG59XG5cbi5zY2hlZHVsZS1hcmVhIHtcbiAgcGFkZGluZy10b3A6IDE1cHg7XG59XG5cbi5yZWNpcGllbnQtbGlzdCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjZWQ0ZGE7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMHB4O1xuICBvdmVyZmxvdzogYXV0bztcbiAgcGFkZGluZzogNXB4O1xufSJdfQ== */\"","import { Component, OnInit, ViewChild, ElementRef } from \"@angular/core\";\r\nimport { BroadcastService } from \"src/app/services/core/broadcast/broadcast.service\";\r\nimport { ToasterService } from \"../../../services/shared/toaster/toaster.service\";\r\nimport { IBroadcast, IBroadcastBotInfo } from \"src/app/models/broadcast\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { Router } from \"@angular/router\";\r\nimport { FormGroup, FormControl, Validators } from \"@angular/forms\";\r\nimport { MatAutocompleteSelectedEvent } from \"@angular/material/autocomplete\";\r\nimport { MatChipInputEvent } from \"@angular/material/chips\";\r\nimport { Observable } from \"rxjs\";\r\nimport { map, startWith } from \"rxjs/operators\";\r\nimport { COMMA, ENTER } from \"@angular/cdk/keycodes\";\r\n\r\n@Component({\r\n selector: \"app-addbroadcast\",\r\n templateUrl: \"./addbroadcast.component.html\",\r\n styleUrls: [\"./addbroadcast.component.scss\"],\r\n})\r\nexport class AddbroadcastComponent implements OnInit {\r\n @ViewChild(\"closebutton\", { static: true }) SaveButton: ElementRef;\r\n addNewBroadcast: boolean;\r\n broadcastDetails: any;\r\n broadcastId: number;\r\n dayList: any[] = [];\r\n\r\n //Form Corntrolls\r\n newBroadcastForm: FormGroup;\r\n BotName: FormControl;\r\n BroadcastName: FormControl;\r\n Description: FormControl;\r\n Recipients: FormControl;\r\n TriggerMode: FormControl;\r\n QnaQuestion: FormControl;\r\n ScheduleDate: FormControl;\r\n ScheduleTime: FormControl;\r\n RecurWeekDay: FormControl;\r\n RecurWeekDayTime: FormControl;\r\n RecurMonthDay: FormControl;\r\n RecurMonthDayTime: FormControl;\r\n RecipientOption: FormControl;\r\n //-------------------------------\r\n private _subscriptions = new Subscription();\r\n userRoles: string[] = [];\r\n selectedUserId: string;\r\n botList: any;\r\n broadcastBotInfo: IBroadcastBotInfo;\r\n broadcastData: IBroadcast;\r\n SelectedBotName: string;\r\n superAdmin: boolean;\r\n botConfigId: number;\r\n notifyRequest: IBroadcast;\r\n broadcastList: IBroadcast[] = [];\r\n hasError: boolean = false;\r\n isSchedule: boolean = false;\r\n isRecWeekly: boolean = false;\r\n isRecMonthly: boolean = false;\r\n isSelect: boolean = false;\r\n selectedDay: string;\r\n selectedDate: string;\r\n selectedTrigger: string;\r\n isEdit: boolean = false;\r\n lastDay: string;\r\n today: string;\r\n\r\n selectable = true;\r\n removable = true;\r\n recipientList: string[] = [];\r\n separatorKeysCodes: number[] = [ENTER, COMMA];\r\n recipientCtrl = new FormControl();\r\n filteredRecipients: Observable;\r\n selectedRecipients: string[] = [];\r\n @ViewChild(\"recipientInput\", { static: false })\r\n recipientInput: ElementRef;\r\n constructor(\r\n private toasterService: ToasterService,\r\n private broadcastService: BroadcastService,\r\n private router: Router //private datePipe: DatePipe\r\n ) {\r\n this.filteredRecipients = this.recipientCtrl.valueChanges.pipe(\r\n startWith(null),\r\n map((rec: string | null) =>\r\n rec ? this._filter(rec) : this.recipientList.slice()\r\n )\r\n );\r\n }\r\n ngOnInit() {\r\n this.CreateDayList();\r\n this.SetCurrentDate();\r\n this.broadcastBotInfo = JSON.parse(\r\n sessionStorage.getItem(\"broadcastBotInfo\")\r\n );\r\n this.broadcastData = JSON.parse(sessionStorage.getItem(\"broadcastData\"));\r\n if (this.broadcastData) {\r\n this.isEdit = true;\r\n if (this.broadcastData.scheduleDate) {\r\n let date = this.broadcastData.scheduleDate.split(\"T\")[0];\r\n this.broadcastData.scheduleDate = date;\r\n }\r\n }\r\n if (!this.broadcastBotInfo && !this.isEdit) {\r\n this.toasterService.error(\r\n \"You are not authorized to create broadcast for this BOT!\"\r\n );\r\n this.router.navigate([\"utility/broadcast\"]);\r\n }\r\n\r\n this.userRoles = sessionStorage.getItem(\"userRoles\")\r\n ? sessionStorage.getItem(\"userRoles\").split(\",\")\r\n : [];\r\n let superAdminUser = this.userRoles.find(\r\n (ob) =>\r\n ob.toLowerCase() === \"superadmin\" || ob.toLowerCase() === \"super admin\"\r\n );\r\n if (superAdminUser) {\r\n this.superAdmin = true;\r\n }\r\n this.hasError = false;\r\n this.BotName = new FormControl(\r\n { value: this.broadcastBotInfo.displayName, disabled: true },\r\n Validators.required\r\n );\r\n if (this.isEdit) {\r\n this.broadcastId = this.broadcastData.id;\r\n this.onTriggerChange(this.broadcastData.triggerMode);\r\n this.BroadcastName = new FormControl(\r\n this.broadcastData.name,\r\n Validators.compose([Validators.required, Validators.pattern('[a-zA-Z][a-zA-Z ]+')])\r\n );\r\n this.Description = new FormControl(\r\n this.broadcastData.description,\r\n Validators.compose([Validators.required, Validators.pattern(/^[-_ a-zA-Z0-9]+$/)])\r\n );\r\n this.Recipients = new FormControl();\r\n this.RecipientOption = new FormControl();\r\n this.selectedRecipients = this.broadcastData.recipients.split(\",\");\r\n this.TriggerMode = new FormControl(\r\n this.broadcastData.triggerMode,\r\n Validators.required\r\n );\r\n this.ScheduleDate = new FormControl(this.broadcastData.scheduleDate);\r\n this.ScheduleTime = new FormControl(this.broadcastData.scheduleTime);\r\n this.RecurWeekDay = new FormControl(this.broadcastData.recurWeekDay);\r\n this.RecurWeekDayTime = new FormControl(\r\n this.broadcastData.recurWeekDayTime\r\n );\r\n this.RecurMonthDay = new FormControl(this.broadcastData.recurMonthDay);\r\n this.RecurMonthDayTime = new FormControl(\r\n this.broadcastData.recurMonthDayTime\r\n );\r\n this.QnaQuestion = new FormControl(\r\n this.broadcastData.qnaQuestion,\r\n Validators.required\r\n );\r\n } else {\r\n this.broadcastId = 0;\r\n this.BroadcastName = new FormControl(\"\", Validators.compose([Validators.required, Validators.pattern('[a-zA-Z][a-zA-Z ]+')]));\r\n this.Description = new FormControl(\"\", Validators.compose([Validators.required, Validators.pattern(/^[-_ a-zA-Z0-9]+$/)]));\r\n this.Recipients = new FormControl(\"\");\r\n this.TriggerMode = new FormControl(\"Manual\", Validators.required);\r\n this.ScheduleDate = new FormControl(this.today);\r\n this.ScheduleTime = new FormControl(\"12:00\");\r\n this.RecurWeekDay = new FormControl(\"0\");\r\n this.RecurWeekDayTime = new FormControl(\"12:00\");\r\n this.RecurMonthDay = new FormControl(\"1\");\r\n this.RecurMonthDayTime = new FormControl(\"12:00\");\r\n this.QnaQuestion = new FormControl(\"\", Validators.required);\r\n this.RecipientOption = new FormControl(\"all\");\r\n }\r\n\r\n this.newBroadcastForm = new FormGroup({\r\n BotName: this.BotName,\r\n BroadcastName: this.BroadcastName,\r\n Description: this.Description,\r\n Recipients: this.Recipients,\r\n TriggerMode: this.TriggerMode,\r\n ScheduleDate: this.ScheduleDate,\r\n ScheduleTime: this.ScheduleTime,\r\n RecurWeekDay: this.RecurWeekDay,\r\n RecurWeekDayTime: this.RecurWeekDayTime,\r\n RecurMonthDay: this.RecurMonthDay,\r\n RecurMonthDayTime: this.RecurMonthDayTime,\r\n QnaQuestion: this.QnaQuestion,\r\n });\r\n this.GetAllBotAccessedUsers();\r\n }\r\n onTriggerChange(value) {\r\n switch (value) {\r\n case \"Manual\": {\r\n this.isSchedule = false;\r\n this.isRecWeekly = false;\r\n this.isRecMonthly = false;\r\n break;\r\n }\r\n case \"Scheduled\": {\r\n this.isSchedule = true;\r\n this.isRecWeekly = false;\r\n this.isRecMonthly = false;\r\n break;\r\n }\r\n case \"Rec-Weekly\": {\r\n this.isSchedule = false;\r\n this.isRecWeekly = true;\r\n this.isRecMonthly = false;\r\n break;\r\n }\r\n case \"Rec-Monthly\": {\r\n this.isSchedule = false;\r\n this.isRecWeekly = false;\r\n this.isRecMonthly = true;\r\n break;\r\n }\r\n }\r\n }\r\n BroadcastCancel() {\r\n this.router.navigate([\"utility/broadcast\"], {\r\n queryParams: { id: this.broadcastBotInfo.botConfigId },\r\n });\r\n }\r\n onSelectionChanged(selectedUser) {\r\n this.selectedUserId = selectedUser;\r\n }\r\n BroadcastSave(formValues) {\r\n this.broadcastDetails = {\r\n Id: this.broadcastId,\r\n BotConfigId: this.broadcastBotInfo.botConfigId,\r\n Name: formValues.BroadcastName,\r\n Description: formValues.Description,\r\n Recipients: this.selectedRecipients.join(\",\"),\r\n TriggerMode: formValues.TriggerMode,\r\n QnaQuestion: formValues.QnaQuestion,\r\n ScheduleDate: formValues.ScheduleDate,\r\n ScheduleTime: formValues.ScheduleTime,\r\n RecurWeekDay: formValues.RecurWeekDay,\r\n RecurWeekDayTime: formValues.RecurWeekDayTime,\r\n RecurMonthDay: formValues.RecurMonthDay,\r\n RecurMonthDayTime: formValues.RecurMonthDayTime,\r\n };\r\n this._subscriptions.add(\r\n this.broadcastService.CreateBroadcast(this.broadcastDetails).subscribe(\r\n (res) => {\r\n this.toasterService.success(\"Broadcast created successfully!!\");\r\n this.newBroadcastForm.reset();\r\n this.router.navigate([\"utility/broadcast\"], {\r\n queryParams: { id: this.broadcastBotInfo.botConfigId },\r\n });\r\n },\r\n (error) => {\r\n this.addNewBroadcast = false;\r\n }\r\n )\r\n );\r\n }\r\n SetCurrentDate() {\r\n let dte = new Date();\r\n \r\n let month =\r\n dte.getMonth() > 9\r\n ? (dte.getMonth() + 1).toString()\r\n : \"0\" + (dte.getMonth()+1).toString();\r\n let day =\r\n dte.getDate() > 9\r\n ? dte.getDate().toString()\r\n : \"0\" + dte.getDate().toString();\r\n this.today = dte.getFullYear().toString() + \"-\" + month + \"-\" + day;\r\n \r\n }\r\n\r\n CreateDayList() {\r\n let dateText: string;\r\n let date: any;\r\n for (let i = 1; i <= 31; i++) {\r\n switch (i % 10) {\r\n case 1:\r\n dateText=(i==11)?i + \"th day\":i + \"st day\"\r\n break;\r\n case 2:\r\n dateText=(i==12)?i + \"th day\":i + \"nd day\"\r\n break;\r\n case 3:\r\n dateText=(i==13)?i + \"th day\":i + \"rd day\"\r\n break;\r\n default:\r\n dateText = i + \"th day\";\r\n break;\r\n }\r\n date = {\r\n dateNo: i,\r\n text: dateText,\r\n };\r\n this.dayList.push(date);\r\n }\r\n }\r\n GetAllBotAccessedUsers() {\r\n this._subscriptions.add(\r\n this.broadcastService\r\n .GetAllBotAccessedUsers(this.broadcastBotInfo.botConfigId)\r\n .subscribe(\r\n (res) => {\r\n this.recipientList = res;\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n )\r\n );\r\n }\r\n add(event: MatChipInputEvent): void {\r\n const value = (event.value || \"\").trim();\r\n\r\n // Add our Recipients\r\n if (value) {\r\n this.selectedRecipients.push(value);\r\n }\r\n\r\n // Clear the input value\r\n //event.chipInput!.clear();\r\n if (event.input) {\r\n event.input.value = \"\";\r\n }\r\n\r\n this.recipientCtrl.setValue(null);\r\n }\r\n\r\n remove(fruit: string): void {\r\n const index = this.selectedRecipients.indexOf(fruit);\r\n\r\n if (index >= 0) {\r\n this.selectedRecipients.splice(index, 1);\r\n }\r\n }\r\n\r\n selected(event: MatAutocompleteSelectedEvent): void {\r\n this.selectedRecipients.push(event.option.viewValue);\r\n this.recipientInput.nativeElement.value = \"\";\r\n this.recipientCtrl.setValue(null);\r\n }\r\n\r\n private _filter(value: string): string[] {\r\n const filterValue = value.toLowerCase();\r\n\r\n return this.recipientList.filter((recipientsit) =>\r\n recipientsit.toLowerCase().includes(filterValue)\r\n );\r\n }\r\n ChangeRecipientOption(event) {\r\n if(event.target.value != \"select\")\r\n {\r\n this.selectedRecipients=this.recipientList;\r\n } \r\n else\r\n {\r\n this.selectedRecipients=[];\r\n }\r\n }\r\n //---------------------------------------\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvdXRpbGl0eS9ib3RwdXNobm90aWZpY2F0aW9uL2JvdHB1c2hub3RpZmljYXRpb24uY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { BotRegistrationService } from 'src/app/services/core/bot-registration/bot-registration.service';\r\nimport { ProactiveBotNotificationService } from 'src/app/services/core/bot-proactive-notification/bot-proactive-notification.service';\r\nimport { ConfigurationSettings } from 'src/app/models/configuration.settings';\r\nimport { ToasterService } from '../../../services/shared/toaster/toaster.service';\r\nimport { INotifyRequest } from 'src/app/models/notify-response';\r\nimport { UtilityService } from 'src/app/services/shared/utility/utility.service';\r\n\r\n@Component({\r\n selector: 'app-botpushnotification',\r\n templateUrl: './botpushnotification.component.html',\r\n styleUrls: ['./botpushnotification.component.scss']\r\n})\r\nexport class BotPushNotificationComponent implements OnInit {\r\n\r\n constructor(private httpClient: HttpClient,\r\n private botRegistrationService: BotRegistrationService,\r\n private configurationSetting: ConfigurationSettings,\r\n private toasterService: ToasterService,\r\n private proactiveBotNotificationService: ProactiveBotNotificationService,\r\n private utilityService: UtilityService\r\n ) { }\r\n\r\n userRoles: string[] = [];\r\n botList: any;\r\n showSubmitBtn: boolean;\r\n showTestBtn: boolean;\r\n messageKey: string;\r\n superAdmin: boolean;\r\n botConfigId: number;\r\n notifyRequest: INotifyRequest\r\n\r\n ngOnInit() {\r\n\r\n this.userRoles = sessionStorage.getItem('userRoles') ? sessionStorage.getItem('userRoles').split(',') : [];\r\n let superAdminUser = this.userRoles.find(ob => ob.toLowerCase() === 'superadmin' || ob.toLowerCase() === 'super admin');\r\n if (superAdminUser) {\r\n this.superAdmin = true;\r\n }\r\n\r\n //Taking accessed bot list\r\nthis.botRegistrationService.getRegisteredBots()\r\n .subscribe(\r\n res => {\r\n sessionStorage.setItem(\"lastActiveTab\", \"utility\");\r\n this.botList=this.setBotList(res);\r\n if (this.botList.length > 0) {\r\n this.botConfigId = this.botList[0].botConfigId;\r\n this.showTestBtn = true;\r\n }\r\n },\r\n (error) => {\r\n this.toasterService.error(\"Unable to fetch BOT(s) details at the moment\");\r\n }\r\n )\r\n };\r\n\r\n setBotList(botlistResult) {\r\n let listOfBots = [];\r\n if (this.superAdmin) {\r\n botlistResult.forEach((item) => {\r\n listOfBots.push({ botConfigId: item.botConfigId, displayName: item.displayName });\r\n });\r\n }\r\n else {\r\n\r\n let botIds = this.utilityService.GetFeaturewiseBotList(sessionStorage.getItem('userBotRoles'),\"ProactiveNotification\");\r\n\r\n botlistResult.forEach((item) => {\r\n botIds.forEach((botConfigId) => {\r\n if (botConfigId == item.botConfigId) {\r\n listOfBots.push({ botConfigId: item.botConfigId, displayName: item.displayName })\r\n }\r\n });\r\n });\r\n }\r\n return listOfBots;\r\n }\r\n\r\n onBotChange(botConfigId) {\r\n this.showSubmitBtn=false;\r\n this.showTestBtn = true;\r\n this.messageKey = '';\r\n this.botConfigId = botConfigId;\r\n };\r\n\r\n initiatePushNotification() {\r\n if (this.isEmptyOrSpaces(this.messageKey)) {\r\n this.toasterService.info(\"Please enter the message key\");\r\n return;\r\n }\r\n\r\n if (this.botConfigId<1) {\r\n this.toasterService.info(\"Invalid Bot\");\r\n return;\r\n }\r\n\r\n this.showSubmitBtn = false;\r\n\r\n this.notifyRequest = {\r\n botConfigId: this.botConfigId,\r\n key: this.messageKey,\r\n initiatorTest: false\r\n }\r\n\r\n this.proactiveBotNotificationService.initiateProactiveNotification(this.notifyRequest)\r\n .subscribe(\r\n res => {\r\n console.log(res);\r\n if (res == null) {\r\n this.toasterService.error('Request Failed');\r\n this.showSubmitBtn = true;\r\n return;\r\n }\r\n\r\n if (res.success) {\r\n this.toasterService.info(res.message);\r\n this.messageKey = '';\r\n this.showSubmitBtn = false;\r\n }\r\n else {\r\n this.toasterService.error(res.message);\r\n this.showSubmitBtn = true;\r\n }\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n );\r\n };\r\n\r\n initiatorTestPushNotification() {\r\n if (this.isEmptyOrSpaces(this.messageKey)) {\r\n this.toasterService.info(\"Please enter the message key\");\r\n return;\r\n }\r\n\r\n if (this.botConfigId < 1) {\r\n this.toasterService.info(\"Invalid Bot\");\r\n return;\r\n }\r\n\r\n this.showTestBtn = false;\r\n\r\n this.notifyRequest = {\r\n botConfigId: this.botConfigId,\r\n key: this.messageKey,\r\n initiatorTest: true\r\n }\r\n\r\n this.proactiveBotNotificationService.initiateProactiveNotification(this.notifyRequest)\r\n .subscribe(\r\n res => {\r\n console.log(res);\r\n if (res == null) {\r\n this.toasterService.error('Request Failed');\r\n this.showTestBtn = true;\r\n return;\r\n }\r\n\r\n if (res.success) {\r\n this.toasterService.info(res.message);\r\n this.showTestBtn = false;\r\n setTimeout(() => this.showSubmitBtn = true, 3000);\r\n }\r\n else {\r\n this.toasterService.error(res.message);\r\n this.showTestBtn = true;\r\n }\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n );\r\n };\r\n\r\n isEmptyOrSpaces(str) {\r\n return str === null || str==undefined || str.trim() === '';\r\n }; \r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvdXRpbGl0eS9icm9hZGNhc3QvYnJvYWRjYXN0LmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit, ViewChild, ElementRef } from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { BotRegistrationService } from \"src/app/services/core/bot-registration/bot-registration.service\";\r\nimport { BroadcastService } from \"src/app/services/core/broadcast/broadcast.service\";\r\nimport { ConfigurationSettings } from \"src/app/models/configuration.settings\";\r\nimport { ToasterService } from \"../../../services/shared/toaster/toaster.service\";\r\nimport { UtilityService } from \"src/app/services/shared/utility/utility.service\";\r\nimport { IBroadcast, IBroadcastBotInfo } from \"src/app/models/broadcast\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { Router, ActivatedRoute } from \"@angular/router\";\r\nimport { MatDialog } from \"@angular/material\";\r\nimport { WarningPopupComponent } from \"../../shared/warning-popup/warning-popup.component\";\r\nimport { IUserRoleDetails } from \"src/app/models/user-role-details\";\r\n\r\n@Component({\r\n selector: \"app-broadcast\",\r\n templateUrl: \"./broadcast.component.html\",\r\n styleUrls: [\"./broadcast.component.scss\"]\r\n})\r\nexport class BroadcastComponent implements OnInit {\r\n @ViewChild(\"closebutton\", { static: true }) SaveButton: ElementRef;\r\n addNewBroadcast: boolean;\r\n broadcastDetails: any;\r\n broadcastId: number;\r\n private userRoles: string[] = [];\r\n private userRoleDetails: IUserRoleDetails[] = [];\r\n private _subscriptions = new Subscription();\r\n constructor(\r\n private httpClient: HttpClient,\r\n private botRegistrationService: BotRegistrationService,\r\n private configurationSetting: ConfigurationSettings,\r\n private toasterService: ToasterService,\r\n private broadcastService: BroadcastService,\r\n private utilityService: UtilityService,\r\n private dialogWarning: MatDialog,\r\n private router: Router,\r\n private route: ActivatedRoute\r\n ) {}\r\n \r\n private gridColumnApi;\r\n private gridApi;\r\n botList: any;\r\n broadcastBotInfo: IBroadcastBotInfo;\r\n modalTitle = \"Create New Broadcast\";\r\n superAdmin: boolean;\r\n botConfigId: number;\r\n hideAddButton: boolean = true;\r\n notifyRequest: IBroadcast;\r\n userData: any[] = [];\r\n closeResult = \"\";\r\n selectedBot = \"\";\r\n sortingOrder;\r\n defaultColDef;\r\n domLayout: string;\r\n paginationPageSize = 100;\r\n rowData = [];\r\n columnDefs: any[] = [];\r\n broadcastList: IBroadcast[] = [];\r\n selectedOption: Number;\r\n\r\n ngOnInit() {\r\n this.selectedOption = -1;\r\n this.route.queryParams.subscribe((params) => {\r\n const res = params[\"id\"];\r\n if (res) {\r\n this.broadcastBotInfo = JSON.parse(\r\n sessionStorage.getItem(\"broadcastBotInfo\")\r\n );\r\n this.selectedBot = this.broadcastBotInfo.displayName;\r\n this.botConfigId = this.broadcastBotInfo.botConfigId;\r\n this.selectedOption = res;\r\n this.createRowData();\r\n this.hideAddButton = false;\r\n }\r\n });\r\n this.userRoles = sessionStorage.getItem(\"userRoles\")\r\n ? sessionStorage.getItem(\"userRoles\").split(\",\")\r\n : [];\r\n let superAdminUser = this.userRoles.find(\r\n (ob) =>\r\n ob.toLowerCase() === \"superadmin\" || ob.toLowerCase() === \"super admin\"\r\n );\r\n if (superAdminUser) {\r\n this.superAdmin = true;\r\n }\r\n\r\n //Taking accessed bot list\r\n this.botRegistrationService.getRegisteredBots().subscribe(\r\n (res) => {\r\n sessionStorage.setItem(\"lastActiveTab\", \"utility\");\r\n this.botList = this.setBotList(res);\r\n if (this.botList.length > 0) {\r\n this.botConfigId = this.botList[0].botConfigId;\r\n // this.showTestBtn = true;\r\n }\r\n },\r\n (error) => {\r\n this.toasterService.error(\r\n \"Unable to fetch BOT(s) details at the moment\"\r\n );\r\n }\r\n );\r\n }\r\n\r\n setBotList(botlistResult) {\r\n let listOfBots = [];\r\n listOfBots.push({ botConfigId: -1, displayName: \"-Select Bot-\" });\r\n if (this.superAdmin) {\r\n botlistResult.forEach((item) => {\r\n listOfBots.push({\r\n botConfigId: item.botConfigId,\r\n displayName: item.displayName,\r\n });\r\n });\r\n } else {\r\n let botIds = this.utilityService.GetFeaturewiseBotList(sessionStorage.getItem('userBotRoles'),\"Broadcast\");\r\n botlistResult.forEach((item) => {\r\n botIds.forEach((botConfigId) => {\r\n if (botConfigId == item.botConfigId) {\r\n listOfBots.push({\r\n botConfigId: item.botConfigId,\r\n displayName: item.displayName,\r\n });\r\n }\r\n });\r\n });\r\n }\r\n return listOfBots;\r\n }\r\n\r\n onBotChange(event) {\r\n if (event.target.value != -1) {\r\n this.botConfigId = event.target.value;\r\n this.hideAddButton = false;\r\n this.selectedBot =\r\n event.target.options[event.target.options.selectedIndex].text;\r\n this.createRowData();\r\n this.setBotInfoSession();\r\n }\r\n }\r\n\r\n createColumnDefs() {\r\n const customComparator = (valueA, valueB) => {\r\n valueA = valueA ? valueA : \"\";\r\n valueB = valueB ? valueB : \"\";\r\n return valueA.toLowerCase().localeCompare(valueB.toLowerCase());\r\n };\r\n const columnDefs = [\r\n {\r\n headerName: \"Survey\",\r\n field: \"name\",\r\n width: 200,\r\n comparator: customComparator,\r\n filter: true,\r\n sortable: true,\r\n sortingOrder: [\"asc\", \"desc\"],\r\n },\r\n {\r\n headerName: \"Description\",\r\n field: \"description\",\r\n width: 420,\r\n comparator: customComparator,\r\n filter: false,\r\n sortable: false,\r\n },\r\n {\r\n headerName: \"Trigger Mode\",\r\n field: \"triggerMode\",\r\n width: 100,\r\n comparator: customComparator,\r\n filter: true,\r\n sortable: true,\r\n sortingOrder: [\"asc\", \"desc\"],\r\n },\r\n {\r\n headerName: \"Created Date\",\r\n field: \"createdDate\",\r\n width: 160,\r\n comparator: customComparator,\r\n filter: true,\r\n sortable: true,\r\n sortingOrder: [\"asc\", \"desc\"],\r\n },\r\n {\r\n headerName: \"Status\",\r\n field: \"status\",\r\n width: 80,\r\n comparator: customComparator,\r\n filter: true,\r\n sortable: true,\r\n sortingOrder: [\"asc\", \"desc\"],\r\n },\r\n\r\n {\r\n headerName: \"Edit\",\r\n width: 70,\r\n left: 637,\r\n cellRenderer: this.editBroadcastCellRenderer.bind(this),\r\n },\r\n {\r\n headerName: \"Actions\",\r\n width: 70,\r\n cellRenderer: this.broadcastActionCellRenderer.bind(this),\r\n },\r\n ];\r\n this.columnDefs = columnDefs;\r\n }\r\n\r\n createRowData() {\r\n this.rowData = [];\r\n this._subscriptions.add(\r\n this.broadcastService.GetAllBroadcasts(this.botConfigId).subscribe(\r\n (res) => {\r\n this.broadcastList = res;\r\n this.rowData = this.broadcastList;\r\n this.createColumnDefs();\r\n },\r\n (error) => {\r\n this.toasterService.warn(\"No files found\");\r\n }\r\n )\r\n );\r\n }\r\n\r\n // openWarning(fileDetails: any) {\r\n // let dialogRef = this.dialogWarning.open(WarningPopupComponent, {\r\n // height: \"35%\",\r\n // width: \"35%\",\r\n // autoFocus: false,\r\n // data: fileDetails,\r\n // });\r\n // dialogRef.afterClosed().subscribe((result) => {\r\n // this.createRowData();\r\n // });\r\n // }\r\n\r\n onGridReady(params) {\r\n this.gridApi = params.api;\r\n this.gridApi.sizeColumnsToFit();\r\n this.gridColumnApi = params.columnApi;\r\n this.gridApi.setDomLayout(\"autoHeight\");\r\n this.gridApi.paginationSetPageSize(15);\r\n }\r\n broadcastActionCellRenderer(broadcastInfo: any) {\r\n let broadcastData = JSON.stringify(broadcastInfo.data);\r\n const element = document.createElement(\"span\");\r\n let template =\r\n '';\r\n element.innerHTML = template;\r\n element.addEventListener(\"click\", () => {\r\n sessionStorage.removeItem(\"broadcastData\");\r\n sessionStorage.setItem(\"broadcastData\", broadcastData);\r\n let allowAction = this.checkRoleForAction(this.botConfigId);\r\n if (allowAction) {\r\n this.router.navigate([\"utility/broadcastactions\"]);\r\n } else {\r\n this.toasterService.error(\r\n \"You are not authorized to edit broadcast for this BOT!\"\r\n );\r\n }\r\n });\r\n return element;\r\n }\r\n editBroadcastCellRenderer(broadcastInfo: any) {\r\n let broadcastData = JSON.stringify(broadcastInfo.data);\r\n const element = document.createElement(\"span\");\r\n let template =\r\n '';\r\n element.innerHTML = template;\r\n element.addEventListener(\"click\", () => {\r\n sessionStorage.removeItem(\"broadcastData\");\r\n sessionStorage.setItem(\"broadcastData\", broadcastData);\r\n let allowAction = this.checkRoleForAction(this.botConfigId);\r\n if (allowAction) {\r\n this.router.navigate([\"utility/addbroadcast\"]);\r\n } else {\r\n this.toasterService.error(\r\n \"You are not authorized to edit broadcast for this BOT!\"\r\n );\r\n }\r\n });\r\n return element;\r\n }\r\n OnCreateNewBroadcast() {\r\n let allowAction = this.checkRoleForAction(this.botConfigId);\r\n if (allowAction) {\r\n sessionStorage.removeItem(\"broadcastData\");\r\n this.router.navigate([\"utility/addbroadcast\"]);\r\n } else {\r\n this.toasterService.error(\r\n \"You are not authorized to create broadcast for this BOT!\"\r\n );\r\n console.log(\"You are not authorized to create broadcast for this BOT!\");\r\n }\r\n }\r\n ngOnDestroy(): void {\r\n this._subscriptions.unsubscribe();\r\n }\r\n setBotInfoSession() {\r\n let botInfo = {\r\n botConfigId: this.botConfigId,\r\n displayName: this.selectedBot,\r\n };\r\n let botData = JSON.stringify(botInfo);\r\n sessionStorage.removeItem(\"broadcastBotInfo\");\r\n sessionStorage.setItem(\"broadcastBotInfo\", botData);\r\n }\r\n checkRoleForAction(selectedbotConfigId: number) {\r\n if (selectedbotConfigId <= 0) {\r\n this.broadcastBotInfo = JSON.parse(\r\n sessionStorage.getItem(\"broadcastBotInfo\")\r\n );\r\n selectedbotConfigId = this.broadcastBotInfo.botConfigId;\r\n }\r\n this.userRoleDetails = JSON.parse(sessionStorage.getItem(\"userBotRoles\"));\r\n let botConfigId = this.userRoleDetails.filter(\r\n (x) =>\r\n (x.botConfigId == selectedbotConfigId || x.botConfigId == 0) &&\r\n (x.role.toLowerCase() == \"chatbot admin\" ||\r\n x.role.toLowerCase() == \"chatbotadmin\" ||\r\n x.role.toLowerCase() == \"super admin\" ||\r\n x.role.toLowerCase() == \"superadmin\")\r\n );\r\n if (botConfigId && botConfigId.length > 0) return true;\r\n else return false;\r\n }\r\n}\r\n","export default \".list-group-horizontal .list-group-item {\\n min-width: 15rem;\\n}\\n\\n.list-group-horizontal {\\n margin-bottom: 5px;\\n}\\n\\n.recipients .list-group-item {\\n max-width: 30rem;\\n}\\n\\n.list-group-wrap {\\n padding: 10px;\\n}\\n\\n.list-group-wrap .badge {\\n font-size: 100%;\\n padding: 0.4em 0.8em;\\n font-weight: 400;\\n color: #fff;\\n}\\n\\n.recipients {\\n max-height: 18em;\\n overflow-y: auto;\\n width: 30em;\\n border-bottom: 1px solid rgba(0, 0, 0, 0.125);\\n overflow-x: hidden;\\n border-radius: 5px;\\n border-top: 1px solid rgba(0, 0, 0, 0.125);\\n}\\n\\n.recipients-wrapper {\\n padding: 1.25rem;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy91dGlsaXR5L2Jyb2FkY2FzdGFjdGlvbnMvQzpcXFVzZXJzXFxLTjYyNFFYXFxzb3VyY2VcXEdpdFxcY3RwLWNiYWFzLWNsaWVudC1wb3J0YWxcXENCYWFTLkhJTC5DbGllbnRQb3J0YWwuV2ViXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXHV0aWxpdHlcXGJyb2FkY2FzdGFjdGlvbnNcXGJyb2FkY2FzdGFjdGlvbnMuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NvbXBvbmVudHMvdXRpbGl0eS9icm9hZGNhc3RhY3Rpb25zL2Jyb2FkY2FzdGFjdGlvbnMuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFFSSxnQkFBQTtBQ0FKOztBREVBO0VBRUksa0JBQUE7QUNBSjs7QURFQTtFQUVJLGdCQUFBO0FDQUo7O0FERUE7RUFFSSxhQUFBO0FDQUo7O0FERUE7RUFFSSxlQUFBO0VBQ0Esb0JBQUE7RUFDQSxnQkFBQTtFQUNBLFdBQUE7QUNBSjs7QURFQTtFQUVJLGdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxXQUFBO0VBQ0EsNkNBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0VBQ0EsMENBQUE7QUNBSjs7QURFQTtFQUVJLGdCQUFBO0FDQUoiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3V0aWxpdHkvYnJvYWRjYXN0YWN0aW9ucy9icm9hZGNhc3RhY3Rpb25zLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmxpc3QtZ3JvdXAtaG9yaXpvbnRhbCAubGlzdC1ncm91cC1pdGVtXHJcbntcclxuICAgIG1pbi13aWR0aDogMTVyZW07XHJcbn1cclxuLmxpc3QtZ3JvdXAtaG9yaXpvbnRhbFxyXG57XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuLnJlY2lwaWVudHMgLmxpc3QtZ3JvdXAtaXRlbVxyXG57XHJcbiAgICBtYXgtd2lkdGg6IDMwcmVtO1xyXG59XHJcbi5saXN0LWdyb3VwLXdyYXBcclxue1xyXG4gICAgcGFkZGluZzogMTBweDtcclxufVxyXG4ubGlzdC1ncm91cC13cmFwIC5iYWRnZVxyXG57XHJcbiAgICBmb250LXNpemU6IDEwMCU7XHJcbiAgICBwYWRkaW5nOiAuNDBlbSAuOGVtO1xyXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgIGNvbG9yOiNmZmY7XHJcbn1cclxuLnJlY2lwaWVudHNcclxue1xyXG4gICAgbWF4LWhlaWdodDogMThlbTtcclxuICAgIG92ZXJmbG93LXk6IGF1dG87XHJcbiAgICB3aWR0aDogMzBlbTtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTI1KTtcclxuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcclxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTI1KTtcclxufVxyXG4ucmVjaXBpZW50cy13cmFwcGVyXHJcbntcclxuICAgIHBhZGRpbmc6IDEuMjVyZW07XHJcbn0iLCIubGlzdC1ncm91cC1ob3Jpem9udGFsIC5saXN0LWdyb3VwLWl0ZW0ge1xuICBtaW4td2lkdGg6IDE1cmVtO1xufVxuXG4ubGlzdC1ncm91cC1ob3Jpem9udGFsIHtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuXG4ucmVjaXBpZW50cyAubGlzdC1ncm91cC1pdGVtIHtcbiAgbWF4LXdpZHRoOiAzMHJlbTtcbn1cblxuLmxpc3QtZ3JvdXAtd3JhcCB7XG4gIHBhZGRpbmc6IDEwcHg7XG59XG5cbi5saXN0LWdyb3VwLXdyYXAgLmJhZGdlIHtcbiAgZm9udC1zaXplOiAxMDAlO1xuICBwYWRkaW5nOiAwLjRlbSAwLjhlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5yZWNpcGllbnRzIHtcbiAgbWF4LWhlaWdodDogMThlbTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgd2lkdGg6IDMwZW07XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTI1KTtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTI1KTtcbn1cblxuLnJlY2lwaWVudHMtd3JhcHBlciB7XG4gIHBhZGRpbmc6IDEuMjVyZW07XG59Il19 */\"","import { Component, OnInit, ViewChild, ElementRef } from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { BroadcastService } from \"src/app/services/core/broadcast/broadcast.service\";\r\nimport { ConfigurationSettings } from \"src/app/models/configuration.settings\";\r\nimport { ToasterService } from \"../../../services/shared/toaster/toaster.service\";\r\nimport { IBroadcast, IBroadcastBotInfo } from \"src/app/models/broadcast\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { Router } from \"@angular/router\";\r\nimport { IUserRoleDetails } from \"src/app/models/user-role-details\";\r\nimport { WarningPopupComponent } from \"../../shared/warning-popup/warning-popup.component\";\r\nimport { MatDialog } from \"@angular/material\";\r\n\r\n@Component({\r\n selector: \"app-broadcastactions\",\r\n templateUrl: \"./broadcastactions.component.html\",\r\n styleUrls: [\"./broadcastactions.component.scss\"],\r\n})\r\nexport class BroadcastactionsComponent implements OnInit {\r\n private _subscriptions = new Subscription();\r\n broadcastData: IBroadcast;\r\n recipients: string[] = [];\r\n isActive: boolean = false;\r\n isManual: boolean = false;\r\n broadcastBotInfo: IBroadcastBotInfo;\r\n botConfigId: number;\r\n broadcastId: number;\r\n modalHeader: string;\r\n modalBody: string;\r\n isActivate: boolean = false;\r\n isTrigger: boolean = false;\r\n showDeactivate: boolean = false;\r\n showTrigger: boolean = false;\r\n showActivate: boolean = false;\r\n showSchedule: boolean = false;\r\n isScheduled: boolean = false;\r\n \r\n\r\n private userRoleDetails: IUserRoleDetails[] = [];\r\n constructor(\r\n private toasterService: ToasterService,\r\n private broadcastService: BroadcastService,\r\n private router: Router,\r\n private dialogWarning: MatDialog\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.broadcastData = JSON.parse(sessionStorage.getItem(\"broadcastData\"));\r\n this.broadcastBotInfo = JSON.parse(sessionStorage.getItem(\"broadcastBotInfo\"));\r\n this.botConfigId = this.broadcastData.botConfigId;\r\n this.broadcastId = this.broadcastData.id;\r\n this.recipients = this.broadcastData.recipients.split(\",\");\r\n this.isActive = this.broadcastData.status == \"Active\" ? true : false;\r\n this.isManual = this.broadcastData.triggerMode == \"Manual\" ? true : false;\r\n \r\n }\r\n BroadcastCancel() {\r\n this.router.navigate([\"utility/broadcast\"], {\r\n queryParams: { id: this.broadcastData.botConfigId },\r\n });\r\n }\r\n //Activate Broadcast\r\n OnActivateBroadcast() {\r\n let allowAction = this.checkRoleForAction(this.botConfigId);\r\n if (allowAction) {\r\n this._subscriptions.add(\r\n this.broadcastService.ActivateBroadcast(this.broadcastId).subscribe(\r\n (res) => {\r\n this.toasterService.success(\"Broadcast Activated successfully!!\");\r\n this.broadcastData.status = \"Active\";\r\n this.isActive = true;\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n )\r\n );\r\n } else {\r\n this.toasterService.error(\r\n \"You are not authorized to activate broadcast for this BOT!\"\r\n );\r\n }\r\n }\r\n \r\n checkRoleForAction(selectedbotConfigId: number) {\r\n this.userRoleDetails = JSON.parse(sessionStorage.getItem(\"userBotRoles\"));\r\n let botConfigId = this.userRoleDetails.filter(\r\n (x) =>\r\n (x.botConfigId == selectedbotConfigId || x.botConfigId == 0) &&\r\n (x.role.toLowerCase() == \"chatbot admin\" ||\r\n x.role.toLowerCase() == \"chatbotadmin\" ||\r\n x.role.toLowerCase() == \"super admin\" ||\r\n x.role.toLowerCase() == \"superadmin\")\r\n );\r\n if (botConfigId && botConfigId.length > 0) return true;\r\n else return false;\r\n }\r\n SetModalContent(sender: string) {\r\n switch (sender) {\r\n case \"activate\":\r\n this.modalHeader = \"Confirm Broadcast Activation\";\r\n this.modalBody =\r\n \" Do you want to Preview and Activate this Broadcast?\";\r\n this.showTrigger = false;\r\n this.showDeactivate = false;\r\n this.showActivate = true;\r\n this.showSchedule = false;\r\n break;\r\n case \"deactivate\":\r\n this.modalHeader = \"Confirm Broadcast Deactivation\";\r\n this.modalBody = \" Do you want to deactivate this Broadcast?\";\r\n this.showTrigger = false;\r\n this.showDeactivate = true;\r\n this.showActivate = false;\r\n this.showSchedule = false;\r\n break;\r\n case \"trigger\":\r\n this.modalHeader = \"Confirm Broadcast Trigger\";\r\n this.modalBody = \" Do you want to initiate this broadcast?\";\r\n this.showTrigger = true;\r\n this.showDeactivate = false;\r\n this.showActivate = false;\r\n this.showSchedule = false;\r\n break;\r\n case \"schedule\":\r\n this.modalHeader = \"Confirm Broadcast Schedule\";\r\n this.modalBody = \" Do you want to schedule this Broadcast?\";\r\n this.showTrigger = false;\r\n this.showDeactivate = false;\r\n this.showActivate = false;\r\n this.showSchedule = true;\r\n break;\r\n }\r\n }\r\n\r\n OnTriggerBroadcast() {\r\n let allowAction = this.checkRoleForAction(this.botConfigId);\r\n if (allowAction) {\r\n this._subscriptions.add(\r\n this.broadcastService.TriggerBroadcast(this.broadcastId).subscribe(\r\n (res) => {\r\n this.toasterService.success(\"Broadcast Initiated successfully!!\");\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n )\r\n );\r\n } else {\r\n this.toasterService.error(\r\n \"You are not authorized to initiate broadcast for this BOT!\"\r\n );\r\n }\r\n }\r\n OnDeactivateBroadcast() {\r\n let allowAction = this.checkRoleForAction(this.botConfigId);\r\n if (allowAction) {\r\n this._subscriptions.add(\r\n this.broadcastService.DectivateBroadcast(this.broadcastId).subscribe(\r\n (res) => {\r\n this.toasterService.success(\"Broadcast Deactivated successfully!!\");\r\n this.broadcastData.status = \"Inactive\";\r\n this.isActive = false;\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n )\r\n );\r\n } else {\r\n this.toasterService.error(\r\n \"You are not authorized to deactivate broadcast for this BOT!\"\r\n );\r\n }\r\n }\r\n\r\n OnScheduleBroadcast() {\r\n let allowAction = this.checkRoleForAction(this.botConfigId);\r\n if (allowAction) {\r\n this._subscriptions.add(\r\n this.broadcastService.ScheduleBroadcast(this.broadcastId).subscribe(\r\n (res) => {\r\n this.toasterService.success(\"Broadcast Scheduled successfully!!\");\r\n this.isScheduled = true;\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n )\r\n );\r\n } else {\r\n this.toasterService.error(\r\n \"You are not authorized to schedule broadcast for this BOT!\"\r\n );\r\n }\r\n }\r\n}\r\n","export default \".view-image {\\n padding: 6px;\\n}\\n\\n.image-list {\\n margin-top: 10px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy91dGlsaXR5L2ZpbGV1cGxvYWQvQzpcXFVzZXJzXFxLTjYyNFFYXFxzb3VyY2VcXEdpdFxcY3RwLWNiYWFzLWNsaWVudC1wb3J0YWxcXENCYWFTLkhJTC5DbGllbnRQb3J0YWwuV2ViXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXHV0aWxpdHlcXGZpbGV1cGxvYWRcXGZpbGV1cGxvYWQuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NvbXBvbmVudHMvdXRpbGl0eS9maWxldXBsb2FkL2ZpbGV1cGxvYWQuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0E7RUFFSSxZQUFBO0FDREo7O0FER0E7RUFFSSxnQkFBQTtBQ0RKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy91dGlsaXR5L2ZpbGV1cGxvYWQvZmlsZXVwbG9hZC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4udmlldy1pbWFnZVxyXG57XHJcbiAgICBwYWRkaW5nOiA2cHg7XHJcbn1cclxuLmltYWdlLWxpc3Rcclxue1xyXG4gICAgbWFyZ2luLXRvcDoxMHB4XHJcbn0iLCIudmlldy1pbWFnZSB7XG4gIHBhZGRpbmc6IDZweDtcbn1cblxuLmltYWdlLWxpc3Qge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufSJdfQ== */\"","import { Component, OnInit, ViewChild, ElementRef } from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { ConfigurationSettings } from \"src/app/models/configuration.settings\";\r\nimport { ToasterService } from \"../../../services/shared/toaster/toaster.service\";\r\nimport { FileuploadService } from \"src/app/services/shared/fileupload/fileupload.service\";\r\nimport { BotRegistrationService } from \"src/app/services/core/bot-registration/bot-registration.service\";\r\nimport { UtilityService } from \"src/app/services/shared/utility/utility.service\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { IUserFileInfo } from \"src/app/models/user-file-info\";\r\nimport { Router } from \"@angular/router\";\r\nimport { MatDialog } from \"@angular/material\";\r\nimport { WarningPopupComponent } from \"../../shared/warning-popup/warning-popup.component\";\r\n@Component({\r\n selector: \"app-fileupload\",\r\n templateUrl: \"./fileupload.component.html\",\r\n styleUrls: [\"./fileupload.component.scss\"],\r\n})\r\nexport class FileUploadComponent implements OnInit {\r\n @ViewChild('fileChoose', { static: false }) fileChoose: ElementRef;\r\n file: File = null; // Variable to store file\r\n userRoles: string[] = [];\r\n superAdmin: boolean;\r\n fileToUpload: File = null;\r\n botList: any;\r\n botConfigId: number;\r\n rowData = [];\r\n columnDefs: any[] = [];\r\n userFileInfo: IUserFileInfo[] = [];\r\n showUploadBtn: boolean;\r\n showBrowseBtn: boolean;\r\n imageUrl: string;\r\n private gridApi;\r\n userData: any[] = [];\r\n closeResult = \"\";\r\n sortingOrder;\r\n defaultColDef;\r\n domLayout: string;\r\n paginationPageSize = 100; \r\n private gridColumnApi;\r\n private _subscriptions = new Subscription();\r\n constructor(\r\n private httpClient: HttpClient,\r\n private configurationSetting: ConfigurationSettings,\r\n private toasterService: ToasterService,\r\n private fileuploadService: FileuploadService,\r\n private botRegistrationService: BotRegistrationService,\r\n private utilityService: UtilityService,\r\n private router: Router,\r\n private dialogWarning: MatDialog\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.userRoles = sessionStorage.getItem(\"userRoles\")\r\n ? sessionStorage.getItem(\"userRoles\").split(\",\")\r\n : [];\r\n let superAdminUser = this.userRoles.find(\r\n (ob) =>\r\n ob.toLowerCase() === \"superadmin\" || ob.toLowerCase() === \"super admin\"\r\n );\r\n if (superAdminUser) {\r\n this.superAdmin = true;\r\n }\r\n\r\n this.domLayout = \"autoHeight\";\r\n this.showUploadBtn = false;\r\n this.showBrowseBtn = false;\r\n //Taking accessed bot list\r\n this.botRegistrationService.getRegisteredBots().subscribe(\r\n (res) => {\r\n sessionStorage.setItem(\"lastActiveTab\", \"utility\");\r\n this.botList = this.setBotList(res);\r\n if (this.botList.length > 0) {\r\n this.botConfigId = this.botList[0].botConfigId;\r\n }\r\n },\r\n (error) => {\r\n this.toasterService.warn(\r\n \"Unable to fetch BOT(s) details at the moment\"\r\n );\r\n }\r\n );\r\n }\r\n\r\n createColumnDefs() {\r\n const customComparator = (valueA, valueB) => {\r\n valueA = valueA ? valueA : \"\";\r\n valueB = valueB ? valueB : \"\";\r\n return valueA.toLowerCase().localeCompare(valueB.toLowerCase());\r\n };\r\n const columnDefs = [\r\n {\r\n headerName: \"Image URL\",\r\n field: \"fileUri\",\r\n width: 500,\r\n comparator: customComparator,\r\n filter: true,\r\n sortable: true,\r\n sortingOrder: [\"asc\", \"desc\"],\r\n },\r\n {\r\n headerName: \"Created Time\",\r\n field: \"createdTime\",\r\n width: 150,\r\n comparator: customComparator,\r\n filter: true,\r\n sortable: true,\r\n sortingOrder: [\"asc\", \"desc\"],\r\n },\r\n {\r\n headerName: \"View\",\r\n width: 60,\r\n left: 637,\r\n cellRenderer: this.viewCellRenderer.bind(this),\r\n },\r\n {\r\n headerName: \"Delete\",\r\n width: 60,\r\n cellRenderer: this.deleteCellRenderer.bind(this),\r\n },\r\n ];\r\n this.columnDefs = columnDefs;\r\n }\r\n\r\n createRowData() {\r\n this.rowData =[];\r\n this._subscriptions.add(\r\n this.fileuploadService.GetAllUploadedFiles(this.botConfigId).subscribe(\r\n (res) => {\r\n this.userFileInfo = res;\r\n this.rowData = this.userFileInfo;\r\n this.createColumnDefs();\r\n },\r\n (error) => {\r\n this.toasterService.warn(\"No files found\");\r\n }\r\n )\r\n );\r\n }\r\n\r\n viewCellRenderer(fileDetails: any) {\r\n const element = document.createElement(\"span\");\r\n let cellValue = \"View\";\r\n let template =\r\n '';\r\n element.innerHTML = template;\r\n element.addEventListener(\"click\", (event) => {\r\n this.onViewFile(fileDetails.data.fileUri)\r\n }); \r\n return element;\r\n }\r\n\r\n deleteCellRenderer(fileDetails: any) {\r\n const element = document.createElement(\"span\");\r\n let template =\r\n '';\r\n element.innerHTML = template;\r\n element.addEventListener(\"click\", () => {\r\n //console.log(fileDetails.data);\r\n this.openWarning(fileDetails);\r\n });\r\n return element;\r\n }\r\n\r\n openWarning(fileDetails: any) {\r\n let dialogRef = this.dialogWarning.open(WarningPopupComponent, {\r\n height: \"35%\",\r\n width: \"35%\",\r\n autoFocus: false,\r\n data: fileDetails,\r\n });\r\n dialogRef.afterClosed().subscribe((result) => {\r\n this.createRowData();\r\n });\r\n }\r\n\r\n onGridReady(params) {\r\n this.gridApi = params.api;\r\n this.gridApi.sizeColumnsToFit();\r\n this.gridColumnApi = params.columnApi;\r\n this.gridApi.setDomLayout(\"autoHeight\");\r\n }\r\n\r\n setBotList(botlistResult) {\r\n let listOfBots = [];\r\n listOfBots.push({ botConfigId: -1, displayName: \"-Select Bot-\" });\r\n if (this.superAdmin) {\r\n botlistResult.forEach((item) => {\r\n listOfBots.push({\r\n botConfigId: item.botConfigId,\r\n displayName: item.displayName,\r\n });\r\n });\r\n } else {\r\n let botIds = this.utilityService.GetFeaturewiseBotList(\r\n sessionStorage.getItem(\"userBotRoles\"),\"FileUpload\"\r\n );\r\n botlistResult.forEach((item) => {\r\n botIds.forEach((botConfigId) => {\r\n if (botConfigId == item.botConfigId) {\r\n listOfBots.push({\r\n botConfigId: item.botConfigId,\r\n displayName: item.displayName,\r\n });\r\n }\r\n });\r\n });\r\n }\r\n\r\n return listOfBots;\r\n }\r\n\r\n onBotChange(botConfigId) {\r\n if (botConfigId != -1) {\r\n this.botConfigId = botConfigId;\r\n this.showUploadBtn = false;\r\n this.showBrowseBtn = true;\r\n this.createRowData();\r\n } else {\r\n this.showBrowseBtn = false;\r\n }\r\n }\r\n onViewFile(url: string) {\r\n this.imageUrl = url;\r\n }\r\n\r\n onChange(event) {\r\n this.file = event.target.files[0];\r\n this.showUploadBtn = true;\r\n }\r\n\r\n // OnClick of button Upload\r\n onUpload() {\r\n this.fileuploadService\r\n .uploadFiletoServer(this.file, this.botConfigId)\r\n .subscribe(\r\n (res) => {\r\n this.toasterService.success(\"File successfuly uploaded\");\r\n this.showUploadBtn = false;\r\n this.fileChoose.nativeElement.value = \"\";\r\n this.createRowData();\r\n },\r\n (error) => {\r\n this.toasterService.error(\"File upload failed\");\r\n }\r\n );\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvdXRpbGl0eS91dGlsaXR5aG9tZS91dGlsaXR5aG9tZS5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-utilityhome',\r\n templateUrl: './utilityhome.component.html',\r\n styleUrls: ['./utilityhome.component.scss']\r\n})\r\nexport class UtilityHomeComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","export default \".row-fill-available-height {\\n /*height: -webkit-fill-available !important;*/\\n height: calc(-109px + 100vh);\\n overflow: auto;\\n}\\n\\n.menu-container {\\n min-height: 90%;\\n height: 90%;\\n}\\n\\n.menu-container .row {\\n min-height: 100%;\\n}\\n\\n.menu-container .row .col-menu {\\n display: -webkit-inline-box;\\n display: inline-flex;\\n max-width: 50px;\\n}\\n\\n.menu-container .row .col-menu .menu {\\n background: #333333;\\n display: inline-block;\\n white-space: nowrap;\\n width: 50px;\\n -webkit-transition: width 0.5s;\\n transition: width 0.5s;\\n}\\n\\n.menu-container .row .col-menu .menu .item {\\n height: 50px;\\n overflow: hidden;\\n color: #9c9da0;\\n cursor: pointer;\\n outline: 0;\\n}\\n\\n.menu-container .row .col-menu .menu .item:hover, .menu-container .row .col-menu .menu .item:focus, .menu-container .row .col-menu .menu .item.active {\\n background-color: #222;\\n color: #ffffff;\\n border-left: 3px solid #ffE600;\\n}\\n\\n.menu-container .row .col-menu .menu .item:hover .fas, .menu-container .row .col-menu .menu .item:focus .fas, .menu-container .row .col-menu .menu .item.active .fas {\\n color: #ffffff;\\n}\\n\\n.menu-container .row .col-menu .menu .item .fas {\\n margin: 15px;\\n width: 20px;\\n color: #9c9da0;\\n}\\n\\n.menu-container .row .col-menu .menu .item .fas:hover, .menu-container .row .col-menu .menu .item .fas:focus, .menu-container .row .col-menu .menu .item .fas.active {\\n color: #ffffff;\\n}\\n\\n.menu-container .col {\\n padding: 0 !important;\\n margin: 0 !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy91dGlsaXR5L3V0aWxpdHltZW51L0M6XFxVc2Vyc1xcS042MjRRWFxcc291cmNlXFxHaXRcXGN0cC1jYmFhcy1jbGllbnQtcG9ydGFsXFxDQmFhUy5ISUwuQ2xpZW50UG9ydGFsLldlYlxcQ2xpZW50QXBwL3NyY1xcYXBwXFxjb21wb25lbnRzXFx1dGlsaXR5XFx1dGlsaXR5bWVudVxcdXRpbGl0eW1lbnUuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NvbXBvbmVudHMvdXRpbGl0eS91dGlsaXR5bWVudS91dGlsaXR5bWVudS5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQTtFQUNFLDZDQUFBO0VBQ0EsNEJBQUE7RUFDQSxjQUFBO0FDTEY7O0FEUUE7RUFDRSxlQUFBO0VBQ0EsV0FBQTtBQ0xGOztBRE9FO0VBQ0UsZ0JBQUE7QUNMSjs7QURPSTtFQUNFLDJCQUFBO0VBQUEsb0JBQUE7RUFDQSxlQUFBO0FDTE47O0FET007RUFDRSxtQkF4Qkk7RUF5QkoscUJBQUE7RUFDQSxtQkFBQTtFQUNBLFdBQUE7RUFDQSw4QkFBQTtFQUFBLHNCQUFBO0FDTFI7O0FET1E7RUFDRSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSxjQS9CRztFQWdDSCxlQUFBO0VBQ0EsVUFBQTtBQ0xWOztBRE9VO0VBQ0Usc0JBQUE7RUFDQSxjQXBDRztFQXFDSCw4QkFBQTtBQ0xaOztBRE9ZO0VBQ0UsY0F4Q0M7QUNtQ2Y7O0FEU1U7RUFDRSxZQUFBO0VBQ0EsV0FBQTtFQUNBLGNBaERDO0FDeUNiOztBRFNZO0VBQ0UsY0FsREM7QUMyQ2Y7O0FEZUU7RUFDRSxxQkFBQTtFQUNBLG9CQUFBO0FDYkoiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3V0aWxpdHkvdXRpbGl0eW1lbnUvdXRpbGl0eW1lbnUuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIkYmdEZWZhdWx0OiAjMzMzMzMzO1xyXG4kYmdIaWdobGlnaHQ6ICMwMDAwMDA7XHJcbiRjb2xEZWZhdWx0OiAjOWM5ZGEwO1xyXG4kY29sSGlnaGxpZ2h0OiAjZmZmZmZmO1xyXG4kYmdMZWZ0Qm9yZGVyOiAjZmZFNjAwO1xyXG5cclxuLnJvdy1maWxsLWF2YWlsYWJsZS1oZWlnaHQge1xyXG4gIC8qaGVpZ2h0OiAtd2Via2l0LWZpbGwtYXZhaWxhYmxlICFpbXBvcnRhbnQ7Ki9cclxuICBoZWlnaHQ6IGNhbGMoLTEwOXB4ICsgMTAwdmgpO1xyXG4gIG92ZXJmbG93OiBhdXRvO1xyXG59XHJcblxyXG4ubWVudS1jb250YWluZXIge1xyXG4gIG1pbi1oZWlnaHQ6IDkwJTtcclxuICBoZWlnaHQ6IDkwJTtcclxuXHJcbiAgLnJvdyB7XHJcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xyXG5cclxuICAgIC5jb2wtbWVudSB7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gICAgICBtYXgtd2lkdGg6IDUwcHg7XHJcblxyXG4gICAgICAubWVudSB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogJGJnRGVmYXVsdDtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgICAgICB3aWR0aDogNTBweDtcclxuICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAuNXM7XHJcblxyXG4gICAgICAgIC5pdGVtIHtcclxuICAgICAgICAgIGhlaWdodDogNTBweDtcclxuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgICBjb2xvcjogJGNvbERlZmF1bHQ7XHJcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgICBvdXRsaW5lOiAwO1xyXG5cclxuICAgICAgICAgICY6aG92ZXIsICY6Zm9jdXMsICYuYWN0aXZlIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzIyMjtcclxuICAgICAgICAgICAgY29sb3I6ICRjb2xIaWdobGlnaHQ7XHJcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgJGJnTGVmdEJvcmRlcjtcclxuXHJcbiAgICAgICAgICAgIC5mYXMge1xyXG4gICAgICAgICAgICAgIGNvbG9yOiAkY29sSGlnaGxpZ2h0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgLmZhcyB7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMTVweDtcclxuICAgICAgICAgICAgd2lkdGg6IDIwcHg7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkY29sRGVmYXVsdDtcclxuXHJcbiAgICAgICAgICAgICY6aG92ZXIsICY6Zm9jdXMsICYuYWN0aXZlIHtcclxuICAgICAgICAgICAgICBjb2xvcjogJGNvbEhpZ2hsaWdodDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmNvbCB7XHJcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XHJcbiAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcclxuICB9XHJcbn1cclxuIiwiLnJvdy1maWxsLWF2YWlsYWJsZS1oZWlnaHQge1xuICAvKmhlaWdodDogLXdlYmtpdC1maWxsLWF2YWlsYWJsZSAhaW1wb3J0YW50OyovXG4gIGhlaWdodDogY2FsYygtMTA5cHggKyAxMDB2aCk7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4ubWVudS1jb250YWluZXIge1xuICBtaW4taGVpZ2h0OiA5MCU7XG4gIGhlaWdodDogOTAlO1xufVxuLm1lbnUtY29udGFpbmVyIC5yb3cge1xuICBtaW4taGVpZ2h0OiAxMDAlO1xufVxuLm1lbnUtY29udGFpbmVyIC5yb3cgLmNvbC1tZW51IHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIG1heC13aWR0aDogNTBweDtcbn1cbi5tZW51LWNvbnRhaW5lciAucm93IC5jb2wtbWVudSAubWVudSB7XG4gIGJhY2tncm91bmQ6ICMzMzMzMzM7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgd2lkdGg6IDUwcHg7XG4gIHRyYW5zaXRpb246IHdpZHRoIDAuNXM7XG59XG4ubWVudS1jb250YWluZXIgLnJvdyAuY29sLW1lbnUgLm1lbnUgLml0ZW0ge1xuICBoZWlnaHQ6IDUwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNvbG9yOiAjOWM5ZGEwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG91dGxpbmU6IDA7XG59XG4ubWVudS1jb250YWluZXIgLnJvdyAuY29sLW1lbnUgLm1lbnUgLml0ZW06aG92ZXIsIC5tZW51LWNvbnRhaW5lciAucm93IC5jb2wtbWVudSAubWVudSAuaXRlbTpmb2N1cywgLm1lbnUtY29udGFpbmVyIC5yb3cgLmNvbC1tZW51IC5tZW51IC5pdGVtLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMjI7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBib3JkZXItbGVmdDogM3B4IHNvbGlkICNmZkU2MDA7XG59XG4ubWVudS1jb250YWluZXIgLnJvdyAuY29sLW1lbnUgLm1lbnUgLml0ZW06aG92ZXIgLmZhcywgLm1lbnUtY29udGFpbmVyIC5yb3cgLmNvbC1tZW51IC5tZW51IC5pdGVtOmZvY3VzIC5mYXMsIC5tZW51LWNvbnRhaW5lciAucm93IC5jb2wtbWVudSAubWVudSAuaXRlbS5hY3RpdmUgLmZhcyB7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLm1lbnUtY29udGFpbmVyIC5yb3cgLmNvbC1tZW51IC5tZW51IC5pdGVtIC5mYXMge1xuICBtYXJnaW46IDE1cHg7XG4gIHdpZHRoOiAyMHB4O1xuICBjb2xvcjogIzljOWRhMDtcbn1cbi5tZW51LWNvbnRhaW5lciAucm93IC5jb2wtbWVudSAubWVudSAuaXRlbSAuZmFzOmhvdmVyLCAubWVudS1jb250YWluZXIgLnJvdyAuY29sLW1lbnUgLm1lbnUgLml0ZW0gLmZhczpmb2N1cywgLm1lbnUtY29udGFpbmVyIC5yb3cgLmNvbC1tZW51IC5tZW51IC5pdGVtIC5mYXMuYWN0aXZlIHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4ubWVudS1jb250YWluZXIgLmNvbCB7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG59Il19 */\"","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { UtilityService } from 'src/app/services/shared/utility/utility.service';\r\nimport { ConfigurationSettings } from 'src/app/models/configuration.settings';\r\nimport { ToasterService } from '../../../services/shared/toaster/toaster.service';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-utilitymenu',\r\n templateUrl: './utilitymenu.component.html',\r\n styleUrls: ['./utilitymenu.component.scss']\r\n})\r\nexport class UtilitymenuComponent implements OnInit {\r\n\r\n constructor(private httpClient: HttpClient,\r\n private utilityService: UtilityService,\r\n ) { }\r\n\r\n userRoles: string[] = [];\r\n canDoFileUpload: boolean = false;\r\n canDoProactiveNotification: boolean = false;\r\n canDoBroadcast:boolean=false;\r\n superAdmin: boolean = false;\r\n\r\n ngOnInit() {\r\n this.userRoles = sessionStorage.getItem('userRoles') ? sessionStorage.getItem('userRoles').split(',') : [];\r\n let superAdminUser = this.userRoles.find(ob => ob.toLowerCase() === 'superadmin' || ob.toLowerCase() === 'super admin');\r\n if (superAdminUser) {\r\n this.superAdmin = true;\r\n } \r\n this.canDoFileUpload = this.utilityService.ShowUtilityMenuItem(sessionStorage.getItem('userBotRoles'),\"FileUpload\");\r\n this.canDoProactiveNotification = this.utilityService.ShowUtilityMenuItem(sessionStorage.getItem('userBotRoles'),\"ProactiveNotification\");\r\n this.canDoBroadcast = this.utilityService.ShowUtilityMenuItem(sessionStorage.getItem('userBotRoles'),\"Broadcast\");\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { CanActivate, CanActivateChild, CanLoad, Route, UrlSegment, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree, Router } from '@angular/router';\r\nimport { Observable, concat } from 'rxjs';\r\nimport { DOCUMENT, Location } from '@angular/common';\r\nimport { IUserRoleDetails } from 'src/app/models/user-role-details';\r\nimport { IUserDetails } from 'src/app/models/user';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { AuthenticationService } from 'src/app/services/core/authentication/authentication.service';\r\nimport { ConfigurationSettings } from 'src/app/models/configuration.settings';\r\nimport { UserService } from 'src/app/services/core/user/user.service';\r\nimport { DataService } from 'src/app/services/shared/data/data.service';\r\nimport { CommunicationService } from 'src/app/services/shared/communication/communication.service';\r\nimport { ConnectedStatusService } from 'src/app/services/shared/connection-status/connected-status.service';\r\nimport { MatDialog } from '@angular/material';\r\nimport { PrivacyStatementComponent } from '../../components/shared/privacy-statement/privacy-statement.component';\r\nimport { PrivacyacceptanceService } from '../../services/shared/privacyacceptance/privacyacceptance.service';\r\nimport * as Msal from 'msal';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthGuard implements CanActivate, CanActivateChild, CanLoad {\r\n private path: string;\r\n public tokenValue: any;\r\n private IdaasConfig: any;\r\n private AdAuthConfig: any;\r\n private locationUrl: any;\r\n public hilUrl: string;\r\n public userRoleDetails: IUserRoleDetails[] = [];\r\n public userDetails: IUserDetails;\r\n public msalInstance: any;\r\n constructor(\r\n private router: Router,\r\n private authenticationService: AuthenticationService,\r\n @Inject(DOCUMENT) private document: Document,\r\n private httpClient: HttpClient,\r\n private configurationSettings: ConfigurationSettings,\r\n private location: Location,\r\n private userService: UserService,\r\n private dataService: DataService,\r\n private communication: CommunicationService,\r\n private connectedStatusService: ConnectedStatusService,\r\n private dialogPrivacyStatement: MatDialog,\r\n private privacyacceptanceService: PrivacyacceptanceService,\r\n ) { }\r\n canActivate(\r\n next: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot): Observable | Promise | boolean | UrlTree {\r\n let isActivated = this.isAuthenticatedUser(next);\r\n return isActivated;\r\n }\r\n canActivateChild(\r\n next: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot): Observable | Promise | boolean | UrlTree {\r\n let isActivated = this.isAuthenticatedUser(next);\r\n return isActivated;\r\n }\r\n canLoad(\r\n route: Route,\r\n segments: UrlSegment[]): Observable | Promise | boolean {\r\n return true;\r\n }\r\n\r\n private isAuthenticatedUser(route: ActivatedRouteSnapshot) {\r\n this.locationUrl = this.location;\r\n this.configurationSettings.hostUrl = this.locationUrl._platformLocation.location.origin;\r\n\r\n if (!this.configurationSettings.hilUrl || this.configurationSettings.hilUrl == '') {\r\n this.configurationSettings.hilUrl = sessionStorage.getItem('hilUrl');\r\n }\r\n\r\n //always authenticate when user navigates to Login component (\"\")\r\n if (route.routeConfig.path == \"\") {\r\n sessionStorage.clear();\r\n localStorage.clear();\r\n //this.communication.deleteHubConnection();\r\n }\r\n\r\n //get token from sessionStorage\r\n const token = sessionStorage.getItem('access_token');\r\n const code = sessionStorage.getItem('code');\r\n\r\n if (!sessionStorage.getItem('path')) {\r\n sessionStorage.setItem('path', route.routeConfig.path);\r\n\r\n }\r\n\r\n if (token) {\r\n this.dataService.sendUsername(localStorage.getItem('userName'));\r\n this.privacyacceptanceService.sendPrivacyAcceptance(false);\r\n return true;\r\n }\r\n \r\n else {\r\n this.authenticationService.getAdAuthConfiguration()\r\n .subscribe(\r\n res => {\r\n this.AdAuthConfig = res;\r\n if (this.AdAuthConfig) {\r\n sessionStorage.setItem('hilUrl', this.AdAuthConfig[\"HILURL\"]);//store the hilUrl\r\n var adClientId = this.AdAuthConfig[\"AdClientId\"];\r\n var adAuthority = this.AdAuthConfig[\"AdAuthority\"]; \r\n this.authenticateADUser(adClientId, adAuthority);\r\n }\r\n },\r\n (error) => {\r\n }\r\n )\r\n }\r\n }\r\n private authenticateADUser(adClientId, adAuthority) {\r\n const msalConfig = {\r\n auth: {\r\n clientId: adClientId,\r\n authority: 'https://login.microsoftonline.com/' + adAuthority\r\n },\r\n };\r\n this.msalInstance = new Msal.UserAgentApplication(msalConfig);\r\n this.msalInstance.handleRedirectCallback((error, response) => {\r\n // handle redirect response or error\r\n console.log(error);\r\n });\r\n\r\n let loginRequest = {\r\n scopes: [\"user.read\", 'openid', 'profile']\r\n };\r\n this.msalInstance.loginPopup(loginRequest)\r\n .then(response => {\r\n sessionStorage.setItem('access_token', response.idToken.rawIdToken);\r\n this.path = sessionStorage.getItem('path');\r\n this.SetAuthenticatedUser();\r\n })\r\n .catch(err => {\r\n // handle error\r\n });\r\n }\r\n private setUser() {\r\n this.userService.getLoggedInUserRoles()\r\n .subscribe(\r\n result => {\r\n if (result) {\r\n this.userRoleDetails = result;\r\n sessionStorage.setItem('userBotRoles', JSON.stringify(this.userRoleDetails));\r\n sessionStorage.setItem('userEmailId', this.userRoleDetails[0].username);\r\n sessionStorage.setItem('userName', this.userRoleDetails[0].firstname);\r\n localStorage.setItem('userFullName', this.userRoleDetails[0].firstname + \" \" + this.userRoleDetails[0].lastname);\r\n this.dataService.sendUsername(this.userRoleDetails[0].firstname);\r\n let agent = this.userRoleDetails.filter(x => x.role.toLowerCase() === 'agent');\r\n let resultArray = this.userRoleDetails.map(x => x.role).join(\",\");\r\n sessionStorage.setItem('userRoles', resultArray.toString());\r\n this.dataService.sendUsername(sessionStorage.getItem('userName'));\r\n if (agent && agent.length > 0) {//if user type is Agent then create hubconnection\r\n this.configurationSettings.userRole = 'Agent';\r\n if (!localStorage.getItem(\"agentConnected\") || localStorage.getItem(\"agentConnected\") != 'true') {\r\n this.communication.CreateAgentConnection(sessionStorage.getItem('userEmailId'));\r\n }\r\n }\r\n this.router.navigate(['/home']);\r\n }\r\n },\r\n (error) => {\r\n });\r\n }\r\n\r\n private SetAuthenticatedUser() {\r\n this.userService.getLoggedInUserRoles()\r\n .subscribe(\r\n result => {\r\n if (result) {\r\n this.userRoleDetails = result;\r\n sessionStorage.setItem('userBotRoles', JSON.stringify(this.userRoleDetails));\r\n localStorage.setItem('userEmailId', this.userRoleDetails[0].username);\r\n localStorage.setItem('userName', this.userRoleDetails[0].firstname);\r\n localStorage.setItem('userFullName', this.userRoleDetails[0].firstname + \" \" + this.userRoleDetails[0].lastname);\r\n\r\n sessionStorage.setItem('userEmailId', this.userRoleDetails[0].username);\r\n sessionStorage.setItem('userName', this.userRoleDetails[0].firstname);\r\n sessionStorage.setItem('userFullName', this.userRoleDetails[0].firstname + \" \" + this.userRoleDetails[0].lastname);\r\n this.dataService.sendUsername(this.userRoleDetails[0].firstname);\r\n let agent = this.userRoleDetails.filter(x => x.role.toLowerCase() === 'agent');\r\n let seniorAgent = this.userRoleDetails.filter(ob => ob.role.toLowerCase() === 'senioragent' || ob.role.toLowerCase() === 'senior agent');\r\n let chatManager = this.userRoleDetails.filter(ob => ob.role.toLowerCase() === 'chatmanager' || ob.role.toLowerCase() === 'chat manager');\r\n let resultArray = this.userRoleDetails.map(x => x.role).join(\",\");\r\n sessionStorage.setItem('userRoles', resultArray.toString());\r\n this.dataService.sendUsername(sessionStorage.getItem('userName'));\r\n if (JSON.parse(sessionStorage.getItem('privacyStatementFlag')) == null && !this.userRoleDetails[0].privacyStatementFlag) {\r\n if ((agent && agent.length > 0) || (seniorAgent && seniorAgent.length > 0)) {//if user type is Agent then create hubconnection\r\n this.configurationSettings.userRole = agent && agent.length > 0 ? 'Agent' : 'Senior Agent';\r\n if (!localStorage.getItem(\"agentConnected\") || localStorage.getItem(\"agentConnected\") != 'true') {\r\n this.communication.CreateAgentConnection(localStorage.getItem('userEmailId'));\r\n }\r\n }\r\n\r\n if ((chatManager && chatManager.length > 0) ) {//if user type is Chat Manager then create hubconnection\r\n this.configurationSettings.userRole = 'Chat Manager' ;\r\n if (!localStorage.getItem(\"agentConnected\") || localStorage.getItem(\"agentConnected\") != 'true') {\r\n this.communication.CreateAgentConnection(localStorage.getItem('userEmailId'));\r\n }\r\n }\r\n\r\n }\r\n\r\n this.router.navigate(['/home']);\r\n\r\n if (this.userRoleDetails[0].privacyStatementFlag) {\r\n this.showPrivacyStatement();\r\n } else {\r\n sessionStorage.setItem('privacyStatementFlag', \"false\");\r\n this.privacyacceptanceService.sendPrivacyAcceptance(false);\r\n }\r\n }\r\n },\r\n (error) => {\r\n console.log(error);\r\n })\r\n }\r\n\r\n showPrivacyStatement() {\r\n let dialogRef = this.dialogPrivacyStatement.open(PrivacyStatementComponent, {\r\n height: '75%',\r\n width: '80%',\r\n autoFocus: false,\r\n data: null,\r\n disableClose: true\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n })\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { AuthenticationService } from 'src/app/services/core/authentication/authentication.service';\r\nimport { ConfigurationSettings } from 'src/app/models/configuration.settings';\r\n\r\n@Injectable()\r\nexport class AuthenticationInterceptor implements HttpInterceptor {\r\n token:string;\r\n constructor(private authenticationService: AuthenticationService, private configurationSettings: ConfigurationSettings) { }\r\n\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n //add authorization header with jwt token if available\r\n if(this.configurationSettings.hilUrl && request.url.toLowerCase().startsWith(this.configurationSettings.hilUrl.toLowerCase()))\r\n {\r\n this.token = localStorage.getItem('accessToken');\r\n }\r\n else\r\n {\r\n this.token = sessionStorage.getItem('access_token');\r\n } \r\n if (this.token) {\r\n request = request.clone({\r\n setHeaders: {\r\n Authorization: `Bearer ${this.token}`\r\n }\r\n });\r\n }\r\n return next.handle(request);\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { Router } from '@angular/router';\r\nimport { ToasterService } from '../../services/shared/toaster/toaster.service';\r\nimport { MatDialog } from '@angular/material';\r\nimport { WarningPopupComponent } from 'src/app/components/shared/warning-popup/warning-popup.component';\r\nimport { ConfigurationSettings } from 'src/app/models/configuration.settings';\r\n\r\n\r\n@Injectable()\r\nexport class ErrorInterceptor implements HttpInterceptor {\r\n public userRoles: string[] = [];\r\n constructor(private toasterService: ToasterService, private router: Router, private dialogWarning: MatDialog, private configurationSettings: ConfigurationSettings) {\r\n\r\n }\r\n\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n return next.handle(request).pipe(catchError(err => {\r\n console.log(err);\r\n if (err.url && this.configurationSettings.hilUrl && err.url.toLowerCase().startsWith(this.configurationSettings.hilUrl.toLowerCase())) {\r\n return throwError(err);\r\n }\r\n if (err.status === 401) { \r\n if (err.error && err.error == \"Error: Invalid Access Token\") {\r\n this.openWarning('expiredToken');\r\n }\r\n else\r\n this.router.navigate(['/error']);\r\n }\r\n if (err.error) {\r\n if (err.error.errors && err.error.errors.botId) {\r\n this.toasterService.error(err.error.errors.botId);\r\n }\r\n else if (err.error.value && typeof (err.error.value) == 'string' && err.error.value.startsWith(\"Error:\")) {\r\n this.toasterService.error(err.error.value);\r\n }\r\n else if (typeof (err.error) == 'string' && err.error.startsWith(\"Error:\")) {\r\n this.toasterService.error(err.error);\r\n } \r\n const error = err.error.message || err.statusText;\r\n return throwError(error);\r\n }\r\n }))\r\n }\r\n openWarning(value: any) {\r\n let dialogRef = this.dialogWarning.open(WarningPopupComponent, {\r\n height: '35%',\r\n width: '35%',\r\n autoFocus: false,\r\n data: value\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n })\r\n }\r\n}\r\n","export class Alert {\r\n type: AlertType;\r\n message: string;\r\n alertId: string;\r\n keepAfterRouteChange: boolean;\r\n\r\n constructor(init?: Partial) {\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\nexport enum AlertType {\r\n Success,\r\n Error,\r\n Info,\r\n Warning\r\n}\r\n","export class ConfigurationSettings { \r\n public hostUrl = ''; \r\n public hilUrl = ''; \r\n public userRole: string = ''; \r\n public idaas_response_type = 'code'; \r\n public idaas_grant_type = 'authorization_code'; \r\n public user_api_endpoint = this.hostUrl + '/api/User';\r\n public auth_api_endpoint = this.hostUrl + '/api/Token';\r\n public botregistration_api_endpoint = this.hostUrl + '/api/BotRegistration';\r\n public proactivenotification_api_endpoint = this.hostUrl + '/api/ProactiveNotification';\r\n public botconfiguration_api_endpoint = this.hostUrl + '/api/botconfiguration';\r\n public userfileUpload_api_endpoint = this.hostUrl + '/api/UserFileUpload';\r\n public broadcast_api_endpoint = this.hostUrl + '/api/Broadcast';\r\n public agent_history_api_endpoint=this.hostUrl+'/api/AgentSession';\r\n}\r\n","export class GroupChatActiveAgents{ \r\n agentFullName : string[];\r\n agentEmailId : string[];\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'nameinitials'\r\n})\r\nexport class NameinitialsPipe implements PipeTransform {\r\n\r\n transform(value: any, ...args: any[]): any {\r\n var fullName = value;\r\n var matches = fullName.match(/\\b(\\w)/g);\r\n var acronym = matches ? matches.join('') : ' ';\r\n return acronym.toUpperCase();\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams } from \"@angular/common/http\";\r\nimport { Observable } from \"rxjs\";\r\nimport { ConfigurationSettings } from \"src/app/models/configuration.settings\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class AgentHistoryService {\r\n\r\n constructor(\r\n private http : HttpClient,\r\n private configurationSettings: ConfigurationSettings\r\n ) { }\r\n //Get all ActiveAgents\r\n GetAllActiveAgents(botConfigId: number): Observable {\r\n return this.http.get(\r\n this.configurationSettings.agent_history_api_endpoint +\r\n \"/GetActiveAgentDetails/\" + botConfigId\r\n );\r\n };\r\n GetHistoryAgents(botConfigId: number, date: string): Observable {\r\n return this.http.get(\r\n this.configurationSettings.agent_history_api_endpoint +\r\n \"/GetHistoryAgentDetails/\" + botConfigId + \"/\" + date\r\n );\r\n };\r\n GetAgentChatHistoryDetails(botConfigId: number, selectedAgents: string, startDate: string, endDate: string): Observable {\r\n const params = new HttpParams()\r\n .set('botConfigId', botConfigId.toString())\r\n .set('selectedAgents', selectedAgents)\r\n .set('startDate', startDate)\r\n .set('endDate', endDate);\r\n\r\n return this.http.get(\r\n `${this.configurationSettings.agent_history_api_endpoint}/GetAgentChatHistoryDetails`, { params }\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpHeaders, HttpClient, HttpParams, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { ConfigurationSettings } from 'src/app/models/configuration.settings';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthenticationService {\r\n\r\n public tokenValue: any;\r\n private httpOptions = {\r\n headers: new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json' })\r\n };\r\n constructor(private http: HttpClient,\r\n private configurationSettings: ConfigurationSettings) { }\r\n\r\n login() { }\r\n\r\n logout() {\r\n // remove user from local storage and set current user to null\r\n sessionStorage.removeItem('access_token');\r\n }\r\n\r\n\r\n getIdaasConfiguration(): Observable {\r\n return this.http.get(this.configurationSettings.auth_api_endpoint + '/GetIdaasConfiguration');\r\n }\r\n getAdAuthConfiguration(): Observable {\r\n return this.http.get(this.configurationSettings.auth_api_endpoint + '/GetAdAuthConfiguration');\r\n }\r\n\r\n getAccessToken(code: string): Observable {\r\n let params = new HttpParams();\r\n params = params.set('code', code);\r\n return this.http.post(this.configurationSettings.auth_api_endpoint + '/GetAccessToken', params);\r\n }\r\n\r\n handleError(error: HttpErrorResponse) {\r\n let errorMessage = `Error Code: ${error.status}\\nMessage: ${error.message}`;\r\n return throwError(errorMessage)\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { INotifyResponse } from 'src/app/models/notify-response';\r\nimport { INotifyRequest } from 'src/app/models/notify-response';\r\nimport { ConfigurationSettings } from 'src/app/models/configuration.settings';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProactiveBotNotificationService {\r\n\r\n constructor(private http: HttpClient,\r\n private configurationSettings: ConfigurationSettings) { }\r\n\r\n initiateProactiveNotification(notifyRequest: INotifyRequest): Observable {\r\n return this.http.post(this.configurationSettings.proactivenotification_api_endpoint + '/InitiateProactiveNotification', notifyRequest);\r\n };\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { IBotRegistration } from 'src/app/models/bot-registration';\r\nimport { ConfigurationSettings } from 'src/app/models/configuration.settings';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { IHilAvaialabilityConfig } from 'src/app/models/hil-availability';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BotRegistrationService {\r\n\r\n constructor(private http: HttpClient,\r\n private configurationSettings: ConfigurationSettings) { }\r\n\r\n getRegisteredBots(): Observable {\r\n return this.http.get(this.configurationSettings.botregistration_api_endpoint + '/GetAccessedBots');\r\n }\r\n\r\n getBotConfigData(botId: any): Observable {\r\n return this.http.get(this.configurationSettings.botregistration_api_endpoint + '/GetBotConfigData?botId=' + botId);\r\n }\r\n\r\n getRegisteredBotDetails(botRegistrationId: number): Observable {\r\n return this.http.get(this.configurationSettings.botregistration_api_endpoint + '/GetRegisteredBotDetails?botRegistrationId=' + botRegistrationId);\r\n }\r\n\r\n getBotRegistrationConfigurations(): Observable {\r\n return this.http.get(this.configurationSettings.botregistration_api_endpoint + '/GetBotRegistrationConfigurations');\r\n }\r\n\r\n addUpdateBotRegistration(botRegistration: IBotRegistration): Observable {\r\n return this.http.post(this.configurationSettings.botregistration_api_endpoint + '/PostBotRegistration', botRegistration);\r\n\r\n }\r\n\r\n deleteBotRegistration(botRegistration: any): Observable {\r\n return this.http.delete(this.configurationSettings.botregistration_api_endpoint + \"/DeleteRegisteredBot?botRegistrationId=\" + botRegistration.data.botRegistrationId);\r\n }\r\n\r\n addUpdateBotHilAavaialability(botHilAvailabilityConfig: IHilAvaialabilityConfig): Observable {\r\n return this.http.post(this.configurationSettings.botregistration_api_endpoint + '/UpdateHilAvailabilitySettings', botHilAvailabilityConfig);\r\n }\r\n\r\n getBotHilAavaialabilityConfig(id: number): Observable {\r\n return this.http.get(this.configurationSettings.botregistration_api_endpoint + '/GetHilAvailabilitySettings?botConfigId=' + id);\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { IBroadcast } from \"src/app/models/broadcast\";\r\nimport { ConfigurationSettings } from \"src/app/models/configuration.settings\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class BroadcastService {\r\n constructor(\r\n private http: HttpClient,\r\n private configurationSettings: ConfigurationSettings\r\n ) {}\r\n //Create / Update broadcast\r\n CreateBroadcast(broadcast: IBroadcast): Observable {\r\n return this.http.post(\r\n this.configurationSettings.broadcast_api_endpoint + \"/CreateBroadcast\",\r\n broadcast\r\n );\r\n }\r\n //Activate Broadcast\r\n ActivateBroadcast(broadcastId: number): Observable {\r\n return this.http.post(\r\n this.configurationSettings.broadcast_api_endpoint + \"/ActivateBroadcast\",\r\n broadcastId\r\n );\r\n }\r\n //Activate Broadcast\r\n DectivateBroadcast(broadcastId: number): Observable {\r\n return this.http.post(\r\n this.configurationSettings.broadcast_api_endpoint + \"/DectivateBroadcast\",\r\n broadcastId\r\n );\r\n }\r\n //Get all Broadcasts\r\n GetAllBroadcasts(botConfigId: number): Observable {\r\n return this.http.get(\r\n this.configurationSettings.broadcast_api_endpoint +\r\n \"/GetAllBroadcasts?botConfigId=\" +\r\n botConfigId\r\n );\r\n }\r\n //Get Broadcast by broadcastId\r\n GetBroadcast(broadcastId: number): Observable {\r\n return this.http.get(\r\n this.configurationSettings.broadcast_api_endpoint +\r\n \"/GetBroadcast?broadcastId=\" +\r\n broadcastId\r\n );\r\n }\r\n //Schedule a Broadcast\r\n ScheduleBroadcast(broadcastId: number): Observable {\r\n return this.http.post(\r\n this.configurationSettings.broadcast_api_endpoint + \"/ScheduleBroadcast\",\r\n broadcastId\r\n );\r\n }\r\n\r\n //InitiateBroadcast\r\n TriggerBroadcast(broadcastId: number): Observable {\r\n return this.http.post(\r\n this.configurationSettings.broadcast_api_endpoint + \"/TriggerBroadcast\",\r\n broadcastId\r\n );\r\n }\r\n\r\n //Get All BotAccessed Users\r\n GetAllBotAccessedUsers(botConfigId: number): Observable {\r\n return this.http.get(\r\n this.configurationSettings.broadcast_api_endpoint +\r\n \"/GetAllBotAccessedUsers?botConfigId=\" +\r\n botConfigId\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpHeaders, HttpClient, HttpParams } from '@angular/common/http';\r\nimport { ConfigurationSettings } from 'src/app/models/configuration.settings';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TokenService {\r\n\r\n private httpOptions = {\r\n headers: new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json' })\r\n }\r\n constructor(private http: HttpClient,\r\n private configurationSettings: ConfigurationSettings) { \r\n\r\n }\r\n GetMiddlewareAccessToken(hilCode:any): Observable {\r\n let params = new HttpParams();\r\n params = params.set('grant_key', hilCode);\r\n params = params.set('grant_type','password');\r\n params = params.set('username',localStorage.getItem('userEmailId'));\r\n return this.http.post(this.configurationSettings.hilUrl + '/token', params);\r\n // xhr.send('grant_type=password' + '&username=' + userId + '&grant_key=' + accesstoken);\r\n }\r\n\r\n getRefreshToken(): Observable {\r\n let params = new HttpParams();\r\n params = params.set('token', localStorage.getItem('accessToken'));\r\n params = params.set('refreshToken',localStorage.getItem('refreshToken')); \r\n return this.http.post(this.configurationSettings.hilUrl + '/refreshToken', params);\r\n // xhr.send('grant_type=password' + '&username=' + userId + '&grant_key=' + accesstoken);\r\n }\r\n GetHumanHandOffToken(username: string): Observable {\r\n let params = new HttpParams();\r\n params = params.set('username', username);\r\n return this.http.post(this.configurationSettings.auth_api_endpoint + '/GetHumanHandOffToken', params);\r\n\r\n \r\n }\r\n \r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { IUserManagement, IUserRoleDetails } from 'src/app/models/user-role-details';\r\nimport { ConfigurationSettings } from 'src/app/models/configuration.settings';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { IUserDetails } from 'src/app/models/user';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UserService {\r\n\r\n private httpOptions = {\r\n headers: new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json' })\r\n };\r\n constructor(private http: HttpClient,\r\n private configurationSettings: ConfigurationSettings) { }\r\n\r\n getRoles(): Observable {\r\n return this.http.get(this.configurationSettings.user_api_endpoint + '/GetRoles');\r\n //.pipe(catchError(this.handleError));\r\n }\r\n\r\n addUserRoles(userBotRoles: IUserRoleDetails[]): Observable {\r\n return this.http.post(this.configurationSettings.user_api_endpoint + '/PostUserBotRoles', userBotRoles);\r\n //.pipe(catchError(this.handleError));\r\n }\r\n\r\n deleteUserRole(userBotRole: IUserRoleDetails): Observable {\r\n return this.http.post(this.configurationSettings.user_api_endpoint + '/DeleteUserRole', userBotRole);\r\n }\r\n\r\n getAllUserRoles(botConfigId: number): Observable {\r\n return this.http.get(this.configurationSettings.user_api_endpoint + \"/GetUserRoles?botConfigId=\" + botConfigId);\r\n }\r\n\r\n getLoggedInUserRoles(): Observable {\r\n return this.http.get(this.configurationSettings.user_api_endpoint + \"/GetLoggedInUserRoles\");\r\n }\r\n\r\n getMachingUsers(UserManagement: IUserManagement): Observable {\r\n return this.http.post(this.configurationSettings.user_api_endpoint + \"/GetMatchingUsers\", UserManagement);\r\n }\r\n\r\n getLoggedInUserDetails(): Observable {\r\n return this.http.get(this.configurationSettings.user_api_endpoint + \"/GetLoggedInUserDetails\");\r\n }\r\n\r\n addUpdateUserRegistration(user: IUserDetails): Observable {\r\n return this.http.post(this.configurationSettings.user_api_endpoint + '/AddUpdateUser', user);\r\n }\r\n\r\n getAllUsers(): Observable {\r\n return this.http.get(this.configurationSettings.user_api_endpoint + \"/GetAllUsers\");\r\n }\r\n\r\n deleteUser(user: any): Observable {\r\n return this.http.delete(this.configurationSettings.user_api_endpoint + \"/DeleteUser?userId=\" + user.data.id);\r\n }\r\n\r\n setUserPrivacyAcceptance(): Observable {\r\n return this.http.post(this.configurationSettings.user_api_endpoint + '/UpdatePrivacyStatement', null);\r\n }\r\n\r\n getAllActiveAgents(botConfigId: number, associatedBotConfigId:number): Observable {\r\n let params = new HttpParams()\r\n .set('botConfigId', botConfigId.toString())\r\n .set('associatedBotConfigId', associatedBotConfigId.toString());\r\n const url = this.configurationSettings.hilUrl + '/GetMatchingActiveAgents';\r\n return this.http.get(url, { params });\r\n //return this.http.get(this.configurationSettings.hilUrl + \"/GetMatchingActiveAgents?botConfigId=\" + botConfigId);\r\n }\r\n\r\n getTerminationMsg(botConfigId: number): Observable {\r\n return this.http.get(this.configurationSettings.hilUrl + \"/GetTerminationMSg?botConfigId=\" + botConfigId);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HubConnection, HubConnectionBuilder } from '@microsoft/signalr';\r\nimport { IConversation } from 'src/app/models/iconversation';\r\nimport { ConfigurationSettings } from 'src/app/models/configuration.settings';\r\nimport { TokenService } from '../../core/token/token.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Observable } from 'rxjs';\r\nimport { of } from 'rxjs';\r\nimport { DataService } from 'src/app/services/shared/data/data.service';\r\nimport { ToasterService } from '../../../services/shared/toaster/toaster.service';\r\nimport { ConnectedStatusService } from '../connection-status/connected-status.service';\r\nimport { Router } from '@angular/router';\r\nimport * as signalR from '@microsoft/signalr';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CommunicationService {\r\n\r\n private _hubConnection: HubConnection;\r\n public _connectionStatus: boolean;\r\n public connectedStatus: boolean = false;\r\n\r\n master = 'Master';\r\n agentNickName: string;\r\n agentLoginId: string;\r\n conversations = [] as Array;\r\n hilToken: string;\r\n\r\n constructor(private configurationSettings: ConfigurationSettings,\r\n private dataService: DataService,\r\n private tokenService: TokenService,\r\n private toastr: ToastrService,\r\n private toasterService: ToasterService,\r\n private connectedStatusService: ConnectedStatusService,\r\n private router: Router) {\r\n }\r\n\r\n public SetHubConnection(hubCon: HubConnection) {\r\n this._hubConnection = hubCon;\r\n }\r\n\r\n public GetHubConnection(): HubConnection {\r\n return this._hubConnection;\r\n }\r\n\r\n public CreateHubConnection(reconnect: boolean) {\r\n if (!reconnect) {\r\n localStorage.removeItem('conversations');\r\n localStorage.removeItem('connectedBots');\r\n }\r\n this._hubConnection = new HubConnectionBuilder()\r\n .withUrl(this.configurationSettings.hilUrl + \"/chathub\", {\r\n accessTokenFactory: function () {\r\n return localStorage.getItem('accessToken');\r\n }\r\n })\r\n .configureLogging(signalR.LogLevel.Debug)\r\n .build();\r\n this._hubConnection\r\n .start()\r\n .then(() => this.agentConnect(reconnect))\r\n .catch(err => this.changeConnectedStatus()\r\n );\r\n this._hubConnection.serverTimeoutInMilliseconds = 1000 * 60 * 500;\r\n this.agentLoginId = localStorage.getItem(\"userEmailId\");//Get Agent Name\r\n\r\n this._hubConnection.on(\"onAgentConnected\", (nickName: string) => {\r\n\r\n this.connectedStatus = true;//Set Agent connection status as true\r\n this.agentNickName = nickName;\r\n this._connectionStatus = true;\r\n this.connectedStatusService.sendAgentConnectedStatus(true);\r\n localStorage.setItem(\"agentConnected\", \"true\");\r\n });\r\n }\r\n\r\n changeConnectedStatus() {\r\n this._connectionStatus = false;\r\n this.connectedStatusService.sendAgentConnectedStatus(false);\r\n this.toasterService.error(\"Error while establishing connection\")\r\n }\r\n\r\n public CreateAgentConnection(userEmailId): void {\r\n this.tokenService.GetHumanHandOffToken(userEmailId)\r\n .subscribe(\r\n res => {\r\n this.hilToken = res.value;\r\n this.tokenService.GetMiddlewareAccessToken(this.hilToken)\r\n .subscribe(\r\n res => {\r\n let objToken = res;\r\n localStorage.setItem('accessToken', objToken.token);\r\n localStorage.setItem('refreshToken', objToken.refreshToken);\r\n this.CreateHubConnection(false);\r\n },\r\n (error) => {\r\n this.toasterService.error(\"Error occured\");\r\n }\r\n );\r\n },\r\n (error) => {\r\n this.toasterService.error(\"Error occured\");\r\n }\r\n )\r\n }\r\n\r\n agentConnect(reconnect: boolean) {\r\n let method = reconnect ? \"AgentReconnect\" : \"AgentConnect\";\r\n this._hubConnection\r\n .invoke(method, this.agentLoginId)\r\n .then(() => {\r\n if (!reconnect)\r\n this.router.navigate(['/conversations/hilconversations'])\r\n })\r\n .catch(err => {\r\n //this.toasterService.error(\"Error : \" + err.message.toString());\r\n })\r\n }\r\n\r\n getRefreshToken() {\r\n this.tokenService.getRefreshToken()\r\n .subscribe(\r\n res => {\r\n let objToken = res;\r\n localStorage.setItem('accessToken', objToken.token);\r\n localStorage.setItem('refreshToken', objToken.refreshToken);\r\n this.agentConnect(false);\r\n },\r\n (error) => {\r\n this.toasterService.error(\"Error occured\");\r\n }\r\n );\r\n }\r\n\r\n deleteHubConnection() {\r\n if (this._hubConnection) {\r\n this._hubConnection\r\n .invoke('AgentLogout')\r\n .then(() => { this.connectedStatusService.sendAgentConnectedStatus(false); })\r\n .catch(err => {\r\n console.log(err);\r\n })\r\n // this._hubConnection\r\n // .stop()\r\n // .then(() => {\r\n // this.connectedStatus = false;\r\n // })\r\n // .catch(err => this.toasterService.error(\"Error while establishing connection\"));\r\n }\r\n }\r\n}\r\n","import { Injectable, Output, EventEmitter } from '@angular/core';\r\nimport { Subject, Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConnectedStatusService {\r\n\r\n @Output() change: EventEmitter = new EventEmitter();\r\n private subject = new Subject();\r\n constructor() { }\r\n\r\n toggle(data) {\r\n this.change.emit(data);\r\n } \r\n\r\n clearAgentConnectedStatus() {\r\n this.subject.next();\r\n }\r\n\r\n getAgentConnectedStatus(): Observable {\r\n return this.subject.asObservable();\r\n }\r\n\r\n sendAgentConnectedStatus(agentConnectedStatus: boolean) {\r\n this.subject.next({ status: agentConnectedStatus });\r\n }\r\n}\r\n","import { Injectable, EventEmitter, Output } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DataService {\r\n\r\n @Output() change: EventEmitter = new EventEmitter();\r\n private subject = new Subject();\r\n constructor() { }\r\n\r\n toggle(data) {\r\n this.change.emit(data);\r\n }\r\n\r\n sendUsername(username: string) {\r\n this.subject.next({ text: username });\r\n }\r\n\r\n clearUsername() {\r\n this.subject.next();\r\n }\r\n\r\n getUsername(): Observable {\r\n return this.subject.asObservable();\r\n }\r\n\r\n}\r\n","import { Injectable, ElementRef } from '@angular/core';\r\nimport * as FileSaver from 'file-saver';\r\n\r\nconst CSV_EXTENSION = '.csv';\r\nconst CSV_TYPE = 'text/plain;charset=utf-8';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ExportService {\r\n constructor() { }\r\n\r\n private saveAsFile(buffer: any, fileName: string, fileType: string): void {\r\n const data: Blob = new Blob([buffer], { type: fileType });\r\n FileSaver.saveAs(data, fileName);\r\n }\r\n\r\n /**\r\n * Creates an array of data to csv. It will automatically generate title row based on object keys.\r\n *\r\n * @param rows array of data to be converted to CSV.\r\n * @param fileName filename to save as.\r\n * @param columns array of object properties to convert to CSV. If skipped, then all object properties will be used for CSV.\r\n */\r\n public exportToCsv(rows: object[], fileName: string, columns?: string[]): string {\r\n if (!rows || !rows.length) {\r\n return;\r\n }\r\n const separator = ',';\r\n const keys = Object.keys(rows[0]).filter(k => {\r\n if (columns && columns.length) {\r\n return columns.includes(k);\r\n } else {\r\n return true;\r\n }\r\n });\r\n const csvContent =\r\n keys.join(separator) +\r\n '\\n' +\r\n rows.map(row => {\r\n return keys.map(k => {\r\n let cell = row[k] === null || row[k] === undefined ? '' : row[k];\r\n cell = cell instanceof Date\r\n ? cell.toLocaleString()\r\n : cell.toString().replace(/\"/g, '\"\"');\r\n if (cell.search(/(\"|,|\\n)/g) >= 0) {\r\n cell = `\"${cell}\"`;\r\n }\r\n return cell;\r\n }).join(separator);\r\n }).join('\\n');\r\n this.saveAsFile(csvContent, `${fileName}${CSV_EXTENSION}`, CSV_TYPE);\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { ConfigurationSettings } from \"src/app/models/configuration.settings\";\r\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class FileuploadService {\r\n private httpOptions = {\r\n headers: new HttpHeaders({\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"application/json\",\r\n }),\r\n };\r\n constructor(\r\n private http: HttpClient,\r\n private configurationSettings: ConfigurationSettings\r\n ) {}\r\n\r\n uploadFiletoServer(fileToUpload: File, botConfigId: number): Observable {\r\n const formData = new FormData();\r\n formData.append(\"file\", fileToUpload, fileToUpload.name);\r\n return this.http.post(\r\n this.configurationSettings.userfileUpload_api_endpoint +\r\n \"/PostUserUploadedFiles?botConfigId=\" +\r\n botConfigId,\r\n formData\r\n );\r\n }\r\n\r\n GetAllUploadedFiles(botConfigId: number): Observable {\r\n return this.http.get(\r\n this.configurationSettings.userfileUpload_api_endpoint +\r\n \"/GetUploadedFiles?botConfigId=\" +\r\n botConfigId\r\n );\r\n }\r\n DeleteFile(fileName: string): Observable {\r\n return this.http.post(\r\n this.configurationSettings.userfileUpload_api_endpoint +\r\n \"/DeleteUploadedFile?fileName=\" + fileName,\r\n fileName\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LocalstorageService {\r\n\r\n constructor() { }\r\n\r\n _isLocalStorageSupport(): boolean {\r\n var isLocalStorageSupport = window.localStorage ? true : false;\r\n if (!isLocalStorageSupport) {\r\n throw \"Unsupportive browser for localstorage operations\";\r\n }\r\n return isLocalStorageSupport;\r\n }\r\n\r\n _isLocalStorageEmpty(): boolean {\r\n var isLocalStorageEmpty = localStorage.length <= 0 ? true : false;\r\n if (isLocalStorageEmpty) {\r\n throw \"localStrorage account is empty\";\r\n }\r\n return isLocalStorageEmpty;\r\n }\r\n\r\n getAll(): Array {\r\n if (this._isLocalStorageSupport() && !this._isLocalStorageEmpty()) {\r\n var localStorageData = [];\r\n for (let i = 0; i < localStorage.length; i++) {\r\n let key = localStorage.key(i);\r\n let value = localStorage.getItem(key);\r\n localStorageData.push({ key: key, value: value });\r\n }\r\n //console.table(localStorageData);\r\n return localStorageData;\r\n }\r\n }\r\n\r\n get(key: string): string {\r\n if (this._isLocalStorageSupport() && !this._isLocalStorageEmpty()) {\r\n if (localStorage.getItem(key)) {\r\n let value = null;\r\n try {\r\n value = JSON.parse(localStorage.getItem(key));\r\n } catch (err) {\r\n value = localStorage.getItem(key);\r\n }\r\n //console.table([{\"key\":key,\"value\":value}]);\r\n return value;\r\n }\r\n }\r\n }\r\n\r\n set(key: string, value: any): boolean {\r\n switch (typeof value) {\r\n case \"string\": localStorage.setItem(key, value); break;\r\n\r\n case \"number\":\r\n case \"boolean\": localStorage.setItem(key, value.toString()); break;\r\n\r\n case \"object\": localStorage.setItem(key, JSON.stringify(value)); break;\r\n }\r\n //console.table([{\"key\":key,\"value\":localStorage.getItem(key)}]);\r\n return (localStorage.getItem(key)) ? true : false;\r\n }\r\n\r\n remove(key: string): boolean {\r\n try {\r\n localStorage.removeItem(key);\r\n } catch (err) { \r\n }\r\n return (!localStorage.getItem(key)) ? true : false;\r\n }\r\n\r\n clear(): void {\r\n localStorage.clear();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class MessageService {\r\n private subject = new Subject();\r\n\r\n sendMessage(message: string) {\r\n this.subject.next({ text: message });\r\n }\r\n\r\n clearMessages() {\r\n this.subject.next();\r\n }\r\n\r\n getMessage(): Observable {\r\n return this.subject.asObservable();\r\n } \r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { LocalstorageService } from '../localstorage/localstorage.service';\r\nimport { EventEmitter, Output } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { IConversation } from '../../../models/iconversation';\r\nimport { PushNotificationsService } from 'ng-push';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NotificationService {\r\n\r\n private subject = new Subject();\r\n public connectedBotDetails: any;\r\n public connectedBotDetail: IConversation;\r\n public notification: any;\r\n switchedWindow: boolean = false;\r\n constructor(private localstorageService: LocalstorageService,\r\n private _pushNotifications: PushNotificationsService,\r\n @Inject(DOCUMENT) private document: Document) {\r\n //For 1st push notification pop up\r\n window.addEventListener('blur', event => {\r\n this.switchedWindow = true;\r\n });\r\n window.addEventListener('focus', event => {\r\n this.switchedWindow = false;\r\n });\r\n }\r\n\r\n getHilConversationNotification(): Observable {\r\n return this.subject.asObservable();\r\n }\r\n\r\n sendHilConversationNotification(activity: IConversation) {\r\n window.addEventListener('blur', event => {\r\n this.switchedWindow = true;\r\n });\r\n window.addEventListener('focus', event => {\r\n this.switchedWindow = false;\r\n });\r\n if (activity.Type == \"ConnectionState\") {\r\n //push notification\r\n if (this.document.visibilityState != 'visible' || this.switchedWindow) {\r\n\r\n var notifyTime = activity.DateTime;\r\n\r\n var date = notifyTime.getDate() + '-' + (notifyTime.getMonth() + 1) + '-' + notifyTime.getFullYear();\r\n var time = notifyTime.getHours() + \":\" + notifyTime.getMinutes();\r\n var dateTime = time + ' | ' + date;\r\n\r\n let options = {\r\n body: activity.Message + \"\\r\\n\" + dateTime.toString(),\r\n icon: \"assets/images/message.png\"\r\n };\r\n\r\n this._pushNotifications.create('CBaaS Contact Center', options).subscribe(res => {\r\n if (res.event.type === 'click') {\r\n res.notification.close();\r\n }\r\n \r\n // if (res.notification.onshow) {\r\n // setTimeout(() => {\r\n // res.notification.close();\r\n // }, 3000);\r\n // }\r\n }\r\n );\r\n }\r\n //end push notification\r\n return;\r\n }\r\n\r\n if(this.localstorageService.get(\"connectedBots\")) {\r\n this.connectedBotDetails = this.localstorageService.get(\"connectedBots\");\r\n\r\n if (this.connectedBotDetails) {\r\n this.connectedBotDetail = this.connectedBotDetails.find(x => x.ChatId == activity.ChatId);\r\n\r\n this.notification = { type: \"Message\", from: this.connectedBotDetail['BotUserName'], dateTime: activity.DateTime, ChatId: activity.ChatId };\r\n\r\n this.subject.next({ notification: this.notification });\r\n\r\n //push notification\r\n if (this.document.visibilityState != 'visible' || this.switchedWindow) {\r\n\r\n var notifyTime = activity.DateTime;\r\n\r\n var date = notifyTime.getDate() + '-' + (notifyTime.getMonth() + 1) + '-' + notifyTime.getFullYear();\r\n var time = notifyTime.getHours() + \":\" + notifyTime.getMinutes();\r\n var dateTime = time + ' | ' + date;\r\n\r\n let options = {\r\n body: \"Message from \" + this.connectedBotDetail['BotUserName'] + \"\\r\\n\" + dateTime.toString(),\r\n icon: \"assets/images/message.png\"\r\n };\r\n\r\n this._pushNotifications.create('Message', options).subscribe(res => {\r\n if (res.event.type === 'click') {\r\n res.notification.close();\r\n } \r\n // if (res.notification.onshow) {\r\n // setTimeout(() => {\r\n // res.notification.close();\r\n // }, 3000);\r\n // }\r\n }\r\n );\r\n }\r\n //end push notification\r\n }\r\n}\r\n }\r\n\r\n\r\nclearAllNotifications(): Observable < any > {\r\n this.subject.next();\r\n return this.subject.asObservable();\r\n}\r\n}\r\n","import { Injectable, EventEmitter, Output } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PrivacyacceptanceService {\r\n\r\n @Output() change: EventEmitter = new EventEmitter();\r\n private subject = new Subject();\r\n constructor() { }\r\n\r\n toggle(data) {\r\n this.change.emit(data);\r\n }\r\n\r\n sendPrivacyAcceptance(privacyStatementFlag: boolean) {\r\n this.subject.next({ text: privacyStatementFlag });\r\n }\r\n\r\n clearPrivacyAcceptance() {\r\n this.subject.next();\r\n }\r\n\r\n getPrivacyAcceptance(): Observable {\r\n return this.subject.asObservable();\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SessionstorageService {\r\n\r\n constructor() { }\r\n\r\n _issessionStorageSupport(): boolean {\r\n var issessionStorageSupport = window.sessionStorage ? true : false;\r\n if (!issessionStorageSupport) {\r\n throw \"Unsupportive browser for sessionStorage operations\";\r\n }\r\n return issessionStorageSupport;\r\n }\r\n\r\n _issessionStorageEmpty(): boolean {\r\n var issessionStorageEmpty = sessionStorage.length <= 0 ? true : false;\r\n if (issessionStorageEmpty) {\r\n throw \"localStrorage account is empty\";\r\n }\r\n return issessionStorageEmpty;\r\n }\r\n\r\n getAll(): Array {\r\n if (this._issessionStorageSupport() && !this._issessionStorageEmpty()) {\r\n var sessionStorageData = [];\r\n for (let i = 0; i < sessionStorage.length; i++) {\r\n let key = sessionStorage.key(i);\r\n let value = sessionStorage.getItem(key);\r\n sessionStorageData.push({ key: key, value: value });\r\n }\r\n //console.table(sessionStorageData);\r\n return sessionStorageData;\r\n }\r\n }\r\n\r\n get(key: string): string {\r\n if (this._issessionStorageSupport() && !this._issessionStorageEmpty()) {\r\n if (sessionStorage.getItem(key)) {\r\n let value = null;\r\n try {\r\n value = JSON.parse(sessionStorage.getItem(key));\r\n } catch (err) {\r\n value = sessionStorage.getItem(key);\r\n }\r\n //console.table([{\"key\":key,\"value\":value}]);\r\n return value;\r\n }\r\n }\r\n }\r\n\r\n set(key: string, value: any): boolean {\r\n switch (typeof value) {\r\n case \"string\": sessionStorage.setItem(key, value); break;\r\n\r\n case \"number\":\r\n case \"boolean\": sessionStorage.setItem(key, value.toString()); break;\r\n\r\n case \"object\": sessionStorage.setItem(key, JSON.stringify(value)); break;\r\n }\r\n //console.table([{\"key\":key,\"value\":sessionStorage.getItem(key)}]);\r\n return (sessionStorage.getItem(key)) ? true : false;\r\n }\r\n\r\n remove(key: string): boolean {\r\n try {\r\n sessionStorage.removeItem(key);\r\n } catch (err) { \r\n }\r\n return (!sessionStorage.getItem(key)) ? true : false;\r\n }\r\n\r\n clear(): void {\r\n sessionStorage.clear();\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationStart } from '@angular/router';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\nimport { Alert, AlertType } from '../../../models/alert';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ToasterService {\r\n private subject = new Subject();\r\n private keepAfterRouteChange = false;\r\n\r\n constructor(private router: Router) {\r\n // clear alert messages on route change unless 'keepAfterRouteChange' flag is true\r\n this.router.events.subscribe(event => {\r\n if (event instanceof NavigationStart) {\r\n // if (this.keepAfterRouteChange) {\r\n // // only keep for a single route change\r\n // this.keepAfterRouteChange = false;\r\n // } else {\r\n // // clear alert messages\r\n // this.clear();\r\n // }\r\n }\r\n });\r\n }\r\n\r\n // enable subscribing to alerts observable\r\n onAlert(alertId?: string): Observable {\r\n return this.subject.asObservable().pipe(filter(x => x && x.alertId === alertId));\r\n }\r\n\r\n // convenience methods\r\n success(message: string, alertId?: string) {\r\n this.alert(new Alert({ message, type: AlertType.Success, alertId }));\r\n }\r\n\r\n error(message: string, alertId?: string) {\r\n this.alert(new Alert({ message, type: AlertType.Error, alertId }));\r\n }\r\n\r\n info(message: string, alertId?: string) {\r\n this.alert(new Alert({ message, type: AlertType.Info, alertId }));\r\n }\r\n\r\n warn(message: string, alertId?: string) {\r\n this.alert(new Alert({ message, type: AlertType.Warning, alertId }));\r\n }\r\n\r\n // main alert method \r\n alert(alert: Alert) {\r\n this.keepAfterRouteChange = alert.keepAfterRouteChange;\r\n this.subject.next(alert);\r\n }\r\n\r\n // clear alerts\r\n clear(alertId?: string) {\r\n this.subject.next(new Alert({ alertId }));\r\n }\r\n}\r\n","import { Injectable, EventEmitter, Output } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UtilityService {\r\n\r\n constructor() { }\r\n\r\n ShowUtilityMenu(userBotRoles, superAdmin, chatbotAdmin, businessManager) {\r\n let isShowUtilityMenu = false;\r\n if (superAdmin) {\r\n return true;\r\n }\r\n \r\n if (userBotRoles != undefined && userBotRoles != null) {\r\n let userData = JSON.parse(userBotRoles);\r\n userData.forEach((item) => {\r\n if (item.botMasterConfigurations != null) {\r\n item.botMasterConfigurations.forEach((config) => {\r\n if (config.feature == 'ProactiveNotification' && config.enabled == true) {\r\n isShowUtilityMenu = true;\r\n return false;\r\n }\r\n else if (config.feature == 'FileUpload' && config.enabled == true) {\r\n isShowUtilityMenu = true;\r\n return false;\r\n }\r\n else if (config.feature == 'Broadcast' && config.enabled == true) {\r\n isShowUtilityMenu = true;\r\n return false;\r\n }\r\n });\r\n\r\n if (isShowUtilityMenu) {\r\n return false;\r\n }\r\n }\r\n });\r\n return isShowUtilityMenu && (chatbotAdmin || businessManager);\r\n }\r\n return isShowUtilityMenu;\r\n }\r\n\r\n ShowUtilityMenuItem(userBotRoles,featureName) {\r\n let isShowMenuItem = false;\r\n if (userBotRoles != undefined && userBotRoles != null) {\r\n let userData = JSON.parse(userBotRoles);\r\n userData.forEach((item) => {\r\n if (item.botMasterConfigurations != null) {\r\n\r\n item.botMasterConfigurations.forEach((config) => {\r\n if (config.feature == featureName && config.enabled == true) {\r\n isShowMenuItem = true;\r\n return false;\r\n }\r\n });\r\n\r\n if (isShowMenuItem) {\r\n return false;\r\n }\r\n\r\n }\r\n });\r\n }\r\n return isShowMenuItem;\r\n }\r\n\r\n GetFeaturewiseBotList(userBotRoles,featureName) {\r\n let botConfigIds = [];\r\n if (userBotRoles != undefined && userBotRoles != null) {\r\n let userData = JSON.parse(userBotRoles); \r\n userData.forEach((item) => {\r\n if (item.botMasterConfigurations != null) {\r\n item.botMasterConfigurations.forEach((config) => { \r\n if (config.feature == featureName && config.enabled == true) {\r\n botConfigIds.push(config.botConfigId)\r\n }\r\n });\r\n }\r\n });\r\n }\r\n let uniqueBotIds = [];\r\n for (let i of botConfigIds) {\r\n if (uniqueBotIds.indexOf(i) === -1) {\r\n uniqueBotIds.push(i);\r\n }\r\n }\r\n return uniqueBotIds;\r\n }\r\n\r\n \r\n}\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false\r\n};\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n"],"sourceRoot":"webpack:///"}