@chat21/chat21-ionic 3.4.27-rc2 → 3.4.27-rc21

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 (154) hide show
  1. package/CHANGELOG.md +65 -0
  2. package/angular.json +1 -0
  3. package/package.json +1 -1
  4. package/src/app/app.component.html +3 -1
  5. package/src/app/app.component.ts +74 -24
  6. package/src/app/chatlib/conversation-detail/conversation-content/conversation-content.component.scss +3 -3
  7. package/src/app/chatlib/conversation-detail/conversation-content/conversation-content.component.ts +1 -1
  8. package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.html +1 -1
  9. package/src/app/chatlib/conversation-detail/message/avatar/avatar.component.html +1 -1
  10. package/src/app/chatlib/conversation-detail/message/avatar/avatar.component.ts +4 -4
  11. package/src/app/chatlib/conversation-detail/message/return-receipt/return-receipt.component.scss +3 -3
  12. package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.html +9 -9
  13. package/src/app/components/bubbleMessageInfo-popover/bubbleinfo-popover.component.html +1 -1
  14. package/src/app/components/canned-response/canned-response.component.html +2 -2
  15. package/src/app/components/canned-response/canned-response.component.scss +0 -2
  16. package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.html +8 -8
  17. package/src/app/components/conversation-detail/message-text-area/message-text-area.component.html +23 -0
  18. package/src/app/components/conversation-detail/message-text-area/message-text-area.component.scss +30 -0
  19. package/src/app/components/conversation-detail/message-text-area/message-text-area.component.ts +35 -7
  20. package/src/app/components/conversation-info/info-content/info-content.component.ts +2 -2
  21. package/src/app/components/conversation-info/info-group/info-group.component.ts +23 -21
  22. package/src/app/components/conversations-list/header-conversations-list/header-conversations-list.component.html +1 -1
  23. package/src/app/components/conversations-list/header-conversations-list/header-conversations-list.component.ts +5 -1
  24. package/src/app/components/copilot-popover/copilot-popover.component.html +1 -1
  25. package/src/app/components/navbar/navbar.component.html +3 -3
  26. package/src/app/components/navbar/navbar.component.ts +29 -38
  27. package/src/app/components/project-item/project-item.component.ts +11 -11
  28. package/src/app/components/sidebar/sidebar.component.html +67 -47
  29. package/src/app/components/sidebar/sidebar.component.ts +110 -117
  30. package/src/app/components/sidebar-user-details/sidebar-user-details.component.html +4 -4
  31. package/src/app/components/sidebar-user-details/sidebar-user-details.component.ts +17 -14
  32. package/src/app/modals/create-ticket/create-ticket.page.html +6 -6
  33. package/src/app/modals/create-ticket/create-ticket.page.ts +4 -4
  34. package/src/app/modals/loader-preview/loader-preview.page.ts +1 -1
  35. package/src/app/modals/send-whatsapp-template/send-whatsapp-template.page.scss +1 -1
  36. package/src/app/pages/conversation-detail/conversation-detail.page.html +3 -1
  37. package/src/app/pages/conversation-detail/conversation-detail.page.scss +1 -1
  38. package/src/app/pages/conversation-detail/conversation-detail.page.ts +47 -5
  39. package/src/app/pages/conversations-list/conversations-list.page.html +2 -0
  40. package/src/app/pages/conversations-list/conversations-list.page.ts +48 -10
  41. package/src/app/pages/profile-info/profile-info.page.ts +3 -3
  42. package/src/app/services/brand/brand.service.ts +5 -5
  43. package/src/app/services/global-settings/global-settings.service.ts +12 -3
  44. package/src/app/services/nav-proxy.service.ts +0 -1
  45. package/src/app/services/triggerEvents/triggerEvents.ts +28 -0
  46. package/src/app/services/websocket/websocket-js.ts +95 -77
  47. package/src/app/shared/shared.module.ts +11 -2
  48. package/src/app/utils/globals.ts +2 -0
  49. package/src/app/utils/permissions.constants.ts +14 -11
  50. package/src/app/utils/utils-resources.ts +8 -7
  51. package/src/assets/i18n/ar.json +11 -1
  52. package/src/assets/i18n/az.json +11 -1
  53. package/src/assets/i18n/de.json +11 -1
  54. package/src/assets/i18n/en.json +11 -1
  55. package/src/assets/i18n/es.json +11 -1
  56. package/src/assets/i18n/fr.json +11 -1
  57. package/src/assets/i18n/it.json +13 -3
  58. package/src/assets/i18n/kk.json +11 -1
  59. package/src/assets/i18n/pt.json +11 -1
  60. package/src/assets/i18n/ru.json +11 -1
  61. package/src/assets/i18n/sr.json +11 -1
  62. package/src/assets/i18n/sv.json +11 -1
  63. package/src/assets/i18n/tr.json +11 -1
  64. package/src/assets/i18n/uk.json +11 -1
  65. package/src/assets/i18n/uz.json +12 -1
  66. package/src/assets/js/agentDesktop-sdk.js +55 -0
  67. package/src/chat-config-template.json +1 -0
  68. package/src/chat-config.json +1 -0
  69. package/src/chat21-core/providers/tiledesk/tiledesk-auth.service.ts +3 -0
  70. package/src/chat21-core/utils/constants.ts +2 -2
  71. package/src/chat21-core/utils/utils.ts +16 -2
  72. /package/src/assets/{images → img}/channel_icons/chat21.svg +0 -0
  73. /package/src/assets/{images → img}/channel_icons/direct.svg +0 -0
  74. /package/src/assets/{images → img}/channel_icons/email-logo.svg +0 -0
  75. /package/src/assets/{images → img}/channel_icons/form-logo_v2.svg +0 -0
  76. /package/src/assets/{images → img}/channel_icons/group.svg +0 -0
  77. /package/src/assets/{images → img}/channel_icons/messenger-logo.svg +0 -0
  78. /package/src/assets/{images → img}/channel_icons/telegram-logo.svg +0 -0
  79. /package/src/assets/{images → img}/channel_icons/voice.svg +0 -0
  80. /package/src/assets/{images → img}/channel_icons/whatsapp-logo.svg +0 -0
  81. /package/src/assets/{images → img}/default-avatar-x-select.png +0 -0
  82. /package/src/assets/{images → img}/f21ico-done.svg +0 -0
  83. /package/src/assets/{images → img}/f21ico-done_all.svg +0 -0
  84. /package/src/assets/{images → img}/f21ico-schedule.svg +0 -0
  85. /package/src/assets/{images → img}/file-alt-solid.png +0 -0
  86. /package/src/assets/{images → img}/icons/copilot.svg +0 -0
  87. /package/src/assets/{images → img}/json-file.svg +0 -0
  88. /package/src/assets/{images → img}/language_flag/ar.png +0 -0
  89. /package/src/assets/{images → img}/language_flag/az.png +0 -0
  90. /package/src/assets/{images → img}/language_flag/bg.png +0 -0
  91. /package/src/assets/{images → img}/language_flag/ca.png +0 -0
  92. /package/src/assets/{images → img}/language_flag/cs.png +0 -0
  93. /package/src/assets/{images → img}/language_flag/da.png +0 -0
  94. /package/src/assets/{images → img}/language_flag/de.png +0 -0
  95. /package/src/assets/{images → img}/language_flag/el.png +0 -0
  96. /package/src/assets/{images → img}/language_flag/en.png +0 -0
  97. /package/src/assets/{images → img}/language_flag/es.png +0 -0
  98. /package/src/assets/{images → img}/language_flag/fa.png +0 -0
  99. /package/src/assets/{images → img}/language_flag/fi.png +0 -0
  100. /package/src/assets/{images → img}/language_flag/fr.png +0 -0
  101. /package/src/assets/{images → img}/language_flag/he.png +0 -0
  102. /package/src/assets/{images → img}/language_flag/hi.png +0 -0
  103. /package/src/assets/{images → img}/language_flag/hr.png +0 -0
  104. /package/src/assets/{images → img}/language_flag/hu.png +0 -0
  105. /package/src/assets/{images → img}/language_flag/id.png +0 -0
  106. /package/src/assets/{images → img}/language_flag/it.png +0 -0
  107. /package/src/assets/{images → img}/language_flag/ja.png +0 -0
  108. /package/src/assets/{images → img}/language_flag/kk.png +0 -0
  109. /package/src/assets/{images → img}/language_flag/ko.png +0 -0
  110. /package/src/assets/{images → img}/language_flag/ml-IN.png +0 -0
  111. /package/src/assets/{images → img}/language_flag/ne-NP.png +0 -0
  112. /package/src/assets/{images → img}/language_flag/nl.png +0 -0
  113. /package/src/assets/{images → img}/language_flag/no.png +0 -0
  114. /package/src/assets/{images → img}/language_flag/pl.png +0 -0
  115. /package/src/assets/{images → img}/language_flag/pt-BR.png +0 -0
  116. /package/src/assets/{images → img}/language_flag/pt.png +0 -0
  117. /package/src/assets/{images → img}/language_flag/ro.png +0 -0
  118. /package/src/assets/{images → img}/language_flag/ru.png +0 -0
  119. /package/src/assets/{images → img}/language_flag/sk.png +0 -0
  120. /package/src/assets/{images → img}/language_flag/sl.png +0 -0
  121. /package/src/assets/{images → img}/language_flag/sr.png +0 -0
  122. /package/src/assets/{images → img}/language_flag/sv.png +0 -0
  123. /package/src/assets/{images → img}/language_flag/ta.png +0 -0
  124. /package/src/assets/{images → img}/language_flag/th.png +0 -0
  125. /package/src/assets/{images → img}/language_flag/tr.png +0 -0
  126. /package/src/assets/{images → img}/language_flag/uk.png +0 -0
  127. /package/src/assets/{images → img}/language_flag/uz.png +0 -0
  128. /package/src/assets/{images → img}/language_flag/vi.png +0 -0
  129. /package/src/assets/{images → img}/language_flag/zh-CN.png +0 -0
  130. /package/src/assets/{images → img}/language_flag/zh-TW.png +0 -0
  131. /package/src/assets/{logos → img/logos}/chat21-logo.png +0 -0
  132. /package/src/assets/{logos → img/logos}/logo.png +0 -0
  133. /package/src/assets/{logos → img/logos}/tiledesk-logo_new_white.svg +0 -0
  134. /package/src/assets/{logos → img/logos}/tiledesk-solo-logo.png +0 -0
  135. /package/src/assets/{logos → img/logos}/tiledesk_logo.svg +0 -0
  136. /package/src/assets/{logos → img/logos}/tiledesk_logo_no_text.svg +0 -0
  137. /package/src/assets/{logos → img/logos}/tiledesk_logo_white_small.svg +0 -0
  138. /package/src/assets/{images → img}/no_conversation.jpg +0 -0
  139. /package/src/assets/{images → img}/no_image.png +0 -0
  140. /package/src/assets/{images → img}/no_image_user.png +0 -0
  141. /package/src/assets/{images → img}/pin.svg +0 -0
  142. /package/src/assets/{images → img}/pinned.svg +0 -0
  143. /package/src/assets/{images → img}/priority_icons/high.svg +0 -0
  144. /package/src/assets/{images → img}/priority_icons/high_v2.svg +0 -0
  145. /package/src/assets/{images → img}/priority_icons/low.svg +0 -0
  146. /package/src/assets/{images → img}/priority_icons/low_v2.svg +0 -0
  147. /package/src/assets/{images → img}/priority_icons/medium.svg +0 -0
  148. /package/src/assets/{images → img}/priority_icons/medium_v2.svg +0 -0
  149. /package/src/assets/{images → img}/priority_icons/urgent.svg +0 -0
  150. /package/src/assets/{images → img}/priority_icons/urgent_v2.svg +0 -0
  151. /package/src/assets/{images → img}/teammate-status/avaible.svg +0 -0
  152. /package/src/assets/{images → img}/teammate-status/inactive.svg +0 -0
  153. /package/src/assets/{images → img}/teammate-status/unavaible.svg +0 -0
  154. /package/src/assets/{images → img}/whatsapp_background.png +0 -0
@@ -225,6 +225,10 @@
225
225
  "admin": "Әкімші",
226
226
  "agent": "Агент",
227
227
  "Conversations": "Әңгімелер",
228
+ "Monitor": "Монитор",
229
+ "Flows": "Ағындар",
230
+ "Knowledgebases": "Білім базалары",
231
+ "Whatsappbroadcasts": "WhatsApp хабарламалары",
228
232
  "Apps": "Қолданбалар",
229
233
  "Analytics": "Аналитика",
230
234
  "Activities": "Іс-шаралар",
@@ -306,5 +310,11 @@
306
310
  "SEND_EMAIL_SUCCESS_OFFLINE_MESSAGE":"Хабарлама электрондық пошта арқылы да жіберілді 📩"
307
311
  },
308
312
  "EMOJI_NOT_ELLOWED": "Эмодзи рұқсат етілмеген",
309
- "DOMAIN_NOT_ALLOWED": "URL рұқсат етілмеген доменді қамтиды"
313
+ "DOMAIN_NOT_ALLOWED": "URL рұқсат етілмеген доменді қамтиды",
314
+ "TICKET": {
315
+ "OPEN_TICKET": "Тапсырма ашу",
316
+ "DESCRIPTION": "Осы әңгіме үшін тапсырма ашқыңыз келетінін растайсыз ба?",
317
+ "CONFIRM": "Растау",
318
+ "CLOSE": "Жабу"
319
+ }
310
320
  }
@@ -225,6 +225,10 @@
225
225
  "admin": "Administrador",
226
226
  "agent": "Agente",
227
227
  "Conversations": "Conversas",
228
+ "Monitor": "Monitor",
229
+ "Flows": "Fluxos",
230
+ "Knowledgebases": "Bases de Conhecimento",
231
+ "Whatsappbroadcasts": "Transmissões do WhatsApp",
228
232
  "Apps":"Aplicativos",
229
233
  "Analytics":"Análise",
230
234
  "Activities": "Atividades",
@@ -306,5 +310,11 @@
306
310
  "SEND_EMAIL_SUCCESS_OFFLINE_MESSAGE":"Mensagem também enviada por e-mail 📩"
307
311
  },
308
312
  "EMOJI_NOT_ELLOWED": "Emoji não permitido",
309
- "DOMAIN_NOT_ALLOWED": "O URL contém um domínio não permitido"
313
+ "DOMAIN_NOT_ALLOWED": "O URL contém um domínio não permitido",
314
+ "TICKET": {
315
+ "OPEN_TICKET": "Abrir Ticket",
316
+ "DESCRIPTION": "Confirma que deseja abrir um ticket para esta conversa?",
317
+ "CONFIRM": "Confirmar",
318
+ "CLOSE": "Fechar"
319
+ }
310
320
  }
@@ -225,6 +225,10 @@
225
225
  "admin": "Администратор",
226
226
  "agent": "Агент",
227
227
  "Conversations": "Разговоры",
228
+ "Monitor": "Монитор",
229
+ "Flows": "Потоки",
230
+ "Knowledgebases": "Базы знаний",
231
+ "Whatsappbroadcasts": "WhatsApp-рассылки",
228
232
  "Apps":"Приложения",
229
233
  "Analytics":"Аналитика",
230
234
  "Activities": "Виды деятельности",
@@ -306,5 +310,11 @@
306
310
  "SEND_EMAIL_SUCCESS_OFFLINE_MESSAGE":"Сообщение также отправлено по электронной почте 📩"
307
311
  },
308
312
  "EMOJI_NOT_ELLOWED": "Эмодзи не разрешены",
309
- "DOMAIN_NOT_ALLOWED": "URL содержит недопустимый домен"
313
+ "DOMAIN_NOT_ALLOWED": "URL содержит недопустимый домен",
314
+ "TICKET": {
315
+ "OPEN_TICKET": "Открыть тикет",
316
+ "DESCRIPTION": "Вы подтверждаете, что хотите открыть тикет для этого разговора?",
317
+ "CONFIRM": "Подтвердить",
318
+ "CLOSE": "Закрыть"
319
+ }
310
320
  }
@@ -225,6 +225,10 @@
225
225
  "admin": "Aдминистратор",
226
226
  "agent": "Агент",
227
227
  "Conversations": "Разговори",
228
+ "Monitor": "Монитор",
229
+ "Flows": "Токови",
230
+ "Knowledgebases": "Baze znanja",
231
+ "Whatsappbroadcasts": "WhatsApp emitovanja",
228
232
  "Apps":"Аппс",
229
233
  "Analytics":"Аналитика",
230
234
  "Activities": "Активности",
@@ -306,5 +310,11 @@
306
310
  "SEND_EMAIL_SUCCESS_OFFLINE_MESSAGE":"Порука је такође послата е-поштом 📩"
307
311
  },
308
312
  "EMOJI_NOT_ELLOWED": "Emodžiji nisu dozvoljeni",
309
- "DOMAIN_NOT_ALLOWED": "URL sadrži nedozvoljenu domenu"
313
+ "DOMAIN_NOT_ALLOWED": "URL sadrži nedozvoljenu domenu",
314
+ "TICKET": {
315
+ "OPEN_TICKET": "Otvori tiket",
316
+ "DESCRIPTION": "Da li potvrđujete da želite da otvorite tiket za ovaj razgovor?",
317
+ "CONFIRM": "Potvrdi",
318
+ "CLOSE": "Zatvori"
319
+ }
310
320
  }
@@ -225,6 +225,10 @@
225
225
  "admin": "Administratör",
226
226
  "agent": "Ombud",
227
227
  "Conversations": "Samtal",
228
+ "Monitor": "Monitor",
229
+ "Flows": "Flöden",
230
+ "Knowledgebases": "Kunskapsbaser",
231
+ "Whatsappbroadcasts": "WhatsApp-sändningar",
228
232
  "Apps": "Appar",
229
233
  "Analytics": "Analytics",
230
234
  "Activities": "Aktiviteter",
@@ -306,5 +310,11 @@
306
310
  "SEND_EMAIL_SUCCESS_OFFLINE_MESSAGE":"Meddelande skickas även via mail 📩"
307
311
  },
308
312
  "EMOJI_NOT_ELLOWED": "Emoji är inte tillåtna",
309
- "DOMAIN_NOT_ALLOWED": "URL:en innehåller en otillåten domän"
313
+ "DOMAIN_NOT_ALLOWED": "URL:en innehåller en otillåten domän",
314
+ "TICKET": {
315
+ "OPEN_TICKET": "Öppna Ärende",
316
+ "DESCRIPTION": "Bekräftar du att du vill öppna ett ärende för den här konversationen?",
317
+ "CONFIRM": "Bekräfta",
318
+ "CLOSE": "Stäng"
319
+ }
310
320
  }
@@ -225,6 +225,10 @@
225
225
  "admin": "Yönetici",
226
226
  "agent": "Ajan",
227
227
  "Conversations": "Konuşmalar",
228
+ "Monitor": "Monitör",
229
+ "Flows": "Akışlar",
230
+ "Knowledgebases": "Bilgi Tabanları",
231
+ "Whatsappbroadcasts": "WhatsApp Yayınları",
228
232
  "Apps":"Uygulamalar",
229
233
  "Analytics":"Analitik",
230
234
  "Activities": "Faaliyetler",
@@ -306,5 +310,11 @@
306
310
  "SEND_EMAIL_SUCCESS_OFFLINE_MESSAGE":"Mesaj ayrıca e-posta ile gönderilir 📩"
307
311
  },
308
312
  "EMOJI_NOT_ELLOWED": "Emoji'ye izin verilmiyor",
309
- "DOMAIN_NOT_ALLOWED": "URL izin verilmeyen bir alan adı içeriyor"
313
+ "DOMAIN_NOT_ALLOWED": "URL izin verilmeyen bir alan adı içeriyor",
314
+ "TICKET": {
315
+ "OPEN_TICKET": "Bilet Aç",
316
+ "DESCRIPTION": "Bu görüşme için bir bilet açmak istediğinizi onaylıyor musunuz?",
317
+ "CONFIRM": "Onayla",
318
+ "CLOSE": "Kapat"
319
+ }
310
320
  }
@@ -225,6 +225,10 @@
225
225
  "admin": "Адміністратор",
226
226
  "agent": "Агент",
227
227
  "Conversations": "Бесіди",
228
+ "Monitor": "Монітор",
229
+ "Flows": "Потоки",
230
+ "Knowledgebases": "Бази знань",
231
+ "Whatsappbroadcasts": "WhatsApp-розсилки",
228
232
  "Apps": "Програми",
229
233
  "Analytics": "Аналітика",
230
234
  "Activities": "Діяльність",
@@ -306,5 +310,11 @@
306
310
  "SEND_EMAIL_SUCCESS_OFFLINE_MESSAGE":"Повідомлення також надіслано електронною поштою 📩"
307
311
  },
308
312
  "EMOJI_NOT_ELLOWED": "Емодзі не дозволені",
309
- "DOMAIN_NOT_ALLOWED": "URL містить недозволений домен"
313
+ "DOMAIN_NOT_ALLOWED": "URL містить недозволений домен",
314
+ "TICKET": {
315
+ "OPEN_TICKET": "Відкрити тікет",
316
+ "DESCRIPTION": "Підтверджуєте, що хочете відкрити тікет для цієї розмови?",
317
+ "CONFIRM": "Підтвердити",
318
+ "CLOSE": "Закрити"
319
+ }
310
320
  }
@@ -225,6 +225,10 @@
225
225
  "admin": "Administrator",
226
226
  "agent": "Agent",
227
227
  "Conversations": "Suhbatlar",
228
+ "Monitor": "Monitor",
229
+ "Flows": "Oqimlar",
230
+ "Knowledgebases": "Bilim bazalari",
231
+ "Whatsappbroadcasts": "WhatsApp efirlarini yuborish",
228
232
  "Apps": "Ilovalar",
229
233
  "Analytics": "Analitika",
230
234
  "Activities": "Faoliyatlar",
@@ -306,5 +310,12 @@
306
310
  "SEND_EMAIL_SUCCESS_OFFLINE_MESSAGE":"Xabar elektron pochta orqali ham yuborildi 📩"
307
311
  },
308
312
  "EMOJI_NOT_ELLOWED": "Emoji'ga ruxsat berilmagan",
309
- "DOMAIN_NOT_ALLOWED": "URL ruxsat etilmagan domenni o'z ichiga oladi"
313
+ "DOMAIN_NOT_ALLOWED": "URL ruxsat etilmagan domenni o'z ichiga oladi",
314
+ "TICKET": {
315
+ "OPEN_TICKET": "Chiptani ochish",
316
+ "DESCRIPTION": "Ushbu suhbat uchun chipta ochmoqchi ekanligingizni tasdiqlaysizmi?",
317
+ "CONFIRM": "Tasdiqlash",
318
+ "CLOSE": "Yopish"
319
+ }
320
+
310
321
  }
@@ -0,0 +1,55 @@
1
+ function loadAgentDesktopScript() {
2
+ if (document.getElementById('agentdesktop-sdk')) {
3
+ return;
4
+ }
5
+
6
+ const script = document.createElement('script');
7
+ script.id = 'agentdesktop-sdk';
8
+ script.type = 'text/javascript';
9
+ script.src = 'https://devcti.aruba.it/AD/widget/agentdesktop_widget.js';
10
+ script.async = true;
11
+
12
+ script.onload = () => {
13
+ console.log('AgentDesktop SDK caricato');
14
+ window.agentDesktopLoaded = true;
15
+ };
16
+
17
+ script.onerror = (error) => {
18
+ console.error('Errore nel caricamento AgentDesktop SDK', error);
19
+ };
20
+
21
+
22
+
23
+
24
+
25
+
26
+ if (document.body) {
27
+ document.body.appendChild(script);
28
+ } else {
29
+ window.addEventListener('DOMContentLoaded', function() {
30
+ document.body.appendChild(script);
31
+ });
32
+ }
33
+ }
34
+
35
+
36
+ function openTicketOnHDA(requestId){
37
+ console.log('openTicketOnHDA called with requestId:', requestId);
38
+ const message = { companyID: "1", sourceID: "CHAT", tiledeskID: requestId, target: "HDA", origin: "Tiledesk" }
39
+ if(window && window.parent){
40
+ window.parent.postMessage(message, 'https://devhda2bo.aruba.it/HDAPortal/');
41
+ window.postMessage(message, 'https://devhda2bo.aruba.it/HDAPortal/');
42
+ console.log('Message posted to parent window and current window');
43
+ }
44
+
45
+ if(window['AGENTDESKTOP']){
46
+ console.log('AGENTDESKTOP exist. Sending message . . .');
47
+ window['AGENTDESKTOP']['WIDGET'].sendDataToWidget('PAT', JSON.stringify(message)); // invia il messaggio ad HDA
48
+ AGENTDESKTOP.TAB.GoTo('PAT'); // dà il focus ad HDA
49
+ console.log('Message sent to AGENTDESKTOP widget');
50
+ }
51
+
52
+
53
+ }
54
+
55
+ loadAgentDesktopScript();
@@ -37,6 +37,7 @@
37
37
  "wsUrlRel": "${WS_URL_RELATIVE}",
38
38
  "storage_prefix": "${CHAT_STORAGE_PREFIX}",
39
39
  "emailSection": "${EMAIL_SECTION}",
40
+ "ticketSection": "${TICKET_SECTION}",
40
41
  "whatsappTemplatesSection":"${WHATSAPP_TEMPLATES_SECTION}",
41
42
  "googleMapsApiKey":"${GOOGLE_MAPS_APIKEY}"
42
43
  }
@@ -37,6 +37,7 @@
37
37
  "writeToButton": false,
38
38
  "archivedButton": false,
39
39
  "emailSection": true,
40
+ "ticketSection": false,
40
41
  "whatsappTemplatesSection":true,
41
42
  "googleMapsApiKey":"CHANGEIT"
42
43
  }
@@ -121,6 +121,7 @@ export class TiledeskAuthService {
121
121
  this.http.post(this.URL_TILEDESK_SIGNIN_WITH_CUSTOM_TOKEN, null, requestOptions).subscribe((data) => {
122
122
  if (data['success'] && data['token']) {
123
123
  that.tiledeskToken = data['token'];
124
+ data['user'].token = tiledeskToken; // mantengo il token custom nell'oggetto user
124
125
  that.createCompleteUser(data['user']);
125
126
  this.checkAndSetInStorageTiledeskToken(that.tiledeskToken)
126
127
  this.BS_IsONLINE.next(true)
@@ -177,6 +178,8 @@ export class TiledeskAuthService {
177
178
  this.currentUser = member;
178
179
  this.logger.log('[TILEDESK-AUTH] - createCompleteUser member ', member);
179
180
  this.appStorage.setItem('currentUser', JSON.stringify(this.currentUser));
181
+ const { iat, aud, iss, jti, ...cleanUser } = user; //destructuring and rest user object
182
+ localStorage.setItem('user', JSON.stringify(cleanUser));
180
183
 
181
184
  } catch (err) {
182
185
  this.logger.error('[TILEDESK-AUTH]- createCompleteUser ERR ', err)
@@ -119,8 +119,8 @@ export const STORAGE_PREFIX = 'tiledesk_widget_';
119
119
 
120
120
  // links
121
121
  export const FIREBASESTORAGE_BASE_URL_IMAGE = 'https://firebasestorage.googleapis.com/v0/b/' //+ 'chat-v2-dev.appspot.com/o/';
122
- export const IMG_PROFILE_BOT = '/assets/images/avatar_bot_tiledesk.svg';
123
- export const IMG_PROFILE_DEFAULT = '/assets/images/avatar_male_tiledesk.svg';
122
+ export const IMG_PROFILE_BOT = '/assets/img/avatar_bot_tiledesk.svg';
123
+ export const IMG_PROFILE_DEFAULT = '/assets/img/avatar_male_tiledesk.svg';
124
124
 
125
125
  //LOG LEVEL
126
126
  // export enum LogLevel {
@@ -765,6 +765,12 @@ export function isOnMobileDevice() {
765
765
  return IS_ON_MOBILE_DEVICE;
766
766
  }
767
767
 
768
+
769
+ export function checkIfIsInIframe(){
770
+ const isInIframe = window.self !== window.top;
771
+ return isInIframe;
772
+ }
773
+
768
774
  export function checkWindowWidthIsLessThan991px() {
769
775
  // console.log('UTILS - checkWindowWidthIsLessThan991px:: ', window.innerWidth);
770
776
  if (window.innerWidth < 991) {
@@ -1018,6 +1024,14 @@ export function isAllowedUrlInText(text: string, allowedUrls: string[]) {
1018
1024
  }
1019
1025
 
1020
1026
  function extractUrls(text: string): string[] {
1021
- const urlRegex = /https?:\/\/[^\s]+/g;
1022
- return text.match(urlRegex) || [];
1027
+ // Rileva URL con o senza protocollo (http/https)
1028
+ const urlRegex = /\b((https?:\/\/)?(www\.)?[a-z0-9.-]+\.[a-z]{2,})(\/[^\s]*)?/gi;
1029
+ const matches = text.match(urlRegex) || [];
1030
+ // Normalizza: aggiunge https:// se manca, così il parsing con new URL() funziona
1031
+ return matches.map((url) => {
1032
+ if (!/^https?:\/\//i.test(url)) {
1033
+ return 'https://' + url;
1034
+ }
1035
+ return url;
1036
+ });
1023
1037
  }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes