@chat21/chat21-ionic 3.4.27-rc6 → 3.4.27-rc8

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.
package/CHANGELOG.md CHANGED
@@ -8,6 +8,14 @@
8
8
  ### **Copyrigth**:
9
9
  *Tiledesk SRL*
10
10
 
11
+ # 3.4.27-rc8
12
+ - **added**: ability to open ticket to external service
13
+ - **added**: ticketSection env var
14
+
15
+ # 3.4.27-rc7
16
+ - **bug-fixed**: Scrolling to the last message when opening a conversation
17
+ - **bug-fixed**: Loading in the conversation list disabled when removing the last conversation
18
+
11
19
  # 3.4.27-rc6
12
20
  - **bug-fixed**: user for dashboard app is incorrect
13
21
 
package/angular.json CHANGED
@@ -32,6 +32,7 @@
32
32
  "src/chat-config-template.json",
33
33
  "src/chat-config.json",
34
34
  "src/chat-config-dev.json",
35
+ "src/chat-config-native-ar.json",
35
36
  {
36
37
  "glob": "**/*",
37
38
  "input": "src/assets",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@chat21/chat21-ionic",
3
3
  "author": "Tiledesk SRL",
4
- "version": "3.4.27-rc6",
4
+ "version": "3.4.27-rc8",
5
5
  "license": "MIT License",
6
6
  "homepage": "https://tiledesk.com/",
7
7
  "repository": {
@@ -22,6 +22,13 @@
22
22
  {{translationMap?.get('WHATSAPP.LABEL_TEMPLATES')}}
23
23
  </ion-button>
24
24
  </div>
25
+ <!-- OPEN TICKET -->
26
+ <div *ngIf="ticketSection" class="section-option" id="template" tooltip="{{translationMap?.get('TICKET.OPEN_TICKET')}}" placement="top">
27
+ <ion-button fill="clear" [class.active]="section==='ticket'" (click)="onOpenSection('ticket')" [disabled]="channelType === 'direct'">
28
+ <ion-icon name="ticket"></ion-icon>
29
+ {{translationMap?.get('TICKET.OPEN_TICKET')}}
30
+ </ion-button>
31
+ </div>
25
32
  </div>
26
33
 
27
34
  <div class="footerContainerAlert">
@@ -50,6 +57,22 @@
50
57
  </ion-col>
51
58
  </ion-row>
52
59
 
60
+ <ion-row id="ticket" [style.display]="section==='ticket'? 'flex': 'none'">
61
+ <ion-col col-auto>
62
+ <div class="placeholder">{{translationMap.get('TICKET.DESCRIPTION')}}</div>
63
+ <div class="buttons-container">
64
+ <ion-button name="add" size="small" (click)="onClickTicket('open')">
65
+ <ion-icon name="add"></ion-icon>
66
+ {{translationMap?.get('TICKET.CONFIRM')}}
67
+ </ion-button>
68
+ <ion-button size="small" color="danger" (click)="onClickTicket('close')">
69
+ <ion-icon name="close"></ion-icon>
70
+ {{translationMap?.get('TICKET.CLOSE')}}
71
+ </ion-button>
72
+ </div>
73
+ </ion-col>
74
+ </ion-row>
75
+
53
76
  <ion-row id="message-text-area" [style.display]="section==='chat' || section ==='templates' || section ==='copilot'? 'flex': 'none'">
54
77
 
55
78
  <ion-col col-auto style="display: flex;">
@@ -183,6 +183,36 @@
183
183
  }
184
184
  }
185
185
 
186
+ #ticket{
187
+ text-align: center;
188
+ font-size: 12px;
189
+
190
+ .buttons-container{
191
+ display: flex;
192
+ justify-content: center;
193
+ gap: 10px;
194
+
195
+ ion-button{
196
+ font-size: 12px;
197
+ --padding-top: 4px;
198
+ --padding-bottom: 4px;
199
+ --padding-start: 6px;
200
+ --padding-end: 6px;
201
+ --ripple-color: transparent;
202
+ text-transform: unset;
203
+ height: auto;
204
+
205
+ ion-icon{
206
+ margin-right: 4px;
207
+ }
208
+
209
+ &[name="add"]{
210
+ --background: var(--basic-blue);
211
+ }
212
+ }
213
+ }
214
+ }
215
+
186
216
  #fileInput {
187
217
  position: absolute;
188
218
  opacity: 0;
@@ -63,17 +63,20 @@ export class MessageTextAreaComponent implements OnInit, AfterViewInit, OnChange
63
63
  @Input() emailSection: boolean;
64
64
  @Input() offlineMsgEmail: boolean;
65
65
  @Input() whatsappTemplatesSection: boolean;
66
+ @Input() ticketSection: boolean
66
67
  @Input() isOpenInfoConversation: boolean;
67
68
  @Input() cannedSection: boolean;
68
69
  @Input() stylesMap: Map<string, string>;
69
70
  @Input() translationMap: Map<string, string>;
70
71
  @Input() dropEvent: any;
71
72
  @Input() disableTextarea: boolean;
73
+ @Input() roles: Array<string>;
72
74
  @Output() eventChangeTextArea = new EventEmitter<{msg: string, offsetHeight: number}>();
73
75
  @Output() eventSendMessage = new EventEmitter<{msg: string, type: string, metadata?: Object, attributes?: Object}>();
74
76
  @Output() onClickOpenCannedResponses = new EventEmitter<boolean>();
75
77
  @Output() onPresentModalScrollToBottom = new EventEmitter<boolean>();
76
78
  @Output() onOpenFooterSection = new EventEmitter<string>();
79
+ @Output() onOpenTicket = new EventEmitter<boolean>();
77
80
 
78
81
  public project: Project;
79
82
  public conversationEnabled = false;
@@ -291,6 +294,17 @@ export class MessageTextAreaComponent implements OnInit, AfterViewInit, OnChange
291
294
  this.prensentTemplateModal();
292
295
  }
293
296
 
297
+ onClickTicket(option: "open" | "close"){
298
+ this.logger.log('[CONVS-DETAIL][MSG-TEXT-AREA] - onClickTicket', option);
299
+ switch(option){
300
+ case "open":
301
+ this.onOpenTicket.emit();
302
+ case "close":
303
+ this.section = 'chat'
304
+ }
305
+
306
+ }
307
+
294
308
 
295
309
  /**
296
310
  *
@@ -217,6 +217,7 @@
217
217
  [cannedSection]="canShowCanned"
218
218
  [whatsappTemplatesSection]="isWhatsappTemplatesEnabled"
219
219
  [isOpenInfoConversation]="openInfoConversation"
220
+ [ticketSection]="isTicketEnabled"
220
221
  [stylesMap]="styleMap"
221
222
  [translationMap]="translationsMap"
222
223
  [dropEvent]="dropEvent"
@@ -225,7 +226,8 @@
225
226
  (onClickOpenCannedResponses)="onClickOpenCannedResponses($event)"
226
227
  (eventSendMessage)="returnSendMessage($event)"
227
228
  (onPresentModalScrollToBottom)="onPresentModalScrollToBottom($event)"
228
- (onOpenFooterSection)="onOpenFooterSection($event)">
229
+ (onOpenFooterSection)="onOpenFooterSection($event)"
230
+ (onOpenTicket)="onOpenTicket($event)">
229
231
  </app-message-text-area>
230
232
  <!-- [events]="eventsReplaceTexareaText.asObservable()" -->
231
233
  </ion-row>
@@ -176,6 +176,10 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
176
176
  copilotQuestion: string = '';
177
177
  /**COPILOT : end */
178
178
 
179
+ /** TICKET: start */
180
+ isTicketEnabled: boolean = false;
181
+ /** TICKET: end */
182
+
179
183
  isMine = isMine
180
184
  isInfo = isInfo
181
185
  isFirstMessage = isFirstMessage
@@ -483,6 +487,7 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
483
487
  this.messages = [] // list messages of conversation
484
488
  this.isFileSelected = false // indicates if a file has been selected (image to upload)
485
489
  this.isEmailEnabled = (this.appConfigProvider.getConfig().emailSection === 'true' || this.appConfigProvider.getConfig().emailSection === true) ? true : false;
490
+ this.isTicketEnabled = (this.appConfigProvider.getConfig().ticketSection === 'true' || this.appConfigProvider.getConfig().ticketSection === true) ? true : false;
486
491
  this.isWhatsappTemplatesEnabled = (this.appConfigProvider.getConfig().whatsappTemplatesSection === 'true' || this.appConfigProvider.getConfig().whatsappTemplatesSection === true) ? true : false;
487
492
 
488
493
  this.cannedResponsesService.initialize(appconfig.apiUrl)
@@ -711,6 +716,11 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
711
716
  "WHATSAPP.ERROR_WHATSAPP_NOT_INSTALLED",
712
717
  "WHATSAPP.ERROR_WHATSAPP_GENERIC_ERROR",
713
718
 
719
+ "TICKET.OPEN_TICKET",
720
+ "TICKET.DESCRIPTION",
721
+ "TICKET.CONFIRM",
722
+ "TICKET.CLOSE",
723
+
714
724
  "COPILOT.ASK_AI",
715
725
  "COPILOT.NO_SUGGESTIONS_PRESENT",
716
726
 
@@ -1926,6 +1936,13 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
1926
1936
  }
1927
1937
 
1928
1938
 
1939
+ onOpenTicket() {
1940
+ this.logger.debug('[CONVS-DETAIL] openTicketOnExternalService - conversationWith ', this.conversationWith)
1941
+ if(window['openTicketOnHDA']){
1942
+ window['openTicketOnHDA'](this.conversationWith)
1943
+ }
1944
+
1945
+ }
1929
1946
  // -------------- START SCROLL/RESIZE -------------- //
1930
1947
  /** */
1931
1948
  resizeTextArea() {
@@ -310,5 +310,11 @@
310
310
  "SEND_EMAIL_SUCCESS_OFFLINE_MESSAGE":"تم إرسال الرسالة أيضًا عبر البريد الإلكتروني 📩"
311
311
  },
312
312
  "EMOJI_NOT_ELLOWED": "الرموز التعبيرية غير مسموح بها",
313
- "DOMAIN_NOT_ALLOWED": "يحتوي الرابط على نطاق غير مسموح"
313
+ "DOMAIN_NOT_ALLOWED": "يحتوي الرابط على نطاق غير مسموح",
314
+ "TICKET": {
315
+ "OPEN_TICKET": "افتح تذكرة",
316
+ "DESCRIPTION": "هل تؤكد أنك تريد فتح تذكرة لهذه المحادثة؟",
317
+ "CONFIRM": "تأكيد",
318
+ "CLOSE": "إغلاق"
319
+ }
314
320
  }
@@ -310,5 +310,11 @@
310
310
  "SEND_EMAIL_SUCCESS_OFFLINE_MESSAGE":"Mesaj e-poçt vasitəsilə də göndərilib 📩"
311
311
  },
312
312
  "EMOJI_NOT_ELLOWED": "Emoji icazə verilmir",
313
- "DOMAIN_NOT_ALLOWED": "URL icazə verilməyən domeni ehtiva edir"
313
+ "DOMAIN_NOT_ALLOWED": "URL icazə verilməyən domeni ehtiva edir",
314
+ "TICKET": {
315
+ "OPEN_TICKET": "Bilet aç",
316
+ "DESCRIPTION": "Bu söhbət üçün bilet açmaq istədiyinizi təsdiqləyirsinizmi?",
317
+ "CONFIRM": "Təsdiqlə",
318
+ "CLOSE": "Bağla"
319
+ }
314
320
  }
@@ -310,5 +310,11 @@
310
310
  "SEND_EMAIL_SUCCESS_OFFLINE_MESSAGE":"Nachricht auch per E-Mail gesendet 📩"
311
311
  },
312
312
  "EMOJI_NOT_ELLOWED": "Emoji nicht erlaubt",
313
- "DOMAIN_NOT_ALLOWED": "Die URL enthält eine nicht erlaubte Domain"
313
+ "DOMAIN_NOT_ALLOWED": "Die URL enthält eine nicht erlaubte Domain",
314
+ "TICKET": {
315
+ "OPEN_TICKET": "Ticket öffnen",
316
+ "DESCRIPTION": "Bestätigen Sie, dass Sie ein Ticket für dieses Gespräch eröffnen möchten?",
317
+ "CONFIRM": "Bestätigen",
318
+ "CLOSE": "Schließen"
319
+ }
314
320
  }
@@ -318,5 +318,11 @@
318
318
  "HOW_CAN_I_HELP_YOU":"How can i help you?"
319
319
  },
320
320
  "EMOJI_NOT_ELLOWED":"Emoji not allowed",
321
- "DOMAIN_NOT_ALLOWED":"URL contains a non-allowed domain"
321
+ "DOMAIN_NOT_ALLOWED":"URL contains a non-allowed domain",
322
+ "TICKET": {
323
+ "OPEN_TICKET": "Open Ticket",
324
+ "DESCRIPTION": "Do you confirm you want to open a ticket for this conversation?",
325
+ "CONFIRM": "Confirm",
326
+ "CLOSE": "Close"
327
+ }
322
328
  }
@@ -310,5 +310,11 @@
310
310
  "SEND_EMAIL_SUCCESS_OFFLINE_MESSAGE":"Mensaje también enviado por correo electrónico 📩"
311
311
  },
312
312
  "EMOJI_NOT_ELLOWED": "Emoji no permitido",
313
- "DOMAIN_NOT_ALLOWED": "La URL contiene un dominio no permitido"
313
+ "DOMAIN_NOT_ALLOWED": "La URL contiene un dominio no permitido",
314
+ "TICKET": {
315
+ "OPEN_TICKET": "Abrir Ticket",
316
+ "DESCRIPTION": "¿Confirmas que deseas abrir un ticket para esta conversación?",
317
+ "CONFIRM": "Confirmar",
318
+ "CLOSE": "Cerrar"
319
+ }
314
320
  }
@@ -310,5 +310,11 @@
310
310
  "SEND_EMAIL_SUCCESS_OFFLINE_MESSAGE":"Message également envoyé par mail 📩"
311
311
  },
312
312
  "EMOJI_NOT_ELLOWED": "Emoji non autorisé",
313
- "DOMAIN_NOT_ALLOWED": "L'URL contient un domaine non autorisé"
313
+ "DOMAIN_NOT_ALLOWED": "L'URL contient un domaine non autorisé",
314
+ "TICKET": {
315
+ "OPEN_TICKET": "Ouvrir un Ticket",
316
+ "DESCRIPTION": "Confirmez-vous vouloir ouvrir un ticket pour cette conversation ?",
317
+ "CONFIRM": "Confirmer",
318
+ "CLOSE": "Fermer"
319
+ }
314
320
  }
@@ -316,7 +316,13 @@
316
316
  "NO_SUGGESTIONS_PRESENT":"Nessun suggerimento trovato",
317
317
  "INSERT_PROMPT_HERE":"Inserisci un prompt qui",
318
318
  "HOW_CAN_I_HELP_YOU":"Come posso aiutarti?"
319
- },
320
- "EMOJI_NOT_ELLOWED": "Emoji non consentite",
321
- "DOMAIN_NOT_ALLOWED": "L'URL contiene un dominio non consentito"
319
+ },
320
+ "EMOJI_NOT_ELLOWED": "Emoji non consentite",
321
+ "DOMAIN_NOT_ALLOWED": "L'URL contiene un dominio non consentito",
322
+ "TICKET": {
323
+ "OPEN_TICKET": "Apri Ticket",
324
+ "DESCRIPTION": "Confermi di voler aprire un ticket per questa conversazione?",
325
+ "CONFIRM": "Conferma",
326
+ "CLOSE": "Chiudi"
327
+ }
322
328
  }
@@ -310,5 +310,11 @@
310
310
  "SEND_EMAIL_SUCCESS_OFFLINE_MESSAGE":"Хабарлама электрондық пошта арқылы да жіберілді 📩"
311
311
  },
312
312
  "EMOJI_NOT_ELLOWED": "Эмодзи рұқсат етілмеген",
313
- "DOMAIN_NOT_ALLOWED": "URL рұқсат етілмеген доменді қамтиды"
313
+ "DOMAIN_NOT_ALLOWED": "URL рұқсат етілмеген доменді қамтиды",
314
+ "TICKET": {
315
+ "OPEN_TICKET": "Тапсырма ашу",
316
+ "DESCRIPTION": "Осы әңгіме үшін тапсырма ашқыңыз келетінін растайсыз ба?",
317
+ "CONFIRM": "Растау",
318
+ "CLOSE": "Жабу"
319
+ }
314
320
  }
@@ -310,5 +310,11 @@
310
310
  "SEND_EMAIL_SUCCESS_OFFLINE_MESSAGE":"Mensagem também enviada por e-mail 📩"
311
311
  },
312
312
  "EMOJI_NOT_ELLOWED": "Emoji não permitido",
313
- "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
+ }
314
320
  }
@@ -310,5 +310,11 @@
310
310
  "SEND_EMAIL_SUCCESS_OFFLINE_MESSAGE":"Сообщение также отправлено по электронной почте 📩"
311
311
  },
312
312
  "EMOJI_NOT_ELLOWED": "Эмодзи не разрешены",
313
- "DOMAIN_NOT_ALLOWED": "URL содержит недопустимый домен"
313
+ "DOMAIN_NOT_ALLOWED": "URL содержит недопустимый домен",
314
+ "TICKET": {
315
+ "OPEN_TICKET": "Открыть тикет",
316
+ "DESCRIPTION": "Вы подтверждаете, что хотите открыть тикет для этого разговора?",
317
+ "CONFIRM": "Подтвердить",
318
+ "CLOSE": "Закрыть"
319
+ }
314
320
  }
@@ -310,5 +310,11 @@
310
310
  "SEND_EMAIL_SUCCESS_OFFLINE_MESSAGE":"Порука је такође послата е-поштом 📩"
311
311
  },
312
312
  "EMOJI_NOT_ELLOWED": "Emodžiji nisu dozvoljeni",
313
- "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
+ }
314
320
  }
@@ -310,5 +310,11 @@
310
310
  "SEND_EMAIL_SUCCESS_OFFLINE_MESSAGE":"Meddelande skickas även via mail 📩"
311
311
  },
312
312
  "EMOJI_NOT_ELLOWED": "Emoji är inte tillåtna",
313
- "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
+ }
314
320
  }
@@ -310,5 +310,11 @@
310
310
  "SEND_EMAIL_SUCCESS_OFFLINE_MESSAGE":"Mesaj ayrıca e-posta ile gönderilir 📩"
311
311
  },
312
312
  "EMOJI_NOT_ELLOWED": "Emoji'ye izin verilmiyor",
313
- "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
+ }
314
320
  }
@@ -310,5 +310,11 @@
310
310
  "SEND_EMAIL_SUCCESS_OFFLINE_MESSAGE":"Повідомлення також надіслано електронною поштою 📩"
311
311
  },
312
312
  "EMOJI_NOT_ELLOWED": "Емодзі не дозволені",
313
- "DOMAIN_NOT_ALLOWED": "URL містить недозволений домен"
313
+ "DOMAIN_NOT_ALLOWED": "URL містить недозволений домен",
314
+ "TICKET": {
315
+ "OPEN_TICKET": "Відкрити тікет",
316
+ "DESCRIPTION": "Підтверджуєте, що хочете відкрити тікет для цієї розмови?",
317
+ "CONFIRM": "Підтвердити",
318
+ "CLOSE": "Закрити"
319
+ }
314
320
  }
@@ -310,5 +310,12 @@
310
310
  "SEND_EMAIL_SUCCESS_OFFLINE_MESSAGE":"Xabar elektron pochta orqali ham yuborildi 📩"
311
311
  },
312
312
  "EMOJI_NOT_ELLOWED": "Emoji'ga ruxsat berilmagan",
313
- "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
+
314
321
  }
@@ -0,0 +1,47 @@
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
+ if(window && window.parent){
39
+ const message = { companyID: "1", sourceID: "CHAT", tiledeskID: requestId }
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
+ }
46
+
47
+ 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
  }