@hivegpt/hiveai-angular 0.0.593 → 0.0.596

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/environments/environment.d.ts.map +1 -1
  2. package/esm2020/environments/environment.mjs +15 -0
  3. package/esm2020/hivegpt-hiveai-angular.mjs +5 -0
  4. package/esm2020/lib/components/NotificationSocket.mjs +45 -0
  5. package/esm2020/lib/components/bot-html-editor/bot-html-editor.component.mjs +113 -0
  6. package/esm2020/lib/components/bot.service.mjs +45 -0
  7. package/esm2020/lib/components/chat-drawer/chat-drawer.component.mjs +3904 -0
  8. package/esm2020/lib/components/chatbot/chatbot.component.mjs +95 -0
  9. package/esm2020/lib/components/conversation.service.mjs +58 -0
  10. package/esm2020/lib/components/socket-service.service.mjs +65 -0
  11. package/esm2020/lib/components/translations/translation.service.mjs +244 -0
  12. package/esm2020/lib/components/video-player/video-player.component.mjs +131 -0
  13. package/esm2020/lib/components/voice-agent/components/voice-agent-modal/voice-agent-modal.component.mjs +187 -0
  14. package/esm2020/lib/components/voice-agent/services/audio-analyzer.service.mjs +127 -0
  15. package/esm2020/lib/components/voice-agent/services/voice-agent.service.mjs +352 -0
  16. package/esm2020/lib/components/voice-agent/voice-agent.module.mjs +37 -0
  17. package/esm2020/lib/components/voice-agent/voice-modal-tokens.mjs +4 -0
  18. package/esm2020/lib/hivegpt.module.mjs +28 -0
  19. package/esm2020/lib/models/video.mjs +2 -0
  20. package/esm2020/lib/pipes/safe-html.pipe.mjs +20 -0
  21. package/esm2020/lib/services/platform-token-refresh.service.mjs +177 -0
  22. package/esm2020/lib/utils/utils.mjs +36 -0
  23. package/esm2020/public-api.mjs +15 -0
  24. package/fesm2015/hivegpt-hiveai-angular.mjs +5605 -0
  25. package/fesm2015/hivegpt-hiveai-angular.mjs.map +1 -0
  26. package/fesm2020/hivegpt-hiveai-angular.mjs +5606 -0
  27. package/fesm2020/hivegpt-hiveai-angular.mjs.map +1 -0
  28. package/hivegpt-hiveai-angular.d.ts.map +1 -1
  29. package/index.d.ts +6 -0
  30. package/lib/components/NotificationSocket.d.ts +6 -1
  31. package/lib/components/NotificationSocket.d.ts.map +1 -1
  32. package/lib/components/bot-html-editor/bot-html-editor.component.d.ts +3 -0
  33. package/lib/components/bot-html-editor/bot-html-editor.component.d.ts.map +1 -1
  34. package/lib/components/bot.service.d.ts +5 -1
  35. package/lib/components/bot.service.d.ts.map +1 -1
  36. package/lib/components/chat-drawer/chat-drawer.component.d.ts +7 -3
  37. package/lib/components/chat-drawer/chat-drawer.component.d.ts.map +1 -1
  38. package/lib/components/chatbot/chatbot.component.d.ts +3 -0
  39. package/lib/components/chatbot/chatbot.component.d.ts.map +1 -1
  40. package/lib/components/conversation.service.d.ts +3 -0
  41. package/lib/components/conversation.service.d.ts.map +1 -1
  42. package/lib/components/socket-service.service.d.ts +7 -3
  43. package/lib/components/socket-service.service.d.ts.map +1 -1
  44. package/lib/components/translations/translation.service.d.ts +3 -0
  45. package/lib/components/translations/translation.service.d.ts.map +1 -1
  46. package/lib/components/video-player/video-player.component.d.ts +3 -0
  47. package/lib/components/video-player/video-player.component.d.ts.map +1 -1
  48. package/lib/components/voice-agent/components/voice-agent-modal/voice-agent-modal.component.d.ts +3 -0
  49. package/lib/components/voice-agent/components/voice-agent-modal/voice-agent-modal.component.d.ts.map +1 -1
  50. package/lib/components/voice-agent/services/audio-analyzer.service.d.ts +3 -0
  51. package/lib/components/voice-agent/services/audio-analyzer.service.d.ts.map +1 -1
  52. package/lib/components/voice-agent/services/voice-agent.service.d.ts +4 -1
  53. package/lib/components/voice-agent/services/voice-agent.service.d.ts.map +1 -1
  54. package/lib/components/voice-agent/voice-agent.module.d.ts +6 -0
  55. package/lib/components/voice-agent/voice-agent.module.d.ts.map +1 -1
  56. package/lib/components/voice-agent/voice-modal-tokens.d.ts.map +1 -1
  57. package/lib/hivegpt.module.d.ts +16 -0
  58. package/lib/hivegpt.module.d.ts.map +1 -1
  59. package/lib/models/video.d.ts.map +1 -1
  60. package/lib/pipes/safe-html.pipe.d.ts +3 -0
  61. package/lib/pipes/safe-html.pipe.d.ts.map +1 -1
  62. package/lib/services/platform-token-refresh.service.d.ts +3 -0
  63. package/lib/services/platform-token-refresh.service.d.ts.map +1 -1
  64. package/lib/utils/utils.d.ts.map +1 -1
  65. package/package.json +24 -12
  66. package/public-api.d.ts +2 -0
  67. package/public-api.d.ts.map +1 -1
  68. package/bundles/hivegpt-hiveai-angular.umd.js +0 -6285
  69. package/bundles/hivegpt-hiveai-angular.umd.js.map +0 -1
  70. package/bundles/hivegpt-hiveai-angular.umd.min.js +0 -2
  71. package/bundles/hivegpt-hiveai-angular.umd.min.js.map +0 -1
  72. package/esm2015/environments/environment.js +0 -15
  73. package/esm2015/hivegpt-hiveai-angular.js +0 -13
  74. package/esm2015/lib/components/NotificationSocket.js +0 -39
  75. package/esm2015/lib/components/bot-html-editor/bot-html-editor.component.js +0 -112
  76. package/esm2015/lib/components/bot.service.js +0 -50
  77. package/esm2015/lib/components/chat-drawer/chat-drawer.component.js +0 -3809
  78. package/esm2015/lib/components/chatbot/chatbot.component.js +0 -57
  79. package/esm2015/lib/components/conversation.service.js +0 -57
  80. package/esm2015/lib/components/socket-service.service.js +0 -79
  81. package/esm2015/lib/components/translations/translation.service.js +0 -244
  82. package/esm2015/lib/components/video-player/video-player.component.js +0 -123
  83. package/esm2015/lib/components/voice-agent/components/voice-agent-modal/voice-agent-modal.component.js +0 -192
  84. package/esm2015/lib/components/voice-agent/services/audio-analyzer.service.js +0 -125
  85. package/esm2015/lib/components/voice-agent/services/voice-agent.service.js +0 -364
  86. package/esm2015/lib/components/voice-agent/voice-agent.module.js +0 -29
  87. package/esm2015/lib/components/voice-agent/voice-modal-tokens.js +0 -4
  88. package/esm2015/lib/hivegpt.module.js +0 -23
  89. package/esm2015/lib/models/video.js +0 -2
  90. package/esm2015/lib/pipes/safe-html.pipe.js +0 -19
  91. package/esm2015/lib/services/platform-token-refresh.service.js +0 -173
  92. package/esm2015/lib/utils/utils.js +0 -38
  93. package/esm2015/public-api.js +0 -13
  94. package/fesm2015/hivegpt-hiveai-angular.js +0 -5484
  95. package/fesm2015/hivegpt-hiveai-angular.js.map +0 -1
  96. package/hivegpt-hiveai-angular.d.ts +0 -13
  97. package/hivegpt-hiveai-angular.metadata.json +0 -1
@@ -0,0 +1,95 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "@angular/material/icon";
5
+ import * as i3 from "../chat-drawer/chat-drawer.component";
6
+ export class ChatBotComponent {
7
+ constructor() {
8
+ this.tokensRefreshed = new EventEmitter();
9
+ this.visible = false;
10
+ }
11
+ toggle() {
12
+ this.visible = !this.visible;
13
+ }
14
+ }
15
+ ChatBotComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ChatBotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
16
+ ChatBotComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ChatBotComponent, selector: "hivegpt-chatbot", inputs: { userId: "userId", userAvatarUrl: "userAvatarUrl", timezone: "timezone", apiKey: "apiKey", botName: "botName", botSkills: "botSkills", botId: "botId", closeButtonColor: "closeButtonColor", gradientColors: "gradientColors", greeting: "greeting", sendButtonColor: "sendButtonColor", useOpenAi: "useOpenAi", showClose: "showClose", bgGradient: "bgGradient", sendButtonTextColor: "sendButtonTextColor", fullView: "fullView", bgBubbleAi: "bgBubbleAi", bgBubbleUser: "bgBubbleUser", closeButtonbgColor: "closeButtonbgColor", messageTextColorAi: "messageTextColorAi", messageTextColorUser: "messageTextColorUser", dateTimeColor: "dateTimeColor", dateTextColor: "dateTextColor", formFieldBgColor: "formFieldBgColor", formFieldTextColor: "formFieldTextColor", thumbsUpMessage: "thumbsUpMessage", thumbsDownMessages: "thumbsDownMessages", eventName: "eventName", credentials: "credentials", unknownResponses: "unknownResponses", rules: "rules", eventId: "eventId", s27Token: "s27Token", workspaceToken: "workspaceToken", isDev: "isDev", baseUrl: "baseUrl" }, outputs: { tokensRefreshed: "tokensRefreshed" }, ngImport: i0, template: "<button mat-icon-button class=\"chat-button\" color=\"primary\" (click)=\"toggle()\">\n <mat-icon>chat</mat-icon>\n</button>\n\n<ng-container *ngIf=\"visible\">\n <hivegpt-chat-drawer-package\n [apiKey]=\"apiKey\"\n [bgBubbleAi]=\"bgBubbleAi\"\n [bgBubbleUser]=\"bgBubbleUser\"\n [bgGradient]=\"bgGradient\"\n [botName]=\"botName\"\n [closeButtonbgColor]=\"closeButtonbgColor\"\n [closeButtonColor]=\"closeButtonColor\"\n [credentials]=\"credentials\"\n [dateTextColor]=\"dateTextColor\"\n [dateTimeColor]=\"dateTimeColor\"\n [eventId]=\"eventId\"\n [eventName]=\"eventName\"\n [formFieldBgColor]=\"formFieldBgColor\"\n [formFieldTextColor]=\"formFieldTextColor\"\n [fullView]=\"fullView\"\n [greeting]=\"greeting\"\n [gradientColors]=\"gradientColors\"\n [messageTextColorAi]=\"messageTextColorAi\"\n [messageTextColorUser]=\"messageTextColorUser\"\n [sendButtonColor]=\"sendButtonColor\"\n [sendButtonTextColor]=\"sendButtonTextColor\"\n [showClose]=\"showClose\"\n [thumbsDownMessages]=\"thumbsDownMessages\"\n [thumbsUpMessage]=\"thumbsUpMessage\"\n [unknownResponses]=\"unknownResponses\"\n [useOpenAi]=\"useOpenAi\"\n [userId]=\"userId\"\n [userAvatarUrl]=\"userAvatarUrl\"\n [timezone]=\"timezone\"\n [botId]=\"botId\"\n [s27Token]=\"s27Token\"\n (tokensRefreshed)=\"tokensRefreshed.emit($event)\"\n [workspaceToken]=\"workspaceToken\"\n [isDev]=\"isDev\"\n [baseUrl]=\"baseUrl\"\n >\n </hivegpt-chat-drawer-package>\n</ng-container>\n", styles: ["::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:#f1f1f1}::-webkit-scrollbar-thumb{background:#e5ccbc}::-webkit-scrollbar-thumb:hover{background:#e5ccbc}.spinner{display:flex;align-items:center;justify-content:center;gap:2px}.spinner>div{width:5px;height:5px;background-color:#173330;border-radius:100%;display:inline-block;animation:bouncedelay 1.4s ease-in-out infinite;animation-fill-mode:both}.spinner .bounce1{animation-delay:-.32s}.spinner .bounce2{animation-delay:-.16s}@keyframes bouncedelay{0%,80%,to{transform:scale(0);-webkit-transform:scale(0)}40%{transform:scale(1);-webkit-transform:scale(1)}}.chat-button{position:fixed;bottom:20px;right:20px;background:#17235B;border:#17235B;border-radius:50%;width:50px;height:50px;font-size:24px;color:#fff;display:inline-flex;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.ChatDrawerComponent, selector: "hivegpt-chat-drawer-package", inputs: ["copilotName", "firstName", "lastName", "apiKey", "bgBubbleAi", "bgBubbleUser", "bgGradient", "botName", "botSkills", "botId", "orgId", "closeButtonColor", "closeButtonbgColor", "credentials", "dateTimeColor", "dateTextColor", "eventId", "eventUrl", "eventToken", "workspaceToken", "s27Token", "eventName", "botIcon", "userAvatarUrl", "formFieldBgColor", "formFieldTextColor", "fullView", "gradientColors", "greeting", "messageTextColorAi", "messageTextColorUser", "rules", "sendButtonColor", "sendButtonTextColor", "showClose", "thumbsDownMessages", "thumbsUpMessage", "timezone", "unknownResponses", "useOpenAi", "userId", "isDev", "autoScrollOnNewMessage", "baseUrl", "connectionsList", "pendingSentRequestUserIds", "isConnectionsEnabled", "isUnEvent", "againButtonColor", "againButtonTextColor"], outputs: ["feedbackEvent", "onCloseEvent", "openPage", "sessionActions", "sessionActionBlocked", "closeBot", "connectWithUser", "viewSpeakerProfile", "viewBooth", "scheduleMeeting", "refreshToken", "tokensRefreshed", "openSupport"] }] });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ChatBotComponent, decorators: [{
18
+ type: Component,
19
+ args: [{ selector: 'hivegpt-chatbot', template: "<button mat-icon-button class=\"chat-button\" color=\"primary\" (click)=\"toggle()\">\n <mat-icon>chat</mat-icon>\n</button>\n\n<ng-container *ngIf=\"visible\">\n <hivegpt-chat-drawer-package\n [apiKey]=\"apiKey\"\n [bgBubbleAi]=\"bgBubbleAi\"\n [bgBubbleUser]=\"bgBubbleUser\"\n [bgGradient]=\"bgGradient\"\n [botName]=\"botName\"\n [closeButtonbgColor]=\"closeButtonbgColor\"\n [closeButtonColor]=\"closeButtonColor\"\n [credentials]=\"credentials\"\n [dateTextColor]=\"dateTextColor\"\n [dateTimeColor]=\"dateTimeColor\"\n [eventId]=\"eventId\"\n [eventName]=\"eventName\"\n [formFieldBgColor]=\"formFieldBgColor\"\n [formFieldTextColor]=\"formFieldTextColor\"\n [fullView]=\"fullView\"\n [greeting]=\"greeting\"\n [gradientColors]=\"gradientColors\"\n [messageTextColorAi]=\"messageTextColorAi\"\n [messageTextColorUser]=\"messageTextColorUser\"\n [sendButtonColor]=\"sendButtonColor\"\n [sendButtonTextColor]=\"sendButtonTextColor\"\n [showClose]=\"showClose\"\n [thumbsDownMessages]=\"thumbsDownMessages\"\n [thumbsUpMessage]=\"thumbsUpMessage\"\n [unknownResponses]=\"unknownResponses\"\n [useOpenAi]=\"useOpenAi\"\n [userId]=\"userId\"\n [userAvatarUrl]=\"userAvatarUrl\"\n [timezone]=\"timezone\"\n [botId]=\"botId\"\n [s27Token]=\"s27Token\"\n (tokensRefreshed)=\"tokensRefreshed.emit($event)\"\n [workspaceToken]=\"workspaceToken\"\n [isDev]=\"isDev\"\n [baseUrl]=\"baseUrl\"\n >\n </hivegpt-chat-drawer-package>\n</ng-container>\n", styles: ["::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:#f1f1f1}::-webkit-scrollbar-thumb{background:#e5ccbc}::-webkit-scrollbar-thumb:hover{background:#e5ccbc}.spinner{display:flex;align-items:center;justify-content:center;gap:2px}.spinner>div{width:5px;height:5px;background-color:#173330;border-radius:100%;display:inline-block;animation:bouncedelay 1.4s ease-in-out infinite;animation-fill-mode:both}.spinner .bounce1{animation-delay:-.32s}.spinner .bounce2{animation-delay:-.16s}@keyframes bouncedelay{0%,80%,to{transform:scale(0);-webkit-transform:scale(0)}40%{transform:scale(1);-webkit-transform:scale(1)}}.chat-button{position:fixed;bottom:20px;right:20px;background:#17235B;border:#17235B;border-radius:50%;width:50px;height:50px;font-size:24px;color:#fff;display:inline-flex;align-items:center;justify-content:center}\n"] }]
20
+ }], propDecorators: { userId: [{
21
+ type: Input
22
+ }], userAvatarUrl: [{
23
+ type: Input
24
+ }], timezone: [{
25
+ type: Input
26
+ }], apiKey: [{
27
+ type: Input
28
+ }], botName: [{
29
+ type: Input
30
+ }], botSkills: [{
31
+ type: Input
32
+ }], botId: [{
33
+ type: Input
34
+ }], closeButtonColor: [{
35
+ type: Input
36
+ }], gradientColors: [{
37
+ type: Input
38
+ }], greeting: [{
39
+ type: Input
40
+ }], sendButtonColor: [{
41
+ type: Input
42
+ }], useOpenAi: [{
43
+ type: Input
44
+ }], showClose: [{
45
+ type: Input
46
+ }], bgGradient: [{
47
+ type: Input
48
+ }], sendButtonTextColor: [{
49
+ type: Input
50
+ }], fullView: [{
51
+ type: Input
52
+ }], bgBubbleAi: [{
53
+ type: Input
54
+ }], bgBubbleUser: [{
55
+ type: Input
56
+ }], closeButtonbgColor: [{
57
+ type: Input
58
+ }], messageTextColorAi: [{
59
+ type: Input
60
+ }], messageTextColorUser: [{
61
+ type: Input
62
+ }], dateTimeColor: [{
63
+ type: Input
64
+ }], dateTextColor: [{
65
+ type: Input
66
+ }], formFieldBgColor: [{
67
+ type: Input
68
+ }], formFieldTextColor: [{
69
+ type: Input
70
+ }], thumbsUpMessage: [{
71
+ type: Input
72
+ }], thumbsDownMessages: [{
73
+ type: Input
74
+ }], eventName: [{
75
+ type: Input
76
+ }], credentials: [{
77
+ type: Input
78
+ }], unknownResponses: [{
79
+ type: Input
80
+ }], rules: [{
81
+ type: Input
82
+ }], eventId: [{
83
+ type: Input
84
+ }], s27Token: [{
85
+ type: Input
86
+ }], tokensRefreshed: [{
87
+ type: Output
88
+ }], workspaceToken: [{
89
+ type: Input
90
+ }], isDev: [{
91
+ type: Input
92
+ }], baseUrl: [{
93
+ type: Input
94
+ }] } });
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdGJvdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9oaXZlZ3B0L2V2ZW50c2dwdC1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9jaGF0Ym90L2NoYXRib3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaGl2ZWdwdC9ldmVudHNncHQtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvY2hhdGJvdC9jaGF0Ym90LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBT3ZFLE1BQU0sT0FBTyxnQkFBZ0I7SUFMN0I7UUF5Q1ksb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBS3BELFlBQU8sR0FBRyxLQUFLLENBQUM7S0FLakI7SUFIQyxNQUFNO1FBQ0osSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDL0IsQ0FBQzs7OEdBN0NVLGdCQUFnQjtrR0FBaEIsZ0JBQWdCLDBvQ0NQN0IsMjhDQTRDQTs0RkRyQ2EsZ0JBQWdCO2tCQUw1QixTQUFTOytCQUNFLGlCQUFpQjs4QkFLbEIsTUFBTTtzQkFBZCxLQUFLO2dCQUVHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0ksZUFBZTtzQkFBeEIsTUFBTTtnQkFDRSxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdoaXZlZ3B0LWNoYXRib3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hhdGJvdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NoYXRib3QuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2hhdEJvdENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHVzZXJJZCE6IHN0cmluZztcbiAgLyoqIE9wdGlvbmFsIHVzZXIgcHJvZmlsZSBpbWFnZSBVUkw7IGlmIG5vdCBzZXQsIHVzZXIgaW5pdGlhbHMgYXJlIHNob3duIGluIGNoYXQuICovXG4gIEBJbnB1dCgpIHVzZXJBdmF0YXJVcmw/OiBzdHJpbmc7XG4gIC8qKiBVc2VyJ3Mgc2VsZWN0ZWQgdGltZXpvbmUgKGUuZy4gJ0FtZXJpY2EvTmV3X1lvcmsnKTsgdXNlZCBmb3IgY2hhdCB0aW1lc3RhbXBzIGFuZCBzZXNzaW9uIGNhcmQgdGltZXMuICovXG4gIEBJbnB1dCgpIHRpbWV6b25lITogc3RyaW5nO1xuICBASW5wdXQoKSBhcGlLZXkhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGJvdE5hbWUhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGJvdFNraWxscyE6IHN0cmluZztcbiAgQElucHV0KCkgYm90SWQhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGNsb3NlQnV0dG9uQ29sb3IhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGdyYWRpZW50Q29sb3JzITogc3RyaW5nW107XG4gIEBJbnB1dCgpIGdyZWV0aW5nITogc3RyaW5nO1xuICBASW5wdXQoKSBzZW5kQnV0dG9uQ29sb3IhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHVzZU9wZW5BaSE6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHNob3dDbG9zZSE6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGJnR3JhZGllbnQhOiBzdHJpbmdbXTtcbiAgQElucHV0KCkgc2VuZEJ1dHRvblRleHRDb2xvciE6IHN0cmluZztcbiAgQElucHV0KCkgZnVsbFZpZXchOiBib29sZWFuO1xuICBASW5wdXQoKSBiZ0J1YmJsZUFpITogc3RyaW5nO1xuICBASW5wdXQoKSBiZ0J1YmJsZVVzZXIhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGNsb3NlQnV0dG9uYmdDb2xvciE6IHN0cmluZztcbiAgQElucHV0KCkgbWVzc2FnZVRleHRDb2xvckFpITogc3RyaW5nO1xuICBASW5wdXQoKSBtZXNzYWdlVGV4dENvbG9yVXNlciE6IHN0cmluZztcbiAgQElucHV0KCkgZGF0ZVRpbWVDb2xvciE6IHN0cmluZztcbiAgQElucHV0KCkgZGF0ZVRleHRDb2xvciE6IHN0cmluZztcbiAgQElucHV0KCkgZm9ybUZpZWxkQmdDb2xvciE6IHN0cmluZztcbiAgQElucHV0KCkgZm9ybUZpZWxkVGV4dENvbG9yITogc3RyaW5nO1xuICBASW5wdXQoKSB0aHVtYnNVcE1lc3NhZ2UhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRodW1ic0Rvd25NZXNzYWdlcyE6IHN0cmluZ1tdO1xuICBASW5wdXQoKSBldmVudE5hbWUhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGNyZWRlbnRpYWxzITogW107XG4gIEBJbnB1dCgpIHVua25vd25SZXNwb25zZXMhOiBbXTtcbiAgQElucHV0KCkgcnVsZXMhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGV2ZW50SWQhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHMyN1Rva2VuITogc3RyaW5nO1xuICBAT3V0cHV0KCkgdG9rZW5zUmVmcmVzaGVkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBJbnB1dCgpIHdvcmtzcGFjZVRva2VuITogc3RyaW5nO1xuICBASW5wdXQoKSBpc0RldiE6IGJvb2xlYW47XG4gIC8qKiBPcHRpb25hbCBBUEkgYmFzZSBVUkwgKGUuZy4gbmdyb2spLiBXaGVuIHNldCwgY2hhdC92b2ljZSB1c2UgdGhpcyBpbnN0ZWFkIG9mIGRldi9wcm9kIGRlZmF1bHQuICovXG4gIEBJbnB1dCgpIGJhc2VVcmw/OiBzdHJpbmc7XG4gIHZpc2libGUgPSBmYWxzZTtcblxuICB0b2dnbGUoKSB7XG4gICAgdGhpcy52aXNpYmxlID0gIXRoaXMudmlzaWJsZTtcbiAgfVxufVxuIiwiPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gY2xhc3M9XCJjaGF0LWJ1dHRvblwiIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJ0b2dnbGUoKVwiPlxuICA8bWF0LWljb24+Y2hhdDwvbWF0LWljb24+XG48L2J1dHRvbj5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cInZpc2libGVcIj5cbiAgPGhpdmVncHQtY2hhdC1kcmF3ZXItcGFja2FnZVxuICBbYXBpS2V5XT1cImFwaUtleVwiXG4gIFtiZ0J1YmJsZUFpXT1cImJnQnViYmxlQWlcIlxuICBbYmdCdWJibGVVc2VyXT1cImJnQnViYmxlVXNlclwiXG4gIFtiZ0dyYWRpZW50XT1cImJnR3JhZGllbnRcIlxuICBbYm90TmFtZV09XCJib3ROYW1lXCJcbiAgW2Nsb3NlQnV0dG9uYmdDb2xvcl09XCJjbG9zZUJ1dHRvbmJnQ29sb3JcIlxuICBbY2xvc2VCdXR0b25Db2xvcl09XCJjbG9zZUJ1dHRvbkNvbG9yXCJcbiAgW2NyZWRlbnRpYWxzXT1cImNyZWRlbnRpYWxzXCJcbiAgW2RhdGVUZXh0Q29sb3JdPVwiZGF0ZVRleHRDb2xvclwiXG4gIFtkYXRlVGltZUNvbG9yXT1cImRhdGVUaW1lQ29sb3JcIlxuICBbZXZlbnRJZF09XCJldmVudElkXCJcbiAgW2V2ZW50TmFtZV09XCJldmVudE5hbWVcIlxuICBbZm9ybUZpZWxkQmdDb2xvcl09XCJmb3JtRmllbGRCZ0NvbG9yXCJcbiAgW2Zvcm1GaWVsZFRleHRDb2xvcl09XCJmb3JtRmllbGRUZXh0Q29sb3JcIlxuICBbZnVsbFZpZXddPVwiZnVsbFZpZXdcIlxuICBbZ3JlZXRpbmddPVwiZ3JlZXRpbmdcIlxuICBbZ3JhZGllbnRDb2xvcnNdPVwiZ3JhZGllbnRDb2xvcnNcIlxuICBbbWVzc2FnZVRleHRDb2xvckFpXT1cIm1lc3NhZ2VUZXh0Q29sb3JBaVwiXG4gIFttZXNzYWdlVGV4dENvbG9yVXNlcl09XCJtZXNzYWdlVGV4dENvbG9yVXNlclwiXG4gIFtzZW5kQnV0dG9uQ29sb3JdPVwic2VuZEJ1dHRvbkNvbG9yXCJcbiAgW3NlbmRCdXR0b25UZXh0Q29sb3JdPVwic2VuZEJ1dHRvblRleHRDb2xvclwiXG4gIFtzaG93Q2xvc2VdPVwic2hvd0Nsb3NlXCJcbiAgW3RodW1ic0Rvd25NZXNzYWdlc109XCJ0aHVtYnNEb3duTWVzc2FnZXNcIlxuICBbdGh1bWJzVXBNZXNzYWdlXT1cInRodW1ic1VwTWVzc2FnZVwiXG4gIFt1bmtub3duUmVzcG9uc2VzXT1cInVua25vd25SZXNwb25zZXNcIlxuICBbdXNlT3BlbkFpXT1cInVzZU9wZW5BaVwiXG4gIFt1c2VySWRdPVwidXNlcklkXCJcbiAgW3VzZXJBdmF0YXJVcmxdPVwidXNlckF2YXRhclVybFwiXG4gIFt0aW1lem9uZV09XCJ0aW1lem9uZVwiXG4gIFtib3RJZF09XCJib3RJZFwiXG4gIFtzMjdUb2tlbl09XCJzMjdUb2tlblwiXG4gICh0b2tlbnNSZWZyZXNoZWQpPVwidG9rZW5zUmVmcmVzaGVkLmVtaXQoJGV2ZW50KVwiXG4gIFt3b3Jrc3BhY2VUb2tlbl09XCJ3b3Jrc3BhY2VUb2tlblwiXG4gIFtpc0Rldl09XCJpc0RldlwiXG4gIFtiYXNlVXJsXT1cImJhc2VVcmxcIlxuICA+XG4gIDwvaGl2ZWdwdC1jaGF0LWRyYXdlci1wYWNrYWdlPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -0,0 +1,58 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export class ConversationService {
5
+ constructor() {
6
+ this.conversationStorageKeyPrefix = 'conversationKey_';
7
+ this.sessionStorageKeyPrefix = 'sessionKey_';
8
+ this.userSpecificNotification = new Subject();
9
+ }
10
+ generateKey() {
11
+ const timestamp = Math.floor(new Date().getTime() / 1000).toString(16);
12
+ const randomHex = 'xxxxxxxxxxxxxxxx'.replace(/[x]/g, () => {
13
+ return Math.floor(Math.random() * 16).toString(16);
14
+ });
15
+ return timestamp + randomHex;
16
+ }
17
+ /**
18
+ * Returns a stable conversation id persisted in localStorage.
19
+ *
20
+ * IMPORTANT: call-sites should pass an event-specific scope when needed (e.g. eventId)
21
+ * so switching events does not reuse the previous event's conversation thread.
22
+ */
23
+ getKey(botId, resetKey = false, scope) {
24
+ const normalizedScope = scope != null && String(scope).trim() !== '' ? String(scope).trim() : '';
25
+ const storageKey = `${this.conversationStorageKeyPrefix}${botId}${normalizedScope ? `_${normalizedScope}` : ''}`;
26
+ let value = localStorage.getItem(storageKey);
27
+ if (!value || resetKey) {
28
+ value = this.generateKey();
29
+ localStorage.setItem(storageKey, value);
30
+ }
31
+ return value;
32
+ }
33
+ getSessionKey(sessionId, resetKey = false, scope) {
34
+ const normalizedScope = scope != null && String(scope).trim() !== '' ? String(scope).trim() : '';
35
+ const storageKey = `${this.sessionStorageKeyPrefix}${sessionId}${normalizedScope ? `_${normalizedScope}` : ''}`;
36
+ let value = localStorage.getItem(storageKey);
37
+ if (!value || resetKey) {
38
+ value = this.generateKey();
39
+ localStorage.setItem(storageKey, value);
40
+ }
41
+ return value;
42
+ }
43
+ sendValidatedUserData(message) {
44
+ this.userSpecificNotification.next(message);
45
+ }
46
+ getUserSpecificNotification() {
47
+ return this.userSpecificNotification.asObservable();
48
+ }
49
+ }
50
+ ConversationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ConversationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
51
+ ConversationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ConversationService, providedIn: 'root' });
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ConversationService, decorators: [{
53
+ type: Injectable,
54
+ args: [{
55
+ providedIn: 'root',
56
+ }]
57
+ }], ctorParameters: function () { return []; } });
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9oaXZlZ3B0L2V2ZW50c2dwdC1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9jb252ZXJzYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBSzNDLE1BQU0sT0FBTyxtQkFBbUI7SUFNOUI7UUFMUSxpQ0FBNEIsR0FBRyxrQkFBa0IsQ0FBQztRQUNsRCw0QkFBdUIsR0FBRyxhQUFhLENBQUM7UUFFeEMsNkJBQXdCLEdBQWlCLElBQUksT0FBTyxFQUFPLENBQUM7SUFFcEQsQ0FBQztJQUVqQixXQUFXO1FBQ1QsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN2RSxNQUFNLFNBQVMsR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRTtZQUN4RCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyRCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUMvQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsS0FBYSxFQUFFLFdBQW9CLEtBQUssRUFBRSxLQUFjO1FBQzdELE1BQU0sZUFBZSxHQUNuQixLQUFLLElBQUksSUFBSSxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzNFLE1BQU0sVUFBVSxHQUFHLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixHQUFHLEtBQUssR0FDN0QsZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLGVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUM1QyxFQUFFLENBQUM7UUFDSCxJQUFJLEtBQUssR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTdDLElBQUksQ0FBQyxLQUFLLElBQUksUUFBUSxFQUFFO1lBQ3RCLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDM0IsWUFBWSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDekM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxhQUFhLENBQUMsU0FBaUIsRUFBRSxXQUFvQixLQUFLLEVBQUUsS0FBYztRQUN4RSxNQUFNLGVBQWUsR0FDbkIsS0FBSyxJQUFJLElBQUksSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMzRSxNQUFNLFVBQVUsR0FBRyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxTQUFTLEdBQzVELGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFDNUMsRUFBRSxDQUFDO1FBQ0gsSUFBSSxLQUFLLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUU3QyxJQUFJLENBQUMsS0FBSyxJQUFJLFFBQVEsRUFBRTtZQUN0QixLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzNCLFlBQVksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ3pDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQscUJBQXFCLENBQUMsT0FBWTtRQUNoQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCwyQkFBMkI7UUFDekIsT0FBTyxJQUFJLENBQUMsd0JBQXdCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEQsQ0FBQzs7aUhBNURVLG1CQUFtQjtxSEFBbkIsbUJBQW1CLGNBRmxCLE1BQU07NEZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIENvbnZlcnNhdGlvblNlcnZpY2Uge1xuICBwcml2YXRlIGNvbnZlcnNhdGlvblN0b3JhZ2VLZXlQcmVmaXggPSAnY29udmVyc2F0aW9uS2V5Xyc7XG4gIHByaXZhdGUgc2Vzc2lvblN0b3JhZ2VLZXlQcmVmaXggPSAnc2Vzc2lvbktleV8nO1xuXG4gIHByaXZhdGUgdXNlclNwZWNpZmljTm90aWZpY2F0aW9uOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBnZW5lcmF0ZUtleSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHRpbWVzdGFtcCA9IE1hdGguZmxvb3IobmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwKS50b1N0cmluZygxNik7XG4gICAgY29uc3QgcmFuZG9tSGV4ID0gJ3h4eHh4eHh4eHh4eHh4eHgnLnJlcGxhY2UoL1t4XS9nLCAoKSA9PiB7XG4gICAgICByZXR1cm4gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTYpLnRvU3RyaW5nKDE2KTtcbiAgICB9KTtcbiAgICByZXR1cm4gdGltZXN0YW1wICsgcmFuZG9tSGV4O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzdGFibGUgY29udmVyc2F0aW9uIGlkIHBlcnNpc3RlZCBpbiBsb2NhbFN0b3JhZ2UuXG4gICAqXG4gICAqIElNUE9SVEFOVDogY2FsbC1zaXRlcyBzaG91bGQgcGFzcyBhbiBldmVudC1zcGVjaWZpYyBzY29wZSB3aGVuIG5lZWRlZCAoZS5nLiBldmVudElkKVxuICAgKiBzbyBzd2l0Y2hpbmcgZXZlbnRzIGRvZXMgbm90IHJldXNlIHRoZSBwcmV2aW91cyBldmVudCdzIGNvbnZlcnNhdGlvbiB0aHJlYWQuXG4gICAqL1xuICBnZXRLZXkoYm90SWQ6IHN0cmluZywgcmVzZXRLZXk6IGJvb2xlYW4gPSBmYWxzZSwgc2NvcGU/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRTY29wZSA9XG4gICAgICBzY29wZSAhPSBudWxsICYmIFN0cmluZyhzY29wZSkudHJpbSgpICE9PSAnJyA/IFN0cmluZyhzY29wZSkudHJpbSgpIDogJyc7XG4gICAgY29uc3Qgc3RvcmFnZUtleSA9IGAke3RoaXMuY29udmVyc2F0aW9uU3RvcmFnZUtleVByZWZpeH0ke2JvdElkfSR7XG4gICAgICBub3JtYWxpemVkU2NvcGUgPyBgXyR7bm9ybWFsaXplZFNjb3BlfWAgOiAnJ1xuICAgIH1gO1xuICAgIGxldCB2YWx1ZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHN0b3JhZ2VLZXkpO1xuXG4gICAgaWYgKCF2YWx1ZSB8fCByZXNldEtleSkge1xuICAgICAgdmFsdWUgPSB0aGlzLmdlbmVyYXRlS2V5KCk7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShzdG9yYWdlS2V5LCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgZ2V0U2Vzc2lvbktleShzZXNzaW9uSWQ6IHN0cmluZywgcmVzZXRLZXk6IGJvb2xlYW4gPSBmYWxzZSwgc2NvcGU/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRTY29wZSA9XG4gICAgICBzY29wZSAhPSBudWxsICYmIFN0cmluZyhzY29wZSkudHJpbSgpICE9PSAnJyA/IFN0cmluZyhzY29wZSkudHJpbSgpIDogJyc7XG4gICAgY29uc3Qgc3RvcmFnZUtleSA9IGAke3RoaXMuc2Vzc2lvblN0b3JhZ2VLZXlQcmVmaXh9JHtzZXNzaW9uSWR9JHtcbiAgICAgIG5vcm1hbGl6ZWRTY29wZSA/IGBfJHtub3JtYWxpemVkU2NvcGV9YCA6ICcnXG4gICAgfWA7XG4gICAgbGV0IHZhbHVlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oc3RvcmFnZUtleSk7XG5cbiAgICBpZiAoIXZhbHVlIHx8IHJlc2V0S2V5KSB7XG4gICAgICB2YWx1ZSA9IHRoaXMuZ2VuZXJhdGVLZXkoKTtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHN0b3JhZ2VLZXksIHZhbHVlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBzZW5kVmFsaWRhdGVkVXNlckRhdGEobWVzc2FnZTogYW55KSB7XG4gICAgdGhpcy51c2VyU3BlY2lmaWNOb3RpZmljYXRpb24ubmV4dChtZXNzYWdlKTtcbiAgfVxuXG4gIGdldFVzZXJTcGVjaWZpY05vdGlmaWNhdGlvbigpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLnVzZXJTcGVjaWZpY05vdGlmaWNhdGlvbi5hc09ic2VydmFibGUoKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,65 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "./conversation.service";
4
+ import * as i2 from "./NotificationSocket";
5
+ export class SocketService {
6
+ constructor(conversationService, notificationSocket) {
7
+ this.conversationService = conversationService;
8
+ this.notificationSocket = notificationSocket;
9
+ this.isCommonSocketInitialized = false;
10
+ this.isUserSpecificSocketInitialized = false;
11
+ this.isUserSpecificEventReleased = true;
12
+ this.messageQueue = [];
13
+ this.releaseInterval = 1000;
14
+ this.releaseIntervalId = null;
15
+ this.startReleasingMessages();
16
+ }
17
+ ngOnDestroy() {
18
+ if (this.releaseIntervalId) {
19
+ clearInterval(this.releaseIntervalId);
20
+ this.releaseIntervalId = null;
21
+ }
22
+ }
23
+ isSocketInitialized(isCommon) {
24
+ return isCommon
25
+ ? this.isCommonSocketInitialized
26
+ : this.isUserSpecificSocketInitialized &&
27
+ !this.isUserSpecificEventReleased;
28
+ }
29
+ disconnectSocketConnection() {
30
+ this.notificationSocket.disconnect();
31
+ }
32
+ connectSocketConnection() {
33
+ this.notificationSocket.connect();
34
+ }
35
+ registerUserSpecificHiveSocket(botId, conversation_id, org_id) {
36
+ const commonNotification = 'commonNotification';
37
+ const groupId = `Hive_AI_Notifs_${botId}_${conversation_id}`;
38
+ const groupId_org = `Hive_AI_Notifs_${org_id}`;
39
+ this.notificationSocket.emit('joinData', { groupId });
40
+ this.notificationSocket.emit('joinData', { groupId: groupId_org });
41
+ this.notificationSocket.fromEvent(commonNotification).subscribe((res) => {
42
+ this.conversationService.sendValidatedUserData(res);
43
+ }, (error) => {
44
+ console.error('Error receiving commonNotification:', error);
45
+ });
46
+ }
47
+ startReleasingMessages() {
48
+ if (!this.releaseIntervalId) {
49
+ this.releaseIntervalId = setInterval(() => {
50
+ if (this.messageQueue.length > 0) {
51
+ const message = this.messageQueue.shift();
52
+ }
53
+ }, this.releaseInterval);
54
+ }
55
+ }
56
+ }
57
+ SocketService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SocketService, deps: [{ token: i1.ConversationService }, { token: i2.NotificationSocket }], target: i0.ɵɵFactoryTarget.Injectable });
58
+ SocketService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SocketService, providedIn: 'root' });
59
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SocketService, decorators: [{
60
+ type: Injectable,
61
+ args: [{
62
+ providedIn: 'root',
63
+ }]
64
+ }], ctorParameters: function () { return [{ type: i1.ConversationService }, { type: i2.NotificationSocket }]; } });
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ja2V0LXNlcnZpY2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2hpdmVncHQvZXZlbnRzZ3B0LWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL3NvY2tldC1zZXJ2aWNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQzs7OztBQVF0RCxNQUFNLE9BQU8sYUFBYTtJQVF4QixZQUNVLG1CQUF3QyxFQUN4QyxrQkFBc0M7UUFEdEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBVHhDLDhCQUF5QixHQUFHLEtBQUssQ0FBQztRQUNsQyxvQ0FBK0IsR0FBRyxLQUFLLENBQUM7UUFDeEMsZ0NBQTJCLEdBQUcsSUFBSSxDQUFDO1FBQ25DLGlCQUFZLEdBQVUsRUFBRSxDQUFDO1FBQ3pCLG9CQUFlLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLHNCQUFpQixHQUEwQyxJQUFJLENBQUM7UUFNdEUsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQixhQUFhLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDdEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztTQUMvQjtJQUNILENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxRQUFpQjtRQUNuQyxPQUFPLFFBQVE7WUFDYixDQUFDLENBQUMsSUFBSSxDQUFDLHlCQUF5QjtZQUNoQyxDQUFDLENBQUMsSUFBSSxDQUFDLCtCQUErQjtnQkFDdEMsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUM7SUFDdEMsQ0FBQztJQUVELDBCQUEwQjtRQUN4QixJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVELHVCQUF1QjtRQUNyQixJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELDhCQUE4QixDQUFDLEtBQWEsRUFBRSxlQUF1QixFQUFFLE1BQWM7UUFDbkYsTUFBTSxrQkFBa0IsR0FBRyxvQkFBb0IsQ0FBQztRQUNoRCxNQUFNLE9BQU8sR0FBRyxrQkFBa0IsS0FBSyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQzdELE1BQU0sV0FBVyxHQUFHLGtCQUFrQixNQUFNLEVBQUUsQ0FBQztRQUUvQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUVuRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLENBQUMsU0FBUyxDQUM3RCxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQ1gsSUFBSSxDQUFDLG1CQUFtQixDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RELENBQUMsRUFDRCxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyxxQ0FBcUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM5RCxDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTyxzQkFBc0I7UUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMzQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRTtnQkFDeEMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7b0JBQ2hDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7aUJBQzNDO1lBQ0gsQ0FBQyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUMxQjtJQUNILENBQUM7OzJHQS9EVSxhQUFhOytHQUFiLGFBQWEsY0FGWixNQUFNOzRGQUVQLGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IENvbnZlcnNhdGlvblNlcnZpY2UgfSBmcm9tICcuL2NvbnZlcnNhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNvY2tldCB9IGZyb20gJy4vTm90aWZpY2F0aW9uU29ja2V0JztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNvY2tldFNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIGlzQ29tbW9uU29ja2V0SW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBpc1VzZXJTcGVjaWZpY1NvY2tldEluaXRpYWxpemVkID0gZmFsc2U7XG4gIHByaXZhdGUgaXNVc2VyU3BlY2lmaWNFdmVudFJlbGVhc2VkID0gdHJ1ZTtcbiAgcHJpdmF0ZSBtZXNzYWdlUXVldWU6IGFueVtdID0gW107XG4gIHByaXZhdGUgcmVsZWFzZUludGVydmFsID0gMTAwMDtcbiAgcHJpdmF0ZSByZWxlYXNlSW50ZXJ2YWxJZDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0SW50ZXJ2YWw+IHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjb252ZXJzYXRpb25TZXJ2aWNlOiBDb252ZXJzYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgbm90aWZpY2F0aW9uU29ja2V0OiBOb3RpZmljYXRpb25Tb2NrZXRcbiAgKSB7XG4gICAgdGhpcy5zdGFydFJlbGVhc2luZ01lc3NhZ2VzKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZWxlYXNlSW50ZXJ2YWxJZCkge1xuICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLnJlbGVhc2VJbnRlcnZhbElkKTtcbiAgICAgIHRoaXMucmVsZWFzZUludGVydmFsSWQgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGlzU29ja2V0SW5pdGlhbGl6ZWQoaXNDb21tb246IGJvb2xlYW4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNDb21tb25cbiAgICAgID8gdGhpcy5pc0NvbW1vblNvY2tldEluaXRpYWxpemVkXG4gICAgICA6IHRoaXMuaXNVc2VyU3BlY2lmaWNTb2NrZXRJbml0aWFsaXplZCAmJlxuICAgICAgIXRoaXMuaXNVc2VyU3BlY2lmaWNFdmVudFJlbGVhc2VkO1xuICB9XG5cbiAgZGlzY29ubmVjdFNvY2tldENvbm5lY3Rpb24oKTogdm9pZCB7XG4gICAgdGhpcy5ub3RpZmljYXRpb25Tb2NrZXQuZGlzY29ubmVjdCgpO1xuICB9XG5cbiAgY29ubmVjdFNvY2tldENvbm5lY3Rpb24oKTogdm9pZCB7XG4gICAgdGhpcy5ub3RpZmljYXRpb25Tb2NrZXQuY29ubmVjdCgpO1xuICB9XG5cbiAgcmVnaXN0ZXJVc2VyU3BlY2lmaWNIaXZlU29ja2V0KGJvdElkOiBzdHJpbmcsIGNvbnZlcnNhdGlvbl9pZDogc3RyaW5nLCBvcmdfaWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGNvbW1vbk5vdGlmaWNhdGlvbiA9ICdjb21tb25Ob3RpZmljYXRpb24nO1xuICAgIGNvbnN0IGdyb3VwSWQgPSBgSGl2ZV9BSV9Ob3RpZnNfJHtib3RJZH1fJHtjb252ZXJzYXRpb25faWR9YDtcbiAgICBjb25zdCBncm91cElkX29yZyA9IGBIaXZlX0FJX05vdGlmc18ke29yZ19pZH1gO1xuXG4gICAgdGhpcy5ub3RpZmljYXRpb25Tb2NrZXQuZW1pdCgnam9pbkRhdGEnLCB7IGdyb3VwSWQgfSk7XG4gICAgdGhpcy5ub3RpZmljYXRpb25Tb2NrZXQuZW1pdCgnam9pbkRhdGEnLCB7IGdyb3VwSWQ6IGdyb3VwSWRfb3JnIH0pO1xuXG4gICAgdGhpcy5ub3RpZmljYXRpb25Tb2NrZXQuZnJvbUV2ZW50KGNvbW1vbk5vdGlmaWNhdGlvbikuc3Vic2NyaWJlKFxuICAgICAgKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuY29udmVyc2F0aW9uU2VydmljZS5zZW5kVmFsaWRhdGVkVXNlckRhdGEocmVzKTtcbiAgICAgIH0sXG4gICAgICAoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciByZWNlaXZpbmcgY29tbW9uTm90aWZpY2F0aW9uOicsIGVycm9yKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGFydFJlbGVhc2luZ01lc3NhZ2VzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5yZWxlYXNlSW50ZXJ2YWxJZCkge1xuICAgICAgdGhpcy5yZWxlYXNlSW50ZXJ2YWxJZCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMubWVzc2FnZVF1ZXVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5tZXNzYWdlUXVldWUuc2hpZnQoKTtcbiAgICAgICAgfVxuICAgICAgfSwgdGhpcy5yZWxlYXNlSW50ZXJ2YWwpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,244 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class TranslationService {
4
+ constructor() {
5
+ this.eventId = null;
6
+ this.translationsData = [
7
+ {
8
+ Key: "Copy",
9
+ DefaultValue: "Copy",
10
+ Translations: {
11
+ en: "Copy",
12
+ fr: "Copier",
13
+ it: "Copia",
14
+ es: "Copiar",
15
+ de: "Kopieren",
16
+ "pt-br": "Copiar",
17
+ ar: "نسخ",
18
+ zh: "复制",
19
+ ru: "Копировать"
20
+ }
21
+ },
22
+ {
23
+ Key: "May I assist you with anything else",
24
+ DefaultValue: "Great. May I assist you with anything else?",
25
+ Translations: {
26
+ en: "Great. May I assist you with anything else?",
27
+ fr: "Parfait. Puis-je vous aider avec autre chose ?",
28
+ it: "Perfetto. Posso aiutarti con qualcos'altro?",
29
+ es: "Genial. ¿Puedo ayudarte con algo más?",
30
+ de: "Super. Kann ich Ihnen noch bei etwas anderem helfen?",
31
+ "pt-br": "Ótimo. Posso ajudar com mais alguma coisa?",
32
+ ar: "رائع. هل يمكنني مساعدتك في أي شيء آخر؟",
33
+ zh: "太好了。还有什么我可以帮您的吗?",
34
+ ru: "Отлично. Могу ли я помочь вам с чем-то ещё?"
35
+ }
36
+ },
37
+ {
38
+ Key: "We are sorry we've not been able to answer your question",
39
+ DefaultValue: "We are sorry we've not been able to answer your question. However, our dedicated support team is happy to help. Please <a href=\"mailto:support@social27.com\">click here</a> and a human agent will assist you as soon as possible.",
40
+ Translations: {
41
+ en: "We are sorry we've not been able to answer your question. However, our dedicated support team is happy to help. Please <a href=\"mailto:support@social27.com\">click here</a> and a human agent will assist you as soon as possible.",
42
+ fr: "Nous sommes désolés de ne pas avoir pu répondre à votre question. Cependant, notre équipe d'assistance se fera un plaisir de vous aider. Veuillez <a href=\"mailto:support@social27.com\">cliquer ici</a> et un agent humain vous assistera dès que possible.",
43
+ it: "Ci dispiace di non essere riusciti a rispondere alla tua domanda. Tuttavia, il nostro team di supporto dedicato sarà lieto di aiutarti. Ti preghiamo di <a href=\"mailto:support@social27.com\">fare clic qui</a> e un operatore umano ti assisterà al più presto.",
44
+ es: "Lamentamos no haber podido responder a tu pregunta. Sin embargo, nuestro equipo de soporte estará encantado de ayudarte. Por favor, <a href=\"mailto:support@social27.com\">haz clic aquí</a> y un agente humano te asistirá lo antes posible.",
45
+ de: "Es tut uns leid, dass wir Ihre Frage nicht beantworten konnten. Unser engagiertes Support-Team hilft Ihnen jedoch gerne weiter. Bitte <a href=\"mailto:support@social27.com\">klicken Sie hier</a>, und ein menschlicher Mitarbeiter wird Ihnen so bald wie möglich helfen.",
46
+ "pt-br": "Lamentamos não ter conseguido responder à sua pergunta. No entanto, nossa equipe de suporte dedicada ficará feliz em ajudar. Por favor, <a href=\"mailto:support@social27.com\">clique aqui</a> e um agente humano o ajudará o mais rápido possível.",
47
+ ar: "نأسف لعدم تمكننا من الإجابة على سؤالك. ومع ذلك، يسعد فريق الدعم المخصص لدينا بمساعدتك. يرجى <a href=\"mailto:support@social27.com\">النقر هنا</a> وسيساعدك أحد الوكلاء البشريين في أقرب وقت ممكن.",
48
+ zh: "很抱歉我们未能回答您的问题。不过,我们的专属支持团队很乐意为您提供帮助。请<a href=\"mailto:support@social27.com\">点击这里</a>,人工客服将尽快为您提供协助。",
49
+ ru: "К сожалению, мы не смогли ответить на ваш вопрос. Однако наша служба поддержки с радостью вам поможет. Пожалуйста, <a href=\"mailto:support@social27.com\">нажмите здесь</a>, и наш оператор свяжется с вами как можно скорее."
50
+ }
51
+ },
52
+ {
53
+ Key: 'Ask anything',
54
+ DefaultValue: 'Ask anything',
55
+ Translations: {
56
+ en: 'Ask anything',
57
+ fr: 'Demandez ce que vous voulez',
58
+ it: 'Chiedi qualsiasi cosa',
59
+ es: 'Pregunta lo que quieras',
60
+ de: 'Frag alles',
61
+ 'pt-br': 'Pergunte qualquer coisa',
62
+ ar: 'اسأل أي شيء',
63
+ zh: '随便问',
64
+ ru: 'Спросите что угодно',
65
+ },
66
+ },
67
+ {
68
+ Key: 'Assistant',
69
+ DefaultValue: 'Assistant',
70
+ Translations: {
71
+ en: 'Assistant',
72
+ fr: 'Assistant',
73
+ it: 'Assistente',
74
+ es: 'Asistente',
75
+ de: 'Assistent',
76
+ 'pt-br': 'Assistente',
77
+ ar: 'مساعد',
78
+ zh: '助手',
79
+ ru: 'Ассистент',
80
+ },
81
+ },
82
+ {
83
+ Key: 'Your personal or company information is kept private and secure within this chat.',
84
+ DefaultValue: 'Your personal or company information is kept private and secure within this chat.',
85
+ Translations: {
86
+ en: 'Your personal or company information is kept private and secure within this chat.',
87
+ fr: 'Vos informations personnelles ou celles de votre entreprise sont conservées privées et sécurisées dans cette conversation.',
88
+ it: "Le tue informazioni personali o aziendali sono mantenute private e sicure all'interno di questa chat.",
89
+ es: 'Tu información personal o de la empresa se mantiene privada y segura dentro de este chat.',
90
+ de: 'Ihre persönlichen oder geschäftlichen Informationen bleiben in diesem Chat privat und sicher.',
91
+ 'pt-br': 'Suas informações pessoais ou da empresa são mantidas privadas e seguras dentro deste chat.',
92
+ ar: 'تظل معلوماتك الشخصية أو معلومات شركتك خاصة وآمنة داخل هذه المحادثة.',
93
+ zh: '您的个人或公司信息在此聊天中保持私密和安全。',
94
+ ru: 'Ваша личная или корпоративная информация остается конфиденциальной и защищенной в этом чате.',
95
+ },
96
+ },
97
+ {
98
+ Key: 'Send message',
99
+ DefaultValue: 'Send message',
100
+ Translations: {
101
+ en: 'Send message',
102
+ fr: 'Envoyer un message',
103
+ it: 'Invia messaggio',
104
+ es: 'Enviar mensaje',
105
+ de: 'Nachricht senden',
106
+ 'pt-br': 'Enviar mensagem',
107
+ ar: 'إرسال رسالة',
108
+ zh: '发送消息',
109
+ ru: 'Отправить сообщение',
110
+ },
111
+ },
112
+ {
113
+ Key: 'Platform GPT',
114
+ DefaultValue: 'Platform GPT',
115
+ Translations: {
116
+ en: 'Platform GPT',
117
+ fr: 'Plateforme GPT',
118
+ it: 'Piattaforma GPT',
119
+ es: 'Plataforma GPT',
120
+ de: 'Plattform GPT',
121
+ 'pt-br': 'Plataforma GPT',
122
+ ar: 'منصة GPT',
123
+ zh: '平台 GPT',
124
+ ru: 'Платформа GPT',
125
+ },
126
+ },
127
+ {
128
+ Key: 'New Chat',
129
+ DefaultValue: 'New Chat',
130
+ Translations: {
131
+ en: 'New Chat',
132
+ fr: 'Nouvelle conversation',
133
+ it: 'Nuova chat',
134
+ es: 'Nuevo chat',
135
+ de: 'Neuer Chat',
136
+ 'pt-br': 'Novo chat',
137
+ ar: 'محادثة جديدة',
138
+ zh: '新聊天',
139
+ ru: 'Новый чат',
140
+ },
141
+ },
142
+ {
143
+ Key: 'You',
144
+ DefaultValue: 'You',
145
+ Translations: {
146
+ en: 'You',
147
+ fr: 'Vous',
148
+ it: 'Tu',
149
+ es: 'Tú',
150
+ de: 'Du',
151
+ 'pt-br': 'Você',
152
+ ar: 'أنت',
153
+ zh: '您',
154
+ ru: 'Вы',
155
+ },
156
+ },
157
+ {
158
+ Key: 'Write your message',
159
+ DefaultValue: 'Write your message',
160
+ Translations: {
161
+ en: 'Write your message',
162
+ fr: 'Écrivez votre message',
163
+ it: 'Scrivi il tuo messaggio',
164
+ es: 'Escribe tu mensaje',
165
+ de: 'Schreiben Sie Ihre Nachricht',
166
+ 'pt-br': 'Escreva sua mensagem',
167
+ ar: 'اكتب رسالتك',
168
+ zh: '写下您的消息',
169
+ ru: 'Напишите ваше сообщение',
170
+ },
171
+ },
172
+ {
173
+ Key: 'Send',
174
+ DefaultValue: 'Send',
175
+ Translations: {
176
+ en: 'Send',
177
+ fr: 'Envoyer',
178
+ it: 'Invia',
179
+ es: 'Enviar',
180
+ de: 'Senden',
181
+ 'pt-br': 'Enviar',
182
+ ar: 'إرسال',
183
+ zh: '发送',
184
+ ru: 'Отправить',
185
+ },
186
+ },
187
+ {
188
+ Key: 'Call Interface',
189
+ DefaultValue: 'Call Interface',
190
+ Translations: {
191
+ en: 'Call Interface',
192
+ fr: "Interface d'appel",
193
+ it: 'Interfaccia chiamata',
194
+ es: 'Interfaz de llamada',
195
+ de: 'Anrufoberfläche',
196
+ 'pt-br': 'Interface de chamada',
197
+ ar: 'واجهة الاتصال',
198
+ zh: '呼叫界面',
199
+ ru: 'Интерфейс звонка',
200
+ },
201
+ },
202
+ {
203
+ Key: 'Close',
204
+ DefaultValue: 'Close',
205
+ Translations: {
206
+ en: 'Close',
207
+ fr: 'Fermer',
208
+ it: 'Chiudi',
209
+ es: 'Cerrar',
210
+ de: 'Schließen',
211
+ 'pt-br': 'Fechar',
212
+ ar: 'إغلاق',
213
+ zh: '关闭',
214
+ ru: 'Закрыть',
215
+ },
216
+ },
217
+ ];
218
+ }
219
+ setEventId(id) {
220
+ this.eventId = id;
221
+ }
222
+ getTranslation(key) {
223
+ const lang = (localStorage.getItem('defaultLanguage-' + this.eventId) || 'en').replace(/^"|"$/g, '');
224
+ const entry = this.translationsData.find((item) => item.Key === key);
225
+ if (!entry) {
226
+ return key; // fallback
227
+ }
228
+ return entry.Translations[lang] || entry.DefaultValue || key;
229
+ }
230
+ getLang(eventId) {
231
+ const suffix = eventId ? `-${eventId}` : '';
232
+ const storageKey = `defaultLanguage${suffix}`;
233
+ return localStorage.getItem(storageKey) || 'en';
234
+ }
235
+ }
236
+ TranslationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TranslationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
237
+ TranslationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TranslationService, providedIn: 'root' });
238
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TranslationService, decorators: [{
239
+ type: Injectable,
240
+ args: [{
241
+ providedIn: 'root',
242
+ }]
243
+ }] });
244
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2hpdmVncHQvZXZlbnRzZ3B0LWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL3RyYW5zbGF0aW9ucy90cmFuc2xhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzNDLE1BQU0sT0FBTyxrQkFBa0I7SUFIL0I7UUFJVSxZQUFPLEdBQWtCLElBQUksQ0FBQztRQTJCOUIscUJBQWdCLEdBQVU7WUFDaEM7Z0JBQ0YsR0FBRyxFQUFFLE1BQU07Z0JBQ1gsWUFBWSxFQUFFLE1BQU07Z0JBQ3BCLFlBQVksRUFBRTtvQkFDWixFQUFFLEVBQUUsTUFBTTtvQkFDVixFQUFFLEVBQUUsUUFBUTtvQkFDWixFQUFFLEVBQUUsT0FBTztvQkFDWCxFQUFFLEVBQUUsUUFBUTtvQkFDWixFQUFFLEVBQUUsVUFBVTtvQkFDZCxPQUFPLEVBQUUsUUFBUTtvQkFDakIsRUFBRSxFQUFFLEtBQUs7b0JBQ1QsRUFBRSxFQUFFLElBQUk7b0JBQ1IsRUFBRSxFQUFFLFlBQVk7aUJBQ2pCO2FBQ0Y7WUFFRztnQkFFQSxHQUFHLEVBQUUscUNBQXFDO2dCQUMxQyxZQUFZLEVBQUUsNkNBQTZDO2dCQUMzRCxZQUFZLEVBQUU7b0JBQ1YsRUFBRSxFQUFFLDZDQUE2QztvQkFDakQsRUFBRSxFQUFFLGdEQUFnRDtvQkFDcEQsRUFBRSxFQUFFLDZDQUE2QztvQkFDakQsRUFBRSxFQUFFLHVDQUF1QztvQkFDM0MsRUFBRSxFQUFFLHNEQUFzRDtvQkFDMUQsT0FBTyxFQUFFLDRDQUE0QztvQkFDckQsRUFBRSxFQUFFLHdDQUF3QztvQkFDNUMsRUFBRSxFQUFFLGtCQUFrQjtvQkFDdEIsRUFBRSxFQUFFLDZDQUE2QztpQkFDcEQ7YUFDSjtZQUNHO2dCQUNBLEdB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QUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUVyRSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsT0FBTyxHQUFHLENBQUMsQ0FBQyxXQUFXO1NBQ3hCO1FBRUQsT0FBTyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxZQUFZLElBQUksR0FBRyxDQUFDO0lBQy9ELENBQUM7SUFFTyxPQUFPLENBQUMsT0FBdUI7UUFDckMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDNUMsTUFBTSxVQUFVLEdBQUcsa0JBQWtCLE1BQU0sRUFBRSxDQUFDO1FBRTlDLE9BQU8sWUFBWSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFJLENBQUM7SUFDbEQsQ0FBQzs7Z0hBMUJVLGtCQUFrQjtvSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07NEZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFRyYW5zbGF0aW9uU2VydmljZSB7XG4gIHByaXZhdGUgZXZlbnRJZDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgc2V0RXZlbnRJZChpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5ldmVudElkID0gaWQ7XG4gIH1cblxuICBnZXRUcmFuc2xhdGlvbihrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgbGFuZyA9IChcbiAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdkZWZhdWx0TGFuZ3VhZ2UtJyArIHRoaXMuZXZlbnRJZCkgfHwgJ2VuJ1xuICAgICkucmVwbGFjZSgvXlwifFwiJC9nLCAnJyk7XG5cbiAgICBjb25zdCBlbnRyeSA9IHRoaXMudHJhbnNsYXRpb25zRGF0YS5maW5kKChpdGVtKSA9PiBpdGVtLktleSA9PT0ga2V5KTtcblxuICAgIGlmICghZW50cnkpIHtcbiAgICAgIHJldHVybiBrZXk7IC8vIGZhbGxiYWNrXG4gICAgfVxuXG4gICAgcmV0dXJuIGVudHJ5LlRyYW5zbGF0aW9uc1tsYW5nXSB8fCBlbnRyeS5EZWZhdWx0VmFsdWUgfHwga2V5O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRMYW5nKGV2ZW50SWQ/OiBzdHJpbmcgfCBudWxsKTogc3RyaW5nIHtcbiAgICBjb25zdCBzdWZmaXggPSBldmVudElkID8gYC0ke2V2ZW50SWR9YCA6ICcnO1xuICAgIGNvbnN0IHN0b3JhZ2VLZXkgPSBgZGVmYXVsdExhbmd1YWdlJHtzdWZmaXh9YDtcblxuICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShzdG9yYWdlS2V5KSB8fCAnZW4nO1xuICB9XG5cbiAgcHJpdmF0ZSB0cmFuc2xhdGlvbnNEYXRhOiBhbnlbXSA9IFtcbiAgICB7XG4gIEtleTogXCJDb3B5XCIsXG4gIERlZmF1bHRWYWx1ZTogXCJDb3B5XCIsXG4gIFRyYW5zbGF0aW9uczoge1xuICAgIGVuOiBcIkNvcHlcIixcbiAgICBmcjogXCJDb3BpZXJcIixcbiAgICBpdDogXCJDb3BpYVwiLFxuICAgIGVzOiBcIkNvcGlhclwiLFxuICAgIGRlOiBcIktvcGllcmVuXCIsXG4gICAgXCJwdC1iclwiOiBcIkNvcGlhclwiLFxuICAgIGFyOiBcItmG2LPYrlwiLFxuICAgIHpoOiBcIuWkjeWItlwiLFxuICAgIHJ1OiBcItCa0L7Qv9C40YDQvtCy0LDRgtGMXCJcbiAgfVxufVxuLFxuICAgIHtcblxuICAgIEtleTogXCJNYXkgSSBhc3Npc3QgeW91IHdpdGggYW55dGhpbmcgZWxzZVwiLFxuICAgIERlZmF1bHRWYWx1ZTogXCJHcmVhdC4gTWF5IEkgYXNzaXN0IHlvdSB3aXRoIGFueXRoaW5nIGVsc2U/XCIsXG4gICAgVHJhbnNsYXRpb25zOiB7XG4gICAgICAgIGVuOiBcIkdyZWF0LiBNYXkgSSBhc3Npc3QgeW91IHdpdGggYW55dGhpbmcgZWxzZT9cIixcbiAgICAgICAgZnI6IFwiUGFyZmFpdC4gUHVpcy1qZSB2b3VzIGFpZGVyIGF2ZWMgYXV0cmUgY2hvc2UgP1wiLFxuICAgICAgICBpdDogXCJQZXJmZXR0by4gUG9zc28gYWl1dGFydGkgY29uIHF1YWxjb3MnYWx0cm8/XCIsXG4gICAgICAgIGVzOiBcIkdlbmlhbC4gwr9QdWVkbyBheXVkYXJ0ZSBjb24gYWxnbyBtw6FzP1wiLFxuICAgICAgICBkZTogXCJTdXBlci4gS2FubiBpY2ggSWhuZW4gbm9jaCBiZWkgZXR3YXMgYW5kZXJlbSBoZWxmZW4/XCIsXG4gICAgICAgIFwicHQtYnJcIjogXCLDk3RpbW8uIFBvc3NvIGFqdWRhciBjb20gbWFpcyBhbGd1bWEgY29pc2E/XCIsXG4gICAgICAgIGFyOiBcItix2KfYpti5LiDZh9mEINmK2YXZg9mG2YbZiiDZhdiz2KfYudiv2KrZgyDZgdmKINij2Yog2LTZitihINii2K7YsdifXCIsXG4gICAgICAgIHpoOiBcIuWkquWlveS6huOAgui/mOacieS7gOS5iOaIkeWPr+S7peW4ruaCqOeahOWQl++8n1wiLFxuICAgICAgICBydTogXCLQntGC0LvQuNGH0L3Qvi4g0JzQvtCz0YMg0LvQuCDRjyDQv9C+0LzQvtGH0Ywg0LLQsNC8INGBINGH0LXQvC3RgtC+INC10YnRkT9cIlxuICAgIH1cbn0sXG4gICAge1xuICAgIEtleTogXCJXZSBhcmUgc29ycnkgd2UndmUgbm90IGJlZW4gYWJsZSB0byBhbnN3ZXIgeW91ciBxdWVzdGlvblwiLFxuICAgIERlZmF1bHRWYWx1ZTogXCJXZSBhcmUgc29ycnkgd2UndmUgbm90IGJlZW4gYWJsZSB0byBhbnN3ZXIgeW91ciBxdWVzdGlvbi4gSG93ZXZlciwgb3VyIGRlZGljYXRlZCBzdXBwb3J0IHRlYW0gaXMgaGFwcHkgdG8gaGVscC4gUGxlYXNlIDxhIGhyZWY9XFxcIm1haWx0bzpzdXBwb3J0QHNvY2lhbDI3LmNvbVxcXCI+Y2xpY2sgaGVyZTwvYT4gYW5kIGEgaHVtYW4gYWdlbnQgd2lsbCBhc3Npc3QgeW91IGFzIHNvb24gYXMgcG9zc2libGUuXCIsXG4gICAgVHJhbnNsYXRpb25zOiB7XG4gICAgICAgIGVuOiBcIldlIGFyZSBzb3JyeSB3ZSd2ZSBub3QgYmVlbiBhYmxlIHRvIGFuc3dlciB5b3VyIHF1ZXN0aW9uLiBIb3dldmVyLCBvdXIgZGVkaWNhdGVkIHN1cHBvcnQgdGVhbSBpcyBoYXBweSB0byBoZWxwLiBQbGVhc2UgPGEgaHJlZj1cXFwibWFpbHRvOnN1cHBvcnRAc29jaWFsMjcuY29tXFxcIj5jbGljayBoZXJlPC9hPiBhbmQgYSBodW1hbiBhZ2VudCB3aWxsIGFzc2lzdCB5b3UgYXMgc29vbiBhcyBwb3NzaWJsZS5cIixcbiAgICAgICAgZnI6IFwiTm91cyBzb21tZXMgZMOpc29sw6lzIGRlIG5lIHBhcyBhdm9pciBwdSByw6lwb25kcmUgw6Agdm90cmUgcXVlc3Rpb24uIENlcGVuZGFudCwgbm90cmUgw6lxdWlwZSBkJ2Fzc2lzdGFuY2Ugc2UgZmVyYSB1biBwbGFpc2lyIGRlIHZvdXMgYWlkZXIuIFZldWlsbGV6IDxhIGhyZWY9XFxcIm1haWx0bzpzdXBwb3J0QHNvY2lhbDI3LmNvbVxcXCI+Y2xpcXVlciBpY2k8L2E+IGV0IHVuIGFnZW50IGh1bWFpbiB2b3VzIGFzc2lzdGVyYSBkw6hzIHF1ZSBwb3NzaWJsZS5cIixcbiAgICAgICAgaXQ6IFwiQ2kgZGlzcGlhY2UgZGkgbm9uIGVzc2VyZSByaXVzY2l0aSBhIHJpc3BvbmRlcmUgYWxsYSB0dWEgZG9tYW5kYS4gVHV0dGF2aWEsIGlsIG5vc3RybyB0ZWFtIGRpIHN1cHBvcnRvIGRlZGljYXRvIHNhcsOgIGxpZXRvIGRpIGFpdXRhcnRpLiBUaSBwcmVnaGlhbW8gZGkgPGEgaHJlZj1cXFwibWFpbHRvOnN1cHBvcnRAc29jaWFsMjcuY29tXFxcIj5mYXJlIGNsaWMgcXVpPC9hPiBlIHVuIG9wZXJhdG9yZSB1bWFubyB0aSBhc3Npc3RlcsOgIGFsIHBpw7kgcHJlc3RvLlwiLFxuICAgICAgICBlczogXCJMYW1lbnRhbW9zIG5vIGhhYmVyIHBvZGlkbyByZXNwb25kZXIgYSB0dSBwcmVndW50YS4gU2luIGVtYmFyZ28sIG51ZXN0cm8gZXF1aXBvIGRlIHNvcG9ydGUgZXN0YXLDoSBlbmNhbnRhZG8gZGUgYXl1ZGFydGUuIFBvciBmYXZvciwgPGEgaHJlZj1cXFwibWFpbHRvOnN1cHBvcnRAc29jaWFsMjcuY29tXFxcIj5oYXogY2xpYyBhcXXDrTwvYT4geSB1biBhZ2VudGUgaHVtYW5vIHRlIGFzaXN0aXLDoSBsbyBhbnRlcyBwb3NpYmxlLlwiLFxuICAgICAgICBkZTogXCJFcyB0dXQgdW5zIGxlaWQsIGRhc3Mgd2lyIElocmUgRnJhZ2UgbmljaHQgYmVhbnR3b3J0ZW4ga29ubnRlbi4gVW5zZXIgZW5nYWdpZXJ0ZXMgU3VwcG9ydC1UZWFtIGhpbGZ0IElobmVuIGplZG9jaCBnZXJuZSB3ZWl0ZXIuIEJpdHRlIDxhIGhyZWY9XFxcIm1haWx0bzpzdXBwb3J0QHNvY2lhbDI3LmNvbVxcXCI+a2xpY2tlbiBTaWUgaGllcjwvYT4sIHVuZCBlaW4gbWVuc2NobGljaGVyIE1pdGFyYmVpdGVyIHdpcmQgSWhuZW4gc28gYmFsZCB3aWUgbcO2Z2xpY2ggaGVsZmVuLlwiLFxuICAgICAgICBcInB0LWJyXCI6IFwiTGFtZW50YW1vcyBuw6NvIHRlciBjb25zZWd1aWRvIHJlc3BvbmRlciDDoCBzdWEgcGVyZ3VudGEuIE5vIGVudGFudG8sIG5vc3NhIGVxdWlwZSBkZSBzdXBvcnRlIGRlZGljYWRhIGZpY2Fyw6EgZmVsaXogZW0gYWp1ZGFyLiBQb3IgZmF2b3IsIDxhIGhyZWY9XFxcIm1haWx0bzpzdXBwb3J0QHNvY2lhbDI3LmNvbVxcXCI+Y2xpcXVlIGFxdWk8L2E+IGUgdW0gYWdlbnRlIGh1bWFubyBvIGFqdWRhcsOhIG8gbWFpcyByw6FwaWRvIHBvc3PDrXZlbC5cIixcbiAgICAgICAgYXI6IFwi2YbYo9iz2YEg2YTYudiv2YUg2KrZhdmD2YbZhtinINmF2YYg2KfZhNil2KzYp9io2Kkg2LnZhNmJINiz2KTYp9mE2YMuINmI2YXYuSDYsNmE2YPYjCDZitiz2LnYryDZgdix2YrZgiDYp9mE2K/YudmFINin2YTZhdiu2LXYtSDZhNiv2YrZhtinINio2YXYs9in2LnYr9iq2YMuINmK2LHYrNmJIDxhIGhyZWY9XFxcIm1haWx0bzpzdXBwb3J0QHNvY2lhbDI3LmNvbVxcXCI+2KfZhNmG2YLYsSDZh9mG2Kc8L2E+INmI2LPZitiz2KfYudiv2YMg2KPYrdivINin2YTZiNmD2YTYp9ihINin2YTYqNi02LHZitmK2YYg2YHZiiDYo9mC2LHYqCDZiNmC2Kog2YXZhdmD2YYuXCIsXG4gICAgICAgIHpoOiBcIuW+iOaKseatieaIkeS7rOacquiDveWbnuetlOaCqOeahOmXrumimOOAguS4jei/h++8jOaIkeS7rOeahOS4k+WxnuaUr+aMgeWboumYn+W+iOS5kOaEj+S4uuaCqOaPkOS+m+W4ruWKqeOAguivtzxhIGhyZWY9XFxcIm1haWx0bzpzdXBwb3J0QHNvY2lhbDI3LmNvbVxcXCI+54K55Ye76L+Z6YeMPC9hPu+8jOS6uuW3peWuouacjeWwhuWwveW/q+S4uuaCqOaPkOS+m+WNj+WKqeOAglwiLFxuICAgICAgICBydTogXCLQmiDRgdC+0LbQsNC70LXQvdC40Y4sINC80Ysg0L3QtSDRgdC80L7Qs9C70Lgg0L7RgtCy0LXRgtC40YLRjCDQvdCwINCy0LDRiCDQstC+0L/RgNC+0YEuINCe0LTQvdCw0LrQviDQvdCw0YjQsCDRgdC70YPQttCx0LAg0L/QvtC00LTQtdGA0LbQutC4INGBINGA0LDQtNC+0YHRgtGM0Y4g0LLQsNC8INC/0L7QvNC+0LbQtdGCLiDQn9C+0LbQsNC70YPQudGB0YLQsCwgPGEgaHJlZj1cXFwibWFpbHRvOnN1cHBvcnRAc29jaWFsMjcuY29tXFxcIj7QvdCw0LbQvNC40YLQtSDQt9C00LXRgdGMPC9hPiwg0Lgg0L3QsNGIINC+0L/QtdGA0LDRgtC+0YAg0YHQstGP0LbQtdGC0YHRjyDRgSDQstCw0LzQuCDQutCw0Log0LzQvtC20L3QviDRgdC60L7RgNC10LUuXCJcbiAgICB9XG59LFxuICAgIHtcbiAgICAgIEtleTogJ0FzayBhbnl0aGluZycsXG4gICAgICBEZWZhdWx0VmFsdWU6ICdBc2sgYW55dGhpbmcnLFxuICAgICAgVHJhbnNsYXRpb25zOiB7XG4gICAgICAgIGVuOiAnQXNrIGFueXRoaW5nJyxcbiAgICAgICAgZnI6ICdEZW1hbmRleiBjZSBxdWUgdm91cyB2b3VsZXonLFxuICAgICAgICBpdDogJ0NoaWVkaSBxdWFsc2lhc2kgY29zYScsXG4gICAgICAgIGVzOiAnUHJlZ3VudGEgbG8gcXVlIHF1aWVyYXMnLFxuICAgICAgICBkZTogJ0ZyYWcgYWxsZXMnLFxuICAgICAgICAncHQtYnInOiAnUGVyZ3VudGUgcXVhbHF1ZXIgY29pc2EnLFxuICAgICAgICBhcjogJ9in2LPYo9mEINij2Yog2LTZitihJyxcbiAgICAgICAgemg6ICfpmo/kvr/pl64nLFxuICAgICAgICBydTogJ9Ch0L/RgNC+0YHQuNGC0LUg0YfRgtC+INGD0LPQvtC00L3QvicsXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgS2V5OiAnQXNzaXN0YW50JyxcbiAgICAgIERlZmF1bHRWYWx1ZTogJ0Fzc2lzdGFudCcsXG4gICAgICBUcmFuc2xhdGlvbnM6IHtcbiAgICAgICAgZW46ICdBc3Npc3RhbnQnLFxuICAgICAgICBmcjogJ0Fzc2lzdGFudCcsXG4gICAgICAgIGl0OiAnQXNzaXN0ZW50ZScsXG4gICAgICAgIGVzOiAnQXNpc3RlbnRlJyxcbiAgICAgICAgZGU6ICdBc3Npc3RlbnQnLFxuICAgICAgICAncHQtYnInOiAnQXNzaXN0ZW50ZScsXG4gICAgICAgIGFyOiAn2YXYs9in2LnYrycsXG4gICAgICAgIHpoOiAn5Yqp5omLJyxcbiAgICAgICAgcnU6ICfQkNGB0YHQuNGB0YLQtdC90YInLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIEtleTogJ1lvdXIgcGVyc29uYWwgb3IgY29tcGFueSBpbmZvcm1hdGlvbiBpcyBrZXB0IHByaXZhdGUgYW5kIHNlY3VyZSB3aXRoaW4gdGhpcyBjaGF0LicsXG4gICAgICBEZWZhdWx0VmFsdWU6XG4gICAgICAgICdZb3VyIHBlcnNvbmFsIG9yIGNvbXBhbnkgaW5mb3JtYXRpb24gaXMga2VwdCBwcml2YXRlIGFuZCBzZWN1cmUgd2l0aGluIHRoaXMgY2hhdC4nLFxuICAgICAgVHJhbnNsYXRpb25zOiB7XG4gICAgICAgIGVuOiAnWW91ciBwZXJzb25hbCBvciBjb21wYW55IGluZm9ybWF0aW9uIGlzIGtlcHQgcHJpdmF0ZSBhbmQgc2VjdXJlIHdpdGhpbiB0aGlzIGNoYXQuJyxcbiAgICAgICAgZnI6ICdWb3MgaW5mb3JtYXRpb25zIHBlcnNvbm5lbGxlcyBvdSBjZWxsZXMgZGUgdm90cmUgZW50cmVwcmlzZSBzb250IGNvbnNlcnbDqWVzIHByaXbDqWVzIGV0IHPDqWN1cmlzw6llcyBkYW5zIGNldHRlIGNvbnZlcnNhdGlvbi4nLFxuICAgICAgICBpdDogXCJMZSB0dWUgaW5mb3JtYXppb25pIHBlcnNvbmFsaSBvIGF6aWVuZGFsaSBzb25vIG1hbnRlbnV0ZSBwcml2YXRlIGUgc2ljdXJlIGFsbCdpbnRlcm5vIGRpIHF1ZXN0YSBjaGF0LlwiLFxuICAgICAgICBlczogJ1R1IGluZm9ybWFjacOzbiBwZXJzb25hbCBvIGRlIGxhIGVtcHJlc2Egc2UgbWFudGllbmUgcHJpdmFkYSB5IHNlZ3VyYSBkZW50cm8gZGUgZXN0ZSBjaGF0LicsXG4gICAgICAgIGRlOiAnSWhyZSBwZXJzw7ZubGljaGVuIG9kZXIgZ2VzY2jDpGZ0bGljaGVuIEluZm9ybWF0aW9uZW4gYmxlaWJlbiBpbiBkaWVzZW0gQ2hhdCBwcml2YXQgdW5kIHNpY2hlci4nLFxuICAgICAgICAncHQtYnInOlxuICAgICAgICAgICdTdWFzIGluZm9ybWHDp8O1ZXMgcGVzc29haXMgb3UgZGEgZW1wcmVzYSBzw6NvIG1hbnRpZGFzIHByaXZhZGFzIGUgc2VndXJhcyBkZW50cm8gZGVzdGUgY2hhdC4nLFxuICAgICAgICBhcjogJ9iq2LjZhCDZhdi52YTZiNmF2KfYqtmDINin2YTYtNiu2LXZitipINij2Ygg2YXYudmE2YjZhdin2Kog2LTYsdmD2KrZgyDYrtin2LXYqSDZiNii2YXZhtipINiv2KfYrtmEINmH2LDZhyDYp9mE2YXYrdin2K/Yq9ipLicsXG4gICAgICAgIHpoOiAn5oKo55qE5Liq5Lq65oiW5YWs5Y+45L+h5oGv5Zyo5q2k6IGK5aSp5Lit5L+d5oyB56eB5a+G5ZKM5a6J5YWo44CCJyxcbiAgICAgICAgcnU6ICfQktCw0YjQsCDQu9C40YfQvdCw0Y8g0LjQu9C4INC60L7RgNC/0L7RgNCw0YLQuNCy0L3QsNGPINC40L3RhNC+0YDQvNCw0YbQuNGPINC+0YHRgtCw0LXRgtGB0Y8g0LrQvtC90YTQuNC00LXQvdGG0LjQsNC70YzQvdC+0Lkg0Lgg0LfQsNGJ0LjRidC10L3QvdC+0Lkg0LIg0Y3RgtC+0Lwg0YfQsNGC0LUuJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBLZXk6ICdTZW5kIG1lc3NhZ2UnLFxuICAgICAgRGVmYXVsdFZhbHVlOiAnU2VuZCBtZXNzYWdlJyxcbiAgICAgIFRyYW5zbGF0aW9uczoge1xuICAgICAgICBlbjogJ1NlbmQgbWVzc2FnZScsXG4gICAgICAgIGZyOiAnRW52b3llciB1biBtZXNzYWdlJyxcbiAgICAgICAgaXQ6ICdJbnZpYSBtZXNzYWdnaW8nLFxuICAgICAgICBlczogJ0VudmlhciBtZW5zYWplJyxcbiAgICAgICAgZGU6ICdOYWNocmljaHQgc2VuZGVuJyxcbiAgICAgICAgJ3B0LWJyJzogJ0VudmlhciBtZW5zYWdlbScsXG4gICAgICAgIGFyOiAn2KXYsdiz2KfZhCDYsdiz2KfZhNipJyxcbiAgICAgICAgemg6ICflj5HpgIHmtojmga8nLFxuICAgICAgICBydTogJ9Ce0YLQv9GA0LDQstC40YLRjCDRgdC+0L7QsdGJ0LXQvdC40LUnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIEtleTogJ1BsYXRmb3JtIEdQVCcsXG4gICAgICBEZWZhdWx0VmFsdWU6ICdQbGF0Zm9ybSBHUFQnLFxuICAgICAgVHJhbnNsYXRpb25zOiB7XG4gICAgICAgIGVuOiAnUGxhdGZvcm0gR1BUJyxcbiAgICAgICAgZnI6ICdQbGF0ZWZvcm1lIEdQVCcsXG4gICAgICAgIGl0OiAnUGlhdHRhZm9ybWEgR1BUJyxcbiAgICAgICAgZXM6ICdQbGF0YWZvcm1hIEdQVCcsXG4gICAgICAgIGRlOiAnUGxhdHRmb3JtIEdQVCcsXG4gICAgICAgICdwdC1icic6ICdQbGF0YWZvcm1hIEdQVCcsXG4gICAgICAgIGFyOiAn2YXZhti12KkgR1BUJyxcbiAgICAgICAgemg6ICflubPlj7AgR1BUJyxcbiAgICAgICAgcnU6ICfQn9C70LDRgtGE0L7RgNC80LAgR1BUJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBLZXk6ICdOZXcgQ2hhdCcsXG4gICAgICBEZWZhdWx0VmFsdWU6ICdOZXcgQ2hhdCcsXG4gICAgICBUcmFuc2xhdGlvbnM6IHtcbiAgICAgICAgZW46ICdOZXcgQ2hhdCcsXG4gICAgICAgIGZyOiAnTm91dmVsbGUgY29udmVyc2F0aW9uJyxcbiAgICAgICAgaXQ6ICdOdW92YSBjaGF0JyxcbiAgICAgICAgZXM6ICdOdWV2byBjaGF0JyxcbiAgICAgICAgZGU6ICdOZXVlciBDaGF0JyxcbiAgICAgICAgJ3B0LWJyJzogJ05vdm8gY2hhdCcsXG4gICAgICAgIGFyOiAn2YXYrdin2K/Yq9ipINis2K/Zitiv2KknLFxuICAgICAgICB6aDogJ+aWsOiBiuWkqScsXG4gICAgICAgIHJ1OiAn0J3QvtCy0YvQuSDRh9Cw0YInLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIEtleTogJ1lvdScsXG4gICAgICBEZWZhdWx0VmFsdWU6ICdZb3UnLFxuICAgICAgVHJhbnNsYXRpb25zOiB7XG4gICAgICAgIGVuOiAnWW91JyxcbiAgICAgICAgZnI6ICdWb3VzJyxcbiAgICAgICAgaXQ6ICdUdScsXG4gICAgICAgIGVzOiAnVMO6JyxcbiAgICAgICAgZGU6ICdEdScsXG4gICAgICAgICdwdC1icic6ICdWb2PDqicsXG4gICAgICAgIGFyOiAn2KPZhtiqJyxcbiAgICAgICAgemg6ICfmgqgnLFxuICAgICAgICBydTogJ9CS0YsnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIEtleTogJ1dyaXRlIHlvdXIgbWVzc2FnZScsXG4gICAgICBEZWZhdWx0VmFsdWU6ICdXcml0ZSB5b3VyIG1lc3NhZ2UnLFxuICAgICAgVHJhbnNsYXRpb25zOiB7XG4gICAgICAgIGVuOiAnV3JpdGUgeW91ciBtZXNzYWdlJyxcbiAgICAgICAgZnI6ICfDiWNyaXZleiB2b3RyZSBtZXNzYWdlJyxcbiAgICAgICAgaXQ6ICdTY3JpdmkgaWwgdHVvIG1lc3NhZ2dpbycsXG4gICAgICAgIGVzOiAnRXNjcmliZSB0dSBtZW5zYWplJyxcbiAgICAgICAgZGU6ICdTY2hyZWliZW4gU2llIElocmUgTmFjaHJpY2h0JyxcbiAgICAgICAgJ3B0LWJyJzogJ0VzY3JldmEgc3VhIG1lbnNhZ2VtJyxcbiAgICAgICAgYXI6ICfYp9mD2KrYqCDYsdiz2KfZhNiq2YMnLFxuICAgICAgICB6aDogJ+WGmeS4i+aCqOeahOa2iOaBrycsXG4gICAgICAgIHJ1OiAn0J3QsNC/0LjRiNC40YLQtSDQstCw0YjQtSDRgdC+0L7QsdGJ0LXQvdC40LUnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIEtleTogJ1NlbmQnLFxuICAgICAgRGVmYXVsdFZhbHVlOiAnU2VuZCcsXG4gICAgICBUcmFuc2xhdGlvbnM6IHtcbiAgICAgICAgZW46ICdTZW5kJyxcbiAgICAgICAgZnI6ICdFbnZveWVyJyxcbiAgICAgICAgaXQ6ICdJbnZpYScsXG4gICAgICAgIGVzOiAnRW52aWFyJyxcbiAgICAgICAgZGU6ICdTZW5kZW4nLFxuICAgICAgICAncHQtYnInOiAnRW52aWFyJyxcbiAgICAgICAgYXI6ICfYpdix2LPYp9mEJyxcbiAgICAgICAgemg6ICflj5HpgIEnLFxuICAgICAgICBydTogJ9Ce0YLQv9GA0LDQstC40YLRjCcsXG4gICAgICB9LFxuICAgIH0sXG5cbiAgICB7XG4gICAgICBLZXk6ICdDYWxsIEludGVyZmFjZScsXG4gICAgICBEZWZhdWx0VmFsdWU6ICdDYWxsIEludGVyZmFjZScsXG4gICAgICBUcmFuc2xhdGlvbnM6IHtcbiAgICAgICAgZW46ICdDYWxsIEludGVyZmFjZScsXG4gICAgICAgIGZyOiBcIkludGVyZmFjZSBkJ2FwcGVsXCIsXG4gICAgICAgIGl0OiAnSW50ZXJmYWNjaWEgY2hpYW1hdGEnLFxuICAgICAgICBlczogJ0ludGVyZmF6IGRlIGxsYW1hZGEnLFxuICAgICAgICBkZTogJ0FucnVmb2JlcmZsw6RjaGUnLFxuICAgICAgICAncHQtYnInOiAnSW50ZXJmYWNlIGRlIGNoYW1hZGEnLFxuICAgICAgICBhcjogJ9mI2KfYrNmH2Kkg2KfZhNin2KrYtdin2YQnLFxuICAgICAgICB6aDogJ+WRvOWPq+eVjOmdoicsXG4gICAgICAgIHJ1OiAn0JjQvdGC0LXRgNGE0LXQudGBINC30LLQvtC90LrQsCcsXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgS2V5OiAnQ2xvc2UnLFxuICAgICAgRGVmYXVsdFZhbHVlOiAnQ2xvc2UnLFxuICAgICAgVHJhbnNsYXRpb25zOiB7XG4gICAgICAgIGVuOiAnQ2xvc2UnLFxuICAgICAgICBmcjogJ0Zlcm1lcicsXG4gICAgICAgIGl0OiAnQ2hpdWRpJyxcbiAgICAgICAgZXM6ICdDZXJyYXInLFxuICAgICAgICBkZTogJ1NjaGxpZcOfZW4nLFxuICAgICAgICAncHQtYnInOiAnRmVjaGFyJyxcbiAgICAgICAgYXI6ICfYpdi62YTYp9mCJyxcbiAgICAgICAgemg6ICflhbPpl60nLFxuICAgICAgICBydTogJ9CX0LDQutGA0YvRgtGMJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgXTtcbn1cbiJdfQ==