{"version":3,"file":"lifeintelligencegroup-ngx-lig-ari.mjs","sources":["../../../projects/ngx-lig-ari/src/lib/services/voice-setup.constant.ts","../../../projects/ngx-lig-ari/src/lib/services/network-service.service.ts","../../../projects/ngx-lig-ari/src/lib/services/ari-speech.service.ts","../../../projects/ngx-lig-ari/src/lib/model/ari-bot.mode.ts","../../../projects/ngx-lig-ari/src/lib/model/ari-svg-icons.ts","../../../projects/ngx-lig-ari/src/lib/components/ari-svg-icon/ari-svg-icon.component.ts","../../../projects/ngx-lig-ari/src/lib/components/ari-svg-icon/ari-svg-icon.component.html","../../../projects/ngx-lig-ari/src/lib/components/ari-listener-sheet/ari-listener-sheet.component.ts","../../../projects/ngx-lig-ari/src/lib/components/ari-listener-sheet/ari-listener-sheet.component.html","../../../projects/ngx-lig-ari/src/lib/directives/keyboard-attach.directive.ts","../../../projects/ngx-lig-ari/src/lib/model/google.ts","../../../projects/ngx-lig-ari/src/lib/services/pubsub.service.ts","../../../projects/ngx-lig-ari/src/lib/model/browser.ts","../../../projects/ngx-lig-ari/src/lib/services/common.service.ts","../../../projects/ngx-lig-ari/src/lib/services/ari-bot.service.ts","../../../projects/ngx-lig-ari/src/lib/services/localstorage.service.ts","../../../projects/ngx-lig-ari/src/lib/services/httpcancel.service.ts","../../../projects/ngx-lig-ari/src/lib/services/google-analytics.service.ts","../../../projects/ngx-lig-ari/src/lib/components/ari-logo/ari-logo.component.ts","../../../projects/ngx-lig-ari/src/lib/components/ari-logo/ari-logo.component.html","../../../projects/ngx-lig-ari/src/lib/components/ari-splash-screen/ari-splash-screen.component.ts","../../../projects/ngx-lig-ari/src/lib/components/ari-splash-screen/ari-splash-screen.component.html","../../../projects/ngx-lig-ari/src/lib/components/ari-suggestion-buttons/ari-suggestion-buttons.component.ts","../../../projects/ngx-lig-ari/src/lib/components/ari-suggestion-buttons/ari-suggestion-buttons.component.html","../../../projects/ngx-lig-ari/src/lib/components/ari-select-option/ari-select-option.component.ts","../../../projects/ngx-lig-ari/src/lib/components/ari-select-option/ari-select-option.component.html","../../../projects/ngx-lig-ari/src/lib/model/task.model.ts","../../../projects/ngx-lig-ari/src/lib/components/ari-multiple-selection-card/ari-multiple-selection-card.component.ts","../../../projects/ngx-lig-ari/src/lib/components/ari-multiple-selection-card/ari-multiple-selection-card.component.html","../../../projects/ngx-lig-ari/src/lib/components/weather-card/weather-card.component.ts","../../../projects/ngx-lig-ari/src/lib/components/weather-card/weather-card.component.html","../../../projects/ngx-lig-ari/src/lib/pipes/truncate.pipe.ts","../../../projects/ngx-lig-ari/src/lib/components/ari-card-attachments/ari-card-attachments.component.ts","../../../projects/ngx-lig-ari/src/lib/components/ari-card-attachments/ari-card-attachments.component.html","../../../projects/ngx-lig-ari/src/lib/components/ari-card-video-attachments/ari-card-video-attachments.component.ts","../../../projects/ngx-lig-ari/src/lib/components/ari-card-video-attachments/ari-card-video-attachments.component.html","../../../projects/ngx-lig-ari/src/lib/pipes/time-ago.pipe.ts","../../../projects/ngx-lig-ari/src/lib/components/ari-card-news-attachments/ari-card-news-attachments.component.ts","../../../projects/ngx-lig-ari/src/lib/components/ari-card-news-attachments/ari-card-news-attachments.component.html","../../../projects/ngx-lig-ari/src/lib/components/ari-card-shop-attachments/ari-card-shop-attachments.component.ts","../../../projects/ngx-lig-ari/src/lib/components/ari-card-shop-attachments/ari-card-shop-attachments.component.html","../../../projects/ngx-lig-ari/src/lib/components/ari-loader/ari-loader.component.ts","../../../projects/ngx-lig-ari/src/lib/components/ari-loader/ari-loader.component.html","../../../projects/ngx-lig-ari/src/lib/components/ari-chart/ari-chart.component.ts","../../../projects/ngx-lig-ari/src/lib/components/ari-chart/ari-chart.component.html","../../../projects/ngx-lig-ari/src/lib/pipes/task-color.pipe.ts","../../../projects/ngx-lig-ari/src/lib/components/ari-tasks/ari-tasks.component.ts","../../../projects/ngx-lig-ari/src/lib/components/ari-tasks/ari-tasks.component.html","../../../projects/ngx-lig-ari/src/lib/components/ari-show-cards/ari-show-cards.component.ts","../../../projects/ngx-lig-ari/src/lib/components/ari-show-cards/ari-show-cards.component.html","../../../projects/ngx-lig-ari/src/lib/components/ari-error/ari-error.component.ts","../../../projects/ngx-lig-ari/src/lib/components/ari-error/ari-error.component.html","../../../projects/ngx-lig-ari/src/lib/components/ari-chat-toolbar/ari-chat-toolbar.component.ts","../../../projects/ngx-lig-ari/src/lib/components/ari-chat-toolbar/ari-chat-toolbar.component.html","../../../projects/ngx-lig-ari/src/lib/pipes/linkify.pipe.ts","../../../projects/ngx-lig-ari/src/lib/pipes/ari-text-response.pipe.ts","../../../projects/ngx-lig-ari/src/lib/ari-mobile/ari-mobile.component.ts","../../../projects/ngx-lig-ari/src/lib/ari-mobile/ari-mobile.component.html","../../../projects/ngx-lig-ari/src/lib/services/ngx-lig-ari.service.ts","../../../projects/ngx-lig-ari/src/lib/ari-web/ari-web.component.ts","../../../projects/ngx-lig-ari/src/lib/ari-web/ari-web.component.html","../../../projects/ngx-lig-ari/src/lib/ari-container/ngx-lig-ari.component.ts","../../../projects/ngx-lig-ari/src/lib/ari-container/ngx-lig-ari.component.html","../../../projects/ngx-lig-ari/src/lib/components/ari-uploader/ari-uploader.component.ts","../../../projects/ngx-lig-ari/src/lib/components/ari-uploader/ari-uploader.component.html","../../../projects/ngx-lig-ari/src/lib/components/ari-was-helpful/ari-was-helpful.component.ts","../../../projects/ngx-lig-ari/src/lib/components/ari-was-helpful/ari-was-helpful.component.html","../../../projects/ngx-lig-ari/src/lib/components/ari-show-more/ari-show-more.component.ts","../../../projects/ngx-lig-ari/src/lib/components/ari-show-more/ari-show-more.component.html","../../../projects/ngx-lig-ari/src/lib/pipes/12hour.pipe.ts","../../../projects/ngx-lig-ari/src/lib/pipes/pipes.module.ts","../../../projects/ngx-lig-ari/src/lib/services/manage-http.interceptor.service.ts","../../../projects/ngx-lig-ari/src/lib/ngx-lig-ari.module.ts","../../../projects/ngx-lig-ari/src/index.ts","../../../projects/ngx-lig-ari/src/lifeintelligencegroup-ngx-lig-ari.ts"],"sourcesContent":["export const Voices = [\n  { Language: 'ar-SA', Name: 'Maged' },\n  { Language: 'cs-CZ', Name: 'Zuzana' },\n  { Language: 'da-DK', Name: 'Sara' },\n  { Language: 'de-DE', Name: 'Anna' },\n  { Language: 'el-GR', Name: 'Melina' },\n  { Language: 'en-AU', Name: 'Karen' },\n  { Language: 'en-GB', Name: 'Daniel' },\n  { Language: 'en-IE', Name: 'Moira' },\n  { Language: 'en-US', Name: 'Samantha' },\n  { Language: 'en-ZA', Name: 'Tessa' },\n  { Language: 'es-ES', Name: 'Monica' },\n  { Language: 'es-MX', Name: 'Paulina' },\n  { Language: 'fi-FI', Name: 'Satu' },\n  { Language: 'fr-CA', Name: 'Amelie' },\n  { Language: 'fr-FR', Name: 'Thomas' },\n  { Language: 'he-IL', Name: 'Carmit' },\n  { Language: 'hi-IN', Name: 'Lekha' },\n  { Language: 'hu-HU', Name: 'Mariska' },\n  { Language: 'id-ID', Name: 'Damayanti' },\n  { Language: 'it-IT', Name: 'Alice' },\n  { Language: 'ja-JP', Name: 'Kyoko' },\n  { Language: 'ko-KR', Name: 'Yuna' },\n  { Language: 'nl-BE', Name: 'Ellen' },\n  { Language: 'nl-NL', Name: 'Xander' },\n  { Language: 'no-NO', Name: 'Nora' },\n  { Language: 'pl-PL', Name: 'Zosia' },\n  { Language: 'pt-BR', Name: 'Luciana' },\n  { Language: 'pt-PT', Name: 'Joana' },\n  { Language: 'ro-RO', Name: 'Ioana' },\n  { Language: 'ru-RU', Name: 'Milena' },\n  { Language: 'sk-SK', Name: 'Laura' },\n  { Language: 'sv-SE', Name: 'Alva' },\n  { Language: 'th-TH', Name: 'Kanya' },\n  { Language: 'tr-TR', Name: 'Yelda' },\n  { Language: 'zh-CN', Name: 'Ting-Ting' },\n  { Language: 'zh-HK', Name: 'Sin-Ji' },\n  { Language: 'zh-TW', Name: 'Mei-Jia' },\n];\n","import { Injectable } from '@angular/core';\nimport { ToastController, Platform } from '@ionic/angular';\n\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nexport enum ConnectionStatus {\n  Online,\n  Offline,\n}\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class NetworkServiceService {\n  globalToast: any;\n  isAppOnline: boolean;\n\n  private status: BehaviorSubject<ConnectionStatus> = new BehaviorSubject(\n    ConnectionStatus.Offline\n  );\n\n  constructor(\n    public platform: Platform,\n    private toastController: ToastController\n  ) {\n    this.initializeNetwork();\n\n    const status = navigator.onLine\n      ? ConnectionStatus.Online\n      : ConnectionStatus.Offline;\n    this.isAppOnline = navigator.onLine ? true : false;\n    this.status.next(status);\n  }\n\n  onNetworkChange(): Observable<ConnectionStatus> {\n    return this.status.asObservable();\n  }\n\n  getCurrentNetworkStatus(): ConnectionStatus {\n    return this.status.getValue();\n  }\n\n  initializeNetwork() {\n    window.addEventListener('online', () => {\n      if (this.status.getValue() === ConnectionStatus.Offline) {\n        this.isAppOnline = true;\n        this.updateNetworkStatus(ConnectionStatus.Online);\n      }\n    });\n\n    window.addEventListener('offline', () => {\n      if (this.status.getValue() === ConnectionStatus.Online) {\n        this.isAppOnline = false;\n        this.updateNetworkStatus(ConnectionStatus.Offline);\n      }\n    });\n  }\n\n  async updateNetworkStatus(status: ConnectionStatus) {\n    this.status.next(status);\n\n    const connection =\n      status === ConnectionStatus.Offline ? 'Offline' : 'Online';\n\n    if (this.globalToast) {\n      this.globalToast.dismiss();\n    }\n\n    if (connection === 'Offline') {\n      this.toastController\n        .create({\n          message: 'No Connection!',\n          position: 'top',\n          duration: 3000,\n          cssClass: 'offline-toast-notif-danger',\n        })\n        .then((toast) => {\n          this.globalToast = toast;\n          this.globalToast.present();\n        });\n    } else if (connection === 'Online') {\n      this.toastController\n        .create({\n          message: 'Online!',\n          position: 'top',\n          duration: 3000,\n          cssClass: 'online-toast-notif-success',\n        })\n        .then((toast) => {\n          this.globalToast = toast;\n          this.globalToast.present();\n        });\n    }\n  }\n}\n","import { Injectable } from '@angular/core';\nimport Speech from 'speak-tts';\n\ndeclare const window: any;\ndeclare var webkitSpeechRecognition: any;\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class AriSpeechService {\n  showSpeechRecognitionError: boolean;\n  showSpeechRecognitionStatus: any;\n\n  SpeechSynthesisUtterance: any;\n  showSpeechSynthesisError: boolean;\n  showSpeechSynthesisStatus: any;\n\n  NativeSpeechSynthesis: any;\n  SpeechRecognition;\n\n  constructor() {}\n\n  initWebSpeechRecognition() {\n    const SpeechRecognition =\n      window.SpeechRecognition || window.webkitSpeechRecognition;\n    if (SpeechRecognition) {\n      this.SpeechRecognition = new SpeechRecognition();\n      this.SpeechRecognition.lang = 'en-US';\n      this.SpeechRecognition.interimResults = true;\n      this.SpeechRecognition.maxAlternatives = 10;\n    }\n  }\n\n  initWebSpeechSynthesis() {\n    this.SpeechSynthesisUtterance = new Speech();\n    this.showSpeechSynthesisError = false;\n    this.showSpeechSynthesisStatus = '';\n  }\n\n  isWebSpeechRecognitionSupported(): boolean {\n    if (\n      !('SpeechRecognition' in window || 'webkitSpeechRecognition' in window)\n    ) {\n      this.showSpeechRecognitionError = true;\n      this.showSpeechRecognitionStatus = 'Speech Recognition not supported...';\n      return false;\n    }\n\n    if (\n      !(\n        window.hasOwnProperty('SpeechRecognition') ||\n        window.hasOwnProperty('webkitSpeechRecognition')\n      )\n    ) {\n      this.showSpeechRecognitionError = true;\n      this.showSpeechRecognitionStatus = 'Speech Recognition not supported...';\n\n      return false;\n    }\n\n    this.showSpeechRecognitionError = false;\n    this.showSpeechRecognitionStatus = '';\n    return true;\n  }\n\n  isWebSpeechSynthesisSupported(): boolean {\n    if (\n      !('speechSynthesis' in window && 'SpeechSynthesisUtterance' in window)\n    ) {\n      this.showSpeechSynthesisError = true;\n      this.showSpeechSynthesisStatus = 'Speech Synthesis not supported...';\n      return false;\n    }\n    return true;\n  }\n\n  SpeechStopsListening() {\n    this.SpeechRecognition.stop();\n  }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface AriConfig {\n  apiSecret: string;\n  showFab?: boolean;\n  settings?: any;\n}\nexport const ariTimeoutMessage = {\n  ariLabel:\n    `I have not heard from you in a while so I assume you're busy. Call me again when you are ready. Goodbye.`,\n};\nexport const ariRhymes = [\n  'hey avah',\n  'hello avah',\n  'hey ava',\n  'hello ava',\n  'hi ava',\n  'hi avah',\n  'harry',\n  'harrie',\n  'hey harrie',\n  'hello harrie',\n  'hi harry',\n  'hey harry',\n  'hello harry',\n  'hi harry',\n  'hello annie',\n  'hey annie',\n  'hi annie',\n  'hi harry',\n  'hey ari',\n  'hello ari',\n  'hello re',\n  'hello ri',\n  'ask ari',\n  'ask re',\n  'ask ri',\n  'hi ari',\n  'hi re',\n  'hi ri',\n  'ok ari',\n  'hey re',\n  'hey ri',\n  'ok re',\n  'ok ri',\n  'jre',\n];\n\nexport const AriConfigService = new InjectionToken<AriConfig>('AriConfig');\n","export const ariIcons: any = {\n  ari_Logo_base64:\n    'data:image/png;base64,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',\n  ari_logo: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"82.302\" height=\"80\" viewBox=\"0 0 82.302 80\"><g transform=\"translate(0 0)\"><path d=\"M32.522,44.53c-3.292,0-5.187.6-7.116,2.726l3.138,3.069A4.287,4.287,0,0,1,32.334,48.7c2.615,0,3.678.943,3.678,3.1v.986H31.348c-4.578,0-6.738,2.572-6.738,5.718a6.318,6.318,0,0,0,1.629,4.432,6.721,6.721,0,0,0,5.032,1.715,6,6,0,0,0,4.818-1.869V64.5H40.9v-13C40.932,46.879,38.052,44.53,32.522,44.53Zm3.489,12.688a3.258,3.258,0,0,1-.72,2.5c-.857.857-1.715.943-3.112.943-1.929,0-2.838-.909-2.838-2.272s.986-2.238,2.769-2.238h3.9Z\" transform=\"translate(-3.512 -7.505)\" fill=\"#008996\"/><path d=\"M52.439,46.646V44.751H47.63V64.469h4.921V52.6a3.3,3.3,0,0,1,3.181-3.635,3.258,3.258,0,0,1,2.615,1.175l3.712-3.755a5.95,5.95,0,0,0-4.681-1.852,6.687,6.687,0,0,0-4.938,2.118Z\" transform=\"translate(-6.797 -7.503)\" fill=\"#008996\"/><rect width=\"5.041\" height=\"4.012\" transform=\"translate(56.093 29.866)\" fill=\"#008996\"/><rect width=\"4.921\" height=\"19.735\" transform=\"translate(56.17 37.248)\" fill=\"#008996\"/><path d=\"M76.513,34.261C73.513,8.319,55.732-6.9,37.626,6.038A68.489,68.489,0,0,0,20.48,23.4C42.6,13.18,64.357,18.786,76.513,34.261Z\" transform=\"translate(-2.923 -1.342)\" fill=\"#008996\"/><path d=\"M8.228,63.16a28.291,28.291,0,0,0,.737,8.753C15.386,92.034,39.922,94.46,57.214,84.352c-10.725-.42-23.91-4.492-38-13.091a67.726,67.726,0,0,1-10.991-8.1Z\" transform=\"translate(-1.164 -10.164)\" fill=\"#00538b\"/><path d=\"M11.076,30.533C-5.53,40.615-.506,50.851,7.064,58.01A60.62,60.62,0,0,1,17.592,27.07a64.838,64.838,0,0,0-6.515,3.464Z\" transform=\"translate(0 -5.014)\" fill=\"#ffcd00\"/><path d=\"M89.547,51.511A44.442,44.442,0,0,0,82.92,39.74a71.84,71.84,0,0,1,.137,14.728c-1.106,12-8.342,21.081-17.678,26.576C85.192,81.791,96.569,70.114,89.547,51.511Z\" transform=\"translate(-9.33 -6.822)\" fill=\"#e53e51\"/></g></svg>`,\n  'icon-volume': `%3Csvg xmlns='http://www.w3.org/2000/svg' width='26.209' height='24.51' viewBox='0 0 26.209 24.51'%3E%3Cdefs%3E%3Cstyle%3E.a%7Bfill:%231D57A4;stroke:%231D57A4;stroke-width:0.5px;%7D%3C/style%3E%3C/defs%3E%3Cg transform='translate(0.25 0.264)'%3E%3Cg transform='translate(0 0)'%3E%3Cpath class='a' d='M14.941,16.075a.854.854,0,0,0-.907.1L5.7,22.847H1.714A1.717,1.717,0,0,0,0,24.561v6.856a1.717,1.717,0,0,0,1.714,1.714H5.7L14.032,39.8a.858.858,0,0,0,1.393-.67V16.848A.86.86,0,0,0,14.941,16.075Zm-9.8,15.342H1.714V24.561H5.142Zm8.57,5.929L6.856,31.861V24.117l6.856-5.485Z' transform='translate(0 -15.99)'/%3E%3C/g%3E%3Cg transform='translate(18.305 5.69)'%3E%3Cpath class='a' d='M343.22,122.477a.857.857,0,0,0-1.2,1.219,6.844,6.844,0,0,1,0,9.684.856.856,0,1,0,1.2,1.217,8.555,8.555,0,0,0,0-12.119Z' transform='translate(-341.76 -122.229)'/%3E%3C/g%3E%3Cg transform='translate(20.722 3.275)'%3E%3Cpath class='a' d='M388.348,77.385a.857.857,0,1,0-1.207,1.217,10.233,10.233,0,0,1,0,14.517.857.857,0,1,0,1.207,1.217,11.946,11.946,0,0,0,0-16.951Z' transform='translate(-386.888 -77.137)'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E`,\n  'icon-volume-mute': `%3Csvg xmlns='http://www.w3.org/2000/svg' width='24.562' height='24.51' viewBox='0 0 24.562 24.51'%3E%3Cdefs%3E%3Cstyle%3E.a%7Bfill:%231D57A4;stroke:%231D57A4;stroke-width:0.5px;%7D%3C/style%3E%3C/defs%3E%3Cg transform='translate(0.317 0.264)'%3E%3Cg transform='translate(10.3 0)'%3E%3Cpath class='a' d='M200.4.085a.854.854,0,0,0-.907.1l-6.839,5.468A.858.858,0,0,0,193.724,7l5.445-4.355V13.164a.857.857,0,1,0,1.714,0V.858A.86.86,0,0,0,200.4.085Z' transform='translate(-192.331 0)'/%3E%3C/g%3E%3Cg transform='translate(0 0.001)'%3E%3Cpath class='a' d='M23.764,22.549l-5.14-5.14,0,0-8.57-8.57,0,0L8.338,7.123l0,0L1.482.266A.857.857,0,0,0,.271,1.477L5.663,6.871h-.5A1.7,1.7,0,0,0,3.447,8.585v6.856a1.7,1.7,0,0,0,1.714,1.714H9.144l8.335,6.669a.858.858,0,0,0,1.393-.67V20.081l3.678,3.678a.857.857,0,1,0,1.213-1.21ZM8.589,15.441H5.161V8.585H7.377L8.589,9.8Zm8.57,5.929L10.3,15.885V11.511l6.856,6.856Z' transform='translate(-0.02 -0.015)'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E`,\n  'icon-close': `%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Ctitle%3Eionicons-v5-l%3C/title%3E%3Cline x1='368' y1='368' x2='144' y2='144' style='fill:none;stroke:%236E7E81;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px'/%3E%3Cline x1='368' y1='144' x2='144' y2='368' style='fill:none;stroke:%236E7E81;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px'/%3E%3C/svg%3E%0A`,\n  'mic-outline': `%3Csvg xmlns='http://www.w3.org/2000/svg' width='512' height='512' viewBox='0 0 512 512'%3E%3Cline x1='192' y1='448' x2='320' y2='448' style='fill:none;stroke:%23CCCCCC;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px' /%3E%3Cpath d='M384,208v32c0,70.4-57.6,128-128,128h0c-70.4,0-128-57.6-128-128V208' style='fill:none;stroke:%23CCCCCC;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px' /%3E%3Cline x1='256' y1='368' x2='256' y2='448' style='fill:none;stroke:%23CCCCCC;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px' /%3E%3Cpath d='M256,64a63.68,63.68,0,0,0-64,64V239c0,35.2,29,65,64,65s64-29,64-65V128C320,92,292,64,256,64Z' style='fill:none;stroke:%23CCCCCC;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px' /%3E%3C/svg%3E`,\n  mic: `data:image/png;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIGNsYXNzPSdpb25pY29uJyB2aWV3Qm94PScwIDAgNTEyIDUxMic+PHRpdGxlPk1pYzwvdGl0bGU+PHBhdGggZmlsbD0nbm9uZScgc3Ryb2tlPSdjdXJyZW50Q29sb3InIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCcgc3Ryb2tlLXdpZHRoPSczMicgZD0nTTE5MiA0NDhoMTI4TTM4NCAyMDh2MzJjMCA3MC40LTU3LjYgMTI4LTEyOCAxMjhoMGMtNzAuNCAwLTEyOC01Ny42LTEyOC0xMjh2LTMyTTI1NiAzNjh2ODAnLz48cGF0aCBkPSdNMjU2IDMyMGE3OC44MyA3OC44MyAwIDAxLTU2LjU1LTI0LjFBODAuODkgODAuODkgMCAwMTE3NiAyMzlWMTI4YTc5LjY5IDc5LjY5IDAgMDE4MC04MGM0NC44NiAwIDgwIDM1LjE0IDgwIDgwdjExMWMwIDQ0LjY2LTM1Ljg5IDgxLTgwIDgxeicvPjwvc3ZnPg==`,\n  icon_send: `%3C%3Fxml version='1.0' encoding='iso-8859-1' %3F%3E%3Csvg version='1.1' id='Capa_1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 448.011 448.011' style='enable-background:new 0 0 448.011 448.011;' xml:space='preserve'%3E%3Cg%3E%3Cg%3E%3Cpath fill='%23ffffff' d='M438.731,209.463l-416-192c-6.624-3.008-14.528-1.216-19.136,4.48c-4.64,5.696-4.8,13.792-0.384,19.648l136.8,182.4 l-136.8,182.4c-4.416,5.856-4.256,13.984,0.352,19.648c3.104,3.872,7.744,5.952,12.448,5.952c2.272,0,4.544-0.48,6.688-1.472 l416-192c5.696-2.624,9.312-8.288,9.312-14.528S444.395,212.087,438.731,209.463z' /%3E%3C/g%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3C/svg%3E%0A`,\n  'chat-size-01-active': `%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 76 76'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23fff;%7D%3C/style%3E%3C/defs%3E%3Cg id='Layer_2' data-name='Layer 2'%3E%3Cg id='Layer_1-2' data-name='Layer 1'%3E%3Cpath class='cls-1' d='M38,38H3.8V33.06H0V76H42.94V72.2H38ZM33.06,72.2H3.8V41.8H34.2V72.2Z'/%3E%3Crect class='cls-1' x='33.06' width='9.88' height='3.8'/%3E%3Crect class='cls-1' x='49.59' width='9.88' height='3.8'/%3E%3Crect class='cls-1' x='49.59' y='72.2' width='9.88' height='3.8'/%3E%3Crect class='cls-1' x='16.53' width='9.88' height='3.8'/%3E%3Cpolygon class='cls-1' points='3.8 3.8 9.88 3.8 9.88 0 3.8 0 0 0 0 3.8 0 9.88 3.8 9.88 3.8 3.8'/%3E%3Crect class='cls-1' y='16.53' width='3.8' height='9.88'/%3E%3Cpolygon class='cls-1' points='72.2 0 66.12 0 66.12 3.8 72.2 3.8 72.2 9.88 76 9.88 76 3.8 76 0 72.2 0'/%3E%3Crect class='cls-1' x='72.2' y='16.53' width='3.8' height='9.88'/%3E%3Crect class='cls-1' x='72.2' y='49.59' width='3.8' height='9.88'/%3E%3Cpolygon class='cls-1' points='72.2 72.2 66.12 72.2 66.12 76 72.2 76 76 76 76 72.2 76 66.12 72.2 66.12 72.2 72.2'/%3E%3Crect class='cls-1' x='72.2' y='33.06' width='3.8' height='9.88'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E`,\n  'chat-size-01': `%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 76 76'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23B5B5B5;%7D%3C/style%3E%3C/defs%3E%3Cg id='Layer_2' data-name='Layer 2'%3E%3Cg id='Layer_1-2' data-name='Layer 1'%3E%3Cpath class='cls-1' d='M38,38H3.8V33.06H0V76H42.94V72.2H38ZM33.06,72.2H3.8V41.8H34.2V72.2Z'/%3E%3Crect class='cls-1' x='33.06' width='9.88' height='3.8'/%3E%3Crect class='cls-1' x='49.59' width='9.88' height='3.8'/%3E%3Crect class='cls-1' x='49.59' y='72.2' width='9.88' height='3.8'/%3E%3Crect class='cls-1' x='16.53' width='9.88' height='3.8'/%3E%3Cpolygon class='cls-1' points='3.8 3.8 9.88 3.8 9.88 0 3.8 0 0 0 0 3.8 0 9.88 3.8 9.88 3.8 3.8'/%3E%3Crect class='cls-1' y='16.53' width='3.8' height='9.88'/%3E%3Cpolygon class='cls-1' points='72.2 0 66.12 0 66.12 3.8 72.2 3.8 72.2 9.88 76 9.88 76 3.8 76 0 72.2 0'/%3E%3Crect class='cls-1' x='72.2' y='16.53' width='3.8' height='9.88'/%3E%3Crect class='cls-1' x='72.2' y='49.59' width='3.8' height='9.88'/%3E%3Cpolygon class='cls-1' points='72.2 72.2 66.12 72.2 66.12 76 72.2 76 76 76 76 72.2 76 66.12 72.2 66.12 72.2 72.2'/%3E%3Crect class='cls-1' x='72.2' y='33.06' width='3.8' height='9.88'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E`,\n  'chat-size-02-active': `%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 76 76'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23fff;%7D%3C/style%3E%3C/defs%3E%3Cg id='Layer_2' data-name='Layer 2'%3E%3Cg id='Layer_1-2' data-name='Layer 1'%3E%3Cpath class='cls-1' d='M33.06,0H0V76H42.94V72.2H38V3.8h4.94V0H33.06ZM34.2,72.2H3.8V3.8H34.2Z'/%3E%3Crect class='cls-1' x='49.59' width='9.88' height='3.8'/%3E%3Crect class='cls-1' x='49.59' y='72.2' width='9.88' height='3.8'/%3E%3Cpolygon class='cls-1' points='72.2 0 66.12 0 66.12 3.8 72.2 3.8 72.2 9.88 76 9.88 76 3.8 76 0 72.2 0'/%3E%3Crect class='cls-1' x='72.2' y='16.53' width='3.8' height='9.88'/%3E%3Crect class='cls-1' x='72.2' y='49.59' width='3.8' height='9.88'/%3E%3Cpolygon class='cls-1' points='72.2 72.2 66.12 72.2 66.12 76 72.2 76 76 76 76 72.2 76 66.12 72.2 66.12 72.2 72.2'/%3E%3Crect class='cls-1' x='72.2' y='33.06' width='3.8' height='9.88'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E`,\n  'chat-size-02': `%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 76 76'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23B5B5B5;%7D%3C/style%3E%3C/defs%3E%3Cg id='Layer_2' data-name='Layer 2'%3E%3Cg id='Layer_1-2' data-name='Layer 1'%3E%3Cpath class='cls-1' d='M33.06,0H0V76H42.94V72.2H38V3.8h4.94V0H33.06ZM34.2,72.2H3.8V3.8H34.2Z'/%3E%3Crect class='cls-1' x='49.59' width='9.88' height='3.8'/%3E%3Crect class='cls-1' x='49.59' y='72.2' width='9.88' height='3.8'/%3E%3Cpolygon class='cls-1' points='72.2 0 66.12 0 66.12 3.8 72.2 3.8 72.2 9.88 76 9.88 76 3.8 76 0 72.2 0'/%3E%3Crect class='cls-1' x='72.2' y='16.53' width='3.8' height='9.88'/%3E%3Crect class='cls-1' x='72.2' y='49.59' width='3.8' height='9.88'/%3E%3Cpolygon class='cls-1' points='72.2 72.2 66.12 72.2 66.12 76 72.2 76 76 76 76 72.2 76 66.12 72.2 66.12 72.2 72.2'/%3E%3Crect class='cls-1' x='72.2' y='33.06' width='3.8' height='9.88'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E`,\n  'chat-size-03-active': `%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 76 76'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23fff;%7D%3C/style%3E%3C/defs%3E%3Cg id='Layer_2' data-name='Layer 2'%3E%3Cg id='Layer_1-2' data-name='Layer 1'%3E%3Cpath class='cls-1' d='M0,0V76H42.94V72.2H41.8V41.8H72.2v1.14H76V0ZM72.2,38H38V72.2H3.8V3.8H72.2V38Z'/%3E%3Crect class='cls-1' x='49.59' y='72.2' width='9.88' height='3.8'/%3E%3Crect class='cls-1' x='72.2' y='49.59' width='3.8' height='9.88'/%3E%3Cpolygon class='cls-1' points='72.2 72.2 66.12 72.2 66.12 76 72.2 76 76 76 76 72.2 76 66.12 72.2 66.12 72.2 72.2'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E`,\n  'chat-size-03': `%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 76 76'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23B5B5B5;%7D%3C/style%3E%3C/defs%3E%3Cg id='Layer_2' data-name='Layer 2'%3E%3Cg id='Layer_1-2' data-name='Layer 1'%3E%3Cpath class='cls-1' d='M0,0V76H42.94V72.2H41.8V41.8H72.2v1.14H76V0ZM72.2,38H38V72.2H3.8V3.8H72.2V38Z'/%3E%3Crect class='cls-1' x='49.59' y='72.2' width='9.88' height='3.8'/%3E%3Crect class='cls-1' x='72.2' y='49.59' width='3.8' height='9.88'/%3E%3Cpolygon class='cls-1' points='72.2 72.2 66.12 72.2 66.12 76 72.2 76 76 76 76 72.2 76 66.12 72.2 66.12 72.2 72.2'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E`,\n  'chat-size-04-active': `%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 76 76'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23fff;%7D%3C/style%3E%3C/defs%3E%3Cg id='Layer_2' data-name='Layer 2'%3E%3Cg id='Layer_1-2' data-name='Layer 1'%3E%3Cpath class='cls-1' d='M72.2,3.8V72.2H3.8V3.8H72.2M76,0H0V76H76V0Z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E`,\n  'chat-size-04': `%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 76 76'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23B5B5B5;%7D%3C/style%3E%3C/defs%3E%3Cg id='Layer_2' data-name='Layer 2'%3E%3Cg id='Layer_1-2' data-name='Layer 1'%3E%3Cpath class='cls-1' d='M72.2,3.8V72.2H3.8V3.8H72.2M76,0H0V76H76V0Z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E`,\n  error_warning: `%3C%3Fxml version='1.0' encoding='iso-8859-1'%3F%3E%3C!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --%3E%3Csvg version='1.1' id='Capa_1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 451.74 451.74' style='enable-background:new 0 0 451.74 451.74;' xml:space='preserve'%3E%3Cpath style='fill:%23E24C4B;' d='M446.324,367.381L262.857,41.692c-15.644-28.444-58.311-28.444-73.956,0L5.435,367.381 c-15.644,28.444,4.267,64,36.978,64h365.511C442.057,429.959,461.968,395.825,446.324,367.381z'/%3E%3Cpath style='fill:%23FFFFFF;' d='M225.879,63.025l183.467,325.689H42.413L225.879,63.025L225.879,63.025z'/%3E%3Cg%3E%3Cpath style='fill:%233F4448;' d='M196.013,212.359l11.378,75.378c1.422,8.533,8.533,15.644,18.489,15.644l0,0 c8.533,0,17.067-7.111,18.489-15.644l11.378-75.378c2.844-18.489-11.378-34.133-29.867-34.133l0,0 C207.39,178.225,194.59,193.87,196.013,212.359z'/%3E%3Ccircle style='fill:%233F4448;' cx='225.879' cy='336.092' r='17.067'/%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3C/svg%3E%0A`,\n  icon_more: `%3Csvg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'%3E%3Cpath d='M464 256c0-114.87-93.13-208-208-208S48 141.13 48 256s93.13 208 208 208 208-93.13 208-208zm-234-90a26 26 0 1126 26 26 26 0 01-26-26zm0 90a26 26 0 1126 26 26 26 0 01-26-26zm0 90a26 26 0 1126 26 26 26 0 01-26-26z'/%3E%3C/svg%3E`,\n  clock: `%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2221.3%22%20height%3D%2221.301%22%20viewBox%3D%220%200%2021.3%2021.301%22%3E%3Cg%20transform%3D%22translate%28-1.35%20-1.35%29%22%3E%3Ccircle%20cx%3D%2210%22%20cy%3D%2210%22%20r%3D%2210%22%20transform%3D%22translate%282%202%29%22%20fill%3D%22none%22%20stroke%3D%22%23637375%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%221.3%22%2F%3E%3Cpath%20d%3D%22M12%2C6v6l4%2C2%22%20transform%3D%22translate%280%200%29%22%20fill%3D%22none%22%20stroke%3D%22%23637375%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%221.3%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E`,\n  recurring_icon: `%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cg transform='translate(6540 -871)'%3E%3Crect width='24' height='24' transform='translate(-6540 871)' fill='none'/%3E%3Cg transform='translate(-6540 873)'%3E%3Cpath d='M124.769,266.561a.842.842,0,0,0-1.137.354,7.754,7.754,0,0,1-14.413-1.793l1.625,1.221a.842.842,0,1,0,1.01-1.347l-3.107-2.332a.842.842,0,0,0-.522-.168h-.067a.841.841,0,0,0-.791.6l-2.248,2.955a.844.844,0,1,0,1.347,1.019l1.137-1.49h0a9.429,9.429,0,0,0,17.554,2.121.842.842,0,0,0-.387-1.137Z' transform='translate(-104.948 -252.811)' fill='%236e7e81'/%3E%3Cpath d='M192.771,88.662a.842.842,0,0,0-1.179.16l-1.137,1.49h0A9.429,9.429,0,0,0,172.9,88.191a.842.842,0,1,0,1.49.783,7.754,7.754,0,0,1,14.422,1.8l-1.6-1.229a.842.842,0,1,0-1.01,1.347l3.107,2.332a.842.842,0,0,0,.505.168h.084a.841.841,0,0,0,.791-.6l2.248-2.955a.842.842,0,0,0-.168-1.179Z' transform='translate(-169.532 -83.078)' fill='%236e7e81'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E`,\n  recurring_icon_blue: `%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cg transform='translate(6540 -871)'%3E%3Crect width='24' height='24' transform='translate(-6540 871)' fill='none'/%3E%3Cg transform='translate(-6540 873)'%3E%3Cpath d='M124.769,266.561a.842.842,0,0,0-1.137.354,7.754,7.754,0,0,1-14.413-1.793l1.625,1.221a.842.842,0,1,0,1.01-1.347l-3.107-2.332a.842.842,0,0,0-.522-.168h-.067a.841.841,0,0,0-.791.6l-2.248,2.955a.844.844,0,1,0,1.347,1.019l1.137-1.49h0a9.429,9.429,0,0,0,17.554,2.121.842.842,0,0,0-.387-1.137Z' transform='translate(-104.948 -252.811)' fill='%231D57A4'/%3E%3Cpath d='M192.771,88.662a.842.842,0,0,0-1.179.16l-1.137,1.49h0A9.429,9.429,0,0,0,172.9,88.191a.842.842,0,1,0,1.49.783,7.754,7.754,0,0,1,14.422,1.8l-1.6-1.229a.842.842,0,1,0-1.01,1.347l3.107,2.332a.842.842,0,0,0,.505.168h.084a.841.841,0,0,0,.791-.6l2.248-2.955a.842.842,0,0,0-.168-1.179Z' transform='translate(-169.532 -83.078)' fill='%231D57A4'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E`,\n  recurring_icon_teal: `%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cg transform='translate(6540 -871)'%3E%3Crect width='24' height='24' transform='translate(-6540 871)' fill='none'/%3E%3Cg transform='translate(-6540 873)'%3E%3Cpath d='M124.769,266.561a.842.842,0,0,0-1.137.354,7.754,7.754,0,0,1-14.413-1.793l1.625,1.221a.842.842,0,1,0,1.01-1.347l-3.107-2.332a.842.842,0,0,0-.522-.168h-.067a.841.841,0,0,0-.791.6l-2.248,2.955a.844.844,0,1,0,1.347,1.019l1.137-1.49h0a9.429,9.429,0,0,0,17.554,2.121.842.842,0,0,0-.387-1.137Z' transform='translate(-104.948 -252.811)' fill='%23309DA6'/%3E%3Cpath d='M192.771,88.662a.842.842,0,0,0-1.179.16l-1.137,1.49h0A9.429,9.429,0,0,0,172.9,88.191a.842.842,0,1,0,1.49.783,7.754,7.754,0,0,1,14.422,1.8l-1.6-1.229a.842.842,0,1,0-1.01,1.347l3.107,2.332a.842.842,0,0,0,.505.168h.084a.841.841,0,0,0,.791-.6l2.248-2.955a.842.842,0,0,0-.168-1.179Z' transform='translate(-169.532 -83.078)' fill='%23309DA6'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E`,\n  recurring_icon_amber: `%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cg transform='translate(6540 -871)'%3E%3Crect width='24' height='24' transform='translate(-6540 871)' fill='none'/%3E%3Cg transform='translate(-6540 873)'%3E%3Cpath d='M124.769,266.561a.842.842,0,0,0-1.137.354,7.754,7.754,0,0,1-14.413-1.793l1.625,1.221a.842.842,0,1,0,1.01-1.347l-3.107-2.332a.842.842,0,0,0-.522-.168h-.067a.841.841,0,0,0-.791.6l-2.248,2.955a.844.844,0,1,0,1.347,1.019l1.137-1.49h0a9.429,9.429,0,0,0,17.554,2.121.842.842,0,0,0-.387-1.137Z' transform='translate(-104.948 -252.811)' fill='%23FAC441'/%3E%3Cpath d='M192.771,88.662a.842.842,0,0,0-1.179.16l-1.137,1.49h0A9.429,9.429,0,0,0,172.9,88.191a.842.842,0,1,0,1.49.783,7.754,7.754,0,0,1,14.422,1.8l-1.6-1.229a.842.842,0,1,0-1.01,1.347l3.107,2.332a.842.842,0,0,0,.505.168h.084a.841.841,0,0,0,.791-.6l2.248-2.955a.842.842,0,0,0-.168-1.179Z' transform='translate(-169.532 -83.078)' fill='%23FAC441'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E`,\n  recurring_icon_red: `%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cg transform='translate(6540 -871)'%3E%3Crect width='24' height='24' transform='translate(-6540 871)' fill='none'/%3E%3Cg transform='translate(-6540 873)'%3E%3Cpath d='M124.769,266.561a.842.842,0,0,0-1.137.354,7.754,7.754,0,0,1-14.413-1.793l1.625,1.221a.842.842,0,1,0,1.01-1.347l-3.107-2.332a.842.842,0,0,0-.522-.168h-.067a.841.841,0,0,0-.791.6l-2.248,2.955a.844.844,0,1,0,1.347,1.019l1.137-1.49h0a9.429,9.429,0,0,0,17.554,2.121.842.842,0,0,0-.387-1.137Z' transform='translate(-104.948 -252.811)' fill='%23F64D4B'/%3E%3Cpath d='M192.771,88.662a.842.842,0,0,0-1.179.16l-1.137,1.49h0A9.429,9.429,0,0,0,172.9,88.191a.842.842,0,1,0,1.49.783,7.754,7.754,0,0,1,14.422,1.8l-1.6-1.229a.842.842,0,1,0-1.01,1.347l3.107,2.332a.842.842,0,0,0,.505.168h.084a.841.841,0,0,0,.791-.6l2.248-2.955a.842.842,0,0,0-.168-1.179Z' transform='translate(-169.532 -83.078)' fill='%23F64D4B'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E`,\n  reschedule_icon_amber: `%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cg transform='translate(6488 -871)'%3E%3Crect width='24' height='24' transform='translate(-6488 871)' fill='none'/%3E%3Cg transform='translate(3.496 -1)'%3E%3Cpath d='M2.925,2.925A10,10,0,0,1,19.977,9.313L21,8.216a.785.785,0,1,1,1.15,1.068l-2.27,2.444a.785.785,0,0,1-1.109.041L16.323,9.5a.785.785,0,1,1,1.067-1.15l1,.93a8.421,8.421,0,1,0-2.431,6.682.784.784,0,1,1,1.109,1.109A10,10,0,0,1,2.925,2.924Z' transform='translate(-6490.496 874)' fill='%23FAC441'/%3E%3Cpath d='M12,6v6l4,2' transform='translate(-6493.049 873.114)' fill='none' stroke='%23FAC441' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E`,\n  reschedule_icon_blue: `%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cg transform='translate(6488 -871)'%3E%3Crect width='24' height='24' transform='translate(-6488 871)' fill='none'/%3E%3Cg transform='translate(3.496 -1)'%3E%3Cpath d='M2.925,2.925A10,10,0,0,1,19.977,9.313L21,8.216a.785.785,0,1,1,1.15,1.068l-2.27,2.444a.785.785,0,0,1-1.109.041L16.323,9.5a.785.785,0,1,1,1.067-1.15l1,.93a8.421,8.421,0,1,0-2.431,6.682.784.784,0,1,1,1.109,1.109A10,10,0,0,1,2.925,2.924Z' transform='translate(-6490.496 874)' fill='%236e7e81'/%3E%3Cpath d='M12,6v6l4,2' transform='translate(-6493.049 873.114)' fill='none' stroke='%236e7e81' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E`,\n  reschedule_icon_teal: `%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cg transform='translate(6488 -871)'%3E%3Crect width='24' height='24' transform='translate(-6488 871)' fill='none'/%3E%3Cg transform='translate(3.496 -1)'%3E%3Cpath d='M2.925,2.925A10,10,0,0,1,19.977,9.313L21,8.216a.785.785,0,1,1,1.15,1.068l-2.27,2.444a.785.785,0,0,1-1.109.041L16.323,9.5a.785.785,0,1,1,1.067-1.15l1,.93a8.421,8.421,0,1,0-2.431,6.682.784.784,0,1,1,1.109,1.109A10,10,0,0,1,2.925,2.924Z' transform='translate(-6490.496 874)' fill='%23309DA6'/%3E%3Cpath d='M12,6v6l4,2' transform='translate(-6493.049 873.114)' fill='none' stroke='%23309DA6' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E`,\n  reschedule_icon_red: `%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cg transform='translate(6488 -871)'%3E%3Crect width='24' height='24' transform='translate(-6488 871)' fill='none'/%3E%3Cg transform='translate(3.496 -1)'%3E%3Cpath d='M2.925,2.925A10,10,0,0,1,19.977,9.313L21,8.216a.785.785,0,1,1,1.15,1.068l-2.27,2.444a.785.785,0,0,1-1.109.041L16.323,9.5a.785.785,0,1,1,1.067-1.15l1,.93a8.421,8.421,0,1,0-2.431,6.682.784.784,0,1,1,1.109,1.109A10,10,0,0,1,2.925,2.924Z' transform='translate(-6490.496 874)' fill='%23F64D4B'/%3E%3Cpath d='M12,6v6l4,2' transform='translate(-6493.049 873.114)' fill='none' stroke='%23F64D4B' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E`,\n  reschedule_icon: `%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2220.001%22%20height%3D%2220%22%20viewBox%3D%220%200%2020.001%2020%22%3E%3Cg%20transform%3D%22translate(-76%20-917.362)%22%3E%3Cpath%20d%3D%22M15%2C5a10%2C10%2C0%2C1%2C0%2C8.569%2C15.243.669.669%2C0%2C0%2C0-1.139-.7A8.7%2C8.7%2C0%2C1%2C1%2C22.007%2C9.9l-1.493-.431a.667.667%2C0%2C1%2C0-.361%2C1.285l3.111.889a.667.667%2C0%2C0%2C0%2C.819-.458l.889-3.111A.665.665%2C0%2C1%2C0%2C23.694%2C7.7l-.458%2C1.6A10.016%2C10.016%2C0%2C0%2C0%2C15%2C5Zm-.007%2C3.1a.667.667%2C0%2C0%2C0-.66.681V15a.667.667%2C0%2C0%2C0%2C.368.59l4.444%2C2.222a.667.667%2C0%2C1%2C0%2C.6-1.187l-4.076-2.042V8.778a.667.667%2C0%2C0%2C0-.674-.681Z%22%20transform%3D%22translate(71%20912.362)%22%20fill%3D%22%23707070%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E`,\n  expand_icon: `%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2220.1%22%20height%3D%2220.1%22%20viewBox%3D%220%200%2020.1%2020.1%22%3E%3Cg%20transform%3D%22translate(-9.95%20-962.312)%22%3E%3Cpath%20d%3D%22M22.172%2C962.362a.751.751%2C0%2C0%2C0%2C.078%2C1.5h5.188l-8.219%2C8.219a.75.75%2C0%2C1%2C0%2C1.063%2C1.055l8.219-8.219v5.2a.75.75%2C0%2C1%2C0%2C1.5%2C0v-7a.779.779%2C0%2C0%2C0-.75-.75Zm-11.5%2C2.5a.777.777%2C0%2C0%2C0-.672.75v16a.78.78%2C0%2C0%2C0%2C.75.75h16a.78.78%2C0%2C0%2C0%2C.75-.75v-9.5a.75.75%2C0%2C1%2C0-1.5%2C0v8.75H11.5v-14.5h8.75a.75.75%2C0%2C1%2C0%2C0-1.5Z%22%20fill%3D%22%23707070%22%20stroke%3D%22%23fff%22%20stroke-width%3D%220.1%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E`,\n  arrow_later: `%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%2258%22%20height%3D%2258%22%20viewBox%3D%220%200%2058%2058%22%3E%3Cdefs%3E%3Cfilter%20id%3D%22a%22%20x%3D%220%22%20y%3D%220%22%20width%3D%2258%22%20height%3D%2258%22%20filterUnits%3D%22userSpaceOnUse%22%3E%3CfeOffset%20dy%3D%221%22%20input%3D%22SourceAlpha%22%2F%3E%3CfeGaussianBlur%20stdDeviation%3D%223%22%20result%3D%22b%22%2F%3E%3CfeFlood%20flood-opacity%3D%220.161%22%2F%3E%3CfeComposite%20operator%3D%22in%22%20in2%3D%22b%22%2F%3E%3CfeComposite%20in%3D%22SourceGraphic%22%2F%3E%3C%2Ffilter%3E%3C%2Fdefs%3E%3Cg%20transform%3D%22translate(776%20598)%20rotate(180)%22%3E%3Cg%20transform%3D%22matrix(-1%2C%200%2C%200%2C%20-1%2C%20776%2C%20598)%22%20filter%3D%22url(%23a)%22%3E%3Ccircle%20cx%3D%2220%22%20cy%3D%2220%22%20r%3D%2220%22%20transform%3D%22translate(49%2048)%20rotate(180)%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fg%3E%3Cpath%20d%3D%22M13%2C20H11V8L5.5%2C13.5%2C4.08%2C12.08%2C12%2C4.16l7.92%2C7.92L18.5%2C13.5%2C13%2C8Z%22%20transform%3D%22translate(759%20557.92)%20rotate(90)%22%20fill%3D%22%236e7e81%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E`,\n  arrow_doing: `%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%2258%22%20height%3D%2258%22%20viewBox%3D%220%200%2058%2058%22%3E%3Cdefs%3E%3Cfilter%20id%3D%22a%22%20x%3D%220%22%20y%3D%220%22%20width%3D%2258%22%20height%3D%2258%22%20filterUnits%3D%22userSpaceOnUse%22%3E%3CfeOffset%20dy%3D%221%22%20input%3D%22SourceAlpha%22%2F%3E%3CfeGaussianBlur%20stdDeviation%3D%223%22%20result%3D%22b%22%2F%3E%3CfeFlood%20flood-opacity%3D%220.161%22%2F%3E%3CfeComposite%20operator%3D%22in%22%20in2%3D%22b%22%2F%3E%3CfeComposite%20in%3D%22SourceGraphic%22%2F%3E%3C%2Ffilter%3E%3C%2Fdefs%3E%3Cg%20transform%3D%22translate(-797%20-542)%22%3E%3Cg%20transform%3D%22matrix(1%2C%200%2C%200%2C%201%2C%20797%2C%20542)%22%20filter%3D%22url(%23a)%22%3E%3Ccircle%20cx%3D%2220%22%20cy%3D%2220%22%20r%3D%2220%22%20transform%3D%22translate(9%208)%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fg%3E%3Cpath%20d%3D%22M13%2C20H11V8L5.5%2C13.5%2C4.08%2C12.08%2C12%2C4.16l7.92%2C7.92L18.5%2C13.5%2C13%2C8Z%22%20transform%3D%22translate(838%20557.92)%20rotate(90)%22%20fill%3D%22%23ffb72e%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E`,\n  arrow_todo: `%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%2258%22%20height%3D%2258%22%20viewBox%3D%220%200%2058%2058%22%3E%3Cdefs%3E%3Cfilter%20id%3D%22a%22%20x%3D%220%22%20y%3D%220%22%20width%3D%2258%22%20height%3D%2258%22%20filterUnits%3D%22userSpaceOnUse%22%3E%3CfeOffset%20dy%3D%221%22%20input%3D%22SourceAlpha%22%2F%3E%3CfeGaussianBlur%20stdDeviation%3D%223%22%20result%3D%22b%22%2F%3E%3CfeFlood%20flood-opacity%3D%220.161%22%2F%3E%3CfeComposite%20operator%3D%22in%22%20in2%3D%22b%22%2F%3E%3CfeComposite%20in%3D%22SourceGraphic%22%2F%3E%3C%2Ffilter%3E%3C%2Fdefs%3E%3Cg%20transform%3D%22translate(-797%20-542)%22%3E%3Cg%20transform%3D%22matrix(1%2C%200%2C%200%2C%201%2C%20797%2C%20542)%22%20filter%3D%22url(%23a)%22%3E%3Ccircle%20cx%3D%2220%22%20cy%3D%2220%22%20r%3D%2220%22%20transform%3D%22translate(9%208)%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fg%3E%3Cpath%20d%3D%22M13%2C20H11V8L5.5%2C13.5%2C4.08%2C12.08%2C12%2C4.16l7.92%2C7.92L18.5%2C13.5%2C13%2C8Z%22%20transform%3D%22translate(838%20557.92)%20rotate(90)%22%20fill%3D%22%23ffb72e%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E`,\n  arrow_done: `%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%2258%22%20height%3D%2258%22%20viewBox%3D%220%200%2058%2058%22%3E%3Cdefs%3E%3Cfilter%20id%3D%22a%22%20x%3D%220%22%20y%3D%220%22%20width%3D%2258%22%20height%3D%2258%22%20filterUnits%3D%22userSpaceOnUse%22%3E%3CfeOffset%20dy%3D%221%22%20input%3D%22SourceAlpha%22%2F%3E%3CfeGaussianBlur%20stdDeviation%3D%223%22%20result%3D%22b%22%2F%3E%3CfeFlood%20flood-opacity%3D%220.161%22%2F%3E%3CfeComposite%20operator%3D%22in%22%20in2%3D%22b%22%2F%3E%3CfeComposite%20in%3D%22SourceGraphic%22%2F%3E%3C%2Ffilter%3E%3C%2Fdefs%3E%3Cg%20transform%3D%22translate(-875%20-542)%22%3E%3Cg%20transform%3D%22matrix(1%2C%200%2C%200%2C%201%2C%20875%2C%20542)%22%20filter%3D%22url(%23a)%22%3E%3Ccircle%20cx%3D%2220%22%20cy%3D%2220%22%20r%3D%2220%22%20transform%3D%22translate(9%208)%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fg%3E%3Cpath%20d%3D%22M21%2C7%2C9%2C19%2C3.5%2C13.5l1.41-1.41L9%2C16.17%2C19.59%2C5.59Z%22%20transform%3D%22translate(891.5%20557.41)%22%20fill%3D%22%230f8996%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E`,\n  trash: `%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%2258%22%20height%3D%2258%22%20viewBox%3D%220%200%2058%2058%22%3E%3Cdefs%3E%3Cfilter%20id%3D%22a%22%20x%3D%220%22%20y%3D%220%22%20width%3D%2258%22%20height%3D%2258%22%20filterUnits%3D%22userSpaceOnUse%22%3E%3CfeOffset%20dy%3D%221%22%20input%3D%22SourceAlpha%22%2F%3E%3CfeGaussianBlur%20stdDeviation%3D%223%22%20result%3D%22b%22%2F%3E%3CfeFlood%20flood-opacity%3D%220.161%22%2F%3E%3CfeComposite%20operator%3D%22in%22%20in2%3D%22b%22%2F%3E%3CfeComposite%20in%3D%22SourceGraphic%22%2F%3E%3C%2Ffilter%3E%3C%2Fdefs%3E%3Cg%20transform%3D%22translate(-954%20-542)%22%3E%3Cg%20transform%3D%22matrix(1%2C%200%2C%200%2C%201%2C%20954%2C%20542)%22%20filter%3D%22url(%23a)%22%3E%3Ccircle%20cx%3D%2220%22%20cy%3D%2220%22%20r%3D%2220%22%20transform%3D%22translate(9%208)%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fg%3E%3Cpath%20d%3D%22M6%2C19a2%2C2%2C0%2C0%2C0%2C2%2C2h8a2%2C2%2C0%2C0%2C0%2C2-2V7H6V19M8%2C9h8V19H8V9m7.5-5-1-1h-5l-1%2C1H5V6H19V4Z%22%20transform%3D%22translate(971%20558)%22%20fill%3D%22%23e3394b%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E`,\n  'no-action-icon':\n    'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4LjEyNiIgaGVpZ2h0PSI4LjEyNyIgdmlld0JveD0iMCAwIDguMTI2IDguMTI3Ij48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjEuNTg1IC0xNS44MDkpIj48cGF0aCBkPSJNMTQuOTY1LDIzLjk2MWw2LTYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDcuNjgxIC0xLjA4NikiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2Y2NGQ0YiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjEuNSIvPjxwYXRoIGQ9Ik0wLDYsNiwwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyOC42NTEgMTYuODcpIHJvdGF0ZSg5MCkiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2Y2NGQ0YiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjEuNSIvPjwvZz48L3N2Zz4=',\n  'yes-action-icon':\n    'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMS4yMjIiIGhlaWdodD0iNy44MTEiIHZpZXdCb3g9IjAgMCAxMS4yMjIgNy44MTEiPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC05NDAuNDM5IC0zNDguNDM5KSI+PHBhdGggZD0iTTEyLjIyNCwyMC44NTVsMy4xLDMuMSw2LTYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDkyOS4yNzUgMzMxLjU0NCkiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzMwOWRhNiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjEuNSIvPjwvZz48L3N2Zz4=',\n  'icon-finance': `%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M10,0A10,10,0,1,0,20,10,10,10,0,0,0,10,0Zm4.538,12.931a3.379,3.379,0,0,1-3.338,3.4h-.545v.862a.524.524,0,0,1-1.034,0v-.862h-4v-.038a.528.528,0,0,1,.166-1.034h.955a.393.393,0,0,1,.128,0H11.2a2.345,2.345,0,0,0,2.293-2.345v-.155a2.348,2.348,0,0,0-2.3-2.338H8.621a3.408,3.408,0,0,1-.007-6.814H9.628V2.721a.524.524,0,1,1,1.034,0v.9h3.359a.531.531,0,0,1,0,1.062h-5.4a2.345,2.345,0,1,0,0,4.69h2.6a3.386,3.386,0,0,1,3.338,3.407Z' fill='%23008996'/%3E%3C/svg%3E`,\n  'icon-work': `%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='18' viewBox='0 0 22 18'%3E%3Cpath d='M7.342,25.321,0,23.41V32.4a.5.5,0,0,0,.5.5h21a.5.5,0,0,0,.5-.5V23.41l-7.342,1.911a14.531,14.531,0,0,1-7.316,0Z' transform='translate(0 -14.906)' fill='%23ffcd00'/%3E%3Cpath d='M28,.5a.5.5,0,0,0-.5-.5h-5a.5.5,0,0,0-.5.5V2h6Z' transform='translate(-14.008 0)' fill='%23ffcd00'/%3E%3Cpath d='M21.5,8.26H.5a.5.5,0,0,0-.5.5v3.971L7.589,14.7a13.535,13.535,0,0,0,6.815,0l7.6-1.98V8.758a.5.5,0,0,0-.5-.5Z' transform='translate(0 -5.259)' fill='%23ffcd00'/%3E%3C/svg%3E`,\n  'icon-life': `%3Csvg xmlns='http://www.w3.org/2000/svg' width='23.951' height='20' viewBox='0 0 23.951 20'%3E%3Cg transform='translate(0 0)'%3E%3Cpath d='M12.073,20a.551.551,0,0,1-.332-.109A110.266,110.266,0,0,1,2,11.5,6.662,6.662,0,0,1,2,1.978a6.908,6.908,0,0,1,9.666,0,5.715,5.715,0,0,1,.406.436c.133-.153.266-.3.409-.436a6.91,6.91,0,0,1,9.472.193,6.66,6.66,0,0,1,.178,9.33,110.27,110.27,0,0,1-9.738,8.4.551.551,0,0,1-.336.109' transform='translate(0 -0.005)' fill='%2300538b'/%3E%3C/g%3E%3C/svg%3E`,\n  'icon-health': `%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='19.94' viewBox='0 0 20 19.94'%3E%3Cpath d='M13.109,0H6.9a.49.49,0,0,0-.443.442V6.425H.443A.461.461,0,0,0,0,6.881V13.07a.464.464,0,0,0,.443.445h6v5.979a.464.464,0,0,0,.458.445h6.208a.464.464,0,0,0,.447-.445V13.516h6A.464.464,0,0,0,20,13.07V6.881a.464.464,0,0,0-.447-.442h-6v-6A.464.464,0,0,0,13.109,0' fill='%23e53e51'/%3E%3C/svg%3E`,\n  'priority-high': `%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Crect width='24' height='24' rx='2' fill='%23f64d4b'/%3E%3Cg transform='translate(6 17.002) rotate(-90)'%3E%3Cg transform='translate(0 0)'%3E%3Cpath d='M4.952,5.436,1.113.229a.579.579,0,0,0-.922,0,.9.9,0,0,0,0,1.107L3.627,6,.191,10.663a.9.9,0,0,0,0,1.107.579.579,0,0,0,.922,0L4.952,6.563a.933.933,0,0,0,0-1.127Z' transform='translate(5.859)' fill='%23fff'/%3E%3Cpath d='M5.141,6a.86.86,0,0,0-.189-.563L1.114.229a.579.579,0,0,0-.922,0,.9.9,0,0,0,0,1.107L3.629,6,.192,10.663a.9.9,0,0,0,0,1.11.581.581,0,0,0,.922,0L4.952,6.564A.863.863,0,0,0,5.141,6Z' fill='%23fff'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E`,\n  'priority-low': `%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cg transform='translate(291 471) rotate(180)'%3E%3Crect width='24' height='24' rx='2' transform='translate(267 447)' fill='%231d57a4'/%3E%3Cpath d='M9.189,7.95a.813.813,0,0,1,1.067,0,.632.632,0,0,1,0,.952L5.785,12.891a.842.842,0,0,1-1.089,0L.224,8.9a.618.618,0,0,1,0-.952.813.813,0,0,1,1.067,0l3.191,2.856V.666A.715.715,0,0,1,5.24,0a.706.706,0,0,1,.747.666V10.806Z' transform='translate(284.454 465.545) rotate(180)' fill='%23fff'/%3E%3C/g%3E%3C/svg%3E`,\n  'priority-medium': `%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Crect width='24' height='24' rx='2' fill='%23fac441'/%3E%3Cpath d='M9.189,7.95a.813.813,0,0,1,1.067,0,.632.632,0,0,1,0,.952L5.785,12.891a.842.842,0,0,1-1.089,0L.224,8.9a.618.618,0,0,1,0-.952.813.813,0,0,1,1.067,0l3.191,2.856V.666A.715.715,0,0,1,5.24,0a.706.706,0,0,1,.747.666V10.806Z' transform='translate(17.455 18.546) rotate(180)' fill='%23fff'/%3E%3C/svg%3E`,\n  success: `%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='8' fill='%23309da6'/%3E%3Cg transform='translate(4.225 5.229)'%3E%3Cpath d='M141.152,186.184a.52.52,0,0,0,.736,0l4.453-4.453a.52.52,0,1,0-.736-.736l-4.085,4.085-1.666-1.666a.52.52,0,0,0-.736.735Z' transform='translate(-138.954 -180.831)' fill='%23fff' stroke='%23fff' stroke-width='0.3'/%3E%3Cpath d='M141.042,185.859a.529.529,0,0,1-.376-.156l-2.034-2.034a.532.532,0,0,1,.753-.753l1.657,1.657,4.076-4.077a.532.532,0,1,1,.753.753l-4.453,4.453A.528.528,0,0,1,141.042,185.859Zm-2.034-3.074a.508.508,0,0,0-.359.867l2.034,2.034a.508.508,0,0,0,.718,0l4.453-4.453a.508.508,0,0,0-.718-.718l-4.094,4.094-1.674-1.674A.5.5,0,0,0,139.008,182.785Z' transform='translate(-138.476 -180.342)' fill='%23fff' stroke='%23fff' stroke-width='0.3'/%3E%3C/g%3E%3C/svg%3E`,\n  info: `%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='M-2666-7464a8.007,8.007,0,0,1-8-8,8.009,8.009,0,0,1,8-8,8.01,8.01,0,0,1,8,8A8.009,8.009,0,0,1-2666-7464Zm-1.5-9.36a.821.821,0,0,0-.251.026.3.3,0,0,0-.252.226.281.281,0,0,0,.193.251,1.511,1.511,0,0,0,.364.052c.271.026.362.132.362.419v.139l-.015.089c-.105.627-.214,1.275-.347,1.918-.054.389-.112.777-.167,1.142a.925.925,0,0,0,.2.69,1.126,1.126,0,0,0,.69.449h.007c.218.023.517.054.776.054a1.983,1.983,0,0,0,1.423-.644.453.453,0,0,0,.139-.25.193.193,0,0,0-.037-.155.146.146,0,0,0-.114-.05.246.246,0,0,0-.106.027.545.545,0,0,0-.152.069.559.559,0,0,1-.152.069,2.047,2.047,0,0,1-.39.113.293.293,0,0,1-.05,0,.308.308,0,0,1-.282-.23l0-.015a.943.943,0,0,1-.025-.375,6.653,6.653,0,0,1,.123-.673l.018-.082c.07-.381.141-.768.211-1.155l.053-.29c.051-.281.1-.562.153-.84.006-.042.014-.087.022-.132a1.511,1.511,0,0,0,.032-.483c0-.235-.149-.364-.418-.364h-2.007Zm1.558-2.639a1.1,1.1,0,0,0-1.087,1.061,1.108,1.108,0,0,0,1.087,1.085,1.06,1.06,0,0,0,1.059-1.059A1.087,1.087,0,0,0-2665.939-7476Z' transform='translate(2674 7480)' fill='%231d57a4'/%3E%3C/svg%3E`,\n  warning: `%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='M8,0a8,8,0,1,0,8,8A8.024,8.024,0,0,0,8,0Zm.8,12H7.2V10.4H8.8Zm0-3.2H7.2V4H8.8Z' fill='%23fc6'/%3E%3C/svg%3E`,\n  grey: `%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2716%27%20height%3D%2716%27%20viewBox%3D%270%200%2016%2016%27%3E%3Cpath%20d%3D%27M8%2C0a8%2C8%2C0%2C1%2C0%2C8%2C8A8.024%2C8.024%2C0%2C0%2C0%2C8%2C0Zm.8%2C12H7.2V10.4H8.8Zm0-3.2H7.2V4H8.8Z%27%20fill%3D%27%236e7e81%27%2F%3E%3C%2Fsvg%3E`,\n  danger: `%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='15.999' viewBox='0 0 16 15.999'%3E%3Cpath d='M24.059,13.612a8.011,8.011,0,0,0-1.4-1.4,7.924,7.924,0,0,0-4.914-1.69,8.009,8.009,0,0,0-8,8,7.916,7.916,0,0,0,1.69,4.914,8.1,8.1,0,0,0,1.4,1.4,7.925,7.925,0,0,0,4.915,1.689,8.008,8.008,0,0,0,8-8A7.914,7.914,0,0,0,24.059,13.612Zm-6.309,10.3a5.338,5.338,0,0,1-2.768-.766l7.388-7.387a5.387,5.387,0,0,1-4.62,8.153Zm0-10.771a5.334,5.334,0,0,1,2.767.767L13.13,21.294a5.384,5.384,0,0,1,4.619-8.154Z' transform='translate(-9.749 -10.526)' fill='%23ff6060'/%3E%3C/svg%3E`,\n};\n\nexport const myCarteIcon: any = {\n  logo: 'data:image/png;base64,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',\n};\n","import {\n  Component,\n  AfterViewInit,\n  Input,\n  ChangeDetectorRef,\n  ElementRef,\n  ViewChild,\n  NgZone,\n  Inject,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { AriConfig, AriConfigService } from '../../model/ari-bot.mode';\nimport { ariIcons } from '../../model/ari-svg-icons';\n\n@Component({\n  selector: 'lig-ari-icon',\n  templateUrl: './ari-svg-icon.component.html',\n  styleUrls: ['./ari-svg-icon.component.scss'],\n})\nexport class AriSvgIconComponent implements AfterViewInit {\n  svgIcon: any;\n\n  @Input() src: string;\n  @Input() type: string;\n  @Input() name: string;\n  @Input() size: 'large' | 'small' | undefined;\n\n  @ViewChild('dataContainer', { static: false }) dataContainer: ElementRef;\n\n  buttonColor = '#1D57A4';\n  constructor(\n    private cdRef: ChangeDetectorRef,\n    private zone: NgZone,\n    @Inject(AriConfigService) private config: AriConfig\n  ) {\n    if (config.settings) {\n      this.buttonColor = config.settings.theme;\n    }\n  }\n\n  ngAfterViewInit(): void {\n    if (this.name && this.type != 'default') {\n      this.renderIcon();\n    } else if (this.type == 'default') {\n      this.svgIcon = ariIcons[this.name];\n    }\n    this.cdRef.detectChanges();\n  }\n\n  private renderIcon() {\n    for (const name in ariIcons) {\n      if (name === this.name) {\n        // this.svgIcon = this.sanitizer.bypassSecurityTrustHtml(\n        //   'data:image/svg+xml;utf8,' + ariIcons[name]\n        // );\n        this.zone.run(() => {\n          this.svgIcon = 'data:image/svg+xml;utf8,' + ariIcons[name];\n        });\n        return;\n      }\n    }\n  }\n}\n","<ng-container *ngIf=\"name\">\n  <ion-icon\n    [class.goal-icon]=\"type === 'goal'\"\n    *ngIf=\"type != 'default'\"\n    [src]=\"svgIcon\"\n  ></ion-icon>\n  <ion-icon\n    [src]=\"svgIcon\"\n    *ngIf=\"type == 'default'\"\n    [ngStyle]=\"{ color: buttonColor }\"\n  ></ion-icon>\n</ng-container>\n<ng-container *ngIf=\"src\">\n  <ion-icon [src]=\"src\"></ion-icon>\n</ng-container>\n","import {\n  Component,\n  OnInit,\n  AfterViewInit,\n  ChangeDetectorRef,\n  NgZone,\n  OnDestroy,\n} from '@angular/core';\nimport { ToastController, ModalController, Platform } from '@ionic/angular';\nimport { Subject } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, takeUntil } from 'rxjs/operators';\nimport { AriSpeechService } from '../../services/ari-speech.service';\nimport { SpeechRecognition as TSpeechRecognition } from '@ionic-native/speech-recognition/ngx';\n\n@Component({\n  selector: 'lig-ari-listener-sheet',\n  templateUrl: './ari-listener-sheet.component.html',\n  styleUrls: ['./ari-listener-sheet.component.scss'],\n})\nexport class AriListenerSheetComponent\n  implements OnInit, AfterViewInit, OnDestroy\n{\n  matches: string[] = [];\n  ariSpeeches: string;\n  isRecording: boolean;\n  isListening: boolean;\n  showMatches: boolean;\n  showLoading: boolean;\n  isSpeechSupported: boolean;\n  showMic: boolean;\n  showError: boolean;\n\n  micStatus: string;\n\n  private ariSearchListener: Subject<any> = new Subject();\n  unsubscribe$ = new Subject<any>();\n\n  constructor(\n    private zone: NgZone,\n    private plt: Platform,\n    private toastController: ToastController,\n    private modalController: ModalController,\n    private cdRef: ChangeDetectorRef,\n    private ariSpeechService: AriSpeechService,\n    private speechRecognition: TSpeechRecognition\n  ) {\n    this.initAriAssistant();\n  }\n\n  ngOnInit() {\n    this.showLoading = true;\n    this.isRecording = false;\n    this.isListening = false;\n    this.showMatches = false;\n    this.showMic = false;\n    this.isListening = true;\n    this.showError = false;\n    this.isSpeechSupported = false;\n\n    this.matches = [];\n    this.ariSpeeches = '';\n\n    this.micStatus = 'Loading...';\n\n    this.ariSearchListener\n      .asObservable()\n      .pipe(\n        debounceTime(2000),\n        distinctUntilChanged(),\n        takeUntil(this.unsubscribe$)\n      )\n      .subscribe(() => {\n        this.zone.run(() => {\n          this.stopListening();\n        });\n      });\n  }\n\n  ngOnDestroy() {\n    this.unsubscribe$.next();\n    this.unsubscribe$.complete();\n  }\n\n  ngAfterViewInit() {}\n\n  private startNativeSpeech() {\n    const startNativeSpeechLibrary = () => {\n      this.zone.run(() => {\n        this.isListening = true;\n        this.showLoading = false;\n        this.isRecording = false;\n        this.showMatches = false;\n\n        this.micStatus = 'Speak now';\n        this.cdRef.detectChanges();\n\n        setTimeout(() => {\n          this.zone.run(() => {\n            this.isRecording = true;\n            this.isListening = true;\n            this.showMatches = false;\n            this.showLoading = false;\n            this.showError = false;\n\n            this.micStatus = 'Listening...';\n            this.cdRef.detectChanges();\n          });\n        }, 600);\n      });\n      this.speechRecognition\n        .startListening({\n          language: 'en-US',\n          showPartial: true,\n          showPopup: false,\n        })\n        .subscribe(\n          (matches: any) => {\n            this.ariSpeeches = matches[0];\n            this.showMatches = true;\n            this.isRecording = true;\n            this.ariSearchListener.next(this.ariSpeeches);\n            this.cdRef.detectChanges();\n          },\n          (onerror) => {\n            console.error('Speech Recognition error: ', onerror);\n            this.zone.run(() => {\n              if (onerror === 'No match') {\n                this.startNativeSpeech();\n                this.isRecording = false;\n                this.isListening = false;\n                this.showMatches = false;\n                this.showLoading = false;\n                this.showError = false;\n                this.micStatus = 'Restarting...';\n                this.cdRef.detectChanges();\n              } else {\n                this.isRecording = false;\n                this.isListening = false;\n                this.showMatches = false;\n                this.showLoading = false;\n                this.showError = true;\n\n                this.micStatus = onerror == 'Client side error' ? 'Loading...' : 'Speech Recognition not supported...';\n                this.cdRef.detectChanges();\n              }\n            });\n          }\n        );\n    };\n\n    const showErrorToast = () => {\n      const toast = this.toastController.create({\n        header: 'WARNING!',\n        message: 'Speech Recognition is not supported!',\n        duration: 2000,\n      });\n      toast.then((toastr) => toastr.present());\n    };\n\n    this.zone.run(() => {\n      this.isListening = true;\n      this.showLoading = false;\n      this.isRecording = false;\n      this.showMatches = false;\n\n      // This events is to give a proper UX on handling speech recognation for ARI,\n      // similar experience on Google's Okay Google\n\n      this.speechRecognition\n        .isRecognitionAvailable()\n        .then((available: boolean) => {\n          if (available) {\n            startNativeSpeechLibrary();\n          } else {\n            return showErrorToast();\n          }\n        });\n    });\n  }\n\n  private startWebSpeech() {\n    this.ariSpeechService.initWebSpeechRecognition();\n    const recognition = this.ariSpeechService.SpeechRecognition;\n    recognition.onresult = (event: any) => {\n      const matches = event.results[0][0].transcript;\n      this.ariSpeeches = matches;\n      this.showMatches = true;\n      this.isRecording = true;\n      this.ariSearchListener.next(this.ariSpeeches);\n      this.cdRef.detectChanges();\n    };\n\n    recognition.onerror = (event) => {\n      console.error('Speech Recognition error: ', event);\n      this.zone.run(() => {\n        this.isRecording = false;\n        this.isListening = false;\n        this.showMatches = false;\n        this.showLoading = false;\n        if (event.error == 'no-speech') {\n          this.showMic = true;\n          this.showMatches = false;\n          this.ariSpeechService.SpeechStopsListening();\n        } else {\n          this.showError = true;\n          this.micStatus = 'Speech Recognition not supported...';\n        }\n        this.cdRef.detectChanges();\n      });\n    };\n\n    recognition.onspeechstart = (event: any) => {\n      // console.log('Speech Recognition onspeechstart: ', event);\n      this.zone.run(() => {\n        this.isRecording = true;\n        this.isListening = true;\n        this.showMatches = false;\n        this.showLoading = false;\n        this.micStatus = 'Listening...';\n        if(this.isListening){\n          this.cdRef.detectChanges();\n        }\n      });\n    };\n\n    recognition.onspeechend = (event: any) => {\n      // console.log('Speech Recognition onspeechend: ', event);\n      this.zone.run(() => {\n        this.isRecording = false;\n        this.isListening = true;\n        this.showLoading = false;\n        this.showMic = true;\n\n        if (recognition) {\n          recognition.stop();\n        }\n\n        this.micStatus = '';\n        this.cdRef.detectChanges();\n      });\n    };\n\n    recognition.onstart = (event: any) => {\n      // console.log('Speech Recognition onstart: ', event);\n      this.zone.run(() => {\n        this.isListening = true;\n        this.showLoading = false;\n        this.isRecording = false;\n        this.showMatches = false;\n\n        this.micStatus = 'Speak now';\n        this.cdRef.detectChanges();\n      });\n    };\n\n    setTimeout(() => {\n      this.zone.run(() => {\n        this.isListening = true;\n        this.showLoading = false;\n        this.isRecording = false;\n        this.showMatches = false;\n\n        // This events is to give a proper UX on handling speech recognation for ARI,\n        // similar experience on Google's Okay Google\n        recognition.start();\n        // console.log('recognition.start()');\n      });\n    }, 2000);\n  }\n\n  private initAriAssistant() {\n    this.matches = [];\n    this.ariSpeeches = '';\n    this.isRecording = false;\n    if (this.plt.is('cordova') || this.plt.is('capacitor')) {\n      this.plt.ready().then(() => {\n        this.speechRecognition\n          .hasPermission()\n          .then((hasPermission: boolean) => {\n            if (!hasPermission) {\n              this.speechRecognition.requestPermission().then(() => {\n                this.startNativeSpeech();\n              });\n            } else {\n              this.startNativeSpeech();\n            }\n          });\n      });\n    } else {\n      if (!this.ariSpeechService.isWebSpeechRecognitionSupported()) {\n        this.isSpeechSupported = false;\n        this.showError = this.ariSpeechService.showSpeechRecognitionError;\n        this.micStatus = this.ariSpeechService.showSpeechRecognitionStatus;\n      }\n\n      this.startWebSpeech();\n    }\n  }\n\n  private stopListening() {\n    if (this.plt.is('cordova') || this.plt.is('capacitor')) {\n      this.plt.ready().then(() => {\n        this.speechRecognition.stopListening().then(\n          () => {\n            this.zone.run(() => {\n              this.isRecording = false;\n              this.showMatches = false;\n            });\n          },\n          () => {\n            this.zone.run(() => {\n              this.isRecording = false;\n              this.showMatches = false;\n            });\n          }\n        );\n      });\n    } else {\n      this.ariSpeechService.SpeechStopsListening();\n      this.zone.run(() => {\n        this.isRecording = false;\n        this.showMatches = false;\n      });\n    }\n    this.modalController.dismiss(this.ariSpeeches);\n  }\n\n  startListening() {\n    if (this.ariSpeechService.SpeechRecognition) {\n      if (this.plt.is('cordova') || this.plt.is('capacitor')) {\n        this.plt.ready().then(() => {\n          this.startNativeSpeech();\n        });\n      } else {\n        this.ariSpeechService.SpeechRecognition.start();\n      }\n\n      this.showMic = false;\n      this.showMatches = false;\n      this.isListening = true;\n    }\n  }\n}\n","<ion-backdrop stopPropagation=\"false\"></ion-backdrop>\n<ion-list>\n  <ng-container *ngIf=\"!showError\">\n    <ng-container *ngIf=\"showLoading\">\n      <ion-item-divider class=\"ari-speech-toolbar-loading\">\n        <div id=\"container\">\n          <span class=\"blue ball\"></span>\n          <span class=\"red ball\"></span>\n          <span class=\"yellow ball\"></span>\n          <span class=\"green ball\"></span>\n        </div>\n      </ion-item-divider>\n    </ng-container>\n\n    <ng-container *ngIf=\"!showLoading\">\n      <ng-container *ngIf=\"!showMic\">\n        <ion-item-divider\n          class=\"ari-speech-toolbar-loading\"\n          *ngIf=\"!showMatches && isListening && !isRecording\"\n        >\n          <div id=\"container\">\n            <span class=\"blue ball\"></span>\n            <span class=\"red ball\"></span>\n            <span class=\"yellow ball\"></span>\n            <span class=\"green ball\"></span>\n          </div>\n        </ion-item-divider>\n        <ion-item-divider\n          class=\"ari-speech-toolbar\"\n          *ngIf=\"(!showMatches || showMatches) && isListening && isRecording\"\n        >\n          <div id=\"container\">\n            <span class=\"blue ball\"></span>\n            <span class=\"red ball\"></span>\n            <span class=\"yellow ball\"></span>\n            <span class=\"green ball\"></span>\n          </div>\n        </ion-item-divider>\n        <ion-item\n          details=\"none\"\n          class=\"ion-no-border ari-speech-toolbar\"\n          lines=\"none\"\n        >\n          <ng-container *ngIf=\"!showMatches && isListening && !isRecording\">\n            <ion-label class=\"ion-text-wrap listening-speeches\">{{\n              micStatus\n            }}</ion-label>\n          </ng-container>\n\n          <ng-container *ngIf=\"isListening && isRecording\">\n            <ion-label\n              class=\"ion-text-wrap listening-speeches\"\n              *ngIf=\"!showMatches\"\n              >{{ micStatus }}</ion-label\n            >\n            <div class=\"ari-speech-buttons\" *ngIf=\"showMatches\">\n              <ion-label class=\"ion-text-wrap lbl-speeches\">{{\n                ariSpeeches\n              }}</ion-label>\n            </div>\n          </ng-container>\n        </ion-item>\n      </ng-container>\n\n      <ng-container *ngIf=\"showMic && !showMatches\">\n        <div class=\"mic\" (click)=\"startListening()\">\n          <lig-ari-icon [name]=\"'mic-outline'\"></lig-ari-icon>\n        </div>\n      </ng-container>\n      <ng-container *ngIf=\"showMic && showMatches\">\n        <ion-item-divider class=\"ari-speech-toolbar-loading\">\n          <div id=\"container\">\n            <span class=\"blue ball\"></span>\n            <span class=\"red ball\"></span>\n            <span class=\"yellow ball\"></span>\n            <span class=\"green ball\"></span>\n          </div>\n        </ion-item-divider>\n      </ng-container>\n    </ng-container>\n  </ng-container>\n\n  <ng-container *ngIf=\"showError\">\n    <ion-item\n      details=\"none\"\n      class=\"ion-no-border ari-speech-toolbar\"\n      lines=\"none\"\n    >\n      <ion-thumbnail slot=\"start\">\n        <img\n          class=\"warning_error\"\n          src=\"data:image/svg+xml;utf8,%3C%3Fxml version='1.0' encoding='iso-8859-1'%3F%3E%3C!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --%3E%3Csvg version='1.1' id='Capa_1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 451.74 451.74' style='enable-background:new 0 0 451.74 451.74;' xml:space='preserve'%3E%3Cpath style='fill:%23E24C4B;' d='M446.324,367.381L262.857,41.692c-15.644-28.444-58.311-28.444-73.956,0L5.435,367.381 c-15.644,28.444,4.267,64,36.978,64h365.511C442.057,429.959,461.968,395.825,446.324,367.381z'/%3E%3Cpath style='fill:%23FFFFFF;' d='M225.879,63.025l183.467,325.689H42.413L225.879,63.025L225.879,63.025z'/%3E%3Cg%3E%3Cpath style='fill:%233F4448;' d='M196.013,212.359l11.378,75.378c1.422,8.533,8.533,15.644,18.489,15.644l0,0 c8.533,0,17.067-7.111,18.489-15.644l11.378-75.378c2.844-18.489-11.378-34.133-29.867-34.133l0,0 C207.39,178.225,194.59,193.87,196.013,212.359z'/%3E%3Ccircle style='fill:%233F4448;' cx='225.879' cy='336.092' r='17.067'/%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3C/svg%3E%0A\"\n          alt=\"Error Warning\"\n        />\n      </ion-thumbnail>\n      <ion-label class=\"ion-text-wrap ion-text-center\">{{\n        micStatus\n      }}</ion-label>\n    </ion-item>\n  </ng-container>\n</ion-list>\n","import {\n  ApplicationRef,\n  Directive,\n  ElementRef,\n  OnInit,\n} from '@angular/core';\nimport { Keyboard, KeyboardInfo } from '@capacitor/keyboard';\nimport { Platform } from '@ionic/angular';\n\n@Directive({\n  selector: '[keyboardAttach]',\n})\nexport class KeyboardAttachDirective implements OnInit {\n  constructor(\n    private elementRef: ElementRef,\n    private platform: Platform,\n    private AppRef: ApplicationRef\n  ) {}\n\n  ngOnInit() {\n    if (\n      (this.platform.is('capacitor') || this.platform.is('cordova')) &&\n      this.platform.is('ios')\n    ) {\n      Keyboard.addListener('keyboardDidShow', (info: KeyboardInfo) => {\n        this.onShow(info);\n      });\n\n      Keyboard.addListener('keyboardDidHide', () => {\n        this.onHide();\n      });\n    }\n  }\n\n  private onShow(e) {\n    const keyboardHeight: number =\n      e.keyboardHeight || (e.detail && e.detail.keyboardHeight);\n    this.setElementPosition(keyboardHeight);\n  }\n\n  private onHide() {\n    this.setElementPosition(0);\n  }\n\n  private setElementPosition(pixels: number) {\n    this.elementRef.nativeElement.style.paddingBottom = pixels + 'px';\n    this.AppRef.tick();\n  }\n}\n","export const GoogleEvent: any = {\n  // ----------------------------------\n  // ARI\n  // ----------------------------------\n  quarter_view: {\n    eventName: 'quarter_view',\n    eventProps: {\n      eventCategory: 'navigation',\n      eventLabel: 'quarter_view',\n      eventAction: 'click',\n      eventValue: '1',\n    },\n  },\n  half_view: {\n    eventName: 'half_view',\n    eventProps: {\n      eventCategory: 'navigation',\n      eventLabel: 'half_view',\n      eventAction: 'click',\n      eventValue: '1',\n    },\n  },\n  three_quarter_view: {\n    eventName: 'three_quarter_view',\n    eventProps: {\n      eventCategory: 'navigation',\n      eventLabel: 'three_quarter_view',\n      eventAction: 'click',\n      eventValue: '1',\n    },\n  },\n  full_view: {\n    eventName: 'full_view',\n    eventProps: {\n      eventCategory: 'navigation',\n      eventLabel: 'full_view',\n      eventAction: 'click',\n      eventValue: '1',\n    },\n  },\n  mute: {\n    eventName: 'mute',\n    eventProps: {\n      eventCategory: 'navigation',\n      eventLabel: 'mute',\n      eventAction: 'click',\n      eventValue: '1',\n    },\n  },\n  unmute: {\n    eventName: 'unmute',\n    eventProps: {\n      eventCategory: 'navigation',\n      eventLabel: 'unmute',\n      eventAction: 'click',\n      eventValue: '1',\n    },\n  },\n  close: {\n    eventName: 'close',\n    eventProps: {\n      eventCategory: 'navigation',\n      eventLabel: 'close',\n      eventAction: 'click',\n      eventValue: '1',\n    },\n  },\n  mic: {\n    eventName: 'mic',\n    eventProps: {\n      eventCategory: 'chat',\n      eventLabel: 'mic',\n      eventAction: 'click',\n      eventValue: '5',\n    },\n  },\n  send: {\n    eventName: 'send',\n    eventProps: {\n      eventCategory: 'chat',\n      eventLabel: 'send',\n      eventAction: 'click',\n      eventValue: '5',\n    },\n  },\n};\nexport enum GoogleProperty {\n  quarter_view = 'quarter_view',\n  half_view = 'half_view',\n  three_quarter_view = 'three_quarter_view',\n  full_view = 'full_view',\n  mute = 'mute',\n  unmute = 'unmute',\n  close = 'close',\n  mic = 'mic',\n  send = 'send',\n}\n","import { Injectable } from '@angular/core';\nimport { ReplaySubject, Observable, Subscription } from 'rxjs';\n\nconst ServiceName = 'PubSub Service';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class PubsubService {\n  private events = {};\n\n  constructor() {}\n\n  /**\n   * a subscription which returns everything as an observable from @see {RxJs}\n   * this method does not use eventObject\n   * @param {event} event - the specific name to subscribe on - the names must be specific to those we publish.\n   * @returns {Observable<any>} an observable.\n   * @summary remember to unsubscribe in onDestroy of the components\n   */\n  public $sub(event: string): Observable<any>;\n\n  /**\n   * a subscription which returns the callback, error and complete as a subscription from @see {RxJs}\n   * this method does not use eventObject\n   * @param {event} event - the specific name to subscribe on - the names must be specific to those we publish.\n   * @param {(value: any) => void} callback - callback method which gets the value from eventObject.\n   * @returns {Subscription} a subscription which we can listen to.\n   * @summary remember to unsubscribe in onDestroy of the components\n   */\n  public $sub(event: string, callback: (value: any) => void): Subscription;\n\n  /**\n   * a subscription which returns the callback, error and complete as a subscription from @see {RxJs}\n   * this method does not use eventObject\n   * @param {event} event - the specific name to subscribe on - the names must be specific to those we publish.\n   * @param {(error: any) => void} error - exception catch function\n   * @param {() => void} complete - complete function\n   * @returns {Subscription} a subscription which we can listen to.\n   * @summary remember to unsubscribe in onDestroy of the components\n   */\n  public $sub(\n    event: string,\n    callback: (value: any) => void,\n    // tslint:disable-next-line:unified-signatures\n    error: (error: any) => void\n  ): Subscription;\n\n  /**\n   * a subscription which returns the callback, error and complete as a subscription from @see {RxJs}\n   * @param {event} event - the specific name to subscribe on - the names must be specific to those we publish.\n   * @param {(value: any) => void} callback - callback function\n   * @param {(error: any) => void} error - exception catch function\n   * @param {() => void} complete - complete function\n   * @returns {Subscription} a subscription which we can listen to.\n   * @summary remember to unsubscribe in onDestroy of the components\n   */\n  public $sub(\n    event: string,\n    callback: (value: any) => void,\n    error: (error: any) => void,\n    // tslint:disable-next-line:unified-signatures\n    complete: () => void\n  ): Subscription;\n\n  /**\n   * a void function when we don't want to use the subscription from 'RxJs';\n   * @param {event} event - the specific name to subscribe on - the names must be specific to those we publish.\n   * @param {(value: any) => void} callback - callback function\n   * @param {(error: any) => void} error - exception catch function\n   * @param {() => void} complete - complete function\n   */\n  public $sub(\n    event: string,\n    callback?: (value: any) => void,\n    error?: (error: any) => void,\n    complete?: () => void\n  ) {\n    if (!event) {\n      throw new Error(\n        `[${ServiceName}] => Subscription method must get event name.`\n      );\n    }\n\n    if (this.events[event] === undefined) {\n      this.events[event] = new ReplaySubject<any>();\n    }\n\n    if (typeof callback !== 'function') {\n      return this.events[event].asObservable();\n    } else {\n      return this.events[event]\n        .asObservable()\n        .subscribe(callback, error, complete);\n    }\n  }\n\n  /**\n   * Base Module needed to use PubSubService.\n   * @param {event} event - the specific name to subscribe on\n   * @param {eventObject} eventObject - the optional paramter to send when raising the event\n   */\n  public $pub(event: string, eventObject?: any) {\n    if (!event) {\n      throw new Error(\n        `[${ServiceName}] => Publish method must get event name.`\n      );\n    } else if (!this.events[event]) {\n      return;\n    }\n\n    this.events[event].next(eventObject);\n  }\n}\n\nexport interface IPubSubService {\n  $pub(event: string, eventObject?: any): void;\n  $sub(event: string): Observable<any>;\n  $sub(event: string, callback: (value: any) => void): Subscription;\n  $sub(\n    event: string,\n    callback: (value: any) => void,\n    // tslint:disable-next-line:unified-signatures\n    error: (error: any) => void\n  ): Subscription;\n  $sub(\n    event: string,\n    callback: (value: any) => void,\n    error: (error: any) => void,\n    // tslint:disable-next-line:unified-signatures\n    complete: () => void\n  ): Subscription;\n}\n\ninterface I$sub {\n  (event: string): Observable<any>;\n  (event: string, callback: (value: any) => void): Subscription;\n  (\n    event: string,\n    callback: (value: any) => void,\n    // tslint:disable-next-line:unified-signatures\n    error: (error: any) => void\n  ): Subscription;\n  (\n    event: string,\n    callback: (value: any) => void,\n    error: (error: any) => void,\n    // tslint:disable-next-line:unified-signatures\n    complete: () => void\n  ): Subscription;\n}\n","export enum BrowserType {\n  Mozilla = 0,\n  Edge = 1,\n  Chrome = 2,\n  Safari = 3,\n  Opera = 4,\n  IE = 5,\n  Unknown = 6,\n}\n","import { Inject, Injectable } from '@angular/core';\nimport * as moment from 'moment';\nimport { AriConfig, AriConfigService } from '../model/ari-bot.mode';\nimport { v4 as uuidv4 } from 'uuid';\nimport { BrowserType } from '../model/browser';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class CommonService {\n  authUser: any = 'non_user';\n  assistantName: any = 'Ari';\n  project: any = 0;\n  constructor(@Inject(AriConfigService) private config: AriConfig) {\n    if (config.settings) {\n      this.project = config.settings.project;\n      this.assistantName = config.settings.assistantName;\n      this.authUser = config.settings.auth;\n    }\n  }\n  updateUserObject(token: string, refreshToken: string) {\n    const user = this.getUserObject();\n    user.Token = token;\n    user.RefreshToken = refreshToken;\n    localStorage.setItem(this.authUser, JSON.stringify(user));\n  }\n\n  getUserObject() {\n    const user = JSON.parse(localStorage.getItem(this.authUser));\n    if (user == null) {\n      return this.setNewUser();\n    }\n    return user;\n  }\n  setNewUser() {\n    const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n    let userInfo = null;\n    if (!localStorage.getItem(this.authUser)) {\n      userInfo = {\n        id: uuidv4(),\n        location: timezone.substring(\n          timezone.indexOf('/') + 1,\n          timezone.length\n        ),\n        timeZone: timezone,\n        project: this.project,\n      };\n      localStorage.setItem('temp_user', JSON.stringify(userInfo));\n    } else {\n      userInfo = this.getUserObject();\n      userInfo.name = 'directline/join';\n      localStorage.setItem(this.authUser, JSON.stringify(userInfo));\n    }\n\n    return userInfo;\n  }\n  myBrowser() {\n    if (\n      (navigator.userAgent.indexOf('Opera') ||\n        navigator.userAgent.indexOf('OPR')) != -1\n    ) {\n      return BrowserType.Opera;\n    } else if (navigator.userAgent.indexOf('Chrome') != -1) {\n      return BrowserType.Chrome;\n    } else if (navigator.userAgent.indexOf('Safari') != -1) {\n      return BrowserType.Safari;\n    } else if (navigator.userAgent.indexOf('Firefox') != -1) {\n      return BrowserType.Mozilla;\n    } else if (\n      navigator.userAgent.indexOf('MSIE') != -1 ||\n      !!document.DOCUMENT_NODE == true\n    ) {\n      return BrowserType.IE;\n    } else {\n      return BrowserType.Unknown;\n    }\n  }\n}\n","import { Injectable, OnDestroy, Inject } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport {\n  Subject,\n  Observable,\n  BehaviorSubject,\n  timer,\n  Subscription,\n} from 'rxjs';\nimport {\n  IConversationActivities,\n  IMessageActivity,\n} from '../model/conversation.model';\nimport {\n  map,\n  takeUntil,\n  catchError,\n  startWith,\n  switchMap,\n} from 'rxjs/operators';\nimport { AriConfig, AriConfigService } from '../model/ari-bot.mode';\nimport { PubsubService } from './pubsub.service';\nimport 'moment-timezone';\nimport { CommonService } from './common.service';\nimport * as moment from 'moment';\n\nconst baseUrl =\n  'https://directline.botframework.com/v3/directline/conversations';\n// const baseUrl =\n//   'http://localhost:62114/api/messages';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class AriBotService implements OnDestroy {\n  private unsubscribe$ = new Subject<any>();\n\n  private ariCreds: any;\n  private ariCreds$ = new Subject();\n  // tslint:disable-next-line: variable-name\n  private _botResponse$: BehaviorSubject<any> = new BehaviorSubject(null);\n  hasInitializedConversation = false;\n  hasConversations = false;\n  private reset$ = new Subject();\n  timer$: Observable<any>;\n  subscription: Subscription;\n  auth: any;\n  baseUrlproject: any;\n  project: number;\n  initMessage: any = {};\n  assistantName = 'Ari';\n  ariBotConversationId: string;\n  currentLocation: any;\n  public locationAccess$ = new Subject<boolean>();\n  get locationStatusChanged(): Observable<boolean> {\n    return this.locationAccess$.asObservable();\n  }\n  constructor(\n    private httpClient: HttpClient,\n    private pubsub: PubsubService,\n    private commonService: CommonService,\n    @Inject(AriConfigService) private config: AriConfig\n  ) {\n    if (config.settings) {\n      this.assistantName = config.settings.assistantName;\n      this.auth = config.settings.auth;\n      this.project = config.settings.project;\n      this.baseUrlproject = config.settings.baseUrl;\n    }\n    this.ariCreds$.pipe(takeUntil(this.unsubscribe$)).subscribe((creds) => {\n      if (creds) {\n        this.subscribeToConversations();\n      }\n    });\n  }\n\n  botResponse$(): Observable<any> {\n    return this._botResponse$.asObservable();\n  }\n  ariTimeout() {\n    this.timer$ = this.reset$.pipe(\n      startWith(0),\n      switchMap(() => timer(0, 1000)) // 1000 = 1sec\n    );\n    this.subscription = this.timer$.subscribe((i) => {\n      /// 5 Minutes reset the timer and close ari and show \"I have not heard from you for a while so I presume that you are busy. Call me again when you are ready. Goodbye.\"\n      if (i == 600) {\n        // 300 secs = 5 minutes\n        this.subscription.unsubscribe();\n        this.pubsub.$pub('ARI-TIMEOUT', true);\n      }\n    });\n  }\n  refreshTimer(): void {\n    this.reset$.next(0);\n  }\n  stopTimer() {\n    this.subscription.unsubscribe();\n  }\n  subscribeToConversations() {\n    let emptyConversationId;\n    let hasEmptyConversation = false;\n    this.hasConversations = true;\n\n    return this.getConversations()\n      .pipe(\n        map((conversations) => {\n          const { activities } = conversations;\n          conversations.activities = activities.filter((activity: any) => {\n\n            if (activity.from.Token && activity.from.RefreshToken) {\n              this.commonService.updateUserObject(\n                activity.from.Token,\n                activity.from.RefreshToken\n              );\n            }\n            if (\n              (activity.text || activity.replyToId !== emptyConversationId) &&\n              hasEmptyConversation === false\n            ) {\n              return activity;\n            }\n\n            if (!activity.text) {\n              emptyConversationId = activity.id;\n              hasEmptyConversation = true;\n              activity.hasEmptyConversation = true;\n            } else {\n              hasEmptyConversation = false;\n              activity.hasEmptyConversation = false;\n            }\n          });\n          return conversations;\n        }),\n        catchError((error) => {\n          this.pubsub.$pub('ARI-ERROR', error);\n          this.pubsub.$pub('ARI-LOADING-DONE');\n          return error.error;\n        }),\n        takeUntil(this.unsubscribe$)\n      )\n      .subscribe((response: any) => {\n        if (response) {\n          const getAllActivities = this.initMessage.activities\n            ? this.initMessage.activities.concat(response.activities)\n            : response.activities;\n          const validActivities = getAllActivities.filter((item) => {\n            if (item.id) {\n              return item;\n            }\n          });\n          const dataResponse = {\n            activities: validActivities,\n            watermark: response.watermark,\n          };\n          this._botResponse$.next(dataResponse);\n        }\n      });\n  }\n\n  private getConversations(): Observable<IConversationActivities> {\n    const { conversationId } = this.ariCreds;\n    const url = `${baseUrl}/${conversationId}/activities`;\n    const headers = this.conversationHeader;\n\n    return this.httpClient.get<IConversationActivities>(url, {\n      headers,\n    });\n  }\n\n  public paginateTasks(params: any): Observable<any> {\n    const url = `${this.baseUrlproject}/api/ari/tasks`;\n    const header = this.commonStateChangeHeaders();\n    return this.httpClient.get(url, {\n      headers: header,\n      params: params,\n    });\n  }\n  private getInitialWelcomeMessage(): Observable<any> {\n    const auth = JSON.parse(localStorage.getItem(this.auth));\n\n    let params: any = {};\n    if (auth) {\n      const timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n      params = {\n        RefreshToken: auth.RefreshToken,\n        TimeZone: auth.timeZone ? auth.timeZone : timeZone,\n        Project: this.project,\n        Location: auth.location\n          ? auth.location\n          : timeZone.substring(timeZone.indexOf('/') + 1, timeZone.length),\n      };\n      // if (auth.lat || auth.long) {\n      //   params.Lat = auth.lat;\n      //   params.Long = auth.long;\n      // }\n    } else {\n      params = {\n        ...JSON.parse(localStorage.getItem('temp_user')),\n      };\n    }\n    const url = `${this.baseUrlproject}/api/ari/welcome`;\n    const header = this.commonStateChangeHeaders();\n    return this.httpClient.get(url, {\n      headers: header,\n      params: params,\n    });\n  }\n\n  protected commonStateChangeHeaders(): any {\n    let headers: any;\n    if (JSON.parse(localStorage.getItem(this.auth))) {\n      headers = {\n        'Content-Type': 'application/json',\n        Accept: 'application/json',\n        Authorization: `Bearer ${JSON.parse(localStorage.getItem(this.auth)).Token\n          }`,\n      };\n    } else {\n      headers = {\n        'Content-Type': 'application/json',\n        Accept: 'application/json',\n      };\n    }\n    return new HttpHeaders(headers);\n  }\n\n  // -----------------------------------\n  // -----------------------------------\n  // -----------------------------------\n  // -----------------------------------\n  // -----------------------------------\n  // -----------------------------------\n  // INIT CONVERSATION\n  // -----------------------------------\n  // -----------------------------------\n  // -----------------------------------\n  // -----------------------------------\n  // -----------------------------------\n  // -----------------------------------\n  get initHeaders(): HttpHeaders {\n    return new HttpHeaders({\n      'Content-Type': 'application/json',\n      Accept: 'application/json',\n      Authorization: `Bearer ${this.config.apiSecret}`,\n    });\n  }\n\n  getWelcomeMessage(locationPermission?: boolean) {\n    // -------------------------------------------\n    // To get user current location (long and lat) conditionally then call welcome message\n    const oldAuthStorage = JSON.parse(\n      localStorage.getItem(this.auth ? this.auth : 'temp_user')\n    );\n    const addToAuthStorage = {\n      ...oldAuthStorage,\n    };\n\n    const callWelcomeMessage = () => {\n      this.getInitialWelcomeMessage().subscribe((res: any) => {\n        if (res) {\n          this.initMessage = res;\n          this._botResponse$.next(res);\n        }\n      });\n    };\n    if (locationPermission) {\n      // If Location access is allowed ( Completely remove for now )\n      const success = (pos) => {\n        this.currentLocation = {\n          long: pos.coords.longitude,\n          lat: pos.coords.latitude,\n        };\n        if (this.currentLocation) {\n          addToAuthStorage.lat = this.currentLocation.lat;\n          addToAuthStorage.long = this.currentLocation.long;\n        }\n        localStorage.setItem(\n          this.auth ? this.auth : 'temp_user',\n          JSON.stringify(addToAuthStorage)\n        );\n        callWelcomeMessage();\n      };\n      navigator.geolocation.getCurrentPosition(success);\n    } else {\n      // if Location access is not allowed\n      delete addToAuthStorage.lat;\n      delete addToAuthStorage.long;\n      localStorage.setItem(\n        this.auth ? this.auth : 'temp_user',\n        JSON.stringify(addToAuthStorage)\n      );\n      callWelcomeMessage();\n    }\n  }\n  initConversation() {\n    this.pubsub.$pub('ARI-LOADING');\n    // GET INITIAL MESSAGE FROM PROJECT API\n    const headers = this.initHeaders;\n    this.httpClient.post(baseUrl, {}, { headers }).subscribe(\n      (response: any) => {\n        this.ariCreds = response;\n        this.ariBotConversationId = this.ariCreds.conversationId;\n        const oldAuthStorage = JSON.parse(\n          localStorage.getItem(this.auth ? this.auth : 'temp_user')\n        );\n        const addToAuthStorage = {\n          ...oldAuthStorage,\n          conversationId: this.ariBotConversationId,\n          conversionToken: this.ariCreds.token,\n        };\n        localStorage.setItem(\n          this.auth ? this.auth : 'temp_user',\n          JSON.stringify(addToAuthStorage)\n        );\n        localStorage.setItem('AriCreds', JSON.stringify(response));\n        this.pubsub.$pub('ARI-LOADING-DONE');\n        this.hasInitializedConversation = true;\n\n        this.getWelcomeMessage(false);\n      },\n      (error) => {\n        console.error('AriBot Error: ', error);\n        this.pubsub.$pub('ARI-ERROR', error);\n        this.pubsub.$pub('ARI-LOADING-DONE');\n      }\n    );\n  }\n  // -----------------------------------\n  // -----------------------------------\n  // -----------------------------------\n  // -----------------------------------\n  // -----------------------------------\n  // -----------------------------------\n  // SEND MESSAGE\n  // -----------------------------------\n  // -----------------------------------\n  // -----------------------------------\n  // -----------------------------------\n  // -----------------------------------\n\n  get conversationHeader(): HttpHeaders {\n    if (!this.ariCreds) {\n      this.ariCreds = localStorage.getItem('AriCreds');\n      this.ariCreds$.next(this.ariCreds);\n    }\n    const { token } = this.ariCreds;\n    return new HttpHeaders({\n      'Content-Type': 'application/json',\n      Accept: 'application/json',\n      Authorization: `Bearer ${token}`,\n    });\n  }\n  sendMessage(message: IMessageActivity) {\n    const { type } = message;\n    const { from, text } = message;\n    const body = {\n      type: type || 'message',\n      from,\n      text,\n    };\n    this.pubsub.$pub('ARI-LOADING');\n    if (this.ariCreds) {\n      const { conversationId } = this.ariCreds;\n      const headers = this.conversationHeader;\n      const url = `${baseUrl}/${conversationId}/activities`;\n\n      this.httpClient.post(url, body, { headers }).subscribe(\n        (response) => {\n          if (response) {\n            this.subscribeToConversations();\n            this.pubsub.$pub('ARI-LOADING-DONE');\n          }\n        },\n        (error) => {\n          console.error('AriBot Error: ', error);\n          this.pubsub.$pub('ARI-ERROR', error);\n          this.pubsub.$pub('ARI-LOADING-DONE');\n        }\n      );\n    } else {\n      this.pubsub.$pub('ARI-LOADING-DONE');\n    }\n  }\n\n  // -----------------------------------\n  // -----------------------------------\n  // -----------------------------------\n  // -----------------------------------\n  // -----------------------------------\n  // -----------------------------------\n  // TASK ACTIONS\n  // -----------------------------------\n  // -----------------------------------\n  // -----------------------------------\n  // -----------------------------------\n  // -----------------------------------\n\n  private taskActionMoveTo(payload: any): Observable<any> {\n    const params = {\n      ...payload,\n      timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n    };\n    const url = `${this.baseUrlproject}/api/tasks/move`;\n    const header = this.commonStateChangeHeaders();\n    return this.httpClient.put(url, params, {\n      headers: header,\n    });\n  }\n  taskMoveTo(payload: any): Promise<any> {\n    return new Promise((resolve, reject) => {\n      this.taskActionMoveTo(payload).subscribe(\n        (res: any) => {\n          resolve(res ? res : null);\n        },\n        (err: any) => {\n          resolve(err.error);\n        }\n      );\n    });\n  }\n  private taskActionTrash(id: any): Observable<any> {\n    const url = `${this.baseUrlproject}/api/tasks/${id}`;\n    const header = this.commonStateChangeHeaders();\n    return this.httpClient.delete(url, {\n      headers: header,\n    });\n  }\n  taskTrash(id: any): Promise<any> {\n    return new Promise((resolve, reject) => {\n      this.taskActionTrash(id).subscribe(\n        (res: any) => {\n          resolve(true);\n        },\n        (err: any) => {\n          resolve(false);\n        }\n      );\n    });\n  }\n  // -----------------------------------\n  // -----------------------------------\n  // -----------------------------------\n  // -----------------------------------\n  // -----------------------------------\n  // -----------------------------------\n  // RESET\n  // -----------------------------------\n  // -----------------------------------\n  // -----------------------------------\n  // -----------------------------------\n  // -----------------------------------\n  resetConversation() {\n    this._botResponse$.next(null);\n  }\n\n  ngOnDestroy() {\n    this.resetConversation();\n\n    this.unsubscribe$.next();\n    this.unsubscribe$.complete();\n  }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class LocalstorageService {\n  setItem(key: string, value: any) {\n    localStorage.setItem(key, JSON.stringify(value));\n  }\n\n  removeItem(item: string) {\n    localStorage.removeItem(item);\n  }\n\n  getItem(item: string) {\n    return localStorage.getItem(item)\n      ? JSON.parse(localStorage.getItem(item))\n      : null;\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class HttpCancelService {\n  private pendingHTTPRequests$ = new Subject<void>();\n\n  constructor() {}\n\n  // Cancel Pending HTTP calls\n  public cancelPendingRequests() {\n    this.pendingHTTPRequests$.next();\n  }\n\n  public onCancelPendingRequests() {\n    return this.pendingHTTPRequests$.asObservable();\n  }\n}\n","import { Inject, Injectable, Injector } from '@angular/core';\nimport { GoogleTagManagerService } from 'angular-google-tag-manager';\nimport { GoogleEvent } from '../model/google';\nimport isEmpty from 'lodash-es/isEmpty';\nimport { AriConfig, AriConfigService } from '../model/ari-bot.mode';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class GoogleEventsAnalyticsService {\n  ableToPush: boolean;\n  gtmService: GoogleTagManagerService;\n  constructor(\n    private injector: Injector,\n    @Inject(AriConfigService) private config: AriConfig\n  ) {}\n\n  public initGoogleAnalytics() {\n    if (this.config && this.config.settings) {\n      this.ableToPush = this.config.settings.gtm ? true : false;\n      if (this.ableToPush) {\n        this.gtmService = this.injector.get<GoogleTagManagerService>(\n          GoogleTagManagerService\n        );\n        setTimeout(() => {\n          this.gtmService.addGtmToDom();\n        }, 500);\n      }\n    }\n  }\n  public addGtmToDom() {\n    this.gtmService.addGtmToDom();\n  }\n  public googleEventEmitter(eventName: string, eventProps: any) {\n    if (this.ableToPush) {\n      this.gtmService.pushTag({\n        event: eventName,\n        ...eventProps,\n      });\n    }\n  }\n  public googleEvent(eventName: string) {\n    if (!isEmpty(eventName)) {\n      this.googleEventEmitter(eventName, GoogleEvent[eventName].eventProps);\n    }\n  }\n}\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { AriConfig, AriConfigService } from '../../model/ari-bot.mode';\nimport { ariIcons, myCarteIcon } from '../../model/ari-svg-icons';\n\n@Component({\n  selector: 'lig-ari-logo',\n  templateUrl: './ari-logo.component.html',\n  styleUrls: ['./ari-logo.component.scss'],\n})\nexport class AriLogoComponent implements OnInit {\n  imgLogo: String = ariIcons.ari_Logo_base64;\n  constructor(@Inject(AriConfigService) private config: AriConfig) {\n    if (config.settings) {\n      if (config.settings.title === 'MyCarte') {\n        this.imgLogo = myCarteIcon.logo;\n      }\n    }\n  }\n\n  ngOnInit(): void {}\n}\n","<img [src]=\"imgLogo\" alt=\"v1.0.0\" />\n<!-- X.Y.Z\nX = Major Release\nY = Minor Release\nZ = Very Minor Update -->\n","import {\n  Component,\n  OnInit,\n  Input,\n  Output,\n  EventEmitter,\n  Inject,\n} from '@angular/core';\nimport { Platform } from '@ionic/angular';\nimport { AriConfig, AriConfigService } from '../../model/ari-bot.mode';\nimport { AriBotService } from '../../services/ari-bot.service';\nimport { CommonService } from '../../services/common.service';\n\n@Component({\n  selector: 'lig-ari-splash-screen',\n  templateUrl: './ari-splash-screen.component.html',\n  styleUrls: ['./ari-splash-screen.component.scss'],\n})\nexport class AriSplashScreenComponent implements OnInit {\n  @Input() chatIsReady: boolean;\n  @Output() ariOnReady = new EventEmitter<any>();\n  @Output() ariOnTalking = new EventEmitter<any>();\n\n  showLoading: boolean;\n  showSplash: boolean;\n  showIntro: boolean;\n  showFooter: boolean;\n  doneSplash: boolean;\n  backgroundSetting: any = 'splash-loader-container';\n  assistantName: String = 'Ari';\n  default: boolean = true;\n  currentLocation: any;\n  constructor(\n    private plt: Platform,\n    private commonService: CommonService,\n    @Inject(AriConfigService) private config: AriConfig,\n    private ariBotService: AriBotService\n  ) {\n    if (config.settings) {\n      this.default = config.settings.project ? false : true;\n      this.assistantName = config.settings.assistantName;\n    }\n  }\n\n  ngOnInit() {\n    this.showSplash = true;\n    this.showLoading = false;\n    this.showFooter = false;\n    this.showIntro = false;\n    this.doneSplash = false;\n\n    const animateCSS = (element, animation, prefix = 'animate__') =>\n      // We create a Promise and return it\n      new Promise((resolve, reject) => {\n        const animationName = `${prefix}${animation}`;\n        const node = document.querySelector(element);\n\n        if (node) {\n          node.classList.add(`${prefix}animated`, animationName);\n\n          // When the animation ends, we clean the classes and resolve the Promise\n          function handleAnimationEnd() {\n            node.classList.remove(`${prefix}animated`, animationName);\n            node.removeEventListener('animationend', handleAnimationEnd);\n\n            resolve('Animation ended');\n          }\n\n          node.addEventListener('animationend', handleAnimationEnd);\n        }\n      });\n\n    const fnShowSplash = () => {\n      setTimeout(() => {\n        this.showSplash = false;\n        this.showLoading = true;\n        this.showFooter = true;\n\n        if (this.showLoading) {\n          setTimeout(() => {\n            animateCSS('.splash-footer-container', 'fadeIn');\n          }, 30);\n        }\n        this.backgroundSetting = 'active-container';\n        // this.ariBotService.locationAccess$.next(false);\n        // this.ariBotService.locationAccess$ = new Subject<boolean>();\n        \n        // const setStatus = (res) => {\n        //   if (res.state === 'granted') {\n        //     this.ariBotService.locationAccess$.next(true);\n        //     this.ariBotService.locationAccess$ = new Subject<boolean>();\n        //   } else {\n        //     this.ariBotService.locationAccess$.next(false);\n        //     this.ariBotService.locationAccess$ = new Subject<boolean>();\n        //   }\n        //   this.backgroundSetting = 'active-container';\n          fnShowLoading();\n        //};\n        // if (this.plt.is('capacitor') || this.plt.is('cordova')) {\n        //   Plugins.Geolocation.getCurrentPosition({\n        //     enableHighAccuracy: true,\n        //   }).then(\n        //     () => {\n        //       setStatus({ state: 'granted' });\n        //     },\n        //     () => {\n        //       setStatus({ state: 'declined' });\n        //     }\n        //   );\n        // } else {\n        //   if (this.commonService.myBrowser() === BrowserType.Safari) {\n        //     Plugins.Geolocation.getCurrentPosition({\n        //       enableHighAccuracy: true,\n        //     }).then(\n        //       () => {\n        //         setStatus({ state: 'granted' });\n        //       },\n        //       () => {\n        //         setStatus({ state: 'declined' });\n        //       }\n        //     );\n        //   } else {\n        //     navigator.permissions.query({ name: 'geolocation' }).then((res) => {\n        //       res.onchange = function () {\n        //         console.log(res);\n        //         setStatus(res);\n        //       };\n        //       if (res.state !== 'prompt') {\n        //         setStatus(res);\n        //       } else {\n        //         // For Mozilla firefox\n        //         const success = () => {\n        //           setStatus({ state: 'granted' });\n        //         };\n        //         const error = () => {\n        //           console.log('in');\n        //           setStatus({ state: 'declined' });\n        //         };\n        //         navigator.geolocation.getCurrentPosition(success, error);\n        //       }\n        //     });\n        //   }\n        // }\n      }, 1000);\n    };\n\n    const fnShowLoading = () => {\n      this.showIntro = true;\n      setTimeout(() => {\n        this.showLoading = false;\n        this.ariOnReady.emit();\n\n        if (!this.showLoading) {\n          animateCSS('.splash-footer-container', 'fadeOut');\n        }\n        fnShowIntro();\n      }, 2000);\n    };\n\n    const fnShowIntro = () => {\n      setTimeout(() => {\n        this.default = false;\n        this.showIntro = false;\n        this.doneSplash = true;\n        animateCSS('.splash-loader-container', 'fadeOutUp').then(() => {\n          this.ariOnTalking.emit();\n        });\n      }, 1500);\n    };\n\n    fnShowSplash();\n  }\n}\n","<div\n  class=\"splash-loader-container\"\n  [ngClass]=\"{\n    'animate-loading': showFooter,\n    background: default\n  }\"\n>\n  <div class=\"welcome-container\">\n    <div\n      class=\"welcome-header show-splash\"\n      [ngClass]=\"{ 'show-intro': showLoading || showIntro }\"\n    >\n      <lig-ari-logo></lig-ari-logo>\n      <p\n        class=\"welcome-message animate__animated animate__fadeIn\"\n        *ngIf=\"showIntro\"\n      >\n        Hi, I'm {{ assistantName }}, your personal assistant. I will help you\n        achieve your goals and find the information you need.\n      </p>\n    </div>\n  </div>\n</div>\n\n<!-- <div class=\"splash-footer-container\" *ngIf=\"showLoading\">\n  <div class=\"ari-speech-toolbar-loading\">\n    <div id=\"container\">\n      <span class=\"blue ball\"></span>\n      <span class=\"red ball\"></span>\n      <span class=\"yellow ball\"></span>\n      <span class=\"green ball\"></span>\n    </div>\n  </div>\n</div> -->\n","import { Component, OnInit, EventEmitter, Output, Input } from '@angular/core';\n\n@Component({\n  selector: 'lig-ari-suggestion-buttons',\n  templateUrl: './ari-suggestion-buttons.component.html',\n  styleUrls: ['./ari-suggestion-buttons.component.scss'],\n})\nexport class AriSuggestionButtonsComponent implements OnInit {\n  @Output() sendSelectionAction = new EventEmitter<any>();\n  @Input() suggestedAction: any = {};\n\n  constructor() {}\n\n  ngOnInit() {}\n\n  sendSelection(ev: any) {\n    this.sendSelectionAction.emit(ev);\n  }\n}\n","<ion-button\n  *ngIf=\"\n    suggestedAction.type != 'openUrl' &&\n    suggestedAction.value != 'No' &&\n    suggestedAction.type != 'actionExamples'\n  \"\n  shape=\"round\"\n  fill=\"clear\"\n  class=\"suggested-action-button\"\n  (click)=\"sendSelection(suggestedAction)\"\n>\n  <ion-icon\n    *ngIf=\"suggestedAction.value == 'Yes'\"\n    class=\"ari-volume\"\n    slot=\"icon-only\"\n    src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMS4yMjIiIGhlaWdodD0iNy44MTEiIHZpZXdCb3g9IjAgMCAxMS4yMjIgNy44MTEiPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC05NDAuNDM5IC0zNDguNDM5KSI+PHBhdGggZD0iTTEyLjIyNCwyMC44NTVsMy4xLDMuMSw2LTYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDkyOS4yNzUgMzMxLjU0NCkiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzMwOWRhNiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjEuNSIvPjwvZz48L3N2Zz4=\"\n  ></ion-icon>\n  {{ suggestedAction.title }}\n</ion-button>\n\n<ion-button\n  *ngIf=\"suggestedAction.value == 'No'\"\n  shape=\"round\"\n  fill=\"clear\"\n  class=\"suggested-action-button-no\"\n  (click)=\"sendSelection(suggestedAction)\"\n>\n  <ion-icon\n    class=\"ari-volume\"\n    slot=\"icon-only\"\n    src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4LjEyNiIgaGVpZ2h0PSI4LjEyNyIgdmlld0JveD0iMCAwIDguMTI2IDguMTI3Ij48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjEuNTg1IC0xNS44MDkpIj48cGF0aCBkPSJNMTQuOTY1LDIzLjk2MWw2LTYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDcuNjgxIC0xLjA4NikiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2Y2NGQ0YiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjEuNSIvPjxwYXRoIGQ9Ik0wLDYsNiwwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyOC42NTEgMTYuODcpIHJvdGF0ZSg5MCkiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2Y2NGQ0YiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjEuNSIvPjwvZz48L3N2Zz4=\"\n  ></ion-icon>\n  {{ suggestedAction.title }}\n</ion-button>\n\n<ion-button\n  *ngIf=\"suggestedAction.value != 'No' && suggestedAction.type == 'openUrl'\"\n  shape=\"round\"\n  fill=\"clear\"\n  class=\"suggested-action-button\"\n  (click)=\"sendSelection(suggestedAction)\"\n>\n  {{ suggestedAction.title }}\n</ion-button>\n\n<ion-button\n  *ngIf=\"suggestedAction.type == 'actionExamples'\"\n  fill=\"clear\"\n  class=\"suggested-action-button-example\"\n  (click)=\"sendSelection(suggestedAction)\"\n>\n  <span>\n    {{ suggestedAction.title }}\n  </span>\n</ion-button>\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n  selector: 'lig-ari-select-option',\n  templateUrl: './ari-select-option.component.html',\n  styleUrls: ['./ari-select-option.component.scss']\n})\nexport class AriSelectOptionComponent implements OnInit {\n  \n  @Output() sendSelectionAction = new EventEmitter<any>();\n  @Input() suggestedAction: any;\n  @Input() index: number;\n\n  constructor() {\n   }\n\n  ngOnInit(): void {\n  }\n\n  sendSelection(ev: any) {\n    const action = ev;\n    this.sendSelectionAction.emit(action);\n  }\n\n}\n","<ion-item class = \"options-item\" (click) = \"sendSelection(suggestedAction)\" lines = \"none\" >\n        <ion-label class = \"label-text ion-text-wrap\">\n          <a class = \"index\"\n          > {{index + 1}} </a>   {{ suggestedAction.title }}</ion-label>\n</ion-item>\n\n\n","export interface Task {\n  id?: number;\n  goalId?: number;\n  name?: string;\n  description?: string;\n  system?: boolean;\n  startOn?: any;\n  startDateText?: any;\n  endOn?: any;\n  endDateText?: any;\n  statusId?: number;\n  priorityId?: number;\n  colourId?: number;\n  members?: any[];\n  taskComments?: any[];\n  files?: any[];\n  applicationUserId?: string;\n  archivedBy?: any;\n  archivedDate?: any;\n  goal?: any;\n  createdBy?: any;\n  createdDate?: any;\n  remindMe?: any;\n  reminderTimeId?: number;\n  rescheduledCount?: number;\n  deletedBy?: any;\n  deletedDate?: any;\n  isArchived?: any;\n  isDeleted?: any;\n  notifSubscriptionId?: any;\n  private?: any;\n  reschedules?: any;\n  updatedBy?: any;\n  updatedDate?: any;\n  status?: any;\n  ariMessage?: any;\n  expanded?: any;\n  taskDetails?: TaskDetails;\n}\n\nexport interface TaskDetails {\n  ari_Color: number;\n  ari_Icon: number;\n  ari_Message: string;\n  updatedBy: any;\n  updatedOn: any;\n}\n\nexport enum TaskStatus {\n  Unscheduled = 0,\n  Later = 1,\n  Todo = 2,\n  Doing = 3,\n  Done = 4,\n}\n\nexport enum TaskPoint {\n  Easy = 1,\n  Normal = 2,\n  Complex = 3,\n  Tricky = 4,\n  Challenging = 5,\n}\n\nexport enum TaskView {\n  Thumbnail = 1,\n  Listview = 2,\n  Archived = 3,\n}\n\nexport enum TaskPriority {\n  Low = 1,\n  Medium = 2,\n  High = 3,\n}\n\n\nexport enum TaskColour {\n  Red = 1,\n  Blue = 2,\n  Amber = 3,\n  Green = 4,\n  Grey = 5,\n  Yellow = 6,\n  Black = 7\n}\n\nexport const reminders = [\n  {\n    id: 1,\n    name: 'None',\n    minutes: 0,\n  },\n  {\n    id: 2,\n    name: '0 minute',\n    minutes: 0,\n  },\n  {\n    id: 3,\n    name: '5 minutes',\n    minutes: 5,\n  },\n  {\n    id: 4,\n    name: '10 minutes',\n    minutes: 10,\n  },\n  {\n    id: 5,\n    name: '15 minutes',\n    minutes: 15,\n  },\n  {\n    id: 6,\n    name: '30 minutes',\n    minutes: 30,\n  },\n  {\n    id: 7,\n    name: '45 minutes',\n    minutes: 45,\n  },\n  {\n    id: 8,\n    name: '1 hour',\n    minutes: 60,\n  },\n  {\n    id: 9,\n    name: '1.5 hours',\n    minutes: 90,\n  },\n  {\n    id: 10,\n    name: '2 hours',\n    minutes: 120,\n  },\n  {\n    id: 11,\n    name: '3 hours',\n    minutes: 180,\n  },\n  {\n    id: 12,\n    name: '4 hours',\n    minutes: 240,\n  },\n  {\n    id: 13,\n    name: '5 hours',\n    minutes: 300,\n  },\n  {\n    id: 14,\n    name: '6 hours',\n    minutes: 360,\n  },\n  {\n    id: 15,\n    name: '7 hours',\n    minutes: 420,\n  },\n  {\n    id: 16,\n    name: '8 hours',\n    minutes: 480,\n  },\n  {\n    id: 17,\n    name: '9 hours',\n    minutes: 540,\n  },\n  {\n    id: 18,\n    name: '10 hours',\n    minutes: 600,\n  },\n  {\n    id: 19,\n    name: '11 hours',\n    minutes: 660,\n  },\n  {\n    id: 20,\n    name: '0.5 day',\n    minutes: 720,\n  },\n  {\n    id: 21,\n    name: '18 hours',\n    minutes: 1080,\n  },\n  {\n    id: 22,\n    name: '1 day',\n    minutes: 1440,\n  },\n  {\n    id: 23,\n    name: '2 days',\n    minutes: 2880,\n  },\n  {\n    id: 24,\n    name: '3 days',\n    minutes: 4320,\n  },\n  {\n    id: 25,\n    name: '4 days',\n    minutes: 5760,\n  },\n  {\n    id: 26,\n    name: '1 Week',\n    minutes: 10080,\n  },\n  {\n    id: 27,\n    name: '2 Weeks',\n    minutes: 20160,\n  },\n];\n\nexport enum Days {\n  Sunday = 0,\n  Monday = 1,\n  Tuesday = 2,\n  Wednesday = 3,\n  Thursday = 4,\n  Friday = 5,\n  Saturday = 6\n}","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { IAttachmentContentButton } from '../../model/conversation.model';\nimport { Days } from '../../model/task.model';\n\n@Component({\n    selector: 'lig-ari-multiple-selection-card',\n    templateUrl: './ari-multiple-selection-card.component.html',\n    styleUrls: ['./ari-multiple-selection-card.component.scss'],\n})\nexport class AriMultipleSelectionComponent {\n    @Input() attachment: any;\n    @Output() sendSelectionEv = new EventEmitter<any>();\n    selectedDays: any = [];\n    defaultSelection: string;\n\n    constructor() { }\n\n    ngOnInit() {\n        const todaysDay = new Date().getDay();\n        this.defaultSelection = Days[todaysDay];\n        this.selectedDays.push(Days[todaysDay])\n    }\n\n    selectionUpdated(e) {\n        const item = e.detail;\n        if (item.checked) {\n            this.selectedDays.push(item.value);\n            return;\n        }\n        const index = this.selectedDays.indexOf(item.value);\n        if (index > -1) {\n            this.selectedDays.splice(index, 1);\n        }\n    }\n\n    hasActionButtons(content): IAttachmentContentButton[] {\n        return content && !!content.actions ? content.actions : null;\n    }\n\n    sendSelection(button) {\n        if (button.type === 'Action.Submit') {\n            const action = {\n                type: button.type,\n                value: this.selectedDays.toString()\n            }\n            this.sendSelectionEv.emit(action);\n        }\n    }\n\n}\n","<ng-container *ngIf=\"attachment?.content?.type === 'AdaptiveCard'\">\n    <div class=\"selection-container\" *ngIf=\"attachment.content.body?.length\">\n        <ion-list>\n            <ion-item *ngFor=\"let choice of attachment.content.body[0].choices\" (ionChange)=\"selectionUpdated($event)\">\n                <ion-label>{{ choice.title }}</ion-label>\n                <ion-checkbox slot=\"start\" [value]=\"choice.value\" [checked]=\"defaultSelection === choice.value\">\n                </ion-checkbox>\n            </ion-item>\n        </ion-list>\n        <div class=\"card-body\" *ngIf=\"hasActionButtons(attachment.content) as buttons\">\n            <button class=\"button-training\" [ngClass]=\"selectedDays.length === 0? 'disabled': ''\"\n                *ngFor=\"let button of buttons\" [disabled]=\"selectedDays.length === 0\" (click)=\"sendSelection(button)\">\n                {{ button.title }}\n            </button>\n        </div>\n    </div>\n</ng-container>","import { Component, OnInit, Input } from '@angular/core';\nimport { AriSpeechService } from '../../services/ari-speech.service';\nimport { TextToSpeech } from '@ionic-native/text-to-speech/ngx';\nimport { Platform } from '@ionic/angular';\nimport find from 'lodash-es/find';\nimport { Voices } from '../../services/voice-setup.constant';\n\n@Component({\n  selector: 'lig-weather-card',\n  templateUrl: './weather-card.component.html',\n  styleUrls: ['./weather-card.component.scss'],\n})\nexport class WeatherCardComponent implements OnInit {\n  @Input() attachment: any;\n  @Input() ariMuteStatus: boolean;\n  weatherDetails: any;\n  temperatures: any;\n  ttsSpeech: any;\n  city: any;\n  date: any;\n  temp: any;\n  image: any;\n  high: any;\n  low: any;\n  weatherType: any = '';\n  // completeText: any = 'Is there anything else I can do for you?';\n\n  constructor(\n    private ariService: AriSpeechService,\n    private tts: TextToSpeech,\n    private plt: Platform\n  ) {}\n\n  ngOnInit(): void {\n    this.ttsSpeech = Voices[5];\n    if (this.attachment) {\n      // const content = JSON.parse(this.attachment[0].content);\n      // this.city = content.body[0].text;\n      // this.date = content.body[1].text;\n      // this.image = content.body[2].columns[0].items[0].url;\n      // this.temp = content.body[2].columns[1].items[0].text;\n      // this.high = content.body[2].columns[3].items[0].text;\n      // this.low = content.body[2].columns[3].items[1].text;\n      this.city = this.attachment[0].content.body[0].text;\n      this.date = this.attachment[0].content.body[1].text;\n      this.image = this.attachment[0].content.body[2].columns[0].items[0].url;\n      this.temp = this.attachment[0].content.body[2].columns[1].items[0].text;\n      this.high = this.attachment[0].content.body[2].columns[3].items[0].text;\n      this.low = this.attachment[0].content.body[2].columns[3].items[1].text;\n      var path = this.image.split('/').pop();\n      if (path == 'Mostly%20Cloudy-Square.png') {\n        this.weatherType = 'Cloudy';\n      }\n      if (path == 'sun.png') {\n        this.weatherType = 'Sunny';\n      }\n      if (path == 'rain.png') {\n        this.weatherType = 'Rainy';\n      }\n      if (path == 'storm.png') {\n        this.weatherType = 'Stormy';\n      }\n      if (this.plt.is('cordova') || this.plt.is('capacitor')) {\n        if (this.ariMuteStatus == false) {\n          this.tts.speak({\n            text: this.attachment[0].content.speak,\n            locale: this.ttsSpeech.Language,\n            rate: this.plt.is('ios') ? 1.6 : 1,\n          });\n        }\n      } else {\n        const defaultVoiceName = this.ttsSpeech.Language;\n        if (this.ariMuteStatus == false) {\n          if (this.ariService.isWebSpeechSynthesisSupported()) {\n            this.ariService.SpeechSynthesisUtterance.init({\n              lang: this.ttsSpeech.Language,\n            })\n              .then((data: any) => {\n                if (data && data.voices) {\n                  const matchVoice = find(data.voices, (obj: any) => {\n                    return obj.lang === defaultVoiceName;\n                  });\n                  if (matchVoice) {\n                    this.ariService.SpeechSynthesisUtterance.setVoice(\n                      matchVoice.name\n                    );\n                  } else {\n                    this.ariService.SpeechSynthesisUtterance.setVoice(\n                      data.voices[1].name\n                    );\n                  }\n                }\n              })\n              .then(() => {\n                this.ariService.SpeechSynthesisUtterance.speak({\n                  text: this.attachment[0].content.speak,\n                });\n              });\n          }\n        }\n      }\n    }\n  }\n}\n","<div class=\"weather-item\">\n  <div class=\"image-weather animate__fadeIn\">\n    <img [src]=\"image\" />\n  </div>\n  <div class=\"details\">\n    <div class=\"weather-body\">\n      <div class=\"body-col-1\">\n        <a class=\"weather-type\">{{ weatherType }}</a> <br />\n        <a class=\"title\">{{ temp }} <a class=\"celcius\">°C </a></a>\n      </div>\n      <div class=\"body-col-2\">\n        <div class=\"temp\">\n          <a class=\"high-low\"\n            >{{ high }}°C <br />\n            {{ low }}°C</a\n          >\n        </div>\n      </div>\n    </div>\n    <a class=\"weather-city\">{{ city }}</a> <br />\n    <a class=\"date\">{{ date }}</a>\n  </div>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'truncate',\n})\nexport class TruncatePipe implements PipeTransform {\n  transform(value: string, args: string[]): string {\n    const limit = args.length > 0 ? parseInt(args[0], 10) : 20;\n    const trail = args.length > 1 ? args[1] : '...';\n    return value.length > limit ? value.substring(0, limit) + trail : value;\n  }\n}\n","import { Component, OnInit, Output, Input, EventEmitter } from '@angular/core';\nimport { IAttachmentContentButton } from '../../model/conversation.model';\nimport { ActionSheetController, Platform } from '@ionic/angular';\nimport { Browser, OpenOptions } from '@capacitor/browser';\nimport isEmpty from 'lodash-es/isEmpty';\nimport each from 'lodash-es/each';\n\n@Component({\n  selector: 'lig-ari-card-attachments',\n  templateUrl: './ari-card-attachments.component.html',\n  styleUrls: ['./ari-card-attachments.component.scss'],\n})\nexport class AriCardAttachmentsComponent implements OnInit {\n  @Output() sendSelectionEv = new EventEmitter<any>();\n  @Input() attachment: any;\n  imageSrc: string;\n  subtitle: string;\n  title: string;\n  contentText: string;\n\n  showSubTitle = false;\n  showTitle = false;\n  showText = false;\n  showImages = false;\n  showAriTrainingCard = false;\n  cardView: any;\n\n  constructor(\n    private actionSheetController: ActionSheetController,\n    private plt: Platform\n  ) {}\n\n  ngOnInit() {\n    if (this.attachment) {\n      const content = this.attachment.content;\n\n      if (isEmpty(content.subtitle) && !this.imageSrc) {\n        this.cardView = 'card-goal card-attachments';\n      } else {\n        this.cardView = 'card-default card-attachments';\n      }\n\n      if (!isEmpty(content.subtitle)) {\n        this.subtitle = content.subtitle;\n        this.showSubTitle = true;\n        this.showAriTrainingCard = false;\n      }\n\n      if (!isEmpty(content.title)) {\n        this.title = content.title;\n        this.showTitle = true;\n        this.showAriTrainingCard = false;\n      }\n\n      if (!isEmpty(content.text)) {\n        this.contentText = content.text;\n        this.showText = true;\n      }\n\n      if (!isEmpty(content.images)) {\n        this.showImages = true;\n        this.imageSrc = content.images[0].url;\n        this.showAriTrainingCard = false;\n      }\n\n      if (\n        !isEmpty(content.text) &&\n        isEmpty(content.title) &&\n        isEmpty(content.subtitle)\n      ) {\n        this.contentText = content.text;\n        this.showAriTrainingCard = true;\n        this.showText = false;\n      }\n    }\n  }\n\n  getFavIconImage(url: string) {\n    if (url) {\n      return 'https://s2.googleusercontent.com/s2/favicons?domain_url=' + url;\n    }\n  }\n\n  hasButtons(content): IAttachmentContentButton[] {\n    return content && !!content.buttons ? content.buttons : null;\n  }\n\n  sendSelection(button) {\n    this.sendSelectionEv.emit(button);\n  }\n\n  async showMoreButtons() {\n    const moreButtons = [];\n    if (this.attachment) {\n      const content = this.attachment.content;\n\n      if (!isEmpty(content.buttons)) {\n        each(content.buttons, (button) => {\n          moreButtons.push({\n            text: button.title,\n            handler: async () => {\n              if (button.type === 'openUrl') {\n                if (this.plt.is('cordova') || this.plt.is('capacitor')) {\n                  const inAppOptions: OpenOptions = {\n                    presentationStyle: 'fullscreen',\n                    windowName: '_blank',\n                    url: button.value\n                  };\n                  await Browser.open(inAppOptions);\n                } else {\n                  window.open(button.value, '_blank', 'noopener noreferrer');\n                }\n              }\n            },\n          });\n        });\n\n        const actionSheet = await this.actionSheetController.create({\n          buttons: [\n            ...moreButtons,\n            {\n              text: 'Cancel',\n              role: 'cancel',\n              handler: () => {},\n            },\n          ],\n        });\n        await actionSheet.present();\n      }\n    }\n  }\n}\n","<div [class]=\"cardView\">\n  <!-- <ng-container *ngIf=\"showAriTrainingCard\">\n    <div class=\"card-training-label\">\n      {{ contentText }}\n    </div>\n  </ng-container> -->\n  <div class=\"card-attachment-header\" *ngIf=\"showImages\">\n    <ng-container *ngIf=\"imageSrc\">\n      <img [src]=\"imageSrc\" [alt]=\"imageSrc\" height=\"245\" class=\"card-attachment-header-image\" />\n    </ng-container>\n  </div>\n  <div class=\"card-attachments-header\" *ngIf=\"showTitle\">\n    <ng-container *ngIf=\"imageSrc\">\n      <img [src]=\"imageSrc\" [alt]=\"imageSrc\" class=\"card-attachment-header-image\" />\n    </ng-container>\n    <div class=\"card-attachment-header-label\">\n      <h1 class=\"card-header-title\">\n        {{ title | truncate: [\"45\"] }}\n      </h1>\n      <img\n        src=\"data:image/svg+xml;utf8,%0A%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 512 512'%3E%3Ctitle%3Eionicons-v5-f%3C/title%3E%3Ccircle cx='256' cy='256' r='48'/%3E%3Ccircle cx='256' cy='416' r='48'/%3E%3Ccircle cx='256' cy='96' r='48'/%3E%3C/svg%3E\"\n        (click)=\"showMoreButtons()\" />\n    </div>\n    <!-- <p class=\"card-header-label\">\n      {{ subtitle }}\n    </p> -->\n  </div>\n\n  <div class=\"card-body-text\" *ngIf=\"contentText && !showAriTrainingCard\">\n    {{ contentText | truncate: [\"110\"] }}\n  </div>\n\n  <div class=\"card-body-only-text\" *ngIf=\"contentText && showAriTrainingCard\">\n    {{ contentText }}\n  </div>\n\n  <div class=\"card-body\" *ngIf=\"!showAriTrainingCard && hasButtons(attachment.content) as buttons\">\n    <button *ngFor=\"let button of buttons\" class=\"button-card\" (click)=\"sendSelection(button)\">\n      View Article\n      <!-- {{ button.title }} -->\n    </button>\n  </div>\n\n  <div class=\"card-body\" *ngIf=\"showAriTrainingCard && hasButtons(attachment.content) as buttons\">\n    <button *ngFor=\"let button of buttons\" class=\"button-training\" (click)=\"sendSelection(button)\">\n      {{ button.title }}\n    </button>\n  </div>\n</div>","import {\n  Component,\n  OnInit,\n  Output,\n  Input,\n  EventEmitter,\n  AfterViewInit,\n} from '@angular/core';\nimport { IAttachmentContentButton } from './../../model/conversation.model';\nimport isEmpty from 'lodash-es/isEmpty';\nimport each from 'lodash-es/each';\nimport { Browser, OpenOptions } from '@capacitor/browser';\nimport { Platform, ActionSheetController } from '@ionic/angular';\n@Component({\n  selector: 'lib-ari-card-video-attachments',\n  templateUrl: './ari-card-video-attachments.component.html',\n  styleUrls: ['./ari-card-video-attachments.component.scss'],\n})\nexport class AriCardVideoAttachmentsComponent implements OnInit, AfterViewInit {\n  @Output() sendSelectionEv = new EventEmitter<any>();\n  @Input() attachment: any;\n\n  videoID: string;\n  videoType: string;\n\n  constructor(\n    private plt: Platform,\n    private actionSheetController: ActionSheetController\n  ) {}\n\n  ngOnInit(): void {\n    if (this.attachment) {\n      const content = this.attachment.content;\n      const media = !isEmpty(content.media) ? content.media[0] : null;\n      if (media) {\n        this.videoType = this.videoPlayerType(media.url);\n        if (this.videoType === 'youtube') {\n          this.videoID = this.youtube_parser(media.url);\n        } else if (this.videoType === 'facebook') {\n          this.videoID = media.url;\n        }\n      }\n    }\n  }\n\n  ngAfterViewInit() {\n    // if (this.plt.is('cordova') || this.plt.is('capacitor')) {\n    //   // Native\n    //   console.log('initializeYoutubePlayerPluginNative');\n    //   this.initializeYoutubePlayerPluginNative();\n    // } else {\n    //   console.log('initializeYoutubePlayerPluginWeb');\n    //   this.initializeYoutubePlayerPluginWeb();\n    // }\n  }\n\n  private youtube_parser(url) {\n    const regExp = /^.*((youtu.be\\/)|(v\\/)|(\\/u\\/\\w\\/)|(embed\\/)|(watch\\?))\\??v?=?([^#&?]*).*/;\n    const match = url.match(regExp);\n    return match && match[7].length === 11 ? match[7] : false;\n  }\n\n  hasButtons(content): IAttachmentContentButton[] {\n    return content && !!content.buttons ? content.buttons : null;\n  }\n\n  sendSelection(button) {\n    this.sendSelectionEv.emit(button);\n  }\n\n  async showMoreButtons() {\n    const moreButtons = [];\n    if (this.attachment) {\n      const content = this.attachment.content;\n\n      if (!isEmpty(content.buttons)) {\n        each(content.buttons, (button) => {\n          moreButtons.push({\n            text: button.title,\n            handler: async () => {\n              if (button.type === 'openUrl') {\n                if (this.plt.is('cordova') || this.plt.is('capacitor')) {\n                  const inAppOptions: OpenOptions = {\n                    presentationStyle: 'fullscreen',\n                    windowName: '_blank',\n                    url: button.value,\n                  };\n                  await Browser.open(inAppOptions);\n                } else {\n                  window.open(button.value, '_blank', 'noopener noreferrer');\n                }\n              }\n            },\n          });\n        });\n\n        const actionSheet = await this.actionSheetController.create({\n          buttons: [\n            ...moreButtons,\n            {\n              text: 'Cancel',\n              role: 'cancel',\n              handler: () => {\n              },\n            },\n          ],\n        });\n        await actionSheet.present();\n      }\n    }\n  }\n\n  videoPlayerType(url: string) {\n    if (url.indexOf('facebook') > 0) {\n      return 'facebook';\n    } else if (url.indexOf('youtube')) {\n      return 'youtube';\n    }\n  }\n\n  // async initializeYoutubePlayerPluginWeb() {\n  //   const options = {\n  //     playerId: 'youtube-player',\n  //     playerSize: { width: 640, height: 360 },\n  //     videoId: this.videoID,\n  //   };\n  //   const result = await YoutubePlayerWeb.initialize(options);\n  //   console.log('playerReady', result);\n  // }\n\n  // async initializeYoutubePlayerPluginNative() {\n  //   const { YoutubePlayer } = Plugins;\n\n  //   const options = { width: 640, height: 360, videoId: this.videoID };\n  //   const playerReady = await YoutubePlayer.initialize(options);\n  // }\n}\n","<ion-card class=\"card-attachments\">\n  <!-- <ion-card-content class=\"card-body\">\n  </ion-card-content> -->\n  <ng-container *ngIf=\"videoType == 'youtube'\">\n    <!-- <youtube-player [videoId]=\"videoID\"></youtube-player> -->\n  </ng-container>\n  <ng-container *ngIf=\"videoType == 'facebook'\">\n    <div\n      class=\"fb-video\"\n      data-width=\"500\"\n      data-show-text=\"false\"\n      [attr.data-href]=\"videoID\"\n    ></div>\n  </ng-container>\n  <ion-card-header *ngIf=\"hasButtons(attachment.content) as buttons\">\n    <ion-item lines=\"none\">\n      <ion-label class=\"ion-text-wrap\">&nbsp;</ion-label>\n      <ion-icon\n        slot=\"end\"\n        src=\"data:image/svg+xml;utf8,%0A%3Csvg xmlns='http://www.w3.org/2000/svg' width='512' height='512' viewBox='0 0 512 512'%3E%3Ctitle%3Eionicons-v5-f%3C/title%3E%3Ccircle cx='256' cy='256' r='48'/%3E%3Ccircle cx='256' cy='416' r='48'/%3E%3Ccircle cx='256' cy='96' r='48'/%3E%3C/svg%3E\"\n        (click)=\"showMoreButtons()\"\n      ></ion-icon>\n    </ion-item>\n  </ion-card-header>\n</ion-card>\n","import {\n  Pipe,\n  PipeTransform,\n  NgZone,\n  ChangeDetectorRef,\n  OnDestroy,\n} from '@angular/core';\n@Pipe({\n  name: 'timeAgo',\n  pure: false,\n})\nexport class TimeAgoPipe implements PipeTransform, OnDestroy {\n  private timer: number;\n  constructor(\n    private changeDetectorRef: ChangeDetectorRef,\n    private ngZone: NgZone\n  ) {}\n  transform(value: string) {\n    this.removeTimer();\n    let d = new Date(value);\n    let now = new Date();\n    let seconds = Math.round(Math.abs((now.getTime() - d.getTime()) / 1000));\n    let timeToUpdate = Number.isNaN(seconds)\n      ? 1000\n      : this.getSecondsUntilUpdate(seconds) * 1000;\n    this.timer = this.ngZone.runOutsideAngular(() => {\n      if (typeof window !== 'undefined') {\n        return window.setTimeout(() => {\n          this.ngZone.run(() => this.changeDetectorRef.markForCheck());\n        }, timeToUpdate);\n      }\n      return null;\n    });\n    let minutes = Math.round(Math.abs(seconds / 60));\n    let hours = Math.round(Math.abs(minutes / 60));\n    let days = Math.round(Math.abs(hours / 24));\n    let months = Math.round(Math.abs(days / 30.416));\n    let years = Math.round(Math.abs(days / 365));\n    if (Number.isNaN(seconds)) {\n      return '';\n    } else if (seconds <= 45) {\n      return 'a few seconds ago';\n    } else if (seconds <= 90) {\n      return 'a minute ago';\n    } else if (minutes <= 45) {\n      return minutes + ' minutes ago';\n    } else if (minutes <= 90) {\n      return 'an hour ago';\n    } else if (hours <= 22) {\n      return hours + ' hours ago';\n    } else if (hours <= 36) {\n      return 'a day ago';\n    } else if (days <= 25) {\n      return days + ' days ago';\n    } else if (days <= 45) {\n      return 'a month ago';\n    } else if (days <= 345) {\n      return months + ' months ago';\n    } else if (days <= 545) {\n      return 'a year ago';\n    } else {\n      // (days > 545)\n      return years + ' years ago';\n    }\n  }\n  ngOnDestroy(): void {\n    this.removeTimer();\n  }\n  private removeTimer() {\n    if (this.timer) {\n      window.clearTimeout(this.timer);\n      this.timer = null;\n    }\n  }\n  private getSecondsUntilUpdate(seconds: number) {\n    let min = 60;\n    let hr = min * 60;\n    let day = hr * 24;\n    if (seconds < min) {\n      // less than 1 min, update every 2 secs\n      return 2;\n    } else if (seconds < hr) {\n      // less than an hour, update every 30 secs\n      return 30;\n    } else if (seconds < day) {\n      // less then a day, update every 5 mins\n      return 300;\n    } else {\n      // update every hour\n      return 3600;\n    }\n  }\n}\n","import { Component, OnInit, EventEmitter, Output, Input } from '@angular/core';\nimport { ActionSheetController, Platform } from '@ionic/angular';\nimport { Browser, OpenOptions } from '@capacitor/browser';\nimport isEmpty from 'lodash-es/isEmpty';\nimport each from 'lodash-es/each';\n\nimport { IAttachmentContentButton } from '../../model/conversation.model';\n\n@Component({\n  selector: 'lib-ari-card-news-attachments',\n  templateUrl: './ari-card-news-attachments.component.html',\n  styleUrls: ['./ari-card-news-attachments.component.scss'],\n})\nexport class AriCardNewsAttachmentsComponent implements OnInit {\n  @Output() sendSelectionEv = new EventEmitter<any>();\n  @Input() attachment: any;\n  imageSrc: string;\n  subtitle: any;\n  title: any;\n  contentText: string;\n\n  constructor(\n    private actionSheetController: ActionSheetController,\n    private plt: Platform\n  ) {}\n\n  ngOnInit() {\n    if (this.attachment) {\n      const content = this.attachment.content;\n\n      if (!isEmpty(content.subtitle)) {\n        this.subtitle = new Date(content.subtitle);\n      }\n\n      if (!isEmpty(content.title)) {\n        this.title = this.truncateString(content.title, 40);\n      }\n\n      if (!isEmpty(content.text)) {\n        this.contentText = this.truncateString(content.text, 150);\n      }\n\n      if (!isEmpty(content.images)) {\n        this.imageSrc = content.images[0].url;\n      }\n    }\n  }\n  truncateString(str, num) {\n    // If the length of str is less than or equal to num\n    // just return str--don't truncate it.\n    if (str.length <= num) {\n      return str;\n    }\n    // Return str truncated with '...' concatenated to the end of str.\n    return str.slice(0, num) + '...';\n  }\n  getFavIconImage(url: string) {\n    if (url) {\n      return 'https://s2.googleusercontent.com/s2/favicons?domain_url=' + url;\n    }\n  }\n\n  hasButtons(content): IAttachmentContentButton[] {\n    return content && !!content.buttons ? content.buttons : null;\n  }\n\n  sendSelection(button) {\n    this.sendSelectionEv.emit(button);\n  }\n\n  async showMoreButtons() {\n    const moreButtons = [];\n    if (this.attachment) {\n      const content = this.attachment.content;\n\n      if (!isEmpty(content.buttons)) {\n        each(content.buttons, (button) => {\n          moreButtons.push({\n            text: button.title,\n            handler: async () => {\n              if (button.type === 'openUrl') {\n                if (this.plt.is('cordova') || this.plt.is('capacitor')) {\n                  const inAppOptions: OpenOptions = {\n                    presentationStyle: 'fullscreen',\n                    windowName: '_blank',\n                    url: button.value,\n                  };\n                  await Browser.open(inAppOptions);\n                } else {\n                  window.open(button.value, '_blank', 'noopener noreferrer');\n                }\n              }\n            },\n          });\n        });\n\n        const actionSheet = await this.actionSheetController.create({\n          buttons: [\n            ...moreButtons,\n            {\n              text: 'Cancel',\n              role: 'cancel',\n              handler: () => {},\n            },\n          ],\n        });\n        await actionSheet.present();\n      }\n    }\n  }\n}\n","<ion-card>\n  <ion-item\n    lines=\"none\"\n    class=\"card-attachments-header ion-no-border\"\n    *ngIf=\"subtitle\"\n  >\n    <ion-thumbnail slot=\"start\">\n      <img [src]=\"imageSrc\" />\n    </ion-thumbnail>\n    <ion-label class=\"ion-text-wrap card-header-label\">\n      <h2 *ngIf=\"title\">\n        {{ title }}\n      </h2>\n      <p>{{ contentText }}</p>\n      <ion-note *ngIf=\"subtitle\">{{ subtitle | timeAgo }}</ion-note>\n    </ion-label>\n    <ion-icon\n      slot=\"end\"\n      src=\"data:image/svg+xml;utf8,%0A%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 512 512'%3E%3Ctitle%3Eionicons-v5-f%3C/title%3E%3Ccircle cx='256' cy='256' r='48'/%3E%3Ccircle cx='256' cy='416' r='48'/%3E%3Ccircle cx='256' cy='96' r='48'/%3E%3C/svg%3E\"\n      (click)=\"showMoreButtons()\"\n    ></ion-icon>\n  </ion-item>\n\n  <ion-card-content\n    class=\"card-body\"\n    *ngIf=\"hasButtons(attachment.content) as buttons\"\n  >\n    <ion-button\n      expand=\"block\"\n      *ngFor=\"let button of buttons\"\n      class=\"ion-button-card\"\n      (click)=\"sendSelection(button)\"\n    >\n      {{ button.title }}\n    </ion-button>\n  </ion-card-content>\n</ion-card>\n","import { Component, OnInit, EventEmitter, Output, Input } from '@angular/core';\nimport { ActionSheetController, Platform } from '@ionic/angular';\nimport { Browser, OpenOptions } from '@capacitor/browser';\nimport isEmpty from 'lodash-es/isEmpty';\nimport each from 'lodash-es/each';\nimport { IAttachmentContentButton } from '../../model/conversation.model';\n\n@Component({\n  selector: 'lib-ari-card-shop-attachments',\n  templateUrl: './ari-card-shop-attachments.component.html',\n  styleUrls: ['./ari-card-shop-attachments.component.scss'],\n})\nexport class AriCardShopAttachmentsComponent implements OnInit {\n  @Output() sendSelectionEv = new EventEmitter<any>();\n  @Input() attachment: any;\n  content: any;\n  contentText: any;\n\n  constructor(\n    private actionSheetController: ActionSheetController,\n    private plt: Platform\n  ) { }\n\n  ngOnInit() {\n    if (this.attachment) {\n      this.content = this.attachment.content;\n      this.contentText = JSON.parse(this.content.text);\n    }\n  }\n\n  hasButtons(content): IAttachmentContentButton[] {\n    return content && !!content.buttons ? content.buttons : null;\n  }\n\n  sendSelection(button) {\n    this.sendSelectionEv.emit(button);\n  }\n\n  async showMoreButtons() {\n    const moreButtons = [];\n    if (this.attachment) {\n      if (!isEmpty(this.content.buttons)) {\n        each(this.content.buttons, (button) => {\n          moreButtons.push({\n            text: button.title,\n            handler: async () => {\n              if (button.type === 'openUrl') {\n                if (this.plt.is('cordova') || this.plt.is('capacitor')) {\n                  const inAppOptions: OpenOptions = {\n                    presentationStyle: 'fullscreen',\n                    windowName: '_blank',\n                    url: button.value,\n                  };\n                  await Browser.open(inAppOptions);\n                } else {\n                  window.open(button.value, '_blank', 'noopener noreferrer');\n                }\n              }\n            },\n          });\n        });\n\n        const actionSheet = await this.actionSheetController.create({\n          buttons: [\n            ...moreButtons,\n            {\n              text: 'Cancel',\n              role: 'cancel',\n              handler: () => { },\n            },\n          ],\n        });\n        await actionSheet.present();\n      }\n    }\n  }\n}\n","<ion-card>\n  <ion-item lines=\"none\" class=\"card-attachments-header ion-no-border\" *ngIf=\"attachment && contentText\">\n    <ion-thumbnail slot=\"start\">\n      <img *ngIf=\"contentText.Images?.length\" [src]=\"contentText.Images[0].Url\" [alt]=\"contentText.Images[0].AltText\" />\n    </ion-thumbnail>\n    <ion-label class=\"ion-text-wrap card-header-label\">\n      <h2 *ngIf=\"contentText.Name\">\n        {{ contentText.Name }}\n      </h2>\n      <p *ngFor=\"let category of contentText.Categories\">{{ category.Name }}</p>\n      <p *ngIf=\"contentText.Business?.length\">{{ contentText.Business[0].Name }}</p>\n    </ion-label>\n  </ion-item>\n\n  <ion-card-content class=\"card-body\">\n    <p class=\"card-description\" [innerHTML]=\"contentText.Highlights\"></p>\n    <p class=\"card-price\" *ngIf=\"contentText?.Prices?.length\">\n      <span class=\"price\" [ngClass]=\"contentText.Prices[0].PercentageDiscount > 0? 'has-discount':''\">{{\n        '$' + contentText.Prices[0].RegularPrice }}</span>\n      <span class=\"price discounted-price\" *ngIf=\"contentText.Prices[0].DiscountPrice > 0 && contentText.Prices[0].PercentageDiscount > 0\">{{\n        '$' + contentText.Prices[0].DiscountPrice }}</span>\n      <span class=\"discounted-percentage\" *ngIf=\"contentText.Prices[0].PercentageDiscount > 0\">{{\n        contentText.Prices[0].PercentageDiscount + '% OFF' }}</span>\n    </p>\n    <ng-container *ngIf=\"hasButtons(attachment.content) as buttons\">\n      <ion-button expand=\"block\" *ngFor=\"let button of buttons\" class=\"ion-button-card\" (click)=\"sendSelection(button)\">\n        {{ button.title }}\n      </ion-button>\n    </ng-container>\n  </ion-card-content>\n</ion-card>\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'lig-ari-loader',\n  templateUrl: './ari-loader.component.html',\n  styleUrls: ['./ari-loader.component.scss'],\n})\nexport class AriLoaderComponent implements OnInit {\n  constructor() {}\n\n  ngOnInit() {}\n}\n","<ion-toolbar transparent class=\"transparent ion-no-border\">\n  <div class=\"ari-speech-toolbar-loading\">\n    <div id=\"container\">\n      <span class=\"blue ball\"></span>\n      <span class=\"red ball\"></span>\n      <span class=\"yellow ball\"></span>\n      <span class=\"green ball\"></span>\n    </div>\n  </div>\n</ion-toolbar>\n","import {\n  Component,\n  OnInit,\n  ElementRef,\n  ViewChild,\n  Input,\n  ChangeDetectorRef,\n  NgZone,\n} from '@angular/core';\nimport { Chart, registerables } from 'chart.js';\n\nChart.register(...registerables)\n\n@Component({\n  selector: 'lib-ari-chart',\n  templateUrl: './ari-chart.component.html',\n  styleUrls: ['./ari-chart.component.scss'],\n})\nexport class AriChartComponent implements OnInit {\n  @Input() goal: any;\n  @ViewChild('myChart') canvasRef: ElementRef;\n\n  doneTaskCount: number;\n  completionPct: number;\n  hideChart: boolean;\n\n  canvas: any;\n  ctx: any;\n\n  myChart: any = [];\n  myChartData: any = {};\n\n  constructor(private cdRef: ChangeDetectorRef, private zone: NgZone) {\n    this.hideChart = true;\n    this.completionPct = 0;\n    this.doneTaskCount = 0;\n  }\n\n  ngOnInit() { }\n\n  ngAfterViewInit() {\n    setTimeout(() => {\n      this.loadChart();\n    }, 900);\n    this.cdRef.detectChanges();\n  }\n\n  private loadChart(): void {\n    const vm = this;\n    if (this.canvasRef) {\n      this.ctx = this.canvasRef.nativeElement.getContext('2d');\n      const gradients = [];\n      // const gradient = this.ctx.createLinearGradient(0, 0, 80, 80);\n      let colorBackground = '';\n      if (this.goal) {\n        if (this.goal.GoalDetails) {\n          switch (this.goal.GoalDetails.Ari_Color) {\n            case 1:\n              // Red\n              colorBackground = '#F64D4B';\n              gradients.push(colorBackground);\n              break;\n            case 2:\n              // Blue\n              colorBackground = '#1D57A4';\n              gradients.push(colorBackground);\n              break;\n            case 3:\n              // Amber\n              colorBackground = '#FAC441';\n              gradients.push(colorBackground);\n              break;\n            case 4:\n              // Green\n              colorBackground = '#309DA6';\n              gradients.push(colorBackground);\n              break;\n            case 5:\n              // Gray\n              colorBackground = '#6E7E81';\n              gradients.push(colorBackground);\n              break;\n            default:\n              // life\n              colorBackground = '#1D57A4';\n              gradients.push(colorBackground);\n          }\n        } else {\n          colorBackground = '#6E7E81';\n          gradients.push(colorBackground);\n        }\n\n        if (this.goal.GoalDetails) {\n          this.zone.run(() => {\n            const doneTaskCount = this.goal.GoalDetails.Tasks_Done;\n            this.doneTaskCount = isNaN(doneTaskCount) ? 0 : doneTaskCount;\n\n            const completionPct = this.goal.GoalDetails.PercentCompleted;\n            this.completionPct = isNaN(completionPct) ? 0 : completionPct;\n          });\n          const remainingPct = 100 - this.completionPct;\n\n          const config: any = {\n            type: 'doughnut',\n            data: {\n              datasets: [\n                {\n                  data: [this.completionPct, remainingPct],\n                  backgroundColor: [gradients[0], \"#E5E5E5\"],\n                  hoverBackgroundColor: gradients,\n                  borderWidth: [0, 0],\n                  borderRadius: [this.completionPct > 99 ? 0 : 20, 0],\n                },\n              ],\n            },\n            options: {\n              events: [],\n              responsive: true,\n              cutout: '65%',\n              tooltips: false,\n              legend: {\n                display: false,\n              },\n              animation: {\n                animateScale: true,\n                duration: 0, // general animation time\n                animateRotate: false,\n                onComplete: () => {\n                  vm.hideChart = false;\n                },\n              },\n              responsiveAnimationDuration: 0, // animation duration after a resize\n            },\n            plugins: [{\n              id: 'text',\n              beforeDraw: (chart, a, b) => {\n                var width = chart.width,\n                  height = chart.height,\n                  ctx = chart.ctx;\n\n                ctx.restore();\n                ctx.fontSize = 12;\n                ctx.fontFamily = \"'Helvetica', sans-serif\";\n                ctx.textBaseline = \"top\";\n                ctx.fillStyle = this.completionPct > 0 ? gradients[0] : \"#6E7E81\";\n                ctx.fontWeight = 500;\n                var text = this.completionPct + '%',\n                  textX = Math.round((width - ctx.measureText(text).width) / 2),\n                  textY = height / 2;\n\n                ctx.fillText(text, textX, textY);\n                ctx.save();\n              }\n            }]\n          };\n          this.myChart = new Chart(this.ctx, config);\n          this.myChart.update();\n        }\n      }\n    }\n  }\n\n  getGoalPercentage(category: number) {\n    switch (category) {\n      case 1:\n        return 'fill-text-red';\n        break;\n      case 2:\n        return 'fill-text-blue';\n        break;\n      case 3:\n        return 'fill-text-amber';\n        break;\n      case 4:\n        return 'fill-text-green';\n        break;\n      case 5:\n        return 'fill-text-grey';\n        break;\n      default:\n        return 'fill-text-grey';\n    }\n  }\n\n  getGoalPercentageColor(category: number) {\n    switch (category) {\n      case 1:\n        return '#F64D4B';\n        break;\n      case 2:\n        return '#1D57A4';\n        break;\n      case 3:\n        return '#FAC441';\n        break;\n      case 4:\n        return '#309DA6';\n        break;\n      case 5:\n        return '#6E7E81';\n        break;\n      default:\n        return '#6E7E81';\n    }\n  }\n}\n","<div class=\"chart-panel\" [hidden]=\"hideChart\">\n  <canvas #myChart height=\"80\" width=\"80\"></canvas>\n</div>","import { Pipe, PipeTransform } from '@angular/core';\nimport { TaskColour } from '../model/task.model';\n\n@Pipe({\n  name: 'colourClass',\n})\nexport class TaskColorPipe implements PipeTransform {\n  transform(value: number, args?: string): any {\n    if (typeof value === 'number') {\n      if (args && (args.includes('ari') || args.includes('board'))) {\n        if (!args.includes('board')) {\n          switch (value) {\n            case TaskColour.Amber:\n              return 'card-ari--amber';\n            case TaskColour.Blue:\n              return 'card-ari--blue';\n            case TaskColour.Green:\n              return 'card-ari--green';\n            case TaskColour.Grey:\n              return 'card-ari--grey';\n            case TaskColour.Red:\n              return 'card-ari--red';\n            case TaskColour.Yellow:\n              return 'card-ari--yellow';\n            case TaskColour.Black:\n              return 'card-ari--black';\n          }\n        } else {\n          switch (value) {\n            case TaskColour.Amber:\n              return 'board-ari--amber';\n            case TaskColour.Blue:\n              return 'board-ari--blue';\n            case TaskColour.Green:\n              return 'board-ari--green';\n            case TaskColour.Grey:\n              return 'board-ari--grey';\n            case TaskColour.Red:\n              return 'board-ari--red';\n            case TaskColour.Yellow:\n              return 'board-ari--amber';\n            case TaskColour.Black:\n              return 'board-ari--black';\n          }\n        }\n      }\n      if (args && args.includes('icon')) {\n        switch (value) {\n          case TaskColour.Amber:\n            return 'card-ari-icon--amber';\n          case TaskColour.Blue:\n            return 'card-ari-icon--blue';\n          case TaskColour.Green:\n            return 'card-ari-icon--green';\n          case TaskColour.Grey:\n            return 'card-ari-icon--grey';\n          case TaskColour.Red:\n            return 'card-ari-icon--red';\n          case TaskColour.Yellow:\n            return 'card-ari-icon--yellow';\n        }\n      } else {\n        switch (value) {\n          case TaskColour.Amber:\n            return 'my-card--amber';\n          case TaskColour.Blue:\n            return 'my-card--blue';\n          case TaskColour.Green:\n            return 'my-card--green';\n          case TaskColour.Grey:\n            return 'my-card--grey';\n          case TaskColour.Red:\n            return 'my-card--red';\n          case TaskColour.Yellow:\n            return 'my-card--yellow';\n        }\n      }\n    }\n\n    return null;\n  }\n}\n","import { Component, OnInit, Input, Output, EventEmitter, ChangeDetectorRef } from '@angular/core';\nimport { cloneDeep } from 'lodash-es';\nimport { reminders, TaskStatus } from '../../model/task.model';\nimport { AriBotService } from '../../services/ari-bot.service';\n\n@Component({\n  selector: 'lig-ari-tasks',\n  templateUrl: './ari-tasks.component.html',\n  styleUrls: ['./ari-tasks.component.scss'],\n})\nexport class AriTasksComponent implements OnInit {\n  @Output() sendSelectionEv = new EventEmitter<any>();\n  @Output() sendActionMessageEv = new EventEmitter<any>();\n  @Input() attachment: any;\n  task: any;\n  goal: any;\n  taskId: any;\n  categoryIcon: any;\n  goalCategory: any;\n  buttonTitle: any;\n  reminders = reminders;\n  oneDay = 1000 * 60 * 60 * 24;\n  showActions = false;\n  taskStatus = TaskStatus;\n  taskLabelStatus: string;\n  showLoading = false;\n  isTask = false;\n  isGoal = false;\n  constructor(private ariBotService: AriBotService, private cdRef: ChangeDetectorRef) { }\n\n  ngOnInit(): void {\n    let response = JSON.parse(this.attachment.content.text);\n\n    if (response) {\n      if (response.CategoryId)\n      {\n        this.goal = response;\n        this.isGoal = true;\n      }\n      else\n      {\n        this.task = response;\n        this.isTask = true;\n      }\n      // response.categoryId ? (this.goal = response) : (this.task = response);\n    }\n    if (this.attachment.content && this.attachment.content.buttons) {\n      this.buttonTitle = this.attachment.content.buttons[0].title;\n    }\n    this.getGoalIcon();\n    this.getReminders();\n    if (this.task) {\n      this.task.dateString = this.getTaskDate();\n      this.getTasksStatus();\n    }\n  }\n\n  onExpand(task: any): void {\n    this.taskId = task.Id;\n    task.expanded = !task.expanded;\n    this.showActions = !this.showActions;\n  }\n\n  getTaskDoneText(doneCount) {\n    return doneCount > 1 ? 'Tasks Done' : 'Task Done';\n  }\n\n  getTasksStatus() {\n    switch (this.task.StatusId) {\n      case TaskStatus.Unscheduled:\n        this.taskLabelStatus = 'Unscheduled';\n        break;\n      case TaskStatus.Later:\n        this.taskLabelStatus = 'Later';\n        break;\n      case TaskStatus.Todo:\n        this.taskLabelStatus = 'To do';\n        break;\n      case TaskStatus.Doing:\n        this.taskLabelStatus = 'Doing';\n        break;\n      case TaskStatus.Done:\n        this.taskLabelStatus = 'Done';\n        break;\n    }\n  }\n\n  getGoalIcon() {\n    let goal_id;\n    if (this.isTask)\n    {\n      goal_id = this.task.Goal.CategoryId;\n    }\n    else\n    {\n      goal_id = this.goal.CategoryId;\n    }\n    // this.task\n    //   ? (goal_id = this.task.goal.categoryId)\n    //   : (goal_id = this.goal.categoryId);\n\n    switch (goal_id) {\n      case 1:\n        this.categoryIcon = 'icon-life';\n        this.goalCategory = 'Personal Life';\n        break;\n      case 2:\n        this.categoryIcon = 'icon-health';\n        this.goalCategory = 'Self-care and Wellness';\n        break;\n      case 3:\n        this.categoryIcon = 'icon-work';\n        this.goalCategory = 'Work and Career';\n        break;\n      case 4:\n        this.categoryIcon = 'icon-finance';\n        this.goalCategory = 'Financials';\n        break;\n      default:\n        this.categoryIcon = 'icon-life';\n        this.goalCategory = 'Personal Life';\n    }\n  }\n\n  sendSelection() {\n    // console.log(\"sendSelection\", this.attachment.content.buttons[0]);\n    this.sendSelectionEv.emit(this.attachment.content.buttons[0]);\n    // this.sendSelectionEv.emit(this.attachment.content.buttons[0].value);\n  }\n\n  getReminders() {\n    if (this.task && this.task.RemindMe) {\n      this.reminders.filter((e: any) => {\n        if (e.id === this.task.ReminderTimeId) {\n          this.task.ReminderTime = e.name + ' before';\n          return e;\n        }\n      });\n    }\n  }\n\n  showStatusActions() {\n    this.showActions = !this.showActions;\n  }\n\n  async moveTo(status: TaskStatus) {\n    this.showLoading = !this.showLoading;\n    const taskMoveResponse = await this.ariBotService.taskMoveTo({\n      statusId: status,\n      taskId: this.task.Id,\n    });\n    if (taskMoveResponse) {\n      if (taskMoveResponse.data.code === undefined) {\n        this.task = cloneDeep(taskMoveResponse.data);\n        this.getReminders();\n        if (this.task) {\n          this.task.dateString = this.getTaskDate();\n          this.getTasksStatus();\n        }\n      }\n      let messagePayload = {\n        channelId: \"directline\",\n        from: { id: \"AriBotChannelDev\", name: \"TaskSpur-Ari-Channel-Dev\" },\n        inputHint: \"expectingInput\",\n        text: taskMoveResponse.toast.message,\n        type: \"message\"\n      };\n      this.sendActionMessageEv.emit(messagePayload);\n      this.showLoading = !this.showLoading;\n    }\n  }\n\n  async deleteTask() {\n    this.showLoading = !this.showLoading;\n    const deleteTask = await this.ariBotService.taskTrash(this.task.Id);\n    this.task.deleted = deleteTask;\n    setTimeout(() => {\n      this.showLoading = !this.showLoading;\n    }, 1000);\n  }\n  // DATE\n  getTaskDate() {\n    if (this.task && this.task.StartOn) {\n      let startTime = this.task.StartOn.Time\n        ? new Date(\n          new Date().setHours(\n            this.task.StartOn.Time.substring(0, 2),\n            this.task.StartOn.Time.substring(3, 5)\n          )\n        )\n        : null;\n      let endTime: any;\n      let at: any;\n      let dueDate: any;\n      if (this.task.EndOn) {\n        endTime = this.task.EndOn.Time\n          ? new Date(\n            new Date().setHours(\n              this.task.EndOn.Time.substring(0, 2),\n              this.task.EndOn.Time.substring(3, 5)\n            )\n          )\n          : null;\n        at = this.formatAMPM(endTime);\n        dueDate = () => {\n          if (this.isYesterday(this.task.EndOn.Date)) {\n            return 'Yesterday' + at;\n          } else if (this.isToday(this.task.EndOn.Date)) {\n            return 'Today' + at;\n          } else if (this.isTomorrow(this.task.EndOn.Date)) {\n            return 'Tomorrow' + at;\n          } else {\n            return new Date(this.task.EndOn.Date).toDateString() + at;\n          }\n        };\n      }\n      if (this.isYesterday(this.task.StartOn.Date)) {\n        return `Started Yesterday Due ${dueDate()}`;\n      } else if (this.isToday(this.task.StartOn.Date)) {\n        return `Starting Today ${this.formatAMPM(startTime)} Due ${dueDate()}`;\n      } else if (this.isTomorrow(this.task.StartOn.Date)) {\n        return `Starting Tomorrow ${this.formatAMPM(\n          startTime\n        )} Due ${dueDate()}`;\n      } else if (this.isDayAfterTomorrow(this.task.StartOn.Date)) {\n        return `Starting ${new Date(\n          this.task.StartOn.Date\n        ).toDateString()} Due ${dueDate()}`;\n      } else {\n        return `Started ${new Date(\n          this.task.StartOn.Date\n        ).toDateString()} Due ${dueDate()}`;\n      }\n    }\n  }\n\n  isYesterday(startDate) {\n    const date: any = this.getMidnight(new Date(startDate));\n    const midnightTonight: any = this.getMidnight(new Date());\n    const midnightYesterday = new Date(midnightTonight.getTime() - this.oneDay);\n    return date.toDateString() === midnightYesterday.toDateString();\n  }\n\n  isToday(startDate) {\n    const date: any = this.getMidnight(new Date(startDate));\n    const midnightTonight: any = this.getMidnight(new Date());\n    const midnightTomorrow = new Date(midnightTonight.getTime() + this.oneDay);\n    return (\n      date.toDateString() === midnightTonight.toDateString() &&\n      date.toDateString() !== midnightTomorrow.toDateString()\n    );\n  }\n\n  isTomorrow(startDate) {\n    const date: any = this.getMidnight(new Date(startDate));\n    const midnightTonight: any = this.getMidnight(new Date());\n    const midnightTomorrow = new Date(midnightTonight.getTime() + this.oneDay);\n    return date.toDateString() === midnightTomorrow.toDateString();\n  }\n\n  isDayAfterTomorrow(startDate) {\n    const date: any = this.getMidnight(new Date(startDate));\n    const midnightTomorrow: any = this.getMidnight(\n      new Date(Date.now() + this.oneDay)\n    );\n    return date > midnightTomorrow;\n  }\n  getMidnight(day) {\n    const date = new Date(day);\n    date.setMilliseconds(999);\n    date.setSeconds(59);\n    date.setMinutes(59);\n    date.setHours(23);\n    return date;\n  }\n  formatAMPM(inputDate) {\n    if (inputDate) {\n      let date: any = new Date(inputDate);\n      var hours = date.getHours();\n      var minutes = date.getMinutes();\n      var ampm = hours >= 12 ? 'pm' : 'am';\n      hours = hours % 12;\n      hours = hours ? hours : 12; // the hour '0' should be '12'\n      minutes = minutes < 10 ? '0' + minutes : minutes;\n      var strTime = hours + ':' + minutes + ' ' + ampm;\n      return ' at ' + strTime;\n    }\n\n    return '';\n  }\n\n  // capitalizeFirstLetter(string) {\n  //   return string.charAt(0).toUpperCase() + string.slice(1);\n  // }\n}\n","<ng-container *ngIf=\"task\">\n  <ion-card id=\"card-{{ task.Id }}\" class=\"ion-no-margin task-card\"\n    [ngClass]='task.TaskDetails?.Ari_Color | colourClass' [class.deleted]=\"task.deleted\"\n    [class.show_more]=\"task.expanded\">\n    <ion-card-header class=\"mc-header\" (click)=\"onExpand(task)\">\n      <ion-card-title>{{ task.Name }}</ion-card-title>\n      <ion-card-subtitle class=\"margin-top-10\" *ngIf=\"task.Goal?.Name\">\n        {{ task.Goal?.Name }} • {{ taskLabelStatus }}\n        <span *ngIf=\"task.Goal?.Name && task.IsArchived\">\n          &nbsp; {{ task.status?.text }}</span>\n      </ion-card-subtitle>\n    </ion-card-header>\n    <ion-card-content (click)=\"onExpand(task)\">\n      <div *ngIf=\"task.Description\">\n        <p [class.expanded]=\"task.expanded\" class=\"mc-body-desc-text\">\n          {{ task.Description }}\n        </p>\n      </div>\n      <div class=\"task-date\">\n        <p class=\"{{\n            task.EndDateText?.Color | colourClass: 'ari-message'\n          }}\"> {{ task.StartDateText?.Text }}</p>\n        <p class=\"{{\n            task.EndDateText?.Color | colourClass: 'ari-message'\n          }}\"> {{ task.EndDateText?.Text }}</p>\n      </div>\n    </ion-card-content>\n    <ion-row (click)=\"onExpand(task)\">\n      <ion-col class=\"col-ari\">\n        <ng-container *ngIf=\"task.RemindMe\">\n          <div class=\"ion-text-left\">\n            <div class=\"task-reminder\">\n              <span>\n                <lig-ari-icon class=\"ari-icon\" [name]=\"'clock'\"></lig-ari-icon>{{ task.ReminderTime }}\n              </span>\n            </div>\n          </div>\n        </ng-container>\n        <ng-container *ngIf=\"task.TaskDetails\">\n          <div class=\"ion-text-left ari-message\">\n            <span class=\"card-ari-icon {{\n                task.TaskDetails?.Ari_Color | colourClass: 'icon-message'\n              }}\">\n              <lig-ari-icon *ngIf=\"task.TaskDetails?.Ari_Color === 4\" class=\"ari-icon\" [name]=\"'success'\">\n              </lig-ari-icon>\n              <lig-ari-icon *ngIf=\"task.TaskDetails?.Ari_Color === 2\" class=\"ari-icon\" [name]=\"'info'\"></lig-ari-icon>\n              <lig-ari-icon *ngIf=\"task.TaskDetails?.Ari_Color === 3\" class=\"ari-icon\" [name]=\"'warning'\">\n              </lig-ari-icon>\n              <lig-ari-icon *ngIf=\"task.TaskDetails?.Ari_Color === 1\" class=\"ari-icon\" [name]=\"'danger'\">\n              </lig-ari-icon>\n            </span>\n            <span class=\"card-ari {{\n                task.TaskDetails?.Ari_Color | colourClass: 'ari-message'\n              }}\">\n              {{ task.TaskDetails?.Ari_Message }}\n            </span>\n          </div>\n        </ng-container>\n      </ion-col>\n    </ion-row>\n    <div class=\"status-actions\" *ngIf=\"showActions\">\n      <lig-ari-loader *ngIf=\"showLoading\"></lig-ari-loader>\n      <div class=\"statuses\" *ngIf=\"!showLoading\">\n        <button (click)=\"moveTo(taskStatus.Later)\" *ngIf=\"\n            task.StatusId !== taskStatus.Later &&\n            task.StatusId !== taskStatus.Unscheduled\n          \">\n          <lig-ari-icon class=\"status-icon\" [name]=\"'arrow_later'\"></lig-ari-icon><span>Later</span>\n        </button>\n        <button (click)=\"moveTo(taskStatus.Todo)\" *ngIf=\"task.StatusId !== taskStatus.Todo\">\n          <lig-ari-icon class=\"status-icon\" [name]=\"'arrow_todo'\"></lig-ari-icon><span>To do</span>\n        </button>\n        <button (click)=\"moveTo(taskStatus.Doing)\" *ngIf=\"task.StatusId !== taskStatus.Doing\">\n          <lig-ari-icon class=\"status-icon\" [name]=\"'arrow_doing'\"></lig-ari-icon><span>Doing</span>\n        </button>\n        <button (click)=\"moveTo(taskStatus.Done)\" *ngIf=\"task.StatusId !== taskStatus.Done\">\n          <lig-ari-icon class=\"status-icon\" [name]=\"'arrow_done'\"></lig-ari-icon><span>Done</span>\n        </button>\n        <button (click)=\"deleteTask()\">\n          <lig-ari-icon class=\"status-icon\" [name]=\"'trash'\"></lig-ari-icon><span>Trash</span>\n        </button>\n      </div>\n    </div>\n    <div class=\"priority\">\n      <!-- // COMMENTED FOR NOW -->\n      <!-- <div class=\"priority-statuses\">\n        <span (click)=\"showStatusActions()\">\n          <lig-ari-icon class=\"size-icon\" [name]=\"'expand_icon'\"></lig-ari-icon>\n        </span>\n      </div> -->\n      <div class=\"priority-statuses\" *ngIf=\"task.RecurringTextInfo\">\n        <span [ngSwitch]=\"task.RecurringTextInfo?.color\">\n          <lig-ari-icon *ngSwitchCase=\"1\" class=\"size-icon\" [name]=\"'recurring_icon_red'\">\n          </lig-ari-icon>\n          <lig-ari-icon *ngSwitchCase=\"2\" class=\"size-icon\" [name]=\"'recurring_icon_blue'\">\n            <lig-ari-icon *ngSwitchCase=\"3 || 6\" class=\"size-icon\" [name]=\"'recurring_icon_amber'\">\n            </lig-ari-icon>\n          </lig-ari-icon>\n          <lig-ari-icon *ngSwitchCase=\"4\" class=\"size-icon\" [name]=\"'recurring_icon_green'\">\n          </lig-ari-icon>\n          <lig-ari-icon *ngSwitchDefault class=\"size-icon\" [name]=\"'recurring_icon'\">\n          </lig-ari-icon>\n        </span>\n      </div>\n      <div class=\"priority-statuses\" *ngIf=\"task?.RescheduledCount > 0\">\n        <span class=\"rechedule-icon\">\n          <lig-ari-icon *ngIf=\"task?.RescheduledCount <= 2\" class=\"size-icon\" [name]=\"'reschedule_icon_teal'\">\n          </lig-ari-icon>\n          <lig-ari-icon *ngIf=\"task?.RescheduledCount >= 3 && task?.RescheduledCount <= 5\" class=\"size-icon\"\n            [name]=\"'reschedule_icon_amber'\"></lig-ari-icon>\n          <lig-ari-icon *ngIf=\"task?.RescheduledCount >= 6\" class=\"size-icon\" [name]=\"'reschedule_icon_red'\">\n          </lig-ari-icon>\n\n          <b class=\"badge\" [class.primary-point]=\"task?.RescheduledCount <= 2\" [class.secondary-point]=\"\n                  task?.RescheduledCount >= 3 && task?.RescheduledCount <= 5\n                \" [class.tertiary-point]=\"task?.RescheduledCount >= 6\">{{ task.RescheduledCount > 9 ? '9+' :\n            task.RescheduledCount }}</b>\n        </span>\n      </div>\n      <div class=\"priority-statuses\">\n        <span *ngIf=\"task.Goal?.Name\">\n          <ion-badge class=\"goal-badge\">\n            <lig-ari-icon class=\"goal-icon\" [name]=\"categoryIcon\"></lig-ari-icon>\n          </ion-badge>\n        </span>\n      </div>\n      <div class=\"priority-statuses\">\n        <div [ngSwitch]=\"task.PriorityId\">\n          <span *ngSwitchCase=\"1\">\n            <lig-ari-icon class=\"size-icon\" [name]=\"'priority-low'\"></lig-ari-icon>\n          </span>\n          <span *ngSwitchCase=\"2\">\n            <lig-ari-icon class=\"size-icon\" [name]=\"'priority-medium'\"></lig-ari-icon>\n          </span>\n          <span *ngSwitchCase=\"3\">\n            <lig-ari-icon class=\"size-icon\" [name]=\"'priority-high'\"></lig-ari-icon>\n          </span>\n          <span *ngSwitchDefault></span>\n        </div>\n      </div>\n    </div>\n    <ion-button *ngIf=\"attachment.content.buttons\" expand=\"block\" fill=\"clear\" class=\"suggested-action-button\"\n      (click)=\"sendSelection()\">\n      {{ buttonTitle }}\n    </ion-button>\n  </ion-card>\n</ng-container>\n<!-- ------------------------------ -->\n<!-- ------------------------------ -->\n<!-- ------------------------------ -->\n<!-- GOALS -->\n<!-- ------------------------------ -->\n<!-- ------------------------------ -->\n<!-- ------------------------------ -->\n<ion-card *ngIf=\"goal\" class=\"mobile-bc-card\">\n  <ion-card-content class=\"p-0\">\n    <div class=\"bc-content\">\n      <div class=\"board-chart\">\n        <lib-ari-chart [goal]=\"goal\"></lib-ari-chart>\n      </div>\n      <div class=\"bc-title\">\n        <h5>{{ goal.Name }}</h5>\n        <p>\n          {{ goal.GoalDetails?.Tasks_Done }}/{{ goal.GoalDetails?.Tasks_Total }}\n          {{ getTaskDoneText(goal.GoalDetails?.Tasks_Done) }}\n        </p>\n      </div>\n    </div>\n  </ion-card-content>\n  <div class=\"bc-footer\">\n    <ng-container>\n      <div class=\"bc-card__more-info\">\n        <!-- <p class=\"bc-card__description\">\n          {{ truncateToEllipse(goal.description, 75) }}\n        </p> -->\n        <p class=\"bc-card__due-task\" *ngIf=\"goal?.DueDateText\"\n          [ngClass]=\"goal?.DueDateText?.Color | colourClass: 'board-ari'\">\n          {{ goal?.DueDateText?.Text }}\n        </p>\n      </div>\n    </ng-container>\n    <div class=\"footer-ari\">\n      <ng-container *ngIf=\"goal.GoalDetails\">\n        <span class=\"board-ari-icon\" [ngClass]=\"goal.GoalDetails?.Ari_Color | colourClass: 'icon-message'\">\n          <lig-ari-icon *ngIf=\"goal.GoalDetails?.Ari_Color === 4\" class=\"ari-icon\" [name]=\"'success'\"></lig-ari-icon>\n          <lig-ari-icon *ngIf=\"goal.GoalDetails?.Ari_Color === 2\" class=\"ari-icon\" [name]=\"'info'\"></lig-ari-icon>\n          <lig-ari-icon *ngIf=\"goal.GoalDetails?.Ari_Color === 3\" class=\"ari-icon\" [name]=\"'warning'\"></lig-ari-icon>\n          <lig-ari-icon *ngIf=\"goal.GoalDetails?.Ari_Color === 5\" class=\"ari-icon\" [name]=\"'grey'\"></lig-ari-icon>\n          <lig-ari-icon *ngIf=\"goal.GoalDetails?.Ari_Color === 1\" class=\"ari-icon\" [name]=\"'danger'\"></lig-ari-icon>\n        </span>\n        <span class=\"board-ari\" [ngClass]=\"goal.GoalDetails?.Ari_Color | colourClass: 'board-ari'\">\n          {{ goal.GoalDetails?.Ari_Message }}\n        </span>\n      </ng-container>\n    </div>\n    <!-- <span class=\"subtitle\" *ngIf=\"attachment.content.subtitle\">\n      <lig-ari-icon class=\"ari-icon\" [name]=\"'info'\"></lig-ari-icon><span>{{ attachment.content.subtitle }}</span>\n    </span> -->\n  </div>\n  <div class=\"priority\">\n    <div class=\"priority-statuses\">\n    </div>\n    <div class=\"priority-statuses\">\n      <span>\n        <ion-badge class=\"goal-badge\">\n          <lig-ari-icon [type]=\"'goal'\" class=\"goal-icon\" [name]=\"categoryIcon\"></lig-ari-icon>\n        </ion-badge>\n      </span>\n    </div>\n    <div class=\"priority-statuses\">\n      <div [ngSwitch]=\"goal.PriorityId\">\n        <span *ngSwitchCase=\"1\">\n          <lig-ari-icon class=\"size-icon\" [name]=\"'priority-low'\"></lig-ari-icon>\n        </span>\n        <span *ngSwitchCase=\"2\">\n          <lig-ari-icon class=\"size-icon\" [name]=\"'priority-medium'\"></lig-ari-icon>\n        </span>\n        <span *ngSwitchCase=\"3\">\n          <lig-ari-icon class=\"size-icon\" [name]=\"'priority-high'\"></lig-ari-icon>\n        </span>\n        <span *ngSwitchDefault></span>\n      </div>\n    </div>\n  </div>\n  <!-- <div class=\"bc-footer\">\n    <div class=\"goal-icon\">\n      <span class=\"card-category\">\n        <lig-ari-icon [type]=\"'goal'\" [name]=\"categoryIcon\"></lig-ari-icon>\n      </span>\n      <div class=\"card-priority\" [ngSwitch]=\"goal.priorityId\">\n        <span *ngSwitchCase=\"1\">\n          <lig-ari-icon class=\"size-icon\" [name]=\"'priority-low'\"></lig-ari-icon>\n        </span>\n        <span *ngSwitchCase=\"2\">\n          <lig-ari-icon class=\"size-icon\" [name]=\"'priority-medium'\"></lig-ari-icon>\n        </span>\n        <span *ngSwitchCase=\"3\">\n          <lig-ari-icon class=\"size-icon\" [name]=\"'priority-high'\"></lig-ari-icon>\n        </span>\n        <span *ngSwitchDefault></span>\n      </div>\n    </div>\n  </div> -->\n  <ion-button *ngIf=\"attachment.content.buttons\" expand=\"block\" fill=\"clear\" class=\"suggested-action\"\n    (click)=\"sendSelection()\">\n    {{ buttonTitle }}\n  </ion-button>\n</ion-card>\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'lig-ari-show-cards',\n  templateUrl: './ari-show-cards.component.html',\n  styleUrls: ['./ari-show-cards.component.scss']\n})\nexport class AriShowCardsComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<ion-card class=\"ion-no-padding card-attachments\">\n  <ion-card-content class=\"card-body-text\">\n    Would you like to see more results?\n  </ion-card-content>\n\n  <ion-card-content class=\"card-body\">\n    <ion-button expand=\"block\" class=\"ion-button-card\"> Click here </ion-button>\n  </ion-card-content>\n</ion-card>","import { Component, OnInit, EventEmitter, Output, Input } from '@angular/core';\n\n@Component({\n  selector: 'lig-ari-error',\n  templateUrl: './ari-error.component.html',\n  styleUrls: ['./ari-error.component.scss'],\n})\nexport class AriErrorComponent implements OnInit {\n  @Input() errorResponse: any;\n  showMessage: any = false;\n\n  constructor() {}\n\n  @Output() onClick = new EventEmitter<any>();\n\n  ngOnInit() {}\n\n  tryAgainEv(ev: any) {\n    this.onClick.emit(ev);\n  }\n}\n","<div class=\"error-card\">\n  <img\n    class=\"warning_error\"\n    src=\"data:image/svg+xml;utf8,%3C%3Fxml version='1.0' encoding='iso-8859-1'%3F%3E%3C!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --%3E%3Csvg version='1.1' id='Capa_1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 451.74 451.74' style='enable-background:new 0 0 451.74 451.74;' xml:space='preserve'%3E%3Cpath style='fill:%23E24C4B;' d='M446.324,367.381L262.857,41.692c-15.644-28.444-58.311-28.444-73.956,0L5.435,367.381 c-15.644,28.444,4.267,64,36.978,64h365.511C442.057,429.959,461.968,395.825,446.324,367.381z'/%3E%3Cpath style='fill:%23FFFFFF;' d='M225.879,63.025l183.467,325.689H42.413L225.879,63.025L225.879,63.025z'/%3E%3Cg%3E%3Cpath style='fill:%233F4448;' d='M196.013,212.359l11.378,75.378c1.422,8.533,8.533,15.644,18.489,15.644l0,0 c8.533,0,17.067-7.111,18.489-15.644l11.378-75.378c2.844-18.489-11.378-34.133-29.867-34.133l0,0 C207.39,178.225,194.59,193.87,196.013,212.359z'/%3E%3Ccircle style='fill:%233F4448;' cx='225.879' cy='336.092' r='17.067'/%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3C/svg%3E%0A\"\n    alt=\"Error Warning\"\n  />\n  <div class=\"error-header\">\n    <h3>We're sorry</h3>\n    <h4>We've run into an issue</h4>\n  </div>\n\n  <div class=\"error-body\">\n    <div *ngIf=\"showMessage\" class=\"ion-text-center ion-padding\">\n      {{ errorResponse.error?.message }}\n    </div>\n    <div class=\"error-button\">\n      <button size=\"small\" (click)=\"tryAgainEv($event)\">Try again</button>\n    </div>\n    <span class=\"error-label\">\n      If it doesn't work, try closing and re-opening the page.</span\n    >\n  </div>\n</div>\n","import {\n  Component,\n  OnInit,\n  Input,\n  EventEmitter,\n  Output,\n  ViewChild,\n  Inject,\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { Platform, IonInput } from '@ionic/angular';\nimport { SpeechRecognition as TSpeechRecognition } from '@ionic-native/speech-recognition/ngx';\n\nimport { AriSpeechService } from '../../services/ari-speech.service';\nimport { AriConfig, AriConfigService } from '../../model/ari-bot.mode';\n\n@Component({\n  selector: 'lig-ari-chat-toolbar',\n  templateUrl: './ari-chat-toolbar.component.html',\n  styleUrls: ['./ari-chat-toolbar.component.scss'],\n})\nexport class AriChatToolbarComponent implements OnInit {\n  @Input() form: FormGroup;\n  @Input() showLoading: boolean;\n  @Input() activatedByVoice: boolean;\n\n  @Output() sendEvent = new EventEmitter<any>();\n  @Output() startListeningEvent = new EventEmitter<any>();\n\n  isSpeechSupported: boolean;\n\n  @ViewChild(IonInput) userInput: IonInput;\n  buttonColor = '#1D57A4';\n  constructor(\n    private plt: Platform,\n    private ariSpeechService: AriSpeechService,\n    private speechRecognition: TSpeechRecognition,\n    @Inject(AriConfigService) private config: AriConfig\n  ) {\n    if (config.settings) {\n      this.buttonColor = config.settings.theme;\n    }\n  }\n\n  ngOnInit() {\n    if (this.plt.is('cordova') || this.plt.is('capacitor')) {\n      this.plt.ready().then(() => {\n        this.speechRecognition\n          .hasPermission()\n          .then((hasPermission: boolean) => {\n            console.log('Line 54: Permission:', hasPermission);\n            if (!hasPermission) {\n              this.speechRecognition.requestPermission().then(\n                () => {\n                  this.speechRecognition.isRecognitionAvailable().then(\n                    (available: boolean) => {\n                      console.log('Line 60: Permission:', available);\n                      this.isSpeechSupported = available;\n                    },\n                    () => {\n                      this.isSpeechSupported = false;\n                    }\n                  );\n                },\n                () => {\n                  this.isSpeechSupported = false;\n                }\n              );\n            } else {\n              this.speechRecognition.isRecognitionAvailable().then(\n                (available: boolean) => {\n                  console.log('Line 75: Permission:', available);\n                  this.isSpeechSupported = available;\n                },\n                () => {\n                  return false;\n                }\n              );\n            }\n          });\n      });\n    } else {\n      if (!this.ariSpeechService.isWebSpeechRecognitionSupported()) {\n        this.isSpeechSupported = false;\n      } else {\n        this.isSpeechSupported = true;\n      }\n    }\n  }\n\n  sendMessage(ev: any) {\n    if (this.showLoading) {\n      return;\n    }\n\n    this.sendEvent.emit(ev);\n  }\n\n  setFocus() {\n    this.userInput.setFocus();\n  }\n\n  startListening(ev: any) {\n    if (this.showLoading) {\n      return;\n    }\n    // this.ariService.activatedByVoice = false;\n    this.startListeningEvent.emit({ ev, activatedByVoice: false });\n  }\n}\n","<ion-toolbar color=\"white\" class=\"chat-toolbar\">\n  <ion-buttons slot=\"start\">\n    <div class=\"ion-padding-start\"></div>\n    <!-- <ion-button\n      expand=\"block\"\n      fill=\"clear\"\n      color=\"primary\"\n      class=\"msg-btn\"\n      [disabled]=\"showLoading\"\n    >\n      <lig-ari-icon [name]=\"ariIcon['icon-attach']\"></lig-ari-icon>\n    </ion-button> -->\n  </ion-buttons>\n  <form [formGroup]=\"form\" (ngSubmit)=\"sendMessage($event)\">\n    <ion-input type=\"text\" class=\"chat-input\" formControlName=\"userInput\" placeholder=\"Type your message here...\"\n      (ionFocus)=\"setFocus()\" (keyup.enter)=\"sendMessage($event)\" #userInput></ion-input>\n  </form>\n  <ion-buttons slot=\"end\">\n    <ion-button expand=\"block\" fill=\"clear\" color=\"primary\" class=\"msg-btn\" (click)=\"startListening($event)\"\n      [disabled]=\"showLoading\" *ngIf=\"isSpeechSupported\">\n      <lig-ari-icon *ngIf=\"activatedByVoice\" [type]=\"'default'\" [name]=\"'mic'\"></lig-ari-icon>\n      <lig-ari-icon *ngIf=\"!activatedByVoice\" [name]=\"'mic-outline'\"></lig-ari-icon>\n    </ion-button>\n    <ion-button expand=\"block\" class=\"send-msg-btn\" [ngStyle]=\"{ 'background-color': buttonColor }\"\n      (click)=\"sendMessage($event)\" [disabled]=\"showLoading\">\n      <lig-ari-icon [name]=\"'icon_send'\"></lig-ari-icon>\n    </ion-button>\n  </ion-buttons>\n</ion-toolbar>","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { Platform } from '@ionic/angular';\n\ndeclare const window: any;\ndeclare const document: any;\n\n@Pipe({\n  name: 'linkify',\n})\nexport class LinkifyPipe implements PipeTransform {\n  constructor(private domSanitizer: DomSanitizer) {\n    // tslint:disable-next-line:only-arrow-functions\n    document.onclick = function (e) {\n      e = e || window.event;\n      const element = e.target || e.srcElement;\n      // making sure there's an URL\n      if (\n        element.tagName === 'A' &&\n        element.href &&\n        element.dataset.id === 'ari-link'\n      ) {\n        // opening in a new window\n        window.open(element.href, '_blank', 'location=yes noopener noreferrer');\n        return false;\n      }\n    };\n  }\n\n  urlsRegex: any = /(\\b(https?|http|ftp|ftps|Https|rtsp|Rtsp):\\/\\/[A-Z0-9+&@#\\/%?=~_|!:,.;-]*[-A-Z0-9+&@#\\/%=~_|])/gim;\n  transform(value: any, args?: any): any {\n    return this.domSanitizer.bypassSecurityTrustHtml(this.stylize(value));\n  }\n\n  private stylize(text: string): string {\n    if (text && text.length > 0) {\n      if (text.match(this.urlsRegex)) {\n        text = text.replace(this.urlsRegex, function replacer($1, $2, $3) {\n          const url: any = $1;\n          const urlClean: any = url.replace('' + $3 + '://', '');\n          // const value =\n          //   '<a href=\"javascript: void(0);\" onclick=\"window.open(' +\n          //   `'${url}'` +\n          //   '),\"_blank\", \"location=yes\");return false;\">' +\n          //   urlClean +\n          //   '</a>';\n          const value =\n            '<a href=\"' + url + '\" data-id=\"ari-link\">' + urlClean + '</a>';\n          return value;\n        });\n        return text;\n      } else {\n        return text;\n      }\n    } else {\n      return text;\n    }\n  }\n\n  openLink(link) {\n    window.open(link, '_blank', 'noopener noreferrer');\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'ariTextResponse',\n})\nexport class AriTextResponsePipe implements PipeTransform {\n  transform(textResponse: string, separator: string = '\\n\\n'): any {\n    let formattedResponse = textResponse;\n    if (textResponse && typeof textResponse === 'string') {\n      const notText = textResponse.includes(separator);\n      if (notText) {\n        const dealString = textResponse.split(separator);\n\n        if (dealString && dealString.length) {\n          formattedResponse = this.parseDealString(dealString);\n        }\n      }\n      if(textResponse.includes('|')) {\n        formattedResponse = textResponse.split('|')[0];\n      }\n    }\n    return `<div>${formattedResponse}</div>`;\n  }\n\n  parseDealString(dealString: string[]): string {\n    let formattedResponse = '';\n\n    dealString.forEach((deal, i) => {\n      formattedResponse += `<div>${deal}</div>`;\n    });\n\n    return formattedResponse;\n  }\n}\n","import {\n  Component,\n  OnInit,\n  Output,\n  EventEmitter,\n  ViewChild,\n  NgZone,\n  Input,\n  ElementRef,\n  Inject,\n} from '@angular/core';\nimport {\n  FormGroup,\n  FormBuilder,\n  Validators,\n  FormControl,\n} from '@angular/forms';\nimport { Observable, Subject, Subscription } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport cloneDeep from 'lodash-es/cloneDeep';\nimport each from 'lodash-es/each';\nimport find from 'lodash-es/find';\nimport isEmpty from 'lodash-es/isEmpty';\nimport isNull from 'lodash-es/isNull';\nimport includes from 'lodash-es/includes';\nimport uniqBy from 'lodash-es/uniqBy';\n\nimport eachSeries from 'async-es/eachSeries';\nimport { Voices } from '../services/voice-setup.constant';\nimport { Browser, OpenOptions } from '@capacitor/browser';\nimport { TextToSpeech } from '@ionic-native/text-to-speech/ngx';\n\nimport {\n  ModalController,\n  Platform,\n  IonContent,\n  LoadingController,\n} from '@ionic/angular';\n\nimport {\n  IMessageActivity,\n  IMessageActions,\n  IConversationActivities,\n  IAttachmentContentButton,\n} from '../model/conversation.model';\n\nimport { NgxLigAriService } from '../services/ngx-lig-ari.service';\nimport { PubsubService } from '../services/pubsub.service';\nimport { AriBotService } from '../services/ari-bot.service';\nimport { LocalstorageService } from '../services/localstorage.service';\nimport {\n  NetworkServiceService,\n  ConnectionStatus,\n} from '../services/network-service.service';\nimport { HttpCancelService } from '../services/httpcancel.service';\nimport { AriListenerSheetComponent } from '../components/ari-listener-sheet/ari-listener-sheet.component';\nimport { AriSpeechService } from '../services/ari-speech.service';\nimport { KeyboardAttachDirective } from '../directives/keyboard-attach.directive';\nimport {\n  AriConfig,\n  AriConfigService,\n  ariTimeoutMessage,\n} from '../model/ari-bot.mode';\nimport { CommonService } from '../services/common.service';\nimport { GoogleEventsAnalyticsService } from '../services/google-analytics.service';\nimport { GoogleProperty } from '../model/google';\n\ndeclare const window: any;\ndeclare const document: any;\n\n@Component({\n  selector: 'lib-ari-mobile',\n  templateUrl: './ari-mobile.component.html',\n  styleUrls: ['./ari-mobile.component.scss'],\n  providers: [KeyboardAttachDirective],\n})\nexport class AriMobileComponent implements OnInit {\n  ariBotResponse: IConversationActivities;\n  ariBotResponseActivity: any[] = [];\n  form: FormGroup;\n\n  @Input() showCloseButton: boolean;\n\n  @Output() ariOnClose = new EventEmitter<any>();\n\n  @Output() ariOnResize = new EventEmitter<any>();\n\n  ariBotResponse$ = new Observable<IConversationActivities>();\n  chatIsReady: boolean;\n  ariConvoScrollArea: any;\n  ariChatboxContainer: any;\n  showAri: boolean;\n  isProfileLoaded: boolean;\n  isKeyBoardShow: boolean;\n  showLoading: boolean;\n  showSplash: boolean;\n  isAriMuted: boolean;\n  showVolume: boolean;\n  ttsSpeech: any;\n  searchInterval: any;\n  searchIntervalTime = 2;\n  sizeClass = 'is-25';\n  showError = false;\n  errorResponse: any = {};\n  showCardnumbers: number = 3;\n  _unsubscribe$ = new Subject<any>();\n  synth = window.speechSynthesis;\n  private ariSubs: Subscription[] = [];\n\n  @ViewChild(IonContent, { static: false }) content: IonContent;\n  @ViewChild('coversationList', { static: false, read: ElementRef })\n  coversationList: ElementRef;\n\n  slideOpts = {\n    slidesPerView: 2,\n    spaceBetween: 10,\n  };\n\n  get userInput() {\n    return this.form.get('userInput');\n  }\n  messageColor = '#3880ff';\n  ariCloseByTimeout = false;\n  ariTimeoutMessage = ariTimeoutMessage.ariLabel;\n  tasksPaginationIndex = 1;\n  tasksPagination = true;\n  activatedByVoice = this.ariService.activatedByVoice;\n\n  constructor(\n    private zone: NgZone,\n    public plt: Platform,\n    private fb: FormBuilder,\n    private pubsub: PubsubService,\n    public modalController: ModalController,\n    private loadingController: LoadingController,\n    private ariBotService: AriBotService,\n    private ariService: NgxLigAriService,\n    private commonService: CommonService,\n    private localStorage: LocalstorageService,\n    private networkService: NetworkServiceService,\n    private httpCancelService: HttpCancelService,\n    private ariSpeechService: AriSpeechService,\n    private tts: TextToSpeech,\n    private googleEventService: GoogleEventsAnalyticsService,\n    @Inject(AriConfigService) private config: AriConfig\n  ) {\n    this.ariBotService.ariTimeout(); // 5mins timeout auto close\n    if (config.settings) {\n      this.messageColor = config.settings.theme;\n      if (config.settings.gtm) {\n        this.googleEventService.initGoogleAnalytics();\n      }\n    }\n    this.showCloseButton = true;\n    this.showSplash = true;\n\n    this.form = this.fb.group({\n      userInput: new FormControl('', [Validators.maxLength(500)]),\n      upload: new FormControl('', []),\n    });\n    this.pubsub.$sub('ARI-TIMEOUT', (response) => {\n      this.ariCloseByTimeout = response;\n    });\n    this.pubsub.$sub('ARI-ERROR', (error) => {\n      this.showError = true;\n      if (error) {\n        this.errorResponse = error.error;\n        console.log('ARI-ERROR errorResponse: ', error.error);\n        if (this.showSplash) {\n          this.showSplash = false;\n        }\n      }\n    });\n\n    this.pubsub.$sub('ARI-LOADING', () => {\n      this.zone.run(() => {\n        this.showLoading = true;\n        this.form.controls.userInput.disable();\n      });\n    });\n    this.pubsub.$sub('ARI-LOADING-DONE', () => {\n      this.zone.run(() => {\n        this.showLoading = false;\n        this.form.controls.userInput.enable();\n\n        this.scrollToBottom();\n      });\n    });\n\n    this.pubsub.$sub('ari-ionViewDidEnter', () => {\n      this.initAri();\n    });\n\n    this.pubsub.$sub('ari-ionViewWillLeave', () => {\n      this.forViewWillLeave();\n    });\n\n    this.networkService\n      .onNetworkChange()\n      .pipe(takeUntil(this._unsubscribe$))\n      .subscribe((status: ConnectionStatus) => {\n        if (status === ConnectionStatus.Offline) {\n          this.httpCancelService.cancelPendingRequests();\n        }\n      });\n  }\n  closeTimeoutReminder() {\n    this.ariCloseByTimeout = false;\n    this.pubsub.$pub('ARI-TIMEOUT', false);\n    this.ariBotService.resetConversation();\n    this.closeAri();\n  }\n  showMoreCards(attachmentLength, taskPaginationIndex?: number) {\n    if (taskPaginationIndex >= 0) {\n      const getCurrentUrl =\n        this.ariBotResponse.activities[taskPaginationIndex].entities[0]\n          .mentioned.name;\n      const getCurrentParams = getCurrentUrl.substring(\n        getCurrentUrl.indexOf('?') + 1,\n        getCurrentUrl.length\n      );\n      const paramsFormatter = getCurrentParams\n        .replace(/&/g, '\",\"')\n        .replace(/=/g, '\":\"');\n      const paramsToJson = JSON.parse('{\"' + paramsFormatter + '\"}');\n      const pageIndex = (this.tasksPaginationIndex += 1);\n      this.ariBotService\n        .paginateTasks({\n          PageIndex: pageIndex,\n          PageSize: 3,\n          ...paramsToJson,\n        })\n        .subscribe((res: any) => {\n          if (res) {\n            // Concat response activities to current activities\n            this.ariBotResponse.activities[taskPaginationIndex].attachments =\n              this.ariBotResponse.activities[\n                taskPaginationIndex\n              ].attachments.concat(res.activities[0].attachments);\n            const entity =\n              this.ariBotResponse.activities[taskPaginationIndex].entities[0]\n                .mentioned;\n            // Check if API still return an item\n            if (res.activities[0].attachments.length > 0) {\n              // Property ID value is total length of User filtered tasks\n              if (parseInt(entity.id) > this.showCardnumbers) {\n                this.showCardnumbers =\n                  this.showCardnumbers + res.activities[0].attachments.length;\n                if (this.showCardnumbers >= parseInt(entity.id)) {\n                  this.showCardnumbers = parseInt(entity.id);\n                  this.tasksPagination = false;\n                }\n              } else {\n                this.showCardnumbers = parseInt(entity.id);\n                this.tasksPagination = false;\n              }\n            } else {\n              this.tasksPagination = false;\n            }\n          }\n        });\n    } else {\n      if (attachmentLength > this.showCardnumbers) {\n        this.showCardnumbers = this.showCardnumbers + 3;\n        if (this.showCardnumbers > attachmentLength) {\n          this.showCardnumbers = attachmentLength;\n        }\n      } else {\n        this.showCardnumbers = attachmentLength;\n      }\n    }\n  }\n\n  private forViewWillLeave() {\n    this.ariBotResponseActivity = [];\n\n    if (this.ariBotResponse) {\n      this.ariBotResponse.activities = [];\n    }\n\n    if (this.plt.is('cordova') || this.plt.is('capacitor')) {\n      this.plt.ready().then(() => {\n        this.tts.speak('');\n        this.tts.stop();\n      });\n    } else {\n      if (\n        this.ariSpeechService &&\n        this.ariSpeechService.SpeechSynthesisUtterance\n      ) {\n        this.ariSpeechService.SpeechSynthesisUtterance.cancel();\n      }\n    }\n\n    this.ariBotResponse$ = new Observable<any>();\n\n    if (this.ariSubs) {\n      this.ariSubs.forEach((subs) => subs.unsubscribe());\n    }\n\n    this._unsubscribe$.next();\n    this._unsubscribe$.complete();\n  }\n\n  private readByAri() {\n    const allSpeech = [];\n    if (this.plt.is('cordova') || this.plt.is('capacitor')) {\n      this.plt.ready().then(() => {\n        eachSeries(this.ariBotResponseActivity, (row: any, callback: any) => {\n          allSpeech.push(row);\n          if (!isEmpty(row.text) && row.replyToId && !row.isRead) {\n            row.isRead = true;\n            row.text = row.text\n              .replace(/<[^>]*b>/g, '')\n              .replace(/\"/g, '')\n              .replace(/\\n/gi, '<br>');\n            let message = row.text;\n            if (!this.isAriMuted) {\n              this.tts\n                .speak({\n                  text: message.replace(/<br>/g, ', ').replace(/, {1}$/g, ''),\n                  locale: this.ttsSpeech.Language,\n                  rate: this.plt.is('ios') ? 1.6 : 1,\n                })\n                .then((event) => {\n                  const allRead = allSpeech.filter((item) => {\n                    if (item.isRead) {\n                      return item;\n                    }\n                  });\n                  if (allRead.length == allSpeech.length) {\n                    if (this.ariService.activatedByVoice) {\n                      this.startListening();\n                    }\n                  }\n                  this.scrollToBottom();\n                  callback();\n                })\n                .catch(() => {\n                  callback();\n                });\n            } else {\n              row.isRead = true;\n              this.scrollToBottom();\n              callback();\n            }\n          } else {\n            callback();\n          }\n        });\n      });\n    } else {\n      if (this.ariSpeechService.isWebSpeechSynthesisSupported()) {\n        this.ariSpeechService.initWebSpeechSynthesis();\n        eachSeries(this.ariBotResponseActivity, (row: any, callback: any) => {\n          allSpeech.push(row);\n          if (!isEmpty(row.text) && row.replyToId && !row.isRead) {\n            row.text = row.text\n              .replace(/<[^>]*b>/g, '')\n              .replace(/\"/g, '')\n              .replace(/\\n/gi, '<br>');\n            let message = row.text;\n            const defaultVoiceName = this.ttsSpeech.Language;\n            this.ariSpeechService.SpeechSynthesisUtterance.init({\n              lang: this.ttsSpeech.Language,\n            })\n              .then((data: any) => {\n                if (data && data.voices) {\n                  const matchVoice = find(data.voices, (obj: any) => {\n                    return obj.lang === defaultVoiceName;\n                  });\n                  if (matchVoice) {\n                    this.ariSpeechService.SpeechSynthesisUtterance.setVoice(\n                      matchVoice.name\n                    );\n                  } else {\n                    this.ariSpeechService.SpeechSynthesisUtterance.setVoice(\n                      data.voices[1].name\n                    );\n                  }\n                }\n              })\n              .then(() => {\n                if (!this.isAriMuted) {\n                  var el = this;\n                  var utterThis = new SpeechSynthesisUtterance(\n                    message.replace(/<br>/g, ', ').replace(/, {1}$/g, '')\n                  );\n                  row.isRead = true;\n                  setTimeout(() => {\n                    this.ariSpeechService.SpeechSynthesisUtterance.speak({\n                      text: utterThis.text,\n                      listeners: {\n                        onend: () => {\n                          if (!el.synth.pending && !el.synth.speaking) {\n                            if (el.ariService.activatedByVoice) {\n                              el.startListening();\n                            }\n                          }\n                        },\n                      },\n                    });\n                  }, 300);\n                  this.scrollToBottom();\n                  callback();\n                } else {\n                  row.isRead = true;\n                  this.scrollToBottom();\n                  callback();\n                }\n              });\n          } else {\n            callback();\n          }\n        });\n      }\n    }\n  }\n\n  get currentSize(): number {\n    switch (this.sizeClass) {\n      case 'is-25':\n        return 1;\n\n      case 'is-50':\n        return 2;\n\n      case 'is-75':\n        return 3;\n\n      case 'is-100':\n        return 4;\n    }\n  }\n\n  isJson(str) {\n    try {\n      JSON.parse(str);\n    } catch (e) {\n      return false;\n    }\n    return true;\n  }\n\n  initAri() {\n    this.isKeyBoardShow = false;\n    this.chatIsReady = false;\n    this.ariBotService.initConversation();\n    this.ariBotResponse$ = this.ariBotService.botResponse$();\n    const ariSubs = this.ariBotResponse$.subscribe(\n      (response: IConversationActivities) => {\n        this.showError = false;\n        if (response) {\n          this.zone.run(() => {\n            this.chatIsReady = !!response;\n            this.ariBotResponse = response;\n            if (this.ariBotResponse) {\n              if (isEmpty(this.ariBotResponseActivity)) {\n                this.ariBotResponseActivity = cloneDeep(\n                  this.ariBotResponse.activities\n                );\n\n                each(this.ariBotResponseActivity, (row: any) => {\n                  if (!isEmpty(row.text)) {\n                    row.isRead = false;\n                  }\n                });\n\n                uniqBy(this.ariBotResponseActivity, (e: any) => {\n                  return e.id;\n                });\n\n                if (!this.showSplash) {\n                  this.readByAri();\n                }\n              } else {\n                each(this.ariBotResponse.activities, (row: any) => {\n                  // updating token and refresh token from ari response\n                  if (row.text) {\n                    row.text =\n                      row.text.indexOf('|') > 0\n                        ? row.text.split('|')[0]\n                        : row.text\n                          .replace(/<[^>]*b>/g, '')\n                          .replace(/\"/g, '')\n                          .replace(/\\n/gi, '<br>');\n                  }\n                  if (row.from.Token && row.from.RefreshToken) {\n                    this.commonService.updateUserObject(\n                      row.from.Token,\n                      row.from.RefreshToken\n                    );\n                  }\n\n                  const result = find(this.ariBotResponseActivity, {\n                    id: row.id,\n                  });\n                  if (isEmpty(result)) {\n                    if (!isEmpty(row.text)) {\n                      row.isRead = false;\n                    }\n                    this.ariBotResponseActivity.push(row);\n                  }\n                });\n\n                uniqBy(this.ariBotResponseActivity, (e: any) => {\n                  return e.id;\n                });\n                if (!this.showSplash) {\n                  this.readByAri();\n                }\n              }\n\n              this.scrollToBottom();\n            }\n          });\n        }\n      },\n      (error) => {\n        this.showError = true;\n      }\n    );\n\n    this.ariSubs.push(ariSubs);\n  }\n\n  resize(size: any): void {\n    window.localStorage.setItem('ariSize', size);\n    this.ariOnResize.emit(size);\n    switch (size) {\n      case 2:\n        this.sizeClass = 'is-50';\n        this.googleEventService.googleEvent(GoogleProperty.half_view);\n        break;\n\n      case 3:\n        this.sizeClass = 'is-75';\n        this.googleEventService.googleEvent(GoogleProperty.three_quarter_view);\n        break;\n\n      case 4:\n        this.sizeClass = 'is-100';\n        this.googleEventService.googleEvent(GoogleProperty.full_view);\n        break;\n\n      default:\n        this.sizeClass = 'is-25';\n        this.googleEventService.googleEvent(GoogleProperty.quarter_view);\n        break;\n    }\n  }\n\n  onStartTalking() {\n    this.showSplash = false;\n\n    if (this.showLoading && this.showSplash && !this.chatIsReady) {\n      return;\n    }\n\n    setTimeout(() => {\n      this.readByAri();\n    }, 600);\n  }\n\n  async refreshAri() {\n    const loading = await this.loadingController.create();\n    loading.present();\n\n    this.showError = false;\n\n    this.forViewWillLeave();\n    setTimeout(() => {\n      this.initAri();\n      loading.dismiss();\n    }, 1000);\n  }\n\n  ngOnInit() {\n    // this.ariBotService.locationStatusChanged.subscribe((permission) => {\n    this.ariBotService.resetConversation();\n    // });\n    this.isKeyBoardShow = false;\n    this.showLoading = false;\n    this.chatIsReady = false;\n    this.showSplash = true;\n    this.showError = false;\n    this.ttsSpeech = Voices[5];\n    this.isAriMuted = this.localStorage.getItem('isAriMuted');\n    this.isAriMuted = isNull(this.isAriMuted) ? false : this.isAriMuted;\n\n    if (this.plt.is('cordova') || this.plt.is('capacitor')) {\n      this.showVolume = true;\n    } else {\n      if (this.ariSpeechService.isWebSpeechSynthesisSupported()) {\n        this.showVolume = true;\n      } else {\n        this.showVolume = false;\n      }\n    }\n  }\n\n  ionViewDidEnter() {\n    this.isKeyBoardShow = false;\n    this.showLoading = false;\n    this.chatIsReady = false;\n    this.showSplash = true;\n    this.showError = false;\n\n    this.isAriMuted = this.localStorage.getItem('isAriMuted');\n    this.isAriMuted = isNull(this.isAriMuted) ? false : this.isAriMuted;\n\n    if (this.plt.is('cordova') || this.plt.is('capacitor')) {\n      this.showVolume = true;\n    } else {\n      if (this.ariSpeechService.isWebSpeechSynthesisSupported()) {\n        this.showVolume = true;\n      } else {\n        this.showVolume = false;\n      }\n    }\n  }\n\n  ionViewWillLeave() {\n    this.forViewWillLeave();\n  }\n\n  getElements() {\n    this.ariConvoScrollArea = document.getElementById('chat-container');\n    this.ariChatboxContainer = document.getElementById('chat-content');\n  }\n\n  scrollToBottom() {\n    const container = document.getElementById('chat-container');\n    if (container) {\n      container.scrollTop = container.scrollHeight;\n      setTimeout(() => {\n        this.content.scrollToBottom(0);\n      }, 400);\n    }\n  }\n\n  trackByConvoId(convo: any) {\n    return convo.id;\n  }\n\n  getContentClass() {\n    let klass = 'default';\n\n    if (this.plt.is('ios') || this.plt.is('android')) {\n      klass = `${klass} mobile-device`;\n    }\n    return klass;\n  }\n\n  getChatClass(item: IMessageActivity) {\n    if (item) {\n      return item.from.id.indexOf('AriBotChannel') >= 0\n        ? 'bot-chat-2'\n        : 'user-chat-2';\n    }\n  }\n\n  hasButtons(content): IAttachmentContentButton[] {\n    return content && !!content.buttons ? content.buttons : null;\n  }\n\n  hasSuggestedActions(suggestedActions): IMessageActions {\n    return suggestedActions && !!suggestedActions.actions\n      ? suggestedActions.actions\n      : null;\n  }\n\n  hasWasIHelpful(text: any): boolean {\n    if (includes(text, 'Was I helpful')) {\n      return true;\n    } else {\n      return false;\n    }\n  }\n\n  hasAnythingElse(text: any): boolean {\n    if (includes(text, 'anything else')) {\n      return true;\n    } else {\n      return false;\n    }\n  }\n\n  Thankyou(text: any): boolean {\n    if (includes(text, 'Thank you and')) {\n      return true;\n    } else {\n      return false;\n    }\n  }\n\n  ForWhichGoal(text: any): boolean {\n    if (text) {\n      if (includes(text, 'For which goal')) {\n        return true;\n      } else {\n        return false;\n      }\n    }\n  }\n\n  GoalType(text: any): boolean {\n    if (includes(text[0].title, 'Unscheduled')) {\n      return true;\n    } else {\n      return false;\n    }\n  }\n\n  sendActionMessage(messageItem) {\n    if (this.ariBotResponse) {\n      if (this.ariBotResponse.activities) {\n        this.ariBotResponse.activities.splice(this.ariBotResponse.activities.length - 1, 0, messageItem);\n      } else {\n        this.ariBotResponse.activities = [];\n        this.ariBotResponse.activities.push(messageItem);\n      }\n    }\n  }\n\n  async sendSelection(action) {\n    this.showCardnumbers = 3;\n    switch (action.type) {\n      case 'openUrl':\n        if (this.plt.is('cordova') || this.plt.is('capacitor')) {\n          const inAppOptions: OpenOptions = {\n            presentationStyle: 'fullscreen',\n            windowName: '_blank',\n            url: action.value,\n          };\n          await Browser.open(inAppOptions);\n        } else {\n          window.open(action.value, '_blank', 'noopener noreferrer');\n        }\n        break;\n\n      default:\n        this.sendMessage(action);\n        break;\n    }\n  }\n\n  sendMessage(action: any) {\n    // Pause ARI\n    // Mobile\n    if (this.plt.is('cordova') || this.plt.is('capacitor')) {\n      this.plt.ready().then(() => {\n        this.ariBotResponseActivity.forEach((res) => {\n          res.isRead = true;\n        });\n        this.tts.speak('');\n        this.tts.stop();\n      });\n    }\n    // Web\n    if (this.ariSpeechService.SpeechSynthesisUtterance) {\n      this.ariSpeechService.SpeechSynthesisUtterance.cancel();\n    }\n    const userInfo = this.commonService.getUserObject();\n    const message = {\n      text: action.value || action.data,\n      from: userInfo,\n    };\n\n    const item: IMessageActivity = {\n      text: action.text || action.title || action.data,\n      from: userInfo,\n    };\n\n    if (\n      this.networkService.getCurrentNetworkStatus() === ConnectionStatus.Offline\n    ) {\n      // this.toastr.showOfflineWarning();\n      return;\n    }\n\n    if (this.showLoading) {\n      return;\n    }\n    if (this.ariBotResponse) {\n      if (this.ariBotResponse.activities) {\n        this.ariBotResponse.activities.push(item);\n      } else {\n        this.ariBotResponse.activities = [];\n        this.ariBotResponse.activities.push(item);\n      }\n    }\n    this.ariBotService.sendMessage(message);\n\n    setTimeout(() => {\n      // Pause ARI\n      this.scrollToBottom();\n    }, 600);\n  }\n\n  send() {\n    if (this.showLoading && this.showSplash && !this.chatIsReady) {\n      return;\n    }\n    let msgObj = { value: '', text: '' };\n    const message = this.userInput.value;\n    if (message) {\n      this.userInput.setValue('');\n      msgObj.value = message;\n      msgObj.text = message;\n      this.ariBotService.refreshTimer();\n      this.googleEventService.googleEvent(GoogleProperty.send);\n      this.sendMessage(msgObj);\n    }\n  }\n\n  async startListening(obj?: any) {\n    if (obj.ev) {\n      obj.ev.preventDefault();\n      obj.ev.stopPropagation();\n    }\n    if (obj.activatedByVoice !== undefined) {\n      this.activatedByVoice = obj.activatedByVoice;\n      this.ariService.activatedByVoice = obj.activatedByVoice;\n    }\n    if (this.showLoading && this.showSplash && !this.chatIsReady) {\n      return;\n    }\n\n    // if (\n    //   this.networkService.getCurrentNetworkStatus() === ConnectionStatus.Offline\n    // ) {\n    //   // this.toastr.showOfflineWarning();\n    //   return;\n    // }\n\n    this.googleEventService.googleEvent(GoogleProperty.mic);\n    this.scrollToBottom();\n    const modal = await this.modalController.create({\n      component: AriListenerSheetComponent,\n      cssClass: 'ari-modal-bottom-sheet',\n      showBackdrop: true,\n      mode: 'ios',\n    });\n    modal.onDidDismiss().then((resp: any) => {\n      if (resp && resp.data) {\n        this.ariBotService.refreshTimer();\n        let element = this.ariBotResponse.activities.pop();\n        if (element.suggestedActions) {\n          element.suggestedActions.actions.some((action) => {\n            const sim = this.similarity(action.value, resp.data);\n            if (sim > 0.3) {\n              resp.data = action.value;\n              resp.text = action.value;\n              resp.value = action.value;\n              return true;\n            }\n          });\n        }\n        this.sendMessage(resp);\n      }\n    });\n    modal.present();\n  }\n\n  closeAri() {\n    // this.arBotService.resetConversation();\n    this.forViewWillLeave();\n    this.ariOnClose.emit();\n    this.ariBotService.refreshTimer();\n    this.ariBotService.stopTimer();\n    this.ariService.closeAri();\n    this.googleEventService.googleEvent(GoogleProperty.close);\n  }\n\n  similarity(s1, s2) {\n    let longer = s1;\n    let shorter = s2;\n    if (s1.length < s2.length) {\n      longer = s2;\n      shorter = s1;\n    }\n    const longerLength = longer.length;\n    if (longerLength === 0) {\n      return 1.0;\n    }\n    return (\n      (longerLength - this.editDistance(longer, shorter)) /\n      parseFloat(longerLength)\n    );\n  }\n\n  editDistance(s1, s2) {\n    s1 = s1.toLowerCase();\n    s2 = s2.toLowerCase();\n\n    const costs = new Array();\n    for (let i = 0; i <= s1.length; i++) {\n      let lastValue = i;\n      for (let j = 0; j <= s2.length; j++) {\n        if (i === 0) {\n          costs[j] = j;\n        } else {\n          if (j > 0) {\n            let newValue = costs[j - 1];\n            if (s1.charAt(i - 1) !== s2.charAt(j - 1)) {\n              newValue = Math.min(Math.min(newValue, lastValue), costs[j]) + 1;\n            }\n            costs[j - 1] = lastValue;\n            lastValue = newValue;\n          }\n        }\n      }\n      if (i > 0) {\n        costs[s2.length] = lastValue;\n      }\n    }\n    return costs[s2.length];\n  }\n\n  muteAri() {\n    this.isAriMuted = !this.isAriMuted;\n    this.localStorage.setItem('isAriMuted', this.isAriMuted);\n    this.googleEventService.googleEvent(\n      this.isAriMuted ? GoogleProperty.mute : GoogleProperty.unmute\n    );\n    if (this.isAriMuted) {\n      if (this.plt.is('cordova') || this.plt.is('capacitor')) {\n        this.plt.ready().then(() => {\n          this.tts.speak('');\n          this.tts.stop();\n        });\n      } else {\n        if (this.ariSpeechService.isWebSpeechSynthesisSupported()) {\n          this.ariSpeechService.SpeechSynthesisUtterance.cancel();\n        }\n      }\n    }\n  }\n}\n","<ion-header *ngIf=\"!showSplash\" class=\"header-mobile\">\n  <ion-toolbar>\n    <ion-buttons slot=\"start\">\n      <div class=\"welcome-group\">\n        <lig-ari-logo></lig-ari-logo>\n      </div>\n      <ng-container *ngIf=\"(plt.is('desktop') || plt.is('tablet'))\">\n        <ion-button class=\"ari-size-btn\" [ngClass]=\"{ 'is-active': sizeClass === 'is-25' }\" (click)=\"resize(1)\"\n          color=\"1D57A4\">\n          <lig-ari-icon class=\"size-icon\" [ngClass]=\"{ active: sizeClass === 'is-25' }\" *ngIf=\"currentSize === 1\"\n            [name]=\"'chat-size-03-active'\"></lig-ari-icon>\n          <lig-ari-icon class=\"size-icon\" [ngClass]=\"{ active: sizeClass === 'is-25' }\" *ngIf=\"currentSize !== 1\"\n            [name]=\"'chat-size-03'\"></lig-ari-icon>\n        </ion-button>\n        <ion-button class=\"ari-size-btn\" [ngClass]=\"{ 'is-active': sizeClass === 'is-50' }\" color=\"lightgray\"\n          (click)=\"resize(2)\">\n          <lig-ari-icon class=\"size-icon\" [ngClass]=\"{ active: sizeClass === 'is-50' }\" *ngIf=\"currentSize === 2\"\n            [name]=\"'chat-size-02-active'\"></lig-ari-icon>\n          <lig-ari-icon class=\"size-icon\" [ngClass]=\"{ active: sizeClass === 'is-50' }\" *ngIf=\"currentSize !== 2\"\n            [name]=\"'chat-size-02'\"></lig-ari-icon>\n        </ion-button>\n        <ion-button class=\"ari-size-btn\" [ngClass]=\"{ 'is-active': sizeClass === 'is-75' }\" (click)=\"resize(3)\"\n          color=\"lightgray\">\n          <lig-ari-icon class=\"size-icon\" [ngClass]=\"{ active: sizeClass === 'is-75' }\" *ngIf=\"currentSize === 3\"\n            [name]=\"'chat-size-01-active'\"></lig-ari-icon>\n          <lig-ari-icon class=\"size-icon\" [ngClass]=\"{ active: sizeClass === 'is-75' }\" *ngIf=\"currentSize !== 3\"\n            [name]=\"'chat-size-01'\"></lig-ari-icon>\n        </ion-button>\n        <ion-button class=\"ari-size-btn\" [ngClass]=\"{ 'is-active': sizeClass === 'is-100' }\" (click)=\"resize(4)\"\n          color=\"lightgray\">\n          <lig-ari-icon class=\"size-icon\" [ngClass]=\"{ active: sizeClass === 'is-100' }\" *ngIf=\"currentSize === 4\"\n            [name]=\"'chat-size-04-active'\"></lig-ari-icon>\n          <lig-ari-icon class=\"size-icon\" [ngClass]=\"{ active: sizeClass === 'is-100' }\" *ngIf=\"currentSize !== 4\"\n            [name]=\"'chat-size-04'\"></lig-ari-icon>\n        </ion-button>\n      </ng-container>\n    </ion-buttons>\n    <ion-title></ion-title>\n    <ion-buttons slot=\"end\">\n      <ion-button fill=\"clear\" (click)=\"muteAri()\" *ngIf=\"showVolume\">\n        <lig-ari-icon class=\"ari-volume\" slot=\"icon-only\" [name]=\"'icon-volume'\" *ngIf=\"!isAriMuted\"></lig-ari-icon>\n        <lig-ari-icon class=\"ari-volume\" slot=\"icon-only\" [name]=\"'icon-volume-mute'\" *ngIf=\"isAriMuted\">\n        </lig-ari-icon>\n      </ion-button>\n      <ion-button (click)=\"closeAri()\" color=\"dark\" fill=\"clear\" *ngIf=\"showCloseButton\">\n        <lig-ari-icon class=\"ari-close\" slot=\"icon-only\" [name]=\"'icon-close'\"></lig-ari-icon>\n      </ion-button>\n    </ion-buttons>\n  </ion-toolbar>\n</ion-header>\n<ion-content class=\"ari-content-mobile\" [ngClass]=\"getContentClass()\" #content>\n  <div *ngIf=\"!showError && !showSplash\" class=\"transition-div\"></div>\n  <ng-container *ngIf=\"!showError && showSplash\">\n    <lig-ari-splash-screen (ariOnReady)=\"initAri()\" (ariOnTalking)=\"onStartTalking()\"></lig-ari-splash-screen>\n  </ng-container>\n  <!-- <lig-ari-splash-screen></lig-ari-splash-screen> -->\n  <ng-container *ngIf=\"!showError && !showSplash\">\n    <div id=\"chat-container\" class=\"chat-container p-3\">\n      <div id=\"chat-content\" class=\"chat-content\" *ngIf=\"ariBotResponse$ | async as ariBotResponse\">\n        <ul class=\"conversation-list\">\n          <ng-container *ngFor=\"\n              let item of ariBotResponse.activities;\n              let index = index;\n              let last = last;\n              trackBy: trackByConvoId\n            \">\n            <li [ngClass]=\"getChatClass(item)\">\n              <div class=\"chat-item\">\n                <ng-container *ngIf=\"item.text\">\n                  <div [ngClass]=\"\n                      getChatClass(item) === 'user-chat-2' ? 'user-msg' : ''\n                    \" [ngStyle]=\"{\n                      'background-color':\n                        getChatClass(item) === 'user-chat-2' ? messageColor : ''\n                    }\" class=\"d-flex text-message\" *ngIf=\"!item.suggestedActions\">\n                    <span class=\"m-0\" [innerHtml]=\"item.text | ariTextResponse | linkify\"></span>\n                    <ion-icon *ngIf=\"Thankyou(item.text)\" class=\"ari-thanks\" slot=\"icon-only\"\n                      src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNC42ODciIGhlaWdodD0iMjQuMDI4IiB2aWV3Qm94PSIwIDAgMjQuNjg3IDI0LjAyOCI+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTgyOTAgLTYwMTApIj48cGF0aCBkPSJNNTkuMDI5LDU2LjhjLTIuOTA4LjExLTUuNzYuNDExLTguMjI5LDEuNzgzLDIuNjA2LS4xMzcsNS4wNDctLjgsOC4xNDcuNDExQTE4LjYwNywxOC42MDcsMCwwLDAsNTkuMDI5LDU2LjhaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg4MjUyLjMxMiA1OTY3LjYyOCkiIGZpbGw9IiMzMDlkYTYiLz48cGF0aCBkPSJNNTQuNTIyLDMzLjY0N2MtLjc2OC0uMTY1LTEuMDE1LS4wNTUtMS44MS0uMjQ3LS40MzksMy42NDgtMy45NSw2LjI1NC01LjIxMiw3LjQzM0M1MC4xNjEsMzkuNDA3LDUyLjc2NywzNy43NjEsNTQuNTIyLDMzLjY0N1oiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDgyNTQuNzA2IDU5ODQuNjA5KSIgZmlsbD0iI2ZhYzQ0MSIvPjxwYXRoIGQ9Ik00MC4zNDcsMzEuN2MyLjY2MS0xLjgzOCwzLjctNS45NTIsMy4yMzctOC43YTIuODIxLDIuODIxLDAsMCwxLTIuNDQxLjQxMWMxLjIwNywyLjE2Ny45MzMsNS4wMi0xLjA0Miw4LjI4NEM0MC4zNDcsMzEuNyw0MC4wNzMsMzEuODYsNDAuMzQ3LDMxLjdaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg4MjYwLjA3NiA1OTkyLjE1NykiIGZpbGw9IiNmNjRkNGIiLz48cGF0aCBkPSJNMzAuODYxLDMwLjA3N2MuMjc0LTIuNjA2LjE5Mi01LjEtMS4zNzEtNy4wNzctLjQxMS40NjYtLjUyMS44NzgtMS4yODksMS4zMTdDMjkuOTI4LDI1LjkzNSwzMC4yLDI4LjA3NCwzMC44NjEsMzAuMDc3WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoODI2OC43MTIgNTk5Mi4xNTcpIiBmaWxsPSIjMWQ1N2E0Ii8+PHBhdGggZD0iTTU4LjA3OCwyMC42ODlsMS40MjYtLjc0MSwxLjQyNi43NDFMNjAuNjU2LDE5LjFsMS4xNTItMS4xMjUtMS41OTEtLjIxOUw1OS41LDE2LjNsLS43MTMsMS40NTQtMS41OTEuMjE5TDU4LjM1MiwxOS4xWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoODI0Ny42NjcgNTk5Ny4wMTkpIiBmaWxsPSIjZmFjNDQxIi8+PHBhdGggZD0iTTc5LjczOCwzOC44MTZsMS4wNy0xLjE3OUw3OS4yMTcsMzcuNWwtLjgtMS40LS42MzEsMS40ODEtMS41OTEuMywxLjIzNCwxLjA3LS4xOTIsMS41OTEsMS4zNzEtLjgyMywxLjQ4MS42NThaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg4MjMzLjg3OSA1OTgyLjY1KSIgZmlsbD0iIzMwOWRhNiIvPjxwYXRoIGQ9Ik00MS40MzYsNy4yMTdsLjQ5NCwxLjUwOS45MzMtMS4zMTdoMS41OTFsLS45Ni0xLjI2Mi40OTQtMS41MzYtMS41MDkuNTQ5TDQxLjE2Miw0LjJsLjA1NSwxLjYxOEwzOS45LDYuNzUxWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoODI2MC4yMjIgNjAwNS44KSIgZmlsbD0iI2Y2NGQ0YiIvPjxwYXRoIGQ9Ik00LjI2Miw1Ni4yMDcsMyw1Ni4xbDEuNjE4LDIuMDMuMzI5LTEuMDE1LDExLjc5NS00Ljk2NUwxMC42OCw0NS40Wm01LjY3OC0xLjctMS4xNTItLjMtLjkwNS43NjgtLjA1NS0xLjIwNy0xLjAxNS0uNjMxTDcuOTM3LDUyLjdsLjI3NC0xLjE1Mi43NDEuOTMzLDEuMTc5LS4wODItLjY1OCwxLjAxNVptMS41MDktNi40NDYuNDExLDEuMTI1LDEuMTUyLjMtLjk2Ljc0MS4wNTUsMS4yMDctLjk4Ny0uNjg2LTEuMTI1LjQzOS4zMjktMS4xNTJMOS41ODMsNDkuMWwxLjIwNy0uMDI3WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoODI4NyA1OTc1LjkwMSkiIGZpbGw9IiMxZDU3YTQiLz48L2c+PC9zdmc+\">\n                    </ion-icon>\n                  </div>\n\n                  <div class=\"d-flex text-submessage\" *ngIf=\"item.suggestedActions\">\n                    <p class=\"m-0\" [innerHtml]=\"item.text | ariTextResponse | linkify\"></p>\n                  </div>\n                </ng-container>\n\n                <!-- Suggested actions -->\n                <div class=\"card-attachments-container\" *ngIf=\"\n                    hasSuggestedActions(\n                      item.suggestedActions\n                    ) as suggestedActions\n                  \">\n                  <div class=\"suggested-action-container\" *ngIf=\"\n                      !ForWhichGoal(item.text) && !GoalType(suggestedActions)\n                    \">\n                    <ng-container *ngFor=\"let suggestedAction of suggestedActions\">\n                      <lig-ari-suggestion-buttons [suggestedAction]=\"suggestedAction\"\n                        (sendSelectionAction)=\"sendSelection(suggestedAction)\">\n                        {{ suggestedAction.value }}\n                      </lig-ari-suggestion-buttons>\n                    </ng-container>\n                  </div>\n\n                  <div class=\"select-options\" *ngIf=\"\n                      ForWhichGoal(item.text) || GoalType(suggestedActions)\n                    \">\n                    <div *ngFor=\"\n                        let suggestedAction of suggestedActions;\n                        let i = index\n                      \">\n                      <lig-ari-select-option [suggestedAction]=\"suggestedAction\" [index]=\"i\"\n                        (sendSelectionAction)=\"sendSelection(suggestedAction)\">\n                      </lig-ari-select-option>\n                    </div>\n                  </div>\n                </div>\n                <!-- End Suggested actions -->\n\n                <div *ngIf=\"item.attachments\">\n                  <div *ngIf=\"\n                      item.inputHint &&\n                      item.inputHint === 'acceptingInput' &&\n                      !item.attachmentLayout\n                    \">\n                    <div class=\"card\" *ngFor=\"let attachment of item.attachments\">\n                      <div class=\"card-header\">\n                        {{ attachment?.content?.text }}\n                      </div>\n                      <div class=\"card-body\" *ngIf=\"hasButtons(attachment?.content) as buttons\">\n                        <ion-button expand=\"block\" size=\"small\" *ngFor=\"let button of buttons\" class=\"margin-bottom-5\"\n                          (click)=\"sendSelection(button)\">\n                          {{ button.title }}\n                        </ion-button>\n                      </div>\n                    </div>\n                  </div>\n                  <div *ngIf=\"\n                      item?.inputHint === 'acceptingInput' &&\n                      item.attachmentLayout === 'list' && item.attachments?.length && item.attachments[0].content?.body?.length &&\n                      item.attachments[0].content?.body[0]?.type == 'Input.ChoiceSet'\n                    \">\n                    <div class=\"card\" *ngFor=\"let attachment of item.attachments\">\n                      <ng-container *ngIf=\"\n                      attachment.contentType ===\n                      'application/vnd.microsoft.card.adaptive'\n                        \">\n                        <lig-ari-multiple-selection-card [attachment]=\"attachment\"\n                          (sendSelectionEv)=\"sendSelection($event)\"></lig-ari-multiple-selection-card>\n                      </ng-container>\n                      <!--end multiple selection-->\n                    </div>\n                  </div>\n\n                  <div *ngIf=\"\n                      item.attachments?.length > 0 &&\n                      item.attachments[0].content?.title == 'Weather'\n                    \">\n                    <lig-weather-card [attachment]=\"item.attachments\" [ariMuteStatus]=\"isAriMuted\">\n                    </lig-weather-card>\n                  </div>\n                  <div class=\"card-attachments-container\" *ngIf=\"!item.inputHint\">\n                    <div class=\"card-attachments-card-container\">\n                      <ng-container *ngFor=\"\n                          let attachment of item.attachments;\n                          let i = index\n                        \">\n                        <!--\n                          =======================================================\n                          =======================================================\n                          =======================================================\n                         -->\n                        <ng-container *ngIf=\"\n                            attachment.contentType ===\n                              'application/vnd.microsoft.card.hero' &&\n                            !isJson(attachment.content?.text)\n                          \">\n                          <lig-ari-card-attachments *ngIf=\"i < showCardnumbers\" [attachment]=\"attachment\"\n                            (sendSelectionEv)=\"sendSelection($event)\"></lig-ari-card-attachments>\n                        </ng-container>\n                        <!--\n                          =======================================================\n                          =======================================================\n                          =======================================================\n                         -->\n                        <ng-container *ngIf=\"\n                            attachment.contentType ===\n                            'application/vnd.microsoft.card.video'\n                          \">\n                          <lib-ari-card-video-attachments *ngIf=\"i < showCardnumbers\" [attachment]=\"attachment\"\n                            (sendSelectionEv)=\"sendSelection($event)\"></lib-ari-card-video-attachments>\n                        </ng-container>\n\n                        <!--\n                          =======================================================\n                          =======================================================\n                          =======================================================\n                         -->\n                        <ng-container *ngIf=\"\n                            attachment.contentType ===\n                            'application/vnd.microsoft.card.thumbnail'\n                          \">\n                          <lib-ari-card-news-attachments *ngIf=\"i < showCardnumbers\" [attachment]=\"attachment\"\n                            (sendSelectionEv)=\"sendSelection($event)\"></lib-ari-card-news-attachments>\n                        </ng-container>\n                        <!--shop-->\n                        <ng-container\n                          *ngIf=\"item.entities?.length > 0 && item.entities[0]?.mentioned?.role === 'Products'\">\n                          <lib-ari-card-shop-attachments [attachment]=\"attachment\"\n                            (sendSelectionEv)=\"sendSelection($event)\"></lib-ari-card-shop-attachments>\n                        </ng-container>\n                        <!--\n                          =======================================================\n                          ======================= tasks ================================\n                          =======================================================\n                         -->\n                        <ng-container *ngIf=\"item.entities?.length > 0\">\n                          <ng-container *ngIf=\"\n                                item.entities[0]?.mentioned?.role === 'Tasks'\n                              \">\n                            <lig-ari-tasks [attachment]=\"attachment\" (sendSelectionEv)=\"sendSelection($event)\"\n                              (sendActionMessageEv)=\"sendActionMessage($event)\"></lig-ari-tasks>\n                          </ng-container>\n                        </ng-container>\n                      </ng-container>\n                      <ng-container *ngIf=\"item.attachments\">\n                        <ng-container *ngIf=\"item.attachments.length > 0\">\n                          <!-- Show more button for tasks -->\n                          <ng-container *ngIf=\"item.entities?.length > 0\">\n                            <ng-container *ngIf=\"\n                                  item.entities[0].mentioned?.role === 'Tasks' &&\n                                  item.entities[0].mentioned?.id > 3\n                                \">\n                              <lig-ari-show-cards *ngIf=\"tasksPagination\" (click)=\"\n                                    showMoreCards(\n                                      item.attachments.length,\n                                      index\n                                    )\n                                  \"></lig-ari-show-cards>\n                            </ng-container>\n                          </ng-container>\n                          <!-- Show more button for not tasks -->\n                          <ng-container *ngIf=\"item.attachments?.length > 3 && item.entities?.length === 0\">\n                            <lig-ari-show-cards *ngIf=\"showCardnumbers != item.attachments.length\"\n                              (click)=\"showMoreCards(item.attachments.length)\"></lig-ari-show-cards>\n                          </ng-container>\n                        </ng-container>\n                      </ng-container>\n                    </div>\n                  </div>\n                </div>\n              </div>\n              <!-- <div\n                class=\"card-attachments-container\"\n                *ngIf=\"\n                  hasSuggestedActions(item.suggestedActions) as suggestedActions\n                \"\n              >\n              <lig-ari-was-helpful\n              *ngIf=\"\n                hasWasIHelpful(item.text) || hasAnythingElse(item.text)\n              \"\n              [labelText]=\"item.text\"\n              [likeText]=\"suggestedActions[0].title\"\n              [unlikelText]=\"suggestedActions[1].title\"\n              (likeClick)=\"sendSelection(suggestedActions[0])\"\n              (dislikeClick)=\"sendSelection(suggestedActions[1])\"\n            ></lig-ari-was-helpful>\n              </div> -->\n            </li>\n          </ng-container>\n        </ul>\n      </div>\n    </div>\n  </ng-container>\n  <ng-container *ngIf=\"showError\">\n    <lig-ari-error [errorResponse]=\"errorResponse\" (onClick)=\"refreshAri()\"></lig-ari-error>\n  </ng-container>\n</ion-content>\n\n<ng-container *ngIf=\"plt.is('capacitor') || plt.is('cordova')\">\n  <ion-footer no-border lines=\"none\" [keyboardAttach]=\"content\">\n    <ng-container *ngTemplateOutlet=\"footerContent\"></ng-container>\n  </ion-footer>\n</ng-container>\n<ng-container *ngIf=\"!plt.is('capacitor') || !plt.is('cordova')\">\n  <ion-footer no-border lines=\"none\">\n    <ng-container *ngTemplateOutlet=\"footerContent\"></ng-container>\n  </ion-footer>\n</ng-container>\n\n<ng-template #footerContent>\n  <lig-ari-loader *ngIf=\"showLoading\"></lig-ari-loader>\n  <lig-ari-chat-toolbar *ngIf=\"!showError && !showSplash\" [form]=\"form\" [showLoading]=\"showLoading\" (sendEvent)=\"send()\"\n    [activatedByVoice]=\"activatedByVoice\" (startListeningEvent)=\"startListening($event)\"></lig-ari-chat-toolbar>\n</ng-template>\n\n<ng-container *ngIf=\"ariCloseByTimeout\">\n  <div class=\"ari-timeout-reminder animate__fadeIn\">\n    <ion-button (click)=\"closeTimeoutReminder()\" color=\"dark\" fill=\"clear\">\n      <lig-ari-icon class=\"ari-close\" slot=\"icon-only\" [name]=\"'icon-close'\"></lig-ari-icon>\n    </ion-button>\n    <div class=\"ari-timeout-message\">\n      <lig-ari-logo></lig-ari-logo>\n      <span class=\"timeout-label\">\n        {{ ariTimeoutMessage }}\n      </span>\n    </div>\n  </div>\n</ng-container>","import { Injectable } from '@angular/core';\nimport { ModalController, Platform } from '@ionic/angular';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport isEmpty from 'lodash-es/isEmpty';\nimport { v4 as uuidv4 } from 'uuid';\nimport { AriMobileComponent } from '../ari-mobile/ari-mobile.component';\nimport { LocalstorageService } from './localstorage.service';\nimport { AriSpeechService } from './ari-speech.service';\nimport { SpeechRecognition as TSpeechRecognition } from '@ionic-native/speech-recognition/ngx';\nimport { ariRhymes } from '../model/ari-bot.mode';\n// import { AriBotService } from '../services/ari-bot.service';\nimport { CommonService } from './common.service';\n\ndeclare const window: any;\nexport enum AriStatus {\n  Open,\n  Close,\n}\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class NgxLigAriService {\n  private showAriChatBox = false;\n  private status: BehaviorSubject<AriStatus> = new BehaviorSubject(\n    AriStatus.Close\n  );\n  ariPopUp = false;\n  activatedByVoice = false;\n  voiceActivatorOff = true;\n  private userUUID: string;\n  SpeechRecognition;\n  constructor(\n    private modalController: ModalController,\n    private plt: Platform,\n    private localStorageService: LocalstorageService,\n    private speechRecognition: TSpeechRecognition,\n    private commonService: CommonService,\n    // private ariBotService: AriBotService,\n    private ariSpeechService: AriSpeechService\n  ) {\n    this.status.next(AriStatus.Close);\n    this.initAriStatus();\n    setTimeout(() => {\n      this.commonService.setNewUser();\n    }, 1000);\n  }\n\n  private async openMobileAri() {\n    const modal = await this.modalController.create({\n      component: AriMobileComponent,\n      cssClass: 'ari-tablet-modal-css',\n      backdropDismiss: false,\n      showBackdrop: false,\n      keyboardClose: false,\n    });\n    modal.present();\n  }\n\n  private initAriStatus() {\n    this.status.next(AriStatus.Close);\n  }\n\n  setUserID(user: string) {\n    this.userUUID = user;\n  }\n\n  getUser() {\n    if (isEmpty(this.userUUID)) {\n      return uuidv4();\n    } else {\n      return this.userUUID;\n    }\n  }\n\n  async ariVoiceActivator() {\n    // Initiate on main component to call ari by simply saying \"Hey ari\" or \"Ok ari\"\n    this.ariSpeechService.initWebSpeechRecognition();\n    this.plt.ready().then(() => {\n      if (this.plt.is('cordova') || this.plt.is('capacitor')) {\n        this.speechRecognition\n          .hasPermission()\n          .then((hasPermission: boolean) => {\n            if (!hasPermission) {\n              this.speechRecognition.requestPermission().then(() => {\n                this.startMobileVoiceActivation();\n              });\n            } else {\n              this.startMobileVoiceActivation();\n            }\n          });\n      } else {\n        const SpeechRecognition =\n          window.SpeechRecognition || window.webkitSpeechRecognition;\n        if (SpeechRecognition && !this.voiceActivatorOff) {\n          this.SpeechRecognition = new SpeechRecognition();\n          this.SpeechRecognition.start();\n          this.SpeechRecognition.addEventListener('result', (e) => {\n            const transcript = Array.from(e.results)\n              .map((result) => result[0])\n              .map((result) => result.transcript)\n              .join('');\n            if (ariRhymes.indexOf(transcript.toLowerCase()) >= 0) {\n              console.log(transcript)\n              this.ariPopUp = true;\n              if (this.activatedByVoice) {\n                this.showAriByVoice();\n              } else {\n                this.showAri();\n              }\n              this.SpeechRecognition.stop();\n            }\n          });\n          this.SpeechRecognition.addEventListener('end', (e) => {\n            if (!this.ariPopUp && !this.voiceActivatorOff) {\n              this.stopCurrentSpeech();\n              this.ariVoiceActivator();\n            }\n          });\n        }\n      }\n    });\n  }\n  startMobileVoiceActivation() {\n    this.speechRecognition\n      .startListening({\n        language: 'en-US',\n        showPartial: false,\n        showPopup: false,\n      })\n      .subscribe(\n        (matches: any) => {\n          const foundmatches = matches.filter((item) => {\n            if (ariRhymes.indexOf(item.toLowerCase()) >= 0) {\n              return item;\n            }\n          });\n          if (foundmatches.length > 0) {\n            this.ariPopUp = true;\n            if (this.activatedByVoice) {\n              this.showAriByVoice();\n            } else {\n              this.showAri();\n            }\n            this.speechRecognition.stopListening();\n          }\n        },\n        (onerror) => {\n          console.error('Speech Recognition error: ', onerror);\n          if (onerror === 'No match') {\n            if (!this.ariPopUp) {\n              this.ariVoiceActivator();\n            }\n          }\n        }\n      );\n  }\n  ariVoiceActivatorOn() {\n    this.activatedByVoice = true;\n    this.voiceActivatorOff = false;\n    this.ariVoiceActivator();\n  }\n\n  ariVoiceActivatorOff() {\n    this.voiceActivatorOff = true;\n    this.stopCurrentSpeech();\n  }\n\n  showAriByVoice() {\n    if (this.plt.is('mobile') && !this.plt.is('tablet')) {\n      setTimeout(() => {\n        this.status.next(AriStatus.Open);\n        this.openMobileAri();\n      }, 1000);\n    } else if (this.plt.is('desktop') || this.plt.is('tablet')) {\n      setTimeout(() => {\n        this.status.next(AriStatus.Open);\n      }, 1000);\n    }\n  }\n\n  showAri() {\n    console.log(\"isDesktop? \", this.plt.is(\"desktop\"));\n    console.log(\"Platform? \", this.plt.platforms());\n    this.activatedByVoice = false;\n    // this.ariBotService.initConversation();\n    if (this.plt.is('mobile') && !this.plt.is('tablet')) {\n      this.speechRecognition.stopListening();\n      setTimeout(() => {\n        this.status.next(AriStatus.Open);\n        this.openMobileAri();\n      }, 1000);\n    } else if ((this.plt.is('desktop') || this.plt.is('tablet'))) {\n      this.stopCurrentSpeech();\n      setTimeout(() => {\n        this.status.next(AriStatus.Open);\n      }, 1000);\n    }\n  }\n\n  closeAri() {\n    this.stopCurrentSpeech();\n    if (this.plt.is('mobile') && !this.plt.is('tablet')) {\n      if (this.speechRecognition) {\n        this.speechRecognition.stopListening();\n      }\n      this.status.next(AriStatus.Close);\n      this.modalController.dismiss();\n    } else if (this.plt.is('desktop') || this.plt.is('tablet')) {\n      if (this.SpeechRecognition) {\n        this.SpeechRecognition.stop();\n      }\n      this.status.next(AriStatus.Close);\n    }\n    this.ariPopUp = false;\n    this.localStorageService.removeItem('AriCreds');\n    setTimeout(() => {\n      if (!this.voiceActivatorOff) {\n        this.ariVoiceActivator(); // Onclose recall voice activator for Desktop\n      }\n      this.activatedByVoice = false;\n    }, 1000);\n  }\n  stopCurrentSpeech() {\n    // STOP VOICE ACTIVATION TO PREVENT RUNNING 2 SPEECH RECOGNITION THAT CAUSE \"ABORTED\" ERROR\n    if (this.plt.is('cordova') || this.plt.is('capacitor')) {\n      this.speechRecognition.stopListening();\n    } else {\n      const SpeechRecognition =\n        window.SpeechRecognition || window.webkitSpeechRecognition;\n      if (SpeechRecognition) {\n        this.SpeechRecognition = new SpeechRecognition();\n        this.SpeechRecognition.stop();\n      }\n    }\n  }\n  toggleAri() {\n    this.showAriChatBox = !this.showAriChatBox;\n    const status = this.showAriChatBox ? AriStatus.Open : AriStatus.Close;\n    this.status.next(status);\n  }\n\n  onAriStatusChange(): Observable<AriStatus> {\n    return this.status.asObservable();\n  }\n\n  getCurrentAriStatus(): AriStatus {\n    return this.status.getValue();\n  }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'lib-ari-web',\n  templateUrl: './ari-web.component.html',\n  styleUrls: ['./ari-web.component.scss'],\n})\nexport class AriWebComponent implements OnInit {\n  sizeClass = 'is-25';\n\n  constructor() {}\n\n  ngOnInit() {}\n\n  get currentSize(): number {\n    switch (this.sizeClass) {\n      case 'is-25':\n        return 1;\n\n      case 'is-50':\n        return 2;\n\n      case 'is-75':\n        return 3;\n\n      case 'is-100':\n        return 4;\n    }\n  }\n\n  resize(size: any): void {\n    window.localStorage.setItem('ariSize', size);\n    switch (size) {\n      case 2:\n        this.sizeClass = 'is-50';\n        break;\n\n      case 3:\n        this.sizeClass = 'is-75';\n        break;\n\n      case 4:\n        this.sizeClass = 'is-100';\n        break;\n\n      default:\n        this.sizeClass = 'is-25';\n        break;\n    }\n  }\n}\n","<div class=\"ari-page is-active\" [ngClass]=\"sizeClass\">\n  <lib-ari-mobile\n    class=\"ion-page\"\n    (ariOnResize)=\"resize($event)\"\n  ></lib-ari-mobile>\n</div>\n","import { Component, OnInit, OnDestroy, Input, Inject } from '@angular/core';\nimport { Platform } from '@ionic/angular';\nimport { Subject } from 'rxjs';\n\nimport {\n  NetworkServiceService,\n  ConnectionStatus,\n} from '../services/network-service.service';\nimport { AriBotService } from '../services/ari-bot.service';\nimport { NgxLigAriService, AriStatus } from '../services/ngx-lig-ari.service';\nimport { PubsubService } from '../services/pubsub.service';\nimport { AriConfig, AriConfigService } from '../model/ari-bot.mode';\nimport { LocalstorageService } from '../services/localstorage.service';\n\ndeclare const document: any;\n\n@Component({\n  // tslint:disable-next-line: component-selector\n  selector: 'ngx-lig-ari',\n  templateUrl: './ngx-lig-ari.component.html',\n  styleUrls: ['./ngx-lig-ari.component.scss'],\n})\nexport class NgxLigAriComponent implements OnInit, OnDestroy {\n  private unsubscribe$ = new Subject<any>();\n\n  pltClass: string;\n  showAriChatBox: boolean;\n  showFab: boolean;\n\n  @Input() buttonVertical: 'bottom' | 'center' | 'top' | undefined;\n  @Input() buttonHorizontal: 'center' | 'end' | 'start' | undefined;\n  @Input() buttonSlot: string;\n  @Input() buttonEdge = false;\n\n  constructor(\n    public plt: Platform,\n    public networkService: NetworkServiceService,\n    public ariBotService: AriBotService,\n    public localStorage: LocalstorageService,\n    public ariServices: NgxLigAriService,\n    public pubsub: PubsubService,\n    @Inject(AriConfigService) private config: AriConfig\n  ) {\n    this.showAriChatBox = false;\n    if (this.config) {\n      this.showFab = this.config.showFab;\n    }\n\n    this.ariServices.onAriStatusChange().subscribe((status: AriStatus) => {\n      if (status === AriStatus.Open) {\n        this.showAriChatBox = true;\n      } else if (status === AriStatus.Close) {\n        this.showAriChatBox = false;\n      }\n    });\n  }\n\n  ngOnInit() {\n    this.pltClass = this.getContainerClass();\n    // const tag = document.createElement('script');\n    // tag.src = 'https://www.youtube.com/iframe_api';\n    // document.body.appendChild(tag);\n  }\n\n  ionViewDidEnter() {\n    // const tag = document.createElement('script');\n    // tag.src = 'https://www.youtube.com/iframe_api';\n    // document.body.appendChild(tag);\n  }\n\n  ngOnDestroy() {\n    this.unsubscribe$.next();\n    this.unsubscribe$.complete();\n  }\n\n  getContainerClass() {\n    let klass = '';\n\n    if (this.plt.is('ios') || this.plt.is('iphone')) {\n      klass = `${klass} mobile-device`;\n    }\n\n    if (this.plt.is('android')) {\n      klass = `${klass} android`;\n    }\n\n    return klass;\n  }\n\n  async openAri() {\n    if (\n      this.networkService.getCurrentNetworkStatus() === ConnectionStatus.Offline\n    ) {\n      // this.toastr.showOfflineWarning();\n      return;\n    }\n    this.ariServices.showAri();\n  }\n\n  closeAri() {\n    this.ariServices.closeAri();\n  }\n}\n","<ng-template #ariTemplate>\n  <ion-fab [vertical]=\"buttonVertical\" [horizontal]=\"buttonHorizontal\" [slot]=\"buttonSlot\" [edge]=\"buttonEdge\"\n    *ngIf=\"showFab\">\n    <ion-fab-button class=\"ari-open-btn\" #ariButton (click)=\"openAri()\">\n      <lig-ari-logo></lig-ari-logo>\n    </ion-fab-button>\n  </ion-fab>\n</ng-template>\n\n<div id=\"fb-root\"></div>\n\n<ng-container *ngIf=\"plt.is('desktop') || plt.is('tablet')\">\n  <lib-ari-web *ngIf=\"showAriChatBox\"></lib-ari-web>\n  <ng-container *ngTemplateOutlet=\"ariTemplate\"></ng-container>\n</ng-container>\n\n<ng-container *ngIf=\"plt.is('mobile') && !plt.is('tablet')\">\n  <ng-container *ngTemplateOutlet=\"ariTemplate\"></ng-container>\n</ng-container>","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'lig-ari-uploader',\n  templateUrl: './ari-uploader.component.html',\n  styleUrls: ['./ari-uploader.component.scss'],\n})\nexport class AriUploaderComponent implements OnInit {\n  constructor() {}\n\n  ngOnInit() {}\n}\n","<ng-container>\n  <ion-card>\n    <ion-card-header>\n      <ion-card-subtitle>Uploading files...</ion-card-subtitle>\n    </ion-card-header>\n    <ion-card-content> </ion-card-content>\n  </ion-card>\n</ng-container>\n<ng-container>\n  <ion-button expand=\"block\" size=\"large\" color=\"0058FF\"\n    >>Add files to upload</ion-button\n  >\n</ng-container>\n","import {\n  Component,\n  OnInit,\n  Output,\n  EventEmitter,\n  Input,\n} from '@angular/core';\n\n@Component({\n  selector: 'lig-ari-was-helpful',\n  templateUrl: './ari-was-helpful.component.html',\n  styleUrls: ['./ari-was-helpful.component.scss'],\n})\nexport class AriWasHelpfulComponent implements OnInit {\n  @Output() likeClick = new EventEmitter<any>();\n  @Output() dislikeClick = new EventEmitter<any>();\n  @Input() labelText: string;\n\n  @Input() likeText: string;\n  @Input() unlikelText: string;\n\n  constructor() {}\n\n  ngOnInit() {}\n\n  onLikeEv(ev: any) {\n    this.likeClick.emit(ev);\n  }\n\n  onDislikeEv(ev: any) {\n    this.dislikeClick.emit(ev);\n  }\n}\n","<ion-card class=\"ion-no-border\">\n  <!-- <img\n    class=\"ari-logo\"\n    src=\"data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='71.787' height='72' viewBox='0 0 71.787 72'%3E%3Cg transform='translate(-680 -263)'%3E%3Cpath d='M609.693,109.845s28.392-10.146,43.1-.717c-3.341-7.814-10.137-11.894-27.367-10.688s-24.913,9.359-24.913,9.359l-1.958,3.72s.759,1.428,1.027,1.473a13.263,13.263,0,0,0,3.258,0,10.871,10.871,0,0,1,2.053-.759C605.877,111.876,609.693,109.845,609.693,109.845Z' transform='translate(88.458 167.517)' fill='%23de4d4d'/%3E%3Cpath d='M594.388,119.068c-1.592,2.6,1.205,2.544,2.946,2.1a16.169,16.169,0,0,0,3.3-1.339c.536-.223,2.009-.937,2.634,1.339s.223,7.321-3.214,9.2a24.313,24.313,0,0,1-9.865,3.169c-2.857.134-3.893-.186-2.232-4.2A35.205,35.205,0,0,1,594.388,119.068Z' transform='translate(94.636 156.218)' fill='%23ff6060'/%3E%3Cpath d='M583.234,154.027s4.679-9.7,31.353-15c25.792-4.119,32.429-.021,38,7.233s-.628,17.022-.628,17.022.522-9.633-14.565-11.722-50.775,6.209-50.775,6.209a2.22,2.22,0,0,1-2.437-.464A5.7,5.7,0,0,1,583.234,154.027Z' transform='translate(96.767 146.282)' fill='%23007bcc'/%3E%3Cpath d='M605.135,97.052c2.816-1.545,7.031-3.338,12.021-2.271,7.208,1.791,4.7,10.063,2.615,13.365a52.723,52.723,0,0,1-16.936,16.232c-9.106,5.356-19.373,9.061-19.6,5.178a32.561,32.561,0,0,0,2.668,12.581c2.143,4.91,6.175,3.022,9,2.266,6.274-1.681,27.519-13.615,37.558-30.559,8.53-17.176-4.41-20.368-9.807-21.239A32.234,32.234,0,0,0,602,96.318c-7.254,4.178,0,3.83,0,3.83A3.587,3.587,0,0,0,605.135,97.052Z' transform='translate(96.768 170.773)' fill='%2309f'/%3E%3Cpath d='M608.048,210.038s-3.653-3.214,10.233-9.865,28.121-8.693,36.289-4.259,2.042,14.061,2.042,14.061l-7.993,1.634s3.835-4.172-1.9-5.447-30.153,7.122-33.015,7S608.048,210.038,608.048,210.038Z' transform='translate(83.547 115.827)' fill='%23e3b455'/%3E%3Cpath d='M650.6,105.051s15.812,8.461.886,28.518c-17.7,23.752-41.485,30.672-43.935,28.477,2.316,2.316,8.32,7.428,14.378,7.462s27.972-8.163,40.1-29.947S650.6,105.051,650.6,105.051Z' transform='translate(84.037 163.819)' fill='%23fc6'/%3E%3Cpath d='M694.473,168.05c.866,13.366-17.863,34.862-38.038,37.24,13.232.539,21.516-3.02,29.159-10.779S695.525,177.246,694.473,168.05Z' transform='translate(57.073 129.658)' fill='%239c6'/%3E%3C/g%3E%3C/svg%3E\"\n    alt=\"ARI Logo\"\n  /> -->\n\n  <ion-card-content>\n    <div class=\"was-helpful-desc\">\n      {{ labelText }}\n    </div>\n    <div class=\"was-helpful-actions\">\n      <ion-row>\n        <ion-col>\n          <!-- <div class=\"was-helpful-action-like\" (click)=\"onLikeEv($event)\">\n            <lig-ari-icon [name]=\"'liked'\"></lig-ari-icon>\n          </div> -->\n          <ion-button shape=\"round\" fill=\"outline\" (click)=\"onLikeEv($event)\">\n            {{ likeText }}</ion-button\n          >\n        </ion-col>\n        <ion-col>\n          <!-- <div class=\"was-helpful-action-dislike\" (click)=\"onDislikeEv($event)\">\n            <lig-ari-icon [name]=\"'unliked'\"></lig-ari-icon>\n          </div> -->\n          <ion-button shape=\"round\" fill=\"outline\" (click)=\"onDislikeEv($event)\">\n            {{ unlikelText }}</ion-button\n          >\n        </ion-col>\n      </ion-row>\n    </div>\n  </ion-card-content>\n</ion-card>\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'lig-ari-show-more',\n  templateUrl: './ari-show-more.component.html',\n  styleUrls: ['./ari-show-more.component.scss'],\n})\nexport class AriShowMoreComponent implements OnInit {\n  constructor() {}\n\n  ngOnInit() {}\n}\n","<ion-card class=\"ion-activatable ripple-parent\">\n  <ion-ripple-effect></ion-ripple-effect>\n  <ion-card-content>\n    <div class=\"center-label\">\n      <h3>\n        Show more results\n      </h3>\n      <lig-ari-icon [name]=\"'menu'\"></lig-ari-icon>\n    </div>\n  </ion-card-content>\n</ion-card>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport * as moment from 'moment';\n\n@Pipe({ name: 'convert24to12' })\nexport class Time12Format implements PipeTransform {\n  transform(time: any): any {\n    let res = 0;\n    if (time) {\n      if (time.length > 0 && time.length < 6) {\n        time = moment(time, 'hh:mm').format('LT');\n      } else {\n        let ariTime = time.substring(time.length - 5);\n        res = +ariTime.substring(0, 2);\n        if (Number.isInteger(res)) {\n          ariTime = moment(ariTime, 'hh:mm').format('LT');\n          time = time.substring(0, time.length - 5) + ' ' + ariTime;\n        }\n      }\n    }\n    return time;\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { AriTextResponsePipe } from './ari-text-response.pipe';\nimport { LinkifyPipe } from './linkify.pipe';\nimport { TruncatePipe } from './truncate.pipe';\nimport { TimeAgoPipe } from './time-ago.pipe';\nimport { KeyboardAttachDirective } from '../directives/keyboard-attach.directive';\nimport { Time12Format } from './12hour.pipe';\nimport { TaskColorPipe } from './task-color.pipe';\n\n@NgModule({\n  declarations: [\n    AriTextResponsePipe,\n    LinkifyPipe,\n    TruncatePipe,\n    TimeAgoPipe,\n    KeyboardAttachDirective,\n    Time12Format,\n    TaskColorPipe,\n  ],\n  imports: [CommonModule],\n  exports: [\n    AriTextResponsePipe,\n    LinkifyPipe,\n    TruncatePipe,\n    TimeAgoPipe,\n    KeyboardAttachDirective,\n    Time12Format,\n    TaskColorPipe,\n  ],\n})\nexport class PipesModule {}\n","// managehttp.interceptor.ts\nimport { Injectable } from '@angular/core';\nimport {\n  HttpRequest,\n  HttpHandler,\n  HttpEvent,\n  HttpInterceptor,\n} from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { HttpCancelService } from './httpcancel.service';\nimport { takeUntil } from 'rxjs/operators';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class ManageHttpInterceptor implements HttpInterceptor {\n  constructor(private httpCancelService: HttpCancelService) {}\n\n  intercept<T>(\n    req: HttpRequest<T>,\n    next: HttpHandler\n  ): Observable<HttpEvent<T>> {\n    return next\n      .handle(req)\n      .pipe(takeUntil(this.httpCancelService.onCancelPendingRequests()));\n  }\n}\n","import {\n  NgModule,\n  ModuleWithProviders,\n  CUSTOM_ELEMENTS_SCHEMA,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { IonicModule } from '@ionic/angular';\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { NgxLigAriComponent } from './ari-container/ngx-lig-ari.component';\nimport { NgxLigAriService } from './services/ngx-lig-ari.service';\n\nimport { AriMobileComponent } from './ari-mobile/ari-mobile.component';\nimport { AriWebComponent } from './ari-web/ari-web.component';\nimport { AriListenerSheetComponent } from './components/ari-listener-sheet/ari-listener-sheet.component';\nimport { AriUploaderComponent } from './components/ari-uploader/ari-uploader.component';\nimport { AriWasHelpfulComponent } from './components/ari-was-helpful/ari-was-helpful.component';\nimport { AriCardAttachmentsComponent } from './components/ari-card-attachments/ari-card-attachments.component';\nimport { AriErrorComponent } from './components/ari-error/ari-error.component';\nimport { AriShowMoreComponent } from './components/ari-show-more/ari-show-more.component';\nimport { AriSuggestionButtonsComponent } from './components/ari-suggestion-buttons/ari-suggestion-buttons.component';\nimport { AriLoaderComponent } from './components/ari-loader/ari-loader.component';\nimport { AriChatToolbarComponent } from './components/ari-chat-toolbar/ari-chat-toolbar.component';\nimport { AriSplashScreenComponent } from './components/ari-splash-screen/ari-splash-screen.component';\nimport { AriLogoComponent } from './components/ari-logo/ari-logo.component';\nimport { AriSvgIconComponent } from './components/ari-svg-icon/ari-svg-icon.component';\n\nimport { AriConfig, AriConfigService } from './model/ari-bot.mode';\n\nimport { PipesModule } from './pipes/pipes.module';\nimport { ManageHttpInterceptor } from './services/manage-http.interceptor.service';\n\nimport { SpeechRecognition } from '@ionic-native/speech-recognition/ngx';\nimport { TextToSpeech } from '@ionic-native/text-to-speech/ngx';\nimport { AriCardVideoAttachmentsComponent } from './components/ari-card-video-attachments/ari-card-video-attachments.component';\nimport { AriCardNewsAttachmentsComponent } from './components/ari-card-news-attachments/ari-card-news-attachments.component';\nimport { AriSelectOptionComponent } from './components/ari-select-option/ari-select-option.component';\nimport { WeatherCardComponent } from './components/weather-card/weather-card.component';\nimport { AriShowCardsComponent } from './components/ari-show-cards/ari-show-cards.component';\nimport { AriTasksComponent } from './components/ari-tasks/ari-tasks.component';\nimport { AriChartComponent } from './components/ari-chart/ari-chart.component';\nimport { AriBotService } from './services/ari-bot.service';\nimport { GoogleEventsAnalyticsService } from './services/google-analytics.service';\nimport { AriMultipleSelectionComponent } from './components/ari-multiple-selection-card/ari-multiple-selection-card.component';\nimport { AriCardShopAttachmentsComponent } from './components/ari-card-shop-attachments/ari-card-shop-attachments.component';\n\nconst componentsDeclaration = [\n  NgxLigAriComponent,\n  AriMobileComponent,\n  AriWebComponent,\n  AriWasHelpfulComponent,\n  AriListenerSheetComponent,\n  AriUploaderComponent,\n  AriCardAttachmentsComponent,\n  AriErrorComponent,\n  AriShowMoreComponent,\n  AriSuggestionButtonsComponent,\n  AriLoaderComponent,\n  AriChatToolbarComponent,\n  AriSplashScreenComponent,\n  AriLogoComponent,\n  AriSvgIconComponent,\n  AriCardVideoAttachmentsComponent,\n  AriCardNewsAttachmentsComponent,\n  AriCardShopAttachmentsComponent,\n  AriSelectOptionComponent,\n  WeatherCardComponent,\n  AriShowCardsComponent,\n];\n\n@NgModule({\n  declarations: [\n    ...componentsDeclaration,\n    AriCardVideoAttachmentsComponent,\n    AriCardNewsAttachmentsComponent,\n    AriCardShopAttachmentsComponent,\n    AriSelectOptionComponent,\n    WeatherCardComponent,\n    AriShowCardsComponent,\n    AriTasksComponent,\n    AriChartComponent,\n    AriMultipleSelectionComponent\n  ],\n  imports: [\n    CommonModule,\n    HttpClientModule,\n    FormsModule,\n    ReactiveFormsModule,\n    IonicModule.forRoot({\n      scrollAssist: false,\n      platform: {\n        /** The default `desktop` function returns false for devices with a touchscreen.\n        * This is not always wanted, so this function tests the User Agent instead.\n        **/\n        'desktop': (win) => {\n          const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(win.navigator.userAgent);\n          return !isMobile;\n        }\n      },\n    }),\n    PipesModule,\n  ],\n  exports: [NgxLigAriComponent],\n  entryComponents: [AriMobileComponent, AriListenerSheetComponent],\n  providers: [\n    SpeechRecognition,\n    TextToSpeech,\n    AriBotService,\n    GoogleEventsAnalyticsService,\n    {\n      provide: HTTP_INTERCEPTORS,\n      useClass: ManageHttpInterceptor,\n      multi: true,\n    },\n    {\n      provide: 'googleTagManagerId',\n      useValue: JSON.parse(localStorage.getItem('gtm')),\n    },\n  ],\n  schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgxLigAriModule {\n  static forRoot(config: AriConfig): ModuleWithProviders<NgxLigAriModule> {\n    return {\n      ngModule: NgxLigAriModule,\n      providers: [\n        NgxLigAriService,\n        {\n          provide: AriConfigService,\n          useValue: config,\n        },\n      ],\n    };\n  }\n}\n","/*\n * Public API Surface of ngx-lig-ari\n */\n\nexport * from './lib/services/ngx-lig-ari.service';\nexport * from './lib/ari-container/ngx-lig-ari.component';\nexport * from './lib/ngx-lig-ari.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.AriSpeechService","i4.AriSvgIconComponent","i5","uuidv4","i3.AriBotService","i4.AriLogoComponent","i1.AriSpeechService","i2","i3","i3.TruncatePipe","i3.TimeAgoPipe","i1.AriBotService","i3.AriSvgIconComponent","i4.AriLoaderComponent","i5.AriChartComponent","i6","i7.TaskColorPipe","i1","cloneDeep","i13.AriLogoComponent","i14.AriSvgIconComponent","i15.AriSplashScreenComponent","i16.AriSuggestionButtonsComponent","i17.AriSelectOptionComponent","i18.AriMultipleSelectionComponent","i19.WeatherCardComponent","i20.AriCardAttachmentsComponent","i21.AriCardVideoAttachmentsComponent","i22.AriCardNewsAttachmentsComponent","i23.AriCardShopAttachmentsComponent","i24.AriTasksComponent","i25.AriShowCardsComponent","i26.AriErrorComponent","i27.AriLoaderComponent","i28.AriChatToolbarComponent","i29","i30.KeyboardAttachDirective","i31.LinkifyPipe","i32.AriTextResponsePipe","i2.LocalstorageService","i4.CommonService","i5.AriSpeechService","i1.AriMobileComponent","i7.AriLogoComponent","i8.AriWebComponent","i9","i2.AriSvgIconComponent","i1.HttpCancelService"],"mappings":"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"}