@snugdesk/avaya-ipo-widget 0.2.2 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -21,17 +21,24 @@ import { MatButtonModule } from '@angular/material/button';
21
21
  import { PhoneNumberUtil, PhoneNumberFormat } from 'google-libphonenumber';
22
22
 
23
23
  const APP_CONFIG = {
24
+ // Widget build version — shown in the footer so you can confirm which build is loaded.
25
+ // Keep this in sync with the "version" field in projects/avaya-ipo-widget/package.json.
26
+ WIDGET_VERSION: '0.2.3',
24
27
  ASSET_CDN_BASE_URL: 'https://d39qei1249155h.cloudfront.net/avaya-ipo-widget',
25
28
  AWL_SDK_URL: 'https://d39qei1249155h.cloudfront.net/avaya-ipo-widget/assets/js/awl.min.js',
26
29
  AGENT_STATUS_API_URL: 'https://v2xla9n0t6.execute-api.us-west-2.amazonaws.com/dev',
27
30
  CALL_HISTORY_API_URL: 'https://ktgxyy2x2h.execute-api.us-west-2.amazonaws.com/avayaCallHistory',
31
+ // Snugdesk backend (SnugdeskApiV1) endpoint that upserts a call as a real Interaction so it shows
32
+ // up in the same call history as every other channel in snugdesk-app.
33
+ INTERACTION_CALL_LOG_API_URL: 'https://api.snugdesk.com/avaya-ipo/call-log',
34
+ // Stores the full call recording in the backend and links it to the Interaction, triggering the
35
+ // server-side Gemini transcription/summary pipeline.
36
+ INTERACTION_CALL_RECORDING_API_URL: 'https://api.snugdesk.com/avaya-ipo/call-recording',
28
37
  CALL_SESSION_WS_URL: 'wss://hymtqh7k82.execute-api.us-west-2.amazonaws.com/callSession',
29
- TRANSCRIPTION_WS_URL: 'ws://localhost:3000/ws/transcribe',
30
- TRANSCRIPTION_WS_MIME_TYPE: 'audio/pcm;rate=16000;encoding=s16le',
31
- TRANSCRIPTION_LANGUAGE_CODE: 'hi-IN',
32
- TRANSCRIPTION_ALT_LANGUAGE_CODES: ['en-IN'],
33
- TRANSCRIPTION_MODEL: 'latest_short',
34
- POSTCALL_TRANSCRIBE_API_URL: 'http://localhost:3000/api/transcribe-call-gemini',
38
+ TRANSCRIPTION_WS_URL: 'ws://localhost:3100/live-stt/stream',
39
+ TRANSCRIPTION_LANGUAGE: 'auto',
40
+ TRANSCRIPTION_MODEL: 'nova-2',
41
+ POSTCALL_TRANSCRIBE_API_URL: 'https://nqfo27pht1.execute-api.us-east-1.amazonaws.com/Stage/ai-transcription/post-call-analysis',
35
42
  COUNTRY_ENDPOINT: 'https://d39qei1249155h.cloudfront.net/avaya-ipo-widget/assets/metadata/countries.json',
36
43
  PHONE_NUMBER_LOOKUP_BASE: 'https://api.snugdesk.com/phone-numbers',
37
44
  PHONE_NUMBER_HLR_BASE: 'https://api.snugdesk.com/phone-numbers/hlr',
@@ -246,7 +253,6 @@ class AvayaIPOService {
246
253
  disableResiliency: false,
247
254
  };
248
255
  agentStatusApiUrl = APP_CONFIG.AGENT_STATUS_API_URL;
249
- CALL_HISTORY_API_URL = APP_CONFIG.CALL_HISTORY_API_URL;
250
256
  prewarmedStream;
251
257
  isSafari() {
252
258
  return /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
@@ -755,13 +761,17 @@ class AvayaIPOService {
755
761
  }
756
762
  }
757
763
  logCall(callData) {
758
- // 1) Build the HttpParams with "action=log"
759
- const params = new HttpParams().set('action', 'log');
760
- // 2) Set headers to JSON
761
- const headers = new HttpHeaders({ 'Content-Type': 'application/json' });
762
- // 3) Make a POST request, passing callData in the body, and use params + headers
763
- return this.http.post(this.CALL_HISTORY_API_URL, callData, {
764
- params,
764
+ // Push the call into the Snugdesk backend as a real Interaction. The backend (avaya-ipo/call-log)
765
+ // resolves the entity/endpoint and creates-or-updates the Interaction keyed by callId, so the call
766
+ // shows up in the same call history snugdesk-app reads. Authenticated with the Snugdesk session JWT.
767
+ let headers = new HttpHeaders({ 'Content-Type': 'application/json' });
768
+ const token = (typeof sessionStorage !== 'undefined' &&
769
+ sessionStorage.getItem('auth_sessionToken')) ||
770
+ '';
771
+ if (token) {
772
+ headers = headers.set('Authorization', `Bearer ${token}`);
773
+ }
774
+ return this.http.post(APP_CONFIG.INTERACTION_CALL_LOG_API_URL, callData, {
765
775
  headers,
766
776
  });
767
777
  }
@@ -1261,7 +1271,7 @@ class CallDetailsComponent {
1261
1271
  call;
1262
1272
  transcriptLines = [];
1263
1273
  summaryText = '';
1264
- customerSentiment = '';
1274
+ customerBehavior = '';
1265
1275
  isTranscribing = false;
1266
1276
  transcriptionError = '';
1267
1277
  isTranscriptFullscreen = false;
@@ -1314,7 +1324,8 @@ class CallDetailsComponent {
1314
1324
  const res = await lastValueFrom(this.http.post(this.ANALYZE_CALL_API, formData));
1315
1325
  this.transcriptLines = this.normalizeTranscript(res?.transcript);
1316
1326
  this.summaryText = typeof res?.summary === 'string' ? res.summary : '';
1317
- this.customerSentiment = typeof res?.customerSentiment === 'string' ? res.customerSentiment : '';
1327
+ this.customerBehavior =
1328
+ typeof res?.customerBehavior === 'string' ? res.customerBehavior : '';
1318
1329
  this.hasGeneratedTranscript = true;
1319
1330
  }
1320
1331
  catch (err) {
@@ -1358,12 +1369,16 @@ class CallDetailsComponent {
1358
1369
  }
1359
1370
  return [];
1360
1371
  }
1361
- getSentimentEmoji() {
1362
- const value = (this.customerSentiment || '').toLowerCase();
1363
- if (value.includes('positive'))
1364
- return '🙂';
1365
- if (value.includes('negative'))
1366
- return '☹️';
1372
+ getBehaviorEmoji() {
1373
+ const value = (this.customerBehavior || '').toLowerCase();
1374
+ if (value.includes('angry'))
1375
+ return '😠';
1376
+ if (value.includes('calm'))
1377
+ return '😌';
1378
+ if (value.includes('happy'))
1379
+ return '😄';
1380
+ if (value.includes('confused'))
1381
+ return '😕';
1367
1382
  if (value.includes('neutral'))
1368
1383
  return '😐';
1369
1384
  return '';
@@ -1399,32 +1414,60 @@ class CallDetailsComponent {
1399
1414
  return 'call-recording.wav';
1400
1415
  }
1401
1416
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: CallDetailsComponent, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Component });
1402
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: CallDetailsComponent, isStandalone: false, selector: "app-call-details", inputs: { call: "call" }, ngImport: i0, template: "<div class=\"call-profile\">\n <div class=\"profile-header\">\n <div class=\"avatar\">\n <svg viewBox=\"0 0 448 512\" width=\"28\" height=\"28\" fill=\"currentColor\" aria-hidden=\"true\">\n <path\n d=\"M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304H178.3z\" />\n </svg>\n </div>\n <div class=\"profile-info\">\n <div class=\"primary-number\">\n {{ getDisplayName() }}\n </div>\n <div class=\"secondary-info\">\n {{ getPhone() || 'Unknown' }}\n </div>\n <div class=\"meta-line\">\n <span>{{ call?.timestamp | date : 'medium' }}</span>\n <span class=\"divider\">|</span>\n @if (call?.disconnectSide === 'CALLER' && (call?.duration ?? 0) === 0) {\n <span class=\"divider\">|</span>\n <span class=\"missed-badge\">\n <svg viewBox=\"0 0 640 512\" width=\"12px\" aria-hidden=\"true\" style=\"fill: currentColor;\">\n <path d=\"M232 0c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-39 39 58.7 58.7C282.3 152.4 300.8 160 320 160s37.7-7.6 51.3-21.3L503 7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L405.3 172.7C382.6 195.3 352 208 320 208s-62.6-12.7-85.3-35.3L176 113.9l-39 39c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2L96 24c0-13.3 10.7-24 24-24L232 0zM51.4 489.9l-35.4-62c-9.7-16.9-8.3-38.1 5.5-51.7C72.6 325.9 178.1 256 320 256s247.4 69.9 298.5 120.2c13.9 13.6 15.2 34.8 5.5 51.7l-35.4 62c-7.4 12.9-22.7 19.1-37 14.8L438.8 470.8c-13.5-4.1-22.8-16.5-22.8-30.6l0-56.2c-62.3-20.8-129.7-20.8-192 0l0 56.2c0 14.1-9.3 26.6-22.8 30.6L88.4 504.7c-14.3 4.3-29.6-1.8-37-14.8z\" />\n </svg>\n <span>Missed Call</span>\n </span>\n }\n </div>\n </div>\n </div>\n\n <div class=\"detail-card summary-card\">\n <div class=\"detail-row\">\n <div class=\"label\">Duration</div>\n <div class=\"value\">{{ call?.duration ?? 0 }}s</div>\n </div>\n <div class=\"detail-row\">\n <div class=\"label\">Disconnect Side</div>\n <div class=\"value\">{{ call?.disconnectSide || 'N/A' }}</div>\n </div>\n <div class=\"detail-row\">\n <div class=\"label\">Country</div>\n <div class=\"value\">\n {{\n call?.phoneNumber?.country?.nameEn ||\n call?.phoneNumber?.lookupPhoneNumber?.country ||\n 'N/A'\n }}\n </div>\n </div>\n <div class=\"detail-row\">\n <div class=\"label\">Provider</div>\n <div class=\"value\">\n {{\n call?.phoneNumber?.lookupPhoneNumber?.['prefix-network'] ||\n call?.phoneNumber?.lookupPhoneNumber?.provider ||\n 'N/A'\n }}\n </div>\n </div>\n </div>\n\n <div class=\"detail-card transcription-card\" [class.fullscreen]=\"isTranscriptFullscreen\">\n <div class=\"detail-title\">Call Recording</div>\n <audio\n *ngIf=\"call?.fullCallRecordingUrl; else noRecording\"\n controls\n [src]=\"call?.fullCallRecordingUrl\"\n ></audio>\n <ng-template #noRecording>\n @if ((call?.duration ?? 0) > 0) {\n <button class=\"disabled-btn\" disabled>Processing</button>\n } @else {\n <button class=\"disabled-btn\" disabled>Recording not available</button>\n }\n </ng-template>\n </div>\n\n @if (!hasGeneratedTranscript) {\n <div class=\"transcription-actions outside\">\n <button class=\"action-btn\" type=\"button\" [disabled]=\"isTranscribing\" (click)=\"runTranscription()\">\n <span class=\"btn-content\">\n @if (isTranscribing) {\n <span class=\"btn-spinner\" aria-hidden=\"true\"></span>\n }\n <span>{{ isTranscribing ? 'Generating...' : 'Run AI Call Analysis' }}</span>\n </span>\n </button>\n @if (transcriptionError) {\n <div class=\"status-error\">{{ transcriptionError }}</div>\n }\n </div>\n }\n\n <div class=\"detail-card\">\n <div class=\"detail-title\">Call Summary</div>\n @if (customerSentiment) {\n <div class=\"summary-sentiment\">\n Customer Sentiment: {{ customerSentiment }}\n @if (getSentimentEmoji()) {\n <span class=\"summary-emoji\">{{ getSentimentEmoji() }}</span>\n }\n </div>\n }\n @if (summaryText) {\n <div class=\"summary-text\">{{ summaryText }}</div>\n } @else {\n <div class=\"placeholder\">No summary available.</div>\n }\n </div>\n\n <div class=\"detail-card transcription-card\" [class.fullscreen]=\"isTranscriptFullscreen\">\n <div class=\"detail-title-row\">\n <div class=\"detail-title\">AI Call Transcription</div>\n @if (transcriptLines?.length) {\n <button\n class=\"chat-thread-btn\"\n type=\"button\"\n (click)=\"toggleTranscriptFullscreen()\"\n [attr.aria-label]=\"isTranscriptFullscreen ? 'Exit full screen' : 'Enter full screen'\"\n >\n @if (isTranscriptFullscreen) {\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path\n fill=\"currentColor\"\n d=\"M5 16h3v3h2v-5H5v2zm3-8H5v2h5V5H8v3zm6 11h2v-3h3v-2h-5v5zm2-11V5h-2v5h5V8h-3z\"\n />\n </svg>\n } @else {\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path\n fill=\"currentColor\"\n d=\"M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z\"\n />\n </svg>\n }\n </button>\n }\n </div>\n @if (call?.fullCallRecordingUrl) {\n @if (transcriptLines?.length) {\n <div class=\"chat-thread\">\n @for (line of transcriptLines; track $index) {\n <div class=\"chat-bubble\" [class.agent]=\"(line.speaker || '').toLowerCase() === 'agent'\">\n <div class=\"chat-speaker\">{{ getTranscriptSpeaker(line) }}</div>\n <div class=\"chat-text\">{{ line.text || '' }}</div>\n </div>\n }\n </div>\n } @else if (isTranscribing) {\n <div class=\"transcription-skeleton\">\n @for (item of [1,2,3,4,5]; track item) {\n <div class=\"transcription-skeleton-line\"></div>\n }\n </div>\n } @else {\n <div class=\"placeholder\">No transcription available.</div>\n }\n\n } @else {\n <div class=\"placeholder\">No recording available for transcription.</div>\n }\n </div>\n</div>\n", styles: [":host{display:block;width:100%;box-sizing:border-box}.call-profile{display:flex;flex-direction:column;gap:14px;font-family:Open Sans,Helvetica Neue,Arial,sans-serif;color:#111}.profile-header{display:flex;gap:12px;align-items:center;padding:12px;border-radius:12px;background:#f8f8f8}.avatar{width:52px;height:52px;border-radius:14px;background:#e8edf2;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;color:#1f2937}.profile-info{display:flex;flex-direction:column;gap:6px}.primary-number{font-size:16px;font-weight:800;color:#111827}.secondary-info{font-size:12px;color:#6b7280}.meta-line{display:flex;gap:6px;align-items:center;font-size:12px;color:#4b5563;flex-wrap:wrap}.meta-line .divider{color:#a0aec0}.meta-line .dir.inbound{color:#2b8a3e}.meta-line .dir.outbound{color:#1f6fb2}.meta-line .missed-badge{color:#d14343;font-weight:700}.detail-card{display:flex;flex-direction:column;gap:10px;padding:12px;border-radius:12px;background:#fff;border:1px solid #ededed}.summary-card{order:1}.transcription-card{order:2}.detail-card audio{width:100%}.disabled-btn{width:100%;border:1px solid #e0e0e0;background:#f3f3f3;color:#9a9a9a;padding:10px;border-radius:10px;font-weight:600;cursor:not-allowed}.detail-title{font-weight:800;color:#1f1f1f;font-size:14px}.detail-title-row{display:flex;align-items:center;justify-content:space-between}.transcription-actions{display:flex;flex-direction:column;gap:8px}.transcription-actions.outside{padding:0 4px}.detail-card.is-inactive{opacity:.45;filter:grayscale(.2);pointer-events:none}.action-btn{border:none;background:#111827;color:#f9fafb;padding:10px 14px;border-radius:10px;font-weight:700;cursor:pointer}.btn-content{display:inline-flex;align-items:center;gap:8px}.btn-spinner{width:14px;height:14px;border-radius:999px;border:2px solid rgba(249,250,251,.35);border-top-color:#f9fafb;animation:spin .8s linear infinite}.action-btn:hover:not(:disabled){background:#0f172a}.action-btn:disabled{background:#9ca3af;cursor:not-allowed}.status-error{color:#d14343;font-size:12px;font-weight:600}.transcription-skeleton{display:flex;flex-direction:column;gap:10px}.transcription-skeleton-line{height:10px;border-radius:999px;background:linear-gradient(90deg,#eee,#f7f7f7 45%,#eee);background-size:200% 100%;animation:skeleton-shine 1.2s ease-in-out infinite}.transcription-skeleton-line:nth-child(2){width:85%}.transcription-skeleton-line:nth-child(3){width:90%}.transcription-skeleton-line:nth-child(4){width:70%}.transcription-skeleton-line:nth-child(5){width:60%}.chat-thread{display:flex;flex-direction:column;gap:8px}.chat-thread-btn{border:1px solid #e5e7eb;background:#fff;color:#111827;padding:6px;border-radius:8px;font-weight:700;cursor:pointer;font-size:12px;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center}.chat-thread-btn svg{width:16px;height:16px}.transcription-card.fullscreen{position:fixed;inset:0;background:#f9fafb;padding:16px;z-index:1000;animation:transcript-expand .25s ease;border-radius:0}.transcription-card.fullscreen .detail-title-row{position:sticky;top:0;background:#f9fafb;z-index:2}.transcription-card.fullscreen .chat-thread{flex:1 1 auto;overflow-y:auto;padding-bottom:8px}.detail-card{transition:transform .25s ease,opacity .25s ease}.transcription-card:not(.fullscreen){animation:transcript-collapse .2s ease}.chat-bubble{align-self:flex-start;max-width:86%;background:#f4f5f7;border-radius:12px;padding:8px 10px;border:1px solid #ebebeb}.chat-bubble.agent{align-self:flex-end;background:#e8f1ff;border-color:#c6daf7}.chat-speaker{font-size:11px;font-weight:700;color:#6b7280;text-transform:capitalize;margin-bottom:4px}.chat-text{font-size:13px;color:#1f2937;line-height:1.4}.summary-text{font-size:13px;color:#374151;line-height:1.4}.summary-sentiment{font-size:12px;font-weight:700;color:#1f2937;margin-bottom:6px}.summary-emoji{margin-left:6px;font-size:14px}.summary-grid,.qa-grid{display:grid;gap:8px}.summary-card,.qa-card{border:1px solid #ededed;border-radius:10px;padding:10px;background:#fafafa}.summary-title,.qa-title{font-weight:700;color:#1f2937;font-size:12px;margin-bottom:6px;text-transform:capitalize}.summary-text,.qa-answer{font-size:13px;color:#374151;line-height:1.4}.qa-reason{margin-top:6px;font-size:12px;color:#6b7280;line-height:1.4}.sentiment-score{color:#6b7280;font-size:12px}@keyframes transcript-expand{0%{transform:scale(.98);opacity:.6}to{transform:scale(1);opacity:1}}@keyframes transcript-collapse{0%{transform:scale(1.02);opacity:.6}to{transform:scale(1);opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes skeleton-shine{0%{background-position:200% 0}to{background-position:-200% 0}}.placeholder{font-size:13px;color:#6b6b6b}.detail-row{display:flex;justify-content:space-between;align-items:center}.label{font-weight:700;color:#4b5563;font-size:13px}.value{color:#111;text-align:right;font-weight:600;font-size:13px}.value.mono{font-family:SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;color:#374151}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.DatePipe, name: "date" }] });
1417
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: CallDetailsComponent, isStandalone: false, selector: "app-call-details", inputs: { call: "call" }, ngImport: i0, template: "<div class=\"avaya-ipo-call-profile\">\n <div class=\"avaya-ipo-profile-header\">\n <div class=\"avaya-ipo-avatar\">\n <svg viewBox=\"0 0 448 512\" width=\"28\" height=\"28\" fill=\"currentColor\" aria-hidden=\"true\">\n <path\n d=\"M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304H178.3z\" />\n </svg>\n </div>\n <div class=\"avaya-ipo-profile-info\">\n <div class=\"avaya-ipo-primary-number\">\n {{ getDisplayName() }}\n </div>\n <div class=\"avaya-ipo-secondary-info\">\n {{ getPhone() || 'Unknown' }}\n </div>\n <div class=\"avaya-ipo-meta-line\">\n <span>{{ call?.timestamp | date : 'medium' }}</span>\n <span class=\"avaya-ipo-divider\">|</span>\n @if (call?.disconnectSide === 'CALLER' && (call?.duration ?? 0) === 0) {\n <span class=\"avaya-ipo-divider\">|</span>\n <span class=\"avaya-ipo-missed-badge\">\n <svg viewBox=\"0 0 640 512\" width=\"12px\" aria-hidden=\"true\" style=\"fill: currentColor;\">\n <path d=\"M232 0c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-39 39 58.7 58.7C282.3 152.4 300.8 160 320 160s37.7-7.6 51.3-21.3L503 7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L405.3 172.7C382.6 195.3 352 208 320 208s-62.6-12.7-85.3-35.3L176 113.9l-39 39c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2L96 24c0-13.3 10.7-24 24-24L232 0zM51.4 489.9l-35.4-62c-9.7-16.9-8.3-38.1 5.5-51.7C72.6 325.9 178.1 256 320 256s247.4 69.9 298.5 120.2c13.9 13.6 15.2 34.8 5.5 51.7l-35.4 62c-7.4 12.9-22.7 19.1-37 14.8L438.8 470.8c-13.5-4.1-22.8-16.5-22.8-30.6l0-56.2c-62.3-20.8-129.7-20.8-192 0l0 56.2c0 14.1-9.3 26.6-22.8 30.6L88.4 504.7c-14.3 4.3-29.6-1.8-37-14.8z\" />\n </svg>\n <span>Missed Call</span>\n </span>\n }\n </div>\n </div>\n </div>\n\n <div class=\"avaya-ipo-detail-card avaya-ipo-summary-card\">\n <div class=\"avaya-ipo-detail-row\">\n <div class=\"avaya-ipo-label\">Duration</div>\n <div class=\"avaya-ipo-value\">{{ call?.duration ?? 0 }}s</div>\n </div>\n <div class=\"avaya-ipo-detail-row\">\n <div class=\"avaya-ipo-label\">Disconnect Side</div>\n <div class=\"avaya-ipo-value\">{{ call?.disconnectSide || 'N/A' }}</div>\n </div>\n <div class=\"avaya-ipo-detail-row\">\n <div class=\"avaya-ipo-label\">Country</div>\n <div class=\"avaya-ipo-value\">\n {{\n call?.phoneNumber?.country?.nameEn ||\n call?.phoneNumber?.lookupPhoneNumber?.country ||\n 'N/A'\n }}\n </div>\n </div>\n <div class=\"avaya-ipo-detail-row\">\n <div class=\"avaya-ipo-label\">Provider</div>\n <div class=\"avaya-ipo-value\">\n {{\n call?.phoneNumber?.lookupPhoneNumber?.['prefix-network'] ||\n call?.phoneNumber?.lookupPhoneNumber?.provider ||\n 'N/A'\n }}\n </div>\n </div>\n </div>\n\n <div class=\"avaya-ipo-detail-card avaya-ipo-transcription-card\" [class.avaya-ipo-fullscreen]=\"isTranscriptFullscreen\">\n <div class=\"avaya-ipo-detail-title\">Call Recording</div>\n <audio\n *ngIf=\"call?.fullCallRecordingUrl; else noRecording\"\n controls\n [src]=\"call?.fullCallRecordingUrl\"\n ></audio>\n <ng-template #noRecording>\n @if ((call?.duration ?? 0) > 0) {\n <button class=\"avaya-ipo-disabled-btn\" disabled>Processing</button>\n } @else {\n <button class=\"avaya-ipo-disabled-btn\" disabled>Recording not available</button>\n }\n </ng-template>\n </div>\n\n @if (!hasGeneratedTranscript) {\n <div class=\"avaya-ipo-transcription-actions avaya-ipo-outside\">\n <button class=\"avaya-ipo-action-btn\" type=\"button\" [disabled]=\"isTranscribing\" (click)=\"runTranscription()\">\n <span class=\"avaya-ipo-btn-content\">\n @if (isTranscribing) {\n <span class=\"avaya-ipo-btn-spinner\" aria-hidden=\"true\"></span>\n }\n <span>{{ isTranscribing ? 'Generating...' : 'Run AI Call Analysis' }}</span>\n </span>\n </button>\n @if (transcriptionError) {\n <div class=\"avaya-ipo-status-error\">{{ transcriptionError }}</div>\n }\n </div>\n }\n\n <div class=\"avaya-ipo-detail-card\">\n <div class=\"avaya-ipo-detail-title\">Call Summary</div>\n @if (customerBehavior) {\n <div class=\"avaya-ipo-summary-sentiment\">\n Customer Behavior: {{ customerBehavior }}\n @if (getBehaviorEmoji()) {\n <span class=\"avaya-ipo-summary-emoji\">{{ getBehaviorEmoji() }}</span>\n }\n </div>\n }\n @if (summaryText) {\n <div class=\"avaya-ipo-summary-text\">{{ summaryText }}</div>\n } @else {\n <div class=\"avaya-ipo-placeholder\">No summary available.</div>\n }\n </div>\n\n <div class=\"avaya-ipo-detail-card avaya-ipo-transcription-card\" [class.avaya-ipo-fullscreen]=\"isTranscriptFullscreen\">\n <div class=\"avaya-ipo-detail-title-row\">\n <div class=\"avaya-ipo-detail-title\">AI Call Transcription</div>\n @if (transcriptLines?.length) {\n <button\n class=\"avaya-ipo-chat-thread-btn\"\n type=\"button\"\n (click)=\"toggleTranscriptFullscreen()\"\n [attr.aria-label]=\"isTranscriptFullscreen ? 'Exit full screen' : 'Enter full screen'\"\n >\n @if (isTranscriptFullscreen) {\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path\n fill=\"currentColor\"\n d=\"M5 16h3v3h2v-5H5v2zm3-8H5v2h5V5H8v3zm6 11h2v-3h3v-2h-5v5zm2-11V5h-2v5h5V8h-3z\"\n />\n </svg>\n } @else {\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path\n fill=\"currentColor\"\n d=\"M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z\"\n />\n </svg>\n }\n </button>\n }\n </div>\n @if (call?.fullCallRecordingUrl) {\n @if (transcriptLines?.length) {\n <div class=\"avaya-ipo-chat-thread\">\n @for (line of transcriptLines; track $index) {\n <div class=\"avaya-ipo-chat-bubble\" [class.avaya-ipo-agent]=\"(line.speaker || '').toLowerCase() === 'agent'\">\n <div class=\"avaya-ipo-chat-speaker\">{{ getTranscriptSpeaker(line) }}</div>\n <div class=\"avaya-ipo-chat-text\">{{ line.text || '' }}</div>\n </div>\n }\n </div>\n } @else if (isTranscribing) {\n <div class=\"avaya-ipo-transcription-skeleton\">\n @for (item of [1,2,3,4,5]; track item) {\n <div class=\"avaya-ipo-transcription-skeleton-line\"></div>\n }\n </div>\n } @else {\n <div class=\"avaya-ipo-placeholder\">No transcription available.</div>\n }\n\n } @else {\n <div class=\"avaya-ipo-placeholder\">No recording available for transcription.</div>\n }\n </div>\n</div>\n", styles: [":host{display:block;width:100%;box-sizing:border-box}.avaya-ipo-call-profile{display:flex;flex-direction:column;gap:14px;font-family:Open Sans,Helvetica Neue,Arial,sans-serif;color:var(--sd-text, #333)}.avaya-ipo-profile-header{display:flex;gap:12px;align-items:center;padding:12px;border-radius:var(--sd-radius-lg, 14px);background:var(--sd-surface-muted, #f7f7f7)}.avaya-ipo-avatar{width:52px;height:52px;border-radius:var(--sd-radius-lg, 14px);background:var(--sd-avatar, #eceff3);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;color:var(--sd-text, #333)}.avaya-ipo-profile-info{display:flex;flex-direction:column;gap:6px}.avaya-ipo-primary-number{font-size:16px;font-weight:800;color:var(--sd-text, #333)}.avaya-ipo-secondary-info{font-size:12px;color:var(--sd-text-muted, #5f6368)}.avaya-ipo-meta-line{display:flex;gap:6px;align-items:center;font-size:12px;color:var(--sd-text-muted, #5f6368);flex-wrap:wrap}.avaya-ipo-meta-line .avaya-ipo-divider{color:var(--sd-text-subtle, #9ca3af)}.avaya-ipo-meta-line .avaya-ipo-dir.avaya-ipo-inbound{color:var(--sd-call-accept, #1aa251)}.avaya-ipo-meta-line .avaya-ipo-dir.avaya-ipo-outbound{color:var(--sd-text-muted, #5f6368)}.avaya-ipo-meta-line .avaya-ipo-missed-badge{color:var(--sd-call-end, #e5484d);font-weight:700}.avaya-ipo-detail-card{display:flex;flex-direction:column;gap:10px;padding:12px;border-radius:var(--sd-radius-lg, 14px);background:var(--sd-card, #fff);border:1px solid var(--sd-border, #e3e3e3)}.avaya-ipo-summary-card{order:1}.avaya-ipo-transcription-card{order:2}.avaya-ipo-detail-card audio{width:100%}.avaya-ipo-disabled-btn{width:100%;border:1px solid var(--sd-border, #e3e3e3);background:var(--sd-surface-muted, #f7f7f7);color:var(--sd-text-subtle, #9ca3af);padding:10px;border-radius:var(--sd-radius, 10px);font-weight:600;cursor:not-allowed}.avaya-ipo-detail-title{font-weight:800;color:var(--sd-text, #333);font-size:14px}.avaya-ipo-detail-title-row{display:flex;align-items:center;justify-content:space-between}.avaya-ipo-transcription-actions{display:flex;flex-direction:column;gap:8px}.avaya-ipo-transcription-actions.avaya-ipo-outside{padding:0 4px}.avaya-ipo-detail-card.avaya-ipo-is-inactive{opacity:.45;filter:grayscale(.2);pointer-events:none}.avaya-ipo-action-btn{border:none;background:var(--sd-accent, #ff6633);color:var(--sd-accent-contrast, #fff);padding:10px 14px;border-radius:var(--sd-radius, 10px);font-weight:700;cursor:pointer;transition:background .15s ease,box-shadow .15s ease}.avaya-ipo-btn-content{display:inline-flex;align-items:center;gap:8px}.avaya-ipo-btn-spinner{width:14px;height:14px;border-radius:var(--sd-radius-pill, 999px);border:2px solid color-mix(in srgb,var(--sd-accent-contrast, #fff) 35%,transparent);border-top-color:var(--sd-accent-contrast, #fff);animation:spin .8s linear infinite}.avaya-ipo-action-btn:hover:not(:disabled){background:var(--sd-accent-strong, #ff5805)}.avaya-ipo-action-btn:focus-visible{outline:none;box-shadow:var(--sd-focus-ring, 0 0 0 3px rgba(255, 102, 51, .22))}.avaya-ipo-action-btn:disabled{background:var(--sd-surface-sunken, #e8e8e8);color:var(--sd-text-subtle, #9ca3af);cursor:not-allowed}.avaya-ipo-status-error{color:var(--sd-call-end, #e5484d);font-size:12px;font-weight:600}.avaya-ipo-transcription-skeleton{display:flex;flex-direction:column;gap:10px}.avaya-ipo-transcription-skeleton-line{height:10px;border-radius:var(--sd-radius-pill, 999px);background:linear-gradient(90deg,var(--sd-surface-sunken, #e8e8e8) 0%,var(--sd-surface-muted, #f7f7f7) 45%,var(--sd-surface-sunken, #e8e8e8) 100%);background-size:200% 100%;animation:skeleton-shine 1.2s ease-in-out infinite}.avaya-ipo-transcription-skeleton-line:nth-child(2){width:85%}.avaya-ipo-transcription-skeleton-line:nth-child(3){width:90%}.avaya-ipo-transcription-skeleton-line:nth-child(4){width:70%}.avaya-ipo-transcription-skeleton-line:nth-child(5){width:60%}.avaya-ipo-chat-thread{display:flex;flex-direction:column;gap:8px}.avaya-ipo-chat-thread-btn{border:1px solid var(--sd-border, #e3e3e3);background:var(--sd-surface, #fff);color:var(--sd-text, #333);padding:6px;border-radius:var(--sd-radius-sm, 8px);font-weight:700;cursor:pointer;font-size:12px;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;transition:background .15s ease,border-color .15s ease}.avaya-ipo-chat-thread-btn:hover{background:var(--sd-surface-muted, #f7f7f7)}.avaya-ipo-chat-thread-btn svg{width:16px;height:16px}.avaya-ipo-transcription-card.avaya-ipo-fullscreen{position:absolute;inset:0;background:var(--sd-surface, #fff);padding:16px;z-index:1000;animation:transcript-expand .25s ease;border-radius:0}:host-context(.avaya-ipo-mode-standalone) .avaya-ipo-transcription-card.avaya-ipo-fullscreen{position:fixed}.avaya-ipo-transcription-card.avaya-ipo-fullscreen .avaya-ipo-detail-title-row{position:sticky;top:0;background:var(--sd-surface, #fff);z-index:2}.avaya-ipo-transcription-card.avaya-ipo-fullscreen .avaya-ipo-chat-thread{flex:1 1 auto;overflow-y:auto;padding-bottom:8px}.avaya-ipo-detail-card{transition:transform .25s ease,opacity .25s ease}.avaya-ipo-transcription-card:not(.avaya-ipo-fullscreen){animation:transcript-collapse .2s ease}.avaya-ipo-chat-bubble{align-self:flex-start;max-width:86%;background:var(--sd-surface-muted, #f7f7f7);border-radius:var(--sd-radius, 10px);padding:8px 10px;border:1px solid var(--sd-border, #e3e3e3)}.avaya-ipo-chat-bubble.avaya-ipo-agent{align-self:flex-end;background:var(--sd-accent-soft, #fff1ea);border-color:color-mix(in srgb,var(--sd-accent, #ff6633) 35%,transparent)}.avaya-ipo-chat-speaker{font-size:11px;font-weight:700;color:var(--sd-text-muted, #5f6368);text-transform:capitalize;margin-bottom:4px}.avaya-ipo-chat-text,.avaya-ipo-summary-text{font-size:13px;color:var(--sd-text, #333);line-height:1.4}.avaya-ipo-summary-sentiment{font-size:12px;font-weight:700;color:var(--sd-text, #333);margin-bottom:6px}.avaya-ipo-summary-emoji{margin-left:6px;font-size:14px}.avaya-ipo-summary-grid,.avaya-ipo-qa-grid{display:grid;gap:8px}.avaya-ipo-summary-card,.avaya-ipo-qa-card{border:1px solid var(--sd-border, #e3e3e3);border-radius:var(--sd-radius, 10px);padding:10px;background:var(--sd-surface-muted, #f7f7f7)}.avaya-ipo-summary-title,.avaya-ipo-qa-title{font-weight:700;color:var(--sd-text, #333);font-size:12px;margin-bottom:6px;text-transform:capitalize}.avaya-ipo-summary-text,.avaya-ipo-qa-answer{font-size:13px;color:var(--sd-text, #333);line-height:1.4}.avaya-ipo-qa-reason{margin-top:6px;font-size:12px;color:var(--sd-text-muted, #5f6368);line-height:1.4}.avaya-ipo-sentiment-score{color:var(--sd-text-muted, #5f6368);font-size:12px}@keyframes transcript-expand{0%{transform:scale(.98);opacity:.6}to{transform:scale(1);opacity:1}}@keyframes transcript-collapse{0%{transform:scale(1.02);opacity:.6}to{transform:scale(1);opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes skeleton-shine{0%{background-position:200% 0}to{background-position:-200% 0}}.avaya-ipo-placeholder{font-size:13px;color:var(--sd-text-muted, #5f6368)}.avaya-ipo-detail-row{display:flex;justify-content:space-between;align-items:center}.avaya-ipo-label{font-weight:700;color:var(--sd-text-muted, #5f6368);font-size:13px}.avaya-ipo-value{color:var(--sd-text, #333);text-align:right;font-weight:600;font-size:13px}.avaya-ipo-value.avaya-ipo-mono{font-family:SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;color:var(--sd-text-muted, #5f6368)}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.DatePipe, name: "date" }] });
1403
1418
  }
1404
1419
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: CallDetailsComponent, decorators: [{
1405
1420
  type: Component,
1406
- args: [{ selector: 'app-call-details', standalone: false, template: "<div class=\"call-profile\">\n <div class=\"profile-header\">\n <div class=\"avatar\">\n <svg viewBox=\"0 0 448 512\" width=\"28\" height=\"28\" fill=\"currentColor\" aria-hidden=\"true\">\n <path\n d=\"M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304H178.3z\" />\n </svg>\n </div>\n <div class=\"profile-info\">\n <div class=\"primary-number\">\n {{ getDisplayName() }}\n </div>\n <div class=\"secondary-info\">\n {{ getPhone() || 'Unknown' }}\n </div>\n <div class=\"meta-line\">\n <span>{{ call?.timestamp | date : 'medium' }}</span>\n <span class=\"divider\">|</span>\n @if (call?.disconnectSide === 'CALLER' && (call?.duration ?? 0) === 0) {\n <span class=\"divider\">|</span>\n <span class=\"missed-badge\">\n <svg viewBox=\"0 0 640 512\" width=\"12px\" aria-hidden=\"true\" style=\"fill: currentColor;\">\n <path d=\"M232 0c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-39 39 58.7 58.7C282.3 152.4 300.8 160 320 160s37.7-7.6 51.3-21.3L503 7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L405.3 172.7C382.6 195.3 352 208 320 208s-62.6-12.7-85.3-35.3L176 113.9l-39 39c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2L96 24c0-13.3 10.7-24 24-24L232 0zM51.4 489.9l-35.4-62c-9.7-16.9-8.3-38.1 5.5-51.7C72.6 325.9 178.1 256 320 256s247.4 69.9 298.5 120.2c13.9 13.6 15.2 34.8 5.5 51.7l-35.4 62c-7.4 12.9-22.7 19.1-37 14.8L438.8 470.8c-13.5-4.1-22.8-16.5-22.8-30.6l0-56.2c-62.3-20.8-129.7-20.8-192 0l0 56.2c0 14.1-9.3 26.6-22.8 30.6L88.4 504.7c-14.3 4.3-29.6-1.8-37-14.8z\" />\n </svg>\n <span>Missed Call</span>\n </span>\n }\n </div>\n </div>\n </div>\n\n <div class=\"detail-card summary-card\">\n <div class=\"detail-row\">\n <div class=\"label\">Duration</div>\n <div class=\"value\">{{ call?.duration ?? 0 }}s</div>\n </div>\n <div class=\"detail-row\">\n <div class=\"label\">Disconnect Side</div>\n <div class=\"value\">{{ call?.disconnectSide || 'N/A' }}</div>\n </div>\n <div class=\"detail-row\">\n <div class=\"label\">Country</div>\n <div class=\"value\">\n {{\n call?.phoneNumber?.country?.nameEn ||\n call?.phoneNumber?.lookupPhoneNumber?.country ||\n 'N/A'\n }}\n </div>\n </div>\n <div class=\"detail-row\">\n <div class=\"label\">Provider</div>\n <div class=\"value\">\n {{\n call?.phoneNumber?.lookupPhoneNumber?.['prefix-network'] ||\n call?.phoneNumber?.lookupPhoneNumber?.provider ||\n 'N/A'\n }}\n </div>\n </div>\n </div>\n\n <div class=\"detail-card transcription-card\" [class.fullscreen]=\"isTranscriptFullscreen\">\n <div class=\"detail-title\">Call Recording</div>\n <audio\n *ngIf=\"call?.fullCallRecordingUrl; else noRecording\"\n controls\n [src]=\"call?.fullCallRecordingUrl\"\n ></audio>\n <ng-template #noRecording>\n @if ((call?.duration ?? 0) > 0) {\n <button class=\"disabled-btn\" disabled>Processing</button>\n } @else {\n <button class=\"disabled-btn\" disabled>Recording not available</button>\n }\n </ng-template>\n </div>\n\n @if (!hasGeneratedTranscript) {\n <div class=\"transcription-actions outside\">\n <button class=\"action-btn\" type=\"button\" [disabled]=\"isTranscribing\" (click)=\"runTranscription()\">\n <span class=\"btn-content\">\n @if (isTranscribing) {\n <span class=\"btn-spinner\" aria-hidden=\"true\"></span>\n }\n <span>{{ isTranscribing ? 'Generating...' : 'Run AI Call Analysis' }}</span>\n </span>\n </button>\n @if (transcriptionError) {\n <div class=\"status-error\">{{ transcriptionError }}</div>\n }\n </div>\n }\n\n <div class=\"detail-card\">\n <div class=\"detail-title\">Call Summary</div>\n @if (customerSentiment) {\n <div class=\"summary-sentiment\">\n Customer Sentiment: {{ customerSentiment }}\n @if (getSentimentEmoji()) {\n <span class=\"summary-emoji\">{{ getSentimentEmoji() }}</span>\n }\n </div>\n }\n @if (summaryText) {\n <div class=\"summary-text\">{{ summaryText }}</div>\n } @else {\n <div class=\"placeholder\">No summary available.</div>\n }\n </div>\n\n <div class=\"detail-card transcription-card\" [class.fullscreen]=\"isTranscriptFullscreen\">\n <div class=\"detail-title-row\">\n <div class=\"detail-title\">AI Call Transcription</div>\n @if (transcriptLines?.length) {\n <button\n class=\"chat-thread-btn\"\n type=\"button\"\n (click)=\"toggleTranscriptFullscreen()\"\n [attr.aria-label]=\"isTranscriptFullscreen ? 'Exit full screen' : 'Enter full screen'\"\n >\n @if (isTranscriptFullscreen) {\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path\n fill=\"currentColor\"\n d=\"M5 16h3v3h2v-5H5v2zm3-8H5v2h5V5H8v3zm6 11h2v-3h3v-2h-5v5zm2-11V5h-2v5h5V8h-3z\"\n />\n </svg>\n } @else {\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path\n fill=\"currentColor\"\n d=\"M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z\"\n />\n </svg>\n }\n </button>\n }\n </div>\n @if (call?.fullCallRecordingUrl) {\n @if (transcriptLines?.length) {\n <div class=\"chat-thread\">\n @for (line of transcriptLines; track $index) {\n <div class=\"chat-bubble\" [class.agent]=\"(line.speaker || '').toLowerCase() === 'agent'\">\n <div class=\"chat-speaker\">{{ getTranscriptSpeaker(line) }}</div>\n <div class=\"chat-text\">{{ line.text || '' }}</div>\n </div>\n }\n </div>\n } @else if (isTranscribing) {\n <div class=\"transcription-skeleton\">\n @for (item of [1,2,3,4,5]; track item) {\n <div class=\"transcription-skeleton-line\"></div>\n }\n </div>\n } @else {\n <div class=\"placeholder\">No transcription available.</div>\n }\n\n } @else {\n <div class=\"placeholder\">No recording available for transcription.</div>\n }\n </div>\n</div>\n", styles: [":host{display:block;width:100%;box-sizing:border-box}.call-profile{display:flex;flex-direction:column;gap:14px;font-family:Open Sans,Helvetica Neue,Arial,sans-serif;color:#111}.profile-header{display:flex;gap:12px;align-items:center;padding:12px;border-radius:12px;background:#f8f8f8}.avatar{width:52px;height:52px;border-radius:14px;background:#e8edf2;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;color:#1f2937}.profile-info{display:flex;flex-direction:column;gap:6px}.primary-number{font-size:16px;font-weight:800;color:#111827}.secondary-info{font-size:12px;color:#6b7280}.meta-line{display:flex;gap:6px;align-items:center;font-size:12px;color:#4b5563;flex-wrap:wrap}.meta-line .divider{color:#a0aec0}.meta-line .dir.inbound{color:#2b8a3e}.meta-line .dir.outbound{color:#1f6fb2}.meta-line .missed-badge{color:#d14343;font-weight:700}.detail-card{display:flex;flex-direction:column;gap:10px;padding:12px;border-radius:12px;background:#fff;border:1px solid #ededed}.summary-card{order:1}.transcription-card{order:2}.detail-card audio{width:100%}.disabled-btn{width:100%;border:1px solid #e0e0e0;background:#f3f3f3;color:#9a9a9a;padding:10px;border-radius:10px;font-weight:600;cursor:not-allowed}.detail-title{font-weight:800;color:#1f1f1f;font-size:14px}.detail-title-row{display:flex;align-items:center;justify-content:space-between}.transcription-actions{display:flex;flex-direction:column;gap:8px}.transcription-actions.outside{padding:0 4px}.detail-card.is-inactive{opacity:.45;filter:grayscale(.2);pointer-events:none}.action-btn{border:none;background:#111827;color:#f9fafb;padding:10px 14px;border-radius:10px;font-weight:700;cursor:pointer}.btn-content{display:inline-flex;align-items:center;gap:8px}.btn-spinner{width:14px;height:14px;border-radius:999px;border:2px solid rgba(249,250,251,.35);border-top-color:#f9fafb;animation:spin .8s linear infinite}.action-btn:hover:not(:disabled){background:#0f172a}.action-btn:disabled{background:#9ca3af;cursor:not-allowed}.status-error{color:#d14343;font-size:12px;font-weight:600}.transcription-skeleton{display:flex;flex-direction:column;gap:10px}.transcription-skeleton-line{height:10px;border-radius:999px;background:linear-gradient(90deg,#eee,#f7f7f7 45%,#eee);background-size:200% 100%;animation:skeleton-shine 1.2s ease-in-out infinite}.transcription-skeleton-line:nth-child(2){width:85%}.transcription-skeleton-line:nth-child(3){width:90%}.transcription-skeleton-line:nth-child(4){width:70%}.transcription-skeleton-line:nth-child(5){width:60%}.chat-thread{display:flex;flex-direction:column;gap:8px}.chat-thread-btn{border:1px solid #e5e7eb;background:#fff;color:#111827;padding:6px;border-radius:8px;font-weight:700;cursor:pointer;font-size:12px;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center}.chat-thread-btn svg{width:16px;height:16px}.transcription-card.fullscreen{position:fixed;inset:0;background:#f9fafb;padding:16px;z-index:1000;animation:transcript-expand .25s ease;border-radius:0}.transcription-card.fullscreen .detail-title-row{position:sticky;top:0;background:#f9fafb;z-index:2}.transcription-card.fullscreen .chat-thread{flex:1 1 auto;overflow-y:auto;padding-bottom:8px}.detail-card{transition:transform .25s ease,opacity .25s ease}.transcription-card:not(.fullscreen){animation:transcript-collapse .2s ease}.chat-bubble{align-self:flex-start;max-width:86%;background:#f4f5f7;border-radius:12px;padding:8px 10px;border:1px solid #ebebeb}.chat-bubble.agent{align-self:flex-end;background:#e8f1ff;border-color:#c6daf7}.chat-speaker{font-size:11px;font-weight:700;color:#6b7280;text-transform:capitalize;margin-bottom:4px}.chat-text{font-size:13px;color:#1f2937;line-height:1.4}.summary-text{font-size:13px;color:#374151;line-height:1.4}.summary-sentiment{font-size:12px;font-weight:700;color:#1f2937;margin-bottom:6px}.summary-emoji{margin-left:6px;font-size:14px}.summary-grid,.qa-grid{display:grid;gap:8px}.summary-card,.qa-card{border:1px solid #ededed;border-radius:10px;padding:10px;background:#fafafa}.summary-title,.qa-title{font-weight:700;color:#1f2937;font-size:12px;margin-bottom:6px;text-transform:capitalize}.summary-text,.qa-answer{font-size:13px;color:#374151;line-height:1.4}.qa-reason{margin-top:6px;font-size:12px;color:#6b7280;line-height:1.4}.sentiment-score{color:#6b7280;font-size:12px}@keyframes transcript-expand{0%{transform:scale(.98);opacity:.6}to{transform:scale(1);opacity:1}}@keyframes transcript-collapse{0%{transform:scale(1.02);opacity:.6}to{transform:scale(1);opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes skeleton-shine{0%{background-position:200% 0}to{background-position:-200% 0}}.placeholder{font-size:13px;color:#6b6b6b}.detail-row{display:flex;justify-content:space-between;align-items:center}.label{font-weight:700;color:#4b5563;font-size:13px}.value{color:#111;text-align:right;font-weight:600;font-size:13px}.value.mono{font-family:SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;color:#374151}\n"] }]
1421
+ args: [{ selector: 'app-call-details', standalone: false, template: "<div class=\"avaya-ipo-call-profile\">\n <div class=\"avaya-ipo-profile-header\">\n <div class=\"avaya-ipo-avatar\">\n <svg viewBox=\"0 0 448 512\" width=\"28\" height=\"28\" fill=\"currentColor\" aria-hidden=\"true\">\n <path\n d=\"M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304H178.3z\" />\n </svg>\n </div>\n <div class=\"avaya-ipo-profile-info\">\n <div class=\"avaya-ipo-primary-number\">\n {{ getDisplayName() }}\n </div>\n <div class=\"avaya-ipo-secondary-info\">\n {{ getPhone() || 'Unknown' }}\n </div>\n <div class=\"avaya-ipo-meta-line\">\n <span>{{ call?.timestamp | date : 'medium' }}</span>\n <span class=\"avaya-ipo-divider\">|</span>\n @if (call?.disconnectSide === 'CALLER' && (call?.duration ?? 0) === 0) {\n <span class=\"avaya-ipo-divider\">|</span>\n <span class=\"avaya-ipo-missed-badge\">\n <svg viewBox=\"0 0 640 512\" width=\"12px\" aria-hidden=\"true\" style=\"fill: currentColor;\">\n <path d=\"M232 0c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-39 39 58.7 58.7C282.3 152.4 300.8 160 320 160s37.7-7.6 51.3-21.3L503 7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L405.3 172.7C382.6 195.3 352 208 320 208s-62.6-12.7-85.3-35.3L176 113.9l-39 39c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2L96 24c0-13.3 10.7-24 24-24L232 0zM51.4 489.9l-35.4-62c-9.7-16.9-8.3-38.1 5.5-51.7C72.6 325.9 178.1 256 320 256s247.4 69.9 298.5 120.2c13.9 13.6 15.2 34.8 5.5 51.7l-35.4 62c-7.4 12.9-22.7 19.1-37 14.8L438.8 470.8c-13.5-4.1-22.8-16.5-22.8-30.6l0-56.2c-62.3-20.8-129.7-20.8-192 0l0 56.2c0 14.1-9.3 26.6-22.8 30.6L88.4 504.7c-14.3 4.3-29.6-1.8-37-14.8z\" />\n </svg>\n <span>Missed Call</span>\n </span>\n }\n </div>\n </div>\n </div>\n\n <div class=\"avaya-ipo-detail-card avaya-ipo-summary-card\">\n <div class=\"avaya-ipo-detail-row\">\n <div class=\"avaya-ipo-label\">Duration</div>\n <div class=\"avaya-ipo-value\">{{ call?.duration ?? 0 }}s</div>\n </div>\n <div class=\"avaya-ipo-detail-row\">\n <div class=\"avaya-ipo-label\">Disconnect Side</div>\n <div class=\"avaya-ipo-value\">{{ call?.disconnectSide || 'N/A' }}</div>\n </div>\n <div class=\"avaya-ipo-detail-row\">\n <div class=\"avaya-ipo-label\">Country</div>\n <div class=\"avaya-ipo-value\">\n {{\n call?.phoneNumber?.country?.nameEn ||\n call?.phoneNumber?.lookupPhoneNumber?.country ||\n 'N/A'\n }}\n </div>\n </div>\n <div class=\"avaya-ipo-detail-row\">\n <div class=\"avaya-ipo-label\">Provider</div>\n <div class=\"avaya-ipo-value\">\n {{\n call?.phoneNumber?.lookupPhoneNumber?.['prefix-network'] ||\n call?.phoneNumber?.lookupPhoneNumber?.provider ||\n 'N/A'\n }}\n </div>\n </div>\n </div>\n\n <div class=\"avaya-ipo-detail-card avaya-ipo-transcription-card\" [class.avaya-ipo-fullscreen]=\"isTranscriptFullscreen\">\n <div class=\"avaya-ipo-detail-title\">Call Recording</div>\n <audio\n *ngIf=\"call?.fullCallRecordingUrl; else noRecording\"\n controls\n [src]=\"call?.fullCallRecordingUrl\"\n ></audio>\n <ng-template #noRecording>\n @if ((call?.duration ?? 0) > 0) {\n <button class=\"avaya-ipo-disabled-btn\" disabled>Processing</button>\n } @else {\n <button class=\"avaya-ipo-disabled-btn\" disabled>Recording not available</button>\n }\n </ng-template>\n </div>\n\n @if (!hasGeneratedTranscript) {\n <div class=\"avaya-ipo-transcription-actions avaya-ipo-outside\">\n <button class=\"avaya-ipo-action-btn\" type=\"button\" [disabled]=\"isTranscribing\" (click)=\"runTranscription()\">\n <span class=\"avaya-ipo-btn-content\">\n @if (isTranscribing) {\n <span class=\"avaya-ipo-btn-spinner\" aria-hidden=\"true\"></span>\n }\n <span>{{ isTranscribing ? 'Generating...' : 'Run AI Call Analysis' }}</span>\n </span>\n </button>\n @if (transcriptionError) {\n <div class=\"avaya-ipo-status-error\">{{ transcriptionError }}</div>\n }\n </div>\n }\n\n <div class=\"avaya-ipo-detail-card\">\n <div class=\"avaya-ipo-detail-title\">Call Summary</div>\n @if (customerBehavior) {\n <div class=\"avaya-ipo-summary-sentiment\">\n Customer Behavior: {{ customerBehavior }}\n @if (getBehaviorEmoji()) {\n <span class=\"avaya-ipo-summary-emoji\">{{ getBehaviorEmoji() }}</span>\n }\n </div>\n }\n @if (summaryText) {\n <div class=\"avaya-ipo-summary-text\">{{ summaryText }}</div>\n } @else {\n <div class=\"avaya-ipo-placeholder\">No summary available.</div>\n }\n </div>\n\n <div class=\"avaya-ipo-detail-card avaya-ipo-transcription-card\" [class.avaya-ipo-fullscreen]=\"isTranscriptFullscreen\">\n <div class=\"avaya-ipo-detail-title-row\">\n <div class=\"avaya-ipo-detail-title\">AI Call Transcription</div>\n @if (transcriptLines?.length) {\n <button\n class=\"avaya-ipo-chat-thread-btn\"\n type=\"button\"\n (click)=\"toggleTranscriptFullscreen()\"\n [attr.aria-label]=\"isTranscriptFullscreen ? 'Exit full screen' : 'Enter full screen'\"\n >\n @if (isTranscriptFullscreen) {\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path\n fill=\"currentColor\"\n d=\"M5 16h3v3h2v-5H5v2zm3-8H5v2h5V5H8v3zm6 11h2v-3h3v-2h-5v5zm2-11V5h-2v5h5V8h-3z\"\n />\n </svg>\n } @else {\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path\n fill=\"currentColor\"\n d=\"M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z\"\n />\n </svg>\n }\n </button>\n }\n </div>\n @if (call?.fullCallRecordingUrl) {\n @if (transcriptLines?.length) {\n <div class=\"avaya-ipo-chat-thread\">\n @for (line of transcriptLines; track $index) {\n <div class=\"avaya-ipo-chat-bubble\" [class.avaya-ipo-agent]=\"(line.speaker || '').toLowerCase() === 'agent'\">\n <div class=\"avaya-ipo-chat-speaker\">{{ getTranscriptSpeaker(line) }}</div>\n <div class=\"avaya-ipo-chat-text\">{{ line.text || '' }}</div>\n </div>\n }\n </div>\n } @else if (isTranscribing) {\n <div class=\"avaya-ipo-transcription-skeleton\">\n @for (item of [1,2,3,4,5]; track item) {\n <div class=\"avaya-ipo-transcription-skeleton-line\"></div>\n }\n </div>\n } @else {\n <div class=\"avaya-ipo-placeholder\">No transcription available.</div>\n }\n\n } @else {\n <div class=\"avaya-ipo-placeholder\">No recording available for transcription.</div>\n }\n </div>\n</div>\n", styles: [":host{display:block;width:100%;box-sizing:border-box}.avaya-ipo-call-profile{display:flex;flex-direction:column;gap:14px;font-family:Open Sans,Helvetica Neue,Arial,sans-serif;color:var(--sd-text, #333)}.avaya-ipo-profile-header{display:flex;gap:12px;align-items:center;padding:12px;border-radius:var(--sd-radius-lg, 14px);background:var(--sd-surface-muted, #f7f7f7)}.avaya-ipo-avatar{width:52px;height:52px;border-radius:var(--sd-radius-lg, 14px);background:var(--sd-avatar, #eceff3);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;color:var(--sd-text, #333)}.avaya-ipo-profile-info{display:flex;flex-direction:column;gap:6px}.avaya-ipo-primary-number{font-size:16px;font-weight:800;color:var(--sd-text, #333)}.avaya-ipo-secondary-info{font-size:12px;color:var(--sd-text-muted, #5f6368)}.avaya-ipo-meta-line{display:flex;gap:6px;align-items:center;font-size:12px;color:var(--sd-text-muted, #5f6368);flex-wrap:wrap}.avaya-ipo-meta-line .avaya-ipo-divider{color:var(--sd-text-subtle, #9ca3af)}.avaya-ipo-meta-line .avaya-ipo-dir.avaya-ipo-inbound{color:var(--sd-call-accept, #1aa251)}.avaya-ipo-meta-line .avaya-ipo-dir.avaya-ipo-outbound{color:var(--sd-text-muted, #5f6368)}.avaya-ipo-meta-line .avaya-ipo-missed-badge{color:var(--sd-call-end, #e5484d);font-weight:700}.avaya-ipo-detail-card{display:flex;flex-direction:column;gap:10px;padding:12px;border-radius:var(--sd-radius-lg, 14px);background:var(--sd-card, #fff);border:1px solid var(--sd-border, #e3e3e3)}.avaya-ipo-summary-card{order:1}.avaya-ipo-transcription-card{order:2}.avaya-ipo-detail-card audio{width:100%}.avaya-ipo-disabled-btn{width:100%;border:1px solid var(--sd-border, #e3e3e3);background:var(--sd-surface-muted, #f7f7f7);color:var(--sd-text-subtle, #9ca3af);padding:10px;border-radius:var(--sd-radius, 10px);font-weight:600;cursor:not-allowed}.avaya-ipo-detail-title{font-weight:800;color:var(--sd-text, #333);font-size:14px}.avaya-ipo-detail-title-row{display:flex;align-items:center;justify-content:space-between}.avaya-ipo-transcription-actions{display:flex;flex-direction:column;gap:8px}.avaya-ipo-transcription-actions.avaya-ipo-outside{padding:0 4px}.avaya-ipo-detail-card.avaya-ipo-is-inactive{opacity:.45;filter:grayscale(.2);pointer-events:none}.avaya-ipo-action-btn{border:none;background:var(--sd-accent, #ff6633);color:var(--sd-accent-contrast, #fff);padding:10px 14px;border-radius:var(--sd-radius, 10px);font-weight:700;cursor:pointer;transition:background .15s ease,box-shadow .15s ease}.avaya-ipo-btn-content{display:inline-flex;align-items:center;gap:8px}.avaya-ipo-btn-spinner{width:14px;height:14px;border-radius:var(--sd-radius-pill, 999px);border:2px solid color-mix(in srgb,var(--sd-accent-contrast, #fff) 35%,transparent);border-top-color:var(--sd-accent-contrast, #fff);animation:spin .8s linear infinite}.avaya-ipo-action-btn:hover:not(:disabled){background:var(--sd-accent-strong, #ff5805)}.avaya-ipo-action-btn:focus-visible{outline:none;box-shadow:var(--sd-focus-ring, 0 0 0 3px rgba(255, 102, 51, .22))}.avaya-ipo-action-btn:disabled{background:var(--sd-surface-sunken, #e8e8e8);color:var(--sd-text-subtle, #9ca3af);cursor:not-allowed}.avaya-ipo-status-error{color:var(--sd-call-end, #e5484d);font-size:12px;font-weight:600}.avaya-ipo-transcription-skeleton{display:flex;flex-direction:column;gap:10px}.avaya-ipo-transcription-skeleton-line{height:10px;border-radius:var(--sd-radius-pill, 999px);background:linear-gradient(90deg,var(--sd-surface-sunken, #e8e8e8) 0%,var(--sd-surface-muted, #f7f7f7) 45%,var(--sd-surface-sunken, #e8e8e8) 100%);background-size:200% 100%;animation:skeleton-shine 1.2s ease-in-out infinite}.avaya-ipo-transcription-skeleton-line:nth-child(2){width:85%}.avaya-ipo-transcription-skeleton-line:nth-child(3){width:90%}.avaya-ipo-transcription-skeleton-line:nth-child(4){width:70%}.avaya-ipo-transcription-skeleton-line:nth-child(5){width:60%}.avaya-ipo-chat-thread{display:flex;flex-direction:column;gap:8px}.avaya-ipo-chat-thread-btn{border:1px solid var(--sd-border, #e3e3e3);background:var(--sd-surface, #fff);color:var(--sd-text, #333);padding:6px;border-radius:var(--sd-radius-sm, 8px);font-weight:700;cursor:pointer;font-size:12px;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;transition:background .15s ease,border-color .15s ease}.avaya-ipo-chat-thread-btn:hover{background:var(--sd-surface-muted, #f7f7f7)}.avaya-ipo-chat-thread-btn svg{width:16px;height:16px}.avaya-ipo-transcription-card.avaya-ipo-fullscreen{position:absolute;inset:0;background:var(--sd-surface, #fff);padding:16px;z-index:1000;animation:transcript-expand .25s ease;border-radius:0}:host-context(.avaya-ipo-mode-standalone) .avaya-ipo-transcription-card.avaya-ipo-fullscreen{position:fixed}.avaya-ipo-transcription-card.avaya-ipo-fullscreen .avaya-ipo-detail-title-row{position:sticky;top:0;background:var(--sd-surface, #fff);z-index:2}.avaya-ipo-transcription-card.avaya-ipo-fullscreen .avaya-ipo-chat-thread{flex:1 1 auto;overflow-y:auto;padding-bottom:8px}.avaya-ipo-detail-card{transition:transform .25s ease,opacity .25s ease}.avaya-ipo-transcription-card:not(.avaya-ipo-fullscreen){animation:transcript-collapse .2s ease}.avaya-ipo-chat-bubble{align-self:flex-start;max-width:86%;background:var(--sd-surface-muted, #f7f7f7);border-radius:var(--sd-radius, 10px);padding:8px 10px;border:1px solid var(--sd-border, #e3e3e3)}.avaya-ipo-chat-bubble.avaya-ipo-agent{align-self:flex-end;background:var(--sd-accent-soft, #fff1ea);border-color:color-mix(in srgb,var(--sd-accent, #ff6633) 35%,transparent)}.avaya-ipo-chat-speaker{font-size:11px;font-weight:700;color:var(--sd-text-muted, #5f6368);text-transform:capitalize;margin-bottom:4px}.avaya-ipo-chat-text,.avaya-ipo-summary-text{font-size:13px;color:var(--sd-text, #333);line-height:1.4}.avaya-ipo-summary-sentiment{font-size:12px;font-weight:700;color:var(--sd-text, #333);margin-bottom:6px}.avaya-ipo-summary-emoji{margin-left:6px;font-size:14px}.avaya-ipo-summary-grid,.avaya-ipo-qa-grid{display:grid;gap:8px}.avaya-ipo-summary-card,.avaya-ipo-qa-card{border:1px solid var(--sd-border, #e3e3e3);border-radius:var(--sd-radius, 10px);padding:10px;background:var(--sd-surface-muted, #f7f7f7)}.avaya-ipo-summary-title,.avaya-ipo-qa-title{font-weight:700;color:var(--sd-text, #333);font-size:12px;margin-bottom:6px;text-transform:capitalize}.avaya-ipo-summary-text,.avaya-ipo-qa-answer{font-size:13px;color:var(--sd-text, #333);line-height:1.4}.avaya-ipo-qa-reason{margin-top:6px;font-size:12px;color:var(--sd-text-muted, #5f6368);line-height:1.4}.avaya-ipo-sentiment-score{color:var(--sd-text-muted, #5f6368);font-size:12px}@keyframes transcript-expand{0%{transform:scale(.98);opacity:.6}to{transform:scale(1);opacity:1}}@keyframes transcript-collapse{0%{transform:scale(1.02);opacity:.6}to{transform:scale(1);opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes skeleton-shine{0%{background-position:200% 0}to{background-position:-200% 0}}.avaya-ipo-placeholder{font-size:13px;color:var(--sd-text-muted, #5f6368)}.avaya-ipo-detail-row{display:flex;justify-content:space-between;align-items:center}.avaya-ipo-label{font-weight:700;color:var(--sd-text-muted, #5f6368);font-size:13px}.avaya-ipo-value{color:var(--sd-text, #333);text-align:right;font-weight:600;font-size:13px}.avaya-ipo-value.avaya-ipo-mono{font-family:SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;color:var(--sd-text-muted, #5f6368)}\n"] }]
1407
1422
  }], ctorParameters: () => [{ type: i1.HttpClient }], propDecorators: { call: [{
1408
1423
  type: Input
1409
1424
  }] } });
1410
1425
 
1411
1426
  class CallHistoryComponent {
1412
- http;
1413
1427
  cdr;
1428
+ appSync;
1429
+ auth;
1414
1430
  mode = 'dial';
1415
1431
  tenantId;
1416
1432
  agentId;
1417
1433
  makeCallEv = new EventEmitter();
1418
1434
  transferEv = new EventEmitter();
1419
- CALL_HISTORY_API_URL = APP_CONFIG.CALL_HISTORY_API_URL;
1420
1435
  showHistoryLoader = false;
1421
1436
  callHistory = [];
1422
1437
  searchTerm = '';
1423
1438
  recentCallactiveTab = 'recentCall';
1424
1439
  selectedCall = null;
1425
- constructor(http, cdr) {
1426
- this.http = http;
1440
+ // Same backend call history snugdesk-app reads: all PHONE-channel Interactions for the tenant,
1441
+ // newest first. Run through @snugdesk/core's AppSync helper so auth + Amplify config are shared
1442
+ // with the host app.
1443
+ LIST_PHONE_INTERACTIONS_QUERY = `query ListPhoneInteractionsByTenantId($tenantId: ID!, $sortDirection: ModelSortDirection, $filter: ModelInteractionFilterInput, $limit: Int, $nextToken: String) {
1444
+ listInteractionsByTenantId(tenantId: $tenantId, sortDirection: $sortDirection, filter: $filter, limit: $limit, nextToken: $nextToken) {
1445
+ items {
1446
+ id
1447
+ providerInteractionId
1448
+ channel
1449
+ provider
1450
+ direction
1451
+ status
1452
+ last_status
1453
+ metadata
1454
+ summary
1455
+ startedAt
1456
+ completedAt
1457
+ duration
1458
+ createdAt
1459
+ recording { key bucket location }
1460
+ entityConversation { id entityAddress }
1461
+ entity { id name phoneNumberE164 }
1462
+ endpoint { id address }
1463
+ }
1464
+ nextToken
1465
+ }
1466
+ }`;
1467
+ constructor(cdr, appSync, auth) {
1427
1468
  this.cdr = cdr;
1469
+ this.appSync = appSync;
1470
+ this.auth = auth;
1428
1471
  }
1429
1472
  async ngOnInit() {
1430
1473
  await this.loadCallHistory();
@@ -1435,18 +1478,16 @@ class CallHistoryComponent {
1435
1478
  async loadCallHistory() {
1436
1479
  this.showHistoryLoader = true;
1437
1480
  try {
1438
- const tenantId = this.tenantId || this.getTenantIdFromSession();
1439
- const userId = this.agentId || this.getUserIdFromSession();
1440
- if (!tenantId || !userId) {
1441
- console.warn('Missing tenantId or agentId for call history', {
1442
- tenantId,
1443
- userId,
1444
- });
1481
+ const tenantId = this.tenantId || this.auth.getTenantId();
1482
+ if (!tenantId) {
1483
+ console.warn('Missing tenantId for call history');
1445
1484
  return;
1446
1485
  }
1447
- const response = await this.getCallHistory(tenantId, userId);
1448
- const items = response.items || [];
1449
- this.callHistory = items.sort((a, b) => new Date(b.timestamp).getTime() - new Date(a.timestamp).getTime());
1486
+ const items = await this.fetchPhoneInteractions(tenantId);
1487
+ this.callHistory = items
1488
+ .map((interaction) => this.mapInteractionToHistoryItem(interaction))
1489
+ .filter((item) => !!item)
1490
+ .sort((a, b) => new Date(b.timestamp).getTime() - new Date(a.timestamp).getTime());
1450
1491
  }
1451
1492
  catch (error) {
1452
1493
  console.error('Failed to load call history:', error);
@@ -1456,9 +1497,87 @@ class CallHistoryComponent {
1456
1497
  this.cdr.detectChanges();
1457
1498
  }
1458
1499
  }
1459
- getCallHistory(tenantId, agentId) {
1460
- // GET /avayaCallHistory?action=history&tenantId=xxx&agentId=yyy
1461
- return lastValueFrom(this.http.get(`${this.CALL_HISTORY_API_URL}?action=history&tenantId=${tenantId}&agentId=${agentId}`));
1500
+ async fetchPhoneInteractions(tenantId) {
1501
+ const interactions = [];
1502
+ let nextToken;
1503
+ let pages = 0;
1504
+ // Scope to the logged-in agent: Avaya interactions are tagged with hostId = the agent's user id.
1505
+ const userId = this.auth.getUserId();
1506
+ const andFilters = [
1507
+ { channel: { eq: 'PHONE' } },
1508
+ { deletedAt: { attributeExists: false } },
1509
+ ];
1510
+ if (userId) {
1511
+ andFilters.push({ hostId: { eq: userId } });
1512
+ }
1513
+ do {
1514
+ const variables = {
1515
+ tenantId,
1516
+ sortDirection: 'DESC',
1517
+ filter: { and: andFilters },
1518
+ limit: 100,
1519
+ };
1520
+ if (nextToken) {
1521
+ variables.nextToken = nextToken;
1522
+ }
1523
+ const res = await this.appSync.query(this.LIST_PHONE_INTERACTIONS_QUERY, variables);
1524
+ const data = res?.data?.listInteractionsByTenantId;
1525
+ if (Array.isArray(data?.items)) {
1526
+ interactions.push(...data.items.filter((i) => !!i));
1527
+ }
1528
+ nextToken = data?.nextToken || undefined;
1529
+ pages++;
1530
+ } while (nextToken && interactions.length < 200 && pages < 5);
1531
+ return interactions;
1532
+ }
1533
+ mapInteractionToHistoryItem(interaction) {
1534
+ if (!interaction) {
1535
+ return null;
1536
+ }
1537
+ const metadata = this.safeParse(interaction.metadata) || {};
1538
+ const phoneData = metadata.phoneData || {};
1539
+ const direction = (interaction.direction || '').toUpperCase() === 'OUT' ? 'outbound' : 'inbound';
1540
+ const status = interaction.status || '';
1541
+ const duration = Number(interaction.duration) || 0;
1542
+ const missed = ['MISSED', 'NO_ANSWER'].includes(status);
1543
+ const customerNumber = interaction.entity?.phoneNumberE164 ||
1544
+ interaction.entityConversation?.entityAddress ||
1545
+ phoneData.CallerID ||
1546
+ phoneData.CustomerNumber ||
1547
+ '';
1548
+ const entityName = (interaction.entity?.name || '').toString();
1549
+ const isJustNumber = !entityName || /^\+?[\d\s-]+$/.test(entityName);
1550
+ const name = !isJustNumber ? entityName : metadata.callerName || '';
1551
+ const tsSec = interaction.startedAt || interaction.createdAt || 0;
1552
+ const disconnectSide = missed && direction === 'inbound' ? 'CALLER' : metadata.disconnectSide || 'AGENT';
1553
+ return {
1554
+ id: interaction.id,
1555
+ callId: interaction.providerInteractionId,
1556
+ direction,
1557
+ status,
1558
+ duration: missed ? 0 : duration,
1559
+ disconnectSide,
1560
+ timestamp: tsSec ? new Date(tsSec * 1000).toISOString() : new Date().toISOString(),
1561
+ summary: interaction.summary || '',
1562
+ fullCallRecordingUrl: interaction.recording?.location || '',
1563
+ phoneNumber: {
1564
+ normalizedPhoneNumber: customerNumber,
1565
+ name: name || undefined,
1566
+ lookupPhoneNumber: name ? { name } : undefined,
1567
+ },
1568
+ };
1569
+ }
1570
+ safeParse(value) {
1571
+ if (!value)
1572
+ return null;
1573
+ if (typeof value === 'object')
1574
+ return value;
1575
+ try {
1576
+ return JSON.parse(value);
1577
+ }
1578
+ catch {
1579
+ return null;
1580
+ }
1462
1581
  }
1463
1582
  makeCall(phoneNumber, name) {
1464
1583
  const dialOut = formatDialOutNumber(phoneNumber);
@@ -1653,13 +1772,13 @@ class CallHistoryComponent {
1653
1772
  year: 'numeric',
1654
1773
  });
1655
1774
  }
1656
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: CallHistoryComponent, deps: [{ token: i1.HttpClient }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
1657
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: CallHistoryComponent, isStandalone: false, selector: "app-call-history", inputs: { mode: "mode", tenantId: "tenantId", agentId: "agentId" }, outputs: { makeCallEv: "makeCallEv", transferEv: "transferEv" }, ngImport: i0, template: "<div class=\"recent_container_outer\">\n @if (showHistoryLoader) {\n <div class=\"history_skeleton\">\n @for (item of [1,2,3,4]; track item) {\n <div class=\"skeleton_row\">\n <div class=\"skeleton_avatar shine\"></div>\n <div class=\"skeleton_body\">\n <div class=\"skeleton_line wide shine\"></div>\n <div class=\"skeleton_line medium shine\"></div>\n </div>\n <div class=\"skeleton_meta\">\n <div class=\"skeleton_line short shine\"></div>\n </div>\n </div>\n }\n </div>\n } @else if (selectedCall) {\n <div class=\"history_details_panel\">\n <button class=\"back_btn\" type=\"button\" (click)=\"closeDetails()\">\u2190 Back</button>\n <app-call-details [call]=\"selectedCall\"></app-call-details>\n </div>\n } @else {\n @if (recentCallactiveTab === 'recentCall') {\n <div class=\"recent_tab_container\">\n <div class=\"container_recent_list\">\n @if (!selectedCall) {\n <div class=\"recent_options_header\">\n <div class=\"recent_inner\">\n <button class=\"recent_btn\" (click)=\"recentSelectTab('recentCall')\"\n [class.active]=\"$any(recentCallactiveTab) === 'recentCall'\">\n <span class=\"tab_icon\">\n <svg viewBox=\"0 0 512 512\" width=\"14\" height=\"14\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z\" />\n </svg>\n </span>\n <span>Recent</span>\n </button>\n <button class=\"recent_btn\" (click)=\"recentSelectTab('missedCall')\"\n [class.active]=\"$any(recentCallactiveTab) === 'missedCall'\">\n <span class=\"tab_icon\">\n <svg viewBox=\"0 0 512 512\" width=\"14\" height=\"14\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M504.971 75.029l-68-68C430.182.241 423.6-1.547 417.6.758 411.7 3.067 408 8.798 408 15v72H248C111.033 87 0 198.033 0 335v48c0 13.255 10.745 24 24 24h64c13.255 0 24-10.745 24-24v-48c0-74.991 61.009-136 136-136h160v72c0 6.202 3.7 11.933 9.6 14.242 6 2.305 12.582.517 16.629-3.758l68-68c9.373-9.373 9.373-24.569 0-33.941z\" />\n </svg>\n </span>\n <span>Missed Call</span>\n </button>\n </div>\n </div>\n <div class=\"container_recent_search\">\n <div class=\"search_wrap\">\n <svg class=\"search_icon\" viewBox=\"0 0 512 512\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M208 48C111 48 32 127 32 224s79 176 176 176c43.2 0 82.7-15.3 113.7-40.6l81.4 81.4c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-81.4-81.4C416.7 306.7 432 267.2 432 224 432 127 353 48 256 48zm-128 176c0-70.7 57.3-128 128-128s128 57.3 128 128-57.3 128-128 128S80 294.7 80 224z\"/>\n </svg>\n <input\n type=\"search\"\n placeholder=\"Search numbers or names\"\n [(ngModel)]=\"searchTerm\"\n />\n </div>\n </div>\n }\n <div class=\"container_recent_list_inner\">\n <div class=\"scrollbox\">\n <div class=\"scrollbox-content\">\n @for (group of groupedRecent; track $index) {\n @if (group.label) {\n <div class=\"history_group_label\">{{ group.label }}</div>\n }\n @for (call of group.items; track $index) {\n <div class=\"outer_container_recent\">\n <div class=\"history_item\" (click)=\"onSelectCall(call)\">\n <div class=\"history_avatar grd1\">\n {{ getPhoneBadge(call) }}\n </div>\n <div class=\"history_body\">\n <div class=\"history_row\">\n <div class=\"history_name\" [class.history_name_missed]=\"call.disconnectSide === 'CALLER' && (call.duration ?? 0) <= 0\">\n {{ getPhoneDisplay(call) }}\n </div>\n <div class=\"history_time\">{{ call.timestamp | date : \"hh:mm a\" }}</div>\n </div>\n <div class=\"history_meta\" [ngClass]=\"{\n missed: call.status === 'MISSED',\n caller_drop: call.disconnectSide === 'CALLER' && (call.duration ?? 0) <= 0\n }\">\n <span class=\"meta_label\" [ngClass]=\"{\n inbound: call.direction?.toLowerCase() === 'inbound',\n outbound: call.direction?.toLowerCase() === 'outbound',\n missed: call.disconnectSide === 'CALLER' && (call.duration ?? 0) <= 0\n }\">\n @if (call.direction?.toLowerCase() === 'inbound') {\n @if (call.disconnectSide === 'CALLER' && (call.duration ?? 0) <= 0) {\n <svg viewBox=\"0 0 640 512\" width=\"12px\" aria-hidden=\"true\" style=\"fill: currentColor;\">\n <path d=\"M232 0c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-39 39 58.7 58.7C282.3 152.4 300.8 160 320 160s37.7-7.6 51.3-21.3L503 7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L405.3 172.7C382.6 195.3 352 208 320 208s-62.6-12.7-85.3-35.3L176 113.9l-39 39c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2L96 24c0-13.3 10.7-24 24-24L232 0zM51.4 489.9l-35.4-62c-9.7-16.9-8.3-38.1 5.5-51.7C72.6 325.9 178.1 256 320 256s247.4 69.9 298.5 120.2c13.9 13.6 15.2 34.8 5.5 51.7l-35.4 62c-7.4 12.9-22.7 19.1-37 14.8L438.8 470.8c-13.5-4.1-22.8-16.5-22.8-30.6l0-56.2c-62.3-20.8-129.7-20.8-192 0l0 56.2c0 14.1-9.3 26.6-22.8 30.6L88.4 504.7c-14.3 4.3-29.6-1.8-37-14.8z\" />\n </svg>\n } @else {\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"M17 7L7 17M7 17H17M7 17V7\" />\n </svg>\n }\n <span class=\"direction_text\">\n @if (call.disconnectSide === 'CALLER' && (call.duration ?? 0) <= 0) {\n Missed call\n } @else {\n Incoming\n }\n </span>\n } @else {\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"M7 17L17 7M17 7H7M17 7V17\" />\n </svg>\n <span class=\"direction_text\">Outgoing</span>\n }\n </span>\n </div>\n </div>\n <div class=\"history_actions\">\n @if (mode === 'transfer') {\n <button class=\"button_recent_call\" (click)=\"transferEv.emit(call); $event.stopPropagation()\">\n <svg viewBox=\"0 0 512 512\" height=\"18px\">\n <path fill=\"currentColor\"\n d=\"M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z\" />\n </svg>\n </button>\n } @else {\n <button class=\"button_recent_call\" (click)=\"\n makeCall(call.phoneNumber?.normalizedPhoneNumber, call.phoneNumber?.name || call.lookupPhoneNumber?.name); $event.stopPropagation()\n \">\n <svg viewBox=\"0 0 512 512\" height=\"18px\">\n <path fill=\"currentColor\"\n d=\"M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z\" />\n </svg>\n </button>\n }\n </div>\n </div>\n </div>\n }\n }\n @if (callHistory.length === 0) {\n <div class=\"container_call_history_not_found\">\n <h2>No Call History</h2>\n <p>Your call history is empty</p>\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n </div>\n } @if (recentCallactiveTab === 'missedCall') {\n <div class=\"recent_tab_container\">\n <div class=\"container_recent_list\">\n @if (!selectedCall) {\n <div class=\"recent_options_header\">\n <div class=\"recent_inner\">\n <button class=\"recent_btn\" (click)=\"recentSelectTab('recentCall')\"\n [class.active]=\"$any(recentCallactiveTab) === 'recentCall'\">\n <span class=\"tab_icon\">\n <svg viewBox=\"0 0 512 512\" width=\"14\" height=\"14\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z\" />\n </svg>\n </span>\n <span>Recent</span>\n </button>\n <button class=\"recent_btn\" (click)=\"recentSelectTab('missedCall')\"\n [class.active]=\"$any(recentCallactiveTab) === 'missedCall'\">\n <span class=\"tab_icon\">\n <svg viewBox=\"0 0 512 512\" width=\"14\" height=\"14\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M504.971 75.029l-68-68C430.182.241 423.6-1.547 417.6.758 411.7 3.067 408 8.798 408 15v72H248C111.033 87 0 198.033 0 335v48c0 13.255 10.745 24 24 24h64c13.255 0 24-10.745 24-24v-48c0-74.991 61.009-136 136-136h160v72c0 6.202 3.7 11.933 9.6 14.242 6 2.305 12.582.517 16.629-3.758l68-68c9.373-9.373 9.373-24.569 0-33.941z\" />\n </svg>\n </span>\n <span>Missed Call</span>\n </button>\n </div>\n </div>\n <div class=\"container_recent_search\">\n <div class=\"search_wrap\">\n <svg class=\"search_icon\" viewBox=\"0 0 512 512\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M208 48C111 48 32 127 32 224s79 176 176 176c43.2 0 82.7-15.3 113.7-40.6l81.4 81.4c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-81.4-81.4C416.7 306.7 432 267.2 432 224 432 127 353 48 256 48zm-128 176c0-70.7 57.3-128 128-128s128 57.3 128 128-57.3 128-128 128S80 294.7 80 224z\"/>\n </svg>\n <input\n type=\"search\"\n placeholder=\"Search numbers or names\"\n [(ngModel)]=\"searchTerm\"\n />\n </div>\n </div>\n }\n <div class=\"container_recent_list_inner\">\n <div class=\"scrollbox\">\n <div class=\"scrollbox-content\">\n @for (group of groupedMissed; track $index) {\n @if (group.label) {\n <div class=\"history_group_label\">{{ group.label }}</div>\n }\n @for (call of group.items; track $index) {\n <div class=\"outer_container_recent\">\n <div class=\"history_item\" (click)=\"onSelectCall(call)\">\n <div class=\"history_avatar grd1\">\n {{ getPhoneBadge(call) }}\n </div>\n <div class=\"history_body\">\n <div class=\"history_row\">\n <div class=\"history_name history_name_missed\">\n {{ getPhoneDisplay(call) }}\n </div>\n <div class=\"history_time\">{{ call.timestamp | date : \"hh:mm a\" }}</div>\n </div>\n <div class=\"history_meta caller_drop\">\n <span class=\"meta_label missed\">\n <svg viewBox=\"0 0 640 512\" width=\"12px\" aria-hidden=\"true\" style=\"fill: currentColor;\">\n <path d=\"M232 0c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-39 39 58.7 58.7C282.3 152.4 300.8 160 320 160s37.7-7.6 51.3-21.3L503 7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L405.3 172.7C382.6 195.3 352 208 320 208s-62.6-12.7-85.3-35.3L176 113.9l-39 39c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2L96 24c0-13.3 10.7-24 24-24L232 0zM51.4 489.9l-35.4-62c-9.7-16.9-8.3-38.1 5.5-51.7C72.6 325.9 178.1 256 320 256s247.4 69.9 298.5 120.2c13.9 13.6 15.2 34.8 5.5 51.7l-35.4 62c-7.4 12.9-22.7 19.1-37 14.8L438.8 470.8c-13.5-4.1-22.8-16.5-22.8-30.6l0-56.2c-62.3-20.8-129.7-20.8-192 0l0 56.2c0 14.1-9.3 26.6-22.8 30.6L88.4 504.7c-14.3 4.3-29.6-1.8-37-14.8z\" />\n </svg>\n <span class=\"direction_text\">Missed call</span>\n </span>\n </div>\n </div>\n <div class=\"history_actions\">\n <button class=\"button_recent_call\" (click)=\"selectFromHistory(call); $event.stopPropagation()\">\n <svg viewBox=\"0 0 512 512\" height=\"15px\">\n <path fill=\"currentColor\"\n d=\"M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z\" />\n </svg>\n </button>\n </div>\n </div>\n </div>\n }\n }\n @if (callerDropped.length === 0) {\n <div class=\"container_call_history_not_found\">\n <h2>No missed calls</h2>\n <p>No inbound calls ended by caller.</p>\n </div>\n }\n </div>\n <!-- /.scrollbox-content -->\n </div>\n <!-- /.scrollbox -->\n </div>\n <!-- /.container_recent_list_inner -->\n </div>\n <!-- /.container_recent_list -->\n </div>\n <!-- /.recent_tab_container -->\n }\n }\n</div>\n", styles: [":host{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.recent_container_outer{margin:0;padding:0;width:100%;position:relative;display:flex;flex-direction:column;flex:1 1 auto;min-height:0;overflow-y:auto;padding-bottom:var(--sd-tabs-height, 60px)}.recent_options_header{margin:0;padding:12px 15px 8px;width:100%;text-align:center;position:sticky;top:0;z-index:6;background:var(--sd-surface, #fff)}.recent_inner{margin:0;padding:4px;width:100%;height:40px;background:#f2f3f7;border-radius:12px;display:flex;align-items:center;justify-content:center;gap:6px}.recent_btn{margin:0;padding:0 10px;width:50%;display:flex;align-items:center;justify-content:center;border:none;outline:none;background:transparent;height:32px;border-radius:10px;color:#6b6b6b;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;gap:6px;font-weight:600;font-size:13px}.recent_btn:hover{background:#e8e8ee;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.recent_btn.active{color:#1f1f1f;background:#fff;font-weight:700;box-shadow:0 2px 6px #0000000d}.tab_icon{display:flex;align-items:center;justify-content:center;color:inherit}.recent_heading{font-family:var(--sd-text-font-family);font-size:20px;color:var(--sd-text-color-dark);font-weight:700;letter-spacing:-.65px;padding:0 0 15px 15px;line-height:normal;margin:0;width:100%;max-width:100%;box-sizing:border-box;overflow:hidden}.container_recent_search{margin:0 0 15px;padding:0 15px;width:100%;max-width:100%;box-sizing:border-box;position:sticky;top:56px;z-index:5;background:var(--sd-surface, #fff)}.container_recent_search input{padding:0 42px;width:100%;outline:none;display:block;border:1px solid #e0e0e0;color:#1f1f1f;font-size:13px;letter-spacing:-.15px;font-family:var(--sd-text-font-family);background:#fafafa;font-style:normal;font-weight:600;position:relative;border-radius:12px;height:42px;box-shadow:inset 0 1px 2px #0000000f}.search_wrap{position:relative}.search_icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#888}.recent_tab_container{margin:0;padding:0;width:100%;flex:1 1 auto;min-height:0;position:relative}.container_recent_list{width:100%;margin:0;padding:0;position:relative;flex:1 1 auto;min-height:0}.container_recent_list_inner{width:100%;position:relative;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.scrollbox{height:auto;overflow-y:visible;overflow-x:hidden;visibility:visible;padding:0 0 12px;position:relative;scroll-behavior:smooth;scrollbar-width:thin;width:100%;flex:1 1 auto;min-height:0}.outer_container_recent{width:100%;max-width:100%;margin:0;padding:0 15px;box-sizing:border-box;overflow:hidden}.container_recent_item{width:100%;position:relative;display:flex;flex-direction:row;height:auto;pointer-events:all;border-radius:8px;overflow:hidden;cursor:pointer}.calling_btn{display:none}.history_item{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #ededed;background:transparent;box-shadow:none}.history_item:hover{background:#f7f7f7}.history_avatar{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:#f0f0f0;font-weight:700;color:#333}.history_body{flex:1;display:flex;flex-direction:column;gap:6px}.history_row{display:flex;align-items:center;justify-content:space-between;gap:10px}.history_name{font-weight:700;color:#1f1f1f}.history_name_missed{color:#d14343}.history_time{font-size:12px;color:#666}.history_meta{display:flex;align-items:center;gap:8px;font-size:12px;color:#555}.history_meta .meta_label{display:inline-flex;align-items:center;gap:6px}.history_meta .meta_label svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.history_meta .direction_text{font-size:12px;font-weight:500}.history_meta.missed,.history_meta.caller_drop{color:#d14343}.history_meta .meta_label.inbound{color:#2b8a3e}.history_meta .meta_label.outbound{color:#1f6fb2}.history_meta .meta_label.missed{color:#d14343}.history_actions{display:flex;align-items:center;justify-content:center}.history_details_panel{padding:0 15px 12px;display:flex;flex-direction:column;gap:12px;height:100%;box-sizing:border-box;overflow-y:auto}.back_btn{width:80px;border:1px solid #e0e0e0;background:#fff;color:#333;border-radius:8px;padding:8px;cursor:pointer;font-weight:600}.history_skeleton{padding:12px 15px;display:flex;flex-direction:column;gap:12px}.skeleton_row{display:flex;align-items:center;gap:12px}.skeleton_avatar{width:42px;height:42px;border-radius:12px;background:#f0f0f0;position:relative;overflow:hidden}.skeleton_body{flex:1;display:flex;flex-direction:column;gap:8px}.skeleton_meta{width:60px}.skeleton_line{height:10px;background:#f0f0f0;border-radius:6px;position:relative;overflow:hidden}.skeleton_line.wide{width:70%}.skeleton_line.medium{width:55%}.skeleton_line.short{width:50px}.shine:after{content:\"\";position:absolute;top:0;left:-150px;height:100%;width:120px;background:linear-gradient(90deg,#fff0,#fff9,#fff0);animation:shimmer 1.2s infinite}:host-context(.dark-mode) .skeleton_avatar,:host-context(.dark-mode) .skeleton_line{background:#1e2430}:host-context(.dark-mode) .shine:after{background:linear-gradient(90deg,#0f111500,#555f6e73,#0f111500)}@keyframes shimmer{0%{transform:translate(0)}to{transform:translate(260px)}}.container_recent_item:hover .calling_btn{display:block;position:absolute;text-align:right;right:0;width:78px;height:38px;background:var(--sd-background-color)}.container_recent_item_image{display:flex;align-items:center}.container_recent_item_image_inner{margin:0 auto;padding:0;width:50px;height:50px;position:relative;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--sd-text-font-family);font-size:26px;color:var(--sd-text-color-inverse);font-weight:400;background:#2a7b9b}.grd1{background:#718ede}.container_recent_item_left{display:flex;flex-basis:auto;flex-direction:column;flex-grow:1;justify-content:center;min-width:0;position:relative;border-top:1px solid #e9edef}.container_recent_item_left_inner{display:flex;flex-basis:1;flex-direction:column;padding:0 0 0 10px}.container_recent_item_left .contact_field{font-size:13px;color:var(--sd-text-color-dark);margin-bottom:2px}.container_recent_item_left .missed_call_color{color:#e0261f}.container_recent_item_left .recent_time_back{font-size:12px;color:var(--sd-text-color-medium)}.history_group_label{width:100%;padding:8px 15px 6px;font-size:11px;letter-spacing:.6px;color:var(--sd-text-color-medium);text-transform:uppercase;box-sizing:border-box;text-align:center;position:sticky;top:0;z-index:2;background:#f7f7f7eb;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.container_recent_item_left .caller_drop{color:#e0261f}.disconnect_badge{display:inline-flex;align-items:center;margin-left:6px;padding:2px 6px;border-radius:8px;background:#e0261f1f;color:#e0261f;font-size:10px;font-weight:600;letter-spacing:.2px}.container_recent_item_right{display:flex;flex-direction:row;position:absolute;right:0}.container_recent_item_right .right_field{display:flex;flex-basis:auto;justify-content:right}.container_recent_item_right .right_field_content{display:inline-block;border-radius:26px;border:1px solid #e5e5e5;padding:5px 8px;font-size:11px;color:var(--sd-text-color)}.calling_btn_inner{position:relative;width:100%;margin:0;padding:0;display:flex;justify-content:right}.button_recent_call{width:38px;height:38px;display:flex;flex-basis:auto;flex-direction:column;align-items:center;justify-content:center;line-height:normal;border-radius:26px;outline:none;border:none;font-size:22px;font-weight:700;color:#6c0;background:#f1f1f1;border:1px solid #f1f1f1}.container_call_history_not_found{position:absolute;width:100%;height:100%;display:flex;flex-basis:auto;flex-direction:column;flex-grow:1;align-items:center;background:#f8f8f8}.container_call_history_not_found h2{font-size:18px;font-weight:700;letter-spacing:-.65px;color:var(--sd-text-color-dark);text-align:center;padding-top:26px}.container_call_history_not_found p{font-size:12px;line-height:normal;color:var(--sd-text-color);font-weight:600;white-space:normal;text-align:center;padding-top:10px}.icon_round_area_call_history{width:165px;height:75px;background:var(--sd-background-color) url(data:image/gif;base64,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) center no-repeat;border-radius:38px;display:flex;grid-row:1}:host-context(.dark-mode) .container_recent_search input{background:#1c222c;border-color:#2a2f3a;color:#f2f4f8}:host-context(.dark-mode) .container_recent_search input::placeholder{color:#aab0bb}:host-context(.dark-mode) .search_icon{color:#aab0bb}:host-context(.dark-mode) .history_name{color:#f2f4f8}:host-context(.dark-mode) .history_time,:host-context(.dark-mode) .history_meta,:host-context(.dark-mode) .history_meta .direction_text{color:#aab0bb}:host-context(.dark-mode) .history_avatar{background:#222833;color:#f2f4f8}:host-context(.dark-mode) .container_call_history_not_found{background:#12161e}:host-context(.dark-mode) .container_call_history_not_found h2,:host-context(.dark-mode) .container_call_history_not_found p{color:#aab0bb}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2$1.NativeElementInjectorDirective, selector: "[ngModel], [formControl], [formControlName]" }, { kind: "component", type: CallDetailsComponent, selector: "app-call-details", inputs: ["call"] }, { kind: "pipe", type: i2.DatePipe, name: "date" }] });
1775
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: CallHistoryComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$1.AppSyncHelperService }, { token: i1$1.SnugdeskAuthenticationService }], target: i0.ɵɵFactoryTarget.Component });
1776
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: CallHistoryComponent, isStandalone: false, selector: "app-call-history", inputs: { mode: "mode", tenantId: "tenantId", agentId: "agentId" }, outputs: { makeCallEv: "makeCallEv", transferEv: "transferEv" }, ngImport: i0, template: "<div class=\"avaya-ipo-recent_container_outer\">\n @if (selectedCall) {\n <div class=\"avaya-ipo-history_details_panel\">\n <button class=\"avaya-ipo-back_btn\" type=\"button\" (click)=\"closeDetails()\">\u2190 Back</button>\n <app-call-details [call]=\"selectedCall\"></app-call-details>\n </div>\n } @else {\n @if (recentCallactiveTab === 'recentCall') {\n <div class=\"avaya-ipo-recent_tab_container\">\n <div class=\"avaya-ipo-container_recent_list\">\n @if (!selectedCall) {\n <div class=\"avaya-ipo-recent_options_header\">\n <div class=\"avaya-ipo-recent_inner\">\n <button class=\"avaya-ipo-recent_btn\" (click)=\"recentSelectTab('recentCall')\"\n [class.avaya-ipo-active]=\"$any(recentCallactiveTab) === 'recentCall'\">\n <span class=\"avaya-ipo-tab_icon\">\n <svg viewBox=\"0 0 512 512\" width=\"14\" height=\"14\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z\" />\n </svg>\n </span>\n <span>Recent</span>\n </button>\n <button class=\"avaya-ipo-recent_btn\" (click)=\"recentSelectTab('missedCall')\"\n [class.avaya-ipo-active]=\"$any(recentCallactiveTab) === 'missedCall'\">\n <span class=\"avaya-ipo-tab_icon\">\n <svg viewBox=\"0 0 512 512\" width=\"14\" height=\"14\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M504.971 75.029l-68-68C430.182.241 423.6-1.547 417.6.758 411.7 3.067 408 8.798 408 15v72H248C111.033 87 0 198.033 0 335v48c0 13.255 10.745 24 24 24h64c13.255 0 24-10.745 24-24v-48c0-74.991 61.009-136 136-136h160v72c0 6.202 3.7 11.933 9.6 14.242 6 2.305 12.582.517 16.629-3.758l68-68c9.373-9.373 9.373-24.569 0-33.941z\" />\n </svg>\n </span>\n <span>Missed Call</span>\n </button>\n </div>\n </div>\n <div class=\"avaya-ipo-container_recent_search\">\n <div class=\"avaya-ipo-search_wrap\">\n <svg class=\"avaya-ipo-search_icon\" viewBox=\"0 0 512 512\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M208 48C111 48 32 127 32 224s79 176 176 176c43.2 0 82.7-15.3 113.7-40.6l81.4 81.4c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-81.4-81.4C416.7 306.7 432 267.2 432 224 432 127 353 48 256 48zm-128 176c0-70.7 57.3-128 128-128s128 57.3 128 128-57.3 128-128 128S80 294.7 80 224z\"/>\n </svg>\n <input\n type=\"search\"\n placeholder=\"Search numbers or names\"\n [(ngModel)]=\"searchTerm\"\n />\n </div>\n </div>\n }\n <div class=\"avaya-ipo-container_recent_list_inner\">\n <div class=\"avaya-ipo-scrollbox\">\n @if (showHistoryLoader) {\n <div class=\"avaya-ipo-history_skeleton\">\n @for (item of [1,2,3,4]; track item) {\n <div class=\"avaya-ipo-skeleton_row\">\n <div class=\"avaya-ipo-skeleton_avatar avaya-ipo-shine\"></div>\n <div class=\"avaya-ipo-skeleton_body\">\n <div class=\"avaya-ipo-skeleton_line avaya-ipo-wide avaya-ipo-shine\"></div>\n <div class=\"avaya-ipo-skeleton_line avaya-ipo-medium avaya-ipo-shine\"></div>\n </div>\n <div class=\"avaya-ipo-skeleton_meta\">\n <div class=\"avaya-ipo-skeleton_line avaya-ipo-short avaya-ipo-shine\"></div>\n </div>\n </div>\n }\n </div>\n } @else {\n <div class=\"avaya-ipo-scrollbox-content\">\n @for (group of groupedRecent; track $index) {\n @if (group.label) {\n <div class=\"avaya-ipo-history_group_label\">{{ group.label }}</div>\n }\n @for (call of group.items; track $index) {\n <div class=\"avaya-ipo-outer_container_recent\">\n <div class=\"avaya-ipo-history_item\" (click)=\"onSelectCall(call)\">\n <div class=\"avaya-ipo-history_avatar avaya-ipo-grd1\">\n {{ getPhoneBadge(call) }}\n </div>\n <div class=\"avaya-ipo-history_body\">\n <div class=\"avaya-ipo-history_row\">\n <div class=\"avaya-ipo-history_name\" [class.avaya-ipo-history_name_missed]=\"call.disconnectSide === 'CALLER' && (call.duration ?? 0) <= 0\">\n {{ getPhoneDisplay(call) }}\n </div>\n <div class=\"avaya-ipo-history_time\">{{ call.timestamp | date : \"hh:mm a\" }}</div>\n </div>\n <div class=\"avaya-ipo-history_meta\" [ngClass]=\"{\n 'avaya-ipo-missed': call.status === 'MISSED',\n 'avaya-ipo-caller_drop': call.disconnectSide === 'CALLER' && (call.duration ?? 0) <= 0\n }\">\n <span class=\"avaya-ipo-meta_label\" [ngClass]=\"{\n 'avaya-ipo-inbound': call.direction?.toLowerCase() === 'inbound',\n 'avaya-ipo-outbound': call.direction?.toLowerCase() === 'outbound',\n 'avaya-ipo-missed': call.disconnectSide === 'CALLER' && (call.duration ?? 0) <= 0\n }\">\n @if (call.direction?.toLowerCase() === 'inbound') {\n @if (call.disconnectSide === 'CALLER' && (call.duration ?? 0) <= 0) {\n <svg viewBox=\"0 0 640 512\" width=\"12px\" aria-hidden=\"true\" style=\"fill: currentColor;\">\n <path d=\"M232 0c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-39 39 58.7 58.7C282.3 152.4 300.8 160 320 160s37.7-7.6 51.3-21.3L503 7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L405.3 172.7C382.6 195.3 352 208 320 208s-62.6-12.7-85.3-35.3L176 113.9l-39 39c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2L96 24c0-13.3 10.7-24 24-24L232 0zM51.4 489.9l-35.4-62c-9.7-16.9-8.3-38.1 5.5-51.7C72.6 325.9 178.1 256 320 256s247.4 69.9 298.5 120.2c13.9 13.6 15.2 34.8 5.5 51.7l-35.4 62c-7.4 12.9-22.7 19.1-37 14.8L438.8 470.8c-13.5-4.1-22.8-16.5-22.8-30.6l0-56.2c-62.3-20.8-129.7-20.8-192 0l0 56.2c0 14.1-9.3 26.6-22.8 30.6L88.4 504.7c-14.3 4.3-29.6-1.8-37-14.8z\" />\n </svg>\n } @else {\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"M17 7L7 17M7 17H17M7 17V7\" />\n </svg>\n }\n <span class=\"avaya-ipo-direction_text\">\n @if (call.disconnectSide === 'CALLER' && (call.duration ?? 0) <= 0) {\n Missed call\n } @else {\n Incoming\n }\n </span>\n } @else {\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"M7 17L17 7M17 7H7M17 7V17\" />\n </svg>\n <span class=\"avaya-ipo-direction_text\">Outgoing</span>\n }\n </span>\n </div>\n </div>\n <div class=\"avaya-ipo-history_actions\">\n @if (mode === 'transfer') {\n <button class=\"avaya-ipo-button_recent_call\" (click)=\"transferEv.emit(call); $event.stopPropagation()\">\n <svg viewBox=\"0 0 512 512\" height=\"18px\">\n <path fill=\"currentColor\"\n d=\"M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z\" />\n </svg>\n </button>\n } @else {\n <button class=\"avaya-ipo-button_recent_call\" (click)=\"\n makeCall(call.phoneNumber?.normalizedPhoneNumber, call.phoneNumber?.name || call.lookupPhoneNumber?.name); $event.stopPropagation()\n \">\n <svg viewBox=\"0 0 512 512\" height=\"18px\">\n <path fill=\"currentColor\"\n d=\"M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z\" />\n </svg>\n </button>\n }\n </div>\n </div>\n </div>\n }\n }\n @if (callHistory.length === 0) {\n <div class=\"avaya-ipo-container_call_history_not_found\">\n <h2>No Call History</h2>\n <p>Your call history is empty</p>\n </div>\n }\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n } @if (recentCallactiveTab === 'missedCall') {\n <div class=\"avaya-ipo-recent_tab_container\">\n <div class=\"avaya-ipo-container_recent_list\">\n @if (!selectedCall) {\n <div class=\"avaya-ipo-recent_options_header\">\n <div class=\"avaya-ipo-recent_inner\">\n <button class=\"avaya-ipo-recent_btn\" (click)=\"recentSelectTab('recentCall')\"\n [class.avaya-ipo-active]=\"$any(recentCallactiveTab) === 'recentCall'\">\n <span class=\"avaya-ipo-tab_icon\">\n <svg viewBox=\"0 0 512 512\" width=\"14\" height=\"14\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z\" />\n </svg>\n </span>\n <span>Recent</span>\n </button>\n <button class=\"avaya-ipo-recent_btn\" (click)=\"recentSelectTab('missedCall')\"\n [class.avaya-ipo-active]=\"$any(recentCallactiveTab) === 'missedCall'\">\n <span class=\"avaya-ipo-tab_icon\">\n <svg viewBox=\"0 0 512 512\" width=\"14\" height=\"14\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M504.971 75.029l-68-68C430.182.241 423.6-1.547 417.6.758 411.7 3.067 408 8.798 408 15v72H248C111.033 87 0 198.033 0 335v48c0 13.255 10.745 24 24 24h64c13.255 0 24-10.745 24-24v-48c0-74.991 61.009-136 136-136h160v72c0 6.202 3.7 11.933 9.6 14.242 6 2.305 12.582.517 16.629-3.758l68-68c9.373-9.373 9.373-24.569 0-33.941z\" />\n </svg>\n </span>\n <span>Missed Call</span>\n </button>\n </div>\n </div>\n <div class=\"avaya-ipo-container_recent_search\">\n <div class=\"avaya-ipo-search_wrap\">\n <svg class=\"avaya-ipo-search_icon\" viewBox=\"0 0 512 512\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M208 48C111 48 32 127 32 224s79 176 176 176c43.2 0 82.7-15.3 113.7-40.6l81.4 81.4c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-81.4-81.4C416.7 306.7 432 267.2 432 224 432 127 353 48 256 48zm-128 176c0-70.7 57.3-128 128-128s128 57.3 128 128-57.3 128-128 128S80 294.7 80 224z\"/>\n </svg>\n <input\n type=\"search\"\n placeholder=\"Search numbers or names\"\n [(ngModel)]=\"searchTerm\"\n />\n </div>\n </div>\n }\n <div class=\"avaya-ipo-container_recent_list_inner\">\n <div class=\"avaya-ipo-scrollbox\">\n @if (showHistoryLoader) {\n <div class=\"avaya-ipo-history_skeleton\">\n @for (item of [1,2,3,4]; track item) {\n <div class=\"avaya-ipo-skeleton_row\">\n <div class=\"avaya-ipo-skeleton_avatar avaya-ipo-shine\"></div>\n <div class=\"avaya-ipo-skeleton_body\">\n <div class=\"avaya-ipo-skeleton_line avaya-ipo-wide avaya-ipo-shine\"></div>\n <div class=\"avaya-ipo-skeleton_line avaya-ipo-medium avaya-ipo-shine\"></div>\n </div>\n <div class=\"avaya-ipo-skeleton_meta\">\n <div class=\"avaya-ipo-skeleton_line avaya-ipo-short avaya-ipo-shine\"></div>\n </div>\n </div>\n }\n </div>\n } @else {\n <div class=\"avaya-ipo-scrollbox-content\">\n @for (group of groupedMissed; track $index) {\n @if (group.label) {\n <div class=\"avaya-ipo-history_group_label\">{{ group.label }}</div>\n }\n @for (call of group.items; track $index) {\n <div class=\"avaya-ipo-outer_container_recent\">\n <div class=\"avaya-ipo-history_item\" (click)=\"onSelectCall(call)\">\n <div class=\"avaya-ipo-history_avatar avaya-ipo-grd1\">\n {{ getPhoneBadge(call) }}\n </div>\n <div class=\"avaya-ipo-history_body\">\n <div class=\"avaya-ipo-history_row\">\n <div class=\"avaya-ipo-history_name avaya-ipo-history_name_missed\">\n {{ getPhoneDisplay(call) }}\n </div>\n <div class=\"avaya-ipo-history_time\">{{ call.timestamp | date : \"hh:mm a\" }}</div>\n </div>\n <div class=\"avaya-ipo-history_meta avaya-ipo-caller_drop\">\n <span class=\"avaya-ipo-meta_label avaya-ipo-missed\">\n <svg viewBox=\"0 0 640 512\" width=\"12px\" aria-hidden=\"true\" style=\"fill: currentColor;\">\n <path d=\"M232 0c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-39 39 58.7 58.7C282.3 152.4 300.8 160 320 160s37.7-7.6 51.3-21.3L503 7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L405.3 172.7C382.6 195.3 352 208 320 208s-62.6-12.7-85.3-35.3L176 113.9l-39 39c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2L96 24c0-13.3 10.7-24 24-24L232 0zM51.4 489.9l-35.4-62c-9.7-16.9-8.3-38.1 5.5-51.7C72.6 325.9 178.1 256 320 256s247.4 69.9 298.5 120.2c13.9 13.6 15.2 34.8 5.5 51.7l-35.4 62c-7.4 12.9-22.7 19.1-37 14.8L438.8 470.8c-13.5-4.1-22.8-16.5-22.8-30.6l0-56.2c-62.3-20.8-129.7-20.8-192 0l0 56.2c0 14.1-9.3 26.6-22.8 30.6L88.4 504.7c-14.3 4.3-29.6-1.8-37-14.8z\" />\n </svg>\n <span class=\"avaya-ipo-direction_text\">Missed call</span>\n </span>\n </div>\n </div>\n <div class=\"avaya-ipo-history_actions\">\n <button class=\"avaya-ipo-button_recent_call\" (click)=\"selectFromHistory(call); $event.stopPropagation()\">\n <svg viewBox=\"0 0 512 512\" height=\"15px\">\n <path fill=\"currentColor\"\n d=\"M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z\" />\n </svg>\n </button>\n </div>\n </div>\n </div>\n }\n }\n @if (callerDropped.length === 0) {\n <div class=\"avaya-ipo-container_call_history_not_found\">\n <h2>No missed calls</h2>\n <p>No inbound calls ended by caller.</p>\n </div>\n }\n </div>\n }\n <!-- /.scrollbox-content -->\n </div>\n <!-- /.scrollbox -->\n </div>\n <!-- /.container_recent_list_inner -->\n </div>\n <!-- /.container_recent_list -->\n </div>\n <!-- /.recent_tab_container -->\n }\n }\n</div>\n", styles: [":host{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;overflow-x:hidden}.avaya-ipo-recent_container_outer{margin:0;padding:0;width:100%;position:relative;display:flex;flex-direction:column;flex:1 1 auto;min-height:0;overflow:hidden}.avaya-ipo-recent_options_header{margin:0;padding:12px 15px 8px;text-align:center;position:sticky;top:0;z-index:6;background:var(--sd-surface, #fff)}.avaya-ipo-recent_inner{margin:0;padding:4px;background:var(--sd-surface-muted, #f7f7f7);border-radius:var(--sd-radius, 10px);display:flex;align-items:center;justify-content:center;gap:6px}.avaya-ipo-recent_btn{margin:0;padding:0 10px;width:50%;display:flex;align-items:center;justify-content:center;border:none;outline:none;background:transparent;height:32px;border-radius:var(--sd-radius-sm, 8px);color:var(--sd-text-muted, #5f6368);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;gap:6px;font-weight:600;font-size:13px}.avaya-ipo-recent_btn:hover{background:var(--sd-surface-sunken, #e8e8e8);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.avaya-ipo-recent_btn.avaya-ipo-active{color:var(--sd-text, #333);background:var(--sd-surface, #fff);font-weight:700;box-shadow:var(--sd-shadow-sm, 0 1px 2px rgba(16, 24, 40, .06))}.avaya-ipo-tab_icon{display:flex;align-items:center;justify-content:center;color:inherit}.avaya-ipo-recent_heading{font-family:var(--sd-text-font-family);font-size:20px;color:var(--sd-text-color-dark);font-weight:700;letter-spacing:-.65px;padding:0 0 15px 15px;line-height:normal;margin:0;width:100%;max-width:100%;box-sizing:border-box;overflow:hidden}.avaya-ipo-container_recent_search{margin:0 0 15px;padding:0 15px;width:100%;max-width:100%;box-sizing:border-box;position:sticky;top:56px;z-index:5;background:var(--sd-surface, #fff)}.avaya-ipo-container_recent_search input{padding:0 42px;width:100%;outline:none;display:block;border:1px solid var(--sd-input-border, #c9c9c9);color:var(--sd-text, #333);font-size:13px;letter-spacing:-.15px;font-family:var(--sd-text-font-family);background:var(--sd-input, #fff);font-style:normal;font-weight:600;position:relative;border-radius:var(--sd-radius-sm, 8px);height:42px;box-shadow:var(--sd-shadow-sm, 0 1px 2px rgba(16, 24, 40, .06));transition:border-color .15s ease,box-shadow .15s ease}.avaya-ipo-container_recent_search input::placeholder{color:var(--sd-text-subtle, #9ca3af)}.avaya-ipo-container_recent_search input:focus{border-color:var(--sd-accent, #ff6633);box-shadow:var(--sd-focus-ring, 0 0 0 3px rgba(255, 102, 51, .22))}.avaya-ipo-search_wrap{position:relative}.avaya-ipo-search_icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--sd-text-subtle, #9ca3af)}.avaya-ipo-recent_tab_container{margin:0;padding:0;width:100%;flex:1 1 auto;min-height:0;position:relative;display:flex;flex-direction:column}.avaya-ipo-container_recent_list{width:100%;margin:0;padding:0;position:relative;flex:1 1 auto;min-height:0;max-width:100%;overflow-x:hidden;box-sizing:border-box;display:flex;flex-direction:column}.avaya-ipo-container_recent_list_inner{width:100%;position:relative;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.avaya-ipo-scrollbox{height:auto;overflow-y:auto;overflow-x:hidden;visibility:visible;padding:0 0 calc(var(--sd-tabs-height, 60px) + 12px) 0;position:relative;scroll-behavior:smooth;scrollbar-width:thin;width:100%;flex:1 1 auto;min-height:0;max-height:100%}.avaya-ipo-outer_container_recent{width:100%;max-width:100%;margin:0;padding:0 15px;box-sizing:border-box;overflow:hidden}.avaya-ipo-container_recent_item{width:100%;position:relative;display:flex;flex-direction:row;height:auto;pointer-events:all;border-radius:var(--sd-radius-sm, 8px);overflow:hidden;cursor:pointer}.avaya-ipo-calling_btn{display:none}.avaya-ipo-history_item{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--sd-border, #e3e3e3);background:transparent;box-shadow:none}.avaya-ipo-history_item:hover{background:var(--sd-surface-muted, #f7f7f7)}.avaya-ipo-history_avatar{width:44px;height:44px;border-radius:var(--sd-radius, 10px);display:flex;align-items:center;justify-content:center;background:var(--sd-avatar, #eceff3);font-weight:700;color:var(--sd-text, #333)}.avaya-ipo-history_body{flex:1;display:flex;flex-direction:column;gap:6px}.avaya-ipo-history_row{display:flex;align-items:center;justify-content:space-between;gap:10px}.avaya-ipo-history_name{font-weight:700;color:var(--sd-text, #333)}.avaya-ipo-history_name_missed{color:var(--sd-call-end, #e5484d)}.avaya-ipo-history_time{font-size:12px;color:var(--sd-text-muted, #5f6368)}.avaya-ipo-history_meta{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--sd-text-muted, #5f6368)}.avaya-ipo-history_meta .avaya-ipo-meta_label{display:inline-flex;align-items:center;gap:6px}.avaya-ipo-history_meta .avaya-ipo-meta_label svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.avaya-ipo-history_meta .avaya-ipo-direction_text{font-size:12px;font-weight:500}.avaya-ipo-history_meta.avaya-ipo-missed,.avaya-ipo-history_meta.avaya-ipo-caller_drop{color:var(--sd-call-end, #e5484d)}.avaya-ipo-history_meta .avaya-ipo-meta_label.avaya-ipo-inbound{color:var(--sd-call-accept, #1aa251)}.avaya-ipo-history_meta .avaya-ipo-meta_label.avaya-ipo-outbound{color:var(--sd-text-muted, #5f6368)}.avaya-ipo-history_meta .avaya-ipo-meta_label.avaya-ipo-missed{color:var(--sd-call-end, #e5484d)}.avaya-ipo-history_actions{display:flex;align-items:center;justify-content:center}.avaya-ipo-history_details_panel{padding:0 15px 12px;display:flex;flex-direction:column;gap:12px;height:100%;box-sizing:border-box;overflow-y:auto}.avaya-ipo-back_btn{width:80px;border:1px solid var(--sd-border, #e3e3e3);background:var(--sd-surface, #fff);color:var(--sd-text, #333);border-radius:var(--sd-radius-sm, 8px);padding:8px;cursor:pointer;font-weight:600}.avaya-ipo-back_btn:hover{background:var(--sd-surface-muted, #f7f7f7)}.avaya-ipo-history_skeleton{padding:12px 15px;display:flex;flex-direction:column;gap:12px}.avaya-ipo-skeleton_row{display:flex;align-items:center;gap:12px}.avaya-ipo-skeleton_avatar{width:42px;height:42px;border-radius:var(--sd-radius, 10px);background:var(--sd-surface-sunken, #e8e8e8);position:relative;overflow:hidden}.avaya-ipo-skeleton_body{flex:1;display:flex;flex-direction:column;gap:8px}.avaya-ipo-skeleton_meta{width:60px}.avaya-ipo-skeleton_line{height:10px;background:var(--sd-surface-sunken, #e8e8e8);border-radius:var(--sd-radius-sm, 8px);position:relative;overflow:hidden}.avaya-ipo-skeleton_line.avaya-ipo-wide{width:70%}.avaya-ipo-skeleton_line.avaya-ipo-medium{width:55%}.avaya-ipo-skeleton_line.avaya-ipo-short{width:50px}.avaya-ipo-shine:after{content:\"\";position:absolute;top:0;left:-150px;height:100%;width:120px;background:linear-gradient(90deg,#fff0,#fff9,#fff0);animation:shimmer 1.2s infinite}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-skeleton_avatar,:host-context(.avaya-ipo-dark-mode) .avaya-ipo-skeleton_line{background:var(--sd-surface-sunken, #1c222c)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-shine:after{background:linear-gradient(90deg,#0f111500,#555f6e73,#0f111500)}@keyframes shimmer{0%{transform:translate(0)}to{transform:translate(260px)}}.avaya-ipo-container_recent_item:hover .avaya-ipo-calling_btn{display:block;position:absolute;text-align:right;right:0;width:78px;height:38px;background:var(--sd-background-color)}.avaya-ipo-container_recent_item_image{display:flex;align-items:center}.avaya-ipo-container_recent_item_image_inner{margin:0 auto;padding:0;width:50px;height:50px;position:relative;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--sd-text-font-family);font-size:26px;color:var(--sd-text-color-inverse);font-weight:400;background:#2a7b9b}.avaya-ipo-grd1{background:#718ede}.avaya-ipo-container_recent_item_left{display:flex;flex-basis:auto;flex-direction:column;flex-grow:1;justify-content:center;min-width:0;position:relative;border-top:1px solid var(--sd-border, #e3e3e3)}.avaya-ipo-container_recent_item_left_inner{display:flex;flex-basis:1;flex-direction:column;padding:0 0 0 10px}.avaya-ipo-container_recent_item_left .avaya-ipo-contact_field{font-size:13px;color:var(--sd-text-color-dark);margin-bottom:2px}.avaya-ipo-container_recent_item_left .avaya-ipo-missed_call_color{color:var(--sd-call-end, #e5484d)}.avaya-ipo-container_recent_item_left .avaya-ipo-recent_time_back{font-size:12px;color:var(--sd-text-color-medium)}.avaya-ipo-history_group_label{width:100%;padding:8px 15px 6px;font-size:11px;letter-spacing:.6px;color:var(--sd-text-muted, #5f6368);text-transform:uppercase;box-sizing:border-box;text-align:center;position:sticky;top:0;z-index:2;background:var(--sd-surface-muted, #f7f7f7);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.avaya-ipo-container_recent_item_left .avaya-ipo-caller_drop{color:var(--sd-call-end, #e5484d)}.avaya-ipo-disconnect_badge{display:inline-flex;align-items:center;margin-left:6px;padding:2px 6px;border-radius:var(--sd-radius-sm, 8px);background:var(--sd-accent-soft, #fff1ea);color:var(--sd-call-end, #e5484d);font-size:10px;font-weight:600;letter-spacing:.2px}.avaya-ipo-container_recent_item_right{display:flex;flex-direction:row;position:absolute;right:0}.avaya-ipo-container_recent_item_right .avaya-ipo-right_field{display:flex;flex-basis:auto;justify-content:right}.avaya-ipo-container_recent_item_right .avaya-ipo-right_field_content{display:inline-block;border-radius:var(--sd-radius-pill, 999px);border:1px solid var(--sd-border, #e3e3e3);padding:5px 8px;font-size:11px;color:var(--sd-text-muted, #5f6368)}.avaya-ipo-calling_btn_inner{position:relative;width:100%;margin:0;padding:0;display:flex;justify-content:right}.avaya-ipo-button_recent_call{width:38px;height:38px;display:flex;flex-basis:auto;flex-direction:column;align-items:center;justify-content:center;line-height:normal;border-radius:var(--sd-radius-pill, 999px);outline:none;border:none;font-size:22px;font-weight:700;color:var(--sd-call-accept, #1aa251);background:var(--sd-surface-muted, #f7f7f7);border:1px solid var(--sd-border, #e3e3e3)}.avaya-ipo-container_call_history_not_found{position:absolute;width:100%;height:100%;display:flex;flex-basis:auto;flex-direction:column;flex-grow:1;align-items:center;background:var(--sd-surface, #fff)}.avaya-ipo-container_call_history_not_found h2{font-size:18px;font-weight:700;letter-spacing:-.65px;color:var(--sd-text, #333);text-align:center;padding-top:26px}.avaya-ipo-container_call_history_not_found p{font-size:12px;line-height:normal;color:var(--sd-text-muted, #5f6368);font-weight:600;white-space:normal;text-align:center;padding-top:10px}.avaya-ipo-icon_round_area_call_history{width:165px;height:75px;background:var(--sd-background-color) url(data:image/gif;base64,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) center no-repeat;border-radius:38px;display:flex;grid-row:1}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-container_recent_search input{background:var(--sd-input, #1c222c);border-color:var(--sd-input-border, #2a2f3a);color:var(--sd-text, #f2f4f8)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-container_recent_search input::placeholder{color:var(--sd-text-subtle, #7e8794)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-search_icon{color:var(--sd-text-subtle, #7e8794)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-history_name{color:var(--sd-text, #f2f4f8)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-history_time,:host-context(.avaya-ipo-dark-mode) .avaya-ipo-history_meta,:host-context(.avaya-ipo-dark-mode) .avaya-ipo-history_meta .avaya-ipo-direction_text{color:var(--sd-text-muted, #aab0bb)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-history_avatar{background:var(--sd-avatar, #222833);color:var(--sd-text, #f2f4f8)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-container_call_history_not_found{background:var(--sd-surface, #0f1115)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-container_call_history_not_found h2{color:var(--sd-text, #f2f4f8)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-container_call_history_not_found p{color:var(--sd-text-muted, #aab0bb)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2$1.NativeElementInjectorDirective, selector: "[ngModel], [formControl], [formControlName]" }, { kind: "component", type: CallDetailsComponent, selector: "app-call-details", inputs: ["call"] }, { kind: "pipe", type: i2.DatePipe, name: "date" }] });
1658
1777
  }
1659
1778
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: CallHistoryComponent, decorators: [{
1660
1779
  type: Component,
1661
- args: [{ selector: 'app-call-history', standalone: false, template: "<div class=\"recent_container_outer\">\n @if (showHistoryLoader) {\n <div class=\"history_skeleton\">\n @for (item of [1,2,3,4]; track item) {\n <div class=\"skeleton_row\">\n <div class=\"skeleton_avatar shine\"></div>\n <div class=\"skeleton_body\">\n <div class=\"skeleton_line wide shine\"></div>\n <div class=\"skeleton_line medium shine\"></div>\n </div>\n <div class=\"skeleton_meta\">\n <div class=\"skeleton_line short shine\"></div>\n </div>\n </div>\n }\n </div>\n } @else if (selectedCall) {\n <div class=\"history_details_panel\">\n <button class=\"back_btn\" type=\"button\" (click)=\"closeDetails()\">\u2190 Back</button>\n <app-call-details [call]=\"selectedCall\"></app-call-details>\n </div>\n } @else {\n @if (recentCallactiveTab === 'recentCall') {\n <div class=\"recent_tab_container\">\n <div class=\"container_recent_list\">\n @if (!selectedCall) {\n <div class=\"recent_options_header\">\n <div class=\"recent_inner\">\n <button class=\"recent_btn\" (click)=\"recentSelectTab('recentCall')\"\n [class.active]=\"$any(recentCallactiveTab) === 'recentCall'\">\n <span class=\"tab_icon\">\n <svg viewBox=\"0 0 512 512\" width=\"14\" height=\"14\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z\" />\n </svg>\n </span>\n <span>Recent</span>\n </button>\n <button class=\"recent_btn\" (click)=\"recentSelectTab('missedCall')\"\n [class.active]=\"$any(recentCallactiveTab) === 'missedCall'\">\n <span class=\"tab_icon\">\n <svg viewBox=\"0 0 512 512\" width=\"14\" height=\"14\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M504.971 75.029l-68-68C430.182.241 423.6-1.547 417.6.758 411.7 3.067 408 8.798 408 15v72H248C111.033 87 0 198.033 0 335v48c0 13.255 10.745 24 24 24h64c13.255 0 24-10.745 24-24v-48c0-74.991 61.009-136 136-136h160v72c0 6.202 3.7 11.933 9.6 14.242 6 2.305 12.582.517 16.629-3.758l68-68c9.373-9.373 9.373-24.569 0-33.941z\" />\n </svg>\n </span>\n <span>Missed Call</span>\n </button>\n </div>\n </div>\n <div class=\"container_recent_search\">\n <div class=\"search_wrap\">\n <svg class=\"search_icon\" viewBox=\"0 0 512 512\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M208 48C111 48 32 127 32 224s79 176 176 176c43.2 0 82.7-15.3 113.7-40.6l81.4 81.4c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-81.4-81.4C416.7 306.7 432 267.2 432 224 432 127 353 48 256 48zm-128 176c0-70.7 57.3-128 128-128s128 57.3 128 128-57.3 128-128 128S80 294.7 80 224z\"/>\n </svg>\n <input\n type=\"search\"\n placeholder=\"Search numbers or names\"\n [(ngModel)]=\"searchTerm\"\n />\n </div>\n </div>\n }\n <div class=\"container_recent_list_inner\">\n <div class=\"scrollbox\">\n <div class=\"scrollbox-content\">\n @for (group of groupedRecent; track $index) {\n @if (group.label) {\n <div class=\"history_group_label\">{{ group.label }}</div>\n }\n @for (call of group.items; track $index) {\n <div class=\"outer_container_recent\">\n <div class=\"history_item\" (click)=\"onSelectCall(call)\">\n <div class=\"history_avatar grd1\">\n {{ getPhoneBadge(call) }}\n </div>\n <div class=\"history_body\">\n <div class=\"history_row\">\n <div class=\"history_name\" [class.history_name_missed]=\"call.disconnectSide === 'CALLER' && (call.duration ?? 0) <= 0\">\n {{ getPhoneDisplay(call) }}\n </div>\n <div class=\"history_time\">{{ call.timestamp | date : \"hh:mm a\" }}</div>\n </div>\n <div class=\"history_meta\" [ngClass]=\"{\n missed: call.status === 'MISSED',\n caller_drop: call.disconnectSide === 'CALLER' && (call.duration ?? 0) <= 0\n }\">\n <span class=\"meta_label\" [ngClass]=\"{\n inbound: call.direction?.toLowerCase() === 'inbound',\n outbound: call.direction?.toLowerCase() === 'outbound',\n missed: call.disconnectSide === 'CALLER' && (call.duration ?? 0) <= 0\n }\">\n @if (call.direction?.toLowerCase() === 'inbound') {\n @if (call.disconnectSide === 'CALLER' && (call.duration ?? 0) <= 0) {\n <svg viewBox=\"0 0 640 512\" width=\"12px\" aria-hidden=\"true\" style=\"fill: currentColor;\">\n <path d=\"M232 0c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-39 39 58.7 58.7C282.3 152.4 300.8 160 320 160s37.7-7.6 51.3-21.3L503 7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L405.3 172.7C382.6 195.3 352 208 320 208s-62.6-12.7-85.3-35.3L176 113.9l-39 39c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2L96 24c0-13.3 10.7-24 24-24L232 0zM51.4 489.9l-35.4-62c-9.7-16.9-8.3-38.1 5.5-51.7C72.6 325.9 178.1 256 320 256s247.4 69.9 298.5 120.2c13.9 13.6 15.2 34.8 5.5 51.7l-35.4 62c-7.4 12.9-22.7 19.1-37 14.8L438.8 470.8c-13.5-4.1-22.8-16.5-22.8-30.6l0-56.2c-62.3-20.8-129.7-20.8-192 0l0 56.2c0 14.1-9.3 26.6-22.8 30.6L88.4 504.7c-14.3 4.3-29.6-1.8-37-14.8z\" />\n </svg>\n } @else {\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"M17 7L7 17M7 17H17M7 17V7\" />\n </svg>\n }\n <span class=\"direction_text\">\n @if (call.disconnectSide === 'CALLER' && (call.duration ?? 0) <= 0) {\n Missed call\n } @else {\n Incoming\n }\n </span>\n } @else {\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"M7 17L17 7M17 7H7M17 7V17\" />\n </svg>\n <span class=\"direction_text\">Outgoing</span>\n }\n </span>\n </div>\n </div>\n <div class=\"history_actions\">\n @if (mode === 'transfer') {\n <button class=\"button_recent_call\" (click)=\"transferEv.emit(call); $event.stopPropagation()\">\n <svg viewBox=\"0 0 512 512\" height=\"18px\">\n <path fill=\"currentColor\"\n d=\"M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z\" />\n </svg>\n </button>\n } @else {\n <button class=\"button_recent_call\" (click)=\"\n makeCall(call.phoneNumber?.normalizedPhoneNumber, call.phoneNumber?.name || call.lookupPhoneNumber?.name); $event.stopPropagation()\n \">\n <svg viewBox=\"0 0 512 512\" height=\"18px\">\n <path fill=\"currentColor\"\n d=\"M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z\" />\n </svg>\n </button>\n }\n </div>\n </div>\n </div>\n }\n }\n @if (callHistory.length === 0) {\n <div class=\"container_call_history_not_found\">\n <h2>No Call History</h2>\n <p>Your call history is empty</p>\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n </div>\n } @if (recentCallactiveTab === 'missedCall') {\n <div class=\"recent_tab_container\">\n <div class=\"container_recent_list\">\n @if (!selectedCall) {\n <div class=\"recent_options_header\">\n <div class=\"recent_inner\">\n <button class=\"recent_btn\" (click)=\"recentSelectTab('recentCall')\"\n [class.active]=\"$any(recentCallactiveTab) === 'recentCall'\">\n <span class=\"tab_icon\">\n <svg viewBox=\"0 0 512 512\" width=\"14\" height=\"14\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z\" />\n </svg>\n </span>\n <span>Recent</span>\n </button>\n <button class=\"recent_btn\" (click)=\"recentSelectTab('missedCall')\"\n [class.active]=\"$any(recentCallactiveTab) === 'missedCall'\">\n <span class=\"tab_icon\">\n <svg viewBox=\"0 0 512 512\" width=\"14\" height=\"14\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M504.971 75.029l-68-68C430.182.241 423.6-1.547 417.6.758 411.7 3.067 408 8.798 408 15v72H248C111.033 87 0 198.033 0 335v48c0 13.255 10.745 24 24 24h64c13.255 0 24-10.745 24-24v-48c0-74.991 61.009-136 136-136h160v72c0 6.202 3.7 11.933 9.6 14.242 6 2.305 12.582.517 16.629-3.758l68-68c9.373-9.373 9.373-24.569 0-33.941z\" />\n </svg>\n </span>\n <span>Missed Call</span>\n </button>\n </div>\n </div>\n <div class=\"container_recent_search\">\n <div class=\"search_wrap\">\n <svg class=\"search_icon\" viewBox=\"0 0 512 512\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M208 48C111 48 32 127 32 224s79 176 176 176c43.2 0 82.7-15.3 113.7-40.6l81.4 81.4c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-81.4-81.4C416.7 306.7 432 267.2 432 224 432 127 353 48 256 48zm-128 176c0-70.7 57.3-128 128-128s128 57.3 128 128-57.3 128-128 128S80 294.7 80 224z\"/>\n </svg>\n <input\n type=\"search\"\n placeholder=\"Search numbers or names\"\n [(ngModel)]=\"searchTerm\"\n />\n </div>\n </div>\n }\n <div class=\"container_recent_list_inner\">\n <div class=\"scrollbox\">\n <div class=\"scrollbox-content\">\n @for (group of groupedMissed; track $index) {\n @if (group.label) {\n <div class=\"history_group_label\">{{ group.label }}</div>\n }\n @for (call of group.items; track $index) {\n <div class=\"outer_container_recent\">\n <div class=\"history_item\" (click)=\"onSelectCall(call)\">\n <div class=\"history_avatar grd1\">\n {{ getPhoneBadge(call) }}\n </div>\n <div class=\"history_body\">\n <div class=\"history_row\">\n <div class=\"history_name history_name_missed\">\n {{ getPhoneDisplay(call) }}\n </div>\n <div class=\"history_time\">{{ call.timestamp | date : \"hh:mm a\" }}</div>\n </div>\n <div class=\"history_meta caller_drop\">\n <span class=\"meta_label missed\">\n <svg viewBox=\"0 0 640 512\" width=\"12px\" aria-hidden=\"true\" style=\"fill: currentColor;\">\n <path d=\"M232 0c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-39 39 58.7 58.7C282.3 152.4 300.8 160 320 160s37.7-7.6 51.3-21.3L503 7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L405.3 172.7C382.6 195.3 352 208 320 208s-62.6-12.7-85.3-35.3L176 113.9l-39 39c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2L96 24c0-13.3 10.7-24 24-24L232 0zM51.4 489.9l-35.4-62c-9.7-16.9-8.3-38.1 5.5-51.7C72.6 325.9 178.1 256 320 256s247.4 69.9 298.5 120.2c13.9 13.6 15.2 34.8 5.5 51.7l-35.4 62c-7.4 12.9-22.7 19.1-37 14.8L438.8 470.8c-13.5-4.1-22.8-16.5-22.8-30.6l0-56.2c-62.3-20.8-129.7-20.8-192 0l0 56.2c0 14.1-9.3 26.6-22.8 30.6L88.4 504.7c-14.3 4.3-29.6-1.8-37-14.8z\" />\n </svg>\n <span class=\"direction_text\">Missed call</span>\n </span>\n </div>\n </div>\n <div class=\"history_actions\">\n <button class=\"button_recent_call\" (click)=\"selectFromHistory(call); $event.stopPropagation()\">\n <svg viewBox=\"0 0 512 512\" height=\"15px\">\n <path fill=\"currentColor\"\n d=\"M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z\" />\n </svg>\n </button>\n </div>\n </div>\n </div>\n }\n }\n @if (callerDropped.length === 0) {\n <div class=\"container_call_history_not_found\">\n <h2>No missed calls</h2>\n <p>No inbound calls ended by caller.</p>\n </div>\n }\n </div>\n <!-- /.scrollbox-content -->\n </div>\n <!-- /.scrollbox -->\n </div>\n <!-- /.container_recent_list_inner -->\n </div>\n <!-- /.container_recent_list -->\n </div>\n <!-- /.recent_tab_container -->\n }\n }\n</div>\n", styles: [":host{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.recent_container_outer{margin:0;padding:0;width:100%;position:relative;display:flex;flex-direction:column;flex:1 1 auto;min-height:0;overflow-y:auto;padding-bottom:var(--sd-tabs-height, 60px)}.recent_options_header{margin:0;padding:12px 15px 8px;width:100%;text-align:center;position:sticky;top:0;z-index:6;background:var(--sd-surface, #fff)}.recent_inner{margin:0;padding:4px;width:100%;height:40px;background:#f2f3f7;border-radius:12px;display:flex;align-items:center;justify-content:center;gap:6px}.recent_btn{margin:0;padding:0 10px;width:50%;display:flex;align-items:center;justify-content:center;border:none;outline:none;background:transparent;height:32px;border-radius:10px;color:#6b6b6b;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;gap:6px;font-weight:600;font-size:13px}.recent_btn:hover{background:#e8e8ee;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.recent_btn.active{color:#1f1f1f;background:#fff;font-weight:700;box-shadow:0 2px 6px #0000000d}.tab_icon{display:flex;align-items:center;justify-content:center;color:inherit}.recent_heading{font-family:var(--sd-text-font-family);font-size:20px;color:var(--sd-text-color-dark);font-weight:700;letter-spacing:-.65px;padding:0 0 15px 15px;line-height:normal;margin:0;width:100%;max-width:100%;box-sizing:border-box;overflow:hidden}.container_recent_search{margin:0 0 15px;padding:0 15px;width:100%;max-width:100%;box-sizing:border-box;position:sticky;top:56px;z-index:5;background:var(--sd-surface, #fff)}.container_recent_search input{padding:0 42px;width:100%;outline:none;display:block;border:1px solid #e0e0e0;color:#1f1f1f;font-size:13px;letter-spacing:-.15px;font-family:var(--sd-text-font-family);background:#fafafa;font-style:normal;font-weight:600;position:relative;border-radius:12px;height:42px;box-shadow:inset 0 1px 2px #0000000f}.search_wrap{position:relative}.search_icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#888}.recent_tab_container{margin:0;padding:0;width:100%;flex:1 1 auto;min-height:0;position:relative}.container_recent_list{width:100%;margin:0;padding:0;position:relative;flex:1 1 auto;min-height:0}.container_recent_list_inner{width:100%;position:relative;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.scrollbox{height:auto;overflow-y:visible;overflow-x:hidden;visibility:visible;padding:0 0 12px;position:relative;scroll-behavior:smooth;scrollbar-width:thin;width:100%;flex:1 1 auto;min-height:0}.outer_container_recent{width:100%;max-width:100%;margin:0;padding:0 15px;box-sizing:border-box;overflow:hidden}.container_recent_item{width:100%;position:relative;display:flex;flex-direction:row;height:auto;pointer-events:all;border-radius:8px;overflow:hidden;cursor:pointer}.calling_btn{display:none}.history_item{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #ededed;background:transparent;box-shadow:none}.history_item:hover{background:#f7f7f7}.history_avatar{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:#f0f0f0;font-weight:700;color:#333}.history_body{flex:1;display:flex;flex-direction:column;gap:6px}.history_row{display:flex;align-items:center;justify-content:space-between;gap:10px}.history_name{font-weight:700;color:#1f1f1f}.history_name_missed{color:#d14343}.history_time{font-size:12px;color:#666}.history_meta{display:flex;align-items:center;gap:8px;font-size:12px;color:#555}.history_meta .meta_label{display:inline-flex;align-items:center;gap:6px}.history_meta .meta_label svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.history_meta .direction_text{font-size:12px;font-weight:500}.history_meta.missed,.history_meta.caller_drop{color:#d14343}.history_meta .meta_label.inbound{color:#2b8a3e}.history_meta .meta_label.outbound{color:#1f6fb2}.history_meta .meta_label.missed{color:#d14343}.history_actions{display:flex;align-items:center;justify-content:center}.history_details_panel{padding:0 15px 12px;display:flex;flex-direction:column;gap:12px;height:100%;box-sizing:border-box;overflow-y:auto}.back_btn{width:80px;border:1px solid #e0e0e0;background:#fff;color:#333;border-radius:8px;padding:8px;cursor:pointer;font-weight:600}.history_skeleton{padding:12px 15px;display:flex;flex-direction:column;gap:12px}.skeleton_row{display:flex;align-items:center;gap:12px}.skeleton_avatar{width:42px;height:42px;border-radius:12px;background:#f0f0f0;position:relative;overflow:hidden}.skeleton_body{flex:1;display:flex;flex-direction:column;gap:8px}.skeleton_meta{width:60px}.skeleton_line{height:10px;background:#f0f0f0;border-radius:6px;position:relative;overflow:hidden}.skeleton_line.wide{width:70%}.skeleton_line.medium{width:55%}.skeleton_line.short{width:50px}.shine:after{content:\"\";position:absolute;top:0;left:-150px;height:100%;width:120px;background:linear-gradient(90deg,#fff0,#fff9,#fff0);animation:shimmer 1.2s infinite}:host-context(.dark-mode) .skeleton_avatar,:host-context(.dark-mode) .skeleton_line{background:#1e2430}:host-context(.dark-mode) .shine:after{background:linear-gradient(90deg,#0f111500,#555f6e73,#0f111500)}@keyframes shimmer{0%{transform:translate(0)}to{transform:translate(260px)}}.container_recent_item:hover .calling_btn{display:block;position:absolute;text-align:right;right:0;width:78px;height:38px;background:var(--sd-background-color)}.container_recent_item_image{display:flex;align-items:center}.container_recent_item_image_inner{margin:0 auto;padding:0;width:50px;height:50px;position:relative;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--sd-text-font-family);font-size:26px;color:var(--sd-text-color-inverse);font-weight:400;background:#2a7b9b}.grd1{background:#718ede}.container_recent_item_left{display:flex;flex-basis:auto;flex-direction:column;flex-grow:1;justify-content:center;min-width:0;position:relative;border-top:1px solid #e9edef}.container_recent_item_left_inner{display:flex;flex-basis:1;flex-direction:column;padding:0 0 0 10px}.container_recent_item_left .contact_field{font-size:13px;color:var(--sd-text-color-dark);margin-bottom:2px}.container_recent_item_left .missed_call_color{color:#e0261f}.container_recent_item_left .recent_time_back{font-size:12px;color:var(--sd-text-color-medium)}.history_group_label{width:100%;padding:8px 15px 6px;font-size:11px;letter-spacing:.6px;color:var(--sd-text-color-medium);text-transform:uppercase;box-sizing:border-box;text-align:center;position:sticky;top:0;z-index:2;background:#f7f7f7eb;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.container_recent_item_left .caller_drop{color:#e0261f}.disconnect_badge{display:inline-flex;align-items:center;margin-left:6px;padding:2px 6px;border-radius:8px;background:#e0261f1f;color:#e0261f;font-size:10px;font-weight:600;letter-spacing:.2px}.container_recent_item_right{display:flex;flex-direction:row;position:absolute;right:0}.container_recent_item_right .right_field{display:flex;flex-basis:auto;justify-content:right}.container_recent_item_right .right_field_content{display:inline-block;border-radius:26px;border:1px solid #e5e5e5;padding:5px 8px;font-size:11px;color:var(--sd-text-color)}.calling_btn_inner{position:relative;width:100%;margin:0;padding:0;display:flex;justify-content:right}.button_recent_call{width:38px;height:38px;display:flex;flex-basis:auto;flex-direction:column;align-items:center;justify-content:center;line-height:normal;border-radius:26px;outline:none;border:none;font-size:22px;font-weight:700;color:#6c0;background:#f1f1f1;border:1px solid #f1f1f1}.container_call_history_not_found{position:absolute;width:100%;height:100%;display:flex;flex-basis:auto;flex-direction:column;flex-grow:1;align-items:center;background:#f8f8f8}.container_call_history_not_found h2{font-size:18px;font-weight:700;letter-spacing:-.65px;color:var(--sd-text-color-dark);text-align:center;padding-top:26px}.container_call_history_not_found p{font-size:12px;line-height:normal;color:var(--sd-text-color);font-weight:600;white-space:normal;text-align:center;padding-top:10px}.icon_round_area_call_history{width:165px;height:75px;background:var(--sd-background-color) url(data:image/gif;base64,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) center no-repeat;border-radius:38px;display:flex;grid-row:1}:host-context(.dark-mode) .container_recent_search input{background:#1c222c;border-color:#2a2f3a;color:#f2f4f8}:host-context(.dark-mode) .container_recent_search input::placeholder{color:#aab0bb}:host-context(.dark-mode) .search_icon{color:#aab0bb}:host-context(.dark-mode) .history_name{color:#f2f4f8}:host-context(.dark-mode) .history_time,:host-context(.dark-mode) .history_meta,:host-context(.dark-mode) .history_meta .direction_text{color:#aab0bb}:host-context(.dark-mode) .history_avatar{background:#222833;color:#f2f4f8}:host-context(.dark-mode) .container_call_history_not_found{background:#12161e}:host-context(.dark-mode) .container_call_history_not_found h2,:host-context(.dark-mode) .container_call_history_not_found p{color:#aab0bb}\n"] }]
1662
- }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i0.ChangeDetectorRef }], propDecorators: { mode: [{
1780
+ args: [{ selector: 'app-call-history', standalone: false, template: "<div class=\"avaya-ipo-recent_container_outer\">\n @if (selectedCall) {\n <div class=\"avaya-ipo-history_details_panel\">\n <button class=\"avaya-ipo-back_btn\" type=\"button\" (click)=\"closeDetails()\">\u2190 Back</button>\n <app-call-details [call]=\"selectedCall\"></app-call-details>\n </div>\n } @else {\n @if (recentCallactiveTab === 'recentCall') {\n <div class=\"avaya-ipo-recent_tab_container\">\n <div class=\"avaya-ipo-container_recent_list\">\n @if (!selectedCall) {\n <div class=\"avaya-ipo-recent_options_header\">\n <div class=\"avaya-ipo-recent_inner\">\n <button class=\"avaya-ipo-recent_btn\" (click)=\"recentSelectTab('recentCall')\"\n [class.avaya-ipo-active]=\"$any(recentCallactiveTab) === 'recentCall'\">\n <span class=\"avaya-ipo-tab_icon\">\n <svg viewBox=\"0 0 512 512\" width=\"14\" height=\"14\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z\" />\n </svg>\n </span>\n <span>Recent</span>\n </button>\n <button class=\"avaya-ipo-recent_btn\" (click)=\"recentSelectTab('missedCall')\"\n [class.avaya-ipo-active]=\"$any(recentCallactiveTab) === 'missedCall'\">\n <span class=\"avaya-ipo-tab_icon\">\n <svg viewBox=\"0 0 512 512\" width=\"14\" height=\"14\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M504.971 75.029l-68-68C430.182.241 423.6-1.547 417.6.758 411.7 3.067 408 8.798 408 15v72H248C111.033 87 0 198.033 0 335v48c0 13.255 10.745 24 24 24h64c13.255 0 24-10.745 24-24v-48c0-74.991 61.009-136 136-136h160v72c0 6.202 3.7 11.933 9.6 14.242 6 2.305 12.582.517 16.629-3.758l68-68c9.373-9.373 9.373-24.569 0-33.941z\" />\n </svg>\n </span>\n <span>Missed Call</span>\n </button>\n </div>\n </div>\n <div class=\"avaya-ipo-container_recent_search\">\n <div class=\"avaya-ipo-search_wrap\">\n <svg class=\"avaya-ipo-search_icon\" viewBox=\"0 0 512 512\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M208 48C111 48 32 127 32 224s79 176 176 176c43.2 0 82.7-15.3 113.7-40.6l81.4 81.4c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-81.4-81.4C416.7 306.7 432 267.2 432 224 432 127 353 48 256 48zm-128 176c0-70.7 57.3-128 128-128s128 57.3 128 128-57.3 128-128 128S80 294.7 80 224z\"/>\n </svg>\n <input\n type=\"search\"\n placeholder=\"Search numbers or names\"\n [(ngModel)]=\"searchTerm\"\n />\n </div>\n </div>\n }\n <div class=\"avaya-ipo-container_recent_list_inner\">\n <div class=\"avaya-ipo-scrollbox\">\n @if (showHistoryLoader) {\n <div class=\"avaya-ipo-history_skeleton\">\n @for (item of [1,2,3,4]; track item) {\n <div class=\"avaya-ipo-skeleton_row\">\n <div class=\"avaya-ipo-skeleton_avatar avaya-ipo-shine\"></div>\n <div class=\"avaya-ipo-skeleton_body\">\n <div class=\"avaya-ipo-skeleton_line avaya-ipo-wide avaya-ipo-shine\"></div>\n <div class=\"avaya-ipo-skeleton_line avaya-ipo-medium avaya-ipo-shine\"></div>\n </div>\n <div class=\"avaya-ipo-skeleton_meta\">\n <div class=\"avaya-ipo-skeleton_line avaya-ipo-short avaya-ipo-shine\"></div>\n </div>\n </div>\n }\n </div>\n } @else {\n <div class=\"avaya-ipo-scrollbox-content\">\n @for (group of groupedRecent; track $index) {\n @if (group.label) {\n <div class=\"avaya-ipo-history_group_label\">{{ group.label }}</div>\n }\n @for (call of group.items; track $index) {\n <div class=\"avaya-ipo-outer_container_recent\">\n <div class=\"avaya-ipo-history_item\" (click)=\"onSelectCall(call)\">\n <div class=\"avaya-ipo-history_avatar avaya-ipo-grd1\">\n {{ getPhoneBadge(call) }}\n </div>\n <div class=\"avaya-ipo-history_body\">\n <div class=\"avaya-ipo-history_row\">\n <div class=\"avaya-ipo-history_name\" [class.avaya-ipo-history_name_missed]=\"call.disconnectSide === 'CALLER' && (call.duration ?? 0) <= 0\">\n {{ getPhoneDisplay(call) }}\n </div>\n <div class=\"avaya-ipo-history_time\">{{ call.timestamp | date : \"hh:mm a\" }}</div>\n </div>\n <div class=\"avaya-ipo-history_meta\" [ngClass]=\"{\n 'avaya-ipo-missed': call.status === 'MISSED',\n 'avaya-ipo-caller_drop': call.disconnectSide === 'CALLER' && (call.duration ?? 0) <= 0\n }\">\n <span class=\"avaya-ipo-meta_label\" [ngClass]=\"{\n 'avaya-ipo-inbound': call.direction?.toLowerCase() === 'inbound',\n 'avaya-ipo-outbound': call.direction?.toLowerCase() === 'outbound',\n 'avaya-ipo-missed': call.disconnectSide === 'CALLER' && (call.duration ?? 0) <= 0\n }\">\n @if (call.direction?.toLowerCase() === 'inbound') {\n @if (call.disconnectSide === 'CALLER' && (call.duration ?? 0) <= 0) {\n <svg viewBox=\"0 0 640 512\" width=\"12px\" aria-hidden=\"true\" style=\"fill: currentColor;\">\n <path d=\"M232 0c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-39 39 58.7 58.7C282.3 152.4 300.8 160 320 160s37.7-7.6 51.3-21.3L503 7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L405.3 172.7C382.6 195.3 352 208 320 208s-62.6-12.7-85.3-35.3L176 113.9l-39 39c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2L96 24c0-13.3 10.7-24 24-24L232 0zM51.4 489.9l-35.4-62c-9.7-16.9-8.3-38.1 5.5-51.7C72.6 325.9 178.1 256 320 256s247.4 69.9 298.5 120.2c13.9 13.6 15.2 34.8 5.5 51.7l-35.4 62c-7.4 12.9-22.7 19.1-37 14.8L438.8 470.8c-13.5-4.1-22.8-16.5-22.8-30.6l0-56.2c-62.3-20.8-129.7-20.8-192 0l0 56.2c0 14.1-9.3 26.6-22.8 30.6L88.4 504.7c-14.3 4.3-29.6-1.8-37-14.8z\" />\n </svg>\n } @else {\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"M17 7L7 17M7 17H17M7 17V7\" />\n </svg>\n }\n <span class=\"avaya-ipo-direction_text\">\n @if (call.disconnectSide === 'CALLER' && (call.duration ?? 0) <= 0) {\n Missed call\n } @else {\n Incoming\n }\n </span>\n } @else {\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"M7 17L17 7M17 7H7M17 7V17\" />\n </svg>\n <span class=\"avaya-ipo-direction_text\">Outgoing</span>\n }\n </span>\n </div>\n </div>\n <div class=\"avaya-ipo-history_actions\">\n @if (mode === 'transfer') {\n <button class=\"avaya-ipo-button_recent_call\" (click)=\"transferEv.emit(call); $event.stopPropagation()\">\n <svg viewBox=\"0 0 512 512\" height=\"18px\">\n <path fill=\"currentColor\"\n d=\"M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z\" />\n </svg>\n </button>\n } @else {\n <button class=\"avaya-ipo-button_recent_call\" (click)=\"\n makeCall(call.phoneNumber?.normalizedPhoneNumber, call.phoneNumber?.name || call.lookupPhoneNumber?.name); $event.stopPropagation()\n \">\n <svg viewBox=\"0 0 512 512\" height=\"18px\">\n <path fill=\"currentColor\"\n d=\"M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z\" />\n </svg>\n </button>\n }\n </div>\n </div>\n </div>\n }\n }\n @if (callHistory.length === 0) {\n <div class=\"avaya-ipo-container_call_history_not_found\">\n <h2>No Call History</h2>\n <p>Your call history is empty</p>\n </div>\n }\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n } @if (recentCallactiveTab === 'missedCall') {\n <div class=\"avaya-ipo-recent_tab_container\">\n <div class=\"avaya-ipo-container_recent_list\">\n @if (!selectedCall) {\n <div class=\"avaya-ipo-recent_options_header\">\n <div class=\"avaya-ipo-recent_inner\">\n <button class=\"avaya-ipo-recent_btn\" (click)=\"recentSelectTab('recentCall')\"\n [class.avaya-ipo-active]=\"$any(recentCallactiveTab) === 'recentCall'\">\n <span class=\"avaya-ipo-tab_icon\">\n <svg viewBox=\"0 0 512 512\" width=\"14\" height=\"14\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z\" />\n </svg>\n </span>\n <span>Recent</span>\n </button>\n <button class=\"avaya-ipo-recent_btn\" (click)=\"recentSelectTab('missedCall')\"\n [class.avaya-ipo-active]=\"$any(recentCallactiveTab) === 'missedCall'\">\n <span class=\"avaya-ipo-tab_icon\">\n <svg viewBox=\"0 0 512 512\" width=\"14\" height=\"14\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M504.971 75.029l-68-68C430.182.241 423.6-1.547 417.6.758 411.7 3.067 408 8.798 408 15v72H248C111.033 87 0 198.033 0 335v48c0 13.255 10.745 24 24 24h64c13.255 0 24-10.745 24-24v-48c0-74.991 61.009-136 136-136h160v72c0 6.202 3.7 11.933 9.6 14.242 6 2.305 12.582.517 16.629-3.758l68-68c9.373-9.373 9.373-24.569 0-33.941z\" />\n </svg>\n </span>\n <span>Missed Call</span>\n </button>\n </div>\n </div>\n <div class=\"avaya-ipo-container_recent_search\">\n <div class=\"avaya-ipo-search_wrap\">\n <svg class=\"avaya-ipo-search_icon\" viewBox=\"0 0 512 512\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M208 48C111 48 32 127 32 224s79 176 176 176c43.2 0 82.7-15.3 113.7-40.6l81.4 81.4c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-81.4-81.4C416.7 306.7 432 267.2 432 224 432 127 353 48 256 48zm-128 176c0-70.7 57.3-128 128-128s128 57.3 128 128-57.3 128-128 128S80 294.7 80 224z\"/>\n </svg>\n <input\n type=\"search\"\n placeholder=\"Search numbers or names\"\n [(ngModel)]=\"searchTerm\"\n />\n </div>\n </div>\n }\n <div class=\"avaya-ipo-container_recent_list_inner\">\n <div class=\"avaya-ipo-scrollbox\">\n @if (showHistoryLoader) {\n <div class=\"avaya-ipo-history_skeleton\">\n @for (item of [1,2,3,4]; track item) {\n <div class=\"avaya-ipo-skeleton_row\">\n <div class=\"avaya-ipo-skeleton_avatar avaya-ipo-shine\"></div>\n <div class=\"avaya-ipo-skeleton_body\">\n <div class=\"avaya-ipo-skeleton_line avaya-ipo-wide avaya-ipo-shine\"></div>\n <div class=\"avaya-ipo-skeleton_line avaya-ipo-medium avaya-ipo-shine\"></div>\n </div>\n <div class=\"avaya-ipo-skeleton_meta\">\n <div class=\"avaya-ipo-skeleton_line avaya-ipo-short avaya-ipo-shine\"></div>\n </div>\n </div>\n }\n </div>\n } @else {\n <div class=\"avaya-ipo-scrollbox-content\">\n @for (group of groupedMissed; track $index) {\n @if (group.label) {\n <div class=\"avaya-ipo-history_group_label\">{{ group.label }}</div>\n }\n @for (call of group.items; track $index) {\n <div class=\"avaya-ipo-outer_container_recent\">\n <div class=\"avaya-ipo-history_item\" (click)=\"onSelectCall(call)\">\n <div class=\"avaya-ipo-history_avatar avaya-ipo-grd1\">\n {{ getPhoneBadge(call) }}\n </div>\n <div class=\"avaya-ipo-history_body\">\n <div class=\"avaya-ipo-history_row\">\n <div class=\"avaya-ipo-history_name avaya-ipo-history_name_missed\">\n {{ getPhoneDisplay(call) }}\n </div>\n <div class=\"avaya-ipo-history_time\">{{ call.timestamp | date : \"hh:mm a\" }}</div>\n </div>\n <div class=\"avaya-ipo-history_meta avaya-ipo-caller_drop\">\n <span class=\"avaya-ipo-meta_label avaya-ipo-missed\">\n <svg viewBox=\"0 0 640 512\" width=\"12px\" aria-hidden=\"true\" style=\"fill: currentColor;\">\n <path d=\"M232 0c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-39 39 58.7 58.7C282.3 152.4 300.8 160 320 160s37.7-7.6 51.3-21.3L503 7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L405.3 172.7C382.6 195.3 352 208 320 208s-62.6-12.7-85.3-35.3L176 113.9l-39 39c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2L96 24c0-13.3 10.7-24 24-24L232 0zM51.4 489.9l-35.4-62c-9.7-16.9-8.3-38.1 5.5-51.7C72.6 325.9 178.1 256 320 256s247.4 69.9 298.5 120.2c13.9 13.6 15.2 34.8 5.5 51.7l-35.4 62c-7.4 12.9-22.7 19.1-37 14.8L438.8 470.8c-13.5-4.1-22.8-16.5-22.8-30.6l0-56.2c-62.3-20.8-129.7-20.8-192 0l0 56.2c0 14.1-9.3 26.6-22.8 30.6L88.4 504.7c-14.3 4.3-29.6-1.8-37-14.8z\" />\n </svg>\n <span class=\"avaya-ipo-direction_text\">Missed call</span>\n </span>\n </div>\n </div>\n <div class=\"avaya-ipo-history_actions\">\n <button class=\"avaya-ipo-button_recent_call\" (click)=\"selectFromHistory(call); $event.stopPropagation()\">\n <svg viewBox=\"0 0 512 512\" height=\"15px\">\n <path fill=\"currentColor\"\n d=\"M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z\" />\n </svg>\n </button>\n </div>\n </div>\n </div>\n }\n }\n @if (callerDropped.length === 0) {\n <div class=\"avaya-ipo-container_call_history_not_found\">\n <h2>No missed calls</h2>\n <p>No inbound calls ended by caller.</p>\n </div>\n }\n </div>\n }\n <!-- /.scrollbox-content -->\n </div>\n <!-- /.scrollbox -->\n </div>\n <!-- /.container_recent_list_inner -->\n </div>\n <!-- /.container_recent_list -->\n </div>\n <!-- /.recent_tab_container -->\n }\n }\n</div>\n", styles: [":host{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;overflow-x:hidden}.avaya-ipo-recent_container_outer{margin:0;padding:0;width:100%;position:relative;display:flex;flex-direction:column;flex:1 1 auto;min-height:0;overflow:hidden}.avaya-ipo-recent_options_header{margin:0;padding:12px 15px 8px;text-align:center;position:sticky;top:0;z-index:6;background:var(--sd-surface, #fff)}.avaya-ipo-recent_inner{margin:0;padding:4px;background:var(--sd-surface-muted, #f7f7f7);border-radius:var(--sd-radius, 10px);display:flex;align-items:center;justify-content:center;gap:6px}.avaya-ipo-recent_btn{margin:0;padding:0 10px;width:50%;display:flex;align-items:center;justify-content:center;border:none;outline:none;background:transparent;height:32px;border-radius:var(--sd-radius-sm, 8px);color:var(--sd-text-muted, #5f6368);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;gap:6px;font-weight:600;font-size:13px}.avaya-ipo-recent_btn:hover{background:var(--sd-surface-sunken, #e8e8e8);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.avaya-ipo-recent_btn.avaya-ipo-active{color:var(--sd-text, #333);background:var(--sd-surface, #fff);font-weight:700;box-shadow:var(--sd-shadow-sm, 0 1px 2px rgba(16, 24, 40, .06))}.avaya-ipo-tab_icon{display:flex;align-items:center;justify-content:center;color:inherit}.avaya-ipo-recent_heading{font-family:var(--sd-text-font-family);font-size:20px;color:var(--sd-text-color-dark);font-weight:700;letter-spacing:-.65px;padding:0 0 15px 15px;line-height:normal;margin:0;width:100%;max-width:100%;box-sizing:border-box;overflow:hidden}.avaya-ipo-container_recent_search{margin:0 0 15px;padding:0 15px;width:100%;max-width:100%;box-sizing:border-box;position:sticky;top:56px;z-index:5;background:var(--sd-surface, #fff)}.avaya-ipo-container_recent_search input{padding:0 42px;width:100%;outline:none;display:block;border:1px solid var(--sd-input-border, #c9c9c9);color:var(--sd-text, #333);font-size:13px;letter-spacing:-.15px;font-family:var(--sd-text-font-family);background:var(--sd-input, #fff);font-style:normal;font-weight:600;position:relative;border-radius:var(--sd-radius-sm, 8px);height:42px;box-shadow:var(--sd-shadow-sm, 0 1px 2px rgba(16, 24, 40, .06));transition:border-color .15s ease,box-shadow .15s ease}.avaya-ipo-container_recent_search input::placeholder{color:var(--sd-text-subtle, #9ca3af)}.avaya-ipo-container_recent_search input:focus{border-color:var(--sd-accent, #ff6633);box-shadow:var(--sd-focus-ring, 0 0 0 3px rgba(255, 102, 51, .22))}.avaya-ipo-search_wrap{position:relative}.avaya-ipo-search_icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--sd-text-subtle, #9ca3af)}.avaya-ipo-recent_tab_container{margin:0;padding:0;width:100%;flex:1 1 auto;min-height:0;position:relative;display:flex;flex-direction:column}.avaya-ipo-container_recent_list{width:100%;margin:0;padding:0;position:relative;flex:1 1 auto;min-height:0;max-width:100%;overflow-x:hidden;box-sizing:border-box;display:flex;flex-direction:column}.avaya-ipo-container_recent_list_inner{width:100%;position:relative;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.avaya-ipo-scrollbox{height:auto;overflow-y:auto;overflow-x:hidden;visibility:visible;padding:0 0 calc(var(--sd-tabs-height, 60px) + 12px) 0;position:relative;scroll-behavior:smooth;scrollbar-width:thin;width:100%;flex:1 1 auto;min-height:0;max-height:100%}.avaya-ipo-outer_container_recent{width:100%;max-width:100%;margin:0;padding:0 15px;box-sizing:border-box;overflow:hidden}.avaya-ipo-container_recent_item{width:100%;position:relative;display:flex;flex-direction:row;height:auto;pointer-events:all;border-radius:var(--sd-radius-sm, 8px);overflow:hidden;cursor:pointer}.avaya-ipo-calling_btn{display:none}.avaya-ipo-history_item{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--sd-border, #e3e3e3);background:transparent;box-shadow:none}.avaya-ipo-history_item:hover{background:var(--sd-surface-muted, #f7f7f7)}.avaya-ipo-history_avatar{width:44px;height:44px;border-radius:var(--sd-radius, 10px);display:flex;align-items:center;justify-content:center;background:var(--sd-avatar, #eceff3);font-weight:700;color:var(--sd-text, #333)}.avaya-ipo-history_body{flex:1;display:flex;flex-direction:column;gap:6px}.avaya-ipo-history_row{display:flex;align-items:center;justify-content:space-between;gap:10px}.avaya-ipo-history_name{font-weight:700;color:var(--sd-text, #333)}.avaya-ipo-history_name_missed{color:var(--sd-call-end, #e5484d)}.avaya-ipo-history_time{font-size:12px;color:var(--sd-text-muted, #5f6368)}.avaya-ipo-history_meta{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--sd-text-muted, #5f6368)}.avaya-ipo-history_meta .avaya-ipo-meta_label{display:inline-flex;align-items:center;gap:6px}.avaya-ipo-history_meta .avaya-ipo-meta_label svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.avaya-ipo-history_meta .avaya-ipo-direction_text{font-size:12px;font-weight:500}.avaya-ipo-history_meta.avaya-ipo-missed,.avaya-ipo-history_meta.avaya-ipo-caller_drop{color:var(--sd-call-end, #e5484d)}.avaya-ipo-history_meta .avaya-ipo-meta_label.avaya-ipo-inbound{color:var(--sd-call-accept, #1aa251)}.avaya-ipo-history_meta .avaya-ipo-meta_label.avaya-ipo-outbound{color:var(--sd-text-muted, #5f6368)}.avaya-ipo-history_meta .avaya-ipo-meta_label.avaya-ipo-missed{color:var(--sd-call-end, #e5484d)}.avaya-ipo-history_actions{display:flex;align-items:center;justify-content:center}.avaya-ipo-history_details_panel{padding:0 15px 12px;display:flex;flex-direction:column;gap:12px;height:100%;box-sizing:border-box;overflow-y:auto}.avaya-ipo-back_btn{width:80px;border:1px solid var(--sd-border, #e3e3e3);background:var(--sd-surface, #fff);color:var(--sd-text, #333);border-radius:var(--sd-radius-sm, 8px);padding:8px;cursor:pointer;font-weight:600}.avaya-ipo-back_btn:hover{background:var(--sd-surface-muted, #f7f7f7)}.avaya-ipo-history_skeleton{padding:12px 15px;display:flex;flex-direction:column;gap:12px}.avaya-ipo-skeleton_row{display:flex;align-items:center;gap:12px}.avaya-ipo-skeleton_avatar{width:42px;height:42px;border-radius:var(--sd-radius, 10px);background:var(--sd-surface-sunken, #e8e8e8);position:relative;overflow:hidden}.avaya-ipo-skeleton_body{flex:1;display:flex;flex-direction:column;gap:8px}.avaya-ipo-skeleton_meta{width:60px}.avaya-ipo-skeleton_line{height:10px;background:var(--sd-surface-sunken, #e8e8e8);border-radius:var(--sd-radius-sm, 8px);position:relative;overflow:hidden}.avaya-ipo-skeleton_line.avaya-ipo-wide{width:70%}.avaya-ipo-skeleton_line.avaya-ipo-medium{width:55%}.avaya-ipo-skeleton_line.avaya-ipo-short{width:50px}.avaya-ipo-shine:after{content:\"\";position:absolute;top:0;left:-150px;height:100%;width:120px;background:linear-gradient(90deg,#fff0,#fff9,#fff0);animation:shimmer 1.2s infinite}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-skeleton_avatar,:host-context(.avaya-ipo-dark-mode) .avaya-ipo-skeleton_line{background:var(--sd-surface-sunken, #1c222c)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-shine:after{background:linear-gradient(90deg,#0f111500,#555f6e73,#0f111500)}@keyframes shimmer{0%{transform:translate(0)}to{transform:translate(260px)}}.avaya-ipo-container_recent_item:hover .avaya-ipo-calling_btn{display:block;position:absolute;text-align:right;right:0;width:78px;height:38px;background:var(--sd-background-color)}.avaya-ipo-container_recent_item_image{display:flex;align-items:center}.avaya-ipo-container_recent_item_image_inner{margin:0 auto;padding:0;width:50px;height:50px;position:relative;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--sd-text-font-family);font-size:26px;color:var(--sd-text-color-inverse);font-weight:400;background:#2a7b9b}.avaya-ipo-grd1{background:#718ede}.avaya-ipo-container_recent_item_left{display:flex;flex-basis:auto;flex-direction:column;flex-grow:1;justify-content:center;min-width:0;position:relative;border-top:1px solid var(--sd-border, #e3e3e3)}.avaya-ipo-container_recent_item_left_inner{display:flex;flex-basis:1;flex-direction:column;padding:0 0 0 10px}.avaya-ipo-container_recent_item_left .avaya-ipo-contact_field{font-size:13px;color:var(--sd-text-color-dark);margin-bottom:2px}.avaya-ipo-container_recent_item_left .avaya-ipo-missed_call_color{color:var(--sd-call-end, #e5484d)}.avaya-ipo-container_recent_item_left .avaya-ipo-recent_time_back{font-size:12px;color:var(--sd-text-color-medium)}.avaya-ipo-history_group_label{width:100%;padding:8px 15px 6px;font-size:11px;letter-spacing:.6px;color:var(--sd-text-muted, #5f6368);text-transform:uppercase;box-sizing:border-box;text-align:center;position:sticky;top:0;z-index:2;background:var(--sd-surface-muted, #f7f7f7);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.avaya-ipo-container_recent_item_left .avaya-ipo-caller_drop{color:var(--sd-call-end, #e5484d)}.avaya-ipo-disconnect_badge{display:inline-flex;align-items:center;margin-left:6px;padding:2px 6px;border-radius:var(--sd-radius-sm, 8px);background:var(--sd-accent-soft, #fff1ea);color:var(--sd-call-end, #e5484d);font-size:10px;font-weight:600;letter-spacing:.2px}.avaya-ipo-container_recent_item_right{display:flex;flex-direction:row;position:absolute;right:0}.avaya-ipo-container_recent_item_right .avaya-ipo-right_field{display:flex;flex-basis:auto;justify-content:right}.avaya-ipo-container_recent_item_right .avaya-ipo-right_field_content{display:inline-block;border-radius:var(--sd-radius-pill, 999px);border:1px solid var(--sd-border, #e3e3e3);padding:5px 8px;font-size:11px;color:var(--sd-text-muted, #5f6368)}.avaya-ipo-calling_btn_inner{position:relative;width:100%;margin:0;padding:0;display:flex;justify-content:right}.avaya-ipo-button_recent_call{width:38px;height:38px;display:flex;flex-basis:auto;flex-direction:column;align-items:center;justify-content:center;line-height:normal;border-radius:var(--sd-radius-pill, 999px);outline:none;border:none;font-size:22px;font-weight:700;color:var(--sd-call-accept, #1aa251);background:var(--sd-surface-muted, #f7f7f7);border:1px solid var(--sd-border, #e3e3e3)}.avaya-ipo-container_call_history_not_found{position:absolute;width:100%;height:100%;display:flex;flex-basis:auto;flex-direction:column;flex-grow:1;align-items:center;background:var(--sd-surface, #fff)}.avaya-ipo-container_call_history_not_found h2{font-size:18px;font-weight:700;letter-spacing:-.65px;color:var(--sd-text, #333);text-align:center;padding-top:26px}.avaya-ipo-container_call_history_not_found p{font-size:12px;line-height:normal;color:var(--sd-text-muted, #5f6368);font-weight:600;white-space:normal;text-align:center;padding-top:10px}.avaya-ipo-icon_round_area_call_history{width:165px;height:75px;background:var(--sd-background-color) url(data:image/gif;base64,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) center no-repeat;border-radius:38px;display:flex;grid-row:1}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-container_recent_search input{background:var(--sd-input, #1c222c);border-color:var(--sd-input-border, #2a2f3a);color:var(--sd-text, #f2f4f8)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-container_recent_search input::placeholder{color:var(--sd-text-subtle, #7e8794)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-search_icon{color:var(--sd-text-subtle, #7e8794)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-history_name{color:var(--sd-text, #f2f4f8)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-history_time,:host-context(.avaya-ipo-dark-mode) .avaya-ipo-history_meta,:host-context(.avaya-ipo-dark-mode) .avaya-ipo-history_meta .avaya-ipo-direction_text{color:var(--sd-text-muted, #aab0bb)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-history_avatar{background:var(--sd-avatar, #222833);color:var(--sd-text, #f2f4f8)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-container_call_history_not_found{background:var(--sd-surface, #0f1115)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-container_call_history_not_found h2{color:var(--sd-text, #f2f4f8)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-container_call_history_not_found p{color:var(--sd-text-muted, #aab0bb)}\n"] }]
1781
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1$1.AppSyncHelperService }, { type: i1$1.SnugdeskAuthenticationService }], propDecorators: { mode: [{
1663
1782
  type: Input
1664
1783
  }], tenantId: [{
1665
1784
  type: Input
@@ -1690,11 +1809,11 @@ class ContactCardComponent {
1690
1809
  this.call.emit(ev);
1691
1810
  }
1692
1811
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: ContactCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1693
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.9", type: ContactCardComponent, isStandalone: false, selector: "app-contact-card", inputs: { name: "name", phone: "phone" }, outputs: { call: "call" }, ngImport: i0, template: "<div class=\"contact-card\">\n <div class=\"contact-avatar grd1\">{{ initials }}</div>\n <div class=\"contact-body\">\n <div class=\"contact-name\">{{ name }}</div>\n <div class=\"contact-phone\">{{ phone }}</div>\n </div>\n <button type=\"button\" class=\"contact-call-btn\" (click)=\"onCall($event)\">\n <svg viewBox=\"0 0 512 512\" height=\"18\" aria-hidden=\"true\" focusable=\"false\">\n <path fill=\"currentColor\"\n d=\"M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z\" />\n </svg>\n </button>\n</div>\n", styles: [".contact-card{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #ededed;background:transparent}.contact-avatar{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-weight:700;color:#333;background:#f0f0f0}.contact-body{flex:1;display:flex;flex-direction:column;gap:6px}.contact-call-btn{width:38px;height:38px;border-radius:26px;border:1px solid #f1f1f1;background:#f1f1f1;color:#6c0;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.contact-call-btn:hover{background:#f1f1f1}.contact-name{font-weight:700;color:var(--sd-text, #1f1f1f)}.contact-phone{font-size:12px;color:#666;font-weight:500}.grd1{background:#f0f0f0}\n"] });
1812
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.9", type: ContactCardComponent, isStandalone: false, selector: "app-contact-card", inputs: { name: "name", phone: "phone" }, outputs: { call: "call" }, ngImport: i0, template: "<div class=\"avaya-ipo-contact-card\">\n <div class=\"avaya-ipo-contact-avatar avaya-ipo-grd1\">{{ initials }}</div>\n <div class=\"avaya-ipo-contact-body\">\n <div class=\"avaya-ipo-contact-name\">{{ name }}</div>\n <div class=\"avaya-ipo-contact-phone\">{{ phone }}</div>\n </div>\n <button type=\"button\" class=\"avaya-ipo-contact-call-btn\" (click)=\"onCall($event)\">\n <svg viewBox=\"0 0 512 512\" height=\"18\" aria-hidden=\"true\" focusable=\"false\">\n <path fill=\"currentColor\"\n d=\"M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z\" />\n </svg>\n </button>\n</div>\n", styles: [".avaya-ipo-contact-card{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--sd-border);background:transparent}.avaya-ipo-contact-avatar{width:44px;height:44px;border-radius:var(--sd-radius-lg);display:flex;align-items:center;justify-content:center;font-weight:700;color:var(--sd-text);background:var(--sd-avatar)}.avaya-ipo-contact-body{flex:1;display:flex;flex-direction:column;gap:6px}.avaya-ipo-contact-call-btn{width:38px;height:38px;border-radius:var(--sd-radius-pill);border:1px solid var(--sd-border);background:var(--sd-surface-muted);color:var(--sd-call-accept);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s ease,border-color .15s ease}.avaya-ipo-contact-call-btn:hover{background:var(--sd-surface-sunken)}.avaya-ipo-contact-call-btn:focus-visible{outline:none;box-shadow:var(--sd-focus-ring)}.avaya-ipo-contact-name{font-weight:700;color:var(--sd-text)}.avaya-ipo-contact-phone{font-size:12px;color:var(--sd-text-muted);font-weight:500}.avaya-ipo-grd1{background:var(--sd-avatar)}\n"] });
1694
1813
  }
1695
1814
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: ContactCardComponent, decorators: [{
1696
1815
  type: Component,
1697
- args: [{ selector: 'app-contact-card', standalone: false, template: "<div class=\"contact-card\">\n <div class=\"contact-avatar grd1\">{{ initials }}</div>\n <div class=\"contact-body\">\n <div class=\"contact-name\">{{ name }}</div>\n <div class=\"contact-phone\">{{ phone }}</div>\n </div>\n <button type=\"button\" class=\"contact-call-btn\" (click)=\"onCall($event)\">\n <svg viewBox=\"0 0 512 512\" height=\"18\" aria-hidden=\"true\" focusable=\"false\">\n <path fill=\"currentColor\"\n d=\"M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z\" />\n </svg>\n </button>\n</div>\n", styles: [".contact-card{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #ededed;background:transparent}.contact-avatar{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-weight:700;color:#333;background:#f0f0f0}.contact-body{flex:1;display:flex;flex-direction:column;gap:6px}.contact-call-btn{width:38px;height:38px;border-radius:26px;border:1px solid #f1f1f1;background:#f1f1f1;color:#6c0;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.contact-call-btn:hover{background:#f1f1f1}.contact-name{font-weight:700;color:var(--sd-text, #1f1f1f)}.contact-phone{font-size:12px;color:#666;font-weight:500}.grd1{background:#f0f0f0}\n"] }]
1816
+ args: [{ selector: 'app-contact-card', standalone: false, template: "<div class=\"avaya-ipo-contact-card\">\n <div class=\"avaya-ipo-contact-avatar avaya-ipo-grd1\">{{ initials }}</div>\n <div class=\"avaya-ipo-contact-body\">\n <div class=\"avaya-ipo-contact-name\">{{ name }}</div>\n <div class=\"avaya-ipo-contact-phone\">{{ phone }}</div>\n </div>\n <button type=\"button\" class=\"avaya-ipo-contact-call-btn\" (click)=\"onCall($event)\">\n <svg viewBox=\"0 0 512 512\" height=\"18\" aria-hidden=\"true\" focusable=\"false\">\n <path fill=\"currentColor\"\n d=\"M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z\" />\n </svg>\n </button>\n</div>\n", styles: [".avaya-ipo-contact-card{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--sd-border);background:transparent}.avaya-ipo-contact-avatar{width:44px;height:44px;border-radius:var(--sd-radius-lg);display:flex;align-items:center;justify-content:center;font-weight:700;color:var(--sd-text);background:var(--sd-avatar)}.avaya-ipo-contact-body{flex:1;display:flex;flex-direction:column;gap:6px}.avaya-ipo-contact-call-btn{width:38px;height:38px;border-radius:var(--sd-radius-pill);border:1px solid var(--sd-border);background:var(--sd-surface-muted);color:var(--sd-call-accept);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s ease,border-color .15s ease}.avaya-ipo-contact-call-btn:hover{background:var(--sd-surface-sunken)}.avaya-ipo-contact-call-btn:focus-visible{outline:none;box-shadow:var(--sd-focus-ring)}.avaya-ipo-contact-name{font-weight:700;color:var(--sd-text)}.avaya-ipo-contact-phone{font-size:12px;color:var(--sd-text-muted);font-weight:500}.avaya-ipo-grd1{background:var(--sd-avatar)}\n"] }]
1698
1817
  }], propDecorators: { name: [{
1699
1818
  type: Input
1700
1819
  }], phone: [{
@@ -1738,11 +1857,11 @@ class ContactDetailsComponent {
1738
1857
  return `${parts[0][0]}${parts[parts.length - 1][0]}`.toUpperCase();
1739
1858
  }
1740
1859
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: ContactDetailsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1741
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: ContactDetailsComponent, isStandalone: false, selector: "app-contact-details", inputs: { contact: "contact" }, ngImport: i0, template: "<div class=\"call-profile\">\n <div class=\"profile-header\">\n <div class=\"avatar\">{{ getInitials() }}</div>\n <div class=\"profile-info\">\n <div class=\"primary-number\">{{ getDisplayName() }}</div>\n <div class=\"secondary-info\">{{ getPrimaryPhone() }}</div>\n <div class=\"meta-line\">\n @if (contact?.is_organization) {\n <span class=\"dir outbound\">Organization</span>\n } @else {\n <span class=\"dir inbound\">Individual</span>\n }\n <span class=\"divider\">|</span>\n <span>{{ contact?.is_blocked ? 'Blocked' : 'Active' }}</span>\n </div>\n </div>\n </div>\n\n <div class=\"detail-card\">\n <div class=\"detail-row\">\n <div class=\"label\">Phones</div>\n <div class=\"value\">\n @if (getPhoneNumbers().length) {\n {{ getPhoneNumbers().join(', ') }}\n } @else {\n N/A\n }\n </div>\n </div>\n <div class=\"detail-row\">\n <div class=\"label\">Emails</div>\n <div class=\"value\">\n @if (getEmails().length) {\n {{ getEmails().join(', ') }}\n } @else {\n N/A\n }\n </div>\n </div>\n <div class=\"detail-row\">\n <div class=\"label\">Allow Call</div>\n <div class=\"value\">{{ contact?.allow_call ? 'Yes' : 'No' }}</div>\n </div>\n <div class=\"detail-row\">\n <div class=\"label\">Allow Email</div>\n <div class=\"value\">{{ contact?.allow_email ? 'Yes' : 'No' }}</div>\n </div>\n <div class=\"detail-row\">\n <div class=\"label\">Allow SMS</div>\n <div class=\"value\">{{ contact?.allow_sms ? 'Yes' : 'No' }}</div>\n </div>\n <div class=\"detail-row\">\n <div class=\"label\">Allow WhatsApp</div>\n <div class=\"value\">{{ contact?.allow_whatsapp ? 'Yes' : 'No' }}</div>\n </div>\n </div>\n\n <div class=\"detail-card\">\n <div class=\"detail-row\">\n <div class=\"label\">Created</div>\n <div class=\"value\">{{ contact?.created_at ? (contact.created_at * 1000 | date : 'medium') : 'N/A' }}</div>\n </div>\n <div class=\"detail-row\">\n <div class=\"label\">Updated</div>\n <div class=\"value\">{{ contact?.updated_at ? (contact.updated_at * 1000 | date : 'medium') : 'N/A' }}</div>\n </div>\n </div>\n</div>\n", styles: [":host{display:block;width:100%;box-sizing:border-box}.call-profile{display:flex;flex-direction:column;gap:14px;font-family:Open Sans,Helvetica Neue,Arial,sans-serif;color:#111}.profile-header{display:flex;gap:12px;align-items:center;padding:12px;border-radius:12px;background:#f8f8f8}.avatar{width:52px;height:52px;border-radius:14px;background:#e8edf2;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;color:#1f2937}.profile-info{display:flex;flex-direction:column;gap:6px}.primary-number{font-size:16px;font-weight:800;color:#111827}.secondary-info{font-size:12px;color:#6b7280}.meta-line{display:flex;gap:6px;align-items:center;font-size:12px;color:#4b5563;flex-wrap:wrap}.meta-line .divider{color:#a0aec0}.meta-line .dir.inbound{color:#2b8a3e}.meta-line .dir.outbound{color:#1f6fb2}.detail-card{display:flex;flex-direction:column;gap:10px;padding:12px;border-radius:12px;background:#fff;border:1px solid #ededed}.detail-row{display:flex;justify-content:space-between;align-items:center;gap:12px}.label{font-weight:700;color:#4b5563;font-size:13px}.value{color:#111;text-align:right;font-weight:600;font-size:13px}\n"], dependencies: [{ kind: "pipe", type: i2.DatePipe, name: "date" }] });
1860
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: ContactDetailsComponent, isStandalone: false, selector: "app-contact-details", inputs: { contact: "contact" }, ngImport: i0, template: "<div class=\"avaya-ipo-call-profile\">\n <div class=\"avaya-ipo-profile-header\">\n <div class=\"avaya-ipo-avatar\">{{ getInitials() }}</div>\n <div class=\"avaya-ipo-profile-info\">\n <div class=\"avaya-ipo-primary-number\">{{ getDisplayName() }}</div>\n <div class=\"avaya-ipo-secondary-info\">{{ getPrimaryPhone() }}</div>\n <div class=\"avaya-ipo-meta-line\">\n @if (contact?.is_organization) {\n <span class=\"avaya-ipo-dir avaya-ipo-outbound\">Organization</span>\n } @else {\n <span class=\"avaya-ipo-dir avaya-ipo-inbound\">Individual</span>\n }\n <span class=\"avaya-ipo-divider\">|</span>\n <span>{{ contact?.is_blocked ? 'Blocked' : 'Active' }}</span>\n </div>\n </div>\n </div>\n\n <div class=\"avaya-ipo-detail-card\">\n <div class=\"avaya-ipo-detail-row\">\n <div class=\"avaya-ipo-label\">Phones</div>\n <div class=\"avaya-ipo-value\">\n @if (getPhoneNumbers().length) {\n {{ getPhoneNumbers().join(', ') }}\n } @else {\n N/A\n }\n </div>\n </div>\n <div class=\"avaya-ipo-detail-row\">\n <div class=\"avaya-ipo-label\">Emails</div>\n <div class=\"avaya-ipo-value\">\n @if (getEmails().length) {\n {{ getEmails().join(', ') }}\n } @else {\n N/A\n }\n </div>\n </div>\n <div class=\"avaya-ipo-detail-row\">\n <div class=\"avaya-ipo-label\">Allow Call</div>\n <div class=\"avaya-ipo-value\">{{ contact?.allow_call ? 'Yes' : 'No' }}</div>\n </div>\n <div class=\"avaya-ipo-detail-row\">\n <div class=\"avaya-ipo-label\">Allow Email</div>\n <div class=\"avaya-ipo-value\">{{ contact?.allow_email ? 'Yes' : 'No' }}</div>\n </div>\n <div class=\"avaya-ipo-detail-row\">\n <div class=\"avaya-ipo-label\">Allow SMS</div>\n <div class=\"avaya-ipo-value\">{{ contact?.allow_sms ? 'Yes' : 'No' }}</div>\n </div>\n <div class=\"avaya-ipo-detail-row\">\n <div class=\"avaya-ipo-label\">Allow WhatsApp</div>\n <div class=\"avaya-ipo-value\">{{ contact?.allow_whatsapp ? 'Yes' : 'No' }}</div>\n </div>\n </div>\n\n <div class=\"avaya-ipo-detail-card\">\n <div class=\"avaya-ipo-detail-row\">\n <div class=\"avaya-ipo-label\">Created</div>\n <div class=\"avaya-ipo-value\">{{ contact?.created_at ? (contact.created_at * 1000 | date : 'medium') : 'N/A' }}</div>\n </div>\n <div class=\"avaya-ipo-detail-row\">\n <div class=\"avaya-ipo-label\">Updated</div>\n <div class=\"avaya-ipo-value\">{{ contact?.updated_at ? (contact.updated_at * 1000 | date : 'medium') : 'N/A' }}</div>\n </div>\n </div>\n</div>\n", styles: [":host{display:block;width:100%;box-sizing:border-box}.avaya-ipo-call-profile{display:flex;flex-direction:column;gap:14px;font-family:Open Sans,Helvetica Neue,Arial,sans-serif;color:var(--sd-text)}.avaya-ipo-profile-header{display:flex;gap:12px;align-items:center;padding:12px;border-radius:var(--sd-radius-lg);background:var(--sd-surface-muted)}.avaya-ipo-avatar{width:52px;height:52px;border-radius:var(--sd-radius-lg);background:var(--sd-avatar);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;color:var(--sd-text)}.avaya-ipo-profile-info{display:flex;flex-direction:column;gap:6px}.avaya-ipo-primary-number{font-size:16px;font-weight:800;color:var(--sd-text)}.avaya-ipo-secondary-info{font-size:12px;color:var(--sd-text-muted)}.avaya-ipo-meta-line{display:flex;gap:6px;align-items:center;font-size:12px;color:var(--sd-text-muted);flex-wrap:wrap}.avaya-ipo-meta-line .avaya-ipo-divider{color:var(--sd-text-subtle)}.avaya-ipo-meta-line .avaya-ipo-dir.avaya-ipo-inbound{color:var(--sd-call-accept)}.avaya-ipo-meta-line .avaya-ipo-dir.avaya-ipo-outbound{color:var(--sd-accent)}.avaya-ipo-detail-card{display:flex;flex-direction:column;gap:10px;padding:12px;border-radius:var(--sd-radius-lg);background:var(--sd-card);border:1px solid var(--sd-border)}.avaya-ipo-detail-row{display:flex;justify-content:space-between;align-items:center;gap:12px}.avaya-ipo-label{font-weight:700;color:var(--sd-text-muted);font-size:13px}.avaya-ipo-value{color:var(--sd-text);text-align:right;font-weight:600;font-size:13px}\n"], dependencies: [{ kind: "pipe", type: i2.DatePipe, name: "date" }] });
1742
1861
  }
1743
1862
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: ContactDetailsComponent, decorators: [{
1744
1863
  type: Component,
1745
- args: [{ selector: 'app-contact-details', standalone: false, template: "<div class=\"call-profile\">\n <div class=\"profile-header\">\n <div class=\"avatar\">{{ getInitials() }}</div>\n <div class=\"profile-info\">\n <div class=\"primary-number\">{{ getDisplayName() }}</div>\n <div class=\"secondary-info\">{{ getPrimaryPhone() }}</div>\n <div class=\"meta-line\">\n @if (contact?.is_organization) {\n <span class=\"dir outbound\">Organization</span>\n } @else {\n <span class=\"dir inbound\">Individual</span>\n }\n <span class=\"divider\">|</span>\n <span>{{ contact?.is_blocked ? 'Blocked' : 'Active' }}</span>\n </div>\n </div>\n </div>\n\n <div class=\"detail-card\">\n <div class=\"detail-row\">\n <div class=\"label\">Phones</div>\n <div class=\"value\">\n @if (getPhoneNumbers().length) {\n {{ getPhoneNumbers().join(', ') }}\n } @else {\n N/A\n }\n </div>\n </div>\n <div class=\"detail-row\">\n <div class=\"label\">Emails</div>\n <div class=\"value\">\n @if (getEmails().length) {\n {{ getEmails().join(', ') }}\n } @else {\n N/A\n }\n </div>\n </div>\n <div class=\"detail-row\">\n <div class=\"label\">Allow Call</div>\n <div class=\"value\">{{ contact?.allow_call ? 'Yes' : 'No' }}</div>\n </div>\n <div class=\"detail-row\">\n <div class=\"label\">Allow Email</div>\n <div class=\"value\">{{ contact?.allow_email ? 'Yes' : 'No' }}</div>\n </div>\n <div class=\"detail-row\">\n <div class=\"label\">Allow SMS</div>\n <div class=\"value\">{{ contact?.allow_sms ? 'Yes' : 'No' }}</div>\n </div>\n <div class=\"detail-row\">\n <div class=\"label\">Allow WhatsApp</div>\n <div class=\"value\">{{ contact?.allow_whatsapp ? 'Yes' : 'No' }}</div>\n </div>\n </div>\n\n <div class=\"detail-card\">\n <div class=\"detail-row\">\n <div class=\"label\">Created</div>\n <div class=\"value\">{{ contact?.created_at ? (contact.created_at * 1000 | date : 'medium') : 'N/A' }}</div>\n </div>\n <div class=\"detail-row\">\n <div class=\"label\">Updated</div>\n <div class=\"value\">{{ contact?.updated_at ? (contact.updated_at * 1000 | date : 'medium') : 'N/A' }}</div>\n </div>\n </div>\n</div>\n", styles: [":host{display:block;width:100%;box-sizing:border-box}.call-profile{display:flex;flex-direction:column;gap:14px;font-family:Open Sans,Helvetica Neue,Arial,sans-serif;color:#111}.profile-header{display:flex;gap:12px;align-items:center;padding:12px;border-radius:12px;background:#f8f8f8}.avatar{width:52px;height:52px;border-radius:14px;background:#e8edf2;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;color:#1f2937}.profile-info{display:flex;flex-direction:column;gap:6px}.primary-number{font-size:16px;font-weight:800;color:#111827}.secondary-info{font-size:12px;color:#6b7280}.meta-line{display:flex;gap:6px;align-items:center;font-size:12px;color:#4b5563;flex-wrap:wrap}.meta-line .divider{color:#a0aec0}.meta-line .dir.inbound{color:#2b8a3e}.meta-line .dir.outbound{color:#1f6fb2}.detail-card{display:flex;flex-direction:column;gap:10px;padding:12px;border-radius:12px;background:#fff;border:1px solid #ededed}.detail-row{display:flex;justify-content:space-between;align-items:center;gap:12px}.label{font-weight:700;color:#4b5563;font-size:13px}.value{color:#111;text-align:right;font-weight:600;font-size:13px}\n"] }]
1864
+ args: [{ selector: 'app-contact-details', standalone: false, template: "<div class=\"avaya-ipo-call-profile\">\n <div class=\"avaya-ipo-profile-header\">\n <div class=\"avaya-ipo-avatar\">{{ getInitials() }}</div>\n <div class=\"avaya-ipo-profile-info\">\n <div class=\"avaya-ipo-primary-number\">{{ getDisplayName() }}</div>\n <div class=\"avaya-ipo-secondary-info\">{{ getPrimaryPhone() }}</div>\n <div class=\"avaya-ipo-meta-line\">\n @if (contact?.is_organization) {\n <span class=\"avaya-ipo-dir avaya-ipo-outbound\">Organization</span>\n } @else {\n <span class=\"avaya-ipo-dir avaya-ipo-inbound\">Individual</span>\n }\n <span class=\"avaya-ipo-divider\">|</span>\n <span>{{ contact?.is_blocked ? 'Blocked' : 'Active' }}</span>\n </div>\n </div>\n </div>\n\n <div class=\"avaya-ipo-detail-card\">\n <div class=\"avaya-ipo-detail-row\">\n <div class=\"avaya-ipo-label\">Phones</div>\n <div class=\"avaya-ipo-value\">\n @if (getPhoneNumbers().length) {\n {{ getPhoneNumbers().join(', ') }}\n } @else {\n N/A\n }\n </div>\n </div>\n <div class=\"avaya-ipo-detail-row\">\n <div class=\"avaya-ipo-label\">Emails</div>\n <div class=\"avaya-ipo-value\">\n @if (getEmails().length) {\n {{ getEmails().join(', ') }}\n } @else {\n N/A\n }\n </div>\n </div>\n <div class=\"avaya-ipo-detail-row\">\n <div class=\"avaya-ipo-label\">Allow Call</div>\n <div class=\"avaya-ipo-value\">{{ contact?.allow_call ? 'Yes' : 'No' }}</div>\n </div>\n <div class=\"avaya-ipo-detail-row\">\n <div class=\"avaya-ipo-label\">Allow Email</div>\n <div class=\"avaya-ipo-value\">{{ contact?.allow_email ? 'Yes' : 'No' }}</div>\n </div>\n <div class=\"avaya-ipo-detail-row\">\n <div class=\"avaya-ipo-label\">Allow SMS</div>\n <div class=\"avaya-ipo-value\">{{ contact?.allow_sms ? 'Yes' : 'No' }}</div>\n </div>\n <div class=\"avaya-ipo-detail-row\">\n <div class=\"avaya-ipo-label\">Allow WhatsApp</div>\n <div class=\"avaya-ipo-value\">{{ contact?.allow_whatsapp ? 'Yes' : 'No' }}</div>\n </div>\n </div>\n\n <div class=\"avaya-ipo-detail-card\">\n <div class=\"avaya-ipo-detail-row\">\n <div class=\"avaya-ipo-label\">Created</div>\n <div class=\"avaya-ipo-value\">{{ contact?.created_at ? (contact.created_at * 1000 | date : 'medium') : 'N/A' }}</div>\n </div>\n <div class=\"avaya-ipo-detail-row\">\n <div class=\"avaya-ipo-label\">Updated</div>\n <div class=\"avaya-ipo-value\">{{ contact?.updated_at ? (contact.updated_at * 1000 | date : 'medium') : 'N/A' }}</div>\n </div>\n </div>\n</div>\n", styles: [":host{display:block;width:100%;box-sizing:border-box}.avaya-ipo-call-profile{display:flex;flex-direction:column;gap:14px;font-family:Open Sans,Helvetica Neue,Arial,sans-serif;color:var(--sd-text)}.avaya-ipo-profile-header{display:flex;gap:12px;align-items:center;padding:12px;border-radius:var(--sd-radius-lg);background:var(--sd-surface-muted)}.avaya-ipo-avatar{width:52px;height:52px;border-radius:var(--sd-radius-lg);background:var(--sd-avatar);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;color:var(--sd-text)}.avaya-ipo-profile-info{display:flex;flex-direction:column;gap:6px}.avaya-ipo-primary-number{font-size:16px;font-weight:800;color:var(--sd-text)}.avaya-ipo-secondary-info{font-size:12px;color:var(--sd-text-muted)}.avaya-ipo-meta-line{display:flex;gap:6px;align-items:center;font-size:12px;color:var(--sd-text-muted);flex-wrap:wrap}.avaya-ipo-meta-line .avaya-ipo-divider{color:var(--sd-text-subtle)}.avaya-ipo-meta-line .avaya-ipo-dir.avaya-ipo-inbound{color:var(--sd-call-accept)}.avaya-ipo-meta-line .avaya-ipo-dir.avaya-ipo-outbound{color:var(--sd-accent)}.avaya-ipo-detail-card{display:flex;flex-direction:column;gap:10px;padding:12px;border-radius:var(--sd-radius-lg);background:var(--sd-card);border:1px solid var(--sd-border)}.avaya-ipo-detail-row{display:flex;justify-content:space-between;align-items:center;gap:12px}.avaya-ipo-label{font-weight:700;color:var(--sd-text-muted);font-size:13px}.avaya-ipo-value{color:var(--sd-text);text-align:right;font-weight:600;font-size:13px}\n"] }]
1746
1865
  }], propDecorators: { contact: [{
1747
1866
  type: Input
1748
1867
  }] } });
@@ -1971,7 +2090,9 @@ class ContactsComponent {
1971
2090
  if (!el || this.isLoading || this.isLoadingMore || !this.hasMore) {
1972
2091
  return;
1973
2092
  }
1974
- if (el.scrollHeight <= el.clientHeight + 4) {
2093
+ // Only auto-fill when the container is actually bounded (clientHeight > 0); guards against an
2094
+ // unbounded layout looping loadNextPage forever.
2095
+ if (el.clientHeight > 0 && el.scrollHeight <= el.clientHeight + 4) {
1975
2096
  this.loadNextPage();
1976
2097
  }
1977
2098
  }, 0);
@@ -1981,18 +2102,22 @@ class ContactsComponent {
1981
2102
  return letter >= 'A' && letter <= 'Z' ? letter : '#';
1982
2103
  }
1983
2104
  getPageSize() {
1984
- const viewport = typeof window !== 'undefined' ? window.innerHeight : 800;
1985
- const available = Math.max(280, viewport - 260);
2105
+ // Size pages to the ACTUAL scroll container, not the window so a small popup box doesn't
2106
+ // over-fetch and a large/standalone layout doesn't loop. Fall back to window math, then a default.
2107
+ const el = this.listEl?.nativeElement;
2108
+ const available = el && el.clientHeight > 0
2109
+ ? el.clientHeight
2110
+ : Math.max(280, (typeof window !== 'undefined' ? window.innerHeight : 800) - 260);
1986
2111
  const rowHeight = 64;
1987
2112
  const rows = Math.ceil(available / rowHeight);
1988
2113
  return Math.max(10, rows);
1989
2114
  }
1990
2115
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: ContactsComponent, deps: [{ token: EntitiesSearchService }], target: i0.ɵɵFactoryTarget.Component });
1991
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: ContactsComponent, isStandalone: false, selector: "app-contacts", inputs: { tenantId: "tenantId" }, outputs: { makeCallEv: "makeCallEv" }, viewQueries: [{ propertyName: "listEl", first: true, predicate: ["listEl"], descendants: true }], ngImport: i0, template: "<div class=\"contacts-panel\">\n @if (!selectedContact) {\n <div class=\"contacts-search\">\n <span class=\"contacts-search-icon\">\uD83D\uDD0D</span>\n <input\n type=\"text\"\n placeholder=\"Search contacts\"\n [value]=\"searchTerm\"\n (input)=\"onSearchChange($any($event.target).value)\"\n />\n </div>\n }\n @if (isLoading) {\n <div class=\"history_skeleton\">\n @for (item of [1,2,3,4]; track item) {\n <div class=\"skeleton_row\">\n <div class=\"skeleton_avatar shine\"></div>\n <div class=\"skeleton_body\">\n <div class=\"skeleton_line wide shine\"></div>\n <div class=\"skeleton_line medium shine\"></div>\n </div>\n <div class=\"skeleton_meta\">\n <div class=\"skeleton_line short shine\"></div>\n </div>\n </div>\n }\n </div>\n } @else if (error) {\n <div class=\"contacts-state error\">{{ error }}</div>\n } @else if (selectedContact) {\n <div class=\"contact-details\">\n <div class=\"contact-details-actions\">\n <button type=\"button\" class=\"contact-back\" (click)=\"closeContact()\">\u2190 Back</button>\n <button type=\"button\" class=\"contact-call\" (click)=\"onCallContact(selectedContact)\">Call</button>\n </div>\n <app-contact-details [contact]=\"selectedContact.entity\"></app-contact-details>\n </div>\n } @else if (contacts.length === 0) {\n <div class=\"contacts-state\">No contacts found.</div>\n } @else {\n <div class=\"contacts-list\" (scroll)=\"onListScroll($event)\" #listEl>\n @for (group of groupedContacts; track group.label) {\n <div class=\"history_group_label\">{{ group.label }}</div>\n @for (contact of group.items; track contact.id) {\n <button type=\"button\" class=\"contact-item-btn\" (click)=\"openContact(contact)\">\n <app-contact-card [name]=\"contact.name\" [phone]=\"contact.phone\" (call)=\"onCallContact(contact, $event)\"></app-contact-card>\n </button>\n }\n }\n @if (isLoadingMore) {\n <div class=\"contacts-load-more\">\n <div class=\"contacts-spinner\" aria-hidden=\"true\"></div>\n </div>\n }\n </div>\n }\n</div>\n", styles: [".contacts-panel{padding:0 15px 20px;display:flex;flex-direction:column;gap:12px;overflow:hidden;flex:1 1 auto;min-height:0}:host{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.contacts-search{position:relative;width:100%;box-sizing:border-box}.contacts-search input{padding:0 42px;width:100%;max-width:100%;box-sizing:border-box;outline:none;display:block;border:1px solid #e0e0e0;color:#1f1f1f;font-size:13px;letter-spacing:-.15px;background:#fafafa;font-weight:600;border-radius:12px;height:42px;box-shadow:inset 0 1px 2px #0000000f}.contacts-search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:14px}.contacts-list{display:flex;flex-direction:column;overflow-y:auto;padding-bottom:calc(var(--sd-tabs-height, 60px) + 12px);flex:1 1 auto;min-height:0;max-height:none}.contact-item-btn{width:100%;padding:0;border:none;background:transparent;text-align:left;cursor:pointer}.contact-item-btn:hover .contact-card{background:#f7f7f7}.contact-details{padding:0 0 12px;display:flex;flex-direction:column;gap:12px}.contact-details-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.contact-call{border:none;background:#e8f5e9;color:#1b5e20;padding:8px 14px;border-radius:8px;font-weight:700;cursor:pointer}.contact-call:hover{background:#d9f0db}.contact-back{width:90px;border:1px solid #e0e0e0;background:#fff;color:#333;border-radius:8px;padding:8px;cursor:pointer;font-weight:600}.history_group_label{font-size:12px;font-weight:700;color:#7a7a7a;text-transform:uppercase;letter-spacing:.08em;padding:6px 0;position:sticky;top:0;z-index:2;background:#f7f7f7eb;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.history_skeleton{padding:12px 0;display:flex;flex-direction:column;gap:12px}.skeleton_row{display:flex;align-items:center;gap:12px}.skeleton_avatar{width:42px;height:42px;border-radius:12px;background:#f0f0f0;position:relative;overflow:hidden}.skeleton_body{flex:1;display:flex;flex-direction:column;gap:8px}.skeleton_meta{width:60px}.skeleton_line{height:10px;background:#f0f0f0;border-radius:6px;position:relative;overflow:hidden}.skeleton_line.wide{width:70%}.skeleton_line.medium{width:55%}.skeleton_line.short{width:50px}.shine:after{content:\"\";position:absolute;top:0;left:-150px;height:100%;width:120px;background:linear-gradient(90deg,#fff0,#fff9,#fff0);animation:shimmer 1.2s infinite}:host-context(.dark-mode) .skeleton_avatar,:host-context(.dark-mode) .skeleton_line{background:#1e2430}:host-context(.dark-mode) .shine:after{background:linear-gradient(90deg,#0f111500,#555f6e73,#0f111500)}@keyframes shimmer{0%{transform:translate(0)}to{transform:translate(260px)}}.contacts-state{padding:16px;font-size:13px;color:#6a6a6a;text-align:center}.contacts-state.error{color:#b71c1c;background:#ffe8ea;border-radius:12px}.contacts-load-more{padding:12px 0 18px;display:flex;justify-content:center}.contacts-spinner{width:22px;height:22px;border-radius:50%;border:2px solid #e5e7eb;border-top-color:#1f2937;animation:contacts-spin .8s linear infinite}@keyframes contacts-spin{to{transform:rotate(360deg)}}:host-context(.dark-mode) .history_group_label{color:#c9ced8;background:#151a22eb}:host-context(.dark-mode) .contact-phone,:host-context(.dark-mode) .contacts-state{color:#b6bcc8}:host-context(.dark-mode) .contacts-search input{background:#1c222c;border-color:#2a2f3a;color:#f2f4f8}:host-context(.dark-mode) .contacts-search input::placeholder{color:#aab0bb}:host-context(.dark-mode) .contacts-search-icon{color:#aab0bb}:host-context(.dark-mode) .contact-call{background:#1e2b22;color:#79d48a}:host-context(.dark-mode) .contact-back{background:#141922;border-color:#2a2f3a;color:#f2f4f8}:host-context(.dark-mode) .contact-item-btn:hover .contact-card{background:#1a202b}\n"], dependencies: [{ kind: "component", type: ContactCardComponent, selector: "app-contact-card", inputs: ["name", "phone"], outputs: ["call"] }, { kind: "component", type: ContactDetailsComponent, selector: "app-contact-details", inputs: ["contact"] }] });
2116
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: ContactsComponent, isStandalone: false, selector: "app-contacts", inputs: { tenantId: "tenantId" }, outputs: { makeCallEv: "makeCallEv" }, viewQueries: [{ propertyName: "listEl", first: true, predicate: ["listEl"], descendants: true }], ngImport: i0, template: "<div class=\"avaya-ipo-contacts-panel\">\n @if (!selectedContact) {\n <div class=\"avaya-ipo-contacts-search\">\n <span class=\"avaya-ipo-contacts-search-icon\">\uD83D\uDD0D</span>\n <input\n type=\"text\"\n placeholder=\"Search contacts\"\n [value]=\"searchTerm\"\n (input)=\"onSearchChange($any($event.target).value)\"\n />\n </div>\n }\n @if (isLoading) {\n <div class=\"avaya-ipo-history_skeleton\">\n @for (item of [1,2,3,4]; track item) {\n <div class=\"avaya-ipo-skeleton_row\">\n <div class=\"avaya-ipo-skeleton_avatar avaya-ipo-shine\"></div>\n <div class=\"avaya-ipo-skeleton_body\">\n <div class=\"avaya-ipo-skeleton_line avaya-ipo-wide avaya-ipo-shine\"></div>\n <div class=\"avaya-ipo-skeleton_line avaya-ipo-medium avaya-ipo-shine\"></div>\n </div>\n <div class=\"avaya-ipo-skeleton_meta\">\n <div class=\"avaya-ipo-skeleton_line avaya-ipo-short avaya-ipo-shine\"></div>\n </div>\n </div>\n }\n </div>\n } @else if (error) {\n <div class=\"avaya-ipo-contacts-state avaya-ipo-error\">{{ error }}</div>\n } @else if (selectedContact) {\n <div class=\"avaya-ipo-contact-details\">\n <div class=\"avaya-ipo-contact-details-actions\">\n <button type=\"button\" class=\"avaya-ipo-contact-back\" (click)=\"closeContact()\">\u2190 Back</button>\n <button type=\"button\" class=\"avaya-ipo-contact-call\" (click)=\"onCallContact(selectedContact)\">Call</button>\n </div>\n <app-contact-details [contact]=\"selectedContact.entity\"></app-contact-details>\n </div>\n } @else if (contacts.length === 0) {\n <div class=\"avaya-ipo-contacts-state\">No contacts found.</div>\n } @else {\n <div class=\"avaya-ipo-contacts-list\" (scroll)=\"onListScroll($event)\" #listEl>\n @for (group of groupedContacts; track group.label) {\n <div class=\"avaya-ipo-history_group_label\">{{ group.label }}</div>\n @for (contact of group.items; track contact.id) {\n <button type=\"button\" class=\"avaya-ipo-contact-item-btn\" (click)=\"openContact(contact)\">\n <app-contact-card [name]=\"contact.name\" [phone]=\"contact.phone\" (call)=\"onCallContact(contact, $event)\"></app-contact-card>\n </button>\n }\n }\n @if (isLoadingMore) {\n <div class=\"avaya-ipo-contacts-load-more\">\n <div class=\"avaya-ipo-contacts-spinner\" aria-hidden=\"true\"></div>\n </div>\n }\n </div>\n }\n</div>\n", styles: [".avaya-ipo-contacts-panel{padding:0 15px 20px;display:flex;flex-direction:column;gap:12px;overflow:hidden;flex:1 1 auto;min-height:0}:host{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.avaya-ipo-contacts-search{position:relative;width:100%;box-sizing:border-box}.avaya-ipo-contacts-search input{padding:0 42px;width:100%;max-width:100%;box-sizing:border-box;outline:none;display:block;border:1px solid var(--sd-input-border);color:var(--sd-text);font-size:13px;letter-spacing:-.15px;background:var(--sd-input);font-weight:600;border-radius:var(--sd-radius-sm);height:42px;transition:border-color .15s ease,box-shadow .15s ease}.avaya-ipo-contacts-search input::placeholder{color:var(--sd-text-subtle)}.avaya-ipo-contacts-search input:focus{border-color:var(--sd-accent);box-shadow:var(--sd-focus-ring)}.avaya-ipo-contacts-search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:14px;color:var(--sd-text-subtle)}.avaya-ipo-contacts-list{display:flex;flex-direction:column;overflow-y:auto;padding-bottom:calc(var(--sd-tabs-height, 60px) + 12px);flex:1 1 auto;min-height:0;max-height:none}.avaya-ipo-contact-item-btn{width:100%;padding:0;border:none;background:transparent;text-align:left;cursor:pointer}.avaya-ipo-contact-item-btn:hover .avaya-ipo-contact-card{background:var(--sd-surface-muted)}.avaya-ipo-contact-details{padding:0 0 12px;display:flex;flex-direction:column;gap:12px}.avaya-ipo-contact-details-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.avaya-ipo-contact-call{border:none;background:var(--sd-call-accept);color:var(--sd-accent-contrast);padding:8px 14px;border-radius:var(--sd-radius-sm);font-weight:700;cursor:pointer;transition:filter .15s ease}.avaya-ipo-contact-call:hover{filter:brightness(.94)}.avaya-ipo-contact-call:focus-visible{outline:none;box-shadow:var(--sd-focus-ring)}.avaya-ipo-contact-back{width:90px;border:1px solid var(--sd-border);background:var(--sd-surface-muted);color:var(--sd-text);border-radius:var(--sd-radius-sm);padding:8px;cursor:pointer;font-weight:600;transition:background .15s ease}.avaya-ipo-contact-back:hover{background:var(--sd-surface-sunken)}.avaya-ipo-contact-back:focus-visible{outline:none;box-shadow:var(--sd-focus-ring)}.avaya-ipo-history_group_label{font-size:12px;font-weight:700;color:var(--sd-text-muted);text-transform:uppercase;letter-spacing:.08em;padding:6px 0;position:sticky;top:0;z-index:2;background:var(--sd-surface);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.avaya-ipo-history_skeleton{padding:12px 0;display:flex;flex-direction:column;gap:12px}.avaya-ipo-skeleton_row{display:flex;align-items:center;gap:12px}.avaya-ipo-skeleton_avatar{width:42px;height:42px;border-radius:var(--sd-radius-lg);background:var(--sd-surface-sunken);position:relative;overflow:hidden}.avaya-ipo-skeleton_body{flex:1;display:flex;flex-direction:column;gap:8px}.avaya-ipo-skeleton_meta{width:60px}.avaya-ipo-skeleton_line{height:10px;background:var(--sd-surface-sunken);border-radius:6px;position:relative;overflow:hidden}.avaya-ipo-skeleton_line.avaya-ipo-wide{width:70%}.avaya-ipo-skeleton_line.avaya-ipo-medium{width:55%}.avaya-ipo-skeleton_line.avaya-ipo-short{width:50px}.avaya-ipo-shine:after{content:\"\";position:absolute;top:0;left:-150px;height:100%;width:120px;background:linear-gradient(90deg,#fff0,#fff9,#fff0);animation:shimmer 1.2s infinite}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-skeleton_avatar,:host-context(.avaya-ipo-dark-mode) .avaya-ipo-skeleton_line{background:var(--sd-surface-sunken)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-shine:after{background:linear-gradient(90deg,#0f111500,#555f6e73,#0f111500)}@keyframes shimmer{0%{transform:translate(0)}to{transform:translate(260px)}}.avaya-ipo-contacts-state{padding:16px;font-size:13px;color:var(--sd-text-muted);text-align:center}.avaya-ipo-contacts-state.avaya-ipo-error{color:var(--sd-call-end);background:var(--sd-surface-muted);border-radius:var(--sd-radius)}.avaya-ipo-contacts-load-more{padding:12px 0 18px;display:flex;justify-content:center}.avaya-ipo-contacts-spinner{width:22px;height:22px;border-radius:50%;border:2px solid var(--sd-border);border-top-color:var(--sd-accent);animation:contacts-spin .8s linear infinite}@keyframes contacts-spin{to{transform:rotate(360deg)}}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-history_group_label{color:var(--sd-text-muted);background:var(--sd-surface)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-contact-phone,:host-context(.avaya-ipo-dark-mode) .avaya-ipo-contacts-state{color:var(--sd-text-muted)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-contacts-search input{background:var(--sd-input);border-color:var(--sd-input-border);color:var(--sd-text)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-contacts-search input::placeholder{color:var(--sd-text-subtle)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-contacts-search-icon{color:var(--sd-text-subtle)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-contact-call{background:var(--sd-call-accept);color:var(--sd-accent-contrast)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-contact-back{background:var(--sd-surface-muted);border-color:var(--sd-border);color:var(--sd-text)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-contact-item-btn:hover .avaya-ipo-contact-card{background:var(--sd-surface-muted)}\n"], dependencies: [{ kind: "component", type: ContactCardComponent, selector: "app-contact-card", inputs: ["name", "phone"], outputs: ["call"] }, { kind: "component", type: ContactDetailsComponent, selector: "app-contact-details", inputs: ["contact"] }] });
1992
2117
  }
1993
2118
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: ContactsComponent, decorators: [{
1994
2119
  type: Component,
1995
- args: [{ selector: 'app-contacts', standalone: false, template: "<div class=\"contacts-panel\">\n @if (!selectedContact) {\n <div class=\"contacts-search\">\n <span class=\"contacts-search-icon\">\uD83D\uDD0D</span>\n <input\n type=\"text\"\n placeholder=\"Search contacts\"\n [value]=\"searchTerm\"\n (input)=\"onSearchChange($any($event.target).value)\"\n />\n </div>\n }\n @if (isLoading) {\n <div class=\"history_skeleton\">\n @for (item of [1,2,3,4]; track item) {\n <div class=\"skeleton_row\">\n <div class=\"skeleton_avatar shine\"></div>\n <div class=\"skeleton_body\">\n <div class=\"skeleton_line wide shine\"></div>\n <div class=\"skeleton_line medium shine\"></div>\n </div>\n <div class=\"skeleton_meta\">\n <div class=\"skeleton_line short shine\"></div>\n </div>\n </div>\n }\n </div>\n } @else if (error) {\n <div class=\"contacts-state error\">{{ error }}</div>\n } @else if (selectedContact) {\n <div class=\"contact-details\">\n <div class=\"contact-details-actions\">\n <button type=\"button\" class=\"contact-back\" (click)=\"closeContact()\">\u2190 Back</button>\n <button type=\"button\" class=\"contact-call\" (click)=\"onCallContact(selectedContact)\">Call</button>\n </div>\n <app-contact-details [contact]=\"selectedContact.entity\"></app-contact-details>\n </div>\n } @else if (contacts.length === 0) {\n <div class=\"contacts-state\">No contacts found.</div>\n } @else {\n <div class=\"contacts-list\" (scroll)=\"onListScroll($event)\" #listEl>\n @for (group of groupedContacts; track group.label) {\n <div class=\"history_group_label\">{{ group.label }}</div>\n @for (contact of group.items; track contact.id) {\n <button type=\"button\" class=\"contact-item-btn\" (click)=\"openContact(contact)\">\n <app-contact-card [name]=\"contact.name\" [phone]=\"contact.phone\" (call)=\"onCallContact(contact, $event)\"></app-contact-card>\n </button>\n }\n }\n @if (isLoadingMore) {\n <div class=\"contacts-load-more\">\n <div class=\"contacts-spinner\" aria-hidden=\"true\"></div>\n </div>\n }\n </div>\n }\n</div>\n", styles: [".contacts-panel{padding:0 15px 20px;display:flex;flex-direction:column;gap:12px;overflow:hidden;flex:1 1 auto;min-height:0}:host{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.contacts-search{position:relative;width:100%;box-sizing:border-box}.contacts-search input{padding:0 42px;width:100%;max-width:100%;box-sizing:border-box;outline:none;display:block;border:1px solid #e0e0e0;color:#1f1f1f;font-size:13px;letter-spacing:-.15px;background:#fafafa;font-weight:600;border-radius:12px;height:42px;box-shadow:inset 0 1px 2px #0000000f}.contacts-search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:14px}.contacts-list{display:flex;flex-direction:column;overflow-y:auto;padding-bottom:calc(var(--sd-tabs-height, 60px) + 12px);flex:1 1 auto;min-height:0;max-height:none}.contact-item-btn{width:100%;padding:0;border:none;background:transparent;text-align:left;cursor:pointer}.contact-item-btn:hover .contact-card{background:#f7f7f7}.contact-details{padding:0 0 12px;display:flex;flex-direction:column;gap:12px}.contact-details-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.contact-call{border:none;background:#e8f5e9;color:#1b5e20;padding:8px 14px;border-radius:8px;font-weight:700;cursor:pointer}.contact-call:hover{background:#d9f0db}.contact-back{width:90px;border:1px solid #e0e0e0;background:#fff;color:#333;border-radius:8px;padding:8px;cursor:pointer;font-weight:600}.history_group_label{font-size:12px;font-weight:700;color:#7a7a7a;text-transform:uppercase;letter-spacing:.08em;padding:6px 0;position:sticky;top:0;z-index:2;background:#f7f7f7eb;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.history_skeleton{padding:12px 0;display:flex;flex-direction:column;gap:12px}.skeleton_row{display:flex;align-items:center;gap:12px}.skeleton_avatar{width:42px;height:42px;border-radius:12px;background:#f0f0f0;position:relative;overflow:hidden}.skeleton_body{flex:1;display:flex;flex-direction:column;gap:8px}.skeleton_meta{width:60px}.skeleton_line{height:10px;background:#f0f0f0;border-radius:6px;position:relative;overflow:hidden}.skeleton_line.wide{width:70%}.skeleton_line.medium{width:55%}.skeleton_line.short{width:50px}.shine:after{content:\"\";position:absolute;top:0;left:-150px;height:100%;width:120px;background:linear-gradient(90deg,#fff0,#fff9,#fff0);animation:shimmer 1.2s infinite}:host-context(.dark-mode) .skeleton_avatar,:host-context(.dark-mode) .skeleton_line{background:#1e2430}:host-context(.dark-mode) .shine:after{background:linear-gradient(90deg,#0f111500,#555f6e73,#0f111500)}@keyframes shimmer{0%{transform:translate(0)}to{transform:translate(260px)}}.contacts-state{padding:16px;font-size:13px;color:#6a6a6a;text-align:center}.contacts-state.error{color:#b71c1c;background:#ffe8ea;border-radius:12px}.contacts-load-more{padding:12px 0 18px;display:flex;justify-content:center}.contacts-spinner{width:22px;height:22px;border-radius:50%;border:2px solid #e5e7eb;border-top-color:#1f2937;animation:contacts-spin .8s linear infinite}@keyframes contacts-spin{to{transform:rotate(360deg)}}:host-context(.dark-mode) .history_group_label{color:#c9ced8;background:#151a22eb}:host-context(.dark-mode) .contact-phone,:host-context(.dark-mode) .contacts-state{color:#b6bcc8}:host-context(.dark-mode) .contacts-search input{background:#1c222c;border-color:#2a2f3a;color:#f2f4f8}:host-context(.dark-mode) .contacts-search input::placeholder{color:#aab0bb}:host-context(.dark-mode) .contacts-search-icon{color:#aab0bb}:host-context(.dark-mode) .contact-call{background:#1e2b22;color:#79d48a}:host-context(.dark-mode) .contact-back{background:#141922;border-color:#2a2f3a;color:#f2f4f8}:host-context(.dark-mode) .contact-item-btn:hover .contact-card{background:#1a202b}\n"] }]
2120
+ args: [{ selector: 'app-contacts', standalone: false, template: "<div class=\"avaya-ipo-contacts-panel\">\n @if (!selectedContact) {\n <div class=\"avaya-ipo-contacts-search\">\n <span class=\"avaya-ipo-contacts-search-icon\">\uD83D\uDD0D</span>\n <input\n type=\"text\"\n placeholder=\"Search contacts\"\n [value]=\"searchTerm\"\n (input)=\"onSearchChange($any($event.target).value)\"\n />\n </div>\n }\n @if (isLoading) {\n <div class=\"avaya-ipo-history_skeleton\">\n @for (item of [1,2,3,4]; track item) {\n <div class=\"avaya-ipo-skeleton_row\">\n <div class=\"avaya-ipo-skeleton_avatar avaya-ipo-shine\"></div>\n <div class=\"avaya-ipo-skeleton_body\">\n <div class=\"avaya-ipo-skeleton_line avaya-ipo-wide avaya-ipo-shine\"></div>\n <div class=\"avaya-ipo-skeleton_line avaya-ipo-medium avaya-ipo-shine\"></div>\n </div>\n <div class=\"avaya-ipo-skeleton_meta\">\n <div class=\"avaya-ipo-skeleton_line avaya-ipo-short avaya-ipo-shine\"></div>\n </div>\n </div>\n }\n </div>\n } @else if (error) {\n <div class=\"avaya-ipo-contacts-state avaya-ipo-error\">{{ error }}</div>\n } @else if (selectedContact) {\n <div class=\"avaya-ipo-contact-details\">\n <div class=\"avaya-ipo-contact-details-actions\">\n <button type=\"button\" class=\"avaya-ipo-contact-back\" (click)=\"closeContact()\">\u2190 Back</button>\n <button type=\"button\" class=\"avaya-ipo-contact-call\" (click)=\"onCallContact(selectedContact)\">Call</button>\n </div>\n <app-contact-details [contact]=\"selectedContact.entity\"></app-contact-details>\n </div>\n } @else if (contacts.length === 0) {\n <div class=\"avaya-ipo-contacts-state\">No contacts found.</div>\n } @else {\n <div class=\"avaya-ipo-contacts-list\" (scroll)=\"onListScroll($event)\" #listEl>\n @for (group of groupedContacts; track group.label) {\n <div class=\"avaya-ipo-history_group_label\">{{ group.label }}</div>\n @for (contact of group.items; track contact.id) {\n <button type=\"button\" class=\"avaya-ipo-contact-item-btn\" (click)=\"openContact(contact)\">\n <app-contact-card [name]=\"contact.name\" [phone]=\"contact.phone\" (call)=\"onCallContact(contact, $event)\"></app-contact-card>\n </button>\n }\n }\n @if (isLoadingMore) {\n <div class=\"avaya-ipo-contacts-load-more\">\n <div class=\"avaya-ipo-contacts-spinner\" aria-hidden=\"true\"></div>\n </div>\n }\n </div>\n }\n</div>\n", styles: [".avaya-ipo-contacts-panel{padding:0 15px 20px;display:flex;flex-direction:column;gap:12px;overflow:hidden;flex:1 1 auto;min-height:0}:host{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.avaya-ipo-contacts-search{position:relative;width:100%;box-sizing:border-box}.avaya-ipo-contacts-search input{padding:0 42px;width:100%;max-width:100%;box-sizing:border-box;outline:none;display:block;border:1px solid var(--sd-input-border);color:var(--sd-text);font-size:13px;letter-spacing:-.15px;background:var(--sd-input);font-weight:600;border-radius:var(--sd-radius-sm);height:42px;transition:border-color .15s ease,box-shadow .15s ease}.avaya-ipo-contacts-search input::placeholder{color:var(--sd-text-subtle)}.avaya-ipo-contacts-search input:focus{border-color:var(--sd-accent);box-shadow:var(--sd-focus-ring)}.avaya-ipo-contacts-search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:14px;color:var(--sd-text-subtle)}.avaya-ipo-contacts-list{display:flex;flex-direction:column;overflow-y:auto;padding-bottom:calc(var(--sd-tabs-height, 60px) + 12px);flex:1 1 auto;min-height:0;max-height:none}.avaya-ipo-contact-item-btn{width:100%;padding:0;border:none;background:transparent;text-align:left;cursor:pointer}.avaya-ipo-contact-item-btn:hover .avaya-ipo-contact-card{background:var(--sd-surface-muted)}.avaya-ipo-contact-details{padding:0 0 12px;display:flex;flex-direction:column;gap:12px}.avaya-ipo-contact-details-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.avaya-ipo-contact-call{border:none;background:var(--sd-call-accept);color:var(--sd-accent-contrast);padding:8px 14px;border-radius:var(--sd-radius-sm);font-weight:700;cursor:pointer;transition:filter .15s ease}.avaya-ipo-contact-call:hover{filter:brightness(.94)}.avaya-ipo-contact-call:focus-visible{outline:none;box-shadow:var(--sd-focus-ring)}.avaya-ipo-contact-back{width:90px;border:1px solid var(--sd-border);background:var(--sd-surface-muted);color:var(--sd-text);border-radius:var(--sd-radius-sm);padding:8px;cursor:pointer;font-weight:600;transition:background .15s ease}.avaya-ipo-contact-back:hover{background:var(--sd-surface-sunken)}.avaya-ipo-contact-back:focus-visible{outline:none;box-shadow:var(--sd-focus-ring)}.avaya-ipo-history_group_label{font-size:12px;font-weight:700;color:var(--sd-text-muted);text-transform:uppercase;letter-spacing:.08em;padding:6px 0;position:sticky;top:0;z-index:2;background:var(--sd-surface);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.avaya-ipo-history_skeleton{padding:12px 0;display:flex;flex-direction:column;gap:12px}.avaya-ipo-skeleton_row{display:flex;align-items:center;gap:12px}.avaya-ipo-skeleton_avatar{width:42px;height:42px;border-radius:var(--sd-radius-lg);background:var(--sd-surface-sunken);position:relative;overflow:hidden}.avaya-ipo-skeleton_body{flex:1;display:flex;flex-direction:column;gap:8px}.avaya-ipo-skeleton_meta{width:60px}.avaya-ipo-skeleton_line{height:10px;background:var(--sd-surface-sunken);border-radius:6px;position:relative;overflow:hidden}.avaya-ipo-skeleton_line.avaya-ipo-wide{width:70%}.avaya-ipo-skeleton_line.avaya-ipo-medium{width:55%}.avaya-ipo-skeleton_line.avaya-ipo-short{width:50px}.avaya-ipo-shine:after{content:\"\";position:absolute;top:0;left:-150px;height:100%;width:120px;background:linear-gradient(90deg,#fff0,#fff9,#fff0);animation:shimmer 1.2s infinite}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-skeleton_avatar,:host-context(.avaya-ipo-dark-mode) .avaya-ipo-skeleton_line{background:var(--sd-surface-sunken)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-shine:after{background:linear-gradient(90deg,#0f111500,#555f6e73,#0f111500)}@keyframes shimmer{0%{transform:translate(0)}to{transform:translate(260px)}}.avaya-ipo-contacts-state{padding:16px;font-size:13px;color:var(--sd-text-muted);text-align:center}.avaya-ipo-contacts-state.avaya-ipo-error{color:var(--sd-call-end);background:var(--sd-surface-muted);border-radius:var(--sd-radius)}.avaya-ipo-contacts-load-more{padding:12px 0 18px;display:flex;justify-content:center}.avaya-ipo-contacts-spinner{width:22px;height:22px;border-radius:50%;border:2px solid var(--sd-border);border-top-color:var(--sd-accent);animation:contacts-spin .8s linear infinite}@keyframes contacts-spin{to{transform:rotate(360deg)}}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-history_group_label{color:var(--sd-text-muted);background:var(--sd-surface)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-contact-phone,:host-context(.avaya-ipo-dark-mode) .avaya-ipo-contacts-state{color:var(--sd-text-muted)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-contacts-search input{background:var(--sd-input);border-color:var(--sd-input-border);color:var(--sd-text)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-contacts-search input::placeholder{color:var(--sd-text-subtle)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-contacts-search-icon{color:var(--sd-text-subtle)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-contact-call{background:var(--sd-call-accept);color:var(--sd-accent-contrast)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-contact-back{background:var(--sd-surface-muted);border-color:var(--sd-border);color:var(--sd-text)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-contact-item-btn:hover .avaya-ipo-contact-card{background:var(--sd-surface-muted)}\n"] }]
1996
2121
  }], ctorParameters: () => [{ type: EntitiesSearchService }], propDecorators: { tenantId: [{
1997
2122
  type: Input
1998
2123
  }], listEl: [{
@@ -2012,6 +2137,7 @@ class SettingsComponent {
2012
2137
  logout = new EventEmitter();
2013
2138
  audioInputs = [];
2014
2139
  audioOutputs = [];
2140
+ widgetVersion = APP_CONFIG.WIDGET_VERSION;
2015
2141
  ngOnInit() {
2016
2142
  if (navigator?.mediaDevices) {
2017
2143
  navigator.mediaDevices.addEventListener('devicechange', this.handleDeviceChange);
@@ -2066,11 +2192,11 @@ class SettingsComponent {
2066
2192
  return device.deviceId;
2067
2193
  }
2068
2194
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: SettingsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2069
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: SettingsComponent, isStandalone: false, selector: "app-settings", inputs: { selectedAudioInputId: "selectedAudioInputId", selectedAudioOutputId: "selectedAudioOutputId", extensionId: "extensionId", darkMode: "darkMode" }, outputs: { change: "change", darkModeChange: "darkModeChange", logout: "logout" }, ngImport: i0, template: "<div class=\"settings-wrapper\">\n <div class=\"settings-card\">\n <div class=\"settings-header\">\n <div>\n <div class=\"settings-title\">Account</div>\n <div class=\"settings-subtitle\">Extension ID: {{ extensionId || 'N/A' }}</div>\n </div>\n <button type=\"button\" class=\"logout-chip\" (click)=\"onLogout()\">\n Logout\n </button>\n </div>\n\n <div class=\"settings-section\">\n <div class=\"section-heading\">Audio Devices</div>\n\n <div class=\"device-item\">\n <div class=\"device-icon\">\n <i class=\"fa-solid fa-microphone\"></i>\n </div>\n <div class=\"device-body\">\n <div class=\"device-title\">Microphone</div>\n <div class=\"device-subtitle\">Choose your input device</div>\n <select\n id=\"audioInputSelect\"\n [(ngModel)]=\"selectedAudioInputId\"\n (change)=\"onMicChange(selectedAudioInputId)\"\n >\n @for (mic of audioInputs; track mic.deviceId; let i = $index) {\n <option [value]=\"mic.deviceId\">\n {{ mic.label || ('Microphone ' + (i + 1)) }}\n </option>\n } @empty {\n <option disabled>No microphones found</option>\n }\n </select>\n </div>\n </div>\n\n <div class=\"device-item\">\n <div class=\"device-icon\">\n <i class=\"fa-solid fa-volume-high\"></i>\n </div>\n <div class=\"device-body\">\n <div class=\"device-title\">Speakers</div>\n <div class=\"device-subtitle\">Choose your output device</div>\n <select\n id=\"audioOutputSelect\"\n [(ngModel)]=\"selectedAudioOutputId\"\n (change)=\"onSpeakerChange(selectedAudioOutputId)\"\n >\n @for (spk of audioOutputs; track spk.deviceId; let i = $index) {\n <option [value]=\"spk.deviceId\">\n {{ spk.label || ('Speaker ' + (i + 1)) }}\n </option>\n } @empty {\n <option disabled>No speakers found</option>\n }\n </select>\n </div>\n </div>\n </div>\n\n <div class=\"settings-section\">\n <div class=\"section-heading\">Appearance</div>\n <button type=\"button\" class=\"theme-toggle\" (click)=\"onToggleDarkMode()\">\n <span class=\"theme-label\">Dark Mode</span>\n <span class=\"theme-pill\" [class.is-on]=\"darkMode\">\n <span class=\"theme-knob\"></span>\n </span>\n </button>\n </div>\n </div>\n</div>\n", styles: [":host{display:block;width:100%;box-sizing:border-box;font-family:Open Sans,Helvetica Neue,Arial,sans-serif}.settings-wrapper{width:100%;padding:8px 12px 12px;box-sizing:border-box}.settings-card{background:transparent;border-radius:14px;box-shadow:none;padding:14px 14px 18px;display:flex;flex-direction:column;gap:14px}.settings-header{display:flex;align-items:center;justify-content:space-between;gap:10px;height:60px;padding:4px 0}.settings-title{font-size:18px;font-weight:800;color:#1f1f1f;padding:4px 0}.settings-subtitle{font-size:13px;color:#666}.logout-chip{border:none;background:#f14b4b;color:#fff;padding:8px 12px;border-radius:10px;font-weight:700;cursor:pointer}.settings-section{display:flex;flex-direction:column;gap:12px}.section-heading{font-size:18px;font-weight:700;color:#303030}.device-item{display:flex;gap:12px;padding:12px;border:1px solid #ededed;border-radius:12px;background:transparent;box-shadow:none}.device-icon{width:36px;height:36px;border-radius:10px;background:#f1f1f1;display:flex;align-items:center;justify-content:center;color:#555;font-size:16px}.device-body{flex:1;display:flex;flex-direction:column;gap:6px}.device-title{font-size:14px;font-weight:700;color:#1f1f1f}.device-subtitle{font-size:12px;color:#666}select{width:100%;border:1px solid #ddd;border-radius:8px;padding:10px 8px;font-size:13px;color:#333;background:#fff;outline:none}.theme-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid #ededed;border-radius:12px;background:transparent;cursor:pointer}.theme-label{font-size:14px;font-weight:700;color:#1f1f1f}.theme-pill{width:44px;height:24px;border-radius:999px;background:#e6e6e6;position:relative;transition:background .16s ease}.theme-pill.is-on{background:#1f1f1f}.theme-knob{width:18px;height:18px;border-radius:50%;background:#fff;position:absolute;top:3px;left:3px;transition:transform .16s ease}.theme-pill.is-on .theme-knob{transform:translate(20px)}:host-context(.dark-mode) .settings-title,:host-context(.dark-mode) .device-title,:host-context(.dark-mode) .theme-label,:host-context(.dark-mode) .section-heading{color:#f2f4f8}:host-context(.dark-mode) .settings-subtitle,:host-context(.dark-mode) .device-subtitle{color:#aab0bb}:host-context(.dark-mode) .device-item,:host-context(.dark-mode) .theme-toggle{border-color:#2a2f3a}:host-context(.dark-mode) .device-icon{background:#222833;color:#d6dbe3}:host-context(.dark-mode) select{background:#1c222c;border-color:#2a2f3a;color:#f2f4f8}:host-context(.dark-mode) .theme-pill{background:#2a2f3a}:host-context(.dark-mode) .theme-pill.is-on{background:#f2f4f8}:host-context(.dark-mode) .theme-pill.is-on .theme-knob{background:#0f1115}\n"], dependencies: [{ kind: "directive", type: i1$2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2$1.NativeElementInjectorDirective, selector: "[ngModel], [formControl], [formControlName]" }] });
2195
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: SettingsComponent, isStandalone: false, selector: "app-settings", inputs: { selectedAudioInputId: "selectedAudioInputId", selectedAudioOutputId: "selectedAudioOutputId", extensionId: "extensionId", darkMode: "darkMode" }, outputs: { change: "change", darkModeChange: "darkModeChange", logout: "logout" }, ngImport: i0, template: "<div class=\"avaya-ipo-settings-wrapper\">\n <div class=\"avaya-ipo-settings-card\">\n <div class=\"avaya-ipo-settings-header\">\n <div>\n <div class=\"avaya-ipo-settings-title\">Account</div>\n <div class=\"avaya-ipo-settings-subtitle\">Extension ID: {{ extensionId || 'N/A' }}</div>\n </div>\n <button type=\"button\" class=\"avaya-ipo-logout-chip\" (click)=\"onLogout()\">\n Logout\n </button>\n </div>\n\n <div class=\"avaya-ipo-settings-section\">\n <div class=\"avaya-ipo-section-heading\">Audio Devices</div>\n\n <div class=\"avaya-ipo-device-item\">\n <div class=\"avaya-ipo-device-icon\">\n <i class=\"fa-solid fa-microphone\"></i>\n </div>\n <div class=\"avaya-ipo-device-body\">\n <div class=\"avaya-ipo-device-title\">Microphone</div>\n <div class=\"avaya-ipo-device-subtitle\">Choose your input device</div>\n <select\n id=\"audioInputSelect\"\n [(ngModel)]=\"selectedAudioInputId\"\n (change)=\"onMicChange(selectedAudioInputId)\"\n >\n @for (mic of audioInputs; track mic.deviceId; let i = $index) {\n <option [value]=\"mic.deviceId\">\n {{ mic.label || ('Microphone ' + (i + 1)) }}\n </option>\n } @empty {\n <option disabled>No microphones found</option>\n }\n </select>\n </div>\n </div>\n\n <div class=\"avaya-ipo-device-item\">\n <div class=\"avaya-ipo-device-icon\">\n <i class=\"fa-solid fa-volume-high\"></i>\n </div>\n <div class=\"avaya-ipo-device-body\">\n <div class=\"avaya-ipo-device-title\">Speakers</div>\n <div class=\"avaya-ipo-device-subtitle\">Choose your output device</div>\n <select\n id=\"audioOutputSelect\"\n [(ngModel)]=\"selectedAudioOutputId\"\n (change)=\"onSpeakerChange(selectedAudioOutputId)\"\n >\n @for (spk of audioOutputs; track spk.deviceId; let i = $index) {\n <option [value]=\"spk.deviceId\">\n {{ spk.label || ('Speaker ' + (i + 1)) }}\n </option>\n } @empty {\n <option disabled>No speakers found</option>\n }\n </select>\n </div>\n </div>\n </div>\n\n <div class=\"avaya-ipo-settings-section\">\n <div class=\"avaya-ipo-section-heading\">Appearance</div>\n <button type=\"button\" class=\"avaya-ipo-theme-toggle\" (click)=\"onToggleDarkMode()\">\n <span class=\"avaya-ipo-theme-label\">Dark Mode</span>\n <span class=\"avaya-ipo-theme-pill\" [class.avaya-ipo-is-on]=\"darkMode\">\n <span class=\"avaya-ipo-theme-knob\"></span>\n </span>\n </button>\n </div>\n\n <div class=\"avaya-ipo-settings-section avaya-ipo-about-section\">\n <div class=\"avaya-ipo-section-heading\">About</div>\n <div class=\"avaya-ipo-about-row\">\n <span class=\"avaya-ipo-about-label\">Version</span>\n <span class=\"avaya-ipo-about-value\">v{{ widgetVersion }}</span>\n </div>\n </div>\n </div>\n</div>\n", styles: [":host{display:block;width:100%;box-sizing:border-box;font-family:Open Sans,Helvetica Neue,Arial,sans-serif}.avaya-ipo-settings-wrapper{width:100%;padding:8px 12px 12px;box-sizing:border-box}.avaya-ipo-settings-card{background:transparent;border-radius:var(--sd-radius-lg);box-shadow:none;padding:14px 14px 18px;display:flex;flex-direction:column;gap:14px}.avaya-ipo-settings-header{display:flex;align-items:center;justify-content:space-between;gap:10px;height:60px;padding:4px 0}.avaya-ipo-settings-title{font-size:18px;font-weight:800;color:var(--sd-text);padding:4px 0}.avaya-ipo-settings-subtitle{font-size:13px;color:var(--sd-text-muted)}.avaya-ipo-logout-chip{border:1px solid var(--sd-call-end);background:var(--sd-surface-muted);color:var(--sd-call-end);padding:8px 12px;border-radius:var(--sd-radius);font-weight:600;cursor:pointer;transition:background .16s ease,border-color .16s ease}.avaya-ipo-logout-chip:hover{background:var(--sd-call-end);border-color:var(--sd-call-end);color:var(--sd-accent-contrast)}.avaya-ipo-logout-chip:focus-visible{outline:none;box-shadow:var(--sd-focus-ring)}.avaya-ipo-settings-section{display:flex;flex-direction:column;gap:12px}.avaya-ipo-section-heading{font-size:18px;font-weight:700;color:var(--sd-text)}.avaya-ipo-device-item{display:flex;gap:12px;padding:12px;border:1px solid var(--sd-border);border-radius:var(--sd-radius-lg);background:var(--sd-card);box-shadow:none}.avaya-ipo-device-icon{width:36px;height:36px;border-radius:var(--sd-radius);background:var(--sd-surface-muted);display:flex;align-items:center;justify-content:center;color:var(--sd-text-muted);font-size:16px}.avaya-ipo-device-body{flex:1;display:flex;flex-direction:column;gap:6px}.avaya-ipo-device-title{font-size:14px;font-weight:700;color:var(--sd-text)}.avaya-ipo-device-subtitle{font-size:12px;color:var(--sd-text-muted)}select{width:100%;border:1px solid var(--sd-input-border);border-radius:var(--sd-radius-sm);padding:10px 8px;font-size:13px;color:var(--sd-text);background:var(--sd-input);outline:none;transition:border-color .16s ease,box-shadow .16s ease}select:focus,select:focus-visible{border-color:var(--sd-accent);box-shadow:var(--sd-focus-ring)}.avaya-ipo-theme-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--sd-border);border-radius:var(--sd-radius-lg);background:var(--sd-card);cursor:pointer;transition:background .16s ease,border-color .16s ease}.avaya-ipo-theme-toggle:hover{background:var(--sd-surface-muted)}.avaya-ipo-theme-toggle:focus-visible{outline:none;box-shadow:var(--sd-focus-ring)}.avaya-ipo-theme-label{font-size:14px;font-weight:700;color:var(--sd-text)}.avaya-ipo-theme-pill{width:44px;height:24px;border-radius:var(--sd-radius-pill);background:var(--sd-surface-sunken);position:relative;transition:background .16s ease}.avaya-ipo-theme-pill.avaya-ipo-is-on{background:var(--sd-accent)}.avaya-ipo-theme-knob{width:18px;height:18px;border-radius:50%;background:var(--sd-surface);position:absolute;top:3px;left:3px;transition:transform .16s ease;box-shadow:var(--sd-shadow-sm)}.avaya-ipo-theme-pill.avaya-ipo-is-on .avaya-ipo-theme-knob{transform:translate(20px)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-settings-title,:host-context(.avaya-ipo-dark-mode) .avaya-ipo-device-title,:host-context(.avaya-ipo-dark-mode) .avaya-ipo-theme-label,:host-context(.avaya-ipo-dark-mode) .avaya-ipo-section-heading{color:var(--sd-text)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-settings-subtitle,:host-context(.avaya-ipo-dark-mode) .avaya-ipo-device-subtitle{color:var(--sd-text-muted)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-device-item,:host-context(.avaya-ipo-dark-mode) .avaya-ipo-theme-toggle{border-color:var(--sd-border)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-device-icon{background:var(--sd-avatar);color:var(--sd-text-muted)}:host-context(.avaya-ipo-dark-mode) select{background:var(--sd-input);border-color:var(--sd-input-border);color:var(--sd-text)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-theme-pill{background:var(--sd-surface-sunken)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-theme-pill.avaya-ipo-is-on{background:var(--sd-accent)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-theme-pill.avaya-ipo-is-on .avaya-ipo-theme-knob{background:var(--sd-accent-contrast)}.avaya-ipo-about-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--sd-border);border-radius:var(--sd-radius-lg);background:var(--sd-card)}.avaya-ipo-about-label{font-size:14px;font-weight:700;color:var(--sd-text)}.avaya-ipo-about-value{font-size:13px;font-weight:600;color:var(--sd-text-muted);font-variant-numeric:tabular-nums;letter-spacing:.02em}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-about-row{border-color:var(--sd-border)}\n"], dependencies: [{ kind: "directive", type: i1$2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2$1.NativeElementInjectorDirective, selector: "[ngModel], [formControl], [formControlName]" }] });
2070
2196
  }
2071
2197
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: SettingsComponent, decorators: [{
2072
2198
  type: Component,
2073
- args: [{ selector: 'app-settings', standalone: false, template: "<div class=\"settings-wrapper\">\n <div class=\"settings-card\">\n <div class=\"settings-header\">\n <div>\n <div class=\"settings-title\">Account</div>\n <div class=\"settings-subtitle\">Extension ID: {{ extensionId || 'N/A' }}</div>\n </div>\n <button type=\"button\" class=\"logout-chip\" (click)=\"onLogout()\">\n Logout\n </button>\n </div>\n\n <div class=\"settings-section\">\n <div class=\"section-heading\">Audio Devices</div>\n\n <div class=\"device-item\">\n <div class=\"device-icon\">\n <i class=\"fa-solid fa-microphone\"></i>\n </div>\n <div class=\"device-body\">\n <div class=\"device-title\">Microphone</div>\n <div class=\"device-subtitle\">Choose your input device</div>\n <select\n id=\"audioInputSelect\"\n [(ngModel)]=\"selectedAudioInputId\"\n (change)=\"onMicChange(selectedAudioInputId)\"\n >\n @for (mic of audioInputs; track mic.deviceId; let i = $index) {\n <option [value]=\"mic.deviceId\">\n {{ mic.label || ('Microphone ' + (i + 1)) }}\n </option>\n } @empty {\n <option disabled>No microphones found</option>\n }\n </select>\n </div>\n </div>\n\n <div class=\"device-item\">\n <div class=\"device-icon\">\n <i class=\"fa-solid fa-volume-high\"></i>\n </div>\n <div class=\"device-body\">\n <div class=\"device-title\">Speakers</div>\n <div class=\"device-subtitle\">Choose your output device</div>\n <select\n id=\"audioOutputSelect\"\n [(ngModel)]=\"selectedAudioOutputId\"\n (change)=\"onSpeakerChange(selectedAudioOutputId)\"\n >\n @for (spk of audioOutputs; track spk.deviceId; let i = $index) {\n <option [value]=\"spk.deviceId\">\n {{ spk.label || ('Speaker ' + (i + 1)) }}\n </option>\n } @empty {\n <option disabled>No speakers found</option>\n }\n </select>\n </div>\n </div>\n </div>\n\n <div class=\"settings-section\">\n <div class=\"section-heading\">Appearance</div>\n <button type=\"button\" class=\"theme-toggle\" (click)=\"onToggleDarkMode()\">\n <span class=\"theme-label\">Dark Mode</span>\n <span class=\"theme-pill\" [class.is-on]=\"darkMode\">\n <span class=\"theme-knob\"></span>\n </span>\n </button>\n </div>\n </div>\n</div>\n", styles: [":host{display:block;width:100%;box-sizing:border-box;font-family:Open Sans,Helvetica Neue,Arial,sans-serif}.settings-wrapper{width:100%;padding:8px 12px 12px;box-sizing:border-box}.settings-card{background:transparent;border-radius:14px;box-shadow:none;padding:14px 14px 18px;display:flex;flex-direction:column;gap:14px}.settings-header{display:flex;align-items:center;justify-content:space-between;gap:10px;height:60px;padding:4px 0}.settings-title{font-size:18px;font-weight:800;color:#1f1f1f;padding:4px 0}.settings-subtitle{font-size:13px;color:#666}.logout-chip{border:none;background:#f14b4b;color:#fff;padding:8px 12px;border-radius:10px;font-weight:700;cursor:pointer}.settings-section{display:flex;flex-direction:column;gap:12px}.section-heading{font-size:18px;font-weight:700;color:#303030}.device-item{display:flex;gap:12px;padding:12px;border:1px solid #ededed;border-radius:12px;background:transparent;box-shadow:none}.device-icon{width:36px;height:36px;border-radius:10px;background:#f1f1f1;display:flex;align-items:center;justify-content:center;color:#555;font-size:16px}.device-body{flex:1;display:flex;flex-direction:column;gap:6px}.device-title{font-size:14px;font-weight:700;color:#1f1f1f}.device-subtitle{font-size:12px;color:#666}select{width:100%;border:1px solid #ddd;border-radius:8px;padding:10px 8px;font-size:13px;color:#333;background:#fff;outline:none}.theme-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid #ededed;border-radius:12px;background:transparent;cursor:pointer}.theme-label{font-size:14px;font-weight:700;color:#1f1f1f}.theme-pill{width:44px;height:24px;border-radius:999px;background:#e6e6e6;position:relative;transition:background .16s ease}.theme-pill.is-on{background:#1f1f1f}.theme-knob{width:18px;height:18px;border-radius:50%;background:#fff;position:absolute;top:3px;left:3px;transition:transform .16s ease}.theme-pill.is-on .theme-knob{transform:translate(20px)}:host-context(.dark-mode) .settings-title,:host-context(.dark-mode) .device-title,:host-context(.dark-mode) .theme-label,:host-context(.dark-mode) .section-heading{color:#f2f4f8}:host-context(.dark-mode) .settings-subtitle,:host-context(.dark-mode) .device-subtitle{color:#aab0bb}:host-context(.dark-mode) .device-item,:host-context(.dark-mode) .theme-toggle{border-color:#2a2f3a}:host-context(.dark-mode) .device-icon{background:#222833;color:#d6dbe3}:host-context(.dark-mode) select{background:#1c222c;border-color:#2a2f3a;color:#f2f4f8}:host-context(.dark-mode) .theme-pill{background:#2a2f3a}:host-context(.dark-mode) .theme-pill.is-on{background:#f2f4f8}:host-context(.dark-mode) .theme-pill.is-on .theme-knob{background:#0f1115}\n"] }]
2199
+ args: [{ selector: 'app-settings', standalone: false, template: "<div class=\"avaya-ipo-settings-wrapper\">\n <div class=\"avaya-ipo-settings-card\">\n <div class=\"avaya-ipo-settings-header\">\n <div>\n <div class=\"avaya-ipo-settings-title\">Account</div>\n <div class=\"avaya-ipo-settings-subtitle\">Extension ID: {{ extensionId || 'N/A' }}</div>\n </div>\n <button type=\"button\" class=\"avaya-ipo-logout-chip\" (click)=\"onLogout()\">\n Logout\n </button>\n </div>\n\n <div class=\"avaya-ipo-settings-section\">\n <div class=\"avaya-ipo-section-heading\">Audio Devices</div>\n\n <div class=\"avaya-ipo-device-item\">\n <div class=\"avaya-ipo-device-icon\">\n <i class=\"fa-solid fa-microphone\"></i>\n </div>\n <div class=\"avaya-ipo-device-body\">\n <div class=\"avaya-ipo-device-title\">Microphone</div>\n <div class=\"avaya-ipo-device-subtitle\">Choose your input device</div>\n <select\n id=\"audioInputSelect\"\n [(ngModel)]=\"selectedAudioInputId\"\n (change)=\"onMicChange(selectedAudioInputId)\"\n >\n @for (mic of audioInputs; track mic.deviceId; let i = $index) {\n <option [value]=\"mic.deviceId\">\n {{ mic.label || ('Microphone ' + (i + 1)) }}\n </option>\n } @empty {\n <option disabled>No microphones found</option>\n }\n </select>\n </div>\n </div>\n\n <div class=\"avaya-ipo-device-item\">\n <div class=\"avaya-ipo-device-icon\">\n <i class=\"fa-solid fa-volume-high\"></i>\n </div>\n <div class=\"avaya-ipo-device-body\">\n <div class=\"avaya-ipo-device-title\">Speakers</div>\n <div class=\"avaya-ipo-device-subtitle\">Choose your output device</div>\n <select\n id=\"audioOutputSelect\"\n [(ngModel)]=\"selectedAudioOutputId\"\n (change)=\"onSpeakerChange(selectedAudioOutputId)\"\n >\n @for (spk of audioOutputs; track spk.deviceId; let i = $index) {\n <option [value]=\"spk.deviceId\">\n {{ spk.label || ('Speaker ' + (i + 1)) }}\n </option>\n } @empty {\n <option disabled>No speakers found</option>\n }\n </select>\n </div>\n </div>\n </div>\n\n <div class=\"avaya-ipo-settings-section\">\n <div class=\"avaya-ipo-section-heading\">Appearance</div>\n <button type=\"button\" class=\"avaya-ipo-theme-toggle\" (click)=\"onToggleDarkMode()\">\n <span class=\"avaya-ipo-theme-label\">Dark Mode</span>\n <span class=\"avaya-ipo-theme-pill\" [class.avaya-ipo-is-on]=\"darkMode\">\n <span class=\"avaya-ipo-theme-knob\"></span>\n </span>\n </button>\n </div>\n\n <div class=\"avaya-ipo-settings-section avaya-ipo-about-section\">\n <div class=\"avaya-ipo-section-heading\">About</div>\n <div class=\"avaya-ipo-about-row\">\n <span class=\"avaya-ipo-about-label\">Version</span>\n <span class=\"avaya-ipo-about-value\">v{{ widgetVersion }}</span>\n </div>\n </div>\n </div>\n</div>\n", styles: [":host{display:block;width:100%;box-sizing:border-box;font-family:Open Sans,Helvetica Neue,Arial,sans-serif}.avaya-ipo-settings-wrapper{width:100%;padding:8px 12px 12px;box-sizing:border-box}.avaya-ipo-settings-card{background:transparent;border-radius:var(--sd-radius-lg);box-shadow:none;padding:14px 14px 18px;display:flex;flex-direction:column;gap:14px}.avaya-ipo-settings-header{display:flex;align-items:center;justify-content:space-between;gap:10px;height:60px;padding:4px 0}.avaya-ipo-settings-title{font-size:18px;font-weight:800;color:var(--sd-text);padding:4px 0}.avaya-ipo-settings-subtitle{font-size:13px;color:var(--sd-text-muted)}.avaya-ipo-logout-chip{border:1px solid var(--sd-call-end);background:var(--sd-surface-muted);color:var(--sd-call-end);padding:8px 12px;border-radius:var(--sd-radius);font-weight:600;cursor:pointer;transition:background .16s ease,border-color .16s ease}.avaya-ipo-logout-chip:hover{background:var(--sd-call-end);border-color:var(--sd-call-end);color:var(--sd-accent-contrast)}.avaya-ipo-logout-chip:focus-visible{outline:none;box-shadow:var(--sd-focus-ring)}.avaya-ipo-settings-section{display:flex;flex-direction:column;gap:12px}.avaya-ipo-section-heading{font-size:18px;font-weight:700;color:var(--sd-text)}.avaya-ipo-device-item{display:flex;gap:12px;padding:12px;border:1px solid var(--sd-border);border-radius:var(--sd-radius-lg);background:var(--sd-card);box-shadow:none}.avaya-ipo-device-icon{width:36px;height:36px;border-radius:var(--sd-radius);background:var(--sd-surface-muted);display:flex;align-items:center;justify-content:center;color:var(--sd-text-muted);font-size:16px}.avaya-ipo-device-body{flex:1;display:flex;flex-direction:column;gap:6px}.avaya-ipo-device-title{font-size:14px;font-weight:700;color:var(--sd-text)}.avaya-ipo-device-subtitle{font-size:12px;color:var(--sd-text-muted)}select{width:100%;border:1px solid var(--sd-input-border);border-radius:var(--sd-radius-sm);padding:10px 8px;font-size:13px;color:var(--sd-text);background:var(--sd-input);outline:none;transition:border-color .16s ease,box-shadow .16s ease}select:focus,select:focus-visible{border-color:var(--sd-accent);box-shadow:var(--sd-focus-ring)}.avaya-ipo-theme-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--sd-border);border-radius:var(--sd-radius-lg);background:var(--sd-card);cursor:pointer;transition:background .16s ease,border-color .16s ease}.avaya-ipo-theme-toggle:hover{background:var(--sd-surface-muted)}.avaya-ipo-theme-toggle:focus-visible{outline:none;box-shadow:var(--sd-focus-ring)}.avaya-ipo-theme-label{font-size:14px;font-weight:700;color:var(--sd-text)}.avaya-ipo-theme-pill{width:44px;height:24px;border-radius:var(--sd-radius-pill);background:var(--sd-surface-sunken);position:relative;transition:background .16s ease}.avaya-ipo-theme-pill.avaya-ipo-is-on{background:var(--sd-accent)}.avaya-ipo-theme-knob{width:18px;height:18px;border-radius:50%;background:var(--sd-surface);position:absolute;top:3px;left:3px;transition:transform .16s ease;box-shadow:var(--sd-shadow-sm)}.avaya-ipo-theme-pill.avaya-ipo-is-on .avaya-ipo-theme-knob{transform:translate(20px)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-settings-title,:host-context(.avaya-ipo-dark-mode) .avaya-ipo-device-title,:host-context(.avaya-ipo-dark-mode) .avaya-ipo-theme-label,:host-context(.avaya-ipo-dark-mode) .avaya-ipo-section-heading{color:var(--sd-text)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-settings-subtitle,:host-context(.avaya-ipo-dark-mode) .avaya-ipo-device-subtitle{color:var(--sd-text-muted)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-device-item,:host-context(.avaya-ipo-dark-mode) .avaya-ipo-theme-toggle{border-color:var(--sd-border)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-device-icon{background:var(--sd-avatar);color:var(--sd-text-muted)}:host-context(.avaya-ipo-dark-mode) select{background:var(--sd-input);border-color:var(--sd-input-border);color:var(--sd-text)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-theme-pill{background:var(--sd-surface-sunken)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-theme-pill.avaya-ipo-is-on{background:var(--sd-accent)}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-theme-pill.avaya-ipo-is-on .avaya-ipo-theme-knob{background:var(--sd-accent-contrast)}.avaya-ipo-about-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--sd-border);border-radius:var(--sd-radius-lg);background:var(--sd-card)}.avaya-ipo-about-label{font-size:14px;font-weight:700;color:var(--sd-text)}.avaya-ipo-about-value{font-size:13px;font-weight:600;color:var(--sd-text-muted);font-variant-numeric:tabular-nums;letter-spacing:.02em}:host-context(.avaya-ipo-dark-mode) .avaya-ipo-about-row{border-color:var(--sd-border)}\n"] }]
2074
2200
  }], propDecorators: { selectedAudioInputId: [{
2075
2201
  type: Input
2076
2202
  }], selectedAudioOutputId: [{
@@ -2117,11 +2243,11 @@ class AvayaIpoLoginComponent {
2117
2243
  return true;
2118
2244
  }
2119
2245
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: AvayaIpoLoginComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2120
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: AvayaIpoLoginComponent, isStandalone: false, selector: "app-avaya-ipo-login", inputs: { loginForm: "loginForm", showLoginLoader: "showLoginLoader", hasAvayaSocketError: "hasAvayaSocketError", hasAvayaLoginError: "hasAvayaLoginError", hasAvayaLoginFailedGeneral: "hasAvayaLoginFailedGeneral", hasAvayaLoginConflictError: "hasAvayaLoginConflictError", hasAvayaDeviceError: "hasAvayaDeviceError" }, outputs: { login: "login" }, ngImport: i0, template: "<div class=\"login-background\">\n <div class=\"login-simple\">\n <div class=\"logo\">\n <div class=\"logo-img\"></div>\n <div class=\"logo-text\">IP Office<span>TM</span></div>\n </div>\n\n @if (hasAvayaSocketError || hasAvayaLoginError || hasAvayaLoginFailedGeneral || hasAvayaLoginConflictError || hasAvayaDeviceError) {\n <p class=\"alert error\">\n @if (hasAvayaSocketError) { Connection issue detected. }\n @if (hasAvayaLoginError) { Invalid extension or password. }\n @if (hasAvayaLoginFailedGeneral) { Something went wrong. Please try again. }\n @if (hasAvayaLoginConflictError) { Another user is logged in with this extension. }\n @if (hasAvayaDeviceError) { Device access error. }\n </p>\n }\n\n <form [formGroup]=\"loginForm\" (ngSubmit)=\"onLoginClick()\" class=\"form\" autocomplete=\"off\">\n <mat-form-field appearance=\"outline\" class=\"field\">\n <mat-label>Extension</mat-label>\n <input matInput formControlName=\"ipoExtensionNo\" autocomplete=\"off\" autocapitalize=\"off\" autocorrect=\"off\"\n spellcheck=\"false\" (keypress)=\"restrictNumeric($event)\" />\n <mat-icon matPrefix>call</mat-icon>\n @if (loginForm.controls['ipoExtensionNo'].invalid && loginForm.controls['ipoExtensionNo'].touched) {\n <mat-error>\n @if (loginForm.controls['ipoExtensionNo'].errors?.['required']) {\n <small>Extension is required.</small>\n }\n </mat-error>\n }\n </mat-form-field>\n\n <mat-form-field appearance=\"outline\" class=\"field\">\n <mat-label>Password</mat-label>\n <input matInput formControlName=\"ipoPassword\" autocomplete=\"off\" autocapitalize=\"off\" autocorrect=\"off\"\n spellcheck=\"false\"\n (keypress)=\"restrictNumeric($event)\" [type]=\"showLoginPassword ? 'text' : 'password'\" />\n <mat-icon matPrefix>lock</mat-icon>\n <button mat-icon-button matSuffix type=\"button\"\n (click)=\"showLoginPassword = !showLoginPassword && !hasAvayaSocketError\">\n <mat-icon>{{ showLoginPassword ? 'visibility_off' : 'visibility' }}</mat-icon>\n </button>\n @if (loginForm.controls['ipoPassword'].invalid && loginForm.controls['ipoPassword'].touched) {\n <mat-error>\n @if (loginForm.controls['ipoPassword'].errors?.['required']) {\n <small>Password is required.</small>\n }\n </mat-error>\n }\n </mat-form-field>\n\n <button type=\"submit\" class=\"btn\" [disabled]=\"showLoginLoader\">\n @if (showLoginLoader) { <span class=\"spinner\"></span> } @else { <span>Login</span> }\n </button>\n </form>\n\n</div>\n</div>\n", styles: [":host{display:block;width:100%;max-width:100%;margin:0;font-family:Open Sans,Helvetica Neue,Arial,sans-serif;--avaya-red: #e3000f;--avaya-red-soft: #f35661;--avaya-red-light: #ffe5e8;--text-dark: #2c2c2c;--text-muted: #6b6b6b}.login-simple{width:100%;padding:24px 18px 32px;background:transparent;border-radius:0;box-shadow:none;display:flex;flex-direction:column;gap:16px;box-sizing:border-box}.logo{display:flex;flex-direction:column;align-items:center;gap:6px;margin-bottom:4px}.logo-img{width:140px;height:40px;background:url(data:image/png;base64,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) center/140px no-repeat}.logo-text{font-size:18px;font-weight:700;color:var(--text-dark);letter-spacing:-.2px}.logo-text span{font-size:9px;margin-left:4px}.alert{margin:0;padding:10px 12px;border-radius:8px;font-size:13px;line-height:1.4}.error{background:var(--avaya-red-light);color:#b5000c;border:1px solid #f5b3b8}.form{display:flex;flex-direction:column;gap:12px}.field{width:100%;--mdc-outlined-text-field-outline-color: #e0e0e0;--mdc-outlined-text-field-focus-outline-color: var(--avaya-red);--mdc-outlined-text-field-hover-outline-color: var(--avaya-red);--mdc-outlined-text-field-container-fill-color: transparent;--mdc-outlined-text-field-input-text-color: var(--text-dark);--mdc-outlined-text-field-label-text-color: var(--text-muted);--mdc-outlined-text-field-input-text-placeholder-color: var(--text-muted)}.field .mdc-text-field__input{font-size:14px}.btn{width:100%;height:46px;border:none;border-radius:10px;background:var(--avaya-red);color:#fff;font-weight:700;font-size:15px;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease;box-shadow:0 8px 18px #e3000f4d;display:inline-flex;align-items:center;justify-content:center}.btn:disabled{opacity:.7;cursor:default}.btn:active:not(:disabled){transform:translateY(1px)}.spinner{display:inline-block;width:16px;height:16px;border-radius:50%;border:3px solid #fff;border-top-color:#fff6;animation:spin 1s linear infinite}.footnote{font-size:13px;color:var(--text-muted);text-align:center}.footnote a{color:var(--avaya-red);font-weight:700;text-decoration:none;margin-left:4px}.login-background{background:transparent;padding:0;min-height:100vh;display:flex;align-items:center;justify-content:center}@keyframes spin{to{transform:rotate(360deg)}}\n"], dependencies: [{ kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2$2.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i2$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: i2$1.NativeElementInjectorDirective, selector: "[ngModel], [formControl], [formControlName]" }] });
2246
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: AvayaIpoLoginComponent, isStandalone: false, selector: "app-avaya-ipo-login", inputs: { loginForm: "loginForm", showLoginLoader: "showLoginLoader", hasAvayaSocketError: "hasAvayaSocketError", hasAvayaLoginError: "hasAvayaLoginError", hasAvayaLoginFailedGeneral: "hasAvayaLoginFailedGeneral", hasAvayaLoginConflictError: "hasAvayaLoginConflictError", hasAvayaDeviceError: "hasAvayaDeviceError" }, outputs: { login: "login" }, ngImport: i0, template: "<div class=\"avaya-ipo-login-background\">\n <div class=\"avaya-ipo-login-simple\">\n <div class=\"avaya-ipo-logo\">\n <div class=\"avaya-ipo-logo-img\"></div>\n <div class=\"avaya-ipo-logo-text\">IP Office<span>TM</span></div>\n </div>\n\n @if (hasAvayaSocketError || hasAvayaLoginError || hasAvayaLoginFailedGeneral || hasAvayaLoginConflictError || hasAvayaDeviceError) {\n <p class=\"avaya-ipo-alert avaya-ipo-error\">\n @if (hasAvayaSocketError) { Connection issue detected. }\n @if (hasAvayaLoginError) { Invalid extension or password. }\n @if (hasAvayaLoginFailedGeneral) { Something went wrong. Please try again. }\n @if (hasAvayaLoginConflictError) { Another user is logged in with this extension. }\n @if (hasAvayaDeviceError) { Device access error. }\n </p>\n }\n\n <form [formGroup]=\"loginForm\" (ngSubmit)=\"onLoginClick()\" class=\"avaya-ipo-form\" autocomplete=\"off\">\n <mat-form-field appearance=\"outline\" class=\"avaya-ipo-field\">\n <mat-label>Extension</mat-label>\n <input matInput formControlName=\"ipoExtensionNo\" autocomplete=\"off\" autocapitalize=\"off\" autocorrect=\"off\"\n spellcheck=\"false\" (keypress)=\"restrictNumeric($event)\" />\n <mat-icon matPrefix>call</mat-icon>\n @if (loginForm.controls['ipoExtensionNo'].invalid && loginForm.controls['ipoExtensionNo'].touched) {\n <mat-error>\n @if (loginForm.controls['ipoExtensionNo'].errors?.['required']) {\n <small>Extension is required.</small>\n }\n </mat-error>\n }\n </mat-form-field>\n\n <mat-form-field appearance=\"outline\" class=\"avaya-ipo-field\">\n <mat-label>Password</mat-label>\n <input matInput formControlName=\"ipoPassword\" autocomplete=\"off\" autocapitalize=\"off\" autocorrect=\"off\"\n spellcheck=\"false\"\n (keypress)=\"restrictNumeric($event)\" [type]=\"showLoginPassword ? 'text' : 'password'\" />\n <mat-icon matPrefix>lock</mat-icon>\n <button mat-icon-button matSuffix type=\"button\"\n (click)=\"showLoginPassword = !showLoginPassword && !hasAvayaSocketError\">\n <mat-icon>{{ showLoginPassword ? 'visibility_off' : 'visibility' }}</mat-icon>\n </button>\n @if (loginForm.controls['ipoPassword'].invalid && loginForm.controls['ipoPassword'].touched) {\n <mat-error>\n @if (loginForm.controls['ipoPassword'].errors?.['required']) {\n <small>Password is required.</small>\n }\n </mat-error>\n }\n </mat-form-field>\n\n <button type=\"submit\" class=\"avaya-ipo-btn\" [disabled]=\"showLoginLoader\">\n @if (showLoginLoader) { <span class=\"avaya-ipo-spinner\"></span> } @else { <span>Login</span> }\n </button>\n </form>\n\n</div>\n</div>\n", styles: [":host{display:block;width:100%;max-width:100%;margin:0;font-family:Open Sans,Helvetica Neue,Arial,sans-serif}.avaya-ipo-login-simple{width:100%;padding:24px 18px 32px;background:transparent;border-radius:0;box-shadow:none;display:flex;flex-direction:column;gap:16px;box-sizing:border-box}.avaya-ipo-logo{display:flex;flex-direction:column;align-items:center;gap:6px;margin-bottom:4px}.avaya-ipo-logo-img{width:140px;height:40px;background:url(data:image/png;base64,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) center/140px no-repeat}.avaya-ipo-logo-text{font-size:18px;font-weight:700;color:var(--sd-text);letter-spacing:-.2px}.avaya-ipo-logo-text span{font-size:9px;margin-left:4px}.avaya-ipo-alert{margin:0;padding:10px 12px;border-radius:var(--sd-radius-sm);font-size:13px;line-height:1.4}.avaya-ipo-error{background:var(--sd-accent-soft);color:var(--sd-call-end);border:1px solid var(--sd-call-end)}.avaya-ipo-form{display:flex;flex-direction:column;gap:12px}.avaya-ipo-field{width:100%;--mdc-outlined-text-field-outline-color: var(--sd-input-border);--mdc-outlined-text-field-focus-outline-color: var(--sd-accent);--mdc-outlined-text-field-hover-outline-color: var(--sd-accent);--mdc-outlined-text-field-container-fill-color: var(--sd-input);--mdc-outlined-text-field-input-text-color: var(--sd-text);--mdc-outlined-text-field-label-text-color: var(--sd-text-muted);--mdc-outlined-text-field-input-text-placeholder-color: var(--sd-text-subtle)}.avaya-ipo-field .mdc-text-field__input{font-size:14px}.avaya-ipo-btn{width:100%;height:46px;border:none;border-radius:var(--sd-radius);background:var(--sd-accent);color:var(--sd-accent-contrast);font-weight:600;font-size:15px;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,background .12s ease;box-shadow:var(--sd-shadow-md);display:inline-flex;align-items:center;justify-content:center}.avaya-ipo-btn:hover:not(:disabled){background:var(--sd-accent-strong)}.avaya-ipo-btn:focus-visible{outline:none;box-shadow:var(--sd-focus-ring)}.avaya-ipo-btn:disabled{opacity:.7;cursor:default}.avaya-ipo-btn:active:not(:disabled){transform:translateY(1px)}.avaya-ipo-spinner{display:inline-block;width:16px;height:16px;border-radius:50%;border:3px solid var(--sd-accent-contrast);border-top-color:#fff6;animation:spin 1s linear infinite}.avaya-ipo-footnote{font-size:13px;color:var(--sd-text-muted);text-align:center}.avaya-ipo-footnote a{color:var(--sd-accent);font-weight:600;text-decoration:none;margin-left:4px}.avaya-ipo-login-background{background:transparent;padding:0;min-height:100%;display:flex;align-items:center;justify-content:center}:host-context(.avaya-ipo-mode-standalone) .avaya-ipo-login-background{min-height:100dvh}@keyframes spin{to{transform:rotate(360deg)}}\n"], dependencies: [{ kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2$2.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i2$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: i2$1.NativeElementInjectorDirective, selector: "[ngModel], [formControl], [formControlName]" }] });
2121
2247
  }
2122
2248
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: AvayaIpoLoginComponent, decorators: [{
2123
2249
  type: Component,
2124
- args: [{ selector: 'app-avaya-ipo-login', standalone: false, template: "<div class=\"login-background\">\n <div class=\"login-simple\">\n <div class=\"logo\">\n <div class=\"logo-img\"></div>\n <div class=\"logo-text\">IP Office<span>TM</span></div>\n </div>\n\n @if (hasAvayaSocketError || hasAvayaLoginError || hasAvayaLoginFailedGeneral || hasAvayaLoginConflictError || hasAvayaDeviceError) {\n <p class=\"alert error\">\n @if (hasAvayaSocketError) { Connection issue detected. }\n @if (hasAvayaLoginError) { Invalid extension or password. }\n @if (hasAvayaLoginFailedGeneral) { Something went wrong. Please try again. }\n @if (hasAvayaLoginConflictError) { Another user is logged in with this extension. }\n @if (hasAvayaDeviceError) { Device access error. }\n </p>\n }\n\n <form [formGroup]=\"loginForm\" (ngSubmit)=\"onLoginClick()\" class=\"form\" autocomplete=\"off\">\n <mat-form-field appearance=\"outline\" class=\"field\">\n <mat-label>Extension</mat-label>\n <input matInput formControlName=\"ipoExtensionNo\" autocomplete=\"off\" autocapitalize=\"off\" autocorrect=\"off\"\n spellcheck=\"false\" (keypress)=\"restrictNumeric($event)\" />\n <mat-icon matPrefix>call</mat-icon>\n @if (loginForm.controls['ipoExtensionNo'].invalid && loginForm.controls['ipoExtensionNo'].touched) {\n <mat-error>\n @if (loginForm.controls['ipoExtensionNo'].errors?.['required']) {\n <small>Extension is required.</small>\n }\n </mat-error>\n }\n </mat-form-field>\n\n <mat-form-field appearance=\"outline\" class=\"field\">\n <mat-label>Password</mat-label>\n <input matInput formControlName=\"ipoPassword\" autocomplete=\"off\" autocapitalize=\"off\" autocorrect=\"off\"\n spellcheck=\"false\"\n (keypress)=\"restrictNumeric($event)\" [type]=\"showLoginPassword ? 'text' : 'password'\" />\n <mat-icon matPrefix>lock</mat-icon>\n <button mat-icon-button matSuffix type=\"button\"\n (click)=\"showLoginPassword = !showLoginPassword && !hasAvayaSocketError\">\n <mat-icon>{{ showLoginPassword ? 'visibility_off' : 'visibility' }}</mat-icon>\n </button>\n @if (loginForm.controls['ipoPassword'].invalid && loginForm.controls['ipoPassword'].touched) {\n <mat-error>\n @if (loginForm.controls['ipoPassword'].errors?.['required']) {\n <small>Password is required.</small>\n }\n </mat-error>\n }\n </mat-form-field>\n\n <button type=\"submit\" class=\"btn\" [disabled]=\"showLoginLoader\">\n @if (showLoginLoader) { <span class=\"spinner\"></span> } @else { <span>Login</span> }\n </button>\n </form>\n\n</div>\n</div>\n", styles: [":host{display:block;width:100%;max-width:100%;margin:0;font-family:Open Sans,Helvetica Neue,Arial,sans-serif;--avaya-red: #e3000f;--avaya-red-soft: #f35661;--avaya-red-light: #ffe5e8;--text-dark: #2c2c2c;--text-muted: #6b6b6b}.login-simple{width:100%;padding:24px 18px 32px;background:transparent;border-radius:0;box-shadow:none;display:flex;flex-direction:column;gap:16px;box-sizing:border-box}.logo{display:flex;flex-direction:column;align-items:center;gap:6px;margin-bottom:4px}.logo-img{width:140px;height:40px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAB4AAAAIlCAYAAAA0S+U8AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAAB3RJTUUH6AcJEjIdaD/vYwAAgABJREFUeNrs/XuYXWVh8P1/10wmGQgJGJCgBZFEKgglkNkzyRt81DxStEWIgG+EIhgwHCVySEIC2N97XX1ETgEBAyLKQcRiUyuHorbWx6hgmszsGQyKKBhoPVREoZxJMpm9fn+s3RaVzL7X3nPY99rfzz+9Lqsw811r1rrX6b5BkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkgosMYFUvzL8FXBQEX+3CtzbA+vcyoXYT2cDCy3h/i9pTI+9hwP/2xLhhuCWOfCoJaLazzsS+P9SmFDE328zXPJ2eMEt3Vr64bQUZliiMQl8pwv+yRKS/uAY25XC/2uJxqTwQjdcYgn3/ybaJx/thlvcylJzmWACqT7rYBpwIzCliL9fe3bTusctHb9t8LMJcDqwizXCtMF8YI4lJNV58dvWD9cC+1kj2K92gv+fGaLb148HLi7q79cJvwWucku33H49CVhhiYY7HoEPgCX9scuAw8zQmDa4wgpRnhuvoKAvCScwWIZvleDnbmmpqc4XkuoxCZZQ0Ie/1UFJ9wC82y0dv7nwPPBZS+TS0wvzzCCpHgOwAB/+5h13XHUAbLVEVNssSWB5wX/NZWuh063dWjbDbWTjZzXmwH6YawZJrxojz0q9zzQip6oUrjFDXHqhm2LPENUBnOOWlpqLD4ClOmyEySmcXfTfcwgudGsXwzb4FPCKJXKdIJdZQVKdPH7k88yO8DkzxKU/e9HhwIL/mntMhRPd2q3l7fBCCl+0RONSWGwFSf+lAhfhcoQjcWy9uQS/tkRc2lrjHuvpZdjNrS011bFHUl5b4TRa4ISWwLt9a7sY5sJvgC9YIpcFZb/gk5RTH/SkziCQSwqfPgBetER048TlLbJ/rlgD7W7x1tIG12ebXw06bj1MNYOkvmxt9WMs0bDBCbDKDHGp3lta0AK/6mTgLLe41FTXNZJynrQ7Eji3VX7fSovc3GsFQ9laI9sskesc6fQ1knJJYKUVcnkpgdVmiG48PL+FXnSYOROOdau3li54JIVvW6JhkzvgODNIqr44NsESjUnhjkPg3ywRnZW0znOYcx6GndzkUnPwAbCUf7B1IvCmFhqkH90LB7jl4zcHngDWWCKXRethuhkkhah+2XCUJXKNM24qwe8sEZ2WWiYkhYtSp6xsxeOTL6eMDKeBllrcRtgd+LAlGlYBLjdDXHphL+D4FvqVp2323C81DR8ASzmk0JbA0hb7tRPXQi3UQf+S6kWDwnS2w5lmkBR0wsy+bHCq2HCDKVxjhrj0wsHAYS32a88agPe49VvL4/CPZC9QqrFr6O7qcUNSi9oGHwN2sETDvtINPzVDXNqya8SJLXbuX/pwi/3OUhMfgySFKmfrlbytBX/1EwZgb/eA+M2GHwNft0S4BJZszNYxkaTt2gC7ks0SonC3l+DnZohLO3ycFvwattJiXz0LFsIQcJMlRuS48RErSK1pI0xO4QxLjAi//o3zGvGUFvzV93wZPuQeII0/HwBL+axo0d+7owLnu/kL4xMmyGXaIJxkBkk1BtVL8GWRPCrVtekVkT54awpHt+LvnsA7+uBQ94KW83lgsxkak8KJZdjRElLrGYTTyR6CqTH3lWDADHGZAOe16jViAhetcXYsadz5AFgKVIbDEyi1cILFA/B694T4lWBDCt+zRC7LHLhK2p610Jn4ZUNe/zAHHjVDdFa08jVkAivdBVpu3Pw74MuWaNjOSTablqQWUoYO4BxLNC6Fy6wQlwdgSgpntXCCmfu06IujUjPxAbAUrtWnfduxkq3bomIc/C+1Qi4zZsICM0h6LVPgZGC6JcIlTmEXnfWwZwIntHiGI/rgEPeG1pLCdVZoXAVOtYLUcuO9E4A3WaJh3+6G75shLpPgTOB1LX4MuDhtwaVjpGbiA2ApQB/0AO+yBEvKsLMZ4tcF/4TTB+WStu4U8JKGPza04QtSef1zF/SbIS7tsBSY2OIZkiTroBbSDQ+m8K+WaPCPB97RD/tbQmqZMXKSwjJLNK4NPmmFuDwGkxK/fgc4uB/+3AzSuJ5DJAVcrF5kBSCbuus0MxRmv3btxXx6emGeGSS92kA2O8B+lgjnFHbxWQfTElhsCQCO64e3mKG1tMH1VmhcJZsxQ1ILKMORwAGWaFjvbPi/ZojLs7AIeKMlAJdQkcb7OkbScKpvKR9piUwK56+FTkvEbxN8BXjMErlOmr7BLOkPeVzIp7cbvmOGuEzMvmDYyRIAtKdwvhlaSyf8PfCkJRqTwMmPwSRLSC3x936BFUak4yesEJc10O6MMb9nvh9TSOPHB8BSbRf6t/J79pgKJ5khfgthKIErLZHLgrJf+kmq6oOe1IvZXFK4xApx2QiTgbMs8XtOKcMbzNA6DoCtwOcs0bDdnoX3mUEqtjLMAQ61RMN+PBu+Zoa47AMLgX0t8T/afCFEGs+/P0nb0wt7pXCcJX5fCivWwgRLxG8q3A78yhK5zpuu4yIJgMTprPJ6pAT3mSEug3AGsJslfs8kxwMtOQi8MfuTUIOcTl4quBQutsKIdPw/CVQsEd014nIr/JGj+uBAM0jjcg0jaZiT9gqgwxJ/ZMZO8AEzxG9f2AJ8yhK5LFoP080gtbY+mAEcZYlc46pPehMrLtWpWs+zxGs680HYxQytYzb8B3C3JRo+Fxw+AHtbQiqmMuyXwBGWaNimF7NluxTX/n8EcIgl/vj071fA0vjwAbC0HRth9wROscR2L9wvTCGxRPw6sq8ZfmeJYJ3tcKYZpJY/Dy4H2i0R7Ocp/J0Z4vJ8tuzHn1jiNU2tODV2y2mD1VZoPGPF62ypyFbi/eaGpfDJ+bDNElHu/3rtffr4B+HNlpDG/PpF0msZhHOBHSyxXQeV4S/MEL9Z8BJwgyXCJbCkuiaipBa0AXYFTrRELpeXnDo1KmugPXUKu2GlcE4ZdrRE65gN3wMeskTDTlnjS1RS4ayHPYHjLdGwX+wId5ghLv3wv4C3W2K7JmyDZWaQxpYPgKXXHrROxS/8akrgr61QDFvhWuBFSwSbNph9FSWpNQfQS/AlkDye2gq3miEuM7PlPva1xLB2T/2SsRWvga63QsP23AfeYwapWCZky0ZMtETDrjwAtpohOheaoOYY6iNleIMlpLHjA2DptQetZ+GaXiHmln27rRDmwTMpfN4SuSzzywWp9ayFzgTOsEQu18yDV8wQl9R1uoIkcEEZOizRUn8bdwDPWKLhv53FVpCK4yF4HXCqJRr2FHCzGeLSDwel8F5L1NSZwtlmkMaOD4ClP/AYTAI+Zolgrm9REENwFb5lmseMmbDADFJrmQInA9MtEez5dviMGeLSn93Amm2JIHulcJwZWkcJXgZus0TDjhyAN5pBKoYt2YcUUyzRsKur5xnF5UIgMUNtCZz9oB9dSWPGB8DSH3gum8bN6SjCHdEHh5ghfnPhlyl8yRLhUlhhBaml/ubb8CWxvG44BJ41Q1wqTmGXSwIXpl5bt9yxLftTUQMmVFxSRSqE6gw5ftXXuOeAG80Qlz6YkWZLpyjM1CE43QzS2PAiVXqV6nSu51sinwSWW6EwLsebWXn09MI8M0itYSD76n8/SwTbDFxnhriUYU4C77BELvuX4UgztI4SbAK+YYmGnZr6xZQUveoMOXtYomHXlrKHwIrLCmCCGXI5bx3sYAZp9PkAWHqVmdn0bW+xRG4LH4R9zRC/bvhpAndZIteJdJkVpJbh33s+t5Tg12aIzsdNkF8CF1mhtaRwvRUaNqMf3mUGKV5+SDFiXmqD1WaISy/skTibRT2mT4RFZpBGnw+Apf+5gE+czrVu7RVYaoZiGIJPZH8SCrSg7BeBUuH1QU/qF/85TydcbYa4DMDbgL+0RF16yjDfDK2jBP8EPGqJhi02gRSvmdnUt35I0bgbZ8NvzRCXtuxeaKcl6rJ8rV9OS2NxnJIEMADvA/7MEvVJYdEAvNES8euBHwDfskSuc+k5ZpCKLYGVVsg1LrizOkWqIlKBi71GbIhrJ7fWeSFNXatxJBxbht3MIEU75nNJsMZtafPFyeiUYWfgVEvUbZ+p8EEzSKPLi3vpfwatfv3bmElDcK4ZCuNSE+SyaD1MN4NUTH0wAzjKEnmGVVxuhrhsgH2AhZZoyJ8PQMkMrWMC3Aq8ZInGriOBE8wgRTlGPgzoskTDbpkN/2GG6HyM7CGw6r9ovDj1+ZQ0qvwDk4BeeCdwqCUak8AZD8HrLBG/EqxNYJ0lgnW2w5lmkAp7fltOtr6Zwnr9Yzf8yBJxaYcLcBq2hqXOFtBSDoFnE7jDEg1zGmgpQm1+SDEStg3BlWaISxl2BJZYomH7D8ARZpBG9Vwtqc3p2kbKlK3wUTMUQ+pFSC4JLNkIky0hFcsG2BU40RLhhvz6NzrVWSw+bIkRGT8dXV1LWa0zBrwu2/RqwIH9MNcMUjwGYFYK77ZEw/52DjxhhuicCrzeDCMydr7YCtLo8QGwHLTCLOBwS4yYc30IVgxdcA9+wZXHtEE4yQxS4QbLS/C8FiyB7/Y4g0R0JsB5wA6WGJnDRgpLzdA6ZsOPge9aojGpXwFLUanARdnQT41krMAVZohLGTrIxs4aGXMG4B1mkEbp4tQEctDqoHWE7ToIp5ghfgmkfgWc27I1ThMrFcZa6EzgDEvk4hrykVkPU4HTLTFyUjixDG+yREtt8+ut0LDjqscjSU2uD2YAx1iiYV/tgYfNEJckW7d+b0uMnCFn5pRGjQ+A1dLKMBM41hIjbvnDMNEMhRjY3gn8myWCzZgJC8wgFcMUOJlsalyF2TgbvmmGuHTA2cAulhjZrKlfhrSUF+Fu4JeWaMjkDjjODFIU9wmWAxMs0XDHy6wQlxSSFJZZYsT/Ft7bD12WkEaeD4DV6lbi13qjYa9X4HgzxK8EgylcZYlcFwQrrCAV4m+5DfiYJXK5JHEdzKishc40m+ZcIyyB0wZcG65lzIdtwGct0TCngZaa3EbYHfiwJRoeJ3yjC/otEZcBOBo4wBKjcv19gRWkkecDYLWsXtgD+JAlRs3K1GNMIbwInweetESwnl6YZwYp+ov7BcB+lgi26XH4qhnislP2sGUPS4yKHSvZ19VqEW3ZA+DNlqhfCt29cLAlpOa1LXtBcgdLNHy8+6QVotxuy60wao7dAH9qBmnEr1Gklt35lwOdlhg1+w04FW4hzIfNCXzaErmOL04JJMXPv+McUrh0IQxZIh5l6EhgqSVG1dkPwBQztIbZ8NsE/t4SjWmHj1hBak4bYXIKZ1iiMQl8twQPWCIufXAYMNcSozcEaPcBuzTifACslrQOpgGnWmLUXWiCYhiE1cCzlgi2oOyXg1LMF/c9qV/y5/GrHeGLZohLmi3X8WZLjKppnXCaGVrq7+p6KzTc8MQy7GgJqSnvC5wO7GqJho9zfv0bocR7nGPhw2V4kxmkkeMDYLWkSdlaZ76NP/qD2u4BeLcl4jcXnsd1zfKeX88xgxTtxf1KK+Q63191AGy1RFTbLEl8w36sLFvrrEMtowQbEuizREN2TuAYM0jNpQwdXuOOiAe74F/MEJde6Ab+tyVGnccZaYT5AFgtpzpljetxjZEh35ArjG3wKeAVSwRbtB6mm0GKSx/MAI6yRLBndoTPmSEu/dkyHQdaYkzsMRVONEPr8CvgxlWcrUtqOgmcgF/mjYS/SSA1Q1zavLc5lk4vw25mkEbs+CW1lq3ZNGyeSMbuIuHd/a6RUQhz4TfAFywRrLMdzjSDFN15aznQbokwKXz6AHjRElHu5xq7v5MVazyutIyd4cvAU5Zo6Bj1jn7Y3xJS05zHkhSWWaJhj3TBvWaIS3V5rwWWGDOTgbPMII0MHwCr1U7aHQmca4mxVfEmY2EMwRXANkuESWDJxmzwKikCG7I1zfxSL9xLSbZGvOIaD893jesxN3MmHGuG1rAvbAFutkTD15AnW0FqmrHDkcABlmjYJxKomCE6K/EZylg752HYyQxS4zx4qaWk2U1dp6wZYwkc3evFQiHMgSeANZYINm0QTjKDFM3AeAm+tJHn/H5TCX5nieg4hd34XIdclEJiidZQgc/gS5ONnmNOfgwmWUJqir/HC6zQsMdf8F5KdHphL+B4S4y5aZthsRmkxvkAWC0jhbYEllpifK4X2pwuqEgnjkvwrdU8ljnto9T81kJnAmdYIthgCteYIS69cDBwmCXGxawBeI8ZWkMP/CJ1ms9G7fYsvM8M0vgqwxzgUEs0JoHL5vtiUHTashkNJ1pi7KWw9GHbSyNxHJNaZtB6DPA2S4ybEwZgbzPEbzb8GPi6JYLNmOl6MVLTm5JNNTndEsFuL8HPzRCXdvg4foU6bip+fd1S2uB6KzTMr3+kcZbCxVZo2C+nwu1miEt1eaBTLDFu9nwZPmQGqeFrEqllrDDBuOqowPlmKIxPmCDXRbPHH6m5/0bbgI9ZIliluia8ItIHb03haEuMnwTe0edXVC2jC74N/NASDf3NHO5LxNL4KcN+CRxhiYatqq4Pr4hMgPNweaDxHgdc5Ix6UmN8AKxWGbQenkDJEuNu8QC83gzxK8GGFL5niWA9vTDPDFJzGsi+0t/PEsH+YQ48aoborPD6b/wlsNIKLeVGEzSkreLXV9J4WunYoWFP7wA3myEuD8CUFM6yxLibuY8vsEqNDaZNoBbhdGvNYceKX1gV6QRyqRVy9XIdbKl5+feZQwKXWyEu62HPBE6wRFM4og8OMUNr2CGb8vM5SzTkFL/+kcZn7AAcb4mGx81XHwAvWiIuk+BM4HWWaIq/oYtTl7CR6uYDYBVeH/QA77JE01hShp3NEL8u+CdgwBLBFvTD/maQmm+ckPqFfh7/3AX9ZohLOywFJlqiKSRJtj3UAqo3/W+zREP23AfeYwZpbFWnv3Xs0Jjn2+AGM8TlMZiUwDmWaBoH98Ofm0Gqjw+AVXgJXGSFprJzAqeZoTB/X64BmeOcm/oFvNSMxzGnY80hhcusEJd1MC2BxZZoKsf1w1vM0DLnmdVAxRINNfQYJo2hh7IvH0+1RMPHrk8fAs9aIi7PwiLgjZZoKl6zS3XyAbAKrfq13ZGWaC4pnL8WOi0Rv03wFeAxSwRbtB6mm0FqDn0wAzjKEsF6u+E7ZojLxOwLhp0s0VTaUzjfDK2hC34G/IslGnLkgDfjpTGzJVv7dIolGvJyAteaIS5roN2ZWprS/F5n7ZLq4gNgFd2F7udNaY+pcJIZ4rcQhhK40hLBOtuztWQkNYEEluO6gsFSuMQKcdkIk8lu4qr5nFKGN5ihZc4311uhIRMqXj9KY2ItdCZwtiUaPu5/djb81hJx2QcWAvtaovm0wQVWkOr625GKqRf2SuE4SzSnFFashQmWiN9UuB34lSWCLwSXVG/ISxpHG2BX4ERLBHukBPeZIS6DcAawmyWa0iRcX65lzIavAY9boiGnppCYQRpdU+BkYA9LNDYES+EaM8Sn+oKwmtNRfXCgGaR8fACsIp+0VwAdlmhaM3aCD5ghfvvCFuBTlgg2bdAvGKRmGAQvwZcx8oyrPpm4hmVUHsseMJ5niaZ25oOwixla4hhaAT5jicauH/vhXWaQRs+abGYclyhoUAq3luDnlohLGY4ADrFE8w6n/ApYys8HwCqkjbB7AqdYosnP3HChb3EXQwfcCPzOEsGWrXHaWWncVKe2O8MSwX6ewt+ZIS7PZy8b/YklmtrUilN0t4x2+DzwkiUastgE0uiZmb2k/xZLNGRoAqwyQ5RWmqC5pXD8g/BmS0jhfACsQhqEc4EdLNH0DirDX5ghfrOym1k3WCLYjJmwwAzS+KhObTfdEsEuL8GgGeKxBtpTp7CLQgrnlGFHSxTfIfAscKclGnJs2WntpdE8Jzl2aLzhnYfAY5aISz/8L+Dtlmh6E7bBMjNI4XwArMJZD1OBMy0RhwT+2grFsBWuBV60RPCF4QorSOPyt9cGfMwSwZ7aCreaIS7VL3j2tUQUdk+duahltMFqKzRkEnCCGaSR1weHAV2WaPRSg8vNEOWG8+vfSCTwkV7XKZfyXH9IxTIhm0ZtF0tEY27Zt+wKYR48A9xsiWA9vTDPDNLYGsi+vt/PEsGumQevmCEufsETlwQuKEOHJYpvNmwEHrBEQ5wGWhoFbb6gPBLu7oYfmSEu/XAQzk4Yk84ElphBCj6/S8XxWPZGsF/1xMc37QpiW7bWzVZLBJ+EnbpGGnv+3YV7vh0+Y4a49MN78Que2OyVwnFmaA0pXG+FhhzYD3PNII2cAZiVwrst0ZgKXGqFKF0IJGaIRwJnP+jHX1IQHwCrUJ7Lpk97gyWic0QfHGKG+M2FX6bwJUsEW9AP+5tBGht90JP65X0eN1TXrFREKtlNLEUmgQtTr89bZVv/A/ArS9Qv9StgaaTHDhfhA7BG/XMP9JkhuuvDGWm2dIriMnUITjeDVJsXmCqMNdAOnG+JOCVOVVgkl2fXkAo5D6fOWiCN5bnGGSfCbQauM0NcyjAngXdYIkr7l+FIMxRfCQYT+JwlGnLcephqBqlxfTADOMYSDV7YwyetEKUVwAQzROm8dbCDGaSa5yepGGZm06a9xRLRWvgg7GuG+HXDTxO4yxLBFq2H6WaQRlf15tZRlgh2Swl+bYbofNwE8UqyL7DUAobgs7hsSiMmd8AHzSCNyLlnOT4Aa0gK/zobvmeJuPTCHgmcZIloTZ8Ii8wgDc8HwCrKYCtJs7e2FK/2Ciw1QzEMwSeyP00F6GyHM80gja7qza12S4QexrnaDHEZgLcBf2mJqPWUYb4ZWmBDw5NkU0GrfqeaQGrMRtgd+LAlGtMGf2OFKLfbUqDTElFbvtYXWKRaxzopfgPwPuDPLBG3FBYNwBstEb8e+AHwLUuESWDJRphsCWl0bIBdgRMtEXw+vrMEmywRlwpc7PVdIbiGc+sca6+3QkP9unvhYEtI9duWLUfkFKqN+cFs+GczxKUMO+OLREWwz1RnBJGG5Q0CFeXiz69/i2HSEJxrhsK41ATBpg069ZA0mgPeJfiSRY5hFZebIS4bYB9goSUK4c8HoGSG4uuG7wP9lqhfO3zEClJ9NsLkFM6wRMMD508kzn4Wo4+RPQRW/H+DF6c+45K2yz8ORa8X3gkcaoliSOCMh+B1lohfCdam8K+WCLZsjdPTSiNuLXQm3tzKcx7+x274kSXi0u76fYVS8eXWlpHCDVZoqN+JZdjRElJ+g3A62Sw5qt9PSnCXGeJSPW8ssURh7D8AR5hBem0+AFYRdmKnSSuWKVvho2YohgSusEKwGTNhgRmkET6pwMnAdEuEqXjcjs76bP9eZIlCOaa6prMKbhDuBJ62RN12TuAYM0j5lKEDOMcSjUnhkwlULBGdxcDrzVCov8WLrSC9Nh8AK2oDMAs43BKFc67roRZDF9yDX5LlGbT6xY80sn9TbWTTeylAAt+tTkmqiEyA83D9vsJdp6ew1AzFNw9eSeBmSzRksQmk3GO+E4A3WaIhT7yYvcSjiFRffjjfEoUzZwDeYQbpNS4sTaCYVeCibOyqgtl1EE4xQyEuLNMUrrREsJ5emGcGaWQMZF/V72eJYK7dHpn1MJVsCkcVTHVqW2/Ot8Z4+QZgyBJ1/628sx/2t4QU/DeTpLDMEg13vHw+bLNEdOfcE4C9LVE8Q84QKr0mHwArWmWYCRxricJa/jBMNEMhBth3Av9mieATsxfj0sjx7yncxtnwTTPEpQPOBnaxRDE3b5p93a2Cmw3/nsDXLFG/Srbcg6QAZTgSOMASDXnyRfiCGeLiyw/FlsB7+6HLEtLv8wGwYrYSaDdDYe31ChxvhviVYDCFqywRbIFfMUiN64Oe1C/q87gkgdQM8VgLnSkssURxJXDagGvUtYQKrLZCQ38rJz8GkywhBf29XGCFhl05HzabIS4DcDS+/FBoqcc36Y/4AFhR6oU9gA9ZovBWph6nCuFF+DzwpCXCzs2pa5ZKDUuyF8UUZtPj8FUzxGWnbN3LPSxRaDtWsq+8VXAl+BbwE0vUbbdn4X1mkIZXhjnAoZZoyNM7wE1miE8Ky61QeMdugD81g/Q/fLCiWHfc5UCnJQpvv+r6jYrcfNicwKctEWzRephuBqk+fTADOMoSYVK4dKHrT0alDB0JLLVESzj7AZhihmKrzsBwgyUastgEUs0x38VWaNg1B8CLZoju+vAwYK4lCq+93Qf90u/xAbCisw6mAadaomVcaIJiGMymtnvWEkE62+FMM0j1SbKLPpeJCPOrHeGLZohLmi2T8WZLtIRpnXCaGYpvM9wGPG+Jus/9hw/A3paQXlsZ9kvgCEs05PmJcL0ZojxHeG+xdXy4DG8yg5TxAbCiMylb68y34FtECt0D8G5LxG9udkPrs5YIvkBZshEmW0LKZwPsCpxoiWBXHwBbzRDV2ChJfLO91Sxb6+xHhfd2eCH1hZxGtA3ByWaQtmsl3gdu1A0HwX+aIS690A38b0u0jA5cVk36nwGyCRSTjTA5dR2sljPkm3qFsQ0+BbxiiSDTBuEkM0i5B7dL8OWJUM9shs+ZIS7lbHrzAy3RUvaYAh8yQ0ucw64nmw5adUjgI2ucAUT6I+thT7LZQ1S/zcB1Zojy3Oo9xdZzRhl2M4PkA2BFZms2/ZkH8Na7kH93v2t1FMJc+A3wBUsEW+ZNLCncWuhM4AxLhEnh02+HFywR3QXcBVZoSSsdExRfFzySwrctUbc994H3mEH6fRPgPGCiJRpyUwl+bYa4lGE/YIElWs5k4CwzSD4AVlwn7Y4EzrVEa6o41WFhDMEVwDZLBJkx04sVKdiUbOrH6ZYI8lKSrc2uuMbD81OYZ4mWNHMmHGuG4vPY3HC/xVaQ/sdD8DrgVEs0ZLANrjZDlJz6vHWd8zDsZAa1Og+AikaarefnIu6teyF/dC8cYIn4zYEngDWWCD72rbCCFPS30oZr/eQ5r95Ugt9ZIjpOYdfax7mLUkgsUWyPwz+SjZdVnyMH4I1mkDJbsq/gpliiIbfPhn83Q1x6YS+c+ryVTdvsS2GSD4AVhxTaElhqiZaWtMEyMxTm5HMJULFEkJ5ev/aSahrIvpbfzxJBBlO4xgxx6YWDgcMs0dJmDTi9beEthCHgJkvUbUIFTjKD9N/Lo5xtiYYMVWcxU2TaspkEnfq8haWw9GH3AXkslJpfGY4B3maJlnfCAOxthvjNhh8DX7dE8Mnalx+k2vw7CXd7CX5uhri0w8fx68+WV/Er8FbxeWCzGep2ql/LS/+9PMoelmjImjnwqBnisgF2BU6xRMvb82X4kBnUynwArFg4BaoAOipwvhkK4xMmCLagH/Y3g/Ta+qDHdVGDVRK4ygzR7eNvTeFoSyiBd/TBoZYotuoU/V+2RN1m9MO7zKBWtgba8f5Jo1LgUjPEZwKcB0y2hBK4IPUZmFqYO7+aXhkOT6BkCVUtHoDXmyF+JdiQwvcsEXa+Tl3bVBruom6lFYL9Qxc8YoborPDaTR7zWksK11mhsetGE6iVzYQPAG+xREPuLcEPzRCXB2BKmq19LQG8tTqzqNSSvImgGDjNmV5tx4oPworkMhMEW7QepptB+n19MAM4yhJhErjcCnFZD3smcIIl9CpHVNeEVoF1w4Mp/Ksl6nZsGXYzg1pVmq1/qgZUXPs3SpPgTOB1ltCrroEvdmkItSofAKup9UEPTt2kP7akDDubIX7d8A1gwBJBOtuzCxlJv38xt5xsijvV9s0u6DdDXNphKTDREnr1oa/Ndc9bQhtcb4W6TcKXZ9Si+uAwoMsSDV1jfKsH1lkiLo/BpATOsYT+wMHl7LgoteL1hNTUA66LrKDXsHMCp5mhMH/nvlUb3mrJRtexkf7bBtgVONESYVLXMIvOOpiWOI2pXttx/U7tWXid8PfAk5aom8dPtaS2bOkINaACl1ghPs/CIuCNltAfSpxhVK07JpCaUz/sDxxpCb2WFM5fC52WiN8m+ArwmCWCTBuEk8wg/fdAdgm+FBGqtxu+Y4a4TMy+YNjJEnoN7Smcb4ZiOwC2Ap+zRN0O7Ie5ZlArGYBZKbzbEg3Z4Lg5PmugPclmzpFey/xemGcGtRofAKuZXeg+qmHsMdUHYYWwEIYSuNISwZatcbpbibXQmcAZlgiT+hVDdKozPpxlCQ3jlDK8wQzF1gY3AoOWqPv851fAaimVbCY917pszP8xQXz2gYXAvpbQMGOqC6ygFtzvpebTC3ulcJwlVONifsVamGCJ+E2F24FfWSLIjJmwwAxqdVPgZGC6JYI8UoL7zBCXwewFh90soWFMwnXuCm82/AdwtyXqdtx6mGoGtYI+mAEcY4mGbOyCr5shPgkst4JqOKoPDjSDWokPgNWsJ+0VQIclVMOMneADZojfvrAF+JQlwqSu6ST/BtqAj1kieFz1yQQqlohHORsH+2BPIc58EHYxQ7G1wWor1G1yB3zQDGqRMd8yfEm+UZckkJohurHzEcAhllCtw6RfAasFryOk5rIRdk/gFEso8ALnwtTpjQqhI5ve7neWCNLj2iVqZQPZV/D7WSLIz1P4OzNEN75ZBOxlCQWYWnGq8MKbDd8DHrJE3U41gYpuI+xONn5Q/X72OHzVDFFaaQKFSOH4B+HNllCr8AGwms4gnAvsYAkFOqgMf2GG+M2Cl4AbLBF8Al9mBbUw9/9wl5dcOzIqa6A9dQo75ZDCOWXY0RLFlsD1Vqj7b6S7Fw62hIpsWzY7jvfSGjvOXrIQhiwRl374X8DbLaFAE7Z5P0EtxAfAairVtXnOtIRyDtL/2grFsBWuBV60RJAF/bC/GdRq+qAn9Qv4UE9thVvNEJeZ2fIW+1pCOeyeOoNS4aVwB/CMJerTDh+xgopqI0xO4QxLNOQXnfC3Zojy/OjXv8olgY/0wh6WUCvwAbCayoRs+rJdLKGc5pZ9268Q5mU3tW62RNg5PHUNVLXmxZoX+OGumQevmCEufv2rOo+NF1TXjlZBleBl4DZL1H1sPdEv5VVUg3A6sKslGnLZAbDVDHHph4NwVkDl15nAEjOoFfgAWE3jMZiEDzNUPx8IFMQ2WIUXXqEWrYfpZlCr6IMZwFGWCPJ8O3zGDHHph/cCXZZQHfZK4TgzFN4NQMUMddk5gWPMoKKpvvxzjiUa8htnzYnWhUBiBuWVwNkP+hGaWoAPgNU0nsumLXuDJVSnI/rgEDPEby78MoUvWSJIZ7vT5qu1LtKWA+2WCHLDIfCsGeJSyW5iSfUeIy9MvcYvtBJsAr5hibotNoEKeOw/AXiTJRpqeJWz5sSnD2ak2dIpUj2mDmWzJ0iF5sWhmsKa7Gbu+ZZQg4N2p0wsjsvx64bQ/X7JRphsCRXdhmxauxMtEWQzcJ0Z4lKGOQm8wxJqwP5lONIMxZbC9Vaou907+2F/S6hA+3SSwjJLNOSZV+BGM0RpBTDBDGrAeetgBzOoyHwArKYwM5uu7C2WUIMWPgj7miF+3fDTBO6yRJBpg3CSGdQCg9Yl+LJDqFtK8GszROfjJlCjErjICsVWgn8CHrVEfSpwshVUFAPwPuAASzR03rzu7fCCJeLSC3sk3gdR46ZPhEVmUJH5AFjjrvrG4gpLaAS0V2CpGYphCD6RHSIUYNkap8VVga2FzgTOsETo4ZOrzRCXAXgb8JeW0AjoKcN8MxRXAmnq12qN9Dv5MZhkCRWB99Ia9pKzKsSpLbv312kJjYDla/2SXMU+Xkrjq/rG4p9ZouaFah+u5RdyAbSo7FrShdADPwC+ZYkgM2bCAjOoqKZkX+tMt0TQefDO6hqRikgl+2rTa7Pa/sUEQVxLuuAmwK3AS5aoy27PZvcgpKiVYQ5wqCXql8D1JfidJeLyELwO124N8QrwgBlq2mcqfNAMKipvMmjc+cZimEr2NeRnLFHTpBTOM0NhXGoCj6Vq+X27DfiYJUJzcbkZ4rIB9sGbDiGe2QYfAB4zRU1/PgAlMxTXIfBsAndYom6LTaACDPoutkJDNqdwjRnisxXOBqZYoqbbXBok/Hia+pxMBeWOrXHVC+/ENxZDPFqC+zqywekr5hheAmdU3whU5EqwNoV/tUSQnl6YZwYVzUD2dft+lgg6//1jN/zIEnFph+U47ViI1XPheZziPEjFF8Na4Zh/HS6XUm+7wwdgb0soVmXYL4EjLFG/FG4uwa8tEd2+vyOwxBIhQ0Gu64L7E1hnjpr2H/CYqoLyAbDGewd0erKwC9RVCVRmwVMpfNEiNU3ZCh81Q2H2/yusEHxMXWYFFZD7dfhVvsfLyKzPpjZfZImatlSqM+HsnE196w3b2o6pri2tgpoNPwa+a4n6hs1D2fISUqxW4j3dRgxOgFVmiNJi4PVmqOmeEvwEIIUrzVGbsyqosINeE2i8DMAs4HBL1PTUlt+f3utyYMgsNZ27ESabIX5dcA9+0RZqQT/sbwYVRR/0pH7ZHiSB73bD9y0RlwnZshU7WKLm/n1bDzwJsC9sSeF6q9S+1k9hqRmKzb+Fho4rH1kD7ZZQbH4AfwIcb4mGjp13HAL/Zom4lKEDON8StVVe9YJD9Z7aj61S05wBeIcZVLiLQhNoHE9GF2XXXaph9bxXTfvcDY8ncLdZatp1EE4xQ/wSSH1jMfy8nrpWqor197/SCsFcMz0y62EqcLolakqBa1/9H0yCG4AXTFMz3IlleJMliuvF7Lrwl5aoy577wHvMoNhsyx6ATbRE3SpkH1YovmvDE3D6/hC9Pa+a9rl6T80lVAIMOVOpCsgHwBoXZZgJHGuJml6mOt3dH5yQHKyGWf6wF0ZFGejfiW/ohlpUnVJUilofzACOskSQjbPhm2aISwecDexiiZru7YJHXv0fHAT/CXzONLV3szT7ylwFNR+2AZ+1RN3XGIutoJg8BK8DTrVEQ77SDT81Q1xSSFKXBgo9t132h//ZLtnMkv9hnZrt3tsPXZZQkfgAWONlJU63FHLiuaUEv/vD/7wH+oDvWKimvV5xaqRCKMFgCldZIkhnO5xpBhXgHLjcsUKwS5LsK0lFYi10prDEEkFec42+bfApYKt5ah5LTxtwrbxCa8seAG+2RF2OHIA3mkGx2AJnAVMs0RA/qIjQABwNHGCJmh7fBPf+4X9YXULlWvPUlsIFVlDBrhWksdULewAfskRNQwxzck7hChMFWZl6rCuEF+HzVNf/0/ASWOIa2IrZBtgVONESQTY9Dl81Q1x2yr4628MSNc9nfSV44LX+f3OzaW/vtFJNO1ayr81VULPhtwn8vSXqMqECJ5lBMVgLnYnH80bdV4IBM8QnzV4OVm2rFmb3k//IENwIPGuimo7dAH9qBhWFD0U0HjvdcqDTEjXd1QU/297/sxu+ATxoppr2G4AFZojffNicwKctEWTaoDezFPdYYQm+xBAkhUu3d5Gv5lSGjgSWWqK2So2vdJLs/1+xVE1nP+AXY0U/F1xvhbqdmkJiBjW7KXAyvjzW6LHyMivEpw8OA+ZaoqanO+D27f0/58LzCdxkppra233hQAXiA2CNqXUwDdcrCZIETHebwNWWCnKhCYphEFYDz1kiyLI1Tp+rCFW/bjjDEkF+tSN80QxxSbPlKd5siZqeeALuHu6/UF0b+OumqmlaJ5xmhuIqwYYkWyZI+c3oh3eZQc2sel13viUau8zohu+bIUorTRB0jbF6Frw03H9nMLuP7LIRtX24F/Yyg4rAB8AaU5OyL3p8+7y2+7tgfa3/0vPwZeDfzVVzENQ9AO+2RPyqbyx+1hJBZsz063dFqPp1w3RLBLn6ANdAjW1MkiS+UR5qVcjX7YnLooRattZZmIp+fPEr4PotNoGa2Uz4APAWS9SvDS6xQnx6oTvxfl6IzUPwmVr/pbnwG+BL5qqpow3OMYMKcv6TxsZGmJy6XknoxfuqkP/efNgGfMpitQ35FXBhVN9YfMUSQceSFVZQZPtsG/AxSwR5ZjN8zgxxKcNRwIGWqL1/d8AXQv6LXXB/AutMVtMeU+BDZiiunbOXg5+yRF2OLcNuZlATj5F9eawxvbPh/5ohPm3eywt1a/Xhbsjx5EpcQiXEGY4NVJDjqDQ2tmbTjnngrO3REtyX47//OeB3ZhteAu/ud82QQqgOar9giSA9vTDPDIpFdc32/SwRdOH+6bfDC5aI7uLrAisEqTmF3R/8PVxpsiArXR6iuPaFLcDNlqjLJOCvzKBmVF3/tMsS9UvgE1aITzm7LnRWs9oqwHWh/+Vu+Clwr9lqmgycZQbFzgfAGquTdkcC51oiaGC6KsnxJlYJXgZusFzQiMi3ZgtiKJvucZslgk70y6ygiLi/hnkpydZEV1zj4fmpL+WE2FIJmMLu1brgHuDHpqtp5kw41gyFvt75jGPkup1qAjXp9ZyzOjXmx7Pha2aI0kp8dhHinhL8JM//IIVLzRbknIdhJzMo8nGENPpSOBF4kyVqemoL3JH3fzSUven1kvmGl8DRvXCAJeI3B54A1lgiyIJ+2N8ManZ90OPDseDz2U0lZ/+IkVPYhe3ft/XAkzn/N2maLRGh2tdlF6WQWKKYeuAXqV/11OtAZ4xSsxmAWanrnzZ63vs/idPdRqcX9gKOt0RtlcBlBF+tG3qB+61X07TNsNgMipkPgDUWg622BJZaIsjqeXWsbToHnk7hNvPVlPg1ZKFOYJfghVxQqtQ1VRXDATp7w1u1DaZwjRni0gsHk03hqJqXDlxb5zHkduAXJqxp1gC8xwyFHiNfb4W6D0De5FVTqcBF+NJOIza9CF8xQ5TnsuXAREvUvszogXV1jp2vMF/Q2GDpw+6Livt4Ko2uMhwDvM0SNb1Mzunu/uDC4Cqc7ivECQOwtxniNzub6vHrlgiyaD1MN4OaVR/MAI6yRJDbS/BzM8SlHT6ON3BD3NsFj9TzPyxlL0c4NXrYdYNfoxdYF3wb+KEl6nLcephqBjXR+PgYS9QvhU/O9z5ZdDbArsAplqgtgcvq/d9Wp0b/kRVr2vNl+JAZFCsfAGssuF5J2En7lkamc5wDTyS+2RiiowLnm6EwPmGCIJ3tcKYZ1MTnwOVAuyVqqiTZC1+KSB+8NYWjLRFkVSP/4yG4EXjWjDWPue/og0MtUWg3mqAukzvgg2ZQkxyrlwETLFG3X+5YxxJrGn8T4DxgsiVqenxTA8s+VJdQudKMQa0uSH2Opki542pUleHwBEqWqGmIOqe7+4MT0mVkU+dpeIsH4PVmiF8JNqTwPUsEHR+WbPQiSk2o+ob3iZYI8g/1fh2pcb3gusDrrqDzVF8JHmjknzEXngc+a80gvqRbYDtkU6I/Z4n8nAZazWAj7A4sskRDrjgAtpohLg/AlBTOskSQVQuz+8mNjL/vxNmlQry17IwMipQ3IjTanF4szF1d8LNG/yGzYSPwLXPWtGPFNVGL5DITBJk2CCeZQU04GF2CLyeEtnKdpsishz1TpwwLUoHLR+Kfsw0+BWy26PASeF91bWoV0AHwInCbJerS49+Gxtu27H7FDpao21PAzWaIzw5wBvA6S9T0dEf2sldDqkuoXGPOoLHzxalL+ihCPgDWqOmDHuBdlgg6iYzYdI6pN4dDLSnDzmaIXzd8AxiwRJBla5xmV01kLXQm2UW+avvmbCibIS7tsBSYaImanngC7h6Jf9Bc+A1O+Rh0CdKWTS+q4l5jrgYqlqjr2P0RK2i8bITJqePjRl1dgpfNEJfHYFIK51qithRWz4KXRuKfNRFuAp62ak0Hl+EwMyg2PgDWaF5wXmSFIPd3wfqR+od1Z18A95u1pp0TOM0MhTne+OJDmBkzYYEZ1CymwMnAdEsEXeRfaoW4rINpiVOJhmp4Crs/+HtZhQ++QhzXD28xQzFVZ5j6F0vUdQw5sQw7WkLjYRBOJ1siRfV5DtdBj9Kz2bTnb7RETZuH4DMj9Q+bBS8l/s0ESZzpVBHyAbBGRT/sDxxpiaCLy1WjcEK60rJB7c9fC52WiN8m+ArwmCWC9nvX/FOz7IttOB1/qN5u+I4Z4jIRzgF2skRNz3TAF0byH9gNPwXuMW1N7Smcb4biSuB6K9Rl58S1/jQOytBBNn5Q/a4tuQZ6dNZAe5LNnKPabq3OeDNiJsB1wCumrWl+L8wzg2LiA2CNlgvdv4I8WoL7RvofWn0Y9jPz1rTHVNdELYSFMOSLD8F6+uBQM2i8DcD7gf0sUVsKl1ghLhuzda3PskSQEZvC7g/+bi4zbZBTyvAGMxTTbPga8Lgl6uIMDhpzCZwAvMkSdXupLZv+XpHZBxYC+1qipgrZw9oRNStbN/sL5q2tDS6wgiLbZ6WR1Qt7pXCcJYIG96uSUZierjqF3qcsXFsKK9bCBEvEbyrcDvzKEkHHHt+sVTNwPwzzyGi8LKbRNZit3bebJWraUhnBKexerRt6U/ieiWuahF+bFXnMV2GU/sZa4DrxndWZzaSx2ueS1LXZG3XjbPitGaI8Xy23QpB7SvCTUToGXckILslSYEf1wYFmUCx8AKzROGmvIJu2RsN7agvcMVr/8BfgFuBJM9c0Yyf4gBnity9swRcfQi3whpbGUx/0pE6dFDqu+mTiWqZRcfrGXPv3bT2jOF5N4AorBznzQdjFDMXUDp9nFL6ybxGLTKCxMgDvAw6wRN22tMHVZohy7HwEcIglaquMwjKC/6U7mzHkq1aufYnhV8CKiQ+ANaI2wu4JnGKJIKvnjeL6CvNhM3CDmQPO3HBhCokl4tcBNwK/s0Tt83/q2qsa3+PuSisE+XkKf2eG6PbvRcBelqgpBa4dzX9BF3w9u0RRDVMrTlleWIfAs8CdlqjrIPXhsi+3a+z2txVWaMgts+E/zBAlrw3D9PbAutH8F7T58mTo8fr4B+HNllAMfACsETUI5wI7WKKmlxmDqbi2wvXAi+au6aAy/IUZ4lddQ9AXH8IsWg/TzaCx1gczgKMsUVsCV5Rg0BLxWAPtqVPYhbq3Cx4Z5b+hNPVroCApnLPO67jCck3Muk1PHbNoDJRhDnCoJeo2lHi+j1I//C/g7ZYIGtdeNtr/jtlQBr5t7ZomVFzSSvFcB0gjYz1MBc60RNBJ+5bSGHylOA+eSbMpv1R7m/y1FQpy5QfX4YsPITrbPWZrfI63y4F2S9T01JZsOQdFZCYcC+xriSCrxuJfkmRfPv7c3DXtPsmZnAprdvYl/AOWqMtiE2i0pXCxFRrypS74mRmi3Pf9+jfM45vg3jEaO/sVcNi+u7gX9rCEmp0PgDViJmTThu1iiZqGGOXp7v7gX3YVsNXsNc0t+9ZhIcyBp4GbLRE0sF+yESZbQmNlA+wKnGiJINeM5lIRGrUbAa4HFXb+6SuN0cOoEgymcI3Vg/bfFU53W+jte70V6jpeHT4Ae1tCo6UM+yXZGqiqT6XiA6so9cNBOBtfqFULs/vJo64L/hkYMHlNnQksMYOanQ+ANSIeg0m4nmSou8byzcS58MvE9QND+eZhQWzLviryxYfapg3CSWbQGA48l+BLByGebx+DpSI0svrhvUCXJWqrwOVj+e+bCDeRvSCm4e2VwnFmKKYE/gH4lSXyD1+G4GQzaBStxPuzjfhqDzxshihdmJ2eVMPTHXD7GP87rzJ70Njq7Af9GE7NPpA1gUbCc9l0YW+wRNDJYcxPoilcmf0f1XBEHxxihvjNhV+m8CVLBFm2xul4NQbWZm/InmGJIDccAs+aIS6V7CaWanviCbh7LP+Fs+ClBG40fdC1yoWp9wkKqQSDCXzOEnX9XXzE8bJGww/gT4DjLdHQ3+dlVohPH8xI4QOWqC2F1bPgpbH8dz6efUi0yfo1TR2C082gZuaFnRpWvRA63xJB7u+C9eNwsf9D4BvmD7p4WG6FwrgcqJihphkzYYEZNNqmZF/PTLdETZvJ1jJXRMowJ4F3WCLImE1h92oTsr8rp1Wvbf8yHGmGYhqCz+IsOfXYcx94jxk00rZl99ImWqI+CXyjC/otEaUV2fBMta4Nh8ZhZqiFY7x8YeTOWwc7mEHNygfAatjMbJqwt1iitjSblnZcuCZK+DjnQdjXDPHrhp8mcJclgo5NK6ygUd7H2nCpiFC3lODXZojOx00Q5JkO+MJ4/ItnwVOM0787NglcZIVi6oEnyaaCVv6/i8VW0Eh6CF4HnGqJhq4xPmmF+PTCHolLUYW6dS78Zpz+3TcDv3UT1DR9Iiwyg5qVD4DV6GAr8cFBsEdLcN84Xux/N4V/dTPU1F6BpWYohiH4BE5/HnSI6INDzaDRMgDvB/azRMhhi6vNEN3+/TbgLy0RZMynsPuDa5crGYevj2McF5RhvhkKew1/vRXqcuQAvNEMGilb4CxgiiXqk8B3S/CAJeLTlt1z67RETRXGcWaoErycwg1uhiDL1/pFu5r3mCvVbwDeB/yZJYIGp6uScZ6Otm0cv0COSQqLvLgvhh74AfAtSwQdo3zxQaPJ/Svs/HNnybWWolOBi72uCrKlMg5T2L1aNzwOfNVNEcQ1rQuqG76PU6bWY0LFL9Y0QtZCZwJnW6KhcbNf/0aoDDvjl++h7inBT8bzBxjMHkC/6KaoaZ+p8EEzqBl5o0KNDrj8+jfMU1vgjvH+IWbD3cAjbo6aJg3BuWYohgQus0KQBf2wvxk00vqgJ4V5lggZVnG5GeKyAfYBFloi6Hx8W3X62XFV8YZxqD8fgJIZCnvC8Yue+pyaQmIGNWoKnAzsYYm6PdgF/2KGKH2M7CGwao9Zx/0jnnnwDHCrWyNobHVx6rM2NSF3StWtF96JU4aGWj0PXhnvHyKBSgKfcnMEtTqjuiaPItcF33b687AxQeoarRqd4+lKKwRdMN7XDT+yRFzaYTlO9xW4i3NtM/wg1dlBvu0mqa3iy76FNQh3Ak9bIrcZ/fAuM6gRa6AdON8SDfmbxKWeolOGHYEllgjS2wPrmuR652pgm5ukpv0HXBZITcgHwGpk53FasDAvM87T3b3aVLgd+LWbpaYpW+GjZiiGBK6wQpBF62G6GTRS+mAGcJQlgvj1b2Sqx8tFlghyb1dzzULj31uYY6prXKtg5sErCdxsibosNoEaMRM+ALzFEnV7pAvuNUO0x8/Xm6G2ZprJ7hD4N2CNW6W2FD5uBTUbHwCrLgMwCzjcEkEn7VtK8Ltm+Xn2hS1kaziotnM3wmQzxK8L7sEv60J0tsOZZtAIngOXk33loOE7fbe6JqMiMgHOA3awRJBVzfTDlOCb2SWNat0vSF3DvcjnnhuAIUvkdmwZdjOD6pVm42PV7xMJVMwQlzJ04JfvoR7f1GQvOSTZy5N+dV/bnAF4hxnUVBd0JlA9KnARrn0TYogmme7u1bZlF/vPuXlq2nUQTjFD/BJIU7jSEkGtlvjig0bCBtgVONESQS41QVzWw1TgdEsEnVf6SvBAs/1caZM9lG5WKZxYhjdZonhmw78n8DVL5DYJ+CszqB59cBjQZYm6Pf6CXyLGOh48AdjbEkFWLWyyF7S64CGyFyhVw5AzpqrJ+ABYuZVhJnCsJYLc1QU/a7Yfai48D3zOzRNk+cMw0QyFuOC4k2zqGg1v2iCcZAaNwCBzCb5MEGLjbC+mo9MBZwO7WKK2SpNOt/xEdgN5k1uo9u6eZl+7q4BSuN4KdTnVBKpzfOza6o1d018237VIYzzXJCkss0SQpzuypfua8e/PpdXCOr233xd91FxjDym3lTidY+hB/6pm/dkmwDXAVrdSTXu9AsebIX4lGEyb+G+yySxb43FeDVgLnQmcYYkglyROpxXd/p1mLziotieegLub8QdbCENpNh5W7Wua0wZcs6+QuuBfgJ9YIrcD+2GuGZTHAMxK4d2WqNsvpzbpgzHV3PePBg6wRG0prJ4FLzXpmOHbwAa3UtB2vMAKahY+AFYuvbAH8CFLBLm/C9Y36w93MPwqhS+5mYKsTD1eFsKL8HngSUvUNGMmLDCD6jUFTgamW6KmTY/DV80Ql51gMdmYWLU13RR2r5bALcBv3Uw17VjJvnpXwVRfQLrBEvml2blACuZSao2PKfaFLWaI8njputdhNg/BZ5r8Z/SjijDHboA/NYOagQ80lHeHWQ50WiJogBPDumKXZ9chqmG/AR+GFcJ82JzApy0RdAxzejLVu++0AR+zRFCrS5v54Zj+WBk6ElhqiSDPdMAXmvkHLMHLiVPghjr7AZhihuLZDLeRLRGkfI6rrgcv1dQHM4BjLFG3p3eAm80Q5b5/GM6YEOrWufCbZv4Bqy8vP+amqqm93Rcf1CR8AKxg62AarnUT6tES3NfsP2Q3/DSJ4OdsEheaoBgGYTXwnCVq6umDQ82gvAbg/cB+lqjpVzvCF80QlzRbFuLNlgjStFPYvdqW7MWwF91cNU3rhNPMUDxvhxdSz0f1mNwBHzSDQiTZ+qcTLFF3v6sP8Fwdq5UmCFIBrmv2H7L68vLVbq4gH+6Fvcyg8eYDYAWblK115lvfYYPTVUkkX9am8Em3WFCn7gHX6ymEufB8Ap+1RNCxzK/cVA/3mzBXHwBbzRDVWCBJfJM71JZK809hB8A8eAa41U0WZNlaZ4MqpLbsS3jXo89/XnAaaNW0EXYHFlmibs+3OVV9lHqhO/E+Wqh7SvCTGH7QnbNx86/dZDV1tME5ZlATjPOloAHr5NR1n0I9tQXuiOWHLcEG4AE3W21DfgVcGIPZG4uvWKKmBf2wvxkUqg96UphniZqe2QyfM0NcynAUcKAlakvgth54MpaftwJXZsMD1bDHFPiQGYqnCx5J4duWyK2nFw42g4azLVsaZQdL1D2m+PQh8Kwl4tPmPbQ8Y9FVsfys+8KW1CVUQp1Rht3MoHE+Fku1bc2m+/KAFWb1vMgeLCVwhZstqNO7+127pBCq66p8wRK1xwmpa7kq33HSKb4CpPDpt8MLlojuwukCK4Tu4lwb0w/cA78A/t5NF2TlGmg3QyHP4autkF87fMQK2p7qxxRnWKJuLyeRjSmUKWdLAi2wRJDeHlgX0w88Kfsq3+vZ2iYDZ5lB48kHwAo5aXckcK4lwganRDLd3avNztYBftjNV1vFqR8LYyh78WGbJWpatB6mm0G19MEMsi8kNbyXvMke5Xh4vl+3B7u3Cx6J7YdO4HKcAjfEzJlwrBmK53H4R+AJS+STwoll2NESei2DcDqwqyXq/vu6aTb81hJRWonPHULHoJfF9jMfBP+JM1qFOudh2MkMGi8eiBV0QQO8yRJBJ+1bSvC7CH/uNIloupFxbnV0LxxgifjNyW5wrbFETZ3tcKYZFHB8XI5fhYV0uinGsYKcwi6HKMeUXfAQ8E03X9D14UUpJJYoloUwBNxkidx2TuAYM+gPlaED139sxGACnzJDfHphL+B4SwR5fBPcG+MPvi37+9zqJqxp2mZYbAaNFx8Aq9bFfVsCSy0RZIiIp6ZJ4UvAz92MNSVtsMwMhTkJXgJULFFjp4clG7Opa6TXtCH7suFES9Q0mMI1ZohLdX3HwywRdL7oK8EDEf/8LosSZtYAvMcMhfR5YLMZcvPGrl7rnHICfkxRtxRuLXmPKkpt2YvBEy0RZFX1BazozIVfAne6CYOOZ0sf9m9C43dMlravnL3J+jZLBLmrC34W6w9fgkHgOjdjkBMGYG8zxG82/Bj4uiVqmjYIJ5lBwwwol+BLAiFu90ZWfNrh4/i1Y5BKNo1ytLrg28B6t2TQtvar+AKqzlDxZUvkk8I7+2F/S+hV+0SS+uJ4I4YmOEtdlKovBp9iiSBPd8DtMf8C1SVU/Kiitj1fhg+ZQePBB8CqZYUJgk96V8X+O2zOpvx61q1ZU0cFzjdDYXzCBEGWrXF6X72GtdCZwBmWqKlShLFCq+mDt6ZwtCWCPPEE3F2A3+NqN2XQtc87+uBQSxRP6kvB9VpkAv2XAXgfLh3VyHHozkPgMUvEZwKchy8Gh+7nq2fBSzH/Dl3wCH5UETp2viD1WZzGgTudtqsMhydQskSQ+7sK8LXA2+EF4DNuziCLB+D1ZohfCTak8D1L1DRjJiwwg/7QFDgZmG6Jmv6heoGsuC6WLvCaKVi0U9i92uPwVbzpHMqXhQuoGx7EL+FzS+HD1TVfJVKPjw3mi3tGkVb1AExJ4SxLBNk8VJD7ry6hEuyt1ZlWpTHlzQwNx2m9wkenhZmapiNbm/AVt2pNO1bgY2YojMtMEHSs80aG/nCfaMNjYeig2wvjyKyHPVOn6gr1TAd8oQi/SPUhtl8BB0jgfdU1slW8bbvaCrlNT+EoM6gMc3CGhEbc3Q0/MkN8dshmhXqdJYLcOhd+U4RfpAvuT2CdmzRofHVx6tJCGmM+ANZr6oMe4F2WCPJoCe4ryi8zC55K4Ytu1iBLyrCzGeLXDd8ABixRU4/TPerVBuD9wH6WqOmbs6Fshri0w1JgoiWCRD+F3avtDLcCv3az1pS0ucZlIXXC3wNPWiK3xSZQChdboX4VuNQK8XkMJqVwriVCd/NiLbeQwpVu1iAHl+EwM2gs+QBYr30lDxdZIbjVqqR4C95fTgGm8BsDOydwmhkK87fs13lhnZZaQa/i/hB2QeyNrMisg2mJN/JDbakUbAmRfWFLCte7aYMc1w9vMUOxHABbgc9ZIvc4+fAB2NsSrasM+yVwhCXq9s890GeG+DybrYP+RksEuacEPynSL9QF9wA/dtMGjRWccVVjygfA+iP9sD9wpCWCPLUF7ijaL9UNjydwt5u3thTOXwudlojfJvgKrvkXYkH1PKEW1wc9KcyzRE293fAdM8RlIpwD7GSJ2hK4raeAXwpWp8B9zi1cU3sK55uheNrgRmDQEvmyDcHJZmhpK/FeayPHnU9aIT5roN0XxcNVCrSM4KvGzWnqEiqh5vd6H0Vje26V/siF7hvBVs8r6Hq5Q9lXwKptj6lwkhnitxCGEqetCRo7pK75quwib6UVakvhEivEZSNMBs6yROguzrVF/MVK2cPfm93EQU4pwxvMUCyz4T/wpeB6xkcfWQPtlmg9P4A/AY63RN0Din+dDd+zRHz2gYXAvpYI0ttT0PVyd8k+kPoPN3FtbXCBFTSG+5v0qrMQ7JXCcZYI8jIFm+7u1arT7nzHzRx0obJiLUywRPymwu3AryxR06L1MN0MrasPZgBHWaKmR0pwnxniMghnALtZIsi9XfBIUX+5bfApsqlwNbxJZF/Nq2Dasi/hlc+e+8B7zNB6tmWzIUy0RN3Hm7+xQpwSWG6F4FaXFfV3qy6hcq1bOchRfXCgGTRG51fp905EK4AOSwS1uqUEvyvy75i6JmqoGTvBB8xQjAEr2c1eDa+zHc40Q8tf5Pt1S+1On0ygYol4lLNxsA+ywq0q8i83F34J3OlmDnLmg7CLGYql+jXeQ5bIff53DfkW8xC8DjjVEnX7wWz4ZzNEOXY+AjjEEkEe3wT3FvkXHMqWj3jWTV17qOBXwBorPgDWf9sIuydwiiVCz2nFf6upG74BPOjmDrrIvzCFxBLx68gGrL+zRM19fkl1mlS1mA2wK3CiJWr6eQp/Z4bojm2LgL0sEdSqrwQPtMDveTm+yBFiasWp04v6N3C9FXI70mnRW8uW7Pg3xRL1SeETSbashOLjskDhVi3M7icX1lx4PoGb3NRBx73jH4Q3W0KjzQfA+m+DcC6wgyWC3NUFP2uRC/6r3dxBDirDX5ghfrPgJeAGS9Q0bdD1r1t18LgEH/6HnD+vKMGgJeKxBtpTp7ALVskejBZedYrrr7vFa0vhnHVeTxZxu94BPGOJXCbgOLllrIXOBM62RN1+UoK7zBCffvhfwNstEeTpjmzJscIbzO4jb3aT1x4rVGCpGTTafAAsANbDVJzOM1gCV7XK7/o8fBn4d7d60H7x11YohiG4DnjREjUtW+M0wC2leoPrDEvU9NQWuMUMcZkJxwL7WiLIE0/A3S00xnNZlDC7T3JGqcIpwcvAbZbI7TRniGoNU+BkYA9L1Cd1yZSYt51f/4a3Wl392KDw5sJvgC+51YP2i8W9nj80ynwALAAmZNPV7GKJIPd3wfpW+WXnwzZcEzV4nFP27cdCmANPAzdboqYZM2GBGVpH9QbXdEvUdM08eMUM0V2Auw5TuMJPYfdqXXB/Auvc7EF/Ryuqa2mrWG7ABzS5x8n98C4zFFv1ZdjzLVG3J16EO80Qn344CGfBC7V5CD7TYuPBKx03BOlMshnWpFHjA2DxGEwCPmaJ4JPYqhb8tT+Ha6KG8g3IgtiW/a1vtUTNY+IKK7TMtm5zvBDk+fYWu8Avgn54L9BliSDPdMAXWvAYeKWbPsheKRxnhmIpwSbgnyyR22ITFNtM+ADwFkvU7YrqRweKz4U4y0GoW6tfxbaMbvgpcK+bvrYEzn7Qj/I0inwALJ7Lpul6gyWCPFqC+1rwgv9lXBM11BF9cIgZ4jcXfpk6bU2Inj441AzFNwDvB/azRE03HALPmiEulewmlsK0zBR2r9YF9wA/dvPXlsCFqfcaCieF1VbI7dgy7GaGQv9dLLdC3Z7c2oIvlBVBH8xIs5cfFHSZwXUteny81M0fZOoQnG4GjRYvylqc09Xkk8CqVl2bpLom6kvuBUH7iReBxXE5TlsTss8vtUJLcDvXtrlVL/BjVoY5CbzDEkG2VFr0C/cE0hSudhcIsn8ZjjRDsZSyL4AftUQuk4C/MkMx9cFhOHtII650yZRorQAmmCHIPSX4SSv+4t3QC9zvLhDkvHWwgxk0GnwA3OJmZtNzOV1NmKe2wB2t+svPgadTuM3dIMjCB2FfMxRiwPrTBO6yRE0L+mF/MxRXH/SkMM8SNd1Sgl+bITofN0GYBG7rgSdb+Pe/HfiFe0JQq4usULhtmqZwoyVyO9UExdTmUjiNeHoHuMkM8emFPRI4yRJhKq25jOCrxw5XuBcEmT4RFplBozReUatKIXHtxlxWt/rbiRW4CtdnCdFe8Uu5whiCT2SHTA03nkhdG7boF26ubx50uPDrwNgMwNuAv7RE6OUD17ZygBIMOg1usJ4yzDdDsUyAW3FWqLwOLMMcMxRu/DArhXdbom7XHAAvmiHCC//sXlenJYL09sC6Vg4wG74G/MhdIcjytX5Zr9E5bquFB6zvA/7MEkFepkWnu3u1OfBEAl9xd6gthUUD8EZLxK8HfgB8yxI1LVoP081QPH0wAzjKEjWP+3eWYJMl4lLJvlL0mijMvV3wSKtHGMq+gHzW3SGILw8VzCHwbNLCs2I1wK+Aizl+SCxRl+cnwvVmiE8ZdvZ4Fi6By2xASot/BZ3DPlPhg2bQSPNmRwvz699cJ6xbSvA7S/z3AMavIWubNATnmsGBewvpbIczzVDI/X850G6J4YdVTm8Vnw2wD15k5+HNG2AuPA981hJBDh+AkhmKZQg+7fVgbseth6lmKIbqy5HHWKJuNxwE/2mGKC0hewis2h7fBPeaAYC/BX5uhoCbCnBR6vM6jTB3qBbVC+8EDrVE6DVua09392qzYSN+DRkkgTMegtdZIn5d8O0U/tUSNff5JRthsiWKYwPsCpxoiZoXaveV4IeWiEt79nKD02yFHd/7SvCAJTLb4FPAZkvUVvGl48LpgYeB71oil8kdvnBUpHPiMscPddsMXGeG+JRhR1z2KY9VC7P7yS2vBIN4Xz3U2wZcnkgjzAfArbvhL7RCsLu64Gdm+B+pXzmFmrIVPmqGwlzou9/XNm0QTjJDocYLS/ChfojLTRCX6pT1iywRpuI+/nvmwm9wGtxQx1TX2laxrgedvjV/s8VWiN9G2N3xQ0NuKsGvzRClxcDrzRDk6Q643Qz/oyObPedpSwSNFz5uBY0kHwC3oAGYBRxuiTAJXGWF39edfQHcb4kg5/pFZDF0wT3AjyxR07I1ThdcCGuhM4EzLFFznPDdbvi+JeIyAc4DdrBEkCeegLvN8PvSbErsiiVqakthqRmK5cXsmPBLS+TS0wsHmyFu27IvIB0/1GewDa42Q3zK0AGcb4ngMeLqWfCSJf7HLHgpgRstEWTOALzDDBqxizETtJ4KXAQklghyfxesN8MfS+BKKwTZdRBOMUMh9vk0db8PMWMmLDBD/KbAyWRfSWp4l5ogLtV1GE+3RDCnsHsN3fBTspfDVEMKJ5bhTZYojvmwDdfCzq3N68KobYTJqS9HNuL22fDvZohPAicAe1siyOYh+IwZ/tiEbPr3VyxR25Azt2pkx59qJWWYCRxriTDVN/v1GjbBV3Bq7FDLH4aJZijEhc+dwL9Zouax0/X+4t+GbbjGU4iNs+GbZohLB5wN7GKJIM90wBfMsN1j5WVWCPuzS7Ov7lUgbdkDYNfCzufE6jqaitBg9vLYrpaoy9CQSyrFOtZJ0mzda4W5tbpUiP7ALHgKryuCJPDefuiyhEZozK4WsxKn5gz1aAnuM8Nrq34J8ilLBNnrFTjeDPErwWDqtPAhevrgUDPEawDeD+xniZouSSA1QzzWQmearW2tME5hN4xu6E3he5aoLYHTBlw7sFBmw2/T7KVghdslgWPMEJ/qFLjnWKJua+bAo2aI8rrwaOAASwSpkH3lqu2ozqrnzEJhrS6wgkaCD4BbSC/sAXzIEmESWJW4rtewXoBbgCctEWRl6jG3EF6Ez7vfBx1DXe8vbm6/2jY9Dl81Q1x2gsVkY2LVtqXiFHYh5zu/aAqzYyX7+l7F2v9XWyG3xSaIcl8/Aaeyr1eKS6bEvPGWWyHYPSX4iRm2rxsex2voUMdugD81gxrlw4jW2tjLgU5LBHlqC9xhhuHNz6b8usESQfYbcF3Uwuz3qTe7Qizoh/3NEJ8+6ElhniVqusx1UeOyFib4ckq4BG7r8YWnmrrg68BGSwQ5+wGYYobiKMGGBPosES6FdzpGjm6bOQVuY+4twQ/NEOV14WHAXEuEqbiMYJA2X54M1d7uuUcj8zenVrAOpgGnWiLY6nkuTB9kK1wPvGiJIBeaoBiqXzs8Z4nhxxipa8jGun+vtEJNv9oZvmiGuOyULcfwZksESYFrzRB0zExTuNoSQaZ1ek1axIPF9VbIbZEJ4jEA78MpcOtW8WFPzLwuDNfbA+vMUNtsKAPftkTYeKEX9jKDGuED4BYxKVvrzLetw7yM090FmwfPpNmUuKohhe4BeLcl4leC5xL4rCVqD1bXw3QzxKMPZgBHWaKmq/eFLWaI6hycJK6jlMe9XfCIGcIkcCfwc0sEWb7WWakKZWf4MvCUJXKdkz5cXVNWcWyvFVao+/z4LR+KxakXuhPvX+XZ1y+zQq5evhgSpqPN9efVIB8At4CNMDl1vaU8J6FbSvA7S4QbgquArZYIauVXwAUxmH3t40wBw+tshzPNENU5cDnQbolhPbMZPmeGuJSzFxsOtEQwp7DLoQSDKVxjiSB7TIEPmaE4qi9E3WyJXKanvnAXy/hhDnCoJepTgUusEKc2713l8fgmuNcM4brgn4EBSwQ5owy7mUENHM9VdFvhNDxQhBrC6e5ymwu/TODvLFFbAu/udw2Vouz3vwG+YIma+/ySjTDZEs1vA+wKnGiJ4aXw6bfDC5aI7qLHr3/Dj9t9JXjAEvlMhJuApy0RZOUaXzYqmhuBbWbIZbEJohj3XWyF+i8vuuE7ZohPGfYDFlgi2KqF2f1k5XOVCYJMBs4yg+rlA+Din7Q7EjjXEsHu6oKfmaGuC6Mrs/+jWirZF3YqgKFs2hpvdg1v2iCcZIYoBoVL8GF9LS9V1wBXXOPh+SnMs0TwOOVyK+Q3Kzs+3GiJIDNnwrFmKI4S/Dz166dcEjh8APa2RFOPH/ZL4AhL1O3/mCBaK/GZQainO+B2M+T3ePYh0SZLBDnnYdjJDKqHB/OCS7Mved5kieCLMN8+qv+i/4fANywRtJ8d3QsHWCJ+c+AJYI0lalrmlz7NbS10JnCGJWoev29ymYgoOYVduCeegLvNUJ8JcB0uDxF6nXpRCokliqMNrrdCvmRDcLIZmpoPweq3sQu+bob49MJewPGWCB7PrJ4FL1kiv4XOwpnHtM3OHKL6x+gq8EmoLYGllgh2fxesN0P9KtnXkKotaYNlZijMifSSbPfXMGbMdAqppjYluwE53RLDco3PCPXCwcBhlgjmFHYNmAVPAbdZIizXALzHDMXRBd8meylYoReF8BFfkmxOP4A/wYdgjbgkcYa4KLVlM9ZNtESQzUPwGTM05Gbgt2aoLYWlD/u3qfqO6yqqMhwDvM0SwQfSVVZoTA98N4V/tUSQE5zyqxhmw4/x7eaQY+wKKzTttmkDPmaJmm4vwc/NEJd2+Dh+ZRjqmQ7Xth+pawqXhwhQ8ev8InIa9Hz23McXIZrSNjgfb7TX62ePw1fNEJ8NsCtwiiWC3ToXfmOG+pXg5RRusETYmOFl+JAZlJcPgIvNm+3hHi3BfWYYkYOKD9LDdFSyi0oVwydMUFNPHxxqhuYzAO8H9rPEsCouExGfPnhrCkdbIphT2I2Abngcb3wHSeAdjg2KZYdsHcTnLJHr78ApHZvMQ/A64FRL1L1PX+JsInFqh3OByZYIuz4kW/pDDRrMOr5oiaDj6wWpz/OUkztMQZXh8ARKlgg+gK5KnMJ1RMzO1o17xBJBFg/A680QvxJsAO63RM1jrcsSNCe3S21f7fLcFuOFzgVe7wTbUnEKuxFTgUtx6stQvrRcIAdkN3CdSSCfI8vwBjM00QkRzgKmWKIuv+iEvzVDfB7I9vmPWiLYPSX4iRkaNw+eAW61RJC3ln3BWTl5Q6S4nE4r3FNb4A4zjIwk+0rqU5YIsmPFaVcLI81u9mp4C/phfzM0jz7oSWGeJWoOmC+3QlzWw56pU2TlGb/d1gNPWmJk9MAP0mw9VNXe995Xhj+zRKG26afx5eo8JgAnmaE5rIXOBM62RN0uOwC2miE+O8AZZF+/K0DF2Q9HVDtcjUuohI6zPp66xJFy8AFwAfVBD/AuSwRbPQ9eMcPImZpN/fVrSwRZUoadzRC/bvgGMGCJ4ccdqS89NNvFw0or1PTN2VA2Q3Q3EZbi2n2hUuBaM4z48fUKK4Sm8ivgIumCnwH/YolcTvNmbnOYAicDe1iiLr/Z6ld8UXoMJqXZ9M8K09sD68wwcg6BfwPWWCLIwWU4zAwK5QPgYl5BX2SFYC/jdHcjbl/YgmthhNo5gdPMUJjjrzd7a1u0HqabYfz1wQzgKEsMz6/747MOprmmYi73OsX5yCvBN/HFsFDH9cNbzFCoMfH1VshlRr8v8Y+7NdAOnG+Juv/ur/Ljijg9C4uAN1oieF+/zAqj0vVyXEIltJUzvyqYD4ALpjq15pGWCD5g3lKC31li5G2DG4DnLFFbCuevhU5LxG8TfAV4zBLD6myHM83QFOfA5WQ3urR9vd3wHTPEZSKcA+xkiWBOYTd6YzzbhmlPfehSKLPha8DjlsjFF5fG2Uz4AL6MUq9nXoEbzRCfNdCeZDPnKMzjm+BeM4y8LniI7AVK1Ta/16W8FMgHwMVzods12BBOdzdq5sLzwOcsEWSPqa77VAgLYSiBKy0xvASWbITJlhg/G2BX4ERLDC+FS6wQl+qx5SxLBB+P+0rwgCVGxxPZVHabLBHklDK8wQyFObZUEh8G5XVsGXYzw7iO+5Zboe6/+eveDi9YIj77wEJgX0sEW7Uwu5+s0TmWOKteoDa4wAoK3FdUFL2wVwrHWSLYXdX1iTRKJsA1wFZLBF1srlgLEywRv+oa2L+yxLCmDfrSw3gPAJfgQ/haHinBfWaIyyCcgTfQg1WyqdY0ShbCUJqNh1XbJLKv91UQHfB54CVL5Pob+CszjI++bD3FLkvU5aXUad+jlfjiQx5Pd2T3ezRKuuDbwAZLBDmqDw40g2rxAXCxTtorsussBfa6ygqj62D4VQpfskSQGTtlU04pctU1sD9liZqWrXH64XGxFjqT7CGZhh8nfDKBiiXiUc7GwT5ACvfEE3C3GUb9WHIL8FtLBDnzQdjFDMVwEPwncKclcjnVBOOjLbufpvrOc9e7tFq0Y+cjgEMsESaF1bN8sWkseL8+8PDrV8AKHOOoCDbC7gmcYolg93fBejOMicvxBnrohdOFKSSWiF9HNuXd05YY1oyZsMAMY28KnAxMt8SwfpHC35khuvPoImAvSwRzCrsxUIKXE7+MCjW14hTuhdIGq62Qy4FlmGOGsTUAs1J4tyXqsjlxabWYrTRB+L4+BJ8xw+h7HL4KPGaJ2lI4/kF4syVUYzyuIhiEc4EdLBF8gFxlhbHRDT9NnEIz1EFl+AszxK/6VugNlqh5LPZN+7Fv3gZ8zBLDS+DyEgxaIh5roD2FZZYI9kwHfMEMY2MLfBp40RJB56lz1nldWxizYSOuM56XXwGPsQpchC9i13vMvnk2/Icl4tMPc4G3WyLYrXPhN2YYfdUXVK+2RJAJFVhqBg3HB8AFsB6mAmdaItijruk35hcFn7RCmAT+2grFMJS9Ce3N3uH19MGhZhg7A/B+YD9LDOupLdmUrYrITDgW+FNLBHMKuzE0D54BbrVEkN0nObNV0a4F/QI+n+Oq93g0BvpgBnCMJeoyOMGPK2I+NnvvKVwFuM4MY2fnbNz8pCWC/pYX98IeltD2+AC4ACZk02TtYokwCaxyTb+xVYINwPctEWRu2bcwC2FONgX0zZaoeUz2bcWxZe/arpkHr5ghugtf1z8Kt6XiFHZjrgJX4swCoX/PK6preqsYY71/AH5liWCTO+CDZhiz/XMZMMESdR2r7zgE/s0S8emHg3D2uTzuKcFPzDB29oUtqctIhOpMYIkZtD0+AI7cYzAJp3LM46ktcIcZxuXi4AorBHMdloLYlr0RvdUSw1rQD/ubYfT1QU8K8ywxrOfbfTAWnX54L9BliTAJ3NbjG/Vjrgd+Afy9JYLslcJxZiiGEgwm8DlL5Lp2XmyF0bcRdgcWWaIuFeByM0TrQpz2PM/O7pfu42BStqzaC5YIur47+0E/DtR2+AA4cs9l02O9wRLBVvtVz7hd+P8j8LAlghzRB4eYIX5z4ZcpfMkSw49FUl9kGquLAl8uqe2GQ+BZM8Slkt3EUpiUbIkCjc9x+PLqNlDtVhem3q8ojCH4LL4UmUdPLxxshtG1LbsGcc3x+nylG35qhvj0wYwUPmCJYL09sM4MY+8g+M8EPm+JIFOH4HQz6LV4QRWxNdAOnG+JYC/jVz3jJoE08a25PL2WW6EwLsdp52tZtB6mm2F0L/SBoywxrM24tlN0yjAngXdYIti9XfCIGcZHFzwEfNMSQfYvw5FmKIbqrAP/YIlwba6FPao2wuQUzrBEQ9e4itMKnPY8WAKXWWH8DMLV+AJZqPPW+VKTXntMqVjNzKbFeoslgk/at5Tgd5YYP9UvIX9uiSALH4R9zRC/bvhpAndZYlid7XCmGUb1HLic7MUxbd8tJfi1GaLzcRPk4st44388dlmU8FYXWaFQ14LXWyGXE8uwoxlGx2D2pdSulqjLfSUYMEN8emGPBE6yRLDHN8G9Zhg/c+GXwJ2WCDJ9ossa6DX4ADjei6ckzd7aUpghnO5u3JVgEL+uCtVegaVmKMwB6BM45eOwEliyESZbYuRtyG5unWiJmuOEq80QlwF4G/CXlgg+zvaV4AFLjK8u+Daw3hJBesow3wzF0A3fB/otEWyXBI4xw8grQwdwjiXqk/pFZLTasntMnZYItmphdp2o8b2GcVa9cMvX+oW//vjYrxgNwPuAP7NEsLu64GdmGH+b4SZcXzH0wmrRALzREvHrgR8A37LEsKYN+jbyaA32luDD9VrH2ztLsMkScalkXwd6PRPey+kam4cvnIRz/fpinW9dkimfxSYYeQmcALzJEnVZW32ZQ5Epw87AqZYI9nQH3G6G8Vddvubrlgiyz1T4oBn0at4wiffCya9/8w3wr7JCc3g7vIAX/qEmDcG5ZijMccg3pWtbtsZpikfUWuhMXN+s5rDKKVnjswH2wYvbPJ54Au42Q3N4HL4KPGaJIIcPQMkMxTAIfws8bYnAAQq8sx/2t8SINk1SWGaJ+rTBJVaI1hKyh8AKO1asngUvWaI5eL2ea9+9KPWZn37/3K3Y9MI7gUMtEez+LqdZayodcA3wiiWCBjlnPASvs0T8uuDbKfyrJYY1YyYsMMPImQInA9MtMewF0n0l+KEl4tKerWvt9FbhnMKuiSx02vlcKr78XBjz4JUEbrZELotMMHKqs+kdYIm69M6G/2uG+FTXE/+YJYJtHvLDlabSBfcnsM4SQd424DJJehUfAMe50S60QrgUVlmhucyCp1L4oiWCTNkKHzVDMfjWYtAx25u8I9eyzQv9IE6LG5n12UsNiywR7JkO+IIZmsvOcCvwa0sEOaa65reKMR6+AV9IyTOe+3B1zVp5rTHef7ufsEK0FgOvN0OwW+fCb8zQdMfvK60Q3OrjVtB/8QFwZAZgFnC4JYI9WoL7zNCULvfCP9i5G12/sxC64B7gR5YYVk+fs1yM1Jjh/cB+lti+BL7rOmbxmQDnATtYIphT2DWhfWFLAqstEaQthaVmKIbZ8O8JfM0SwaancJQZGleGOXidUa8fz/bvNtb9vgM43xLBKsB1Zmg+1ftpP7ZEkDkD8A4zCHwAHONZ6CIgsUSYBFYl2clbTaYbHk9ciy7UroNwihkKcUxKfWsxqJM3eUeGHWu71ARxWQ9TgdMtEWxLxSnsmlYK1wPPWSKo1YlleJMlCrXvK9xiE4zIfnexFepu93+8txbttfUJwN6WCHZPCX5ihqbcl9PUJVSCDTmDrKp8AByRMswEjrVEsKe2wB1maOqTkdNuhlv+MEw0QyEGrXcC/2aJYS3oh/3NUL8+6ElhniWGtXE2fNMMcemAs4FdLBF8zrmtB560RHMqZQ9/XQ818M8/zb7+VwF0wb/gDfY8x/LDB3yA05Ay7JfAEZaoy6YX4StmiE8KSQrLLBGu4jKCTW2X7D7/f1giaOzw3n7osoR8AByXlUC7GYKtngevmKF59UAf8B1LBNnrFTjeDPErwWAKV1li+PFJ6tq1jQ72V1qhpksSSM0Qj7XQmcISSwRLgWvN0NwmZF8ybLVE0LnttAHXMCzKtkzJ1gJW4Nh4CE42Q0NW4j3QegcTn5wP2ywRnwE4GjjAEsF6e2CdGZrXvrAl9fomz/H7AivIwU8sZyDYA/iQJYK9jNPdxXIyusIK4RetqcftQngRPo9fZNWyaD1MN0N+fTAD14qrZdPj8FUzxGWnbArMPSwR7N4ueMQMze1g+BXZ7CCqbcdKNguACmAz3AY8b4kwCXxkjR8E1OUH8Cf4MnW9frmjM+tFK4XlVsh1nL3MCs1vCG4EnrVEkGM3wJ+aobX5ICGeDbUc6LRE8En7lhL8zhLNrxu+ATxoiSD7DcACM8RvPmxOYbUlhtXZDmeaoa5z4HK8QVjLZQthyAzxWAsTXB88N6ewi+iYhGsrhjr7AZhihvi9HV5I4YuWCLbnPvAeM+S3Dc7H5ZTqdcUBzlIRpT44DJhriWCPb4J7zdD85sLzCdxkiSDt7U4D3/J8AByBdTANONUSwYZwOoioJNnUdwpzoQkKs9+vJlv7T9tvtGQjTLZEuA2wK3CiJYb1q5294RydnbIvd95sieDjZ18JHrBEHErZWqhft0SQaZ1eGxdGG1yPyzHkObYvtkI+D8Hr8JhRr6dwnfqYuSRQPqt8QTgeg9l95M2WCLKoF/YyQ0uPt9XsJmVrnfmWc7i7uuBnZojH8/Bl4N8tUVsK3QPwbkvErwTPJfBZSwxr2iCcZIZcA7sl+NC8lqv3hS1miOrclySuX5RLBS63QlwSl0XJY/laZ8cqhC54JIVvWyLYkWV4gxnCbYGz8H5a3WPmUra8miLTC92J943yeLoDbjdDPObCb4AvWSJIRxucY4bW5QPgJrcRJqeuc5RLAldZIS7zYRvwKUuEGfIr4MKovrX4iiWGtcz1zsKshc4EzrDEsJ7ZDJ8zQ1zK2ZrWB1oi2BNPwN1miEsX3J/AOksE2WMKfMgMxVD9ClhhJuDLkXnHxt5Pq89zZOtsKs7jqveMckhh9Sx4yRLRbbcrcQmVUGeUYTcztOw5Qc1sK5yGf6B53N8F680Qpc/hus1BEnh3v2u5FEL1rcUvWGJYM2a69nWQKXAyMN0Sw14kfvrt8IIlortg8evffJzCLt5j1JVWCLbSF8SKobrm4hOWCHZaCokZgsfGe1iiLteWXK4oSmXYD6+f89g8BJ8xQ3y64ae4bnOoyWQzYqgF+QC4uU/aHQmca4lwKayyQpyqUwvdYIkwFVhuhWIYyqZ83GaJYY/tK6xQs1Eb8DFLDOul6trbims8PD+FeZYI9kyHLxZFqwvuAX5siSAzZ8KxZohf9YWVmywRbEYZ3mmG4VVfEDnfEvWNmdscM8dsJd7vz+PW6ov5ilAKl1oh2DkPw05maD2eEJr7IHYi8CZLBHu0BPeZIV5DcB1OuxIkgaN74QBLxG9O9sXDGksMq6cPDjXD9g3A+8ne9tb2j5s3lZxpIkZOYZePU9jFfZxK02x5CIVdL1/kl5CF8XlgsxmCjxWnWmF4M+EDwFssUZcbZ8NvzRCfXtgLON4SwSpk9yEVqW7oBe63RJBpm2GxGVqPD4Cb92K2LYGllsh1EbQqce7/qM2Bp1O4zRJhu3wbLDNDYVyWHfo1zDHec+Lw7DO8wRSuMUNceuFg4DBLBNtScQq7Ipzvbgd+YYkgswbgPWaIX/UFrS9bItixruU3vNQZs+oeS7T5IlK02rL9fqIlgt1Tgp+YIfqx8xVWCD43Ln3YY0QrnhvUjMpwDPA2SwR7agvcYYb4VeAqnA431AkDsLcZ4leCHwJfs8SwFvTD/mb4Y33Q4xS5Nd1egp+bIboLlYvx675gCdzWA09aIvoxwWDq1Jt5rDRBMaR+hZXHJOCvzLDdsfFhQJcl6nLLbPgPM8RnA+wKnGKJcBWXESyE2dm9tB9ZIsieL8OHzNBafADcvFzvMJ/V8+AVM8RvDjyRwFcsEaSj4rpGhZHAJVYYfsySusbt9vYdb37XuLb3S4b49MFbyV6IVJgUuNYMxTAENwLPWiJox3+ny0QUQzc8CKy3RDCngd7eRYP30+o+/SSOmaPVDucCky0RrLcH1pkhfkl2HeTD/PBeF6Q+E2y1cZGaTRkOT6BkiWAv43R3RTsZOR1uuMUD8HozxK8ru+Hl2iXDW7Qeppvhf/TBDOAoSwzrq7Phx2aI7iLlAq9Vcrm3Cx4xQzHMheeBz1oimA97inMd6Nfv4Q4swxwz/L4BmJXCuy1Rly91wc/MEJ8HYArwUUvkOt9cZoVC+Vuc8SvUW8twtBlahzdVmtOFJsh10r6lumaQCmI2bAS+ZYkgO1b8KrIwUrjUCsPqbIczzfB758DlQLslhh3sXm6FuKyHPVOnpsrLt94LZht8CthsiaBz4fvK8GeWKMBAD/4ep7LPY7EJfl8FLsLlI+pKV3EdzWjtAGcAr7NEsMc3wb1mKI4SDOJsSHnGzh9PPVe2DB8AN5k+6AHeZYlgQx7giyn14iOPJWXY2Qzx64ZvAAOWGHagumSjU1sB/73O04mWGNY3Z0PZDHFph6XAREsEHxf7SvCAJYplLvwGuMMSoX8GfgVcBAfAVuBzlgh23HqYaoZMdWYcl4+oz1d74GEzxOcxmJRm0z8r3KqF2f1kFUhHNnvO05YIcnAZDjNDa/ABcPNtkIutkMtdTlFTTN3ZF8D9lgiycwKnmaEYEl9+qGXaIJxkBmiDJfgwfFh+VR+fdTAt8YumXCp+5V7kY9iqbBMrwHH98BYzFGJ8cyPZlzyqbacO+KAZ/vs6ahkwwRJ1/d05lojUs7AIeKMlgj3dAbeboXhmwUtJNoZQ2DnTGWhb5xyvZtEP+6fwPkvkOlhdZYVCb98rrRAmhaVrodMS8dsEXwEes8Swlq1p8WmP10Jnkk31pe3r7YbvmCEuE+EcYCdLBHviCbjbDMXUDT8F7rFEkPYUzjdD/GbDf+BxLc91oC9NARthd7IHYcopgW84Y06c1kB7ks2co/Bj5upZ8JIlimkCXAe8Yokg83thnhmKzwfAzeVCt0ku93fBejMUV/VBmF94h5k+1a8iC2EhDPnyQ00zZsKCVg4wBU4GprsrDHtxf4kV4lKd3v0sS+TiFHbFP5ZdZoVgp5ThDWaIXwWut0Kwnl44uNUjbIOPATu4O9R1nvmkFeK0DywE9rVEsM1D8BkzFNcseAr4giXCtMEFVmiJ7axm0At7pXCcJXINUldZodiqNzQ/ZYngv4kVa53yqhCmZlMS/coSw+/vLfy7t5Hd5NL2PVKC+8wQl8Hsq/bdLBHsmQ5vcBReN/Sm8D1LBJlENouAItcD3wUeskSYNjillX//jTA5dWacuiTw3RI8YIlot99yK+Ry61z4jRmKLc0+qPAF2TBH9cGBZij8OFFNctJeAXRYItij3thtDS/ALcCTlggyYyf4gBnity9sAa6xxLB6+uDQVvzFB+D9wH7uAsNe9F2auG5mVMrZONgHN/k4hV3rXCteYYVgZz4Iu5ihEPu9XwGHO7EMO7bqLz8IpwO7uhvUNWb26994x85HAIdYIliFbHpgFVw3PA581RJhwy1fJCk+HwA3gY2we9Lib2zWcTG4yhu7rWE+bAZusETw38aFKSSWiF9HNjXR05YYdn9v1fWOXOdpeL9I4MtmiM6Hgb3MEGxLxSnsWkYXfB34gSWCTB2CM80QvxTuAJ6xRJBdEjimFX9xXyBryINd8C9miNZKE+RyTwl+YobW0ObLk3kc/yC82QyF/nvQeBuEc3Gtkjye2pJdDKpFbM3e/n7REkEOKsNfmCF+1a+6fPlheAv6Yf9W+oX7oCeFeW767Uvg8hIMWiIea6Ad3zzOu5/f1uMMKa20vdPUZVHyOHed19fRK8HLwG2WCLa4RY+PJwBvcvPX5W8SSM0Qn36YC7zdEuEqLiPYUmZDGfi2JYJ0VPzIoNB8ADzO1sNUfEM5r9Xz4BUztI558EwKn7dE8EXwX1uhGIbgWnz5YdhxTNpia+Emvuldy1NbsqUDFJGZcCzwp5YIlpKdH9Rax/87gX+3RJDdJznDVlHcgDN/hZ4Y3tlqL0amkKTetK7XI11wrxmi3fe955NPbw+sM0PLjZ39Cjj8mLK4F/awRDH5AHicTYCzcI2iPF7G6e5a0hBcBWy1RJC5Zd8GLYQ52RTQN1tiWIvWw/RW+EX7YAZwlJt8WNf4kliUF5wXWCGXe7vgETO0lhIMpj74z3NcWVGdGlZx7/ebgH+yRPi4uJV+2QF4H3Cgmz2/BC5xWbU49cNBOOtb3v39Miu0ni745+xUoQCdCSwxQzH5AHgcrYVOWuzLpRE4ad9Sgt9ZovXMhV8m8HeWCHahCYphWzZVkS8/DDNQbW+RmTSSbIrcdjf5dj3f7kti0emH92bX58rBKexa1ES4iezlMNW2VwrHmSF+Kay2QnCrD7fSiw8prHCr1+Xx5723ErMLs0tDhe7vm/zavZVdZYIwCZz9oB8pFpIPgMfRlGxaqjdYItgQvvXe6he0V+IaNaH+sg8OMUP85sIvU/iSJYYdqC7ZCJOL/DtugF2BE93aw7rhEHjWDHGp+MJS3uNdXwkesERrmgUv4Ysuef5eLky95xG9UvYF8KOWCDI9bZHZYsowBzjUTV7XsfGy+bDNEvHpgxkpfMASuaxamN1PVgt6PHvZZZMlgkwdgtPNUDxeDI2TNdkXPOdZIpe7uuBnZmjpi/8fAt+wRPCF3XIrFMblOEXXcKYNwkkFH7AtoeAPuRu0GbjODHEpw5wE3mGJcJXsfKAW1gGfxqnuQ+1fhiPNEP01TZrCjZYItrgVfskULnZT1+WXU+F2M0RrBTDBDMGe7nB/b2kL/Zgsr/PWwQ5mKBYfAI+Tmdl0VG+xRK4LP6dtEBW4wgrhY50HYV8zxK8bfprAXZYY1rI1BZ0eeW22HssZbuJh3VKCX5shOh83QS5PPAF3m6G1zYKngNssEXwNeZEV4jcBbiX7Al619/nDB2DvIv+OZdgvgSPc2nVZtS9sMUN8emGPpOAvPY+0FFbP8twhuBn4rRmCTJ8Ii8xQLD4AHp8TUOJaJbnd3wXrzaAe+G4K/2qJIO0VWGqGYhiCT+AU6MOZMRMWFPEXmwInA9PdxMP9eXC1GeLSD/sDf2mJXJzCTv91PbkKp+8Mvnwow3wzxO0QeDaBOywRpG0oGzsW2Qq8n1mPp3fIHoQoQgmcD3RaItjmIZfNEFCCl1O4wRLBlq91poFiDQxNMPYG4H3An1kiXPUmh/RfBy73h/C/nUUD8EZLxK8HfpDA/7XEsPv7igL+Tm3Ax9y6w/pyyXV9Yty3L/ZaJJdnOuALZhBANzwOfNUSwVaaIH5D2fTnvgwZIIGPFHVmnB/AnwB/5Vaua7+4+gB40RLxKcPOCZxmiVxunQu/MYMABrPlojz+hdlnCiw0Q3F402Uc+PVvbo+W4D4z6L/MzqY/fMQSQSYNwblmKIxLTTCsnj44tEi/0AC8H9jPTTvcsMo1UWOzAfYBPmiJXJzCTr+nko0JfBgW5vABKJkh8kEePJzA9ywRZM994D1F/MW2ZV9BTnQT5/Z8m1/AxWwJsLMZ8gyTuM4M+i/z4Bmy5SQU5uLU54aF4YYcY73wTgp2c3q0JbAqyU7e0n/tE5UEPmWJ4F5nPASvs0T8uuDbToFec38v2rTnTuM+jBTuK8EPLRGXdliO00rlsaXiFHb6Az3wgxS+bYkwFV/CLsp2XG2F4DHx4qL9TtVr2lPdunXtD58+BJ61RHzKsCPOCJXXPSX4iRn0B9egV+MSKqHeNuByTYXhA+CxD36hFXJ5aotr/eg1TIXbgV9bIsiUrfBRMxTm4v0KKwxrQXVt0ej1QU8K89ykw/Lr38isz9azXmSJXMf923rgSUvIMUFDjhmAt5khbi9mM0H90hJBjizDG4r0C22Bs4ApbtrcXk7gWjNEazHwejOEq7hsnF7DIfBvwBpLhEnh41YoBh8Aj6EBmAUcbolcVs+DV8ygP7QvbMEpXfI492HYyQzx64J7gB9ZYvtjm7Qgb0gnrllYq893u+H7lojLBDgP2MESea69vWmr11aCb2aXmQocHzirRuTmZ1/ufNYSoadcTirKL7MWOhM4281a10DiptnwW0vEpwwdZNOeK1xvD6wzg7ZzD+FyXEIl1JwBeIcZCnARZIKxU4GLsmONAr2M091pGNuyNWyes0SQXV+BU8xQiAFrmsKVlhjWoupXhtHqgxnAUW7KYbkmdmTWw1TgdEvkcm8XPGIGbU/qVy55Wp1YhjdZIm5t2QPgzZYIclpakHtQU+BkYA83aW6DLp8V9bX/CcDelsjV7DIraHu64CGyFygVYMiZbIsydtZYKMNM4FhL5Dpp31KC31lC2zMXngc+Z4lgyx6GiWYoxPHxTrLpa/TaOtvhzMi38XKg3U25XRtne+EWnY7sy51dLJGLD/c0rCeyqew2WSLsMJRmsxAoYrPhtyl8xRJBZpThnbH/EmuyMbFfQdYhhVtL8HNLRLntkhSWWSKXxzfBvWbQcFxCJVer9/ZDlyXi5gPgsbMSb+TmMYTT3SnABLgG2GqJIHu9AsebIX4lGEzhKksMO1BdshEmx/izb4BdgRPdisO6JHHqpqishc4Ullgi13GsrwQPWELDWQhDaTYeVtjf1WkDrqVYhO242grBrU6N/XeYmX1M8Ra3Zm5DE3yRLFoDcDRwgCVyWbUwu58sbVcXfBvYYIkwKVxghbj5AHgM9GbT1HzIErnc1QU/M4NqORh+lcKXLBFsZeqxvxBehM8DT1piu6YNRrruWVv2kGyym3C7Nj0OXzVDXHaCxTh1Yy6VbI0qqaYEbsH1HUPtOAQfNUPcSrAhgT5LBDm2DLvF/At487nubnceAo9ZItrtt9wKuTzdAbebQYH8oCLHOOJB2NcM8fIhwNhEXg50WiJc4oFY+VwOVMwQZL8BWGCG+M2HzalfP9SybE1ks2+shc4EznDTDesy3+yOy1qYkMBSS+TyxBNwtxkUogQvJ3C9JYKvNZc8AFMsEbfUfT7UJOCvYv3h++AwnH6yzj8RXySL1QC8G5hriVw7/OpZ8JIlFKL6QrkvyIRpH/KFlKj5AHiUrYNpFGDKnTF2fxesN4NCdcNPE7jPEsEuNEExVKe/e84S2zVjZmQvPEyBk4Hpbrrt+tXO8EUzxGWnbPmBN1siF6ewUy5b4NPAi5YIMq3Ta/To7QxfBp6yRJBo9/c2WOHmq8vd3fAjM8RpyHs2eW0egs+YQaGq11lXWyLYol7YywzRjqU0miZl0zj6dnEOqWuUqL795pNWCG7VXX2jVJErwXMJfNYSw+7vKyL6WduAj7nVhnX1vrDFDFH9DSaJUzfm9UwHfMEMymMePAPcaolgy9c6S1fUquOBmy0R5MAyzInthx6AWanXrXWpwKVWiFMvdCfu93ndOhd+YwblsXM2bnZZtTAdbXCOGeLkA+BRtBEmp3C2JXJ5tOSXnKpDCTYA37dEGN8oLY7B7K3FVyyxXT19cGgMP+gAvB/Yz022Xc9shs+ZIS5lOAo40BK5OIWd6lKBK7OhgQLsMQU+ZIbo3QhsM0OQxREe0y4CEjddbv/c4xrZ0WrzXk0dhwquM4Py2he2uKxaLmeUYTczRHle0WjZCqfhH0YuCaxKXMtVdUrhCisE/629ewD+H0vEr/qmq1+KDb+/x7L2qGukDn+M//Tb4QVLRHex4de/+WypOIWd6tQDvwD+3hLBVq6BdjPEqwQ/T+FeSwQ5bj1MjeWH3QD7AMe42eoaezk7WqTK2cvACyyRyz0l+IkZVI9JcAPeYwg1GTjLDFGOCzRKJ+2OBM61RC5PbYE7zKAGbgD8I/CwJcIMwTIrFGZbXoFfPwxnQT/s38w/YB/0pDDPTbVdLyW+nRvjeHi++3U+CdzW41RkamwfuhxILRFk5kw41gxxa4PrrRBkpw74YCw/bDssBya42fJJ4V9nw/csEa2VeK8+l4rLCKoBB8F/JvB5SwQ752HYyQzRjZU1SoOuE4E3WSKX1fOcxlQNSCBN4CpLBPc6uhcOsET85sATwBpLbH+8kzb52rpJdrGv7fe5qQS/s0R0nMIu9yUE15pBjeiCh4BvWiL4j+6i1ClmY9/nvw380BJB+3sU00BvhN2BRW6xOi564G+sEKde2As43hL5svXAOjOoEdVl1bZaIsi0zREuKeHYQKMxqG5LnMYxr5dxujuNzN/fHcDPLREkafMr4CK5DL/4Gc6i9TC9GX+wPphBtk6qtnNNlsI1ZohLLxwMHGaJXO7tgkfMoBFwuQmCzRqA95ghejeaIEhP9fzc1LZlL27u4ObK7Qez4Z/NEKe27Kv3iZYIl2T3QKSGzIVfAl+2RJgUlj7ssSq284tGWjlbp+Rtlsh10r7FL3s0EkowCFxniWAnDMDeZijEvv9D4GuW2K7OdjizSc+By3ENwuHcXvLFnhgvMi7Gr+rycgo7jdSYYC2w3hLBnIUjcjvA7cBzlgg6P5/SzD/fRpicwhluqfxS+ETiC8FR2gC70uR/m03o8U2uAa8RUn2ZoGKJIHu+DB8yQ1RjP42CFSbIZQinu9MI2gw3Ac9aIkhHBc43Q2EGrZdYYdg+SzbC5Ca82D/RrbNdlbZsSiZFpA/eSvZCpMKPT30leMASGimpy6LkafXOPjjUEvE6AF4EvmCJICeWYcdm/eEG4XSy8bHy+UkJ7jJDnNrhXJrsOjUCqxZm95OlhlVnYfq6JYKvXS9Ifa4YDTfUCCvD4QmULJHLXV3wMzNopLwdXsApxfNYPACvN0MhBq3rgfstsV3TBuGkJhuILfFif1hfnQ0ZZUcyAABPCElEQVQ/NkN0FxgXeJ2RT8UpezXCSvBV4DFLBPMl7sgl8Gn8eifELkmTvqRVhg7gHDdRfil8MnH/j9IDMAX4qCVyebojm/lBGslxxBVWCPbWMhxthjh4Y2bkXWiC3AdY307XiOvI1ot8xRJBdqxk6yypGBf/l1phWMvWNMl0y2uhM3GKu1oDVR+KRWY97Jk6JVReTzwBd5tBI3yNVfEr4Fy93leGP7NEvKovlf+LJYIsbtK/wxOAN7l58o8jXoQ7zRCnHbLrwddZIlwKq2fBS5bQCI8j7k9gnSWCz9kfT13yKQo+AB5BfdADvMsSudzf5fpUGgWz4KkUvmiJYEvKsLMZ4tcN3wAGLLFdM2bCgmb4QabAycB0N8l2fXM2lM0Ql3ZYCky0RC5OYadRsQvcBvzaEkES/Aq4CBvxeivUlsI7y7Bfk/1MSZqNIZTfFfNhmxni8xhMSrPpnxVu85Az/mn0zkVXWiHYwWU4zAzNzwfAIxvzYivkPrCusoJG0eV4QzXUzgmcZoZicOqamueeFU3wM7Thl/e1Gvk1e2TWwbSkSb8qamLPdLhupUbJvrAlgdWWCHZcP7zFDPGaDV8DHrdE0PXCyc308wzA+4AD3TK5PbnVcUS0noVFwBstkcutc+E3ZtBo6IJ7cAmqPGMJZ8KNgA+AR0g/7J9mA1aFe7QE95lBo6UbHk+cUjFYCkvXQqcl4rcJvoLr/g2npw8OHc8fYADeT5N9edFkervhO2aIy8Rs3b6dLJGLU9hptMd31wPPWSJIewrnmyFeCVQSuNESQceGD1fX3G2Wn8cv8Otz5TyXvorSGmhP/Oo9rwpwnRk0iuOINIWrLRFsfi/MM0Nz8wHwyLnQnrkPqquS7OQtjZoh14/MY/pUOMkM8VsIQ4lT19Q6B433xbYX+8NI4RIrxGUjTAbOskQuWypOYadRVsoe/t5siWCnlOENZohXB3weX6wJuvZL4ahm+EHKMIdxfjkzUk/vADeZIU77wEJgX0vkck8JfmIGjaZd4A7gPywRpg0usELTbyM1qhf2SuE4S+Ty1JbsgCqNqh7ow6/IgqWwYi1MsET8psLtwK8ssV0L+mH/8fgX90FP6luSw3nEGULiMwhnALtZIlwCt/XAk5bQaJuQfcmw1RJBJpHNZqBIHQT/CdxpiSBNsWxD6nJq9br2AHjRDNGOA5dbIZ+KywhqDOwLW1K41hLBjupzCYem5gPgkTlpr6CJps6JxGqnqdEYXlC6Hmq4GTvBB8xQjEErcI0ltj8GSsdpDd4EVpp/2GP2pc4QEpfqFJI+MMm9q3tjQWPj4OyFMB+IhTvzQdjFDBEP8lz7OnRMevgA7D3OY4j9EjjCrZHb8xPdz2MeOx8BHGKJXHp7YJ0ZNBaGsuUknrVE2HDCF1qaflysRmyE3RM4xRK5vIzT3WkMdcM3gActEXwj4MIUEkvEryM71j5tie1a1At7jOW/sA9m0CTT7TWpXyTwZTNE58PAXmbI5d4ueMQMGkOX4cs1oaYOwZlmiNds2Ag8YIma2obg5HH+GVbgvcl63FD92l1x8oXgnJJsHCONibnwfOIU+3kc/yC82QxNOtgzQWMG4VxgB0vkOmnfUoLfWUJjvN9dbYVgB5XhL8wQv1nZ+mc3WGK7OpNs2tqxPBYtB9pNv90+l5dg0BLxWJPtz77xm59T2GlMVdfM+7olgp27zuv8qKVwvRWCxl4fWTNOY9MfwJ8Af+VWyG0zcJ0Z4tQPc4G3WyKXxzfBvWbQWBrM7iNvtkSQjgosNUNz8gFwA9bDVHwzOK8hnO5O4+D57Iuyf7dE8I2Av7ZCYQ661+LaUMPt60s2wuSx+HdtgF2BE62+XU9tgVvMEJeZcCzwp5bIddzpK/llmsZn33NZlHC7T3Kmr9j3938gm/5cw9tzHzh8PP7F2+B8YKKbILebSvBrM8Qp9V5LPVYtzO4nS2NmLvwG+JIlgo9ti8d6hj2F8QFwAybAWbg2UF53dcHPzKCxNh+2AZ+yRPhYp+xbqYUwJ5sC+mZLbNe0QThpjAZdSxijh82RumYevGKG6C70LrBCPhW43AoaD11wf+L6eXmObyuqa5wrQiUYTOBzlqgtgVPH+t/5ELyOcfj3FsBgm7ObRasfDsLZ1vJ6ugNuN4PGaSx4JS6hEqozye55qcn4ALhOa6ET+Jglcl9YXGUFjaPP4fTjeVxogmLYlk01utUS27VstKe+WzsO001H5vn2bM1qRaQf3gt0WSKXJ56Au82g8VK9kaUwe6VwnBniNQSfdQwc5MgyvGEs/4Vbsg8qppg+t9tnO7NZzC4EEjPkGresri5tJY25bvgpTj8eLIGzH/RjyabjA+A6Tcmmg3qDJXK5vwvWm0HjpQQv43qoefxlHxxihvjNhV+mTl0znBkzYcEojxtOBqabertuOASeNUNcKr4oVA+nsNO46oJ7gB9bIkwCF6beN4lWDzxJNhW0hjeBMZoRB/77xcizzZ7b0JBT+UerD2ak8AFL5LJ5yJeENc5SuNQKwaYOwelmaC5eyNSh+pXQeZbIfcBcZQWN+xUTXIdvDwZLYLkVCuNynLpmuHPUilH8Z7fhrCHDXtiTHZsVkTLMSeAdlsjlmQ74ghk0zmO7NHX60Dz2L8ORZoh6jHe9FYKclo7Rl4nVFyNdJzC/NXPgUTNEawXZyxYKd2t1HVZp3HRDL3C/JYKdtw52MEPz8AFwHWZm00C9xRK5PFqC+8yg8TYHnk7hNksEW/gg7GuGQgxaf5rAXZbYrp4+OHQ0/sED8H5gPxNv1y0l+LUZ4pLCxVbIzSns1BSSbC29X1giuNdFVoh6DPx9oN8SNc0owztH+19S/aDifHPXM/TyK7RYrYfpyRh+ZV8QFXxJWM0zFnT2hXDTJ8IiMzQPHwDnH3Elo/mVUIEPlKsSvzxT84wirwK2WSJIewWWmqEw+/4l1ZsHeu1z1Wjt6/4Nbd9QAp8yQ1z6Yf8EjrBELlsqTmGnJlGCwRRWWyJYTx+8ywzxSj3+ho6FF4/2v2MmHIsfVNSzbf6xBD+0RJzas+vBTkvkck8JfmIGNYPZ8DXgR5YItnytMx40DR8A5zQA7wP+zBK5PLUF7jCDmsUceCKBr1giTAqLBuCNlohfNzyYwP+1xHYt6If9R/If2Ac9Kcwz7XZ9uQt+ZobozgsXex2RTwK3VdeilJrCENyIa6/n+Rt2zfOIDcLfAk9boqYPlGG3UR5DXGDmuo7Zl1shTmXYOYHTLJFPxWUE1VzjwBT3yTz2mQILzdA0+6/y6IfveyM3t98kvqnYclJ4AfhgCQabdBA+G6cCy7M9r+z2Yr0o57H/nfoQeDg3luDMETzWfBU42qzbO7Qwy68Z4rIB9mnP1p/zjd58NibwWzO03EHun0rZzDNNqQyX4exWwRIodXn9EPMY+HIfPgY5pzRK0672wWEJ/IuJcx97vtUFf26JOJXh48D/sUQu2xL4jhla0tIueKhJ/5Y7gE3AXm6mID/sglmJsxA2wzhCoXrhnW2egKQ8Ti3B55t4IP5NvJAK9cJE2Psg+E9TxK8P1iXw/1jiNW2uwD4j8aVeH8xIsgdl7Wb9Yyn8YzccZYm4lOEGRvAlCangXgFmNus65+th+gT4N5yWMtRXSvD/miFOA7B3Jbtx67hseD8qjdKsd/3wLykcZuLcY+b53d6LjHXcvCPZefb11pBqS+AfuuADTfw3fT5N/HJnE27PI7vgPkuML6duyxfLaZ+kfD7+MExs4gupK9xEwaZshY+aoTCDMPf97etM4IwR6rwcbzIOx6nsIrMepgOLLCEF24HsRlFTmgu/waV68jhmAN5mhjjNhn9PsjX8NLwDyzBnpP+hAzArhXebN7cNPvyN2mJ8+CsFS7Ox1qxm/fk64LO4pESe7flxK4w/HwDnGKwCh1tCymXvV+CkZv3huuFbOI1bHuc+DDuZIX5dcA/wI0u8tgSWbITJjfwzNsCuwInW3G7j73bD9y0RlwlwHtkDLUnhPlqGNzTrDzcEVwIVN1OQthSWmiFeKVxvhSCLR/ofWIGLcBbCejh1cKSq08Webwkp362CFP66WX+4WfBSAje6mYLNGYB3mGGcL2BM4GBVGmVN/RVwkt30UphdX4FTzFCAETWkqfv+cKYNNvjyShssocGHyAV3qQnish6mAqdbQsqtqb8CnpMtVXCPmylMCieW4U2WiFNXtv7sTyxR03HV8/6I2AD7AMeYNbeNXfB1M0R7zX0CsLclpNxjrab+CngCXEe2zIsCDDmj7rjzAXCAMswEjrWEVJem/gp4E3wF+JmbKdiyZn6gr1wXpHeSrUek7ezra+qcvnntCE4jXVAbZ2drsCsiHXA2sIslpLo09VfAFV/KyXU4TLPZEBTn+DclW8tew9upAz44Uv+w9mxZlAlmze2S6j6ryKTZV4zLLCH9/9u78zi7igJh/8/p7iQdJEFwQRwRJWZUgmC6b4dMRDE/lZdxdBBlMjiiMgyDDMpmgCSg84cKhJAEEhYjsqgsYl5k3EZwgbhgDMlNh1XGgURZRRQGCJCl0/e8f5z2N4jppKrTy6lzn+8/+lGi6adu33vOrVNVA/u4Lvkq4MeBrzpMwddeh6yGTkuMHCeAw8zGM/ykHVHaVcAzoBc43yEKtucG+LAZ0leDHmChJfq19wQ4dCB/cBz8M8VZqdr6DcDZfpmVlmXQnher2iUNTKlXAU+BVTn8zGEK/hw7tg4vt0SaNsJXgGcssW35IG0DfQe8EjjKotHuXwc3mCFN3XAYMMkS0oA/g0q9CrhvR71eRypMo3gQTCPECeDtWAmvAo60hLRDSr0KeD1cATzmMAWbnfv5UQnr4cu+9rd5UT9rAH+mBTjRev1auxa+aYa0jId/obgmljRwpV4FnME8hyjYTnmxK4ISdCCsz+EqS2zXlJXw1h39H9lSXBePNWf0e/JZM5xcSFbD1b/SDr8NlnkVcBesw4d0Yj7TDl8DEy0xMvwCf/uBTgPaLSHtsNKuAp4OG3ErsBhv6h7gykiV77Wfw0WW6NeUVfC2mD/QDR8A3mS6fs31y6y0LIM2t7CTBkWpVwH3nTN5u8MUJoMTboVxlkhTC1yMu5GEdDp6R/78HfCS3GNRBuKhdrjWDGnqhndl8DeWkHZM2VcBt/jwZIzWXlcBj+RrVf1ZDrsB/2oJaVCUehXw5uJLgGcdpmBzTFANWTEB/LQl+u0zM/KPzLRavx7ZxRU3ydm52Pb/dZaQBkVpVwFnkOceixJjt3a/K0hWJ9ybwy2W2K6P1mGngf7hHvgE8DIzRps7CTabIU29flciDdrlaZlXAXdAHa8lYhy1EvY0w/BzAngbxhRnnflUrzR4SrsKeBo8mcNlDlGYHLq64V2WSF8Nns7gS5bo16Gr4c0h/+AqmJLDNJP1a+FE2GSGpN7rswxOt4Q0aEq9CjiDrwMPOEzBTlvmbmHJ6lsFrG17aQYfHMgfrMMo4CQTRvv9ZrjSDGlaCV2Z35NIg3k/WupVwB6hEmVUi9cFI3XNq63p26rGc32kwVXqVcC9sACftI3p5ZOtFdEDC4ENltj6tVIeeKZvBrPN1a8nNxZnTishdfh7YF9LSIOqtKuAa9CTwyKHKNirxsGRZkjTWvgO8BtLbNcxA/lDGXwEeK35orstmOZ9Wbo3jn5HIg3622KZVwF3wg+Abocp2HF1eLkZhv2zSVuzGY7FF6Q0FEq7CngqPJzBNxyi4JvTd3V7tk0lTIXfA1+1RL+OWgmv2tY/sAr2ppgs01bkcOGBsN4Syd0ouPpXGnylXgU8Gi4FnnCYgs1eCq1mSM8M6KV4vWvb13AH1eFNkX8myz0WZSCe3ABLzJCmvt+TQy0hDfrnUKlXAVMsJlKYlwDHm2F4OQG89Q/tURmcbAlpSJR6FXAO5xX/ohC9cKoVKjOW84Atltiq9gyO29Y/kMFp+AVwf57rO2taaV0PT3dLc2nIlHYV8P7wHPBFhyjYhAnwITMk6zJgoxm2LYN/jvnnu+F9uIPIQDov9oHJpM3G79mlIXl7LPMq4HXFQqK1DlOwk+6Bnc0wfPxg2oocPopb1UhDqbSrgGtwF3CjQxR8k3rYSphkifQdUGyBt9QS/b7WT7ijeFrxL9wGL6O4dtDW211agz9aIjluYScNnVKvAh4FF+IWpDHfH5yRQ2aJ9PRdn1xnie2+xj/ed6Zv6D8/y2rRnss9lzpZK2FP4MOWkIbsc6i0q4D7dhTxCJVwu20c4PESGhgngP/yDaUlc6saaaiVehVwo1gJqTBZi6uAq2QuroDv9yK1p5/3rRY4gX4mh0VPDheYIS0r4a3Auy0hDakyrwJ+HPiKQxSerBv+jxnSlMNiK2zX7nngUSd1OAB4m8kib6rhYh+YTFffdyKjLSEN3dtkmVcBA5cDf3CYgq+9Zt7je+ZwfkbpRRerHwT2sYQ05Eq7CngK/DSHXzpEwT7SDXuZIX19K+C/b4l+nfric/6WBWwP3dR3aXBVDR60RHI3CGfiajZpqJV6FXAO8/FoiBizTZCmLlgDrLDEdgWt1smLawjF2Zi5eixZfbtBHW0JacivTUu7CrgGz+dwiaMU7DUb4SNmGB5OAP8lt6qRhkepVwG3FF96KcyoRom/wFScDL5ghX7tPQEOfeF/MK44E21302xVI4MFZkjLKngjxQORkoZeaVcBd8E64AaHKEwOB61y1WPK178XWWG7jQ7e3kO/dXhTBn9nrej3j8s74FFLpKkVTsbzLKVh+Sgq8yrgnmJHkWcdpuDPvlm5c5PDwsh/frF6cAY1S0jDprSrgDvgW8C9DlGwY7rhFWZIX2exAuLnluj/IvUF/74FONEq/bqhA35lhuRuDk73HkEaNqVeBdyAc/BoiBg+TJ6odvi/wGOW2PYlQm/x4OP2fge8hojT0+bD58m6FcYBn7SENDzKvAp4GjwJXOkoBXtjHQ4zwzBcwJngz8wxgTSsSrsKOCtWrp3vEAXbqeFEWJUuqs+xQr+m/GmFTzd8AHiTSfq9yDzXCmlZAa/J4UhLSMOqtKuAp8DtOdziEAXfP7yvDm+xRHomwWbgy5bY7mv8X158HMqf3A5/BfyTlaLvu66eDL+1RJrGFkcB7WoJafg+isq8CrgVFuIRKjHXFZ/JPXpqyDkB3GcVTAHeaQlp2JV2FfB4+BrwO4co2Al12MUM6euCG4FuS/R7kTqz79/OtEa/ftgBdTOkpbV4TY+2hDSsSr0KOIN5DlFMLlcBp6oFlgA9ltim17weDt7af7GleB/zGiJOAx+YTNZ9MCYvtn+WNIzKvAq474GepY5SsLfW4d1mGPJrXPWFONMK0ogo7SrgibCJ4gwHhdklg2PNUA1+4btNh9bh4zlMM0W/N2WuIk/Mctgtg2MsIY2I0q4CrsEP8aGwGEeshjeYIT19Z7B+yxLbvUf41xf/Z3cWKyD/1TrRru+CX5shTU/BUcCrLSEN/0dRmVcBZ8WDPR6hEt7LHXmHmBPAwGp4cw7vs4Q0Ykq7CngLXAI87RCFyWHmMmi3RPrWwvXAfZbo9/rJbQL7t6ILfmKGtIyGk4CdLSGNiFKvAs49nzJGa17isdS2NeBiK2zX+1/8wMomOJ7iLFTFcfVvopZCa+ZuUNJIXpuWdhVwJ9xJ8QClwkxf6eKKIeUEcGGOLaQRVdpVwFPhGZzoibH7+JKOpeLMgN4MzrNEv0aZoN+bMVf/JuYOeAnFl7eSRs7xK2D3Mv7FflNsZbfWIQp2dFlXdGvbpsBPKb64Vf/aeMH93jJoz+BTZon2vZq7KyTr9TADmGgJacSUfRWwO+pFaIHTrTCkfZvbStgzhyN8KUgjrrSrgNvgAmCzQxQmh1nLii8GlLi+c7AftYQi3FuD75khLT1wHPByS0gjaqc2OLWMf7EZ0JsX18MKMwY40QxpylwFHOLYvDjzmnHwz8CrTBJ9zzzXCkm/T5xmBWnE30fLvAr4FuA2RynY36+Cfc0wNJp+AjiDWbiKRyqD0q4Cfis8ksM1DlGwvXeGw82Qvr5zsM+3hCJuws7JoGGJdNSL62AnKqRyKO0q4AyuAP7gEIWP5Rp4qRmSvJa5GnjSEtu+36vDQUuhFbc8H4hlXfALM6RpFbwXmGwJaeQvT8u8ChhY4BCFj6UP1gydpp4AvgNemcHRvgyk0ijtKmCK83mc1Aj95IY5f3oqXGkbBV8EnrCEAjyUwXVmSM7HgdeaQSqF0q4CrsHzroyMMr4X/s0M6anB88BXLLHd+71jJsCHgDdYI04LnGWFpF/7c6wglUOZVwGvgxuA+xylYB9eA68zw5BcdzSvHjgZGOvLQCqN0q4C7oJfZ25rGmO/OvytGdK3PzwHXGIJbU8G59agxxLp6Fu545O2UrmUdhXwJrgQeNYhCnbycr9vSPWa5ov48O/2fKjkK6/K6rYOuNkMaVoNU4EDLSGV5yO7rJ9FM6AXWOgQBRvVgJlmGHxNOwG8AsbjE7lSGZV2FXAOZzs8EVdhfiFQGb2wCL/w1bY9vqnYHlQJ6Vu589eWkEqltKuApxXb4vpeH+6VY9xxLEmdcD9wkyW2qR3P64vmdwrJj5/fcUjl+70s7SrgXeBK4DFHKXgsj1kJr7LE4GraCeA2OB7P5JHKqLSrgGtwG57VE2Nq3adjK+GAYgvoyy2hbbhgGmwwQ3I3WKdbQSql0q4CbsB83O0h5n12Vt9Z60pv7C6yggbZr2ruKpas1bAf7nImlVFpVwFPhE1eT0Rpz+AEMwyuppwAXlY8qXiiwy+VVplXAc9zeKJ4Pk5FbCm+8N1sCW3FM63FVolKyGo4BOi0hFRKpV0FPAUeApY6RMH2zOEIM6SnVqwA/m9LaLDk8PnMrcVTNgfIzCCV8v21tKuAxxRHqq13lMJk8Kk1LtocVE05ATyu2IZpD4dfKq0yrwL+LnCPQxTsvatgshnSNxUezuEaS2grLpkMT5khLQ0f0JHKrrSrgLPigcjcIQruNSdv4t3XEh63PIclltAgWfssXG+GNK2CvXM43BJSeT+2y7oKeD/4nwwuc4iCje+FT5hh8DTdTchSaAVOceil0ivlKuAM8gwWODxRzU6zQmWci0+t689tBBabIS11OCCDd1hCKrXSrgLuhDtz+IFDFOzNdXi/GdLTVpzd95wltKNyOHs6bLFEsmYVbwmSSvw+W9pVwD2wEHfUi3HKchhrhsHRdBPAE4rtl97g0EulV9pVwDlcDTzoEAWbsQYmmiF9XfDrDP7DEnqBK2rwOzMkd3N8phWkJJR9FbDCe51hhfRMhqey4t5P2hEP7+TrKFkrYPespN9NSfrzy62yrgKeCg8D1zlEwXYfDUeZYXA01QRwXrwRzHLYpWSUchVwDXqACx2eYK0NmGmGamjAWbjtowq9GZxvhrSshjdn8HeWkJJQ2lXANVgGrHCIgk1ZBe80Q4IXO8V9n9e+2hHzJrnyK1mtxXcZ7ZaQyq/Mq4AzmIs76sU4bZk7LwyKppoA7ob3AW9x2KVklHYV8Eb4Ep55GXMRdlQ3vNoS6euCNRncbAkB13XC/WZI7v34TDyLUkpJaVcB5x6LEiXz7PUkTYF7MviZJTRAjwOXmyFNddglg2MtIaVzuVXWVcCdcC9wo0MU7PXjYIYZdlyzrQB29a+UnlKuAj4Q1gNfdHiCjemFk81QGeeYoOnlFGdCKyG3weuBf7SElJQyrwK+AbjPIQp2cDfUzJCeBlxkBQ3Qwho8b4ZknQDsYgYpHWVeBdziESqxzsx9eH0wXnfNYSUcBLzNIZeSU9pVwFtgEbDBIQqTwXF3wq6WSF8n3JLDLy3R1DdV36vBXZZISyuchtsoSSkq5SrgDBquAo7T8KH0JD0L36I4v0+K8TSwxAxpqsNOwImWkJJT2lXAHfCzDJY7RMH26Yb3mmHHtDTRD+p2S1K6SrkKeCr8PoerHJ5g4zbDJ81QkStqn1xsdq7+TUzf5NFRlpCSVNpVwC+FrwC/c4iCfbAb9jFDWqbDFoojgKQYi2vFJLDSdAzwCjNI6SnzKuAcznOEonp9xgo7pikmgPt+4Q92uKVklXYVMMUkSK9DFOzke2BnM6SvE74N3G2J5pPBT7vgF5ZISxucAoy1hJSsUq4CngibMrfHjdGSw0wzJDhwxQTwRkso0HMtcKEZ0lSHUcCnLSElq8xnAX8b+JVDFOyAbniHGXboGrb6GnAGkDncUtJKuQq4C9ZlxZZgCvOyDXC0GSpwNQ25Ty42Lc+ATswKGA98whJS0kq7CjiHi3GVW0yvj9bhtZZISwf8IYfrLaFASzrgD2ZI9l73I8BelpCSvt4q5Srgvu/SFjpC4Xrd2XeHVH4CuA4TgA851FLySrsKuNetUGOdWsbJfA3owvXrwG8t0VTu6IAfmiEto+BTwEstISWvlKuA+7Y4vdzhCX9bzotdGZTeta+r3RViU4tf7icrL1YOnmoJKf2P7bKuAn4pXA086hAFX38dsho6LTEwzbACeDbQ6lBLlVDKVcBTYBXwE4cn2J4b4MNmSF8NevDLjWa78D47g9wS6VgG7TmcYAmpEkq7CrituB7Y7BAFf54eW4eXWyK5a9/bsuLeT9qWKzr8Yj9Z3XAYMMkSUvrKugp4ImzKYZEjFK4Bp1lhYCo9AXw7/BXwUYdZqozSrgLOYZ7DE2V23iTHEFTdevgy8JglmsLatfBNM6RlPPwL8CpLSJVRylXAb4VHKHYGUZid8mJ3BiWmb8tzqT+9mQ/IJq3h6l+pSkq7CrgXlgBPOUSBAwmHr4GJlohX6S/ft8CngTEOs1QpZT0L+EZgjcMT7E3dcKgZ0jcdNuZuh9cs5s6AXjOkYxm0uYWdVDmlXQUMzAUaDlGYDE64FcZZIi27wHXA45ZQP67phPvNkKZueFcGf2MJqTrKugp4KjyTwaWOULDWXlcBD0hlJ4CXw27AvzrEUuWUdhWwT/pGm2OCaug7D+1pS1TaY+uLc2qUkJ2L7fZfZwmpcsp6FvB/Ad93eILt1u53FsmZCJvwzGttXaPhzmBJ6/U7CqmKSrsKuKf4HnmjQxTsY7cXO/4qQmUngMcUZ535NK1UTaVcBfxM8TT4Aw5PmBy6uuFdlkhfDZ7O4EuWqLTzpntjktp7bJbB6ZaQKqm0q4AzJz9inbYM2s2QnCXAFjPoRW6YAveYIU0roSvz+wmpqvfGZV0F/HvgGkco2JgtcIoZ4lRyAvgOeInn6UiVVspVwNOLLwHOd3jC+YRtdfQ9ubjBEpX05MbirGclpA5/D+xrCamySrkKuBN+nsFyhyfYq8bBkWZISw0eBL5rCb1QC5xrhaTHz+8mpOoq7SrgHM7DI1RiHFeHl5sh6vOtejbDsfhCkKqulKuAKSZJ/ujwBF6Bwbu6PWOnEvqeXPyqJaonhwsPhPWWSO4i39W/UrWVdhVw3xdZCjd7KbSaIbn7mIusoBe8Hm7sgLol0lSHNwGHWkKqrrKuAu6CXwPfcYSCvQQ43gzhKjcBXIdRGZzs0EqVV8pVwDV4HrjE4QnXW9IvLzWgsZyH2+FVzXN+wZnk9fD0HKZZQqq8sq4C/jbwK4cn2IQJ8CEzpKUTbgHusoQAcjjbCkmbTYWPSZQElHsV8DkOT5ST7oGdzRCmch9uOXwUeK1DKzWFUq4C7oXFwHMOT+AVGBy2EiZZIn0HwG+ApZao1O/npTV3NUjRbBNITaGUq4AzyHNY4PCEy+GMHDJLJGeJCZTBT2twqyXStAJeA3zYElJTXG+VdRXwSuDnjlCw3TbCMWYI01KxX+KWDGY6rFLTKOUq4APgiRy+4vCE3zO3uAq4OoNZnH2VW6ISenK4wAxpWQlvBd5jCalplHIVcAZXAQ85PMH274aDzZCWsfA14GlLNDdX/6atDU6jnMeLSRqCS9SyrgLOih31FP7ZO/Me37uDVGoCuA4fBPZxWKWmUspVwI1i1YNb4Yb7SDfsZYb0dcKdwPctUYE7I7iqBg9aIrmL+zNxFZnUTEq5CrgGPRlc6PBEmWOCtEyCZ4GvWqKpremEH5khTbfBy4CjLSE1j7KuAu6A/wTudoSCvWYjfMQM21e1LaBnOaRS0ynrKuDfZHC9wxNsVAM+bYZqyOALVkheI3P7zuTUYQJwmCWkplPKVcAbiu1xn3J4wuRw0Cp4myXS0goXAQ1LNK3PZe5+lPLv78l4jqTUbEq5Crjvs2S+wxN17Twr9/z27apMoDocnEHNIZWaUilXAWcwF28GYxzTDa8wQ/o6YQWeX5K6GzrgV2ZI7E4WzgBaLSE1nVKuAj4Q1gNfcnii+FB7YibDfbgCtFnd2wnfMUOaboVxwCctITWfsq4CBq7FXdhivLHuA/Db1Vahn2W2wxns6Qz+pgGbTCENnQ64ow4/xrMYQ+3UgBMp6Xkcir6gPieDt1siTS3FWc5KyAp4TQ5HWiLY9bkTLaqQXthc0r/aIooVVmMcpe3L4H11eEsN7rJGUuN2cQ7/xxJNN+5nZa7+TtZYOC6HXS0RfH//T8BtllCF3sOfLNvfqQY9q+CCDBY6QsHjOAf4piW22Sh9q2BK5odQzKDP6/QLL2m43p/enflEeIyngb1qxb8qcXVYDXRYIjk/rPklZoqfN+dnxSSLwnTWoNsM0rBcD3wZOMYSwa6p+UBPUnJoWV2sBN7bGk1j3Xp443TYYor03AdjnoZ1wKutEeSuTtjf7c6loXcHvKQHHqA4o1xh12EHd/nde79aKvJDnOlQBuvpLc6okTQMuooVwKstEWyXDI41QzVkMM8KSV48n2OFtCyH3TInV2Je4zc7+SsNn144D1fJxThiNbzBDEld8zay4sxrNc+Yz3XyN11PwVE4+Rtz7TzfyV9peOwPz3lNEf2ZPMcK/Ut+Ang1vDmH9zmUwa6dAg+ZQRrWD6LzrBB1czFzGbRbIn1r4XqK1RBKx8ou+IkZ0jIaTgJ2tkSwBSaQhs8B8N/Aty0RrDWHT5shLaPgMuB5SzSFh8fD18yQpqXQmsFMSwR7ZCe4zgzS8GmDxcAGSwSbvhKmmWHrqrACeE5Ffo5h0YALrCANr75JsPstEWz38fAxM6RvBvRmMN8S6cjhbCuk5Q54CXC8JYLdXYObzCAN+32ou0vEOboOe5ghHfvB/wBft0RTmD8RNpkhTa+HGcBES4TJYNEk2GwJafjsD48DX7VEuBY4zQr9tknXStgzhyMcxjA53DQFbreENLxmQC9wviWi3q9mLYM2S6RvfHHR+qglknBvDb5rhrT0wCeAl1siTAYL3MJOGn5TYFUOP7NEsDHAiWZISwtcaIXKe2IsXG6GpK8FT7VCsPUt8GUzSMMvL3aT7LVEsENXwb5m2Or1adIf2rOAUQ5jMLe7k0bqqhmuAB6zRLC9d4bDzZC+vqfjfQAijRuMczLPaExKvbgOPskSwR5th2vNII3Y/fs8K0Q5fg281Azp6IA7gFstUen3sYWT4FlLpGkVvLf4VVWgSyfDU2aQhl8XrANusET4R3TmKuCtSnYC+A54ZQZHO4TB7qzBzWaQRsZ02AhcYomom+s5OWSWSN8o+CLwhCVK7aHMs51S9HHgtWYIttgt7KSR0wnfxx2pYozvhX8zQ1pyuNgKlfVMi/f0ScuKYwQVpofiHFJJI6TFhydjfXgNvM4Mf/E6SvZT6GRgrEMYfJEzz+3upJG1ufgywKeFw+1Xh781Q/r2h+fwy5KyXyecWytu8pWIpdCKT7jGWN8KXzKDNKKfNXnuriCxTl7u9x6pvc6/CTxiiUqO7YWuhkzXapgKHGiJMDl8owYPWkIaOR1QB26xRLBRDZhphj+X5ATwChiPT8LGeDiHpWaQRtY0eBLPC4q9yf6sFaqhFxbhAxBl9fimYpt6JWQCfAj4a0sEf55c5pe2Uil+F78OPGCJYK8c485nSalBTw6XWaJyns+K+xklKve7hVgLTSCV4trZVcBx7/XHrIRXWeJ/JTkB3AbH41k4Mc53VY9UDltgPv4+xpha9yndSjig2ALaByDK6YJpsMEMyd3YnG6F8I9fv7SVyqFvcszfx7j3+1l9Z74rEVmx44RHDlTr9/DSDviDJdK0GvbD3cVi3sN+3AVrLCGNvE74Af4+xmjP4AQz/K/kJoCXQTtwokMX7Bn8wl0qjanFivxvWCKK5/RURN8DEH4ZVrLrhNbijGYlZDUcUtwLKtDSDlccSqUxGi6leDBMYfbM4QgzpKMGv6PYClrV0JO5fX3q5gCZGYLNN4Hk72SqMvjUGheP/v+SmwAeV2x/tIdDF/yCX1KDpy0hler3ch6eyR3jvatgshnS1/cAxDWWKJVL3BY3PQ0fjIm1wARSeewPz+HDR7H3D3PyRHdwa1Y5XGyFyozllZ6Fmq5VsHcOh1si2F0d8EMzSOWxrlhItNYSwcb3wifMUEjqBmIptAKnOGzBenrhIjNI5VKDu4AbLREug9OsUBnnAg0zlMImYLEZ0lKHAzJ4hyXC5HBzDbotIZXLKLgQjx+I8eY6vN8M6eiCXwCrLZG83jZXXiWtpTg2pc0SwdfO8zMXLEilMgN68QiVWKcsh7FmSGwCeEKx7dEbHLZg106Bh8wglU+jWAWsiOudNTDRDOnrgl/n8C1LlMIVfVsUKiE5nGmFKK7+lUpof3gc+IolwmVwhhWS+8x2pXv6rpsM95khTStg9xw+Zolgj+wE15lBKqXL8Sz6GLuPho+bIaEJ4ByyHGY5ZOEacIEVpHKaAj/N4ZeWCNbagJlmqIwv4FPFI603g4VmSMtqeHMGf2eJYHfX4CYzSKW9x58PbLFE+C3EKninGdLRA9fieddJv03lMNcM6WotvkNwBVigDBZNgs2WkMqnBs/ncIklopy+zB0g0pkA7ob3AW/xdRt8M33TFLjdElKp34DdSirufe2obni1JdLXBWsyuNkSI+q6TrjfDMm9D56JZ0AGy2CBW9hJpb4eWAfcYImo9zXPgE/INNiQwxWWSNa3uuBuM6SpDrtkcKwlgq1vgS+bQSqvnuIIr2ctEez142BGs0dIaQWwq3/juN2dVHIdxTa491oi2JheONkMlXGOCUbysopzzZCW2+D1wD9aItij7cXKK0kl1iiuB3xQI9zB3VAzQzpa4WKKs/uU5vuT0nUCsIsZgl06GZ4yg1Re0+BJ4EpLRDkzb/KH6JP44VfCQcDbfL0Gu7Pmyiqp9DJoZHC+JaKaHXcn7GqJ9HXCLW6DPjJy+F4N7rJEWlrhNNy+KMZit7CTym8K3J7DLZYI1/Dh+KR0wAMZ/KclkvODKbDKDGmqw07AiZYI1kOxslBS+b8XWIhHqMTYpxve28wBWhL5S7rNUYQM5rndnZSG8fA14HeWCDZuM3zSDNX5vLLCiHD1b2JWwO7AUZYItr4VvmQGyeuBivpgN+xjhnTkxSpgJaQFzrZC0o4BXmGG4Peob9TgQUtI5TcZfgsstUTUe9xnmvyapty6YX/gYF+qwR7OfROQkjERNuGTlrFOvgd2NkP6OuHbeK7WsMrgp13wC0ukpQ1OAcZaIvh1fplb2EnpqMEPi1t/BWrJYaYZkrrm/RHwX5ZIQw6/7ICfWSJNdRgFfNoSURaaQErqfvdcXPwX44BueEfT3jiU/S/YgDOK17UCnV8rtu6QlIgtcAnwtCWCvWwDHG2GSly05jmcZ4lh5VlmiVkB44FPWCL8YzWDRWaQ0pLDfCtE9fpoHV5riXSueYEvWiINLfA5KyT9+/YRYC9LBPtRF6wxg5SOTriT4gFKBept4h2GSz0BXIcJwId8iQZ7BrjcDFJapha/u1+2RJRT74HRZqjEDfrXgQcsMSzu6PAmITmj4FPASy0RbGmH7ylScn5T7GK11hLhHw8ZnGyGdGyEKynu+1Rut3fAD8yQphyyHE61RNT9+AIrSEn+7nqESlyvQ+rQ0Yw/e9lXAM8GWn2JBr+Ql9RcRSglqQ0uADZbItieG+DDZkhf364V3nQOz3XC2ZnbBCVlGbTnxQSwwvl+IiVoBvTmxfWwAuVwbB1ebok0HAjrc7jKEqX/vfqC18vp6oYPAJMsEewuHxCW0tQJtwC3WSLqM/70Zvy5SzsBfDv8FfBRX5rBenrhIjNIaXorPJLDNZaIMjtP4CgDbd/6YgX8Y5YYUmvXwjfNkJbx8C/AHpYIvqG7ueY5olKyMrgC+IMlgr3Eh4TS0gIX4+Rimf1XDf7DDOlqwGlWiLp2nu8DD1LSfPg57l7j8DUwsQmvP8tpC3waGONLM9i1U+AhM0hJO7e4Z1GgN3XDoWZI33TYmPsQ01CbOwN6zZCOZdDmFnbeAEvNpAbPZ8UEmQJlcMKtMM4SaeiEe/NixY5KKC92y/F+PFHd8K4M/sYSwR7ZCa4zg5SudXADcJ8lgrX2NuGDQqWcAF4OuwH/6msyXMPtsqTkdcGvM/ieJaLMMUE1ZMUEsMcYDI3H1sPVZkjLzsU296+zRLC7a3CTGaS0bYILgWctEWy3dr87SUqLDzmU1W+eha+bIV29fjcQe/+9aJLHkElJ63vIf6Elonzs9mLn4Wa69iyfMXACPsUaLIebpsDtlpAq8ft8thWienV1w7sskb4aPJ3BlywxJM6bDhvNkNR7W5Y16fk0A5XBArewk9I3DZ6k2Apa4U5bBu1mSMNa+A7wW0uUzrzpsMUMaVoJXZnfC8RY31IcwyQpcbvAlXikWowxW+CUZvqBSzcBfIfn2AyE291JFVGD24BfWCKcT/pWR0/x5OIGSwyqJzd6c5+cOvw9sK8lgj3aDteaQaqGBswvLgsU6FXj4EgzpKFvtY4PPZbLY5vhq2ZIV4vfCcS6dDI8ZQYpfRNhk0eqRTuuDi9vos/IctkMx9JEAzAI7qzBzWaQqiOHeVYIl8G7uj3rpxKmwu/xy5fBfj+58EBYb4nkLtBd/RtnsVvYSdUxBR4Clloiyuyl0GqGZFyGu7OUyXnTfAg1WXV4E3CoJYL1AIvNIFXHGLgEv/eJ8RLg+Gb5YUs1AVyHURmc7GswXAbz3O5OqpYafBe4xxLheuFUK1RmLOfh9muD5bnMJ0GTU4fpOUyzRLD1ra6kkip5n4v3uTEmTIAPmSGZ+70/AtdZohSeGAuXmiFpsynpEYdllMM3avCgJaTq2A/+JyseLlO4k+6BnZvhBy3VB2QOHwVe6+sv2MO5T0ZLlZNBnrm1e2yzw1bCJEuk7wD4DX62DdbvxaV9XzAqLbNNEPU6v8wt7KTq6YQ7c/iBJcLlcEYOmSWSGS9X4JXDoknwrBnStAJeA3zYElEWmkCqnr4j1dwVK9xuG+GYZvhBSzMBnENLBjN97UU5v+bZSFJVvxC4Gp/KjJG1uAq4OoMJ5+Kqnx2+/s/hAjOkZSW8FXiPJYJtyWCRGaTKXg94LEqc/bvhYDOkoQvWACssMaKeGe1uOUlrg9OA0ZYI9qO+9x5JFTMVHsbdRaLkMPOeJvgMKc0EcB0+COzjSy/8QhW43AxSNfU93HGhJaJ8pBv2MkP6OuFO4PuWGLgMrnJrryQvzM/E1VsxlnbAA2aQKns9vAwnyGLNMUFS12sXW2FEXbIf/I8Z0nQbvAw42hJR7znuNCdV+3d8LtCwRLDXbISPVP2HLNMW0LN8zUX9Qi+pwdOWkKprY3Gm4VOWCDaqAZ82Q2U+575ghQFreHOfnjpMAA6zRBRf51LF5f6ex/Y6aBW8zRJpaC+OPXnMEiN1u+023ClrhZNpkvMbB8ldHfBDM0jV1Qn3AjdaIuraeVZe8XPkS/HD1eHgDGq+5IL19LpNjVR5B8J64IuWiHJMN7zCDJW4cF0B/NwSA3JDB/zKDGnJ4Ayg1RLBN2o316DbElK11eAG4D5LRPHh+kRMKs7q+7IlRsSlNfidGdJ0K4wDPmmJqGvn+ZnHLEmV1+IRKrHeWK/4g/hlmd12m6I4106Bh8wgVd+W4mzDDZYItlMDTjRDZW5Sz7HCgC7uzrVCWlbAa3I40hJRXBUoNYEMGq4Cjm72vjq8xRLJXLctoTj+R8OnpwUWmiFdY+E4YFdLBHtkJ88GlZpCB/wsg+WWiLp2/kxe4aO4RnwCeBVMAd7pSy1cAy6wgtQcpsLvc7jKElFOqMMuZkhfV7F1jSv84vywA+pmSEsrzARGWyLY3TW4yQxSc3gpfAVX6sXIcBVwMjrgUeBblhhWX+uAB8yQpvtgTF5s/6zwD4VFfTsOSGoO800Q5a11eHdVf7iWEvwFzvQ1Fi6Hm6bA7ZaQmupifR7Qa4lgu2RwrBkq9fpX+HWCq6YTsxx2y+AYS0S9LyxwCzupeUyETZlHIMU6YjW8wQxpaMDFVhg2vb3eXyTtKTgKeLUlgq1vcat5qal0FA+WeSxYhKzCOxSP6ATwanhzDu/zJRbF7a+kJlODtZlPhUfJYeYyaLdE+tbC9Xj2X6iVXfATM6RlNJwE7GyJYI+2w7VmkJru2u5i4GlLBGvN4dNmSMMU+ClwpyWGxdID4L/NkOjgQWtW7JyjcJdOhqfMIDWPvoelz7dElOkrYVoVf7CRXgE8h/KcQ5yCO2twsxmk5tPrmZ6xdh8PHzND+mZAb+b2NUFyONsKabkDXgIcb4koi93CTmo+tWLy93JLRDm6DnuYIQ2Zq4CH6XLZ3XJS9nqYAUy0RLAeYLEZpOazS3Gc4KOWCNcCp1X05xoZK2HPHI7wpRV1QzDP7e6k5jQFVuHKvti7+1nLoM0S6RsPX/XCdbvurcF3zZCWHvgE8HJLBFvfCl8yg9Sc2mAhPgASYwxwohmSuXe5GnjSEkMng+/W4C5LJD2Gp1oh6n3lGzV40BJS85kIm3JYZIkoh66Cfav2Q43YBHAGs4BRvq6CPZzDUjNITX3x7llFcfbeGQ43QzUuXHH7mu29P5yTQcMS6agX18EnWSLq/uEyt7CTmtdb4RHg65aIcvwaeKkZyq8GzwNfscTQcVettK2C9wIdloiy0ARSU3/uLcH75xhZVsFVwCMyAXwHvDKDo31NRTm/VmzdIalJdcGNwBpLRHxyw5wcMkukbxR8EXjCElv1UAbXmSE5Hwdea4ZgWzKfYJYEc/GBpxjje+HfzJCMS3x9D9l94Y+nwHJLpH1vb4UoP+ry+yOpqU2FZzK41BJRPrwGXlelH2hEJoB74GRgrK+nYM/geUeSipsen+CMs18d/tYM6dsfnqP4Ukx/+b5wrg+JpWUptFLR82WGMlsHPGAGqbnV4L9y+E9LRDl5ud+/pPL6XgvcZInB14CzrJCu1TAVONASUfeIC6wgqaf4HnmjJYKNasDMKv1Awz4BvALG4xOosR/aS2rwtCUkPVOs8vML8Lj30M9aoRp6i9V/z1rizzy+Ca4wQ1omwIeAv7ZEFL/EkvSnazuPRYnzyjHuwJaMHC62wqC7rQt+Yoakfy+8p49zVwf80AySpsLvgWssEfWZc8xKeFVVfp5hnwBug+PxDJoYPb1wkRkkAUyHLXgWavT1Tt2nhSvhgGILaHfE+HMXTIMNZkjuhuJ0K0T1urkG3ZaQBFCDWzO3co19H53Vd/a8yv/6vhH4b0sMqs+bIF2rYT/c1Sv2PX9+BrklJPW9J5yHR0zEaM/ghKr8MMM6AbwM2oETfQ1FuXYKPGQGSS/wZeCPZojieUEVsQXmA5stAcAzrcXZyErIajgE6LREFFf/SvozDVcBx9ozhyPMUH4Z5DksscSguaMTvm+G5O/lMzMEe2SnYuc4SQKgC34NfMcSUddjn1pTkUWswzoBPK7YdmgPX0JRN7YXWEHSC9XgeTwLNdZ7V8FkM6RvKjycu33Nn1wyGZ4yQ3JmmyDK3TXPQ5T0l9fD3wF+ZYlwGczJR2AXOMVrgyuB5ywxKM5yJWS6VsHeORxuiaj3+kWTfGBa0ovkcI4VoozvhU9U4QcZtov/pdAKnOJrJ+oX86YpcLslJL1YLyz2S4HoG6HTrFAZ5+L2NZso3geUkDockMNBloh6717gF7eStvLekOfuDhDrzXV4nxnKbzI8lcHVlthh96+DG8yQrpbi2JQ2SwRb31LsGCdJf6YLVgI/t0SUU5bD2Ap8lg6PCcV2Q2/wdROutdjmUpL+wgHwRA5fsUSUGWtgohkqceH66xy+1eQZrqjB73w1pCWHM60Q5dF2uNYMkrYmg6vwuKTYZn4OJaIXLsQHoHb09X7WDOi1RJpWwO45fMwSUS51hyhJ2/hc9AiVOLuPho+n/kMMywRwDlkOs3zNRLlzMtxiBkn9aRSrHrZYIlhrA2aaoTK+QPN+KdabwUJfAmlZDW/O4O8sEWWxW9hJ6k8NerJikkzhpqyCd5ohgYGCezL4mSUG7CEfIkv85r24dx9riWA9uEOUpG3ogP8E7rZElNOXJb4TxbBMAHcX2wy9xddLuAzmud2dpG05AH6TwfWWCJfDUd3wakukrwvWZHBzk/7413XC/b4Kknv/ORPPXoyxvhW+ZAZJ27IBluBqpygZzLFCGhpwkRUGbK4PkaWrDrtkcKwlou41vlGDBy0haRvXgDnuOBvr9eNgRso/wHCtAHb1b5yHc1hqBkkBH95z8WGRGGN64WQzVMY5zXlvz7kOfVpug9cD/2iJqM+3y9zCTtL2HAjr8WGRWAd3Q80M5fdsceTJw5aI9vvNcKUZknYCsIsZorhDlKQQ1+LDIrHOzBN+mH/I/+Ir4SDgbb5OopxfK7bukKRt6oA7gB9bIlwGx90Ju1oifZ1wSw6/bKafOYfv1eAuRz8trXAaiW8bNMy2ZLDIDJKC3jDgfGCjJcI1fEg/CdOL4358wCH+fm/BNNhgiTTVYSfgREtE+VEXrDGDpO3pm3PyXjvOPt3w3lT/8i3D8H/g9kJxngEuN4OkUDnMs0KUcZvhk2aohqz5Xv+u/k3MCtgdOMoSUZZ2wANmkBRiKvweuNoSUT7YDfuYIYl7vfFWiPJk39bwStcxwCvMEHVPvMAKkkKNKh4ue8ISUddjn0n17z6kE8DdsD9wsC+RqA/tJTV42hKSQnUVK4BXWyLKyffAzmZIXyd8G7i7Sa4RftoFv3DU09IGpwBjLRHFL7EkRemF84CGJYK15DDTDOW2HHbL4DhLRF0vL+7bGl4JqsMo4NOWiHJXB/zQDJJC7Q/PZT4sFeuAbnhHkhf9Q/k/3oAziusvBerphYvMIGkAN7rnWSHKyzbA0WaoxGs/B+Y3yY871xFPy4pi1c4nLBEuh5tr0G0JSTEOgP+meChM4e+3H63Day1RXqOKbXDHWSLYczlcbIak7+0+Auxliaj38vl998SSFKwNFuNxCbHvt7NT/HsP2QRwHSYAH/KlEeXaKfCQGSTFWgvXA/dbIsqp98BoM1Tj85Pqbxd7Rwf8wKFO7qbqk8BLLRHF1b+SBqQB51ghyqgMTjZDOd0DO2fwKUuEy+DiGvzREmnKIcvhVEtEeWQnuM4MkmLtD48DX7VE1OfU39ahI7W/91CuAJ4NtPrSiLphvcAKkgZiBvQC51siyp4b4MNmSF8Neqj4pFEGZ/tkd1qWQTtwgiWi3F2Dm8wgaSCmwKocfmaJcDkcW4eXW6J8NhQPkb3MEsE2ZrDIDOnqhg8AkywRdY+4aBJstoSkAV4HnkfxfbLCm52e2t+5bYhCZN1wT6rLokfIE1PgdjNIGqjNcOVotwiLvWFyu5PquBzYqaI/25a18E2HOC3j4K/wi8hYv/BBB0k7eG13CvAeS0TZA1dNlkrfQ2QnWSJcDpd3wKOWSFcDGpnfI8e+7i+1gqSB6oJ1q+DorLgWVNi9Ru8yaJsOWxL6O0uSJEmSJEkaafXi7F8fIgvX0wp/PRl+awpJkqT/1WICSZIkSZIkaWTVYRTwaUuEy+FqJ38lSZL+khPAkiRJkiRJ0sj7OLCXGYI1gHPNIEmS9JecAJYkSZIkSZJG0FJoBU63RJTru+DXZpAkSfpLTgBLkiRJkiRJI2gCHAFMtEQUV/9KkiT1wwlgSZIkSZIkaYTkkOUw2xJRvleDbjNIkiRtnRPAkiRJkiRJ0gjphg8A+1oiXA5zrSBJktQ/J4AlSZIkSZKkkTPHBFGWdcEvzCBJktQ/J4AlSZIkSZKkEbAaDsmhyxLhWuAsK0iSJG33mkmSJEmSJEnScMvhDCtEWdkBN5tBkiRp25wAliRJkiRJkoZZN7wDeLslwuWu/pUkSQriBLAkSZIkSZI0zBpwphWi/KoG3zODJEnS9jkBLEmSJEmSJA2jOnQA77FEuBw+n0HDEpIkSdvnBLAkSZIkSZI0vP4dyMwQbO2zcL0ZJEmSwjgBLEmSJEmSJA2TbtgHeL8lwuVw9nTYYglJkqQwTgBLkiRJkiRJw6QBn8Hv5GI8vBNcbQZJkqRwXmxKkiRJkiRJw6AOE4B/sESUeZNgsxkkSZLCOQEsSZIkSZIkDYMMzgDaLBHsceByM0iSJMVxAliSJEmSJEkaYithzxyOtESUhTV43gySJElxnACWJEmSJEmShlgrnA6MtkSwp4ElZpAkSYrnBLAkSZIkSZI0hFbA7jn8iyWiLK4Vk8CSJEmK5ASwJEmSJEmSNIRaYSYw1hLBnmuBC80gSZI0ME4AS5IkSZIkSUNkOeyWwXGWiLKkA/5gBkmSpIFxAliSJEmSJEkaIqPhJGCcJYJtaoGFZpAkSRo4J4AlSZIkSZKkIXBrMfF7giWiXNEBj5pBkiRp4JwAliRJkiRJkoZAOxwP7GqJYL2Zq38lSZJ2mBPAkiRJkiRJ0iBbBu0U2z8r3DWdcL8ZJEmSdowTwJIkSZIkSdIgGwfHAntYIlijAfPMIEmStOMyE0iSJEmSJEmDpw6jgPuAvawR7Poa/IMZJEmSdpwrgCVJkiRJkqTB9XGc/I3SAudaQZIkadCurSRJkiRJkiQNhqXQCpxuiXAZ3NgBdUtIkiQNDieAJUmSJEmSpEEyAY4AJloiXA5nW0GSJGnwOAEsSZIkSZIkDYIcshxmWyJcBj+twa2WkCRJGjxOAEuSJEmSJEmDoBs+AOxriXCu/pUkSRp8TgBLkiRJkiRJg2OOCaKs6YQfmUGSJGlwOQEsSZIkSZIk7aDVcEgOXZaI8rkMcjNIkiQNLieAJUmSJEmSpB2UwxlWiHJvJ3zHDJIkSYPPCWBJkiRJkiRpB3TDO4C3WyJcBmdl0LCEJEnS4HMCWJIkSZIkSdoBDTjTClHWPQPfMIMkSdLQcAJYkiRJkiRJGqA6dADvsUS4DOZOhy2WkCRJGhpOAEuSJEmSJEkD9+9AZoZgD4+Hr5lBkiRp6DgBLEmSJEmSJA1AN+wDvN8S4TJYMBE2WUKSJGnoOAEsSZIkSZIkDUAOn8Xv12I80Q6XmUGSJGloeYEqSZIkSZIkRarDhBwOt0S4DBZOgmctIUmSNLScAJYkSZIkSZIiZXAG0GaJYM+0wCVmkCRJGnpOAEuSJEmSJEkRVsKeORxpiXAZXDgZnrKEJEnS0HMCWJIkSZIkSYqQwSxgtCWCPZ/BIjNIkiQNDyeAJUmSJEmSpEArYPcMjrZEuBwu7YA/WEKSJGl4OAEsSZIkSZIkBWqFmcBYSwTryeB8M0iSJA0fJ4AlSZIkSZKkAMthtwyOs0S4HK6swYOWkCRJGj5OAEuSJEmSJEkBRsNJwDhLBOttg/lmkCRJGl5OAEuSJEmSJEnbcWsx8XuCJaJcNxnuM4MkSdLwcgJYkiRJkiRJ2o52OB7Y1RLB8hzmmkGSJGn4ZSaQJEmSJEmS+rcM2sfBOmAPawT7jxp80AySJEnDzxXAkiRJkiRJ0jaMg2Nx8jdKA86xgiRJ0shwBbAkSZIkSZLUjzqMojjHdi9rBPtBDQ4xgyRJ0shwBbAkSZIkSZLUv4/j5G+UFjjbCpIkSSPHFcCSJEmSJEnSViyF1r3hXmCiNcLk8MsumGYJSZKkkeMKYEmSJEmSJGkrJsAROPkbpQU+ZwVJkqQRvyaTJEmSJEmS9EI5ZDnMtkSU2zvgB2aQJEkaWU4AS5IkSZIkSS/SDYcB+1oiXA5fyCC3hCRJ0sjyDGBJkiRJkiTpRVbBqgxqlgj2X50wKYOGKSRJkkaWK4AlSZIkSZKkF1gNhzj5GyeHs538lSRJKgcngCVJkiRJkqQXyOEMK0R5MIPrzCBJklQOTgBLkiRJkiRJfVbCQcDbLRHlnBr0mEGSJKkcnACWJEmSJEmS+rTAmVaI8thm+KoZJEmSSnVNK0mSJEmSJKkOHcC7LRHlvGmwwQySJEnl4QSwJEmSJEmSVPh3IDNDsCfGwqVmkCRJKhcngCVJkiRJktT0umEf4P2WiLJoEjxrBkmSpHJxAliSJEmSJElNL4fP4ndlMZ4ZDReZQZIkqXy8qJUkSZIkSVJTq8OEHA63RJRL9oP/MYMkSVL5OAEsSZIkSZKkppbBGUCbJYJtBBabQZIkqZycAJYkSZIkSVLTWgl75nCkJaJcWoPfmUGSJKmcnACWJEmSJElS08pgFjDaEsF6WmChGSRJksrLCWBJkiRJkiQ1pRWwewZHWyLK1zrgATNIkiSVlxPAkiRJkiRJakqtMBMYa4lgvb0wzwySJEnllplAkiRJkiRJzWY57DYafguMs0awr9fgn8wgSZJUbq4AliRJkiRJUtMZDSfh5G+MHDjHDJIkSeXnCmBJkiRJkiQ1lVthXHtxju2u1giTwXc64VBLSJIklZ8rgCVJkiRJktRU2uGTOPkbpRfOtYIkSVIaXAEsSZIkSZKkprEM2sfBOmAPa4TJ4Med8B5LSJIkpcEVwJIkSZIkSWoa4+BYnPyNksPZVpAkSUqHK4AlSZIkSZLUFOowCrgP2MsawW6rwVQzSJIkpcMVwJIkSZIkSWoKGRyFk7+xPm8CSZKk5K57JUmSJEmSpGpbCq17w73ARGsEu6MTJmeQm0KSJCkdrgCWJEmSJElS5U2AI3DyN9ZZTv5KkiSlxwlgSZIkSZIkVVoOWQ6zLRHl/nVwgxkkSZLS4wSwJEmSJEmSKq0bDgP2tUS4DM6aAb2WkCRJSo8TwJIkSZIkSaq0BsyxQpSH2uFaM0iSJKXJCWBJkiRJkiRV1mo4JIOaJaLMnQSbzSBJkpQmJ4AlSZIkSZJUWTmcYYUov98MV5pBkiQpXU4AS5IkSZIkqZJWwkHA2y0RLoMF02CDJSRJktLlBLAkSZIkSZIqqQXOtEKUJzfAEjNIkiQlfx0sSZIkSZIkVUsdOoB3WyJcBosPhPWWkCRJSpsTwJIkSZIkSaqifwcyMwR7LoeLzSBJkpQ+J4AlSZIkSZJUKd2wD/B+S4TL4OIa/NESkiRJ6XMCWJIkSZIkSZWSw2fxe68YGzNYZAZJkqRq8EJYkiRJkiRJlVGHCTkcbolwOVzeAY9aQpIkqRqcAJYkSZIkSVJlZHAG0GaJYD1tMN8MkiRJ1eEEsCRJkiRJkiphJeyZw5GWCJfD1ZPht5aQJEmqDieAJUmSJEmSVAkZzAJGWyJYAzjXDJIkSZW7LpYkSZIkSZLStgJ2b4PfAGOtEWxpDf7RDJIkSdXiCmBJkiRJkiQlrxVm4uRvLFf/SpIkVZArgCVJkiRJkpS05bDb6OIc23HWCPa9GrzfDJIkSdXjCmBJkiRJkiQlbTSchJO/UXKYawVJkqRqcgWwJEmSJEmSknUrjGuHB4BdrRFsWQ3+PzNIkiRVkyuAJUmSJEmSlKx2+CRO/kZpgbOsIEmSVF2uAJYkSZIkSVKSlkH7OFgH7GGNYCtrcIAZJEmSqssVwJIkSZIkSUrSODgWJ3+j5K7+lSRJqjxXAEuSJEmSJCk5dRgF3AfsZY1gv+qEt2TQMIUkSVJ1uQJYkiRJkiRJycngKJz8jZLD5538lSRJqj4ngCVJkiRJkpSUpdCaw2mWiLL2WbjeDJIkSdXnBLAkSZIkSZKSMgGOACZaIlwO50yHLZaQJEmqPieAJUmSJEmSlIwcshxmWyLKwzvBVWaQJElqDk4AS5IkSZIkKRndcBiwryWizJsEm80gSZLUHJwAliRJkiRJUjIaMMcKUR4HLjeDJElS83ACWJIkSZIkSUlYDYdkULNElIU1eN4MkiRJzcMJYEmSJEmSJCUhhzOsEOVpYIkZJEmSmosTwJIkSZIkSSq9lXAQ8HZLRFlcKyaBJUmS1EScAJYkSZIkSVLptcCZVojyXAtcaAZJkqSmvHaWJEmSJEmSyqsOHcC7LRFlSQf8wQySJEnNxwlgSZIkSZIkld2/A5kZgm1qgYVmkCRJak5OAEuSJEmSJKm0umEf4P2WiHJlBzxqBkmSpObkBLAkSZIkSZJKK4fP4ndYMXozWGAGSZKk5uXFsyRJkiRJkkqpDhNyONwSUa7phPvNIEmS1LycAJYkSZIkSVIpZXAG0GaJYI0GzDODJElS019HS5IkSZIkSeWyEvZsKVayjrZGsOtr8A9mkCRJam6uAJYkSZIkSVLpZDALJ3+jtMC5VpAkSZIrgCVJkiRJklQqK2D3NvgNMNYaYTK4sRPeawlJkiS5AliSJEmSJEml0gozcfI3Sg5nW0GSJEngCmBJkiRJkiSVyHLYbTT8FhhnjTAZ/LQT3mkJSZIkgSuAJUmSJEmSVCKj4SSc/I3i6l9JkiS9kCuAJUmSJEmSVAorYHxbsfp3V2sEW9MJnRnkppAkSRK4AliSJEmSJEkl0QbH4+RvrM85+StJkqQXcgWwJEmSJEmSRtwyaB8H64A9rBHs3k7YN4OGKSRJkvQnrgCWJEmSJEnSiBsHx+Lkb5QMznLyV5IkSVu5TpQkSZIkSZJGTh1GAfcBe1kj2Lr18MbpsMUUkiRJeiFXAEuSJEmSJGlEZXAUTv7GNpvr5K8kSZL6uVaUJEmSJEmSRsZSaN0b7gUmWiPYw7vAGybCJlNIkiTpxVwBLEmSJEmSpBEzAY7Ayd8oGSxw8leSJEn9cQJYkiRJkiRJIyKHLIfZlojyRDtcZgZJkiT1xwlgSZIkSZIkjYhuOAzY1xLhMlg4CZ61hCRJkvrTZgJJkiRJkiSNhBxuGg27WSLcE7DeCpIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZKkpvX/AC3AB1hemT1TAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDI0LTA3LTA5VDE4OjUwOjI5KzAwOjAwpp6skAAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyNC0wNy0wOVQxODo1MDoyOSswMDowMNfDFCwAAAAASUVORK5CYII=) center/140px no-repeat}.logo-text{font-size:18px;font-weight:700;color:var(--text-dark);letter-spacing:-.2px}.logo-text span{font-size:9px;margin-left:4px}.alert{margin:0;padding:10px 12px;border-radius:8px;font-size:13px;line-height:1.4}.error{background:var(--avaya-red-light);color:#b5000c;border:1px solid #f5b3b8}.form{display:flex;flex-direction:column;gap:12px}.field{width:100%;--mdc-outlined-text-field-outline-color: #e0e0e0;--mdc-outlined-text-field-focus-outline-color: var(--avaya-red);--mdc-outlined-text-field-hover-outline-color: var(--avaya-red);--mdc-outlined-text-field-container-fill-color: transparent;--mdc-outlined-text-field-input-text-color: var(--text-dark);--mdc-outlined-text-field-label-text-color: var(--text-muted);--mdc-outlined-text-field-input-text-placeholder-color: var(--text-muted)}.field .mdc-text-field__input{font-size:14px}.btn{width:100%;height:46px;border:none;border-radius:10px;background:var(--avaya-red);color:#fff;font-weight:700;font-size:15px;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease;box-shadow:0 8px 18px #e3000f4d;display:inline-flex;align-items:center;justify-content:center}.btn:disabled{opacity:.7;cursor:default}.btn:active:not(:disabled){transform:translateY(1px)}.spinner{display:inline-block;width:16px;height:16px;border-radius:50%;border:3px solid #fff;border-top-color:#fff6;animation:spin 1s linear infinite}.footnote{font-size:13px;color:var(--text-muted);text-align:center}.footnote a{color:var(--avaya-red);font-weight:700;text-decoration:none;margin-left:4px}.login-background{background:transparent;padding:0;min-height:100vh;display:flex;align-items:center;justify-content:center}@keyframes spin{to{transform:rotate(360deg)}}\n"] }]
2250
+ args: [{ selector: 'app-avaya-ipo-login', standalone: false, template: "<div class=\"avaya-ipo-login-background\">\n <div class=\"avaya-ipo-login-simple\">\n <div class=\"avaya-ipo-logo\">\n <div class=\"avaya-ipo-logo-img\"></div>\n <div class=\"avaya-ipo-logo-text\">IP Office<span>TM</span></div>\n </div>\n\n @if (hasAvayaSocketError || hasAvayaLoginError || hasAvayaLoginFailedGeneral || hasAvayaLoginConflictError || hasAvayaDeviceError) {\n <p class=\"avaya-ipo-alert avaya-ipo-error\">\n @if (hasAvayaSocketError) { Connection issue detected. }\n @if (hasAvayaLoginError) { Invalid extension or password. }\n @if (hasAvayaLoginFailedGeneral) { Something went wrong. Please try again. }\n @if (hasAvayaLoginConflictError) { Another user is logged in with this extension. }\n @if (hasAvayaDeviceError) { Device access error. }\n </p>\n }\n\n <form [formGroup]=\"loginForm\" (ngSubmit)=\"onLoginClick()\" class=\"avaya-ipo-form\" autocomplete=\"off\">\n <mat-form-field appearance=\"outline\" class=\"avaya-ipo-field\">\n <mat-label>Extension</mat-label>\n <input matInput formControlName=\"ipoExtensionNo\" autocomplete=\"off\" autocapitalize=\"off\" autocorrect=\"off\"\n spellcheck=\"false\" (keypress)=\"restrictNumeric($event)\" />\n <mat-icon matPrefix>call</mat-icon>\n @if (loginForm.controls['ipoExtensionNo'].invalid && loginForm.controls['ipoExtensionNo'].touched) {\n <mat-error>\n @if (loginForm.controls['ipoExtensionNo'].errors?.['required']) {\n <small>Extension is required.</small>\n }\n </mat-error>\n }\n </mat-form-field>\n\n <mat-form-field appearance=\"outline\" class=\"avaya-ipo-field\">\n <mat-label>Password</mat-label>\n <input matInput formControlName=\"ipoPassword\" autocomplete=\"off\" autocapitalize=\"off\" autocorrect=\"off\"\n spellcheck=\"false\"\n (keypress)=\"restrictNumeric($event)\" [type]=\"showLoginPassword ? 'text' : 'password'\" />\n <mat-icon matPrefix>lock</mat-icon>\n <button mat-icon-button matSuffix type=\"button\"\n (click)=\"showLoginPassword = !showLoginPassword && !hasAvayaSocketError\">\n <mat-icon>{{ showLoginPassword ? 'visibility_off' : 'visibility' }}</mat-icon>\n </button>\n @if (loginForm.controls['ipoPassword'].invalid && loginForm.controls['ipoPassword'].touched) {\n <mat-error>\n @if (loginForm.controls['ipoPassword'].errors?.['required']) {\n <small>Password is required.</small>\n }\n </mat-error>\n }\n </mat-form-field>\n\n <button type=\"submit\" class=\"avaya-ipo-btn\" [disabled]=\"showLoginLoader\">\n @if (showLoginLoader) { <span class=\"avaya-ipo-spinner\"></span> } @else { <span>Login</span> }\n </button>\n </form>\n\n</div>\n</div>\n", styles: [":host{display:block;width:100%;max-width:100%;margin:0;font-family:Open Sans,Helvetica Neue,Arial,sans-serif}.avaya-ipo-login-simple{width:100%;padding:24px 18px 32px;background:transparent;border-radius:0;box-shadow:none;display:flex;flex-direction:column;gap:16px;box-sizing:border-box}.avaya-ipo-logo{display:flex;flex-direction:column;align-items:center;gap:6px;margin-bottom:4px}.avaya-ipo-logo-img{width:140px;height:40px;background:url(data:image/png;base64,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) center/140px no-repeat}.avaya-ipo-logo-text{font-size:18px;font-weight:700;color:var(--sd-text);letter-spacing:-.2px}.avaya-ipo-logo-text span{font-size:9px;margin-left:4px}.avaya-ipo-alert{margin:0;padding:10px 12px;border-radius:var(--sd-radius-sm);font-size:13px;line-height:1.4}.avaya-ipo-error{background:var(--sd-accent-soft);color:var(--sd-call-end);border:1px solid var(--sd-call-end)}.avaya-ipo-form{display:flex;flex-direction:column;gap:12px}.avaya-ipo-field{width:100%;--mdc-outlined-text-field-outline-color: var(--sd-input-border);--mdc-outlined-text-field-focus-outline-color: var(--sd-accent);--mdc-outlined-text-field-hover-outline-color: var(--sd-accent);--mdc-outlined-text-field-container-fill-color: var(--sd-input);--mdc-outlined-text-field-input-text-color: var(--sd-text);--mdc-outlined-text-field-label-text-color: var(--sd-text-muted);--mdc-outlined-text-field-input-text-placeholder-color: var(--sd-text-subtle)}.avaya-ipo-field .mdc-text-field__input{font-size:14px}.avaya-ipo-btn{width:100%;height:46px;border:none;border-radius:var(--sd-radius);background:var(--sd-accent);color:var(--sd-accent-contrast);font-weight:600;font-size:15px;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,background .12s ease;box-shadow:var(--sd-shadow-md);display:inline-flex;align-items:center;justify-content:center}.avaya-ipo-btn:hover:not(:disabled){background:var(--sd-accent-strong)}.avaya-ipo-btn:focus-visible{outline:none;box-shadow:var(--sd-focus-ring)}.avaya-ipo-btn:disabled{opacity:.7;cursor:default}.avaya-ipo-btn:active:not(:disabled){transform:translateY(1px)}.avaya-ipo-spinner{display:inline-block;width:16px;height:16px;border-radius:50%;border:3px solid var(--sd-accent-contrast);border-top-color:#fff6;animation:spin 1s linear infinite}.avaya-ipo-footnote{font-size:13px;color:var(--sd-text-muted);text-align:center}.avaya-ipo-footnote a{color:var(--sd-accent);font-weight:600;text-decoration:none;margin-left:4px}.avaya-ipo-login-background{background:transparent;padding:0;min-height:100%;display:flex;align-items:center;justify-content:center}:host-context(.avaya-ipo-mode-standalone) .avaya-ipo-login-background{min-height:100dvh}@keyframes spin{to{transform:rotate(360deg)}}\n"] }]
2125
2251
  }], propDecorators: { loginForm: [{
2126
2252
  type: Input
2127
2253
  }], showLoginLoader: [{
@@ -2145,9 +2271,12 @@ class RecordingManagerService {
2145
2271
  sessions = new Map();
2146
2272
  MIME_TYPE_PREFERRED = 'audio/webm;codecs=opus';
2147
2273
  MIME_TYPE_FALLBACK = 'audio/webm';
2148
- CHUNK_DURATION_MS = 3000;
2149
- AUDIO_CONTEXT_CLOSE_DELAY_MS = 200;
2150
- CALL_HISTORY_API_URL = APP_CONFIG.CALL_HISTORY_API_URL;
2274
+ // Record one continuous file for the whole call; a timeslice just flushes data periodically so the
2275
+ // final Blob is complete. The full recording is uploaded once at call end and handed to the backend
2276
+ // AI pipeline (transcription + summary).
2277
+ TIMESLICE_MS = 1000;
2278
+ AUDIO_CONTEXT_CLOSE_DELAY_MS = 500;
2279
+ RECORDING_API_URL = APP_CONFIG.INTERACTION_CALL_RECORDING_API_URL;
2151
2280
  constructor(http) {
2152
2281
  this.http = http;
2153
2282
  }
@@ -2172,17 +2301,35 @@ class RecordingManagerService {
2172
2301
  audioContext
2173
2302
  .createMediaStreamSource(remoteMediaStream)
2174
2303
  .connect(recordingStream);
2304
+ const mimeType = MediaRecorder.isTypeSupported(this.MIME_TYPE_PREFERRED)
2305
+ ? this.MIME_TYPE_PREFERRED
2306
+ : this.MIME_TYPE_FALLBACK;
2175
2307
  const session = {
2176
2308
  audioContext,
2177
2309
  recordingStream,
2178
2310
  metadata,
2179
2311
  stopping: false,
2180
- chunkIndex: 0,
2312
+ chunks: [],
2181
2313
  recorder: null,
2182
- chunkTimer: undefined,
2314
+ mimeType,
2315
+ uploaded: false,
2183
2316
  };
2184
2317
  this.sessions.set(metadata.callId, session);
2185
- this.startNextChunk(session);
2318
+ const recorder = new MediaRecorder(recordingStream.stream, { mimeType });
2319
+ session.recorder = recorder;
2320
+ recorder.ondataavailable = (evt) => {
2321
+ if (evt.data && evt.data.size > 0) {
2322
+ session.chunks.push(evt.data);
2323
+ }
2324
+ };
2325
+ recorder.onerror = (err) => {
2326
+ console.error(`[${metadata.callId}] MediaRecorder error:`, err);
2327
+ };
2328
+ recorder.onstop = () => {
2329
+ void this.finalizeRecording(session);
2330
+ };
2331
+ recorder.start(this.TIMESLICE_MS);
2332
+ console.debug(`[${metadata.callId}] MediaRecorder started (single-file mode)`);
2186
2333
  return session;
2187
2334
  }
2188
2335
  getSession(callId) {
@@ -2193,17 +2340,18 @@ class RecordingManagerService {
2193
2340
  if (!session)
2194
2341
  return;
2195
2342
  session.stopping = true;
2196
- if (session.chunkTimer) {
2197
- clearTimeout(session.chunkTimer);
2198
- session.chunkTimer = undefined;
2199
- }
2200
2343
  const rec = session.recorder;
2201
- if (rec && rec.state === 'recording') {
2344
+ if (rec && rec.state !== 'inactive') {
2202
2345
  try {
2203
- rec.stop();
2346
+ rec.stop(); // flushes final data, then onstop -> finalizeRecording (uploads)
2204
2347
  console.debug(`[${callId}] MediaRecorder stopped`);
2205
2348
  }
2206
- catch { }
2349
+ catch {
2350
+ void this.finalizeRecording(session);
2351
+ }
2352
+ }
2353
+ else {
2354
+ void this.finalizeRecording(session);
2207
2355
  }
2208
2356
  setTimeout(() => {
2209
2357
  if (session.audioContext.state !== 'closed') {
@@ -2213,71 +2361,57 @@ class RecordingManagerService {
2213
2361
  }, this.AUDIO_CONTEXT_CLOSE_DELAY_MS);
2214
2362
  this.sessions.delete(callId);
2215
2363
  }
2216
- startNextChunk(session) {
2217
- if (session.stopping)
2364
+ async finalizeRecording(session) {
2365
+ if (session.uploaded)
2218
2366
  return;
2219
- const mimeType = MediaRecorder.isTypeSupported(this.MIME_TYPE_PREFERRED)
2220
- ? this.MIME_TYPE_PREFERRED
2221
- : this.MIME_TYPE_FALLBACK;
2222
- const recorder = new MediaRecorder(session.recordingStream.stream, { mimeType });
2223
- session.recorder = recorder;
2224
- const myChunkIdx = session.chunkIndex++;
2225
- recorder.ondataavailable = async (evt) => {
2226
- if (!evt.data || evt.data.size === 0)
2227
- return;
2228
- const filename = this.generateChunkFilename(session.metadata.callId, myChunkIdx);
2229
- try {
2230
- await this.uploadCallRecording(session.metadata, evt.data, filename);
2231
- console.debug(`[${session.metadata.callId}] ✅ uploaded chunk -> ${filename}`);
2232
- }
2233
- catch (err) {
2234
- console.error(`[${session.metadata.callId}] ❌ upload failed -> ${filename}`, err);
2235
- }
2236
- };
2237
- recorder.onerror = (err) => {
2238
- console.error(`[${session.metadata.callId}] MediaRecorder error:`, err);
2239
- };
2240
- recorder.onstop = () => {
2241
- if (session.stopping)
2242
- return;
2243
- setTimeout(() => this.startNextChunk(session), 0);
2244
- };
2245
- recorder.start();
2246
- console.debug(`[${session.metadata.callId}] MediaRecorder started for chunk #${myChunkIdx}`);
2247
- session.chunkTimer = window.setTimeout(() => {
2248
- if (!session.stopping && recorder.state === 'recording') {
2249
- recorder.stop();
2250
- console.debug(`[${session.metadata.callId}] MediaRecorder stopped for chunk #${myChunkIdx}`);
2251
- }
2252
- }, this.CHUNK_DURATION_MS);
2367
+ session.uploaded = true;
2368
+ if (!session.chunks.length) {
2369
+ console.warn(`[${session.metadata.callId}] No recording data captured`);
2370
+ return;
2371
+ }
2372
+ const blob = new Blob(session.chunks, { type: session.mimeType });
2373
+ session.chunks = [];
2374
+ const filename = this.generateFilename(session.metadata.callId, session.metadata.agentId, session.mimeType);
2375
+ try {
2376
+ await this.uploadCallRecording(session.metadata, blob, filename, session.mimeType);
2377
+ console.debug(`[${session.metadata.callId}] ✅ uploaded recording -> ${filename}`);
2378
+ }
2379
+ catch (err) {
2380
+ console.error(`[${session.metadata.callId}] ❌ recording upload failed`, err);
2381
+ }
2253
2382
  }
2254
- async uploadCallRecording(metadata, file, filename) {
2383
+ async uploadCallRecording(metadata, file, filename, mimeType) {
2255
2384
  try {
2256
- if (!filename) {
2257
- filename = this.generateFilename(metadata.callId, metadata.agentId);
2258
- }
2259
2385
  const base64 = await this.convertBlobToBase64(file);
2260
2386
  const body = base64.split(',')[1];
2261
2387
  const payload = {
2262
- ...metadata,
2263
- phoneNumber: this.normalizePhoneNumberForUpload(metadata.phoneNumber),
2388
+ tenantId: metadata.tenantId,
2389
+ callId: metadata.callId,
2390
+ agentId: metadata.agentId,
2264
2391
  filename,
2392
+ contentType: mimeType,
2265
2393
  isBase64: true,
2266
2394
  body,
2267
2395
  };
2268
- const url = `${this.CALL_HISTORY_API_URL}?action=uploadRecording`;
2269
- const res = await lastValueFrom(this.http.post(url, payload, {
2270
- headers: { 'Content-Type': 'application/json' },
2396
+ let headers = new HttpHeaders({ 'Content-Type': 'application/json' });
2397
+ const token = (typeof sessionStorage !== 'undefined' &&
2398
+ sessionStorage.getItem('auth_sessionToken')) ||
2399
+ '';
2400
+ if (token) {
2401
+ headers = headers.set('Authorization', `Bearer ${token}`);
2402
+ }
2403
+ const res = await lastValueFrom(this.http.post(this.RECORDING_API_URL, payload, {
2404
+ headers,
2271
2405
  responseType: 'json',
2272
2406
  }));
2273
2407
  return {
2274
2408
  success: true,
2275
- message: res?.message || 'Upload successful',
2276
- s3Key: res?.s3Key,
2409
+ message: res?.status || 'Upload successful',
2410
+ interactionId: res?.interactionId,
2277
2411
  };
2278
2412
  }
2279
2413
  catch (err) {
2280
- console.error(`[${metadata.callId}] Upload failed:`, err);
2414
+ console.error(`[${metadata.callId}] Recording upload failed:`, err);
2281
2415
  return {
2282
2416
  success: false,
2283
2417
  message: err?.message || 'Upload failed',
@@ -2292,34 +2426,14 @@ class RecordingManagerService {
2292
2426
  reader.readAsDataURL(blob);
2293
2427
  });
2294
2428
  }
2295
- generateFilename(callId, agentId) {
2429
+ generateFilename(callId, agentId, mimeType) {
2296
2430
  const timestamp = new Date()
2297
2431
  .toISOString()
2298
2432
  .replace(/[:.]/g, '')
2299
2433
  .replace('T', '-')
2300
2434
  .slice(0, 15);
2301
- return `${timestamp}-${agentId}-${callId}.webm`;
2302
- }
2303
- generateChunkFilename(callId, chunkIndex) {
2304
- const now = new Date();
2305
- const dateStr = now.toISOString().slice(0, 10).replace(/-/g, '');
2306
- const timeStr = now.toTimeString().slice(0, 8).replace(/:/g, '');
2307
- const msStr = now.getMilliseconds().toString().padStart(3, '0');
2308
- const part = String(chunkIndex).padStart(4, '0');
2309
- return `${callId}-${dateStr}-${timeStr}${msStr}-part${part}.webm`;
2310
- }
2311
- normalizePhoneNumberForUpload(value) {
2312
- let digits = (value ?? '').toString().replace(/\D/g, '');
2313
- if (digits.startsWith('00')) {
2314
- digits = digits.slice(2);
2315
- }
2316
- if (digits.startsWith('0')) {
2317
- digits = digits.slice(1);
2318
- }
2319
- if (digits.length === 10 && !digits.startsWith('91')) {
2320
- digits = `91${digits}`;
2321
- }
2322
- return digits;
2435
+ const ext = mimeType.includes('webm') ? 'webm' : 'dat';
2436
+ return `${timestamp}-${agentId}-${callId}.${ext}`;
2323
2437
  }
2324
2438
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: RecordingManagerService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
2325
2439
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: RecordingManagerService, providedIn: 'root' });
@@ -2334,16 +2448,16 @@ class TranscriptionStreamService {
2334
2448
  transcriptSubject = new Subject();
2335
2449
  transcript$ = this.transcriptSubject.asObservable();
2336
2450
  SAMPLE_RATE = 16000;
2337
- BUFFER_SIZE = 1024;
2451
+ BUFFER_SIZE = 512;
2338
2452
  SILENCE_RMS_THRESHOLD = 0.002;
2339
2453
  VOICE_RMS_THRESHOLD = 0.006;
2454
+ CUSTOMER_SILENCE_RMS_THRESHOLD = 0.0006;
2455
+ CUSTOMER_VOICE_RMS_THRESHOLD = 0.0025;
2340
2456
  NOISE_FLOOR_MULTIPLIER = 2.5;
2341
2457
  NOISE_FLOOR_SMOOTHING = 0.05;
2342
- CHUNK_INTERVAL_MS = 50;
2458
+ MIN_VOICE_FRAMES = 2;
2343
2459
  CUSTOM_WS_URL = APP_CONFIG.TRANSCRIPTION_WS_URL;
2344
- CUSTOM_WS_MIME_TYPE = APP_CONFIG.TRANSCRIPTION_WS_MIME_TYPE;
2345
- LANGUAGE_CODE = APP_CONFIG.TRANSCRIPTION_LANGUAGE_CODE;
2346
- ALT_LANGUAGE_CODES = APP_CONFIG.TRANSCRIPTION_ALT_LANGUAGE_CODES;
2460
+ LANGUAGE = APP_CONFIG.TRANSCRIPTION_LANGUAGE;
2347
2461
  TRANSCRIPTION_MODEL = APP_CONFIG.TRANSCRIPTION_MODEL;
2348
2462
  constructor() { }
2349
2463
  ngOnDestroy() {
@@ -2415,14 +2529,9 @@ class TranscriptionStreamService {
2415
2529
  stream.sourceNode.disconnect();
2416
2530
  }
2417
2531
  catch { }
2418
- if (stream.chunkTimer) {
2419
- clearInterval(stream.chunkTimer);
2420
- stream.chunkTimer = undefined;
2421
- }
2422
2532
  try {
2423
2533
  if (stream.ws.readyState === WebSocket.OPEN) {
2424
- this.flushPendingAudio(stream);
2425
- stream.ws.send(JSON.stringify({ type: 'end', source: stream.label }));
2534
+ stream.ws.send(JSON.stringify({ type: 'end' }));
2426
2535
  stream.ws.close();
2427
2536
  }
2428
2537
  }
@@ -2434,6 +2543,12 @@ class TranscriptionStreamService {
2434
2543
  catch { }
2435
2544
  this.session = null;
2436
2545
  }
2546
+ destroyAll() {
2547
+ if (!this.session) {
2548
+ return;
2549
+ }
2550
+ this.stopSession(this.session.callId);
2551
+ }
2437
2552
  enableBinary(callId) {
2438
2553
  if (!this.session || this.session.callId !== callId) {
2439
2554
  return;
@@ -2513,33 +2628,13 @@ class TranscriptionStreamService {
2513
2628
  return output;
2514
2629
  }
2515
2630
  queueAudio(stream, chunk) {
2516
- stream.pendingChunks.push(chunk);
2517
- stream.pendingBytes += chunk.byteLength;
2518
- this.flushPendingAudio(stream);
2519
- }
2520
- flushPendingAudio(stream) {
2521
- if (stream.pendingBytes === 0 || stream.ws.readyState !== WebSocket.OPEN) {
2631
+ if (stream.ws.readyState !== WebSocket.OPEN) {
2522
2632
  return;
2523
2633
  }
2524
- const merged = this.mergeChunks(stream.pendingChunks, stream.pendingBytes);
2525
- stream.pendingChunks = [];
2526
- stream.pendingBytes = 0;
2527
- stream.ws.send(merged);
2634
+ stream.ws.send(chunk);
2528
2635
  stream.lastAudioSentAt = Date.now();
2529
2636
  stream.lastChunkSentAt = stream.lastAudioSentAt;
2530
2637
  }
2531
- mergeChunks(chunks, totalBytes) {
2532
- if (chunks.length === 1) {
2533
- return chunks[0];
2534
- }
2535
- const out = new Uint8Array(totalBytes);
2536
- let offset = 0;
2537
- for (const chunk of chunks) {
2538
- out.set(chunk, offset);
2539
- offset += chunk.byteLength;
2540
- }
2541
- return out;
2542
- }
2543
2638
  handleTranscriptPayload(callId, text) {
2544
2639
  if (!text)
2545
2640
  return;
@@ -2547,7 +2642,7 @@ class TranscriptionStreamService {
2547
2642
  const data = JSON.parse(text);
2548
2643
  if (typeof data?.text === 'string') {
2549
2644
  this.transcriptSubject.next({
2550
- callId,
2645
+ callId: data?.callId || callId,
2551
2646
  text: data.text,
2552
2647
  isFinal: Boolean(data?.isFinal ?? data?.final ?? true),
2553
2648
  ts: typeof data?.ts === 'number' ? data.ts : Date.now(),
@@ -2555,9 +2650,19 @@ class TranscriptionStreamService {
2555
2650
  });
2556
2651
  return;
2557
2652
  }
2653
+ if (data?.type === 'Results' && typeof data?.transcript === 'string') {
2654
+ this.transcriptSubject.next({
2655
+ callId: data?.callId || callId,
2656
+ text: data.transcript,
2657
+ isFinal: Boolean(data?.is_final ?? data?.speech_final ?? data?.isFinal ?? data?.final ?? true),
2658
+ ts: typeof data?.ts === 'number' ? data.ts : Date.now(),
2659
+ speaker: data?.source,
2660
+ });
2661
+ return;
2662
+ }
2558
2663
  if (typeof data?.transcript === 'string') {
2559
2664
  const ts = typeof data?.ts === 'number' ? data.ts : Date.now();
2560
- const isFinal = Boolean(data?.isFinal ?? data?.final ?? true);
2665
+ const isFinal = Boolean(data?.isFinal ?? data?.final ?? data?.is_final ?? data?.speech_final ?? true);
2561
2666
  const lines = data.transcript
2562
2667
  .split(/\r?\n/)
2563
2668
  .map((line) => line.trim())
@@ -2566,7 +2671,7 @@ class TranscriptionStreamService {
2566
2671
  for (const line of lines) {
2567
2672
  const parsed = this.parseSpeakerLine(line);
2568
2673
  this.transcriptSubject.next({
2569
- callId,
2674
+ callId: data?.callId || callId,
2570
2675
  text: parsed.text,
2571
2676
  isFinal,
2572
2677
  ts,
@@ -2577,7 +2682,7 @@ class TranscriptionStreamService {
2577
2682
  else {
2578
2683
  const parsed = this.parseSpeakerLine(data.transcript.trim());
2579
2684
  this.transcriptSubject.next({
2580
- callId,
2685
+ callId: data?.callId || callId,
2581
2686
  text: parsed.text,
2582
2687
  isFinal,
2583
2688
  ts,
@@ -2634,31 +2739,35 @@ class TranscriptionStreamService {
2634
2739
  processor,
2635
2740
  sourceNode: opts.sourceNode,
2636
2741
  closed: false,
2637
- pendingChunks: [],
2638
- pendingBytes: 0,
2639
2742
  lastChunkSentAt: Date.now(),
2640
2743
  noiseFloor: this.SILENCE_RMS_THRESHOLD,
2641
2744
  readyForBinary: false,
2642
2745
  allowSendBinary: opts.allowSendBinary,
2643
2746
  muted: false,
2644
2747
  lastAudioSentAt: Date.now(),
2748
+ voiceStreak: 0,
2645
2749
  };
2646
2750
  ws.onopen = () => {
2647
2751
  opts.audioContext.resume().catch(() => { });
2648
2752
  const payload = {
2649
2753
  type: 'start',
2650
- mimeType: this.CUSTOM_WS_MIME_TYPE || 'audio/pcm;rate=16000;encoding=s16le',
2651
- sampleRate: this.SAMPLE_RATE,
2652
- encoding: 's16le',
2653
- channels: 1,
2654
2754
  callId: opts.callId,
2655
2755
  source: opts.label,
2656
- languageCode: this.LANGUAGE_CODE,
2657
- alternativeLanguageCodes: this.ALT_LANGUAGE_CODES,
2756
+ language: this.LANGUAGE,
2658
2757
  model: this.TRANSCRIPTION_MODEL,
2758
+ sampleRate: this.SAMPLE_RATE,
2759
+ channels: 1,
2659
2760
  };
2660
2761
  ws.send(JSON.stringify(payload));
2661
2762
  stream.readyForBinary = false;
2763
+ if (opts.label === 'customer') {
2764
+ setTimeout(() => {
2765
+ if (!stream.closed && ws.readyState === WebSocket.OPEN && !stream.readyForBinary) {
2766
+ console.debug('[Transcription] No ACK yet, enabling customer stream');
2767
+ stream.readyForBinary = true;
2768
+ }
2769
+ }, 1200);
2770
+ }
2662
2771
  console.debug('[Transcription] WebSocket open', { source: opts.label });
2663
2772
  processor.onaudioprocess = (event) => {
2664
2773
  if (stream.closed || ws.readyState !== WebSocket.OPEN) {
@@ -2672,17 +2781,28 @@ class TranscriptionStreamService {
2672
2781
  return;
2673
2782
  }
2674
2783
  const rms = this.calculateRms(input);
2675
- if (rms < this.SILENCE_RMS_THRESHOLD) {
2784
+ const silenceThreshold = opts.label === 'customer'
2785
+ ? this.CUSTOMER_SILENCE_RMS_THRESHOLD
2786
+ : this.SILENCE_RMS_THRESHOLD;
2787
+ const voiceThreshold = opts.label === 'customer'
2788
+ ? this.CUSTOMER_VOICE_RMS_THRESHOLD
2789
+ : this.VOICE_RMS_THRESHOLD;
2790
+ if (rms < silenceThreshold) {
2676
2791
  stream.noiseFloor =
2677
2792
  (1 - this.NOISE_FLOOR_SMOOTHING) * stream.noiseFloor +
2678
2793
  this.NOISE_FLOOR_SMOOTHING * rms;
2679
2794
  return;
2680
2795
  }
2681
- const adaptiveThreshold = Math.max(this.VOICE_RMS_THRESHOLD, stream.noiseFloor * this.NOISE_FLOOR_MULTIPLIER);
2796
+ const adaptiveThreshold = Math.max(voiceThreshold, stream.noiseFloor * this.NOISE_FLOOR_MULTIPLIER);
2682
2797
  if (rms < adaptiveThreshold) {
2683
2798
  stream.noiseFloor =
2684
2799
  (1 - this.NOISE_FLOOR_SMOOTHING) * stream.noiseFloor +
2685
2800
  this.NOISE_FLOOR_SMOOTHING * rms;
2801
+ stream.voiceStreak = 0;
2802
+ return;
2803
+ }
2804
+ stream.voiceStreak += 1;
2805
+ if (stream.voiceStreak < this.MIN_VOICE_FRAMES) {
2686
2806
  return;
2687
2807
  }
2688
2808
  const pcmBytes = this.encodePcm16(input, opts.audioContext.sampleRate);
@@ -2709,9 +2829,11 @@ class TranscriptionStreamService {
2709
2829
  if (typeof evt.data === 'string') {
2710
2830
  try {
2711
2831
  const maybeAck = JSON.parse(evt.data);
2712
- if (maybeAck &&
2713
- maybeAck.type === 'ack' &&
2714
- maybeAck.message === 'stream-started') {
2832
+ const ackType = (maybeAck?.type || '').toString().toLowerCase();
2833
+ const ackMessage = (maybeAck?.message || '').toString().toLowerCase();
2834
+ const isReady = (ackType === 'ack' && ackMessage === 'stream-started') ||
2835
+ (ackType === 'ready' && ackMessage.includes('ready'));
2836
+ if (isReady) {
2715
2837
  stream.readyForBinary = true;
2716
2838
  return;
2717
2839
  }
@@ -2735,14 +2857,6 @@ class TranscriptionStreamService {
2735
2857
  });
2736
2858
  this.stopSession(opts.callId);
2737
2859
  };
2738
- stream.chunkTimer = setInterval(() => {
2739
- if (stream.closed || ws.readyState !== WebSocket.OPEN) {
2740
- return;
2741
- }
2742
- if (stream.readyForBinary && stream.allowSendBinary) {
2743
- this.flushPendingAudio(stream);
2744
- }
2745
- }, this.CHUNK_INTERVAL_MS);
2746
2860
  return stream;
2747
2861
  }
2748
2862
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: TranscriptionStreamService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
@@ -2785,11 +2899,11 @@ class PhoneIdleComponent {
2785
2899
  this.keyboardInput.emit(ev);
2786
2900
  }
2787
2901
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: PhoneIdleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2788
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.9", type: PhoneIdleComponent, isStandalone: false, selector: "app-phone-idle", inputs: { dialForm: "dialForm", contacts: "contacts", showDirectoryPhonebook: "showDirectoryPhonebook", isRinging: "isRinging", CountryISO: "CountryISO", SearchCountryField: "SearchCountryField" }, outputs: { toggleDirectory: "toggleDirectory", clear: "clear", makeCall: "makeCall", keypadInput: "keypadInput", keyboardInput: "keyboardInput" }, ngImport: i0, template: "<form class=\"phone-shell classic\" [formGroup]=\"dialForm\" (ngSubmit)=\"onMakeCall()\">\n <div class=\"input-row classic-input\">\n <ngx-intl-tel-input\n formControlName=\"phoneNumber\"\n name=\"phoneNumber\"\n [cssClass]=\"'phone_number_sd'\"\n [preferredCountries]=\"['in']\"\n [customPlaceholder]=\"'Phone Number'\"\n [enableAutoCountrySelect]=\"false\"\n [enablePlaceholder]=\"false\"\n [searchCountryFlag]=\"true\"\n [searchCountryField]=\"[SearchCountryField.Iso2, SearchCountryField.Name]\"\n [selectFirstCountry]=\"false\"\n [selectedCountryISO]=\"CountryISO.India\"\n [maxLength]=\"15\"\n [phoneValidation]=\"true\"\n [separateDialCode]=\"true\"\n (keydown)=\"onKeyboardInput($event)\"\n >\n </ngx-intl-tel-input>\n <button type=\"button\" class=\"clear-btn\" (click)=\"onClear()\">\u232B</button>\n </div>\n\n <div class=\"keypad classic-grid\">\n <button type=\"button\" (click)=\"onKeypadInput('1')\">\n <span class=\"digit\">1</span>\n <span class=\"letters\">&nbsp;</span>\n </button>\n <button type=\"button\" (click)=\"onKeypadInput('2')\">\n <span class=\"digit\">2</span>\n <span class=\"letters\">ABC</span>\n </button>\n <button type=\"button\" (click)=\"onKeypadInput('3')\">\n <span class=\"digit\">3</span>\n <span class=\"letters\">DEF</span>\n </button>\n <button type=\"button\" (click)=\"onKeypadInput('4')\">\n <span class=\"digit\">4</span>\n <span class=\"letters\">GHI</span>\n </button>\n <button type=\"button\" (click)=\"onKeypadInput('5')\">\n <span class=\"digit\">5</span>\n <span class=\"letters\">JKL</span>\n </button>\n <button type=\"button\" (click)=\"onKeypadInput('6')\">\n <span class=\"digit\">6</span>\n <span class=\"letters\">MNO</span>\n </button>\n <button type=\"button\" (click)=\"onKeypadInput('7')\">\n <span class=\"digit\">7</span>\n <span class=\"letters\">PQRS</span>\n </button>\n <button type=\"button\" (click)=\"onKeypadInput('8')\">\n <span class=\"digit\">8</span>\n <span class=\"letters\">TUV</span>\n </button>\n <button type=\"button\" (click)=\"onKeypadInput('9')\">\n <span class=\"digit\">9</span>\n <span class=\"letters\">WXYZ</span>\n </button>\n <button type=\"button\" (click)=\"onKeypadInput('*')\">\n <span class=\"digit\">*</span>\n <span class=\"letters\">&nbsp;</span>\n </button>\n <button type=\"button\" (click)=\"onKeypadInput('0')\">\n <span class=\"digit\">0</span>\n <span class=\"letters\">+</span>\n </button>\n <button type=\"button\" (click)=\"onKeypadInput('#')\">\n <span class=\"digit\">#</span>\n <span class=\"letters\">&nbsp;</span>\n </button>\n </div>\n\n <div class=\"actions\">\n <button type=\"submit\" class=\"call-btn-main\" [disabled]=\"!this.dialForm.valid\">\n <svg viewBox=\"0 0 512 512\" width=\"22px\" height=\"22px\" fill=\"currentColor\" aria-hidden=\"true\">\n <path\n d=\"M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z\" />\n </svg>\n </button>\n </div>\n</form>\n", styles: [".phone-shell.classic{display:flex;flex-direction:column;align-items:center;gap:3rem;background:transparent;padding:0 15px}.classic-input{width:100%;display:flex;align-items:center;gap:6px;padding:6px 42px 6px 16px;box-sizing:border-box;position:relative;border:1px solid #dcdcdc;border-radius:12px;background:#fafafa;box-shadow:inset 0 1px 2px #0000000d;margin-bottom:6px}.phonebook-btn{border:none;background:transparent;color:#555;width:32px;height:32px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;cursor:pointer}.phonebook-btn:hover{background:#0000000d}.phonebook-btn:focus{outline:none;box-shadow:none}.clear-btn{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:none;background:transparent;color:#555;border-radius:6px;padding:6px 8px;cursor:pointer;font-weight:700}.classic-input .phone_number_sd{width:100%}.classic-input .phone_number_sd input{width:100%;border:none!important;box-shadow:none!important;padding:8px 0!important;font-size:15px!important;color:#111}:host ::ng-deep .classic-input .iti{width:100%}:host ::ng-deep .classic-input .iti__flag-container{padding-left:6px}:host ::ng-deep .classic-input .iti__selected-flag{border-right:1px solid #e5e5e5;padding-right:8px}:host ::ng-deep .classic-input .iti.separate-dial-code input{padding-left:130px!important}:host ::ng-deep .classic-input .iti__tel-input{background:transparent;border:none;box-shadow:none;height:32px;padding:0 0 0 6px;font-size:15px}.classic-grid{width:100%;max-width:260px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;justify-items:center}.classic-grid button{width:68px;height:68px;border-radius:50%;border:1.6px solid #c7c7c7;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:Helvetica Neue,Arial,sans-serif;cursor:pointer}.classic-grid button:focus{outline:none;box-shadow:none}.classic-grid button:active{background:#0000000a}.classic-grid .digit{font-size:24px;font-weight:400;color:#4a4a4a;line-height:24px}.classic-grid .letters{font-size:9px;letter-spacing:.8px;color:#9a9a9a;margin-top:2px}.actions{display:flex;justify-content:center;width:100%;margin-top:6px}.call-btn-main{width:68px;height:68px;border-radius:50%;border:none;background:#28b446;color:#fff;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #28b44659;cursor:pointer}.call-btn-main:disabled{opacity:.4;cursor:not-allowed}\n"], dependencies: [{ kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$1.NgxIntlTelInputComponent, selector: "ngx-intl-tel-input", inputs: ["value", "preferredCountries", "enablePlaceholder", "customPlaceholder", "numberFormat", "cssClass", "onlyCountries", "enableAutoCountrySelect", "searchCountryFlag", "searchCountryField", "searchCountryPlaceholder", "maxLength", "selectFirstCountry", "selectedCountryISO", "phoneValidation", "inputId", "separateDialCode"], outputs: ["countryChange"] }, { kind: "directive", type: i2$1.NativeElementInjectorDirective, selector: "[ngModel], [formControl], [formControlName]" }] });
2902
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.9", type: PhoneIdleComponent, isStandalone: false, selector: "app-phone-idle", inputs: { dialForm: "dialForm", contacts: "contacts", showDirectoryPhonebook: "showDirectoryPhonebook", isRinging: "isRinging", CountryISO: "CountryISO", SearchCountryField: "SearchCountryField" }, outputs: { toggleDirectory: "toggleDirectory", clear: "clear", makeCall: "makeCall", keypadInput: "keypadInput", keyboardInput: "keyboardInput" }, ngImport: i0, template: "<form class=\"avaya-ipo-phone-shell avaya-ipo-classic\" [formGroup]=\"dialForm\" (ngSubmit)=\"onMakeCall()\">\n <div class=\"avaya-ipo-input-row avaya-ipo-classic-input\">\n <ngx-intl-tel-input\n formControlName=\"phoneNumber\"\n name=\"phoneNumber\"\n [cssClass]=\"'avaya-ipo-phone_number_sd'\"\n [preferredCountries]=\"['in']\"\n [customPlaceholder]=\"'Phone Number'\"\n [enableAutoCountrySelect]=\"false\"\n [enablePlaceholder]=\"false\"\n [searchCountryFlag]=\"true\"\n [searchCountryField]=\"[SearchCountryField.Iso2, SearchCountryField.Name]\"\n [selectFirstCountry]=\"false\"\n [selectedCountryISO]=\"CountryISO.India\"\n [maxLength]=\"15\"\n [phoneValidation]=\"true\"\n [separateDialCode]=\"true\"\n (keydown)=\"onKeyboardInput($event)\"\n >\n </ngx-intl-tel-input>\n <button type=\"button\" class=\"avaya-ipo-clear-btn\" (click)=\"onClear()\" aria-label=\"Backspace\" title=\"Backspace\">\n <svg viewBox=\"0 0 24 24\" width=\"20\" height=\"20\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\n <path d=\"M22 3H7c-.69 0-1.23.35-1.59.88L0 12l5.41 8.12c.36.53.9.88 1.59.88h15c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-3 12.59L17.59 17 14 13.41 10.41 17 9 15.59 12.59 12 9 8.41 10.41 7 14 10.59 17.59 7 19 8.41 15.41 12 19 15.59z\" />\n </svg>\n </button>\n </div>\n\n <div class=\"avaya-ipo-dial-cluster\">\n <div class=\"avaya-ipo-keypad avaya-ipo-classic-grid\">\n <button type=\"button\" (click)=\"onKeypadInput('1')\">\n <span class=\"avaya-ipo-digit\">1</span>\n <span class=\"avaya-ipo-letters\">&nbsp;</span>\n </button>\n <button type=\"button\" (click)=\"onKeypadInput('2')\">\n <span class=\"avaya-ipo-digit\">2</span>\n <span class=\"avaya-ipo-letters\">ABC</span>\n </button>\n <button type=\"button\" (click)=\"onKeypadInput('3')\">\n <span class=\"avaya-ipo-digit\">3</span>\n <span class=\"avaya-ipo-letters\">DEF</span>\n </button>\n <button type=\"button\" (click)=\"onKeypadInput('4')\">\n <span class=\"avaya-ipo-digit\">4</span>\n <span class=\"avaya-ipo-letters\">GHI</span>\n </button>\n <button type=\"button\" (click)=\"onKeypadInput('5')\">\n <span class=\"avaya-ipo-digit\">5</span>\n <span class=\"avaya-ipo-letters\">JKL</span>\n </button>\n <button type=\"button\" (click)=\"onKeypadInput('6')\">\n <span class=\"avaya-ipo-digit\">6</span>\n <span class=\"avaya-ipo-letters\">MNO</span>\n </button>\n <button type=\"button\" (click)=\"onKeypadInput('7')\">\n <span class=\"avaya-ipo-digit\">7</span>\n <span class=\"avaya-ipo-letters\">PQRS</span>\n </button>\n <button type=\"button\" (click)=\"onKeypadInput('8')\">\n <span class=\"avaya-ipo-digit\">8</span>\n <span class=\"avaya-ipo-letters\">TUV</span>\n </button>\n <button type=\"button\" (click)=\"onKeypadInput('9')\">\n <span class=\"avaya-ipo-digit\">9</span>\n <span class=\"avaya-ipo-letters\">WXYZ</span>\n </button>\n <button type=\"button\" (click)=\"onKeypadInput('*')\">\n <span class=\"avaya-ipo-digit\">*</span>\n <span class=\"avaya-ipo-letters\">&nbsp;</span>\n </button>\n <button type=\"button\" (click)=\"onKeypadInput('0')\">\n <span class=\"avaya-ipo-digit\">0</span>\n <span class=\"avaya-ipo-letters\">+</span>\n </button>\n <button type=\"button\" (click)=\"onKeypadInput('#')\">\n <span class=\"avaya-ipo-digit\">#</span>\n <span class=\"avaya-ipo-letters\">&nbsp;</span>\n </button>\n </div>\n\n <div class=\"avaya-ipo-actions\">\n <button type=\"submit\" class=\"avaya-ipo-call-btn-main\" [disabled]=\"!this.dialForm.valid\">\n <svg viewBox=\"0 0 512 512\" width=\"22px\" height=\"22px\" fill=\"currentColor\" aria-hidden=\"true\">\n <path\n d=\"M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z\" />\n </svg>\n </button>\n </div>\n </div>\n</form>\n", styles: [":host{display:flex;flex-direction:column;height:100%;min-height:0}.avaya-ipo-phone-shell.avaya-ipo-classic{--key-size: clamp(40px, min(24cqw, 18cqh - 30px), 88px);--key-gap: calc(var(--key-size) * .16);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:clamp(35px,4.5cqw,30px);background:transparent;width:100%;height:100%;flex:1 1 auto;min-height:0;padding:46px 15px clamp(12px,3cqw,20px);box-sizing:border-box}.avaya-ipo-dial-cluster{flex:1 1 auto;min-height:0;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:clamp(10px,2.6cqw,18px)}.avaya-ipo-classic-input{width:100%;display:flex;align-items:center;padding:0;box-sizing:border-box;position:relative;border:1.5px solid var(--sd-input-border);border-radius:var(--sd-radius);background:var(--sd-input);box-shadow:var(--sd-shadow-sm);margin-bottom:0;transition:border-color .18s ease,box-shadow .18s ease}.avaya-ipo-classic-input:focus-within{border-color:var(--sd-accent);box-shadow:var(--sd-focus-ring)}.avaya-ipo-phonebook-btn{border:none;background:transparent;color:var(--sd-text-muted);width:32px;height:32px;border-radius:var(--sd-radius-sm);display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;cursor:pointer}.avaya-ipo-phonebook-btn:hover{background:var(--sd-surface-muted)}.avaya-ipo-phonebook-btn:focus{outline:none;box-shadow:none}.avaya-ipo-phonebook-btn:focus-visible{outline:none;box-shadow:var(--sd-focus-ring)}.avaya-ipo-clear-btn{position:absolute;right:clamp(5px,1.6cqw,9px);top:50%;transform:translateY(-50%);width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--sd-text-subtle);border-radius:50%;padding:0;cursor:pointer;transition:background .15s ease,color .15s ease,transform .1s ease}.avaya-ipo-clear-btn:hover{background:var(--sd-surface-muted);color:var(--sd-accent)}.avaya-ipo-clear-btn:active{transform:translateY(-50%) scale(.9)}.avaya-ipo-clear-btn:focus{outline:none;box-shadow:none}.avaya-ipo-clear-btn:focus-visible{outline:none;box-shadow:var(--sd-focus-ring)}.avaya-ipo-clear-btn svg{display:block}.avaya-ipo-classic-input .avaya-ipo-phone_number_sd{width:100%}.avaya-ipo-classic-input .avaya-ipo-phone_number_sd input{width:100%;border:none!important;box-shadow:none!important;background:transparent!important;padding:clamp(8px,calc(var(--key-size) * .16),15px) 46px clamp(8px,calc(var(--key-size) * .16),15px) 0!important;font-size:clamp(12px,calc(var(--key-size) * .27),20px)!important;font-weight:600;letter-spacing:.4px;color:var(--sd-text)!important}.avaya-ipo-classic-input .avaya-ipo-phone_number_sd input::placeholder{font-weight:400;letter-spacing:normal;color:var(--sd-text-subtle)}:host ::ng-deep .avaya-ipo-classic-input .iti{width:100%}:host ::ng-deep .avaya-ipo-classic-input .iti__selected-flag{padding:0 10px 0 14px;border-right:1px solid var(--sd-border);border-radius:calc(var(--sd-radius) - 2px) 0 0 calc(var(--sd-radius) - 2px);background:transparent;outline:none;transition:background .15s ease}:host ::ng-deep .avaya-ipo-classic-input .iti--allow-dropdown .iti__flag-container:hover .iti__selected-flag{background:var(--sd-surface-muted)}:host ::ng-deep .avaya-ipo-classic-input .selected-dial-code{margin-left:6px;font-size:clamp(12px,calc(var(--key-size) * .18),16px);font-weight:600;color:var(--sd-text)}:host ::ng-deep .avaya-ipo-classic-input .iti__selected-flag:focus,:host ::ng-deep .avaya-ipo-classic-input .iti__tel-input:focus,.avaya-ipo-classic-input .avaya-ipo-phone_number_sd input:focus{outline:none;box-shadow:none}:host ::ng-deep .avaya-ipo-classic-input .iti__tel-input{background:transparent!important;border:none!important;box-shadow:none!important;height:auto;padding:clamp(8px,calc(var(--key-size) * .16),15px) 46px clamp(8px,calc(var(--key-size) * .16),15px) 0;font-size:clamp(12px,calc(var(--key-size) * .27),20px);font-weight:600;letter-spacing:.4px;color:var(--sd-text)}:host ::ng-deep .avaya-ipo-classic-input .iti.separate-dial-code .iti__tel-input{padding-left:102px!important}:host ::ng-deep .avaya-ipo-classic-input .iti__dropdown-content,:host ::ng-deep .avaya-ipo-classic-input .dropdown-menu{z-index:30;min-width:248px;padding:6px;background:var(--sd-surface);border:1px solid var(--sd-border);border-radius:var(--sd-radius);box-shadow:var(--sd-shadow-lg)}:host ::ng-deep .avaya-ipo-classic-input .iti__country-list{max-height:220px;overflow-y:auto;margin:0;padding:0;border:none;box-shadow:none;background:transparent}:host ::ng-deep .avaya-ipo-classic-input .search-container{position:sticky;top:0;z-index:1;padding:0 0 6px;background:var(--sd-surface)}:host ::ng-deep .avaya-ipo-classic-input #country-search-box{width:100%;box-sizing:border-box;margin:0!important;padding:8px 12px!important;font-size:14px!important;font-weight:400!important;letter-spacing:normal!important;color:var(--sd-text)!important;background:var(--sd-input)!important;border:1px solid var(--sd-input-border)!important;border-radius:var(--sd-radius-sm)!important;box-shadow:none!important;height:auto!important;transition:border-color .15s ease,box-shadow .15s ease}:host ::ng-deep .avaya-ipo-classic-input #country-search-box:focus{outline:none!important;border-color:var(--sd-accent)!important;box-shadow:var(--sd-focus-ring)!important}:host ::ng-deep .avaya-ipo-classic-input #country-search-box::placeholder{color:var(--sd-text-subtle)!important}:host ::ng-deep .avaya-ipo-classic-input .iti__country{padding:7px 8px;border-radius:var(--sd-radius-sm);font-size:14px;color:var(--sd-text)}:host ::ng-deep .avaya-ipo-classic-input .iti__country.iti__highlight,:host ::ng-deep .avaya-ipo-classic-input .iti__country:hover{background:var(--sd-surface-muted)}:host ::ng-deep .avaya-ipo-classic-input .iti__country .iti__dial-code{color:var(--sd-text-subtle)}:host ::ng-deep .avaya-ipo-classic-input .iti__divider{border-top:1px solid var(--sd-border);margin:4px 0}.avaya-ipo-classic-grid{width:auto;margin:0 auto;display:grid;grid-template-columns:repeat(3,var(--key-size));gap:var(--key-gap);justify-content:center;flex:0 1 auto}.avaya-ipo-classic-grid button{width:var(--key-size);height:var(--key-size);border-radius:50%;border:1.6px solid var(--sd-border-strong);background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer}.avaya-ipo-classic-grid button:focus{outline:none;box-shadow:none}.avaya-ipo-classic-grid button:focus-visible{outline:none;box-shadow:var(--sd-focus-ring)}.avaya-ipo-classic-grid button:active{background:var(--sd-surface-muted)}.avaya-ipo-classic-grid .avaya-ipo-digit{font-size:clamp(15px,calc(var(--key-size) * .34),26px);font-weight:400;color:var(--sd-text);line-height:1.1}.avaya-ipo-classic-grid .avaya-ipo-letters{font-size:clamp(7px,calc(var(--key-size) * .12),10px);letter-spacing:.8px;color:var(--sd-text-subtle);margin-top:2px}.avaya-ipo-actions{display:flex;justify-content:center;width:100%;margin-top:0}.avaya-ipo-call-btn-main{width:var(--key-size);height:var(--key-size);border-radius:50%;border:none;background:var(--sd-call-accept);color:var(--sd-accent-contrast);display:inline-flex;align-items:center;justify-content:center;box-shadow:var(--sd-shadow-md);cursor:pointer}.avaya-ipo-call-btn-main:disabled{opacity:.4;cursor:not-allowed}\n"], dependencies: [{ kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$1.NgxIntlTelInputComponent, selector: "ngx-intl-tel-input", inputs: ["value", "preferredCountries", "enablePlaceholder", "customPlaceholder", "numberFormat", "cssClass", "onlyCountries", "enableAutoCountrySelect", "searchCountryFlag", "searchCountryField", "searchCountryPlaceholder", "maxLength", "selectFirstCountry", "selectedCountryISO", "phoneValidation", "inputId", "separateDialCode"], outputs: ["countryChange"] }, { kind: "directive", type: i2$1.NativeElementInjectorDirective, selector: "[ngModel], [formControl], [formControlName]" }] });
2789
2903
  }
2790
2904
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: PhoneIdleComponent, decorators: [{
2791
2905
  type: Component,
2792
- args: [{ selector: 'app-phone-idle', standalone: false, template: "<form class=\"phone-shell classic\" [formGroup]=\"dialForm\" (ngSubmit)=\"onMakeCall()\">\n <div class=\"input-row classic-input\">\n <ngx-intl-tel-input\n formControlName=\"phoneNumber\"\n name=\"phoneNumber\"\n [cssClass]=\"'phone_number_sd'\"\n [preferredCountries]=\"['in']\"\n [customPlaceholder]=\"'Phone Number'\"\n [enableAutoCountrySelect]=\"false\"\n [enablePlaceholder]=\"false\"\n [searchCountryFlag]=\"true\"\n [searchCountryField]=\"[SearchCountryField.Iso2, SearchCountryField.Name]\"\n [selectFirstCountry]=\"false\"\n [selectedCountryISO]=\"CountryISO.India\"\n [maxLength]=\"15\"\n [phoneValidation]=\"true\"\n [separateDialCode]=\"true\"\n (keydown)=\"onKeyboardInput($event)\"\n >\n </ngx-intl-tel-input>\n <button type=\"button\" class=\"clear-btn\" (click)=\"onClear()\">\u232B</button>\n </div>\n\n <div class=\"keypad classic-grid\">\n <button type=\"button\" (click)=\"onKeypadInput('1')\">\n <span class=\"digit\">1</span>\n <span class=\"letters\">&nbsp;</span>\n </button>\n <button type=\"button\" (click)=\"onKeypadInput('2')\">\n <span class=\"digit\">2</span>\n <span class=\"letters\">ABC</span>\n </button>\n <button type=\"button\" (click)=\"onKeypadInput('3')\">\n <span class=\"digit\">3</span>\n <span class=\"letters\">DEF</span>\n </button>\n <button type=\"button\" (click)=\"onKeypadInput('4')\">\n <span class=\"digit\">4</span>\n <span class=\"letters\">GHI</span>\n </button>\n <button type=\"button\" (click)=\"onKeypadInput('5')\">\n <span class=\"digit\">5</span>\n <span class=\"letters\">JKL</span>\n </button>\n <button type=\"button\" (click)=\"onKeypadInput('6')\">\n <span class=\"digit\">6</span>\n <span class=\"letters\">MNO</span>\n </button>\n <button type=\"button\" (click)=\"onKeypadInput('7')\">\n <span class=\"digit\">7</span>\n <span class=\"letters\">PQRS</span>\n </button>\n <button type=\"button\" (click)=\"onKeypadInput('8')\">\n <span class=\"digit\">8</span>\n <span class=\"letters\">TUV</span>\n </button>\n <button type=\"button\" (click)=\"onKeypadInput('9')\">\n <span class=\"digit\">9</span>\n <span class=\"letters\">WXYZ</span>\n </button>\n <button type=\"button\" (click)=\"onKeypadInput('*')\">\n <span class=\"digit\">*</span>\n <span class=\"letters\">&nbsp;</span>\n </button>\n <button type=\"button\" (click)=\"onKeypadInput('0')\">\n <span class=\"digit\">0</span>\n <span class=\"letters\">+</span>\n </button>\n <button type=\"button\" (click)=\"onKeypadInput('#')\">\n <span class=\"digit\">#</span>\n <span class=\"letters\">&nbsp;</span>\n </button>\n </div>\n\n <div class=\"actions\">\n <button type=\"submit\" class=\"call-btn-main\" [disabled]=\"!this.dialForm.valid\">\n <svg viewBox=\"0 0 512 512\" width=\"22px\" height=\"22px\" fill=\"currentColor\" aria-hidden=\"true\">\n <path\n d=\"M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z\" />\n </svg>\n </button>\n </div>\n</form>\n", styles: [".phone-shell.classic{display:flex;flex-direction:column;align-items:center;gap:3rem;background:transparent;padding:0 15px}.classic-input{width:100%;display:flex;align-items:center;gap:6px;padding:6px 42px 6px 16px;box-sizing:border-box;position:relative;border:1px solid #dcdcdc;border-radius:12px;background:#fafafa;box-shadow:inset 0 1px 2px #0000000d;margin-bottom:6px}.phonebook-btn{border:none;background:transparent;color:#555;width:32px;height:32px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;cursor:pointer}.phonebook-btn:hover{background:#0000000d}.phonebook-btn:focus{outline:none;box-shadow:none}.clear-btn{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:none;background:transparent;color:#555;border-radius:6px;padding:6px 8px;cursor:pointer;font-weight:700}.classic-input .phone_number_sd{width:100%}.classic-input .phone_number_sd input{width:100%;border:none!important;box-shadow:none!important;padding:8px 0!important;font-size:15px!important;color:#111}:host ::ng-deep .classic-input .iti{width:100%}:host ::ng-deep .classic-input .iti__flag-container{padding-left:6px}:host ::ng-deep .classic-input .iti__selected-flag{border-right:1px solid #e5e5e5;padding-right:8px}:host ::ng-deep .classic-input .iti.separate-dial-code input{padding-left:130px!important}:host ::ng-deep .classic-input .iti__tel-input{background:transparent;border:none;box-shadow:none;height:32px;padding:0 0 0 6px;font-size:15px}.classic-grid{width:100%;max-width:260px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;justify-items:center}.classic-grid button{width:68px;height:68px;border-radius:50%;border:1.6px solid #c7c7c7;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:Helvetica Neue,Arial,sans-serif;cursor:pointer}.classic-grid button:focus{outline:none;box-shadow:none}.classic-grid button:active{background:#0000000a}.classic-grid .digit{font-size:24px;font-weight:400;color:#4a4a4a;line-height:24px}.classic-grid .letters{font-size:9px;letter-spacing:.8px;color:#9a9a9a;margin-top:2px}.actions{display:flex;justify-content:center;width:100%;margin-top:6px}.call-btn-main{width:68px;height:68px;border-radius:50%;border:none;background:#28b446;color:#fff;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #28b44659;cursor:pointer}.call-btn-main:disabled{opacity:.4;cursor:not-allowed}\n"] }]
2906
+ args: [{ selector: 'app-phone-idle', standalone: false, template: "<form class=\"avaya-ipo-phone-shell avaya-ipo-classic\" [formGroup]=\"dialForm\" (ngSubmit)=\"onMakeCall()\">\n <div class=\"avaya-ipo-input-row avaya-ipo-classic-input\">\n <ngx-intl-tel-input\n formControlName=\"phoneNumber\"\n name=\"phoneNumber\"\n [cssClass]=\"'avaya-ipo-phone_number_sd'\"\n [preferredCountries]=\"['in']\"\n [customPlaceholder]=\"'Phone Number'\"\n [enableAutoCountrySelect]=\"false\"\n [enablePlaceholder]=\"false\"\n [searchCountryFlag]=\"true\"\n [searchCountryField]=\"[SearchCountryField.Iso2, SearchCountryField.Name]\"\n [selectFirstCountry]=\"false\"\n [selectedCountryISO]=\"CountryISO.India\"\n [maxLength]=\"15\"\n [phoneValidation]=\"true\"\n [separateDialCode]=\"true\"\n (keydown)=\"onKeyboardInput($event)\"\n >\n </ngx-intl-tel-input>\n <button type=\"button\" class=\"avaya-ipo-clear-btn\" (click)=\"onClear()\" aria-label=\"Backspace\" title=\"Backspace\">\n <svg viewBox=\"0 0 24 24\" width=\"20\" height=\"20\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\">\n <path d=\"M22 3H7c-.69 0-1.23.35-1.59.88L0 12l5.41 8.12c.36.53.9.88 1.59.88h15c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-3 12.59L17.59 17 14 13.41 10.41 17 9 15.59 12.59 12 9 8.41 10.41 7 14 10.59 17.59 7 19 8.41 15.41 12 19 15.59z\" />\n </svg>\n </button>\n </div>\n\n <div class=\"avaya-ipo-dial-cluster\">\n <div class=\"avaya-ipo-keypad avaya-ipo-classic-grid\">\n <button type=\"button\" (click)=\"onKeypadInput('1')\">\n <span class=\"avaya-ipo-digit\">1</span>\n <span class=\"avaya-ipo-letters\">&nbsp;</span>\n </button>\n <button type=\"button\" (click)=\"onKeypadInput('2')\">\n <span class=\"avaya-ipo-digit\">2</span>\n <span class=\"avaya-ipo-letters\">ABC</span>\n </button>\n <button type=\"button\" (click)=\"onKeypadInput('3')\">\n <span class=\"avaya-ipo-digit\">3</span>\n <span class=\"avaya-ipo-letters\">DEF</span>\n </button>\n <button type=\"button\" (click)=\"onKeypadInput('4')\">\n <span class=\"avaya-ipo-digit\">4</span>\n <span class=\"avaya-ipo-letters\">GHI</span>\n </button>\n <button type=\"button\" (click)=\"onKeypadInput('5')\">\n <span class=\"avaya-ipo-digit\">5</span>\n <span class=\"avaya-ipo-letters\">JKL</span>\n </button>\n <button type=\"button\" (click)=\"onKeypadInput('6')\">\n <span class=\"avaya-ipo-digit\">6</span>\n <span class=\"avaya-ipo-letters\">MNO</span>\n </button>\n <button type=\"button\" (click)=\"onKeypadInput('7')\">\n <span class=\"avaya-ipo-digit\">7</span>\n <span class=\"avaya-ipo-letters\">PQRS</span>\n </button>\n <button type=\"button\" (click)=\"onKeypadInput('8')\">\n <span class=\"avaya-ipo-digit\">8</span>\n <span class=\"avaya-ipo-letters\">TUV</span>\n </button>\n <button type=\"button\" (click)=\"onKeypadInput('9')\">\n <span class=\"avaya-ipo-digit\">9</span>\n <span class=\"avaya-ipo-letters\">WXYZ</span>\n </button>\n <button type=\"button\" (click)=\"onKeypadInput('*')\">\n <span class=\"avaya-ipo-digit\">*</span>\n <span class=\"avaya-ipo-letters\">&nbsp;</span>\n </button>\n <button type=\"button\" (click)=\"onKeypadInput('0')\">\n <span class=\"avaya-ipo-digit\">0</span>\n <span class=\"avaya-ipo-letters\">+</span>\n </button>\n <button type=\"button\" (click)=\"onKeypadInput('#')\">\n <span class=\"avaya-ipo-digit\">#</span>\n <span class=\"avaya-ipo-letters\">&nbsp;</span>\n </button>\n </div>\n\n <div class=\"avaya-ipo-actions\">\n <button type=\"submit\" class=\"avaya-ipo-call-btn-main\" [disabled]=\"!this.dialForm.valid\">\n <svg viewBox=\"0 0 512 512\" width=\"22px\" height=\"22px\" fill=\"currentColor\" aria-hidden=\"true\">\n <path\n d=\"M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z\" />\n </svg>\n </button>\n </div>\n </div>\n</form>\n", styles: [":host{display:flex;flex-direction:column;height:100%;min-height:0}.avaya-ipo-phone-shell.avaya-ipo-classic{--key-size: clamp(40px, min(24cqw, 18cqh - 30px), 88px);--key-gap: calc(var(--key-size) * .16);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:clamp(35px,4.5cqw,30px);background:transparent;width:100%;height:100%;flex:1 1 auto;min-height:0;padding:46px 15px clamp(12px,3cqw,20px);box-sizing:border-box}.avaya-ipo-dial-cluster{flex:1 1 auto;min-height:0;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:clamp(10px,2.6cqw,18px)}.avaya-ipo-classic-input{width:100%;display:flex;align-items:center;padding:0;box-sizing:border-box;position:relative;border:1.5px solid var(--sd-input-border);border-radius:var(--sd-radius);background:var(--sd-input);box-shadow:var(--sd-shadow-sm);margin-bottom:0;transition:border-color .18s ease,box-shadow .18s ease}.avaya-ipo-classic-input:focus-within{border-color:var(--sd-accent);box-shadow:var(--sd-focus-ring)}.avaya-ipo-phonebook-btn{border:none;background:transparent;color:var(--sd-text-muted);width:32px;height:32px;border-radius:var(--sd-radius-sm);display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;cursor:pointer}.avaya-ipo-phonebook-btn:hover{background:var(--sd-surface-muted)}.avaya-ipo-phonebook-btn:focus{outline:none;box-shadow:none}.avaya-ipo-phonebook-btn:focus-visible{outline:none;box-shadow:var(--sd-focus-ring)}.avaya-ipo-clear-btn{position:absolute;right:clamp(5px,1.6cqw,9px);top:50%;transform:translateY(-50%);width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--sd-text-subtle);border-radius:50%;padding:0;cursor:pointer;transition:background .15s ease,color .15s ease,transform .1s ease}.avaya-ipo-clear-btn:hover{background:var(--sd-surface-muted);color:var(--sd-accent)}.avaya-ipo-clear-btn:active{transform:translateY(-50%) scale(.9)}.avaya-ipo-clear-btn:focus{outline:none;box-shadow:none}.avaya-ipo-clear-btn:focus-visible{outline:none;box-shadow:var(--sd-focus-ring)}.avaya-ipo-clear-btn svg{display:block}.avaya-ipo-classic-input .avaya-ipo-phone_number_sd{width:100%}.avaya-ipo-classic-input .avaya-ipo-phone_number_sd input{width:100%;border:none!important;box-shadow:none!important;background:transparent!important;padding:clamp(8px,calc(var(--key-size) * .16),15px) 46px clamp(8px,calc(var(--key-size) * .16),15px) 0!important;font-size:clamp(12px,calc(var(--key-size) * .27),20px)!important;font-weight:600;letter-spacing:.4px;color:var(--sd-text)!important}.avaya-ipo-classic-input .avaya-ipo-phone_number_sd input::placeholder{font-weight:400;letter-spacing:normal;color:var(--sd-text-subtle)}:host ::ng-deep .avaya-ipo-classic-input .iti{width:100%}:host ::ng-deep .avaya-ipo-classic-input .iti__selected-flag{padding:0 10px 0 14px;border-right:1px solid var(--sd-border);border-radius:calc(var(--sd-radius) - 2px) 0 0 calc(var(--sd-radius) - 2px);background:transparent;outline:none;transition:background .15s ease}:host ::ng-deep .avaya-ipo-classic-input .iti--allow-dropdown .iti__flag-container:hover .iti__selected-flag{background:var(--sd-surface-muted)}:host ::ng-deep .avaya-ipo-classic-input .selected-dial-code{margin-left:6px;font-size:clamp(12px,calc(var(--key-size) * .18),16px);font-weight:600;color:var(--sd-text)}:host ::ng-deep .avaya-ipo-classic-input .iti__selected-flag:focus,:host ::ng-deep .avaya-ipo-classic-input .iti__tel-input:focus,.avaya-ipo-classic-input .avaya-ipo-phone_number_sd input:focus{outline:none;box-shadow:none}:host ::ng-deep .avaya-ipo-classic-input .iti__tel-input{background:transparent!important;border:none!important;box-shadow:none!important;height:auto;padding:clamp(8px,calc(var(--key-size) * .16),15px) 46px clamp(8px,calc(var(--key-size) * .16),15px) 0;font-size:clamp(12px,calc(var(--key-size) * .27),20px);font-weight:600;letter-spacing:.4px;color:var(--sd-text)}:host ::ng-deep .avaya-ipo-classic-input .iti.separate-dial-code .iti__tel-input{padding-left:102px!important}:host ::ng-deep .avaya-ipo-classic-input .iti__dropdown-content,:host ::ng-deep .avaya-ipo-classic-input .dropdown-menu{z-index:30;min-width:248px;padding:6px;background:var(--sd-surface);border:1px solid var(--sd-border);border-radius:var(--sd-radius);box-shadow:var(--sd-shadow-lg)}:host ::ng-deep .avaya-ipo-classic-input .iti__country-list{max-height:220px;overflow-y:auto;margin:0;padding:0;border:none;box-shadow:none;background:transparent}:host ::ng-deep .avaya-ipo-classic-input .search-container{position:sticky;top:0;z-index:1;padding:0 0 6px;background:var(--sd-surface)}:host ::ng-deep .avaya-ipo-classic-input #country-search-box{width:100%;box-sizing:border-box;margin:0!important;padding:8px 12px!important;font-size:14px!important;font-weight:400!important;letter-spacing:normal!important;color:var(--sd-text)!important;background:var(--sd-input)!important;border:1px solid var(--sd-input-border)!important;border-radius:var(--sd-radius-sm)!important;box-shadow:none!important;height:auto!important;transition:border-color .15s ease,box-shadow .15s ease}:host ::ng-deep .avaya-ipo-classic-input #country-search-box:focus{outline:none!important;border-color:var(--sd-accent)!important;box-shadow:var(--sd-focus-ring)!important}:host ::ng-deep .avaya-ipo-classic-input #country-search-box::placeholder{color:var(--sd-text-subtle)!important}:host ::ng-deep .avaya-ipo-classic-input .iti__country{padding:7px 8px;border-radius:var(--sd-radius-sm);font-size:14px;color:var(--sd-text)}:host ::ng-deep .avaya-ipo-classic-input .iti__country.iti__highlight,:host ::ng-deep .avaya-ipo-classic-input .iti__country:hover{background:var(--sd-surface-muted)}:host ::ng-deep .avaya-ipo-classic-input .iti__country .iti__dial-code{color:var(--sd-text-subtle)}:host ::ng-deep .avaya-ipo-classic-input .iti__divider{border-top:1px solid var(--sd-border);margin:4px 0}.avaya-ipo-classic-grid{width:auto;margin:0 auto;display:grid;grid-template-columns:repeat(3,var(--key-size));gap:var(--key-gap);justify-content:center;flex:0 1 auto}.avaya-ipo-classic-grid button{width:var(--key-size);height:var(--key-size);border-radius:50%;border:1.6px solid var(--sd-border-strong);background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer}.avaya-ipo-classic-grid button:focus{outline:none;box-shadow:none}.avaya-ipo-classic-grid button:focus-visible{outline:none;box-shadow:var(--sd-focus-ring)}.avaya-ipo-classic-grid button:active{background:var(--sd-surface-muted)}.avaya-ipo-classic-grid .avaya-ipo-digit{font-size:clamp(15px,calc(var(--key-size) * .34),26px);font-weight:400;color:var(--sd-text);line-height:1.1}.avaya-ipo-classic-grid .avaya-ipo-letters{font-size:clamp(7px,calc(var(--key-size) * .12),10px);letter-spacing:.8px;color:var(--sd-text-subtle);margin-top:2px}.avaya-ipo-actions{display:flex;justify-content:center;width:100%;margin-top:0}.avaya-ipo-call-btn-main{width:var(--key-size);height:var(--key-size);border-radius:50%;border:none;background:var(--sd-call-accept);color:var(--sd-accent-contrast);display:inline-flex;align-items:center;justify-content:center;box-shadow:var(--sd-shadow-md);cursor:pointer}.avaya-ipo-call-btn-main:disabled{opacity:.4;cursor:not-allowed}\n"] }]
2793
2907
  }], propDecorators: { dialForm: [{
2794
2908
  type: Input
2795
2909
  }], contacts: [{
@@ -2822,11 +2936,11 @@ class PhoneIncomingComponent {
2822
2936
  accept = new EventEmitter();
2823
2937
  decline = new EventEmitter();
2824
2938
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: PhoneIncomingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2825
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: PhoneIncomingComponent, isStandalone: false, selector: "app-phone-incoming", inputs: { incomingCallName: "incomingCallName", incomingNameResolved: "incomingNameResolved", incomingCallNumber: "incomingCallNumber" }, outputs: { accept: "accept", decline: "decline" }, ngImport: i0, template: "<div class=\"incoming-screen\">\n <div class=\"incoming-avatar\">\n <img [src]=\"incomingAvatarUrl\" alt=\"Incoming call avatar\" />\n </div>\n\n <div class=\"incoming-title\">\n @if (incomingCallName) {\n {{ incomingCallName }}\n } @else if (incomingNameResolved) {\n Unknown caller\n } @else {\n &nbsp;\n }\n </div>\n <div class=\"incoming-subtitle\">\n {{ incomingCallNumber || 'Unknown number' }}\n </div>\n <div class=\"incoming-status\">CALLING...</div>\n\n <div class=\"incoming-actions\">\n <button type=\"button\" class=\"incoming-btn accept\" (click)=\"accept.emit()\">\n <span class=\"btn-icon\">\n <svg height=\"20\" viewBox=\"0 0 512 512\" aria-hidden=\"true\" focusable=\"false\">\n <path\n d=\"M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z\"\n />\n </svg>\n </span>\n </button>\n <button type=\"button\" class=\"incoming-btn decline\" (click)=\"decline.emit()\">\n <span class=\"btn-icon\">\n <svg height=\"20\" viewBox=\"0 0 640 512\" aria-hidden=\"true\" focusable=\"false\">\n <path\n d=\"M11.7 266.3l41.9 94.3c6.1 13.7 20.8 21.3 35.5 18.4l109.2-21.8c15-3 25.7-16.1 25.7-31.4V240c62.3-20.8 129.7-20.8 192 0v85.8c0 15.3 10.8 28.4 25.7 31.4L550.9 379c14.7 2.9 29.4-4.7 35.5-18.4l41.9-94.3c7.2-16.2 5.1-35.1-7.4-47.7C570.8 168.1 464.2 96 320 96S69.2 168.1 19.1 218.6c-12.5 12.6-14.6 31.5-7.4 47.7z\"\n />\n </svg>\n </span>\n </button>\n </div>\n\n</div>\n", styles: [".incoming-screen{display:flex;flex-direction:column;align-items:center;gap:14px;padding:28px 16px 24px;text-align:center;min-height:100%;height:100%;justify-content:center;color:#1f1f1f}.incoming-avatar img{width:96px;height:96px;object-fit:cover;border-radius:50%;animation:avatar-pulse 1.8s ease-in-out infinite}.incoming-title{font-size:24px;font-weight:700}.incoming-subtitle{font-size:14px;color:#6f6f6f}.incoming-actions{display:flex;gap:7rem;margin-top:10rem}.incoming-btn{border:none;border-radius:50%;width:72px;height:72px;display:inline-flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;font-weight:600;cursor:pointer;background:#fff;color:#1f1f1f}.incoming-btn .btn-icon{display:inline-flex;align-items:center;justify-content:center}.incoming-btn.accept{background:#2fb34a;color:#fff;border:none}.incoming-btn.decline{background:#e23a2e;color:#fff;border:none}.incoming-status{letter-spacing:2px;font-size:13px;color:#8a8a8a}.incoming-avatar{position:relative}@keyframes avatar-pulse{0%{box-shadow:0 0 #2fb34a59}70%{box-shadow:0 0 0 16px #2fb34a00}to{box-shadow:0 0 #2fb34a00}}\n"] });
2939
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: PhoneIncomingComponent, isStandalone: false, selector: "app-phone-incoming", inputs: { incomingCallName: "incomingCallName", incomingNameResolved: "incomingNameResolved", incomingCallNumber: "incomingCallNumber" }, outputs: { accept: "accept", decline: "decline" }, ngImport: i0, template: "<div class=\"avaya-ipo-incoming-screen\">\n <div class=\"avaya-ipo-incoming-avatar\">\n <img [src]=\"incomingAvatarUrl\" alt=\"Incoming call avatar\" />\n </div>\n\n <div class=\"avaya-ipo-incoming-title\">\n @if (incomingCallName) {\n {{ incomingCallName }}\n } @else if (incomingNameResolved) {\n Unknown caller\n } @else {\n &nbsp;\n }\n </div>\n <div class=\"avaya-ipo-incoming-subtitle\">\n {{ incomingCallNumber || 'Unknown number' }}\n </div>\n <div class=\"avaya-ipo-incoming-status\">CALLING...</div>\n\n <div class=\"avaya-ipo-incoming-actions\">\n <button type=\"button\" class=\"avaya-ipo-incoming-btn avaya-ipo-accept\" (click)=\"accept.emit()\">\n <span class=\"avaya-ipo-btn-icon\">\n <svg height=\"20\" viewBox=\"0 0 512 512\" aria-hidden=\"true\" focusable=\"false\">\n <path\n d=\"M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z\"\n />\n </svg>\n </span>\n </button>\n <button type=\"button\" class=\"avaya-ipo-incoming-btn avaya-ipo-decline\" (click)=\"decline.emit()\">\n <span class=\"avaya-ipo-btn-icon\">\n <svg height=\"20\" viewBox=\"0 0 640 512\" aria-hidden=\"true\" focusable=\"false\">\n <path\n d=\"M11.7 266.3l41.9 94.3c6.1 13.7 20.8 21.3 35.5 18.4l109.2-21.8c15-3 25.7-16.1 25.7-31.4V240c62.3-20.8 129.7-20.8 192 0v85.8c0 15.3 10.8 28.4 25.7 31.4L550.9 379c14.7 2.9 29.4-4.7 35.5-18.4l41.9-94.3c7.2-16.2 5.1-35.1-7.4-47.7C570.8 168.1 464.2 96 320 96S69.2 168.1 19.1 218.6c-12.5 12.6-14.6 31.5-7.4 47.7z\"\n />\n </svg>\n </span>\n </button>\n </div>\n\n</div>\n", styles: [".avaya-ipo-incoming-screen{display:flex;flex-direction:column;align-items:center;gap:14px;padding:28px 16px 24px;text-align:center;min-height:100%;height:100%;justify-content:center;color:var(--sd-text)}.avaya-ipo-incoming-avatar img{width:96px;height:96px;object-fit:cover;border-radius:50%;animation:avatar-pulse 1.8s ease-in-out infinite}.avaya-ipo-incoming-title{font-size:24px;font-weight:700;color:var(--sd-text)}.avaya-ipo-incoming-subtitle{font-size:14px;color:var(--sd-text-muted)}.avaya-ipo-incoming-actions{display:flex;gap:clamp(2.5rem,22%,7rem);margin-top:clamp(1.5rem,8%,5rem)}.avaya-ipo-incoming-btn{border:none;border-radius:50%;width:72px;height:72px;display:inline-flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;font-weight:600;cursor:pointer;background:var(--sd-card);color:var(--sd-text)}.avaya-ipo-incoming-btn .avaya-ipo-btn-icon{display:inline-flex;align-items:center;justify-content:center}.avaya-ipo-incoming-btn.avaya-ipo-accept{background:var(--sd-call-accept);color:var(--sd-accent-contrast);border:none}.avaya-ipo-incoming-btn.avaya-ipo-decline{background:var(--sd-call-end);color:var(--sd-accent-contrast);border:none}.avaya-ipo-incoming-status{letter-spacing:2px;font-size:13px;color:var(--sd-text-muted)}.avaya-ipo-incoming-avatar{position:relative}@keyframes avatar-pulse{0%{box-shadow:0 0 #1aa25159}70%{box-shadow:0 0 0 16px #1aa25100}to{box-shadow:0 0 #1aa25100}}\n"] });
2826
2940
  }
2827
2941
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: PhoneIncomingComponent, decorators: [{
2828
2942
  type: Component,
2829
- args: [{ selector: 'app-phone-incoming', standalone: false, template: "<div class=\"incoming-screen\">\n <div class=\"incoming-avatar\">\n <img [src]=\"incomingAvatarUrl\" alt=\"Incoming call avatar\" />\n </div>\n\n <div class=\"incoming-title\">\n @if (incomingCallName) {\n {{ incomingCallName }}\n } @else if (incomingNameResolved) {\n Unknown caller\n } @else {\n &nbsp;\n }\n </div>\n <div class=\"incoming-subtitle\">\n {{ incomingCallNumber || 'Unknown number' }}\n </div>\n <div class=\"incoming-status\">CALLING...</div>\n\n <div class=\"incoming-actions\">\n <button type=\"button\" class=\"incoming-btn accept\" (click)=\"accept.emit()\">\n <span class=\"btn-icon\">\n <svg height=\"20\" viewBox=\"0 0 512 512\" aria-hidden=\"true\" focusable=\"false\">\n <path\n d=\"M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z\"\n />\n </svg>\n </span>\n </button>\n <button type=\"button\" class=\"incoming-btn decline\" (click)=\"decline.emit()\">\n <span class=\"btn-icon\">\n <svg height=\"20\" viewBox=\"0 0 640 512\" aria-hidden=\"true\" focusable=\"false\">\n <path\n d=\"M11.7 266.3l41.9 94.3c6.1 13.7 20.8 21.3 35.5 18.4l109.2-21.8c15-3 25.7-16.1 25.7-31.4V240c62.3-20.8 129.7-20.8 192 0v85.8c0 15.3 10.8 28.4 25.7 31.4L550.9 379c14.7 2.9 29.4-4.7 35.5-18.4l41.9-94.3c7.2-16.2 5.1-35.1-7.4-47.7C570.8 168.1 464.2 96 320 96S69.2 168.1 19.1 218.6c-12.5 12.6-14.6 31.5-7.4 47.7z\"\n />\n </svg>\n </span>\n </button>\n </div>\n\n</div>\n", styles: [".incoming-screen{display:flex;flex-direction:column;align-items:center;gap:14px;padding:28px 16px 24px;text-align:center;min-height:100%;height:100%;justify-content:center;color:#1f1f1f}.incoming-avatar img{width:96px;height:96px;object-fit:cover;border-radius:50%;animation:avatar-pulse 1.8s ease-in-out infinite}.incoming-title{font-size:24px;font-weight:700}.incoming-subtitle{font-size:14px;color:#6f6f6f}.incoming-actions{display:flex;gap:7rem;margin-top:10rem}.incoming-btn{border:none;border-radius:50%;width:72px;height:72px;display:inline-flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;font-weight:600;cursor:pointer;background:#fff;color:#1f1f1f}.incoming-btn .btn-icon{display:inline-flex;align-items:center;justify-content:center}.incoming-btn.accept{background:#2fb34a;color:#fff;border:none}.incoming-btn.decline{background:#e23a2e;color:#fff;border:none}.incoming-status{letter-spacing:2px;font-size:13px;color:#8a8a8a}.incoming-avatar{position:relative}@keyframes avatar-pulse{0%{box-shadow:0 0 #2fb34a59}70%{box-shadow:0 0 0 16px #2fb34a00}to{box-shadow:0 0 #2fb34a00}}\n"] }]
2943
+ args: [{ selector: 'app-phone-incoming', standalone: false, template: "<div class=\"avaya-ipo-incoming-screen\">\n <div class=\"avaya-ipo-incoming-avatar\">\n <img [src]=\"incomingAvatarUrl\" alt=\"Incoming call avatar\" />\n </div>\n\n <div class=\"avaya-ipo-incoming-title\">\n @if (incomingCallName) {\n {{ incomingCallName }}\n } @else if (incomingNameResolved) {\n Unknown caller\n } @else {\n &nbsp;\n }\n </div>\n <div class=\"avaya-ipo-incoming-subtitle\">\n {{ incomingCallNumber || 'Unknown number' }}\n </div>\n <div class=\"avaya-ipo-incoming-status\">CALLING...</div>\n\n <div class=\"avaya-ipo-incoming-actions\">\n <button type=\"button\" class=\"avaya-ipo-incoming-btn avaya-ipo-accept\" (click)=\"accept.emit()\">\n <span class=\"avaya-ipo-btn-icon\">\n <svg height=\"20\" viewBox=\"0 0 512 512\" aria-hidden=\"true\" focusable=\"false\">\n <path\n d=\"M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z\"\n />\n </svg>\n </span>\n </button>\n <button type=\"button\" class=\"avaya-ipo-incoming-btn avaya-ipo-decline\" (click)=\"decline.emit()\">\n <span class=\"avaya-ipo-btn-icon\">\n <svg height=\"20\" viewBox=\"0 0 640 512\" aria-hidden=\"true\" focusable=\"false\">\n <path\n d=\"M11.7 266.3l41.9 94.3c6.1 13.7 20.8 21.3 35.5 18.4l109.2-21.8c15-3 25.7-16.1 25.7-31.4V240c62.3-20.8 129.7-20.8 192 0v85.8c0 15.3 10.8 28.4 25.7 31.4L550.9 379c14.7 2.9 29.4-4.7 35.5-18.4l41.9-94.3c7.2-16.2 5.1-35.1-7.4-47.7C570.8 168.1 464.2 96 320 96S69.2 168.1 19.1 218.6c-12.5 12.6-14.6 31.5-7.4 47.7z\"\n />\n </svg>\n </span>\n </button>\n </div>\n\n</div>\n", styles: [".avaya-ipo-incoming-screen{display:flex;flex-direction:column;align-items:center;gap:14px;padding:28px 16px 24px;text-align:center;min-height:100%;height:100%;justify-content:center;color:var(--sd-text)}.avaya-ipo-incoming-avatar img{width:96px;height:96px;object-fit:cover;border-radius:50%;animation:avatar-pulse 1.8s ease-in-out infinite}.avaya-ipo-incoming-title{font-size:24px;font-weight:700;color:var(--sd-text)}.avaya-ipo-incoming-subtitle{font-size:14px;color:var(--sd-text-muted)}.avaya-ipo-incoming-actions{display:flex;gap:clamp(2.5rem,22%,7rem);margin-top:clamp(1.5rem,8%,5rem)}.avaya-ipo-incoming-btn{border:none;border-radius:50%;width:72px;height:72px;display:inline-flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;font-weight:600;cursor:pointer;background:var(--sd-card);color:var(--sd-text)}.avaya-ipo-incoming-btn .avaya-ipo-btn-icon{display:inline-flex;align-items:center;justify-content:center}.avaya-ipo-incoming-btn.avaya-ipo-accept{background:var(--sd-call-accept);color:var(--sd-accent-contrast);border:none}.avaya-ipo-incoming-btn.avaya-ipo-decline{background:var(--sd-call-end);color:var(--sd-accent-contrast);border:none}.avaya-ipo-incoming-status{letter-spacing:2px;font-size:13px;color:var(--sd-text-muted)}.avaya-ipo-incoming-avatar{position:relative}@keyframes avatar-pulse{0%{box-shadow:0 0 #1aa25159}70%{box-shadow:0 0 0 16px #1aa25100}to{box-shadow:0 0 #1aa25100}}\n"] }]
2830
2944
  }], propDecorators: { incomingCallName: [{
2831
2945
  type: Input
2832
2946
  }], incomingNameResolved: [{
@@ -2925,11 +3039,11 @@ class PhoneActiveComponent {
2925
3039
  return `${String(minutes).padStart(2, '0')}:${String(seconds).padStart(2, '0')}`;
2926
3040
  }
2927
3041
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: PhoneActiveComponent, deps: [{ token: EntitiesSearchService }], target: i0.ɵɵFactoryTarget.Component });
2928
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: PhoneActiveComponent, isStandalone: false, selector: "app-phone-active", inputs: { tenantId: "tenantId", activeCallName: "activeCallName", activeCallNumber: "activeCallNumber", activeCallDuration: "activeCallDuration", callStatusText: "callStatusText", isConnecting: "isConnecting", isMuted: "isMuted", isHeld: "isHeld" }, outputs: { endCall: "endCall", toggleMute: "toggleMute", toggleHold: "toggleHold", transfer: "transfer", openContacts: "openContacts", openKeypad: "openKeypad", startTranscription: "startTranscription", contactsLoaded: "contactsLoaded" }, ngImport: i0, template: "<div class=\"active-screen\">\n <div class=\"active-avatar\">\n <img [src]=\"activeAvatarUrl\" alt=\"Active call avatar\" />\n </div>\n\n <div class=\"active-title\">{{ activeCallName || 'Unknown' }}</div>\n <div class=\"active-number\">{{ activeCallNumber || '' }}</div>\n <div class=\"active-duration\" [class.is-disconnected]=\"callStatusText === 'Disconnected'\">\n {{ callStatusText || formatDuration(activeCallDuration) }}\n </div>\n\n <div class=\"active-controls\">\n <div class=\"control-item\">\n <button type=\"button\" class=\"control-btn\" aria-label=\"Add call\" [disabled]=\"isConnecting\" [class.is-disabled]=\"isConnecting\" (click)=\"openContacts.emit()\">\n <svg viewBox=\"0 0 512 512\" aria-hidden=\"true\" focusable=\"false\">\n <path\n fill=\"currentColor\"\n d=\"M256 48c13.3 0 24 10.7 24 24V200H408c13.3 0 24 10.7 24 24s-10.7 24-24 24H280V376c0 13.3-10.7 24-24 24s-24-10.7-24-24V248H104c-13.3 0-24-10.7-24-24s10.7-24 24-24H232V72c0-13.3 10.7-24 24-24z\"\n />\n </svg>\n </button>\n <span class=\"control-label\">Add Call</span>\n </div>\n <div class=\"control-item\">\n <button type=\"button\" class=\"control-btn\" aria-label=\"Transfer\" [disabled]=\"isConnecting\" [class.is-disabled]=\"isConnecting\" (click)=\"transfer.emit()\">\n <svg viewBox=\"0 0 512 512\" aria-hidden=\"true\" focusable=\"false\">\n <path\n fill=\"currentColor\"\n d=\"M352 64c0-17.7 14.3-32 32-32h80c26.5 0 48 21.5 48 48v80c0 17.7-14.3 32-32 32s-32-14.3-32-32V128h-32c-17.7 0-32-14.3-32-32zM32 224c0-26.5 21.5-48 48-48h128c17.7 0 32 14.3 32 32s-14.3 32-32 32H96v96h112c17.7 0 32 14.3 32 32s-14.3 32-32 32H80c-26.5 0-48-21.5-48-48V224zm260.7 14.1 96-96c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-41.4 41.4H448c17.7 0 32 14.3 32 32s-14.3 32-32 32h-55.4l41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3z\"\n />\n </svg>\n </button>\n <span class=\"control-label\">Transfer</span>\n </div>\n <div class=\"control-item\">\n <button type=\"button\" class=\"control-btn\" [class.active]=\"isMuted\" aria-label=\"Mute\" [disabled]=\"isConnecting\" [class.is-disabled]=\"isConnecting\" (click)=\"toggleMute.emit()\">\n @if (isMuted) {\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path\n fill=\"currentColor\"\n d=\"M19 11a7 7 0 0 1-1.4 4.2l-1.5-1.5A5 5 0 0 0 17 11h2zm-7 7a7 7 0 0 0 4.2-1.4l1.4 1.4A9 9 0 0 1 12 20a9 9 0 0 1-7.4-3.8l1.5-1.5A7 7 0 0 0 12 18zm0-14a3 3 0 0 1 3 3v3.6l-6-6V7a3 3 0 0 1 3-3zm7.7 16.3-16-16 1.4-1.4 16 16-1.4 1.4z\"\n />\n </svg>\n } @else {\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path\n fill=\"currentColor\"\n d=\"M12 2a3 3 0 0 1 3 3v6a3 3 0 0 1-6 0V5a3 3 0 0 1 3-3zm5 9a5 5 0 0 1-10 0H5a7 7 0 0 0 14 0h-2zm-5 9a7 7 0 0 0 4.9-2H7.1A7 7 0 0 0 12 20zm-1 2h2v2h-2v-2z\"\n />\n </svg>\n }\n </button>\n <span class=\"control-label\">{{ isMuted ? 'Unmute' : 'Mute' }}</span>\n </div>\n <div class=\"control-item\">\n <button type=\"button\" class=\"control-btn\" [class.active]=\"isHeld\" aria-label=\"Hold\" [disabled]=\"isConnecting\" [class.is-disabled]=\"isConnecting\" (click)=\"toggleHold.emit()\">\n @if (isHeld) {\n <svg viewBox=\"0 0 384 512\" aria-hidden=\"true\" focusable=\"false\">\n <path\n fill=\"currentColor\"\n d=\"M73 39C60.6 31.7 45.1 31.7 32.7 39 20.4 46.3 12.7 60.3 12.7 75.5V436.5c0 15.2 7.7 29.2 20 36.5 12.3 7.3 27.9 7.3 40.3 0L329 292.5c12.3-7.3 20-21.3 20-36.5s-7.7-29.2-20-36.5L73 39z\"\n />\n </svg>\n } @else {\n <svg viewBox=\"0 0 320 512\" aria-hidden=\"true\" focusable=\"false\">\n <path\n fill=\"currentColor\"\n d=\"M48 64c0-26.5 21.5-48 48-48h32c26.5 0 48 21.5 48 48v384c0 26.5-21.5 48-48 48H96c-26.5 0-48-21.5-48-48V64zm144 0c0-26.5 21.5-48 48-48h32c26.5 0 48 21.5 48 48v384c0 26.5-21.5 48-48 48h-32c-26.5 0-48-21.5-48-48V64z\"\n />\n </svg>\n }\n </button>\n <span class=\"control-label\">{{ isHeld ? 'Unhold' : 'Hold' }}</span>\n </div>\n <div class=\"control-item\">\n <button type=\"button\" class=\"control-btn\" aria-label=\"Keypad\" [disabled]=\"isConnecting\" [class.is-disabled]=\"isConnecting\" (click)=\"openKeypad.emit()\">\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <circle cx=\"7\" cy=\"7\" r=\"1.6\" fill=\"currentColor\" />\n <circle cx=\"12\" cy=\"7\" r=\"1.6\" fill=\"currentColor\" />\n <circle cx=\"17\" cy=\"7\" r=\"1.6\" fill=\"currentColor\" />\n <circle cx=\"7\" cy=\"12\" r=\"1.6\" fill=\"currentColor\" />\n <circle cx=\"12\" cy=\"12\" r=\"1.6\" fill=\"currentColor\" />\n <circle cx=\"17\" cy=\"12\" r=\"1.6\" fill=\"currentColor\" />\n <circle cx=\"7\" cy=\"17\" r=\"1.6\" fill=\"currentColor\" />\n <circle cx=\"12\" cy=\"17\" r=\"1.6\" fill=\"currentColor\" />\n <circle cx=\"17\" cy=\"17\" r=\"1.6\" fill=\"currentColor\" />\n </svg>\n </button>\n <span class=\"control-label\">Keypad</span>\n </div>\n <div class=\"control-item\">\n <button type=\"button\" class=\"control-btn\" aria-label=\"Live transcription\" (click)=\"startTranscription.emit()\">\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path\n fill=\"currentColor\"\n d=\"M5 4h14a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H9l-4 3v-3H5a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2zm2 4h10v2H7V8zm0 4h10v2H7v-2z\"\n />\n </svg>\n </button>\n <span class=\"control-label\">Transcript</span>\n </div>\n </div>\n\n <div class=\"active-bottom\">\n <button type=\"button\" class=\"end-call-btn\" (click)=\"endCall.emit()\">\n <span class=\"btn-icon\">\n <svg height=\"20\" viewBox=\"0 0 640 512\" aria-hidden=\"true\" focusable=\"false\">\n <path\n fill=\"currentColor\"\n d=\"M11.7 266.3l41.9 94.3c6.1 13.7 20.8 21.3 35.5 18.4l109.2-21.8c15-3 25.7-16.1 25.7-31.4V240c62.3-20.8 129.7-20.8 192 0v85.8c0 15.3 10.8 28.4 25.7 31.4L550.9 379c14.7 2.9 29.4-4.7 35.5-18.4l41.9-94.3c7.2-16.2 5.1-35.1-7.4-47.7C570.8 168.1 464.2 96 320 96S69.2 168.1 19.1 218.6c-12.5 12.6-14.6 31.5-7.4 47.7z\"\n />\n </svg>\n </span>\n </button>\n </div>\n\n</div>\n", styles: [".active-screen{display:flex;flex-direction:column;align-items:center;gap:16px;padding:28px 16px 24px;text-align:center;min-height:100%;height:100%;justify-content:center;color:#1f1f1f}.active-avatar img{width:96px;height:96px;object-fit:cover;border-radius:50%;animation:avatar-pulse-active 2s ease-in-out infinite}@keyframes avatar-pulse-active{0%{box-shadow:0 0 #e33a2e40}70%{box-shadow:0 0 0 14px #e33a2e00}to{box-shadow:0 0 #e33a2e00}}.active-title{font-size:18px;font-weight:600;color:#6b6b6b}.active-number{font-size:16px;font-weight:600;color:#1f1f1f}.active-duration{font-size:14px;color:#6f6f6f}.active-duration.is-disconnected{color:#e23a2e;font-weight:700}.active-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 24px;margin-top:12px;justify-items:center}.control-item{display:flex;flex-direction:column;align-items:center;gap:6px}.control-btn{width:64px;height:64px;border-radius:50%;border:1px solid #e0e0e0;background:transparent;color:#4a4a4a;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.control-btn:hover{background:#f5f5f5}.control-btn.active{background:#e8f1ff;color:#1b5fbf;border-color:#c6daf7}.control-btn.is-disabled,.control-btn:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.control-btn svg{width:22px;height:22px}.control-label{font-size:11px;font-weight:600;color:#6b6b6b}.active-bottom{display:flex;align-items:center;justify-content:center;margin-top:22px}.end-call-btn{width:72px;height:72px;border-radius:50%;border:none;background:#e23a2e;color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}\n"] });
3042
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: PhoneActiveComponent, isStandalone: false, selector: "app-phone-active", inputs: { tenantId: "tenantId", activeCallName: "activeCallName", activeCallNumber: "activeCallNumber", activeCallDuration: "activeCallDuration", callStatusText: "callStatusText", isConnecting: "isConnecting", isMuted: "isMuted", isHeld: "isHeld" }, outputs: { endCall: "endCall", toggleMute: "toggleMute", toggleHold: "toggleHold", transfer: "transfer", openContacts: "openContacts", openKeypad: "openKeypad", startTranscription: "startTranscription", contactsLoaded: "contactsLoaded" }, ngImport: i0, template: "<div class=\"avaya-ipo-active-screen\">\n <div class=\"avaya-ipo-active-avatar\">\n <img [src]=\"activeAvatarUrl\" alt=\"Active call avatar\" />\n </div>\n\n <div class=\"avaya-ipo-active-title\">{{ activeCallName || 'Unknown' }}</div>\n <div class=\"avaya-ipo-active-number\">{{ activeCallNumber || '' }}</div>\n <div class=\"avaya-ipo-active-duration\" [class.avaya-ipo-is-disconnected]=\"callStatusText === 'Disconnected'\">\n {{ callStatusText || formatDuration(activeCallDuration) }}\n </div>\n\n <div class=\"avaya-ipo-active-controls\">\n <div class=\"avaya-ipo-control-item\">\n <button type=\"button\" class=\"avaya-ipo-control-btn\" aria-label=\"Add call\" [disabled]=\"isConnecting\" [class.avaya-ipo-is-disabled]=\"isConnecting\" (click)=\"openContacts.emit()\">\n <svg viewBox=\"0 0 512 512\" aria-hidden=\"true\" focusable=\"false\">\n <path\n fill=\"currentColor\"\n d=\"M256 48c13.3 0 24 10.7 24 24V200H408c13.3 0 24 10.7 24 24s-10.7 24-24 24H280V376c0 13.3-10.7 24-24 24s-24-10.7-24-24V248H104c-13.3 0-24-10.7-24-24s10.7-24 24-24H232V72c0-13.3 10.7-24 24-24z\"\n />\n </svg>\n </button>\n <span class=\"avaya-ipo-control-label\">Add Call</span>\n </div>\n <div class=\"avaya-ipo-control-item\">\n <button type=\"button\" class=\"avaya-ipo-control-btn\" aria-label=\"Transfer\" [disabled]=\"isConnecting\" [class.avaya-ipo-is-disabled]=\"isConnecting\" (click)=\"transfer.emit()\">\n <svg viewBox=\"0 0 512 512\" aria-hidden=\"true\" focusable=\"false\">\n <path\n fill=\"currentColor\"\n d=\"M352 64c0-17.7 14.3-32 32-32h80c26.5 0 48 21.5 48 48v80c0 17.7-14.3 32-32 32s-32-14.3-32-32V128h-32c-17.7 0-32-14.3-32-32zM32 224c0-26.5 21.5-48 48-48h128c17.7 0 32 14.3 32 32s-14.3 32-32 32H96v96h112c17.7 0 32 14.3 32 32s-14.3 32-32 32H80c-26.5 0-48-21.5-48-48V224zm260.7 14.1 96-96c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-41.4 41.4H448c17.7 0 32 14.3 32 32s-14.3 32-32 32h-55.4l41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3z\"\n />\n </svg>\n </button>\n <span class=\"avaya-ipo-control-label\">Transfer</span>\n </div>\n <div class=\"avaya-ipo-control-item\">\n <button type=\"button\" class=\"avaya-ipo-control-btn\" [class.avaya-ipo-active]=\"isMuted\" aria-label=\"Mute\" [disabled]=\"isConnecting\" [class.avaya-ipo-is-disabled]=\"isConnecting\" (click)=\"toggleMute.emit()\">\n @if (isMuted) {\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path\n fill=\"currentColor\"\n d=\"M19 11a7 7 0 0 1-1.4 4.2l-1.5-1.5A5 5 0 0 0 17 11h2zm-7 7a7 7 0 0 0 4.2-1.4l1.4 1.4A9 9 0 0 1 12 20a9 9 0 0 1-7.4-3.8l1.5-1.5A7 7 0 0 0 12 18zm0-14a3 3 0 0 1 3 3v3.6l-6-6V7a3 3 0 0 1 3-3zm7.7 16.3-16-16 1.4-1.4 16 16-1.4 1.4z\"\n />\n </svg>\n } @else {\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path\n fill=\"currentColor\"\n d=\"M12 2a3 3 0 0 1 3 3v6a3 3 0 0 1-6 0V5a3 3 0 0 1 3-3zm5 9a5 5 0 0 1-10 0H5a7 7 0 0 0 14 0h-2zm-5 9a7 7 0 0 0 4.9-2H7.1A7 7 0 0 0 12 20zm-1 2h2v2h-2v-2z\"\n />\n </svg>\n }\n </button>\n <span class=\"avaya-ipo-control-label\">{{ isMuted ? 'Unmute' : 'Mute' }}</span>\n </div>\n <div class=\"avaya-ipo-control-item\">\n <button type=\"button\" class=\"avaya-ipo-control-btn\" [class.avaya-ipo-active]=\"isHeld\" aria-label=\"Hold\" [disabled]=\"isConnecting\" [class.avaya-ipo-is-disabled]=\"isConnecting\" (click)=\"toggleHold.emit()\">\n @if (isHeld) {\n <svg viewBox=\"0 0 384 512\" aria-hidden=\"true\" focusable=\"false\">\n <path\n fill=\"currentColor\"\n d=\"M73 39C60.6 31.7 45.1 31.7 32.7 39 20.4 46.3 12.7 60.3 12.7 75.5V436.5c0 15.2 7.7 29.2 20 36.5 12.3 7.3 27.9 7.3 40.3 0L329 292.5c12.3-7.3 20-21.3 20-36.5s-7.7-29.2-20-36.5L73 39z\"\n />\n </svg>\n } @else {\n <svg viewBox=\"0 0 320 512\" aria-hidden=\"true\" focusable=\"false\">\n <path\n fill=\"currentColor\"\n d=\"M48 64c0-26.5 21.5-48 48-48h32c26.5 0 48 21.5 48 48v384c0 26.5-21.5 48-48 48H96c-26.5 0-48-21.5-48-48V64zm144 0c0-26.5 21.5-48 48-48h32c26.5 0 48 21.5 48 48v384c0 26.5-21.5 48-48 48h-32c-26.5 0-48-21.5-48-48V64z\"\n />\n </svg>\n }\n </button>\n <span class=\"avaya-ipo-control-label\">{{ isHeld ? 'Unhold' : 'Hold' }}</span>\n </div>\n <div class=\"avaya-ipo-control-item\">\n <button type=\"button\" class=\"avaya-ipo-control-btn\" aria-label=\"Keypad\" [disabled]=\"isConnecting\" [class.avaya-ipo-is-disabled]=\"isConnecting\" (click)=\"openKeypad.emit()\">\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <circle cx=\"7\" cy=\"7\" r=\"1.6\" fill=\"currentColor\" />\n <circle cx=\"12\" cy=\"7\" r=\"1.6\" fill=\"currentColor\" />\n <circle cx=\"17\" cy=\"7\" r=\"1.6\" fill=\"currentColor\" />\n <circle cx=\"7\" cy=\"12\" r=\"1.6\" fill=\"currentColor\" />\n <circle cx=\"12\" cy=\"12\" r=\"1.6\" fill=\"currentColor\" />\n <circle cx=\"17\" cy=\"12\" r=\"1.6\" fill=\"currentColor\" />\n <circle cx=\"7\" cy=\"17\" r=\"1.6\" fill=\"currentColor\" />\n <circle cx=\"12\" cy=\"17\" r=\"1.6\" fill=\"currentColor\" />\n <circle cx=\"17\" cy=\"17\" r=\"1.6\" fill=\"currentColor\" />\n </svg>\n </button>\n <span class=\"avaya-ipo-control-label\">Keypad</span>\n </div>\n <div class=\"avaya-ipo-control-item\">\n <button type=\"button\" class=\"avaya-ipo-control-btn\" aria-label=\"Live transcription\" (click)=\"startTranscription.emit()\">\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path\n fill=\"currentColor\"\n d=\"M5 4h14a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H9l-4 3v-3H5a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2zm2 4h10v2H7V8zm0 4h10v2H7v-2z\"\n />\n </svg>\n </button>\n <span class=\"avaya-ipo-control-label\">Transcript</span>\n </div>\n </div>\n\n <div class=\"avaya-ipo-active-bottom\">\n <button type=\"button\" class=\"avaya-ipo-end-call-btn\" (click)=\"endCall.emit()\">\n <span class=\"avaya-ipo-btn-icon\">\n <svg height=\"20\" viewBox=\"0 0 640 512\" aria-hidden=\"true\" focusable=\"false\">\n <path\n fill=\"currentColor\"\n d=\"M11.7 266.3l41.9 94.3c6.1 13.7 20.8 21.3 35.5 18.4l109.2-21.8c15-3 25.7-16.1 25.7-31.4V240c62.3-20.8 129.7-20.8 192 0v85.8c0 15.3 10.8 28.4 25.7 31.4L550.9 379c14.7 2.9 29.4-4.7 35.5-18.4l41.9-94.3c7.2-16.2 5.1-35.1-7.4-47.7C570.8 168.1 464.2 96 320 96S69.2 168.1 19.1 218.6c-12.5 12.6-14.6 31.5-7.4 47.7z\"\n />\n </svg>\n </span>\n </button>\n </div>\n\n</div>\n", styles: [".avaya-ipo-active-screen{display:flex;flex-direction:column;align-items:center;gap:16px;padding:28px 16px 24px;text-align:center;min-height:100%;height:100%;justify-content:center;color:var(--sd-text)}.avaya-ipo-active-avatar img{width:96px;height:96px;object-fit:cover;border-radius:50%;animation:avatar-pulse-active 2s ease-in-out infinite}@keyframes avatar-pulse-active{0%{box-shadow:0 0 #e5484d40}70%{box-shadow:0 0 0 14px #e5484d00}to{box-shadow:0 0 #e5484d00}}.avaya-ipo-active-title{font-size:18px;font-weight:600;color:var(--sd-text-muted)}.avaya-ipo-active-number{font-size:16px;font-weight:600;color:var(--sd-text)}.avaya-ipo-active-duration{font-size:14px;color:var(--sd-text-muted)}.avaya-ipo-active-duration.avaya-ipo-is-disconnected{color:var(--sd-call-end);font-weight:700}.avaya-ipo-active-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,4%,18px) clamp(14px,6%,24px);margin-top:12px;justify-items:center}.avaya-ipo-control-item{display:flex;flex-direction:column;align-items:center;gap:6px}.avaya-ipo-control-btn{width:clamp(52px,16%,64px);aspect-ratio:1;height:auto;border-radius:50%;border:1px solid var(--sd-border);background:transparent;color:var(--sd-text-muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.avaya-ipo-control-btn:hover{background:var(--sd-surface-muted)}.avaya-ipo-control-btn:focus-visible{outline:none;box-shadow:var(--sd-focus-ring)}.avaya-ipo-control-btn.avaya-ipo-active{background:var(--sd-accent-soft);color:var(--sd-accent);border-color:var(--sd-accent)}.avaya-ipo-control-btn.avaya-ipo-is-disabled,.avaya-ipo-control-btn:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.avaya-ipo-control-btn svg{width:22px;height:22px}.avaya-ipo-control-label{font-size:11px;font-weight:600;color:var(--sd-text-muted)}.avaya-ipo-active-bottom{display:flex;align-items:center;justify-content:center;margin-top:clamp(14px,5%,22px)}.avaya-ipo-end-call-btn{width:72px;height:72px;border-radius:50%;border:none;background:var(--sd-call-end);color:var(--sd-accent-contrast);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.avaya-ipo-end-call-btn:hover{background:var(--sd-call-end);filter:brightness(.94)}.avaya-ipo-end-call-btn:focus-visible{outline:none;box-shadow:var(--sd-focus-ring)}\n"] });
2929
3043
  }
2930
3044
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: PhoneActiveComponent, decorators: [{
2931
3045
  type: Component,
2932
- args: [{ selector: 'app-phone-active', standalone: false, template: "<div class=\"active-screen\">\n <div class=\"active-avatar\">\n <img [src]=\"activeAvatarUrl\" alt=\"Active call avatar\" />\n </div>\n\n <div class=\"active-title\">{{ activeCallName || 'Unknown' }}</div>\n <div class=\"active-number\">{{ activeCallNumber || '' }}</div>\n <div class=\"active-duration\" [class.is-disconnected]=\"callStatusText === 'Disconnected'\">\n {{ callStatusText || formatDuration(activeCallDuration) }}\n </div>\n\n <div class=\"active-controls\">\n <div class=\"control-item\">\n <button type=\"button\" class=\"control-btn\" aria-label=\"Add call\" [disabled]=\"isConnecting\" [class.is-disabled]=\"isConnecting\" (click)=\"openContacts.emit()\">\n <svg viewBox=\"0 0 512 512\" aria-hidden=\"true\" focusable=\"false\">\n <path\n fill=\"currentColor\"\n d=\"M256 48c13.3 0 24 10.7 24 24V200H408c13.3 0 24 10.7 24 24s-10.7 24-24 24H280V376c0 13.3-10.7 24-24 24s-24-10.7-24-24V248H104c-13.3 0-24-10.7-24-24s10.7-24 24-24H232V72c0-13.3 10.7-24 24-24z\"\n />\n </svg>\n </button>\n <span class=\"control-label\">Add Call</span>\n </div>\n <div class=\"control-item\">\n <button type=\"button\" class=\"control-btn\" aria-label=\"Transfer\" [disabled]=\"isConnecting\" [class.is-disabled]=\"isConnecting\" (click)=\"transfer.emit()\">\n <svg viewBox=\"0 0 512 512\" aria-hidden=\"true\" focusable=\"false\">\n <path\n fill=\"currentColor\"\n d=\"M352 64c0-17.7 14.3-32 32-32h80c26.5 0 48 21.5 48 48v80c0 17.7-14.3 32-32 32s-32-14.3-32-32V128h-32c-17.7 0-32-14.3-32-32zM32 224c0-26.5 21.5-48 48-48h128c17.7 0 32 14.3 32 32s-14.3 32-32 32H96v96h112c17.7 0 32 14.3 32 32s-14.3 32-32 32H80c-26.5 0-48-21.5-48-48V224zm260.7 14.1 96-96c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-41.4 41.4H448c17.7 0 32 14.3 32 32s-14.3 32-32 32h-55.4l41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3z\"\n />\n </svg>\n </button>\n <span class=\"control-label\">Transfer</span>\n </div>\n <div class=\"control-item\">\n <button type=\"button\" class=\"control-btn\" [class.active]=\"isMuted\" aria-label=\"Mute\" [disabled]=\"isConnecting\" [class.is-disabled]=\"isConnecting\" (click)=\"toggleMute.emit()\">\n @if (isMuted) {\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path\n fill=\"currentColor\"\n d=\"M19 11a7 7 0 0 1-1.4 4.2l-1.5-1.5A5 5 0 0 0 17 11h2zm-7 7a7 7 0 0 0 4.2-1.4l1.4 1.4A9 9 0 0 1 12 20a9 9 0 0 1-7.4-3.8l1.5-1.5A7 7 0 0 0 12 18zm0-14a3 3 0 0 1 3 3v3.6l-6-6V7a3 3 0 0 1 3-3zm7.7 16.3-16-16 1.4-1.4 16 16-1.4 1.4z\"\n />\n </svg>\n } @else {\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path\n fill=\"currentColor\"\n d=\"M12 2a3 3 0 0 1 3 3v6a3 3 0 0 1-6 0V5a3 3 0 0 1 3-3zm5 9a5 5 0 0 1-10 0H5a7 7 0 0 0 14 0h-2zm-5 9a7 7 0 0 0 4.9-2H7.1A7 7 0 0 0 12 20zm-1 2h2v2h-2v-2z\"\n />\n </svg>\n }\n </button>\n <span class=\"control-label\">{{ isMuted ? 'Unmute' : 'Mute' }}</span>\n </div>\n <div class=\"control-item\">\n <button type=\"button\" class=\"control-btn\" [class.active]=\"isHeld\" aria-label=\"Hold\" [disabled]=\"isConnecting\" [class.is-disabled]=\"isConnecting\" (click)=\"toggleHold.emit()\">\n @if (isHeld) {\n <svg viewBox=\"0 0 384 512\" aria-hidden=\"true\" focusable=\"false\">\n <path\n fill=\"currentColor\"\n d=\"M73 39C60.6 31.7 45.1 31.7 32.7 39 20.4 46.3 12.7 60.3 12.7 75.5V436.5c0 15.2 7.7 29.2 20 36.5 12.3 7.3 27.9 7.3 40.3 0L329 292.5c12.3-7.3 20-21.3 20-36.5s-7.7-29.2-20-36.5L73 39z\"\n />\n </svg>\n } @else {\n <svg viewBox=\"0 0 320 512\" aria-hidden=\"true\" focusable=\"false\">\n <path\n fill=\"currentColor\"\n d=\"M48 64c0-26.5 21.5-48 48-48h32c26.5 0 48 21.5 48 48v384c0 26.5-21.5 48-48 48H96c-26.5 0-48-21.5-48-48V64zm144 0c0-26.5 21.5-48 48-48h32c26.5 0 48 21.5 48 48v384c0 26.5-21.5 48-48 48h-32c-26.5 0-48-21.5-48-48V64z\"\n />\n </svg>\n }\n </button>\n <span class=\"control-label\">{{ isHeld ? 'Unhold' : 'Hold' }}</span>\n </div>\n <div class=\"control-item\">\n <button type=\"button\" class=\"control-btn\" aria-label=\"Keypad\" [disabled]=\"isConnecting\" [class.is-disabled]=\"isConnecting\" (click)=\"openKeypad.emit()\">\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <circle cx=\"7\" cy=\"7\" r=\"1.6\" fill=\"currentColor\" />\n <circle cx=\"12\" cy=\"7\" r=\"1.6\" fill=\"currentColor\" />\n <circle cx=\"17\" cy=\"7\" r=\"1.6\" fill=\"currentColor\" />\n <circle cx=\"7\" cy=\"12\" r=\"1.6\" fill=\"currentColor\" />\n <circle cx=\"12\" cy=\"12\" r=\"1.6\" fill=\"currentColor\" />\n <circle cx=\"17\" cy=\"12\" r=\"1.6\" fill=\"currentColor\" />\n <circle cx=\"7\" cy=\"17\" r=\"1.6\" fill=\"currentColor\" />\n <circle cx=\"12\" cy=\"17\" r=\"1.6\" fill=\"currentColor\" />\n <circle cx=\"17\" cy=\"17\" r=\"1.6\" fill=\"currentColor\" />\n </svg>\n </button>\n <span class=\"control-label\">Keypad</span>\n </div>\n <div class=\"control-item\">\n <button type=\"button\" class=\"control-btn\" aria-label=\"Live transcription\" (click)=\"startTranscription.emit()\">\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path\n fill=\"currentColor\"\n d=\"M5 4h14a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H9l-4 3v-3H5a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2zm2 4h10v2H7V8zm0 4h10v2H7v-2z\"\n />\n </svg>\n </button>\n <span class=\"control-label\">Transcript</span>\n </div>\n </div>\n\n <div class=\"active-bottom\">\n <button type=\"button\" class=\"end-call-btn\" (click)=\"endCall.emit()\">\n <span class=\"btn-icon\">\n <svg height=\"20\" viewBox=\"0 0 640 512\" aria-hidden=\"true\" focusable=\"false\">\n <path\n fill=\"currentColor\"\n d=\"M11.7 266.3l41.9 94.3c6.1 13.7 20.8 21.3 35.5 18.4l109.2-21.8c15-3 25.7-16.1 25.7-31.4V240c62.3-20.8 129.7-20.8 192 0v85.8c0 15.3 10.8 28.4 25.7 31.4L550.9 379c14.7 2.9 29.4-4.7 35.5-18.4l41.9-94.3c7.2-16.2 5.1-35.1-7.4-47.7C570.8 168.1 464.2 96 320 96S69.2 168.1 19.1 218.6c-12.5 12.6-14.6 31.5-7.4 47.7z\"\n />\n </svg>\n </span>\n </button>\n </div>\n\n</div>\n", styles: [".active-screen{display:flex;flex-direction:column;align-items:center;gap:16px;padding:28px 16px 24px;text-align:center;min-height:100%;height:100%;justify-content:center;color:#1f1f1f}.active-avatar img{width:96px;height:96px;object-fit:cover;border-radius:50%;animation:avatar-pulse-active 2s ease-in-out infinite}@keyframes avatar-pulse-active{0%{box-shadow:0 0 #e33a2e40}70%{box-shadow:0 0 0 14px #e33a2e00}to{box-shadow:0 0 #e33a2e00}}.active-title{font-size:18px;font-weight:600;color:#6b6b6b}.active-number{font-size:16px;font-weight:600;color:#1f1f1f}.active-duration{font-size:14px;color:#6f6f6f}.active-duration.is-disconnected{color:#e23a2e;font-weight:700}.active-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 24px;margin-top:12px;justify-items:center}.control-item{display:flex;flex-direction:column;align-items:center;gap:6px}.control-btn{width:64px;height:64px;border-radius:50%;border:1px solid #e0e0e0;background:transparent;color:#4a4a4a;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.control-btn:hover{background:#f5f5f5}.control-btn.active{background:#e8f1ff;color:#1b5fbf;border-color:#c6daf7}.control-btn.is-disabled,.control-btn:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.control-btn svg{width:22px;height:22px}.control-label{font-size:11px;font-weight:600;color:#6b6b6b}.active-bottom{display:flex;align-items:center;justify-content:center;margin-top:22px}.end-call-btn{width:72px;height:72px;border-radius:50%;border:none;background:#e23a2e;color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}\n"] }]
3046
+ args: [{ selector: 'app-phone-active', standalone: false, template: "<div class=\"avaya-ipo-active-screen\">\n <div class=\"avaya-ipo-active-avatar\">\n <img [src]=\"activeAvatarUrl\" alt=\"Active call avatar\" />\n </div>\n\n <div class=\"avaya-ipo-active-title\">{{ activeCallName || 'Unknown' }}</div>\n <div class=\"avaya-ipo-active-number\">{{ activeCallNumber || '' }}</div>\n <div class=\"avaya-ipo-active-duration\" [class.avaya-ipo-is-disconnected]=\"callStatusText === 'Disconnected'\">\n {{ callStatusText || formatDuration(activeCallDuration) }}\n </div>\n\n <div class=\"avaya-ipo-active-controls\">\n <div class=\"avaya-ipo-control-item\">\n <button type=\"button\" class=\"avaya-ipo-control-btn\" aria-label=\"Add call\" [disabled]=\"isConnecting\" [class.avaya-ipo-is-disabled]=\"isConnecting\" (click)=\"openContacts.emit()\">\n <svg viewBox=\"0 0 512 512\" aria-hidden=\"true\" focusable=\"false\">\n <path\n fill=\"currentColor\"\n d=\"M256 48c13.3 0 24 10.7 24 24V200H408c13.3 0 24 10.7 24 24s-10.7 24-24 24H280V376c0 13.3-10.7 24-24 24s-24-10.7-24-24V248H104c-13.3 0-24-10.7-24-24s10.7-24 24-24H232V72c0-13.3 10.7-24 24-24z\"\n />\n </svg>\n </button>\n <span class=\"avaya-ipo-control-label\">Add Call</span>\n </div>\n <div class=\"avaya-ipo-control-item\">\n <button type=\"button\" class=\"avaya-ipo-control-btn\" aria-label=\"Transfer\" [disabled]=\"isConnecting\" [class.avaya-ipo-is-disabled]=\"isConnecting\" (click)=\"transfer.emit()\">\n <svg viewBox=\"0 0 512 512\" aria-hidden=\"true\" focusable=\"false\">\n <path\n fill=\"currentColor\"\n d=\"M352 64c0-17.7 14.3-32 32-32h80c26.5 0 48 21.5 48 48v80c0 17.7-14.3 32-32 32s-32-14.3-32-32V128h-32c-17.7 0-32-14.3-32-32zM32 224c0-26.5 21.5-48 48-48h128c17.7 0 32 14.3 32 32s-14.3 32-32 32H96v96h112c17.7 0 32 14.3 32 32s-14.3 32-32 32H80c-26.5 0-48-21.5-48-48V224zm260.7 14.1 96-96c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-41.4 41.4H448c17.7 0 32 14.3 32 32s-14.3 32-32 32h-55.4l41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3z\"\n />\n </svg>\n </button>\n <span class=\"avaya-ipo-control-label\">Transfer</span>\n </div>\n <div class=\"avaya-ipo-control-item\">\n <button type=\"button\" class=\"avaya-ipo-control-btn\" [class.avaya-ipo-active]=\"isMuted\" aria-label=\"Mute\" [disabled]=\"isConnecting\" [class.avaya-ipo-is-disabled]=\"isConnecting\" (click)=\"toggleMute.emit()\">\n @if (isMuted) {\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path\n fill=\"currentColor\"\n d=\"M19 11a7 7 0 0 1-1.4 4.2l-1.5-1.5A5 5 0 0 0 17 11h2zm-7 7a7 7 0 0 0 4.2-1.4l1.4 1.4A9 9 0 0 1 12 20a9 9 0 0 1-7.4-3.8l1.5-1.5A7 7 0 0 0 12 18zm0-14a3 3 0 0 1 3 3v3.6l-6-6V7a3 3 0 0 1 3-3zm7.7 16.3-16-16 1.4-1.4 16 16-1.4 1.4z\"\n />\n </svg>\n } @else {\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path\n fill=\"currentColor\"\n d=\"M12 2a3 3 0 0 1 3 3v6a3 3 0 0 1-6 0V5a3 3 0 0 1 3-3zm5 9a5 5 0 0 1-10 0H5a7 7 0 0 0 14 0h-2zm-5 9a7 7 0 0 0 4.9-2H7.1A7 7 0 0 0 12 20zm-1 2h2v2h-2v-2z\"\n />\n </svg>\n }\n </button>\n <span class=\"avaya-ipo-control-label\">{{ isMuted ? 'Unmute' : 'Mute' }}</span>\n </div>\n <div class=\"avaya-ipo-control-item\">\n <button type=\"button\" class=\"avaya-ipo-control-btn\" [class.avaya-ipo-active]=\"isHeld\" aria-label=\"Hold\" [disabled]=\"isConnecting\" [class.avaya-ipo-is-disabled]=\"isConnecting\" (click)=\"toggleHold.emit()\">\n @if (isHeld) {\n <svg viewBox=\"0 0 384 512\" aria-hidden=\"true\" focusable=\"false\">\n <path\n fill=\"currentColor\"\n d=\"M73 39C60.6 31.7 45.1 31.7 32.7 39 20.4 46.3 12.7 60.3 12.7 75.5V436.5c0 15.2 7.7 29.2 20 36.5 12.3 7.3 27.9 7.3 40.3 0L329 292.5c12.3-7.3 20-21.3 20-36.5s-7.7-29.2-20-36.5L73 39z\"\n />\n </svg>\n } @else {\n <svg viewBox=\"0 0 320 512\" aria-hidden=\"true\" focusable=\"false\">\n <path\n fill=\"currentColor\"\n d=\"M48 64c0-26.5 21.5-48 48-48h32c26.5 0 48 21.5 48 48v384c0 26.5-21.5 48-48 48H96c-26.5 0-48-21.5-48-48V64zm144 0c0-26.5 21.5-48 48-48h32c26.5 0 48 21.5 48 48v384c0 26.5-21.5 48-48 48h-32c-26.5 0-48-21.5-48-48V64z\"\n />\n </svg>\n }\n </button>\n <span class=\"avaya-ipo-control-label\">{{ isHeld ? 'Unhold' : 'Hold' }}</span>\n </div>\n <div class=\"avaya-ipo-control-item\">\n <button type=\"button\" class=\"avaya-ipo-control-btn\" aria-label=\"Keypad\" [disabled]=\"isConnecting\" [class.avaya-ipo-is-disabled]=\"isConnecting\" (click)=\"openKeypad.emit()\">\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <circle cx=\"7\" cy=\"7\" r=\"1.6\" fill=\"currentColor\" />\n <circle cx=\"12\" cy=\"7\" r=\"1.6\" fill=\"currentColor\" />\n <circle cx=\"17\" cy=\"7\" r=\"1.6\" fill=\"currentColor\" />\n <circle cx=\"7\" cy=\"12\" r=\"1.6\" fill=\"currentColor\" />\n <circle cx=\"12\" cy=\"12\" r=\"1.6\" fill=\"currentColor\" />\n <circle cx=\"17\" cy=\"12\" r=\"1.6\" fill=\"currentColor\" />\n <circle cx=\"7\" cy=\"17\" r=\"1.6\" fill=\"currentColor\" />\n <circle cx=\"12\" cy=\"17\" r=\"1.6\" fill=\"currentColor\" />\n <circle cx=\"17\" cy=\"17\" r=\"1.6\" fill=\"currentColor\" />\n </svg>\n </button>\n <span class=\"avaya-ipo-control-label\">Keypad</span>\n </div>\n <div class=\"avaya-ipo-control-item\">\n <button type=\"button\" class=\"avaya-ipo-control-btn\" aria-label=\"Live transcription\" (click)=\"startTranscription.emit()\">\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path\n fill=\"currentColor\"\n d=\"M5 4h14a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H9l-4 3v-3H5a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2zm2 4h10v2H7V8zm0 4h10v2H7v-2z\"\n />\n </svg>\n </button>\n <span class=\"avaya-ipo-control-label\">Transcript</span>\n </div>\n </div>\n\n <div class=\"avaya-ipo-active-bottom\">\n <button type=\"button\" class=\"avaya-ipo-end-call-btn\" (click)=\"endCall.emit()\">\n <span class=\"avaya-ipo-btn-icon\">\n <svg height=\"20\" viewBox=\"0 0 640 512\" aria-hidden=\"true\" focusable=\"false\">\n <path\n fill=\"currentColor\"\n d=\"M11.7 266.3l41.9 94.3c6.1 13.7 20.8 21.3 35.5 18.4l109.2-21.8c15-3 25.7-16.1 25.7-31.4V240c62.3-20.8 129.7-20.8 192 0v85.8c0 15.3 10.8 28.4 25.7 31.4L550.9 379c14.7 2.9 29.4-4.7 35.5-18.4l41.9-94.3c7.2-16.2 5.1-35.1-7.4-47.7C570.8 168.1 464.2 96 320 96S69.2 168.1 19.1 218.6c-12.5 12.6-14.6 31.5-7.4 47.7z\"\n />\n </svg>\n </span>\n </button>\n </div>\n\n</div>\n", styles: [".avaya-ipo-active-screen{display:flex;flex-direction:column;align-items:center;gap:16px;padding:28px 16px 24px;text-align:center;min-height:100%;height:100%;justify-content:center;color:var(--sd-text)}.avaya-ipo-active-avatar img{width:96px;height:96px;object-fit:cover;border-radius:50%;animation:avatar-pulse-active 2s ease-in-out infinite}@keyframes avatar-pulse-active{0%{box-shadow:0 0 #e5484d40}70%{box-shadow:0 0 0 14px #e5484d00}to{box-shadow:0 0 #e5484d00}}.avaya-ipo-active-title{font-size:18px;font-weight:600;color:var(--sd-text-muted)}.avaya-ipo-active-number{font-size:16px;font-weight:600;color:var(--sd-text)}.avaya-ipo-active-duration{font-size:14px;color:var(--sd-text-muted)}.avaya-ipo-active-duration.avaya-ipo-is-disconnected{color:var(--sd-call-end);font-weight:700}.avaya-ipo-active-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,4%,18px) clamp(14px,6%,24px);margin-top:12px;justify-items:center}.avaya-ipo-control-item{display:flex;flex-direction:column;align-items:center;gap:6px}.avaya-ipo-control-btn{width:clamp(52px,16%,64px);aspect-ratio:1;height:auto;border-radius:50%;border:1px solid var(--sd-border);background:transparent;color:var(--sd-text-muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.avaya-ipo-control-btn:hover{background:var(--sd-surface-muted)}.avaya-ipo-control-btn:focus-visible{outline:none;box-shadow:var(--sd-focus-ring)}.avaya-ipo-control-btn.avaya-ipo-active{background:var(--sd-accent-soft);color:var(--sd-accent);border-color:var(--sd-accent)}.avaya-ipo-control-btn.avaya-ipo-is-disabled,.avaya-ipo-control-btn:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.avaya-ipo-control-btn svg{width:22px;height:22px}.avaya-ipo-control-label{font-size:11px;font-weight:600;color:var(--sd-text-muted)}.avaya-ipo-active-bottom{display:flex;align-items:center;justify-content:center;margin-top:clamp(14px,5%,22px)}.avaya-ipo-end-call-btn{width:72px;height:72px;border-radius:50%;border:none;background:var(--sd-call-end);color:var(--sd-accent-contrast);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.avaya-ipo-end-call-btn:hover{background:var(--sd-call-end);filter:brightness(.94)}.avaya-ipo-end-call-btn:focus-visible{outline:none;box-shadow:var(--sd-focus-ring)}\n"] }]
2933
3047
  }], ctorParameters: () => [{ type: EntitiesSearchService }], propDecorators: { tenantId: [{
2934
3048
  type: Input
2935
3049
  }], activeCallName: [{
@@ -3148,9 +3262,6 @@ class PhoneComponent {
3148
3262
  this.emitCallScreenState();
3149
3263
  }
3150
3264
  if (evt.state === CallState.INCOMING || evt.state === CallState.RINGING) {
3151
- if (evt.callId) {
3152
- this.startTranscriptionForCall(evt.callId, false);
3153
- }
3154
3265
  // Ring tone is handled by AvayaIPOService.
3155
3266
  }
3156
3267
  if (evt.state === CallState.DISCONNECTED || evt.state === CallState.FAILED) {
@@ -3415,6 +3526,7 @@ class PhoneComponent {
3415
3526
  this.avayaIpoService.clearOutgoingDial();
3416
3527
  this.isKeypadOpen = false;
3417
3528
  this.dtmfBuffer = '';
3529
+ this.transcriptionStreamService.destroyAll();
3418
3530
  this.emitCallScreenState();
3419
3531
  this.endCallEv.emit();
3420
3532
  }
@@ -4025,11 +4137,11 @@ class PhoneComponent {
4025
4137
  });
4026
4138
  }
4027
4139
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: PhoneComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$2.FormBuilder }, { token: AvayaIPOService }, { token: AuthenticationService }, { token: RecordingManagerService }, { token: TranscriptionStreamService }], target: i0.ɵɵFactoryTarget.Component });
4028
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: PhoneComponent, isStandalone: false, selector: "app-phone", inputs: { contacts: "contacts", tenantId: "tenantId", agentId: "agentId", isActiveCall: "isActiveCall", activeCallNumber: "activeCallNumber", incomingCallName: "incomingCallName", incomingNameResolved: "incomingNameResolved", activeCallName: "activeCallName", serverIp: "serverIp", serverPort: "serverPort", stunIp: "stunIp", stunPort: "stunPort", turnIp: "turnIp", turnPort: "turnPort", configurationMode: "configurationMode" }, outputs: { callScreenChange: "callScreenChange", makeCallEv: "makeCallEv", endCallEv: "endCallEv" }, viewQueries: [{ propertyName: "audioElement", first: true, predicate: ["audioElement"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"phone-container\">\n <audio id=\"sd_call_ring\" #audioElement></audio>\n\n @if (isRinging) {\n <app-phone-incoming [incomingCallNumber]=\"incomingCallNumber\" [incomingCallName]=\"incomingCallName\" [incomingNameResolved]=\"incomingNameResolved\" (accept)=\"acceptAvayaCAll()\"\n (decline)=\"declineAvayaCall()\"></app-phone-incoming>\n } @else if (isActiveCall) {\n <app-phone-active [tenantId]=\"tenantId\" [activeCallNumber]=\"activeCallNumber\" [activeCallName]=\"activeCallName\"\n [activeCallDuration]=\"activeCallDuration\" [callStatusText]=\"callStatusText\" [isConnecting]=\"isConnecting\"\n [isMuted]=\"isMuted\" [isHeld]=\"isHeld\"\n (toggleMute)=\"toggleMute()\" (toggleHold)=\"toggleHold()\" (transfer)=\"onTransferCall()\"\n (openContacts)=\"onActiveOpenContacts()\" (openKeypad)=\"onActiveOpenKeypad()\"\n (startTranscription)=\"openTranscription()\" (contactsLoaded)=\"onContactsLoaded($event)\"\n (endCall)=\"onEndActiveCall()\"></app-phone-active>\n } @else {\n <app-phone-idle [dialForm]=\"dialForm\" [contacts]=\"contacts\" [showDirectoryPhonebook]=\"showDirectoryPhonebook\"\n [isRinging]=\"isRinging\" [CountryISO]=\"CountryISO\" [SearchCountryField]=\"SearchCountryField\"\n (toggleDirectory)=\"onIdleToggleDirectory()\" (clear)=\"onIdleClear()\" (makeCall)=\"onIdleMakeCall()\"\n (keypadInput)=\"onIdleKeypadInput($event)\" (keyboardInput)=\"onIdleKeyboardInput($event)\"></app-phone-idle>\n }\n</div>\n\n@if (showDirectoryPhonebook) {\n<div class=\"phonebook-overlay\">\n <div class=\"phonebook-sheet\">\n <div class=\"phonebook-header\">\n <button type=\"button\" class=\"phonebook-back\" (click)=\"onClosePhonebook()\">\u2039</button>\n <div class=\"phonebook-titles\">\n <div class=\"phonebook-kicker\">{{ isTransferMode ? 'Transfer Call' : 'Add Call' }}</div>\n <div class=\"phonebook-title\">Directory</div>\n </div>\n <button type=\"button\" class=\"phonebook-add\" disabled>\uFF0B</button>\n </div>\n @if (transferError) {\n <div class=\"phonebook-error\">{{ transferError }}</div>\n }\n @if (transferSuccess) {\n <div class=\"phonebook-success\">{{ transferSuccess }}</div>\n }\n\n <div class=\"phonebook-tabs\">\n <button type=\"button\" class=\"phonebook-tab\" [class.active]=\"directoryTab === 'contacts'\"\n (click)=\"setDirectoryTab('contacts')\">\n Contacts\n </button>\n <button type=\"button\" class=\"phonebook-tab\" [class.active]=\"directoryTab === 'dialpad'\"\n (click)=\"setDirectoryTab('dialpad')\">\n Dialpad\n </button>\n </div>\n\n <div class=\"phonebook-list\">\n @if (directoryTab === 'contacts') {\n <div class=\"phonebook-search\">\n <span class=\"search-icon\">\uD83D\uDD0D</span>\n <input type=\"text\" placeholder=\"Search\" [value]=\"contactSearch\"\n (input)=\"contactSearch = ($any($event.target).value)\" />\n </div>\n\n @if (filteredContacts?.length) {\n @for (contact of filteredContacts; track contact.id ?? contact.phone ?? $index) {\n <button type=\"button\" class=\"phonebook-item\" (click)=\"onSelectContact(contact)\">\n <span class=\"phonebook-avatar\">{{ (contact.name || contact.phone || 'U') | slice:0:2 }}</span>\n <span class=\"phonebook-name\">{{ contact.name || 'Unknown' }}</span>\n <span class=\"phonebook-number\">{{ contact.phone || '' }}</span>\n </button>\n }\n } @else {\n <div class=\"phonebook-empty\">No contacts found</div>\n }\n } @else {\n <div class=\"phonebook-dialpad\">\n <div class=\"dialpad-input\" [formGroup]=\"directoryForm\">\n <ngx-intl-tel-input formControlName=\"phoneNumber\" name=\"phoneNumber\" [cssClass]=\"'phone_number_sd'\"\n [preferredCountries]=\"['in']\" [customPlaceholder]=\"'Phone Number'\" [enableAutoCountrySelect]=\"false\"\n [enablePlaceholder]=\"false\" [searchCountryFlag]=\"true\"\n [searchCountryField]=\"[SearchCountryField.Iso2, SearchCountryField.Name]\" [selectFirstCountry]=\"false\"\n [selectedCountryISO]=\"CountryISO.India\" [maxLength]=\"15\" [phoneValidation]=\"true\" [separateDialCode]=\"true\">\n </ngx-intl-tel-input>\n <button type=\"button\" class=\"dialpad-backspace\" (click)=\"onDirectoryBackspace()\">\u232B</button>\n </div>\n\n <div class=\"dialpad-grid\">\n @for (item of directoryDigits; track item.digit) {\n <button type=\"button\" class=\"dialpad-key\" (click)=\"onDirectoryKeypad(item.digit)\">\n <span class=\"dialpad-digit\">{{ item.digit }}</span>\n <span class=\"dialpad-letters\">{{ item.letters || '\\u00a0' }}</span>\n </button>\n }\n </div>\n\n <button type=\"button\" class=\"dialpad-action\" [disabled]=\"!(directoryForm.valid || directoryNumber)\"\n (click)=\"onDirectoryUseNumber()\">\n {{ isTransferMode ? 'Transfer' : 'Add Call' }}\n </button>\n </div>\n }\n </div>\n </div>\n</div>\n}\n\n@if (isKeypadOpen) {\n<div class=\"phonebook-overlay\">\n <div class=\"phonebook-sheet keypad-sheet\">\n <div class=\"phonebook-header\">\n <button type=\"button\" class=\"phonebook-back\" (click)=\"closeKeypad()\">\u2039</button>\n <div class=\"phonebook-titles\">\n <div class=\"phonebook-kicker\">DTMF</div>\n <div class=\"phonebook-title\">Keypad</div>\n </div>\n <button type=\"button\" class=\"phonebook-add\" disabled>\uFF0B</button>\n </div>\n\n <div class=\"dialpad-input dtmf-input\">\n <div class=\"dtmf-text\">{{ dtmfBuffer || ' ' }}</div>\n </div>\n\n <div class=\"phonebook-dialpad\">\n <div class=\"dialpad-grid\">\n @for (item of directoryDigits; track item.digit) {\n <button type=\"button\" class=\"dialpad-key\" (click)=\"onDtmfDigit(item.digit)\">\n <div class=\"dialpad-digit\">{{ item.digit }}</div>\n @if (item.letters) {\n <div class=\"dialpad-letters\">{{ item.letters }}</div>\n }\n </button>\n }\n </div>\n\n <button type=\"button\" class=\"dialpad-action\" (click)=\"closeKeypad()\">Done</button>\n </div>\n </div>\n</div>\n}\n\n@if (isTranscriptionOpen) {\n<div class=\"phonebook-overlay\">\n <div class=\"phonebook-sheet transcription-sheet\">\n <div class=\"phonebook-header\">\n <button type=\"button\" class=\"phonebook-back\" (click)=\"closeTranscription()\">\u2039</button>\n <div class=\"phonebook-titles\">\n <div class=\"phonebook-title\">Live Transcription</div>\n </div>\n </div>\n <div class=\"transcription-body\">\n @if (transcriptSegments?.length) {\n <div class=\"transcription-split\">\n <div class=\"transcription-panel\">\n <div class=\"transcription-panel-title\">\n Customer\n </div>\n <div class=\"transcription-panel-body\">\n @if (customerTranscriptSegments.length) {\n @for (segment of customerTranscriptSegments; track segment.ts ?? $index) {\n <div class=\"transcription-line\">{{ segment.text }}</div>\n }\n } @else {\n <div class=\"transcription-placeholder\">No customer speech yet.</div>\n }\n </div>\n </div>\n <div class=\"transcription-panel\">\n <div class=\"transcription-panel-title\">\n Agent\n </div>\n <div class=\"transcription-panel-body\">\n @if (agentTranscriptSegments.length) {\n @for (segment of agentTranscriptSegments; track segment.ts ?? $index) {\n <div class=\"transcription-line\">{{ segment.text }}</div>\n }\n } @else {\n <div class=\"transcription-placeholder\">No agent speech yet.</div>\n }\n </div>\n </div>\n </div>\n } @else {\n <div class=\"transcription-placeholder\">Live transcription will appear here.</div>\n }\n </div>\n </div>\n</div>\n}\n", styles: [".phone-container{width:100%;box-sizing:border-box;padding:0;background:transparent;border-radius:0;min-height:100%;height:100%;position:relative}.phonebook-overlay{position:absolute;inset:0;background:#00000059;display:flex;align-items:flex-end;justify-content:center;z-index:100}.phonebook-sheet{width:100%;max-width:100%;height:90%;max-height:100%;background:#f7f7f7;color:#1f1f1f;border-radius:22px 22px 0 0;overflow:hidden;border:1px solid #e6e6e6;display:flex;flex-direction:column;animation:sheet-slide-up .22s ease}.keypad-sheet{height:82%}.transcription-sheet{height:90%}.transcription-body{flex:1 1 auto;padding:12px 18px 20px;overflow-y:auto}.transcription-split{display:flex;flex-direction:column;gap:12px;height:100%}.transcription-panel{flex:1 1 0;border:1px solid #e6e7ea;border-radius:12px;background:#fff;display:flex;flex-direction:column;min-height:0}.transcription-panel-title{font-size:12px;font-weight:700;color:#4b5563;padding:8px 12px;border-bottom:1px solid #eef0f2;background:#f7f8fa}.transcription-panel-body{flex:1 1 auto;padding:10px 12px;overflow-y:auto;display:flex;flex-direction:column;gap:6px}.transcription-line{font-size:14px;color:#1f1f1f;line-height:1.5;white-space:pre-wrap}.transcription-panel .transcription-placeholder{font-size:12px;color:#9aa0a6}.transcription-placeholder{font-size:13px;color:#7a7a7a}.phonebook-header{display:flex;align-items:center;justify-content:space-between;padding:18px 18px 8px}.phonebook-titles{text-align:center;display:flex;flex-direction:column;gap:4px;flex:1 1 auto}.phonebook-kicker{font-size:12px;color:#8a8a8a}.phonebook-title{font-size:18px;font-weight:700;color:#1f1f1f}.phonebook-back,.phonebook-add{width:36px;height:36px;border-radius:50%;border:1px solid #e2e2e2;background:#fff;color:#4a4a4a;font-size:18px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.phonebook-add:disabled{opacity:.4;cursor:default}.phonebook-error{margin:0 16px 8px;padding:8px 10px;border-radius:10px;background:#ffe8ea;color:#b71c1c;font-size:12px;font-weight:600;text-align:center}.phonebook-success{margin:0 16px 8px;padding:8px 10px;border-radius:10px;background:#e8f5e9;color:#1b5e20;font-size:12px;font-weight:600;text-align:center}.phonebook-tabs{margin:4px 16px 8px;display:flex;gap:8px;background:#fff;border:1px solid #e6e6e6;padding:4px;border-radius:16px}.phonebook-tab{flex:1 1 0;border:none;background:transparent;color:#6a6a6a;font-size:13px;padding:8px 0;border-radius:12px;cursor:pointer}.phonebook-tab.active{background:#111;color:#fff}.phonebook-search{margin:8px 16px 14px;display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:18px;background:#fff;border:1px solid #e6e6e6;color:#1f1f1f}.phonebook-search input{flex:1 1 auto;background:transparent;border:none;outline:none;color:#1f1f1f;font-size:14px}.phonebook-search input::placeholder{color:#9a9a9a}.phonebook-list{flex:1 1 auto;overflow-y:auto}.phonebook-item{width:100%;text-align:left;padding:12px 18px;border:none;background:transparent;display:grid;grid-template-columns:40px 1fr;grid-template-rows:auto auto;column-gap:12px;row-gap:2px;cursor:pointer;border-bottom:1px solid #e9e9e9}.phonebook-item:last-child{border-bottom:none}.phonebook-avatar{width:40px;height:40px;border-radius:50%;background:#e7e7ef;color:#4a4a4a;display:inline-flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;grid-row:span 2}.phonebook-name{font-size:13px;font-weight:600;color:#1f1f1f}.phonebook-number{font-size:12px;color:#7a7a7a}.phonebook-empty{padding:18px;font-size:12px;color:#7a7a7a}.phonebook-dialpad{padding:10px 16px 18px;display:flex;flex-direction:column;gap:14px}.dialpad-input{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:14px;border:1px solid #e6e6e6;background:#fff}.dialpad-input .phone_number_sd{width:100%}.dialpad-input input{flex:1 1 auto;border:none;outline:none;font-size:16px;background:transparent}.dialpad-backspace{border:none;background:transparent;font-size:16px;cursor:pointer;color:#4a4a4a}:host ::ng-deep .dialpad-input .iti{width:100%}:host ::ng-deep .dialpad-input .iti__flag-container{padding-left:6px}:host ::ng-deep .dialpad-input .iti__selected-flag{border-right:1px solid #e5e5e5;padding-right:8px}:host ::ng-deep .dialpad-input .iti.separate-dial-code input{padding-left:130px!important}:host ::ng-deep .dialpad-input .iti__tel-input{background:transparent;border:none;box-shadow:none;height:32px;padding:0 0 0 6px;font-size:15px}.dialpad-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;justify-items:center}.dialpad-key{width:68px;height:68px;border-radius:50%;border:1.6px solid #c7c7c7;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:Helvetica Neue,Arial,sans-serif;cursor:pointer}.dialpad-key:focus{outline:none;box-shadow:none}.dialpad-key:active{background:#0000000a}.dialpad-digit{font-size:24px;font-weight:400;color:#4a4a4a;line-height:24px}.dialpad-letters{font-size:9px;letter-spacing:.8px;color:#9a9a9a;margin-top:2px}.dialpad-action{border:none;border-radius:18px;padding:12px 0;background:#111;color:#fff;font-size:14px;font-weight:600;cursor:pointer}.dialpad-action:disabled{opacity:.5;cursor:default}.dtmf-input{margin:0 16px 6px}.dtmf-text{flex:1 1 auto;text-align:center;font-size:18px;letter-spacing:1px;color:#1f1f1f;min-height:24px}@keyframes sheet-slide-up{0%{transform:translateY(24px);opacity:.6}to{transform:translateY(0);opacity:1}}\n"], dependencies: [{ kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$1.NgxIntlTelInputComponent, selector: "ngx-intl-tel-input", inputs: ["value", "preferredCountries", "enablePlaceholder", "customPlaceholder", "numberFormat", "cssClass", "onlyCountries", "enableAutoCountrySelect", "searchCountryFlag", "searchCountryField", "searchCountryPlaceholder", "maxLength", "selectFirstCountry", "selectedCountryISO", "phoneValidation", "inputId", "separateDialCode"], outputs: ["countryChange"] }, { kind: "directive", type: i2$1.NativeElementInjectorDirective, selector: "[ngModel], [formControl], [formControlName]" }, { kind: "component", type: PhoneIdleComponent, selector: "app-phone-idle", inputs: ["dialForm", "contacts", "showDirectoryPhonebook", "isRinging", "CountryISO", "SearchCountryField"], outputs: ["toggleDirectory", "clear", "makeCall", "keypadInput", "keyboardInput"] }, { kind: "component", type: PhoneIncomingComponent, selector: "app-phone-incoming", inputs: ["incomingCallName", "incomingNameResolved", "incomingCallNumber"], outputs: ["accept", "decline"] }, { kind: "component", type: PhoneActiveComponent, selector: "app-phone-active", inputs: ["tenantId", "activeCallName", "activeCallNumber", "activeCallDuration", "callStatusText", "isConnecting", "isMuted", "isHeld"], outputs: ["endCall", "toggleMute", "toggleHold", "transfer", "openContacts", "openKeypad", "startTranscription", "contactsLoaded"] }, { kind: "pipe", type: i2.SlicePipe, name: "slice" }] });
4140
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: PhoneComponent, isStandalone: false, selector: "app-phone", inputs: { contacts: "contacts", tenantId: "tenantId", agentId: "agentId", isActiveCall: "isActiveCall", activeCallNumber: "activeCallNumber", incomingCallName: "incomingCallName", incomingNameResolved: "incomingNameResolved", activeCallName: "activeCallName", serverIp: "serverIp", serverPort: "serverPort", stunIp: "stunIp", stunPort: "stunPort", turnIp: "turnIp", turnPort: "turnPort", configurationMode: "configurationMode" }, outputs: { callScreenChange: "callScreenChange", makeCallEv: "makeCallEv", endCallEv: "endCallEv" }, viewQueries: [{ propertyName: "audioElement", first: true, predicate: ["audioElement"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"avaya-ipo-phone-container\">\n <audio id=\"sd_call_ring\" #audioElement></audio>\n\n @if (isRinging) {\n <app-phone-incoming [incomingCallNumber]=\"incomingCallNumber\" [incomingCallName]=\"incomingCallName\" [incomingNameResolved]=\"incomingNameResolved\" (accept)=\"acceptAvayaCAll()\"\n (decline)=\"declineAvayaCall()\"></app-phone-incoming>\n } @else if (isActiveCall) {\n <app-phone-active [tenantId]=\"tenantId\" [activeCallNumber]=\"activeCallNumber\" [activeCallName]=\"activeCallName\"\n [activeCallDuration]=\"activeCallDuration\" [callStatusText]=\"callStatusText\" [isConnecting]=\"isConnecting\"\n [isMuted]=\"isMuted\" [isHeld]=\"isHeld\"\n (toggleMute)=\"toggleMute()\" (toggleHold)=\"toggleHold()\" (transfer)=\"onTransferCall()\"\n (openContacts)=\"onActiveOpenContacts()\" (openKeypad)=\"onActiveOpenKeypad()\"\n (startTranscription)=\"openTranscription()\" (contactsLoaded)=\"onContactsLoaded($event)\"\n (endCall)=\"onEndActiveCall()\"></app-phone-active>\n } @else {\n <app-phone-idle [dialForm]=\"dialForm\" [contacts]=\"contacts\" [showDirectoryPhonebook]=\"showDirectoryPhonebook\"\n [isRinging]=\"isRinging\" [CountryISO]=\"CountryISO\" [SearchCountryField]=\"SearchCountryField\"\n (toggleDirectory)=\"onIdleToggleDirectory()\" (clear)=\"onIdleClear()\" (makeCall)=\"onIdleMakeCall()\"\n (keypadInput)=\"onIdleKeypadInput($event)\" (keyboardInput)=\"onIdleKeyboardInput($event)\"></app-phone-idle>\n }\n</div>\n\n@if (showDirectoryPhonebook) {\n<div class=\"avaya-ipo-phonebook-overlay\">\n <div class=\"avaya-ipo-phonebook-sheet\">\n <div class=\"avaya-ipo-phonebook-header\">\n <button type=\"button\" class=\"avaya-ipo-phonebook-back\" (click)=\"onClosePhonebook()\">\u2039</button>\n <div class=\"avaya-ipo-phonebook-titles\">\n <div class=\"avaya-ipo-phonebook-kicker\">{{ isTransferMode ? 'Transfer Call' : 'Add Call' }}</div>\n <div class=\"avaya-ipo-phonebook-title\">Directory</div>\n </div>\n <button type=\"button\" class=\"avaya-ipo-phonebook-add\" disabled>\uFF0B</button>\n </div>\n @if (transferError) {\n <div class=\"avaya-ipo-phonebook-error\">{{ transferError }}</div>\n }\n @if (transferSuccess) {\n <div class=\"avaya-ipo-phonebook-success\">{{ transferSuccess }}</div>\n }\n\n <div class=\"avaya-ipo-phonebook-tabs\">\n <button type=\"button\" class=\"avaya-ipo-phonebook-tab\" [class.avaya-ipo-active]=\"directoryTab === 'contacts'\"\n (click)=\"setDirectoryTab('contacts')\">\n Contacts\n </button>\n <button type=\"button\" class=\"avaya-ipo-phonebook-tab\" [class.avaya-ipo-active]=\"directoryTab === 'dialpad'\"\n (click)=\"setDirectoryTab('dialpad')\">\n Dialpad\n </button>\n </div>\n\n <div class=\"avaya-ipo-phonebook-list\">\n @if (directoryTab === 'contacts') {\n <div class=\"avaya-ipo-phonebook-search\">\n <span class=\"avaya-ipo-search-icon\">\uD83D\uDD0D</span>\n <input type=\"text\" placeholder=\"Search\" [value]=\"contactSearch\"\n (input)=\"contactSearch = ($any($event.target).value)\" />\n </div>\n\n @if (filteredContacts?.length) {\n @for (contact of filteredContacts; track contact.id ?? contact.phone ?? $index) {\n <button type=\"button\" class=\"avaya-ipo-phonebook-item\" (click)=\"onSelectContact(contact)\">\n <span class=\"avaya-ipo-phonebook-avatar\">{{ (contact.name || contact.phone || 'U') | slice:0:2 }}</span>\n <span class=\"avaya-ipo-phonebook-name\">{{ contact.name || 'Unknown' }}</span>\n <span class=\"avaya-ipo-phonebook-number\">{{ contact.phone || '' }}</span>\n </button>\n }\n } @else {\n <div class=\"avaya-ipo-phonebook-empty\">No contacts found</div>\n }\n } @else {\n <div class=\"avaya-ipo-phonebook-dialpad\">\n <div class=\"avaya-ipo-dialpad-input\" [formGroup]=\"directoryForm\">\n <ngx-intl-tel-input formControlName=\"phoneNumber\" name=\"phoneNumber\" [cssClass]=\"'avaya-ipo-phone_number_sd'\"\n [preferredCountries]=\"['in']\" [customPlaceholder]=\"'Phone Number'\" [enableAutoCountrySelect]=\"false\"\n [enablePlaceholder]=\"false\" [searchCountryFlag]=\"true\"\n [searchCountryField]=\"[SearchCountryField.Iso2, SearchCountryField.Name]\" [selectFirstCountry]=\"false\"\n [selectedCountryISO]=\"CountryISO.India\" [maxLength]=\"15\" [phoneValidation]=\"true\" [separateDialCode]=\"true\">\n </ngx-intl-tel-input>\n <button type=\"button\" class=\"avaya-ipo-dialpad-backspace\" (click)=\"onDirectoryBackspace()\">\u232B</button>\n </div>\n\n <div class=\"avaya-ipo-dialpad-grid\">\n @for (item of directoryDigits; track item.digit) {\n <button type=\"button\" class=\"avaya-ipo-dialpad-key\" (click)=\"onDirectoryKeypad(item.digit)\">\n <span class=\"avaya-ipo-dialpad-digit\">{{ item.digit }}</span>\n <span class=\"avaya-ipo-dialpad-letters\">{{ item.letters || '\\u00a0' }}</span>\n </button>\n }\n </div>\n\n <button type=\"button\" class=\"avaya-ipo-dialpad-action\" [disabled]=\"!(directoryForm.valid || directoryNumber)\"\n (click)=\"onDirectoryUseNumber()\">\n {{ isTransferMode ? 'Transfer' : 'Add Call' }}\n </button>\n </div>\n }\n </div>\n </div>\n</div>\n}\n\n@if (isKeypadOpen) {\n<div class=\"avaya-ipo-phonebook-overlay\">\n <div class=\"avaya-ipo-phonebook-sheet avaya-ipo-keypad-sheet\">\n <div class=\"avaya-ipo-phonebook-header\">\n <button type=\"button\" class=\"avaya-ipo-phonebook-back\" (click)=\"closeKeypad()\">\u2039</button>\n <div class=\"avaya-ipo-phonebook-titles\">\n <div class=\"avaya-ipo-phonebook-kicker\">DTMF</div>\n <div class=\"avaya-ipo-phonebook-title\">Keypad</div>\n </div>\n <button type=\"button\" class=\"avaya-ipo-phonebook-add\" disabled>\uFF0B</button>\n </div>\n\n <div class=\"avaya-ipo-dialpad-input avaya-ipo-dtmf-input\">\n <div class=\"avaya-ipo-dtmf-text\">{{ dtmfBuffer || ' ' }}</div>\n </div>\n\n <div class=\"avaya-ipo-phonebook-dialpad\">\n <div class=\"avaya-ipo-dialpad-grid\">\n @for (item of directoryDigits; track item.digit) {\n <button type=\"button\" class=\"avaya-ipo-dialpad-key\" (click)=\"onDtmfDigit(item.digit)\">\n <div class=\"avaya-ipo-dialpad-digit\">{{ item.digit }}</div>\n @if (item.letters) {\n <div class=\"avaya-ipo-dialpad-letters\">{{ item.letters }}</div>\n }\n </button>\n }\n </div>\n\n <button type=\"button\" class=\"avaya-ipo-dialpad-action\" (click)=\"closeKeypad()\">Done</button>\n </div>\n </div>\n</div>\n}\n\n@if (isTranscriptionOpen) {\n<div class=\"avaya-ipo-phonebook-overlay\">\n <div class=\"avaya-ipo-phonebook-sheet avaya-ipo-transcription-sheet\">\n <div class=\"avaya-ipo-phonebook-header\">\n <button type=\"button\" class=\"avaya-ipo-phonebook-back\" (click)=\"closeTranscription()\">\u2039</button>\n <div class=\"avaya-ipo-phonebook-titles\">\n <div class=\"avaya-ipo-phonebook-title\">Live Transcription</div>\n </div>\n </div>\n <div class=\"avaya-ipo-transcription-body\">\n @if (transcriptSegments?.length) {\n <div class=\"avaya-ipo-transcription-split\">\n <div class=\"avaya-ipo-transcription-panel\">\n <div class=\"avaya-ipo-transcription-panel-title\">\n Customer\n </div>\n <div class=\"avaya-ipo-transcription-panel-body\">\n @if (customerTranscriptSegments.length) {\n @for (segment of customerTranscriptSegments; track segment.ts ?? $index) {\n <div class=\"avaya-ipo-transcription-line\">{{ segment.text }}</div>\n }\n } @else {\n <div class=\"avaya-ipo-transcription-placeholder\">No customer speech yet.</div>\n }\n </div>\n </div>\n <div class=\"avaya-ipo-transcription-panel\">\n <div class=\"avaya-ipo-transcription-panel-title\">\n Agent\n </div>\n <div class=\"avaya-ipo-transcription-panel-body\">\n @if (agentTranscriptSegments.length) {\n @for (segment of agentTranscriptSegments; track segment.ts ?? $index) {\n <div class=\"avaya-ipo-transcription-line\">{{ segment.text }}</div>\n }\n } @else {\n <div class=\"avaya-ipo-transcription-placeholder\">No agent speech yet.</div>\n }\n </div>\n </div>\n </div>\n } @else {\n <div class=\"avaya-ipo-transcription-placeholder\">Live transcription will appear here.</div>\n }\n </div>\n </div>\n</div>\n}\n", styles: [":host{display:block;height:100%}.avaya-ipo-phone-container{width:100%;box-sizing:border-box;padding:0;background:transparent;border-radius:0;min-height:100%;height:100%;position:relative;container-type:size}.avaya-ipo-phonebook-overlay{position:absolute;inset:0;background:#00000059;display:flex;align-items:flex-end;justify-content:center;z-index:100}.avaya-ipo-phonebook-sheet{width:100%;max-width:100%;height:90%;max-height:100%;background:var(--sd-surface-muted);color:var(--sd-text);border-radius:var(--sd-radius-lg) var(--sd-radius-lg) 0 0;overflow:hidden;border:1px solid var(--sd-border);display:flex;flex-direction:column;animation:sheet-slide-up .22s ease}.avaya-ipo-keypad-sheet{height:82%}.avaya-ipo-transcription-sheet{height:90%}.avaya-ipo-transcription-body{flex:1 1 auto;padding:12px 18px 20px;overflow-y:auto}.avaya-ipo-transcription-split{display:flex;flex-direction:column;gap:12px;height:100%}.avaya-ipo-transcription-panel{flex:1 1 0;border:1px solid var(--sd-border);border-radius:var(--sd-radius);background:var(--sd-card);display:flex;flex-direction:column;min-height:0}.avaya-ipo-transcription-panel-title{font-size:12px;font-weight:700;color:var(--sd-text-muted);padding:8px 12px;border-bottom:1px solid var(--sd-border);background:var(--sd-surface-muted)}.avaya-ipo-transcription-panel-body{flex:1 1 auto;padding:10px 12px;overflow-y:auto;display:flex;flex-direction:column;gap:6px}.avaya-ipo-transcription-line{font-size:14px;color:var(--sd-text);line-height:1.5;white-space:pre-wrap}.avaya-ipo-transcription-panel .avaya-ipo-transcription-placeholder{font-size:12px;color:var(--sd-text-subtle)}.avaya-ipo-transcription-placeholder{font-size:13px;color:var(--sd-text-muted)}.avaya-ipo-phonebook-header{display:flex;align-items:center;justify-content:space-between;padding:18px 18px 8px}.avaya-ipo-phonebook-titles{text-align:center;display:flex;flex-direction:column;gap:4px;flex:1 1 auto}.avaya-ipo-phonebook-kicker{font-size:12px;color:var(--sd-text-muted)}.avaya-ipo-phonebook-title{font-size:18px;font-weight:700;color:var(--sd-text)}.avaya-ipo-phonebook-back,.avaya-ipo-phonebook-add{width:36px;height:36px;border-radius:50%;border:1px solid var(--sd-border);background:var(--sd-card);color:var(--sd-text-muted);font-size:18px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.avaya-ipo-phonebook-back:hover,.avaya-ipo-phonebook-add:hover{background:var(--sd-surface-muted)}.avaya-ipo-phonebook-add:disabled{opacity:.4;cursor:default}.avaya-ipo-phonebook-error{margin:0 16px 8px;padding:8px 10px;border-radius:var(--sd-radius);background:var(--sd-accent-soft);color:var(--sd-call-end);font-size:12px;font-weight:600;text-align:center}.avaya-ipo-phonebook-success{margin:0 16px 8px;padding:8px 10px;border-radius:var(--sd-radius);background:#1aa2511f;color:var(--sd-call-accept);font-size:12px;font-weight:600;text-align:center}.avaya-ipo-phonebook-tabs{margin:4px 16px 8px;display:flex;gap:8px;background:var(--sd-card);border:1px solid var(--sd-border);padding:4px;border-radius:var(--sd-radius-lg)}.avaya-ipo-phonebook-tab{flex:1 1 0;border:none;background:transparent;color:var(--sd-text-muted);font-size:13px;padding:8px 0;border-radius:var(--sd-radius);cursor:pointer}.avaya-ipo-phonebook-tab.avaya-ipo-active{background:var(--sd-accent);color:var(--sd-accent-contrast)}.avaya-ipo-phonebook-search{margin:8px 16px 14px;display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:var(--sd-radius-sm);background:var(--sd-input);border:1px solid var(--sd-input-border);color:var(--sd-text)}.avaya-ipo-phonebook-search:focus-within{border-color:var(--sd-accent);box-shadow:var(--sd-focus-ring)}.avaya-ipo-phonebook-search input{flex:1 1 auto;background:transparent;border:none;outline:none;color:var(--sd-text);font-size:14px}.avaya-ipo-phonebook-search input::placeholder{color:var(--sd-text-subtle)}.avaya-ipo-phonebook-list{flex:1 1 auto;overflow-y:auto}.avaya-ipo-phonebook-item{width:100%;text-align:left;padding:12px 18px;border:none;background:transparent;display:grid;grid-template-columns:40px 1fr;grid-template-rows:auto auto;column-gap:12px;row-gap:2px;cursor:pointer;border-bottom:1px solid var(--sd-border)}.avaya-ipo-phonebook-item:hover{background:var(--sd-surface-muted)}.avaya-ipo-phonebook-item:last-child{border-bottom:none}.avaya-ipo-phonebook-avatar{width:40px;height:40px;border-radius:50%;background:var(--sd-avatar);color:var(--sd-text-muted);display:inline-flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;grid-row:span 2}.avaya-ipo-phonebook-name{font-size:13px;font-weight:600;color:var(--sd-text)}.avaya-ipo-phonebook-number{font-size:12px;color:var(--sd-text-muted)}.avaya-ipo-phonebook-empty{padding:18px;font-size:12px;color:var(--sd-text-muted)}.avaya-ipo-phonebook-dialpad{padding:10px 16px 18px;display:flex;flex-direction:column;gap:14px}.avaya-ipo-dialpad-input{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:var(--sd-radius-sm);border:1px solid var(--sd-input-border);background:var(--sd-input)}.avaya-ipo-dialpad-input:focus-within{border-color:var(--sd-accent);box-shadow:var(--sd-focus-ring)}.avaya-ipo-dialpad-input .avaya-ipo-phone_number_sd{width:100%}.avaya-ipo-dialpad-input input{flex:1 1 auto;border:none;outline:none;font-size:16px;background:transparent;color:var(--sd-text)}.avaya-ipo-dialpad-backspace{border:none;background:transparent;font-size:16px;cursor:pointer;color:var(--sd-text-muted)}:host ::ng-deep .avaya-ipo-dialpad-input .iti{width:100%}:host ::ng-deep .avaya-ipo-dialpad-input .iti__flag-container{padding-left:6px}:host ::ng-deep .avaya-ipo-dialpad-input .iti__selected-flag{border-right:1px solid var(--sd-border);padding-right:8px}:host ::ng-deep .avaya-ipo-dialpad-input .iti.separate-dial-code input{padding-left:130px!important}:host ::ng-deep .avaya-ipo-dialpad-input .iti__tel-input{background:transparent;border:none;box-shadow:none;height:32px;padding:0 0 0 6px;font-size:15px;color:var(--sd-text)}.avaya-ipo-dialpad-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(8px,3%,12px);justify-items:center}.avaya-ipo-dialpad-key{width:clamp(52px,18%,68px);aspect-ratio:1;height:auto;border-radius:50%;border:1.6px solid var(--sd-border-strong);background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer}.avaya-ipo-dialpad-key:focus{outline:none;box-shadow:none}.avaya-ipo-dialpad-key:focus-visible{outline:none;box-shadow:var(--sd-focus-ring)}.avaya-ipo-dialpad-key:active{background:var(--sd-surface-muted)}.avaya-ipo-dialpad-digit{font-size:24px;font-weight:400;color:var(--sd-text);line-height:24px}.avaya-ipo-dialpad-letters{font-size:9px;letter-spacing:.8px;color:var(--sd-text-subtle);margin-top:2px}.avaya-ipo-dialpad-action{border:none;border-radius:var(--sd-radius);padding:12px 0;background:var(--sd-accent);color:var(--sd-accent-contrast);font-size:14px;font-weight:600;cursor:pointer}.avaya-ipo-dialpad-action:hover{background:var(--sd-accent-strong)}.avaya-ipo-dialpad-action:focus-visible{outline:none;box-shadow:var(--sd-focus-ring)}.avaya-ipo-dialpad-action:disabled{opacity:.5;cursor:default}.avaya-ipo-dtmf-input{margin:0 16px 6px}.avaya-ipo-dtmf-text{flex:1 1 auto;text-align:center;font-size:18px;letter-spacing:1px;color:var(--sd-text);min-height:24px}@keyframes sheet-slide-up{0%{transform:translateY(24px);opacity:.6}to{transform:translateY(0);opacity:1}}\n"], dependencies: [{ kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$1.NgxIntlTelInputComponent, selector: "ngx-intl-tel-input", inputs: ["value", "preferredCountries", "enablePlaceholder", "customPlaceholder", "numberFormat", "cssClass", "onlyCountries", "enableAutoCountrySelect", "searchCountryFlag", "searchCountryField", "searchCountryPlaceholder", "maxLength", "selectFirstCountry", "selectedCountryISO", "phoneValidation", "inputId", "separateDialCode"], outputs: ["countryChange"] }, { kind: "directive", type: i2$1.NativeElementInjectorDirective, selector: "[ngModel], [formControl], [formControlName]" }, { kind: "component", type: PhoneIdleComponent, selector: "app-phone-idle", inputs: ["dialForm", "contacts", "showDirectoryPhonebook", "isRinging", "CountryISO", "SearchCountryField"], outputs: ["toggleDirectory", "clear", "makeCall", "keypadInput", "keyboardInput"] }, { kind: "component", type: PhoneIncomingComponent, selector: "app-phone-incoming", inputs: ["incomingCallName", "incomingNameResolved", "incomingCallNumber"], outputs: ["accept", "decline"] }, { kind: "component", type: PhoneActiveComponent, selector: "app-phone-active", inputs: ["tenantId", "activeCallName", "activeCallNumber", "activeCallDuration", "callStatusText", "isConnecting", "isMuted", "isHeld"], outputs: ["endCall", "toggleMute", "toggleHold", "transfer", "openContacts", "openKeypad", "startTranscription", "contactsLoaded"] }, { kind: "pipe", type: i2.SlicePipe, name: "slice" }] });
4029
4141
  }
4030
4142
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: PhoneComponent, decorators: [{
4031
4143
  type: Component,
4032
- args: [{ selector: 'app-phone', standalone: false, template: "<div class=\"phone-container\">\n <audio id=\"sd_call_ring\" #audioElement></audio>\n\n @if (isRinging) {\n <app-phone-incoming [incomingCallNumber]=\"incomingCallNumber\" [incomingCallName]=\"incomingCallName\" [incomingNameResolved]=\"incomingNameResolved\" (accept)=\"acceptAvayaCAll()\"\n (decline)=\"declineAvayaCall()\"></app-phone-incoming>\n } @else if (isActiveCall) {\n <app-phone-active [tenantId]=\"tenantId\" [activeCallNumber]=\"activeCallNumber\" [activeCallName]=\"activeCallName\"\n [activeCallDuration]=\"activeCallDuration\" [callStatusText]=\"callStatusText\" [isConnecting]=\"isConnecting\"\n [isMuted]=\"isMuted\" [isHeld]=\"isHeld\"\n (toggleMute)=\"toggleMute()\" (toggleHold)=\"toggleHold()\" (transfer)=\"onTransferCall()\"\n (openContacts)=\"onActiveOpenContacts()\" (openKeypad)=\"onActiveOpenKeypad()\"\n (startTranscription)=\"openTranscription()\" (contactsLoaded)=\"onContactsLoaded($event)\"\n (endCall)=\"onEndActiveCall()\"></app-phone-active>\n } @else {\n <app-phone-idle [dialForm]=\"dialForm\" [contacts]=\"contacts\" [showDirectoryPhonebook]=\"showDirectoryPhonebook\"\n [isRinging]=\"isRinging\" [CountryISO]=\"CountryISO\" [SearchCountryField]=\"SearchCountryField\"\n (toggleDirectory)=\"onIdleToggleDirectory()\" (clear)=\"onIdleClear()\" (makeCall)=\"onIdleMakeCall()\"\n (keypadInput)=\"onIdleKeypadInput($event)\" (keyboardInput)=\"onIdleKeyboardInput($event)\"></app-phone-idle>\n }\n</div>\n\n@if (showDirectoryPhonebook) {\n<div class=\"phonebook-overlay\">\n <div class=\"phonebook-sheet\">\n <div class=\"phonebook-header\">\n <button type=\"button\" class=\"phonebook-back\" (click)=\"onClosePhonebook()\">\u2039</button>\n <div class=\"phonebook-titles\">\n <div class=\"phonebook-kicker\">{{ isTransferMode ? 'Transfer Call' : 'Add Call' }}</div>\n <div class=\"phonebook-title\">Directory</div>\n </div>\n <button type=\"button\" class=\"phonebook-add\" disabled>\uFF0B</button>\n </div>\n @if (transferError) {\n <div class=\"phonebook-error\">{{ transferError }}</div>\n }\n @if (transferSuccess) {\n <div class=\"phonebook-success\">{{ transferSuccess }}</div>\n }\n\n <div class=\"phonebook-tabs\">\n <button type=\"button\" class=\"phonebook-tab\" [class.active]=\"directoryTab === 'contacts'\"\n (click)=\"setDirectoryTab('contacts')\">\n Contacts\n </button>\n <button type=\"button\" class=\"phonebook-tab\" [class.active]=\"directoryTab === 'dialpad'\"\n (click)=\"setDirectoryTab('dialpad')\">\n Dialpad\n </button>\n </div>\n\n <div class=\"phonebook-list\">\n @if (directoryTab === 'contacts') {\n <div class=\"phonebook-search\">\n <span class=\"search-icon\">\uD83D\uDD0D</span>\n <input type=\"text\" placeholder=\"Search\" [value]=\"contactSearch\"\n (input)=\"contactSearch = ($any($event.target).value)\" />\n </div>\n\n @if (filteredContacts?.length) {\n @for (contact of filteredContacts; track contact.id ?? contact.phone ?? $index) {\n <button type=\"button\" class=\"phonebook-item\" (click)=\"onSelectContact(contact)\">\n <span class=\"phonebook-avatar\">{{ (contact.name || contact.phone || 'U') | slice:0:2 }}</span>\n <span class=\"phonebook-name\">{{ contact.name || 'Unknown' }}</span>\n <span class=\"phonebook-number\">{{ contact.phone || '' }}</span>\n </button>\n }\n } @else {\n <div class=\"phonebook-empty\">No contacts found</div>\n }\n } @else {\n <div class=\"phonebook-dialpad\">\n <div class=\"dialpad-input\" [formGroup]=\"directoryForm\">\n <ngx-intl-tel-input formControlName=\"phoneNumber\" name=\"phoneNumber\" [cssClass]=\"'phone_number_sd'\"\n [preferredCountries]=\"['in']\" [customPlaceholder]=\"'Phone Number'\" [enableAutoCountrySelect]=\"false\"\n [enablePlaceholder]=\"false\" [searchCountryFlag]=\"true\"\n [searchCountryField]=\"[SearchCountryField.Iso2, SearchCountryField.Name]\" [selectFirstCountry]=\"false\"\n [selectedCountryISO]=\"CountryISO.India\" [maxLength]=\"15\" [phoneValidation]=\"true\" [separateDialCode]=\"true\">\n </ngx-intl-tel-input>\n <button type=\"button\" class=\"dialpad-backspace\" (click)=\"onDirectoryBackspace()\">\u232B</button>\n </div>\n\n <div class=\"dialpad-grid\">\n @for (item of directoryDigits; track item.digit) {\n <button type=\"button\" class=\"dialpad-key\" (click)=\"onDirectoryKeypad(item.digit)\">\n <span class=\"dialpad-digit\">{{ item.digit }}</span>\n <span class=\"dialpad-letters\">{{ item.letters || '\\u00a0' }}</span>\n </button>\n }\n </div>\n\n <button type=\"button\" class=\"dialpad-action\" [disabled]=\"!(directoryForm.valid || directoryNumber)\"\n (click)=\"onDirectoryUseNumber()\">\n {{ isTransferMode ? 'Transfer' : 'Add Call' }}\n </button>\n </div>\n }\n </div>\n </div>\n</div>\n}\n\n@if (isKeypadOpen) {\n<div class=\"phonebook-overlay\">\n <div class=\"phonebook-sheet keypad-sheet\">\n <div class=\"phonebook-header\">\n <button type=\"button\" class=\"phonebook-back\" (click)=\"closeKeypad()\">\u2039</button>\n <div class=\"phonebook-titles\">\n <div class=\"phonebook-kicker\">DTMF</div>\n <div class=\"phonebook-title\">Keypad</div>\n </div>\n <button type=\"button\" class=\"phonebook-add\" disabled>\uFF0B</button>\n </div>\n\n <div class=\"dialpad-input dtmf-input\">\n <div class=\"dtmf-text\">{{ dtmfBuffer || ' ' }}</div>\n </div>\n\n <div class=\"phonebook-dialpad\">\n <div class=\"dialpad-grid\">\n @for (item of directoryDigits; track item.digit) {\n <button type=\"button\" class=\"dialpad-key\" (click)=\"onDtmfDigit(item.digit)\">\n <div class=\"dialpad-digit\">{{ item.digit }}</div>\n @if (item.letters) {\n <div class=\"dialpad-letters\">{{ item.letters }}</div>\n }\n </button>\n }\n </div>\n\n <button type=\"button\" class=\"dialpad-action\" (click)=\"closeKeypad()\">Done</button>\n </div>\n </div>\n</div>\n}\n\n@if (isTranscriptionOpen) {\n<div class=\"phonebook-overlay\">\n <div class=\"phonebook-sheet transcription-sheet\">\n <div class=\"phonebook-header\">\n <button type=\"button\" class=\"phonebook-back\" (click)=\"closeTranscription()\">\u2039</button>\n <div class=\"phonebook-titles\">\n <div class=\"phonebook-title\">Live Transcription</div>\n </div>\n </div>\n <div class=\"transcription-body\">\n @if (transcriptSegments?.length) {\n <div class=\"transcription-split\">\n <div class=\"transcription-panel\">\n <div class=\"transcription-panel-title\">\n Customer\n </div>\n <div class=\"transcription-panel-body\">\n @if (customerTranscriptSegments.length) {\n @for (segment of customerTranscriptSegments; track segment.ts ?? $index) {\n <div class=\"transcription-line\">{{ segment.text }}</div>\n }\n } @else {\n <div class=\"transcription-placeholder\">No customer speech yet.</div>\n }\n </div>\n </div>\n <div class=\"transcription-panel\">\n <div class=\"transcription-panel-title\">\n Agent\n </div>\n <div class=\"transcription-panel-body\">\n @if (agentTranscriptSegments.length) {\n @for (segment of agentTranscriptSegments; track segment.ts ?? $index) {\n <div class=\"transcription-line\">{{ segment.text }}</div>\n }\n } @else {\n <div class=\"transcription-placeholder\">No agent speech yet.</div>\n }\n </div>\n </div>\n </div>\n } @else {\n <div class=\"transcription-placeholder\">Live transcription will appear here.</div>\n }\n </div>\n </div>\n</div>\n}\n", styles: [".phone-container{width:100%;box-sizing:border-box;padding:0;background:transparent;border-radius:0;min-height:100%;height:100%;position:relative}.phonebook-overlay{position:absolute;inset:0;background:#00000059;display:flex;align-items:flex-end;justify-content:center;z-index:100}.phonebook-sheet{width:100%;max-width:100%;height:90%;max-height:100%;background:#f7f7f7;color:#1f1f1f;border-radius:22px 22px 0 0;overflow:hidden;border:1px solid #e6e6e6;display:flex;flex-direction:column;animation:sheet-slide-up .22s ease}.keypad-sheet{height:82%}.transcription-sheet{height:90%}.transcription-body{flex:1 1 auto;padding:12px 18px 20px;overflow-y:auto}.transcription-split{display:flex;flex-direction:column;gap:12px;height:100%}.transcription-panel{flex:1 1 0;border:1px solid #e6e7ea;border-radius:12px;background:#fff;display:flex;flex-direction:column;min-height:0}.transcription-panel-title{font-size:12px;font-weight:700;color:#4b5563;padding:8px 12px;border-bottom:1px solid #eef0f2;background:#f7f8fa}.transcription-panel-body{flex:1 1 auto;padding:10px 12px;overflow-y:auto;display:flex;flex-direction:column;gap:6px}.transcription-line{font-size:14px;color:#1f1f1f;line-height:1.5;white-space:pre-wrap}.transcription-panel .transcription-placeholder{font-size:12px;color:#9aa0a6}.transcription-placeholder{font-size:13px;color:#7a7a7a}.phonebook-header{display:flex;align-items:center;justify-content:space-between;padding:18px 18px 8px}.phonebook-titles{text-align:center;display:flex;flex-direction:column;gap:4px;flex:1 1 auto}.phonebook-kicker{font-size:12px;color:#8a8a8a}.phonebook-title{font-size:18px;font-weight:700;color:#1f1f1f}.phonebook-back,.phonebook-add{width:36px;height:36px;border-radius:50%;border:1px solid #e2e2e2;background:#fff;color:#4a4a4a;font-size:18px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.phonebook-add:disabled{opacity:.4;cursor:default}.phonebook-error{margin:0 16px 8px;padding:8px 10px;border-radius:10px;background:#ffe8ea;color:#b71c1c;font-size:12px;font-weight:600;text-align:center}.phonebook-success{margin:0 16px 8px;padding:8px 10px;border-radius:10px;background:#e8f5e9;color:#1b5e20;font-size:12px;font-weight:600;text-align:center}.phonebook-tabs{margin:4px 16px 8px;display:flex;gap:8px;background:#fff;border:1px solid #e6e6e6;padding:4px;border-radius:16px}.phonebook-tab{flex:1 1 0;border:none;background:transparent;color:#6a6a6a;font-size:13px;padding:8px 0;border-radius:12px;cursor:pointer}.phonebook-tab.active{background:#111;color:#fff}.phonebook-search{margin:8px 16px 14px;display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:18px;background:#fff;border:1px solid #e6e6e6;color:#1f1f1f}.phonebook-search input{flex:1 1 auto;background:transparent;border:none;outline:none;color:#1f1f1f;font-size:14px}.phonebook-search input::placeholder{color:#9a9a9a}.phonebook-list{flex:1 1 auto;overflow-y:auto}.phonebook-item{width:100%;text-align:left;padding:12px 18px;border:none;background:transparent;display:grid;grid-template-columns:40px 1fr;grid-template-rows:auto auto;column-gap:12px;row-gap:2px;cursor:pointer;border-bottom:1px solid #e9e9e9}.phonebook-item:last-child{border-bottom:none}.phonebook-avatar{width:40px;height:40px;border-radius:50%;background:#e7e7ef;color:#4a4a4a;display:inline-flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;grid-row:span 2}.phonebook-name{font-size:13px;font-weight:600;color:#1f1f1f}.phonebook-number{font-size:12px;color:#7a7a7a}.phonebook-empty{padding:18px;font-size:12px;color:#7a7a7a}.phonebook-dialpad{padding:10px 16px 18px;display:flex;flex-direction:column;gap:14px}.dialpad-input{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:14px;border:1px solid #e6e6e6;background:#fff}.dialpad-input .phone_number_sd{width:100%}.dialpad-input input{flex:1 1 auto;border:none;outline:none;font-size:16px;background:transparent}.dialpad-backspace{border:none;background:transparent;font-size:16px;cursor:pointer;color:#4a4a4a}:host ::ng-deep .dialpad-input .iti{width:100%}:host ::ng-deep .dialpad-input .iti__flag-container{padding-left:6px}:host ::ng-deep .dialpad-input .iti__selected-flag{border-right:1px solid #e5e5e5;padding-right:8px}:host ::ng-deep .dialpad-input .iti.separate-dial-code input{padding-left:130px!important}:host ::ng-deep .dialpad-input .iti__tel-input{background:transparent;border:none;box-shadow:none;height:32px;padding:0 0 0 6px;font-size:15px}.dialpad-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;justify-items:center}.dialpad-key{width:68px;height:68px;border-radius:50%;border:1.6px solid #c7c7c7;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:Helvetica Neue,Arial,sans-serif;cursor:pointer}.dialpad-key:focus{outline:none;box-shadow:none}.dialpad-key:active{background:#0000000a}.dialpad-digit{font-size:24px;font-weight:400;color:#4a4a4a;line-height:24px}.dialpad-letters{font-size:9px;letter-spacing:.8px;color:#9a9a9a;margin-top:2px}.dialpad-action{border:none;border-radius:18px;padding:12px 0;background:#111;color:#fff;font-size:14px;font-weight:600;cursor:pointer}.dialpad-action:disabled{opacity:.5;cursor:default}.dtmf-input{margin:0 16px 6px}.dtmf-text{flex:1 1 auto;text-align:center;font-size:18px;letter-spacing:1px;color:#1f1f1f;min-height:24px}@keyframes sheet-slide-up{0%{transform:translateY(24px);opacity:.6}to{transform:translateY(0);opacity:1}}\n"] }]
4144
+ args: [{ selector: 'app-phone', standalone: false, template: "<div class=\"avaya-ipo-phone-container\">\n <audio id=\"sd_call_ring\" #audioElement></audio>\n\n @if (isRinging) {\n <app-phone-incoming [incomingCallNumber]=\"incomingCallNumber\" [incomingCallName]=\"incomingCallName\" [incomingNameResolved]=\"incomingNameResolved\" (accept)=\"acceptAvayaCAll()\"\n (decline)=\"declineAvayaCall()\"></app-phone-incoming>\n } @else if (isActiveCall) {\n <app-phone-active [tenantId]=\"tenantId\" [activeCallNumber]=\"activeCallNumber\" [activeCallName]=\"activeCallName\"\n [activeCallDuration]=\"activeCallDuration\" [callStatusText]=\"callStatusText\" [isConnecting]=\"isConnecting\"\n [isMuted]=\"isMuted\" [isHeld]=\"isHeld\"\n (toggleMute)=\"toggleMute()\" (toggleHold)=\"toggleHold()\" (transfer)=\"onTransferCall()\"\n (openContacts)=\"onActiveOpenContacts()\" (openKeypad)=\"onActiveOpenKeypad()\"\n (startTranscription)=\"openTranscription()\" (contactsLoaded)=\"onContactsLoaded($event)\"\n (endCall)=\"onEndActiveCall()\"></app-phone-active>\n } @else {\n <app-phone-idle [dialForm]=\"dialForm\" [contacts]=\"contacts\" [showDirectoryPhonebook]=\"showDirectoryPhonebook\"\n [isRinging]=\"isRinging\" [CountryISO]=\"CountryISO\" [SearchCountryField]=\"SearchCountryField\"\n (toggleDirectory)=\"onIdleToggleDirectory()\" (clear)=\"onIdleClear()\" (makeCall)=\"onIdleMakeCall()\"\n (keypadInput)=\"onIdleKeypadInput($event)\" (keyboardInput)=\"onIdleKeyboardInput($event)\"></app-phone-idle>\n }\n</div>\n\n@if (showDirectoryPhonebook) {\n<div class=\"avaya-ipo-phonebook-overlay\">\n <div class=\"avaya-ipo-phonebook-sheet\">\n <div class=\"avaya-ipo-phonebook-header\">\n <button type=\"button\" class=\"avaya-ipo-phonebook-back\" (click)=\"onClosePhonebook()\">\u2039</button>\n <div class=\"avaya-ipo-phonebook-titles\">\n <div class=\"avaya-ipo-phonebook-kicker\">{{ isTransferMode ? 'Transfer Call' : 'Add Call' }}</div>\n <div class=\"avaya-ipo-phonebook-title\">Directory</div>\n </div>\n <button type=\"button\" class=\"avaya-ipo-phonebook-add\" disabled>\uFF0B</button>\n </div>\n @if (transferError) {\n <div class=\"avaya-ipo-phonebook-error\">{{ transferError }}</div>\n }\n @if (transferSuccess) {\n <div class=\"avaya-ipo-phonebook-success\">{{ transferSuccess }}</div>\n }\n\n <div class=\"avaya-ipo-phonebook-tabs\">\n <button type=\"button\" class=\"avaya-ipo-phonebook-tab\" [class.avaya-ipo-active]=\"directoryTab === 'contacts'\"\n (click)=\"setDirectoryTab('contacts')\">\n Contacts\n </button>\n <button type=\"button\" class=\"avaya-ipo-phonebook-tab\" [class.avaya-ipo-active]=\"directoryTab === 'dialpad'\"\n (click)=\"setDirectoryTab('dialpad')\">\n Dialpad\n </button>\n </div>\n\n <div class=\"avaya-ipo-phonebook-list\">\n @if (directoryTab === 'contacts') {\n <div class=\"avaya-ipo-phonebook-search\">\n <span class=\"avaya-ipo-search-icon\">\uD83D\uDD0D</span>\n <input type=\"text\" placeholder=\"Search\" [value]=\"contactSearch\"\n (input)=\"contactSearch = ($any($event.target).value)\" />\n </div>\n\n @if (filteredContacts?.length) {\n @for (contact of filteredContacts; track contact.id ?? contact.phone ?? $index) {\n <button type=\"button\" class=\"avaya-ipo-phonebook-item\" (click)=\"onSelectContact(contact)\">\n <span class=\"avaya-ipo-phonebook-avatar\">{{ (contact.name || contact.phone || 'U') | slice:0:2 }}</span>\n <span class=\"avaya-ipo-phonebook-name\">{{ contact.name || 'Unknown' }}</span>\n <span class=\"avaya-ipo-phonebook-number\">{{ contact.phone || '' }}</span>\n </button>\n }\n } @else {\n <div class=\"avaya-ipo-phonebook-empty\">No contacts found</div>\n }\n } @else {\n <div class=\"avaya-ipo-phonebook-dialpad\">\n <div class=\"avaya-ipo-dialpad-input\" [formGroup]=\"directoryForm\">\n <ngx-intl-tel-input formControlName=\"phoneNumber\" name=\"phoneNumber\" [cssClass]=\"'avaya-ipo-phone_number_sd'\"\n [preferredCountries]=\"['in']\" [customPlaceholder]=\"'Phone Number'\" [enableAutoCountrySelect]=\"false\"\n [enablePlaceholder]=\"false\" [searchCountryFlag]=\"true\"\n [searchCountryField]=\"[SearchCountryField.Iso2, SearchCountryField.Name]\" [selectFirstCountry]=\"false\"\n [selectedCountryISO]=\"CountryISO.India\" [maxLength]=\"15\" [phoneValidation]=\"true\" [separateDialCode]=\"true\">\n </ngx-intl-tel-input>\n <button type=\"button\" class=\"avaya-ipo-dialpad-backspace\" (click)=\"onDirectoryBackspace()\">\u232B</button>\n </div>\n\n <div class=\"avaya-ipo-dialpad-grid\">\n @for (item of directoryDigits; track item.digit) {\n <button type=\"button\" class=\"avaya-ipo-dialpad-key\" (click)=\"onDirectoryKeypad(item.digit)\">\n <span class=\"avaya-ipo-dialpad-digit\">{{ item.digit }}</span>\n <span class=\"avaya-ipo-dialpad-letters\">{{ item.letters || '\\u00a0' }}</span>\n </button>\n }\n </div>\n\n <button type=\"button\" class=\"avaya-ipo-dialpad-action\" [disabled]=\"!(directoryForm.valid || directoryNumber)\"\n (click)=\"onDirectoryUseNumber()\">\n {{ isTransferMode ? 'Transfer' : 'Add Call' }}\n </button>\n </div>\n }\n </div>\n </div>\n</div>\n}\n\n@if (isKeypadOpen) {\n<div class=\"avaya-ipo-phonebook-overlay\">\n <div class=\"avaya-ipo-phonebook-sheet avaya-ipo-keypad-sheet\">\n <div class=\"avaya-ipo-phonebook-header\">\n <button type=\"button\" class=\"avaya-ipo-phonebook-back\" (click)=\"closeKeypad()\">\u2039</button>\n <div class=\"avaya-ipo-phonebook-titles\">\n <div class=\"avaya-ipo-phonebook-kicker\">DTMF</div>\n <div class=\"avaya-ipo-phonebook-title\">Keypad</div>\n </div>\n <button type=\"button\" class=\"avaya-ipo-phonebook-add\" disabled>\uFF0B</button>\n </div>\n\n <div class=\"avaya-ipo-dialpad-input avaya-ipo-dtmf-input\">\n <div class=\"avaya-ipo-dtmf-text\">{{ dtmfBuffer || ' ' }}</div>\n </div>\n\n <div class=\"avaya-ipo-phonebook-dialpad\">\n <div class=\"avaya-ipo-dialpad-grid\">\n @for (item of directoryDigits; track item.digit) {\n <button type=\"button\" class=\"avaya-ipo-dialpad-key\" (click)=\"onDtmfDigit(item.digit)\">\n <div class=\"avaya-ipo-dialpad-digit\">{{ item.digit }}</div>\n @if (item.letters) {\n <div class=\"avaya-ipo-dialpad-letters\">{{ item.letters }}</div>\n }\n </button>\n }\n </div>\n\n <button type=\"button\" class=\"avaya-ipo-dialpad-action\" (click)=\"closeKeypad()\">Done</button>\n </div>\n </div>\n</div>\n}\n\n@if (isTranscriptionOpen) {\n<div class=\"avaya-ipo-phonebook-overlay\">\n <div class=\"avaya-ipo-phonebook-sheet avaya-ipo-transcription-sheet\">\n <div class=\"avaya-ipo-phonebook-header\">\n <button type=\"button\" class=\"avaya-ipo-phonebook-back\" (click)=\"closeTranscription()\">\u2039</button>\n <div class=\"avaya-ipo-phonebook-titles\">\n <div class=\"avaya-ipo-phonebook-title\">Live Transcription</div>\n </div>\n </div>\n <div class=\"avaya-ipo-transcription-body\">\n @if (transcriptSegments?.length) {\n <div class=\"avaya-ipo-transcription-split\">\n <div class=\"avaya-ipo-transcription-panel\">\n <div class=\"avaya-ipo-transcription-panel-title\">\n Customer\n </div>\n <div class=\"avaya-ipo-transcription-panel-body\">\n @if (customerTranscriptSegments.length) {\n @for (segment of customerTranscriptSegments; track segment.ts ?? $index) {\n <div class=\"avaya-ipo-transcription-line\">{{ segment.text }}</div>\n }\n } @else {\n <div class=\"avaya-ipo-transcription-placeholder\">No customer speech yet.</div>\n }\n </div>\n </div>\n <div class=\"avaya-ipo-transcription-panel\">\n <div class=\"avaya-ipo-transcription-panel-title\">\n Agent\n </div>\n <div class=\"avaya-ipo-transcription-panel-body\">\n @if (agentTranscriptSegments.length) {\n @for (segment of agentTranscriptSegments; track segment.ts ?? $index) {\n <div class=\"avaya-ipo-transcription-line\">{{ segment.text }}</div>\n }\n } @else {\n <div class=\"avaya-ipo-transcription-placeholder\">No agent speech yet.</div>\n }\n </div>\n </div>\n </div>\n } @else {\n <div class=\"avaya-ipo-transcription-placeholder\">Live transcription will appear here.</div>\n }\n </div>\n </div>\n</div>\n}\n", styles: [":host{display:block;height:100%}.avaya-ipo-phone-container{width:100%;box-sizing:border-box;padding:0;background:transparent;border-radius:0;min-height:100%;height:100%;position:relative;container-type:size}.avaya-ipo-phonebook-overlay{position:absolute;inset:0;background:#00000059;display:flex;align-items:flex-end;justify-content:center;z-index:100}.avaya-ipo-phonebook-sheet{width:100%;max-width:100%;height:90%;max-height:100%;background:var(--sd-surface-muted);color:var(--sd-text);border-radius:var(--sd-radius-lg) var(--sd-radius-lg) 0 0;overflow:hidden;border:1px solid var(--sd-border);display:flex;flex-direction:column;animation:sheet-slide-up .22s ease}.avaya-ipo-keypad-sheet{height:82%}.avaya-ipo-transcription-sheet{height:90%}.avaya-ipo-transcription-body{flex:1 1 auto;padding:12px 18px 20px;overflow-y:auto}.avaya-ipo-transcription-split{display:flex;flex-direction:column;gap:12px;height:100%}.avaya-ipo-transcription-panel{flex:1 1 0;border:1px solid var(--sd-border);border-radius:var(--sd-radius);background:var(--sd-card);display:flex;flex-direction:column;min-height:0}.avaya-ipo-transcription-panel-title{font-size:12px;font-weight:700;color:var(--sd-text-muted);padding:8px 12px;border-bottom:1px solid var(--sd-border);background:var(--sd-surface-muted)}.avaya-ipo-transcription-panel-body{flex:1 1 auto;padding:10px 12px;overflow-y:auto;display:flex;flex-direction:column;gap:6px}.avaya-ipo-transcription-line{font-size:14px;color:var(--sd-text);line-height:1.5;white-space:pre-wrap}.avaya-ipo-transcription-panel .avaya-ipo-transcription-placeholder{font-size:12px;color:var(--sd-text-subtle)}.avaya-ipo-transcription-placeholder{font-size:13px;color:var(--sd-text-muted)}.avaya-ipo-phonebook-header{display:flex;align-items:center;justify-content:space-between;padding:18px 18px 8px}.avaya-ipo-phonebook-titles{text-align:center;display:flex;flex-direction:column;gap:4px;flex:1 1 auto}.avaya-ipo-phonebook-kicker{font-size:12px;color:var(--sd-text-muted)}.avaya-ipo-phonebook-title{font-size:18px;font-weight:700;color:var(--sd-text)}.avaya-ipo-phonebook-back,.avaya-ipo-phonebook-add{width:36px;height:36px;border-radius:50%;border:1px solid var(--sd-border);background:var(--sd-card);color:var(--sd-text-muted);font-size:18px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.avaya-ipo-phonebook-back:hover,.avaya-ipo-phonebook-add:hover{background:var(--sd-surface-muted)}.avaya-ipo-phonebook-add:disabled{opacity:.4;cursor:default}.avaya-ipo-phonebook-error{margin:0 16px 8px;padding:8px 10px;border-radius:var(--sd-radius);background:var(--sd-accent-soft);color:var(--sd-call-end);font-size:12px;font-weight:600;text-align:center}.avaya-ipo-phonebook-success{margin:0 16px 8px;padding:8px 10px;border-radius:var(--sd-radius);background:#1aa2511f;color:var(--sd-call-accept);font-size:12px;font-weight:600;text-align:center}.avaya-ipo-phonebook-tabs{margin:4px 16px 8px;display:flex;gap:8px;background:var(--sd-card);border:1px solid var(--sd-border);padding:4px;border-radius:var(--sd-radius-lg)}.avaya-ipo-phonebook-tab{flex:1 1 0;border:none;background:transparent;color:var(--sd-text-muted);font-size:13px;padding:8px 0;border-radius:var(--sd-radius);cursor:pointer}.avaya-ipo-phonebook-tab.avaya-ipo-active{background:var(--sd-accent);color:var(--sd-accent-contrast)}.avaya-ipo-phonebook-search{margin:8px 16px 14px;display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:var(--sd-radius-sm);background:var(--sd-input);border:1px solid var(--sd-input-border);color:var(--sd-text)}.avaya-ipo-phonebook-search:focus-within{border-color:var(--sd-accent);box-shadow:var(--sd-focus-ring)}.avaya-ipo-phonebook-search input{flex:1 1 auto;background:transparent;border:none;outline:none;color:var(--sd-text);font-size:14px}.avaya-ipo-phonebook-search input::placeholder{color:var(--sd-text-subtle)}.avaya-ipo-phonebook-list{flex:1 1 auto;overflow-y:auto}.avaya-ipo-phonebook-item{width:100%;text-align:left;padding:12px 18px;border:none;background:transparent;display:grid;grid-template-columns:40px 1fr;grid-template-rows:auto auto;column-gap:12px;row-gap:2px;cursor:pointer;border-bottom:1px solid var(--sd-border)}.avaya-ipo-phonebook-item:hover{background:var(--sd-surface-muted)}.avaya-ipo-phonebook-item:last-child{border-bottom:none}.avaya-ipo-phonebook-avatar{width:40px;height:40px;border-radius:50%;background:var(--sd-avatar);color:var(--sd-text-muted);display:inline-flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;grid-row:span 2}.avaya-ipo-phonebook-name{font-size:13px;font-weight:600;color:var(--sd-text)}.avaya-ipo-phonebook-number{font-size:12px;color:var(--sd-text-muted)}.avaya-ipo-phonebook-empty{padding:18px;font-size:12px;color:var(--sd-text-muted)}.avaya-ipo-phonebook-dialpad{padding:10px 16px 18px;display:flex;flex-direction:column;gap:14px}.avaya-ipo-dialpad-input{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:var(--sd-radius-sm);border:1px solid var(--sd-input-border);background:var(--sd-input)}.avaya-ipo-dialpad-input:focus-within{border-color:var(--sd-accent);box-shadow:var(--sd-focus-ring)}.avaya-ipo-dialpad-input .avaya-ipo-phone_number_sd{width:100%}.avaya-ipo-dialpad-input input{flex:1 1 auto;border:none;outline:none;font-size:16px;background:transparent;color:var(--sd-text)}.avaya-ipo-dialpad-backspace{border:none;background:transparent;font-size:16px;cursor:pointer;color:var(--sd-text-muted)}:host ::ng-deep .avaya-ipo-dialpad-input .iti{width:100%}:host ::ng-deep .avaya-ipo-dialpad-input .iti__flag-container{padding-left:6px}:host ::ng-deep .avaya-ipo-dialpad-input .iti__selected-flag{border-right:1px solid var(--sd-border);padding-right:8px}:host ::ng-deep .avaya-ipo-dialpad-input .iti.separate-dial-code input{padding-left:130px!important}:host ::ng-deep .avaya-ipo-dialpad-input .iti__tel-input{background:transparent;border:none;box-shadow:none;height:32px;padding:0 0 0 6px;font-size:15px;color:var(--sd-text)}.avaya-ipo-dialpad-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(8px,3%,12px);justify-items:center}.avaya-ipo-dialpad-key{width:clamp(52px,18%,68px);aspect-ratio:1;height:auto;border-radius:50%;border:1.6px solid var(--sd-border-strong);background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer}.avaya-ipo-dialpad-key:focus{outline:none;box-shadow:none}.avaya-ipo-dialpad-key:focus-visible{outline:none;box-shadow:var(--sd-focus-ring)}.avaya-ipo-dialpad-key:active{background:var(--sd-surface-muted)}.avaya-ipo-dialpad-digit{font-size:24px;font-weight:400;color:var(--sd-text);line-height:24px}.avaya-ipo-dialpad-letters{font-size:9px;letter-spacing:.8px;color:var(--sd-text-subtle);margin-top:2px}.avaya-ipo-dialpad-action{border:none;border-radius:var(--sd-radius);padding:12px 0;background:var(--sd-accent);color:var(--sd-accent-contrast);font-size:14px;font-weight:600;cursor:pointer}.avaya-ipo-dialpad-action:hover{background:var(--sd-accent-strong)}.avaya-ipo-dialpad-action:focus-visible{outline:none;box-shadow:var(--sd-focus-ring)}.avaya-ipo-dialpad-action:disabled{opacity:.5;cursor:default}.avaya-ipo-dtmf-input{margin:0 16px 6px}.avaya-ipo-dtmf-text{flex:1 1 auto;text-align:center;font-size:18px;letter-spacing:1px;color:var(--sd-text);min-height:24px}@keyframes sheet-slide-up{0%{transform:translateY(24px);opacity:.6}to{transform:translateY(0);opacity:1}}\n"] }]
4033
4145
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1$2.FormBuilder }, { type: AvayaIPOService }, { type: AuthenticationService }, { type: RecordingManagerService }, { type: TranscriptionStreamService }], propDecorators: { contacts: [{
4034
4146
  type: Input
4035
4147
  }], tenantId: [{
@@ -4080,9 +4192,22 @@ class AvayaIPOWidgetComponent {
4080
4192
  entitiesSearchService;
4081
4193
  snugdeskAuthService;
4082
4194
  hostDarkMode = false;
4195
+ // Mirror displayMode onto the host element as a class (same pattern as dark-mode) so all layout
4196
+ // differences between the two views are pure :host-scoped CSS — the DOM tree is identical in both
4197
+ // modes, which keeps every media-element id / scroll-ref / public API invariant intact by construction.
4198
+ get hostModeStandalone() { return this.displayMode === 'standalone'; }
4199
+ get hostModePopup() { return this.displayMode !== 'standalone'; }
4083
4200
  STORAGE_KEY = 'avayaIpoWidgetLogin';
4084
4201
  // Public API inputs (kept for compatibility with host apps)
4085
4202
  isVisible = true;
4203
+ /**
4204
+ * Render mode for the widget shell:
4205
+ * - 'popup' (default): owns no dimensions — fills whatever box the host gives it (e.g. the snugdesk-app
4206
+ * header popover), with a min-size guard and its own internal scroll. Preserves 100% of current behavior.
4207
+ * - 'standalone': provides its own full-page frame — a centered card on desktop, full-bleed on mobile —
4208
+ * for running the softphone independently.
4209
+ */
4210
+ displayMode = 'popup';
4086
4211
  configurationMode;
4087
4212
  avayaIPOServerIP;
4088
4213
  avayaIPOServerPort;
@@ -4093,8 +4218,33 @@ class AvayaIPOWidgetComponent {
4093
4218
  token;
4094
4219
  tenantId;
4095
4220
  userId;
4221
+ /**
4222
+ * Optional Avaya IP Office credentials. When BOTH `extension` and `password` are supplied (via the
4223
+ * host binding), the widget patches the login form and auto-logs-in once — no manual login needed.
4224
+ * If they are not supplied, the widget falls back to any saved localStorage session, otherwise it
4225
+ * shows the login form as before.
4226
+ */
4227
+ extension;
4228
+ password;
4229
+ /** Show/hide the History tab. Default true keeps current behavior. */
4230
+ showHistory = true;
4231
+ /** Show/hide the Contacts tab. Default true keeps current behavior. */
4232
+ showContacts = true;
4233
+ /**
4234
+ * The bottom tab bar only earns its space when at least one of History/Contacts is visible.
4235
+ * With both hidden only Keypad (the default view) would remain, so the whole bar is hidden.
4236
+ */
4237
+ get showTabBar() {
4238
+ return this.showHistory || this.showContacts;
4239
+ }
4096
4240
  notificationEvent = new EventEmitter();
4241
+ /**
4242
+ * Fires when an inbound call starts ringing, so the host app can open/focus the widget popover.
4243
+ * Payload: the call id, the caller's number, and the resolved caller name (null if not yet known).
4244
+ */
4245
+ incomingCall = new EventEmitter();
4097
4246
  avayaLogoUrl = assetUrl('assets/images/logo-avaya_small_color.svg');
4247
+ widgetVersion = APP_CONFIG.WIDGET_VERSION;
4098
4248
  isReconnectingInProgress = false;
4099
4249
  isFailoverInProgress = false;
4100
4250
  isFailbackInProgress = false;
@@ -4108,6 +4258,7 @@ class AvayaIPOWidgetComponent {
4108
4258
  awlScriptPromise;
4109
4259
  loginForm;
4110
4260
  activeTab = 'keypad';
4261
+ previousTab = 'keypad';
4111
4262
  loginSub;
4112
4263
  incomingCallSub;
4113
4264
  callStateSub;
@@ -4120,6 +4271,7 @@ class AvayaIPOWidgetComponent {
4120
4271
  authErrorMessage = '';
4121
4272
  authLoading = true;
4122
4273
  hasInitialized = false;
4274
+ autoLoginAttempted = false;
4123
4275
  callLogIndex = new Map();
4124
4276
  pendingDisconnectSide = null;
4125
4277
  callStartTimes = new Map();
@@ -4139,6 +4291,22 @@ class AvayaIPOWidgetComponent {
4139
4291
  this.initAfterAuth();
4140
4292
  }
4141
4293
  }
4294
+ ngOnChanges(changes) {
4295
+ // If the host supplies/updates credentials after init, attempt the input-based auto-login.
4296
+ if ((changes['extension'] || changes['password']) && this.hasInitialized) {
4297
+ this.tryAutoLoginFromInputs();
4298
+ }
4299
+ // If the currently-active tab gets hidden by the host, fall back to the keypad.
4300
+ if (changes['showHistory'] || changes['showContacts']) {
4301
+ this.ensureVisibleTab();
4302
+ }
4303
+ }
4304
+ ensureVisibleTab() {
4305
+ if ((this.activeTab === 'history' && !this.showHistory) ||
4306
+ (this.activeTab === 'contacts' && !this.showContacts)) {
4307
+ this.activeTab = 'keypad';
4308
+ }
4309
+ }
4142
4310
  initAfterAuth() {
4143
4311
  if (this.hasInitialized) {
4144
4312
  return;
@@ -4169,6 +4337,8 @@ class AvayaIPOWidgetComponent {
4169
4337
  this.activeCallName = cachedName;
4170
4338
  this.incomingNameResolved = true;
4171
4339
  }
4340
+ // Signal the host app immediately so it can open/focus the widget popover.
4341
+ this.incomingCall.emit({ callId, number: phoneNumber, name: this.incomingCallName });
4172
4342
  const [lookupResult, callerName] = await Promise.all([
4173
4343
  this.getLookupPhoneNumber(phoneNumber),
4174
4344
  this.getOpenSearchCallerName(normalizedSearch),
@@ -4195,6 +4365,7 @@ class AvayaIPOWidgetComponent {
4195
4365
  });
4196
4366
  const callLogPayload = {
4197
4367
  tenantId: this.tenantId,
4368
+ userId: this.userId,
4198
4369
  agentId: this.loginForm.value.ipoExtensionNo ?? '',
4199
4370
  callId,
4200
4371
  phoneNumber: phonePayload,
@@ -4222,12 +4393,14 @@ class AvayaIPOWidgetComponent {
4222
4393
  this.callStartTimes.set(callId, Date.now());
4223
4394
  const callLogPayload = {
4224
4395
  tenantId: this.tenantId,
4396
+ userId: this.userId,
4225
4397
  agentId: this.loginForm.value.ipoExtensionNo ?? '',
4226
4398
  callId,
4227
4399
  phoneNumber: meta.phoneNumber,
4228
4400
  direction: meta.direction,
4229
4401
  duration: 0,
4230
4402
  status: 'connected',
4403
+ connected: true,
4231
4404
  timestamp: new Date().toISOString(),
4232
4405
  callinginfo: 'calling',
4233
4406
  };
@@ -4251,12 +4424,14 @@ class AvayaIPOWidgetComponent {
4251
4424
  : 0;
4252
4425
  const callLogPayload = {
4253
4426
  tenantId: this.tenantId,
4427
+ userId: this.userId,
4254
4428
  agentId: this.loginForm.value.ipoExtensionNo ?? '',
4255
4429
  callId,
4256
4430
  phoneNumber: meta.phoneNumber,
4257
4431
  direction: meta.direction,
4258
4432
  duration,
4259
4433
  status,
4434
+ connected: meta.connected,
4260
4435
  timestamp: new Date().toISOString(),
4261
4436
  callinginfo: 'disconnected',
4262
4437
  disconnectSide,
@@ -4275,7 +4450,10 @@ class AvayaIPOWidgetComponent {
4275
4450
  }
4276
4451
  }
4277
4452
  });
4278
- this.restoreSession();
4453
+ // Prefer host-provided credentials (auto-login); otherwise fall back to a saved localStorage session.
4454
+ if (!this.tryAutoLoginFromInputs()) {
4455
+ this.restoreSession();
4456
+ }
4279
4457
  }
4280
4458
  async authenticateWithToken() {
4281
4459
  this.authLoading = true;
@@ -4448,8 +4626,16 @@ class AvayaIPOWidgetComponent {
4448
4626
  }
4449
4627
  }
4450
4628
  selectTab(tab) {
4629
+ if (tab === 'settings' && this.activeTab !== 'settings') {
4630
+ this.previousTab = this.activeTab;
4631
+ }
4451
4632
  this.activeTab = tab;
4452
4633
  }
4634
+ /** Leave Settings and return to the screen the user came from (guards against a now-hidden tab). */
4635
+ closeSettings() {
4636
+ this.activeTab = this.previousTab;
4637
+ this.ensureVisibleTab();
4638
+ }
4453
4639
  onHistoryMakeCall(payload) {
4454
4640
  this.triggerCall(payload);
4455
4641
  }
@@ -4459,6 +4645,27 @@ class AvayaIPOWidgetComponent {
4459
4645
  onContactsMakeCall(payload) {
4460
4646
  this.triggerCall(payload);
4461
4647
  }
4648
+ /**
4649
+ * Public API — place an outbound call programmatically (e.g. click-to-call from the host app).
4650
+ * Switches to the keypad view and dials `number`. Requires the widget to be registered;
4651
+ * if it is still on the login screen the call is skipped with a warning.
4652
+ *
4653
+ * Usage from the host app (via @ViewChild(AvayaIPOWidgetComponent)):
4654
+ * this.avayaWidget?.makeCall('9876543210');
4655
+ */
4656
+ makeCall(number) {
4657
+ const dial = (number ?? '').toString().trim();
4658
+ if (!dial) {
4659
+ console.warn('[avaya-ipo] makeCall: no number provided');
4660
+ return;
4661
+ }
4662
+ if (this.showLoginForm) {
4663
+ console.warn('[avaya-ipo] makeCall: widget is not registered yet; cannot place call');
4664
+ return;
4665
+ }
4666
+ this.activeTab = 'keypad';
4667
+ void this.triggerCall(dial);
4668
+ }
4462
4669
  onPhoneEndCall() {
4463
4670
  try {
4464
4671
  this.pendingDisconnectSide = 'AGENT';
@@ -4470,12 +4677,14 @@ class AvayaIPOWidgetComponent {
4470
4677
  if (meta && !meta.connected) {
4471
4678
  const callLogPayload = {
4472
4679
  tenantId: this.tenantId,
4680
+ userId: this.userId,
4473
4681
  agentId: this.loginForm.value.ipoExtensionNo ?? '',
4474
4682
  callId: targetCallId,
4475
4683
  phoneNumber: meta.phoneNumber,
4476
4684
  direction: meta.direction,
4477
4685
  duration: 0,
4478
4686
  status: 'disconnected',
4687
+ connected: false,
4479
4688
  timestamp: new Date().toISOString(),
4480
4689
  callinginfo: 'calling',
4481
4690
  disconnectSide: 'AGENT',
@@ -4568,6 +4777,7 @@ class AvayaIPOWidgetComponent {
4568
4777
  });
4569
4778
  const callLogPayload = {
4570
4779
  tenantId: this.tenantId,
4780
+ userId: this.userId,
4571
4781
  agentId: this.loginForm.value.ipoExtensionNo ?? '',
4572
4782
  callId,
4573
4783
  phoneNumber: phonePayload,
@@ -4689,6 +4899,29 @@ class AvayaIPOWidgetComponent {
4689
4899
  console.warn('Unable to persist login session', err);
4690
4900
  }
4691
4901
  }
4902
+ hasInputCredentials() {
4903
+ return !!(this.extension && this.extension.trim() && this.password && this.password.trim());
4904
+ }
4905
+ /**
4906
+ * Auto-login when both `extension` and `password` are supplied via @Input. Fires at most once for the
4907
+ * widget's lifetime (so a manual logout is respected and we never loop). Returns true if it kicked off
4908
+ * a login, so the caller can skip the localStorage fallback.
4909
+ */
4910
+ tryAutoLoginFromInputs() {
4911
+ if (this.autoLoginAttempted || !this.loginForm || !this.showLoginForm || !this.hasInputCredentials()) {
4912
+ return false;
4913
+ }
4914
+ this.autoLoginAttempted = true;
4915
+ this.loginForm.patchValue({
4916
+ ipoExtensionNo: this.extension.trim(),
4917
+ ipoPassword: this.password.trim(),
4918
+ });
4919
+ this.showLoginForm = false;
4920
+ this.showLoginLoader = true;
4921
+ // Brief tick so the view/SDK are ready before we trigger the login.
4922
+ setTimeout(() => this.onLogin(), 0);
4923
+ return true;
4924
+ }
4692
4925
  restoreSession() {
4693
4926
  try {
4694
4927
  const raw = localStorage.getItem(this.STORAGE_KEY);
@@ -4760,16 +4993,24 @@ class AvayaIPOWidgetComponent {
4760
4993
  return this.awlScriptPromise;
4761
4994
  }
4762
4995
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: AvayaIPOWidgetComponent, deps: [{ token: i1$2.FormBuilder }, { token: AvayaIPOService }, { token: i0.ChangeDetectorRef }, { token: CountryService }, { token: PhoneNumberLookupService }, { token: EntitiesSearchService }, { token: i1$1.SnugdeskAuthenticationService }], target: i0.ɵɵFactoryTarget.Component });
4763
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: AvayaIPOWidgetComponent, isStandalone: false, selector: "snugdesk-avaya-ipo-widget", inputs: { isVisible: "isVisible", configurationMode: "configurationMode", avayaIPOServerIP: "avayaIPOServerIP", avayaIPOServerPort: "avayaIPOServerPort", avayaIPOServerStunServerIP: "avayaIPOServerStunServerIP", avayaIPOServerStunServerPort: "avayaIPOServerStunServerPort", avayaIPOServerTurnServerIP: "avayaIPOServerTurnServerIP", avayaIPOServerTurnServerPort: "avayaIPOServerTurnServerPort", token: "token", tenantId: "tenantId", userId: "userId" }, outputs: { notificationEvent: "notificationEvent" }, host: { properties: { "class.dark-mode": "this.hostDarkMode" } }, ngImport: i0, template: "<div class=\"media-elements\">\n <audio id=\"rmtAudio\" autoplay></audio>\n <audio id=\"lclAudio\" autoplay></audio>\n <video id=\"rmtVideo\" autoplay playsinline></video>\n <video id=\"lclVideo\" autoplay playsinline muted></video>\n</div>\n\n@if (authLoading) {\n <div class=\"auth-loading-screen\">\n <div class=\"auth-loading-card\">\n <div class=\"spinner\" aria-hidden=\"true\"></div>\n <div class=\"auth-loading-title\">Checking authentication</div>\n <div class=\"auth-loading-message\">Please wait...</div>\n </div>\n </div>\n} @else if (authErrorMessage) {\n <div class=\"auth-error-screen\">\n <div class=\"auth-error-card\">\n <div class=\"auth-error-icon\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 24 24\" focusable=\"false\">\n <path\n fill=\"currentColor\"\n d=\"M12 2a7 7 0 0 1 7 7v3a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-6a2 2 0 0 1 2-2V9a7 7 0 0 1 7-7zm5 10V9a5 5 0 0 0-10 0v3h10zm-5 3a2 2 0 0 0-1 3.732V20h2v-1.268A2 2 0 0 0 12 15z\"\n />\n </svg>\n </div>\n <div class=\"auth-error-title\">Authentication Required</div>\n <div class=\"auth-error-message\">{{ authErrorMessage }}</div>\n </div>\n </div>\n} @else {\n@if (isReconnectingInProgress || isFailoverInProgress || isFailbackInProgress) {\n <div class=\"container_connection_status_overlay\">\n <div class=\"container_connection_status\">\n <i class=\"fa-solid fa-circle-dot\"></i>\n @if (isReconnectingInProgress) { <span>Reconnecting to the server...</span> }\n @if (isFailoverInProgress) { <span>Failover in progress...</span> }\n @if (isFailbackInProgress) { <span>Failback in progress...</span> }\n </div>\n </div>\n}\n\n@if (showLoginForm) {\n <app-avaya-ipo-login\n [loginForm]=\"loginForm\"\n [showLoginLoader]=\"showLoginLoader\"\n [hasAvayaSocketError]=\"hasAvayaSocketError\"\n [hasAvayaLoginError]=\"hasAvayaLoginError\"\n [hasAvayaLoginFailedGeneral]=\"hasAvayaLoginFailedGeneral\"\n [hasAvayaLoginConflictError]=\"hasAvayaLoginConflictError\"\n [hasAvayaDeviceError]=\"hasAvayaDeviceError\"\n (login)=\"onLogin()\"\n ></app-avaya-ipo-login>\n} @else {\n <div class=\"widget-body\">\n <div class=\"widget-content\">\n @if (activeTab === 'history') {\n @if (!hideTabs) {\n <div class=\"page-heading\">\n <span>History</span>\n <button type=\"button\" class=\"settings-btn\" (click)=\"selectTab('settings')\">\n <svg width=\"18px\" viewBox=\"-0.03 0 16.079 16.079\" aria-hidden=\"true\" focusable=\"false\">\n <g>\n <path fill=\"currentColor\"\n d=\"M8.182 1.083a6.99 6.99 0 0 0-6.248 3.493c-1.929 3.342-.776 7.629 2.57 9.562 3.346 1.934 7.634.792 9.562-2.55 1.929-3.343.776-7.634-2.57-9.567a6.98 6.98 0 0 0-3.314-.938zM8 2.08a6 6 0 0 1 6 6 6 6 0 0 1-6 6 6 6 0 0 1-6-6 6 6 0 0 1 6-6z\" />\n <path fill=\"currentColor\"\n d=\"M9.322 0L6.69.393v1.354a6.49 6.477 43.146 0 1 2.632.005V0zM3.937 1.19L1.93 2.897l.988 1.177a6.49 6.477 43.146 0 1 2.017-1.69zm8.128.013l-.993 1.184a6.49 6.477 43.146 0 1 .17.09 6.49 6.477 43.146 0 1 1.845 1.603l1.006-1.197zM.455 5.42l-.44 2.596 1.515.267a6.49 6.477 43.146 0 1 .455-2.593zm15.086.003l-1.523.269a6.49 6.477 43.146 0 1 .464 2.59l1.533-.27zM1.858 10.118l-1.351.78 1.33 2.271 1.339-.772a6.49 6.477 43.146 0 1-1.317-2.28zm12.301.003a6.49 6.477 43.146 0 1-.534 1.215 6.49 6.477 43.146 0 1-.774 1.069l1.338.773 1.302-2.288zm-9.557 3.471l-.534 1.47 2.48.884.525-1.446a6.49 6.477 43.146 0 1-2.303-.8 6.49 6.477 43.146 0 1-.168-.108zm6.814.016a6.49 6.477 43.146 0 1-2.475.897l.53 1.457 2.468-.917z\" />\n <path fill=\"currentColor\"\n d=\"M7.648 3.093a4.989 4.989 0 0 0-3.982 2.483 5.013 5.013 0 0 0 1.836 6.834 5.002 5.002 0 0 0 6.83-1.827 5.01 5.01 0 0 0-1.836-6.832 4.976 4.976 0 0 0-2.848-.658zM8 4.08a4 4 0 0 1 4 4 4 4 0 0 1-4 4 4 4 0 0 1-4-4 4 4 0 0 1 4-4z\" />\n </g>\n </svg>\n </button>\n </div>\n }\n <app-call-history\n [tenantId]=\"tenantId\"\n [agentId]=\"loginForm?.value?.ipoExtensionNo || userId\"\n (makeCallEv)=\"onHistoryMakeCall($event)\"\n ></app-call-history>\n } @else if (activeTab === 'contacts') {\n @if (!hideTabs) {\n <div class=\"page-heading\">\n <span>Contacts</span>\n <button type=\"button\" class=\"settings-btn\" (click)=\"selectTab('settings')\">\n <svg width=\"18px\" viewBox=\"-0.03 0 16.079 16.079\" aria-hidden=\"true\" focusable=\"false\">\n <g>\n <path fill=\"currentColor\"\n d=\"M8.182 1.083a6.99 6.99 0 0 0-6.248 3.493c-1.929 3.342-.776 7.629 2.57 9.562 3.346 1.934 7.634.792 9.562-2.55 1.929-3.343.776-7.634-2.57-9.567a6.98 6.98 0 0 0-3.314-.938zM8 2.08a6 6 0 0 1 6 6 6 6 0 0 1-6 6 6 6 0 0 1-6-6 6 6 0 0 1 6-6z\" />\n <path fill=\"currentColor\"\n d=\"M9.322 0L6.69.393v1.354a6.49 6.477 43.146 0 1 2.632.005V0zM3.937 1.19L1.93 2.897l.988 1.177a6.49 6.477 43.146 0 1 2.017-1.69zm8.128.013l-.993 1.184a6.49 6.477 43.146 0 1 .17.09 6.49 6.477 43.146 0 1 1.845 1.603l1.006-1.197zM.455 5.42l-.44 2.596 1.515.267a6.49 6.477 43.146 0 1 .455-2.593zm15.086.003l-1.523.269a6.49 6.477 43.146 0 1 .464 2.59l1.533-.27zM1.858 10.118l-1.351.78 1.33 2.271 1.339-.772a6.49 6.477 43.146 0 1-1.317-2.28zm12.301.003a6.49 6.477 43.146 0 1-.534 1.215 6.49 6.477 43.146 0 1-.774 1.069l1.338.773 1.302-2.288zm-9.557 3.471l-.534 1.47 2.48.884.525-1.446a6.49 6.477 43.146 0 1-2.303-.8 6.49 6.477 43.146 0 1-.168-.108zm6.814.016a6.49 6.477 43.146 0 1-2.475.897l.53 1.457 2.468-.917z\" />\n <path fill=\"currentColor\"\n d=\"M7.648 3.093a4.989 4.989 0 0 0-3.982 2.483 5.013 5.013 0 0 0 1.836 6.834 5.002 5.002 0 0 0 6.83-1.827 5.01 5.01 0 0 0-1.836-6.832 4.976 4.976 0 0 0-2.848-.658zM8 4.08a4 4 0 0 1 4 4 4 4 0 0 1-4 4 4 4 0 0 1-4-4 4 4 0 0 1 4-4z\" />\n </g>\n </svg>\n </button>\n </div>\n }\n <app-contacts [tenantId]=\"tenantId\" (makeCallEv)=\"onContactsMakeCall($event)\"></app-contacts>\n } @else if (activeTab === 'settings') {\n @if (!hideTabs) {\n <div class=\"page-heading\">\n <span>Settings</span>\n <button type=\"button\" class=\"settings-btn is-active\" disabled>\n <svg width=\"18px\" viewBox=\"-0.03 0 16.079 16.079\" aria-hidden=\"true\" focusable=\"false\">\n <g>\n <path fill=\"currentColor\"\n d=\"M8.182 1.083a6.99 6.99 0 0 0-6.248 3.493c-1.929 3.342-.776 7.629 2.57 9.562 3.346 1.934 7.634.792 9.562-2.55 1.929-3.343.776-7.634-2.57-9.567a6.98 6.98 0 0 0-3.314-.938zM8 2.08a6 6 0 0 1 6 6 6 6 0 0 1-6 6 6 6 0 0 1-6-6 6 6 0 0 1 6-6z\" />\n <path fill=\"currentColor\"\n d=\"M9.322 0L6.69.393v1.354a6.49 6.477 43.146 0 1 2.632.005V0zM3.937 1.19L1.93 2.897l.988 1.177a6.49 6.477 43.146 0 1 2.017-1.69zm8.128.013l-.993 1.184a6.49 6.477 43.146 0 1 .17.09 6.49 6.477 43.146 0 1 1.845 1.603l1.006-1.197zM.455 5.42l-.44 2.596 1.515.267a6.49 6.477 43.146 0 1 .455-2.593zm15.086.003l-1.523.269a6.49 6.477 43.146 0 1 .464 2.59l1.533-.27zM1.858 10.118l-1.351.78 1.33 2.271 1.339-.772a6.49 6.477 43.146 0 1-1.317-2.28zm12.301.003a6.49 6.477 43.146 0 1-.534 1.215 6.49 6.477 43.146 0 1-.774 1.069l1.338.773 1.302-2.288zm-9.557 3.471l-.534 1.47 2.48.884.525-1.446a6.49 6.477 43.146 0 1-2.303-.8 6.49 6.477 43.146 0 1-.168-.108zm6.814.016a6.49 6.477 43.146 0 1-2.475.897l.53 1.457 2.468-.917z\" />\n <path fill=\"currentColor\"\n d=\"M7.648 3.093a4.989 4.989 0 0 0-3.982 2.483 5.013 5.013 0 0 0 1.836 6.834 5.002 5.002 0 0 0 6.83-1.827 5.01 5.01 0 0 0-1.836-6.832 4.976 4.976 0 0 0-2.848-.658zM8 4.08a4 4 0 0 1 4 4 4 4 0 0 1-4 4 4 4 0 0 1-4-4 4 4 0 0 1 4-4z\" />\n </g>\n </svg>\n </button>\n </div>\n }\n <app-settings\n [extensionId]=\"loginForm?.value?.ipoExtensionNo || userId\"\n [darkMode]=\"darkModeEnabled\"\n (darkModeChange)=\"onThemeToggle($event)\"\n (change)=\"onDeviceChange($event)\"\n (logout)=\"onLogout()\"\n ></app-settings>\n } @else {\n @if (!hideTabs) {\n <div class=\"page-heading\">\n <span>Keypad</span>\n <button type=\"button\" class=\"settings-btn\" (click)=\"selectTab('settings')\">\n <svg width=\"18px\" viewBox=\"-0.03 0 16.079 16.079\" aria-hidden=\"true\" focusable=\"false\">\n <g>\n <path fill=\"currentColor\"\n d=\"M8.182 1.083a6.99 6.99 0 0 0-6.248 3.493c-1.929 3.342-.776 7.629 2.57 9.562 3.346 1.934 7.634.792 9.562-2.55 1.929-3.343.776-7.634-2.57-9.567a6.98 6.98 0 0 0-3.314-.938zM8 2.08a6 6 0 0 1 6 6 6 6 0 0 1-6 6 6 6 0 0 1-6-6 6 6 0 0 1 6-6z\" />\n <path fill=\"currentColor\"\n d=\"M9.322 0L6.69.393v1.354a6.49 6.477 43.146 0 1 2.632.005V0zM3.937 1.19L1.93 2.897l.988 1.177a6.49 6.477 43.146 0 1 2.017-1.69zm8.128.013l-.993 1.184a6.49 6.477 43.146 0 1 .17.09 6.49 6.477 43.146 0 1 1.845 1.603l1.006-1.197zM.455 5.42l-.44 2.596 1.515.267a6.49 6.477 43.146 0 1 .455-2.593zm15.086.003l-1.523.269a6.49 6.477 43.146 0 1 .464 2.59l1.533-.27zM1.858 10.118l-1.351.78 1.33 2.271 1.339-.772a6.49 6.477 43.146 0 1-1.317-2.28zm12.301.003a6.49 6.477 43.146 0 1-.534 1.215 6.49 6.477 43.146 0 1-.774 1.069l1.338.773 1.302-2.288zm-9.557 3.471l-.534 1.47 2.48.884.525-1.446a6.49 6.477 43.146 0 1-2.303-.8 6.49 6.477 43.146 0 1-.168-.108zm6.814.016a6.49 6.477 43.146 0 1-2.475.897l.53 1.457 2.468-.917z\" />\n <path fill=\"currentColor\"\n d=\"M7.648 3.093a4.989 4.989 0 0 0-3.982 2.483 5.013 5.013 0 0 0 1.836 6.834 5.002 5.002 0 0 0 6.83-1.827 5.01 5.01 0 0 0-1.836-6.832 4.976 4.976 0 0 0-2.848-.658zM8 4.08a4 4 0 0 1 4 4 4 4 0 0 1-4 4 4 4 0 0 1-4-4 4 4 0 0 1 4-4z\" />\n </g>\n </svg>\n </button>\n </div>\n }\n <app-phone\n [tenantId]=\"tenantId\"\n [agentId]=\"loginForm?.value?.ipoExtensionNo || userId\"\n [activeCallNumber]=\"activeCallNumber\"\n [incomingCallName]=\"incomingCallName\"\n [incomingNameResolved]=\"incomingNameResolved\"\n [activeCallName]=\"activeCallName\"\n [serverIp]=\"avayaIPOServerIP\"\n [serverPort]=\"avayaIPOServerPort\"\n [stunIp]=\"avayaIPOServerStunServerIP\"\n [stunPort]=\"avayaIPOServerStunServerPort\"\n [turnIp]=\"avayaIPOServerTurnServerIP\"\n [turnPort]=\"avayaIPOServerTurnServerPort\"\n [configurationMode]=\"configurationMode\"\n (makeCallEv)=\"onPhoneMakeCall($event)\"\n (endCallEv)=\"onPhoneEndCall()\"\n (callScreenChange)=\"onCallScreenChange($event)\"\n ></app-phone>\n }\n </div>\n </div>\n\n @if (showLoginLoader) {\n <div class=\"global-loader\">\n <div class=\"spinner\"></div>\n <div class=\"loader-text\">Connecting to phone service...</div>\n </div>\n }\n\n @if (!hideTabs) {\n <nav class=\"tabs\">\n <button type=\"button\" class=\"tab-btn\" [class.active]=\"activeTab === 'history'\" (click)=\"selectTab('history')\">\n <span class=\"tab-icon\">\n <svg width=\"19px\" viewBox=\"0 0 512 512\" aria-hidden=\"true\" focusable=\"false\">\n <path fill=\"currentColor\"\n d=\"M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z\" />\n </svg>\n </span>\n <span class=\"tab-text\">History</span>\n </button>\n <button type=\"button\" class=\"tab-btn\" [class.active]=\"activeTab === 'contacts'\" (click)=\"selectTab('contacts')\">\n <span class=\"tab-icon\">\n <svg width=\"18px\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path fill=\"currentColor\"\n d=\"M12 12a4 4 0 1 0-4-4 4 4 0 0 0 4 4zm0 2c-4.4 0-8 2.2-8 5v2h16v-2c0-2.8-3.6-5-8-5z\" />\n </svg>\n </span>\n <span class=\"tab-text\">Contacts</span>\n </button>\n <button type=\"button\" class=\"tab-btn\" [class.active]=\"activeTab === 'keypad'\" (click)=\"selectTab('keypad')\">\n <span class=\"tab-icon\">\n <svg width=\"20px\" viewBox=\"0 0 512 512\" aria-hidden=\"true\" focusable=\"false\">\n <path fill=\"currentColor\" d=\"M256,400a48,48,0,1,0,48,48,48,48,0,0,0-48-48Z\"></path>\n <path fill=\"currentColor\" d=\"M256,272a48,48,0,1,0,48,48,48,48,0,0,0-48-48Z\"></path>\n <path fill=\"currentColor\" d=\"M256,144a48,48,0,1,0,48,48,48,48,0,0,0-48-48Z\"></path>\n <path fill=\"currentColor\" d=\"M256,16a48,48,0,1,0,48,48,48,48,0,0,0-48-48Z\"></path>\n <path fill=\"currentColor\" d=\"M384,272a48,48,0,1,0,48,48,48,48,0,0,0-48-48Z\"></path>\n <path fill=\"currentColor\" d=\"M384,144a48,48,0,1,0,48,48,48,48,0,0,0-48-48Z\"></path>\n <path fill=\"currentColor\" d=\"M384,16a48,48,0,1,0,48,48,48,48,0,0,0-48-48Z\"></path>\n <path fill=\"currentColor\" d=\"M128,272a48,48,0,1,0,48,48,48,48,0,0,0-48-48Z\"></path>\n <path fill=\"currentColor\" d=\"M128,144a48,48,0,1,0,48,48,48,48,0,0,0-48-48Z\"></path>\n <path fill=\"currentColor\" d=\"M128,16a48,48,0,1,0,48,48,48,48,0,0,0-48-48Z\"></path>\n </svg>\n </span>\n <span class=\"tab-text\">Keypad</span>\n </button>\n </nav>\n }\n}\n}\n", styles: [":host{display:flex;flex-direction:column;width:100%;max-width:100%;margin:0;font-family:Open Sans,Helvetica Neue,Arial,sans-serif;min-height:100%;height:100%;background:var(--sd-surface);color:var(--sd-text);--sd-tabs-height: 60px;--sd-surface: #ffffff;--sd-surface-muted: #f7f7f7;--sd-text: #1f1f1f;--sd-text-muted: #666666;--sd-border: #e5e5e5;--sd-card: #ffffff;--sd-avatar: #f0f0f0;--sd-input: #ffffff;--sd-input-border: #dddddd}:host.dark-mode{--sd-surface: #0f1115;--sd-surface-muted: #151a22;--sd-text: #f2f4f8;--sd-text-muted: #aab0bb;--sd-border: #2a2f3a;--sd-card: #161b24;--sd-avatar: #222833;--sd-input: #1c222c;--sd-input-border: #2a2f3a}.container_connection_status_overlay{width:100%;position:relative;background-color:#6666661a;padding:10px;box-sizing:border-box}.container_connection_status{width:100%;background:#fff;padding:8px 10px;border-radius:8px;font-size:13px;font-weight:600;color:#666;display:flex;gap:8px;align-items:center;box-shadow:0 4px 10px #00000014}.container_connection_status .fa-circle-dot{color:#f66060}.simple-placeholder{padding:20px;text-align:center;color:#444;font-weight:600}.auth-error-screen,.auth-loading-screen{min-height:100%;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(circle at top,#fff,#f2f4f7 65%,#e9edf3)}.auth-loading-card{width:min(320px,100%);padding:24px;border-radius:16px;background:#fff;border:1px solid #e5e7eb;box-shadow:0 16px 40px #0f172a1f;display:flex;flex-direction:column;gap:10px;text-align:center;align-items:center}.auth-loading-title{font-size:16px;font-weight:800;color:#111827}.auth-loading-message{font-size:12px;color:#6b7280}.auth-error-card{width:min(360px,100%);padding:24px;border-radius:16px;background:#fff;border:1px solid #e5e7eb;box-shadow:0 16px 40px #0f172a1f;display:flex;flex-direction:column;gap:10px;text-align:center}.auth-error-icon{width:56px;height:56px;margin:0 auto 4px;display:inline-flex;align-items:center;justify-content:center;border-radius:14px;background:#111827;color:#fff}.auth-error-icon svg{width:28px;height:28px}.auth-error-title{font-size:18px;font-weight:800;color:#111827}.auth-error-message{font-size:13px;color:#374151}.auth-error-hint{font-size:12px;color:#6b7280}.media-elements{display:none}.widget-body{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;position:relative;height:100%;padding-bottom:0;overflow-y:auto;-webkit-overflow-scrolling:touch}.logout-btn{border:none;background:#e3000f;color:#fff;padding:8px 12px;border-radius:6px;cursor:pointer;font-weight:600}.logout-btn:hover{background:#c0000d}.widget-content{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:1rem;padding-bottom:0;height:100%}.page-heading{display:flex;align-items:center;justify-content:space-between;font-size:25px;font-weight:800;color:#1f1f1f;padding:15px;z-index:5;background:var(--sd-surface)}.settings-btn{width:34px;height:34px;border:none;background:transparent;color:#4a4a4a;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.settings-btn.is-active{color:#e3000f;border-color:#f0c4c8;background:#fff5f6}.settings-btn:disabled{cursor:default;opacity:.75}.tabs{position:sticky;bottom:0;left:0;right:0;display:flex;gap:6px;padding:8px 12px;background:#f7f7f7;border-top:1px solid #e0e0e0;box-sizing:border-box;z-index:10;height:var(--sd-tabs-height)}.tab-btn{flex:1 1 0;height:44px;border:none;background:transparent;font-weight:600;color:#666;border-radius:8px;cursor:pointer;transition:background .12s ease,color .12s ease;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:12px;box-shadow:none}.tab-btn.active{background:transparent;color:#e3000f;box-shadow:none}.tab-icon{display:flex;align-items:center;justify-content:center;font-size:16px}.tab-btn.active .tab-icon{color:#e3000f}.global-loader{position:absolute;inset:0;background:#ffffffd9;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;z-index:1000;color:#333;font-weight:700}.spinner{width:48px;height:48px;border:4px solid #f0f0f0;border-top-color:#e3000f;border-radius:50%;animation:spin .9s linear infinite}.loader-text{font-size:14px}@keyframes spin{to{transform:rotate(360deg)}}:host ::ng-deep .widget-body,:host ::ng-deep .widget-content{background:var(--sd-surface);color:var(--sd-text)}:host ::ng-deep .page-heading{color:var(--sd-text)}:host ::ng-deep .settings-btn{color:var(--sd-text)}:host ::ng-deep .tabs{background:var(--sd-surface-muted);border-top-color:var(--sd-border)}:host ::ng-deep .tab-btn{color:var(--sd-text-muted)}:host ::ng-deep .tab-btn.active{color:#e3000f;background:transparent}:host ::ng-deep .tab-btn.active .tab-icon{color:#e3000f}:host ::ng-deep .history_item,:host ::ng-deep .contact-card{border-bottom-color:var(--sd-border)}:host ::ng-deep .history_avatar,:host ::ng-deep .skeleton_avatar,:host ::ng-deep .contact-avatar{background:var(--sd-avatar);color:var(--sd-text)}:host ::ng-deep .history_name,:host ::ng-deep .contact-name{color:var(--sd-text)}:host ::ng-deep .history_time,:host ::ng-deep .history_meta,:host ::ng-deep .history_group_label,:host ::ng-deep .contact-phone,:host ::ng-deep .contacts-state{color:var(--sd-text-muted)}:host.dark-mode ::ng-deep .history_group_label{background:#151a22eb}:host.dark-mode ::ng-deep .history_item:hover{background:#1a202b}:host.dark-mode ::ng-deep .contacts-search input{background:var(--sd-input);border-color:var(--sd-input-border);color:var(--sd-text)}:host.dark-mode ::ng-deep .contacts-search input::placeholder{color:var(--sd-text-muted)}:host.dark-mode ::ng-deep .contact-call{background:#1e2b22;color:#79d48a}:host.dark-mode ::ng-deep .contact-back{background:#141922;border-color:var(--sd-border);color:var(--sd-text)}:host.dark-mode ::ng-deep .contact-call-btn{background:#1f2530;border-color:#1f2530;color:#79d48a}:host.dark-mode ::ng-deep .global-loader{background:#0f1115e6;color:var(--sd-text)}:host.dark-mode ::ng-deep .spinner{border-color:#2a2f3a;border-top-color:#e3000f}\n"], dependencies: [{ kind: "component", type: CallHistoryComponent, selector: "app-call-history", inputs: ["mode", "tenantId", "agentId"], outputs: ["makeCallEv", "transferEv"] }, { kind: "component", type: ContactsComponent, selector: "app-contacts", inputs: ["tenantId"], outputs: ["makeCallEv"] }, { kind: "component", type: SettingsComponent, selector: "app-settings", inputs: ["selectedAudioInputId", "selectedAudioOutputId", "extensionId", "darkMode"], outputs: ["change", "darkModeChange", "logout"] }, { kind: "component", type: AvayaIpoLoginComponent, selector: "app-avaya-ipo-login", inputs: ["loginForm", "showLoginLoader", "hasAvayaSocketError", "hasAvayaLoginError", "hasAvayaLoginFailedGeneral", "hasAvayaLoginConflictError", "hasAvayaDeviceError"], outputs: ["login"] }, { kind: "component", type: PhoneComponent, selector: "app-phone", inputs: ["contacts", "tenantId", "agentId", "isActiveCall", "activeCallNumber", "incomingCallName", "incomingNameResolved", "activeCallName", "serverIp", "serverPort", "stunIp", "stunPort", "turnIp", "turnPort", "configurationMode"], outputs: ["callScreenChange", "makeCallEv", "endCallEv"] }] });
4996
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: AvayaIPOWidgetComponent, isStandalone: false, selector: "snugdesk-avaya-ipo-widget", inputs: { isVisible: "isVisible", displayMode: "displayMode", configurationMode: "configurationMode", avayaIPOServerIP: "avayaIPOServerIP", avayaIPOServerPort: "avayaIPOServerPort", avayaIPOServerStunServerIP: "avayaIPOServerStunServerIP", avayaIPOServerStunServerPort: "avayaIPOServerStunServerPort", avayaIPOServerTurnServerIP: "avayaIPOServerTurnServerIP", avayaIPOServerTurnServerPort: "avayaIPOServerTurnServerPort", token: "token", tenantId: "tenantId", userId: "userId", extension: "extension", password: "password", showHistory: "showHistory", showContacts: "showContacts" }, outputs: { notificationEvent: "notificationEvent", incomingCall: "incomingCall" }, host: { properties: { "class.avaya-ipo-dark-mode": "this.hostDarkMode", "class.avaya-ipo-mode-standalone": "this.hostModeStandalone", "class.avaya-ipo-mode-popup": "this.hostModePopup" } }, usesOnChanges: true, ngImport: i0, template: "<div class=\"avaya-ipo-media-elements\">\n <audio id=\"rmtAudio\" autoplay></audio>\n <audio id=\"lclAudio\" autoplay></audio>\n <video id=\"rmtVideo\" autoplay playsinline></video>\n <video id=\"lclVideo\" autoplay playsinline muted></video>\n</div>\n\n@if (authLoading) {\n <div class=\"avaya-ipo-auth-loading-screen\">\n <div class=\"avaya-ipo-auth-loading-card\">\n <div class=\"avaya-ipo-spinner\" aria-hidden=\"true\"></div>\n <div class=\"avaya-ipo-auth-loading-title\">Checking authentication</div>\n <div class=\"avaya-ipo-auth-loading-message\">Please wait...</div>\n </div>\n </div>\n} @else if (authErrorMessage) {\n <div class=\"avaya-ipo-auth-error-screen\">\n <div class=\"avaya-ipo-auth-error-card\">\n <div class=\"avaya-ipo-auth-error-icon\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 24 24\" focusable=\"false\">\n <path\n fill=\"currentColor\"\n d=\"M12 2a7 7 0 0 1 7 7v3a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-6a2 2 0 0 1 2-2V9a7 7 0 0 1 7-7zm5 10V9a5 5 0 0 0-10 0v3h10zm-5 3a2 2 0 0 0-1 3.732V20h2v-1.268A2 2 0 0 0 12 15z\"\n />\n </svg>\n </div>\n <div class=\"avaya-ipo-auth-error-title\">Authentication Required</div>\n <div class=\"avaya-ipo-auth-error-message\">{{ authErrorMessage }}</div>\n </div>\n </div>\n} @else {\n@if (isReconnectingInProgress || isFailoverInProgress || isFailbackInProgress) {\n <div class=\"avaya-ipo-container_connection_status_overlay\">\n <div class=\"avaya-ipo-container_connection_status\">\n <i class=\"fa-solid fa-circle-dot\"></i>\n @if (isReconnectingInProgress) { <span>Reconnecting to the server...</span> }\n @if (isFailoverInProgress) { <span>Failover in progress...</span> }\n @if (isFailbackInProgress) { <span>Failback in progress...</span> }\n </div>\n </div>\n}\n\n@if (showLoginForm) {\n <app-avaya-ipo-login\n [loginForm]=\"loginForm\"\n [showLoginLoader]=\"showLoginLoader\"\n [hasAvayaSocketError]=\"hasAvayaSocketError\"\n [hasAvayaLoginError]=\"hasAvayaLoginError\"\n [hasAvayaLoginFailedGeneral]=\"hasAvayaLoginFailedGeneral\"\n [hasAvayaLoginConflictError]=\"hasAvayaLoginConflictError\"\n [hasAvayaDeviceError]=\"hasAvayaDeviceError\"\n (login)=\"onLogin()\"\n ></app-avaya-ipo-login>\n} @else {\n <div class=\"avaya-ipo-widget-body\">\n <div class=\"avaya-ipo-widget-content\">\n @if (activeTab === 'history') {\n @if (!hideTabs) {\n <div class=\"avaya-ipo-page-heading avaya-ipo-heading-right\">\n <span>History</span>\n <button type=\"button\" class=\"avaya-ipo-settings-btn\" (click)=\"selectTab('settings')\">\n <svg width=\"18px\" viewBox=\"-0.03 0 16.079 16.079\" aria-hidden=\"true\" focusable=\"false\">\n <g>\n <path fill=\"currentColor\"\n d=\"M8.182 1.083a6.99 6.99 0 0 0-6.248 3.493c-1.929 3.342-.776 7.629 2.57 9.562 3.346 1.934 7.634.792 9.562-2.55 1.929-3.343.776-7.634-2.57-9.567a6.98 6.98 0 0 0-3.314-.938zM8 2.08a6 6 0 0 1 6 6 6 6 0 0 1-6 6 6 6 0 0 1-6-6 6 6 0 0 1 6-6z\" />\n <path fill=\"currentColor\"\n d=\"M9.322 0L6.69.393v1.354a6.49 6.477 43.146 0 1 2.632.005V0zM3.937 1.19L1.93 2.897l.988 1.177a6.49 6.477 43.146 0 1 2.017-1.69zm8.128.013l-.993 1.184a6.49 6.477 43.146 0 1 .17.09 6.49 6.477 43.146 0 1 1.845 1.603l1.006-1.197zM.455 5.42l-.44 2.596 1.515.267a6.49 6.477 43.146 0 1 .455-2.593zm15.086.003l-1.523.269a6.49 6.477 43.146 0 1 .464 2.59l1.533-.27zM1.858 10.118l-1.351.78 1.33 2.271 1.339-.772a6.49 6.477 43.146 0 1-1.317-2.28zm12.301.003a6.49 6.477 43.146 0 1-.534 1.215 6.49 6.477 43.146 0 1-.774 1.069l1.338.773 1.302-2.288zm-9.557 3.471l-.534 1.47 2.48.884.525-1.446a6.49 6.477 43.146 0 1-2.303-.8 6.49 6.477 43.146 0 1-.168-.108zm6.814.016a6.49 6.477 43.146 0 1-2.475.897l.53 1.457 2.468-.917z\" />\n <path fill=\"currentColor\"\n d=\"M7.648 3.093a4.989 4.989 0 0 0-3.982 2.483 5.013 5.013 0 0 0 1.836 6.834 5.002 5.002 0 0 0 6.83-1.827 5.01 5.01 0 0 0-1.836-6.832 4.976 4.976 0 0 0-2.848-.658zM8 4.08a4 4 0 0 1 4 4 4 4 0 0 1-4 4 4 4 0 0 1-4-4 4 4 0 0 1 4-4z\" />\n </g>\n </svg>\n </button>\n </div>\n }\n <app-call-history\n [tenantId]=\"tenantId\"\n [agentId]=\"loginForm?.value?.ipoExtensionNo || userId\"\n (makeCallEv)=\"onHistoryMakeCall($event)\"\n ></app-call-history>\n } @else if (activeTab === 'contacts') {\n @if (!hideTabs) {\n <div class=\"avaya-ipo-page-heading\">\n <span>Contacts</span>\n <button type=\"button\" class=\"avaya-ipo-settings-btn\" (click)=\"selectTab('settings')\">\n <svg width=\"18px\" viewBox=\"-0.03 0 16.079 16.079\" aria-hidden=\"true\" focusable=\"false\">\n <g>\n <path fill=\"currentColor\"\n d=\"M8.182 1.083a6.99 6.99 0 0 0-6.248 3.493c-1.929 3.342-.776 7.629 2.57 9.562 3.346 1.934 7.634.792 9.562-2.55 1.929-3.343.776-7.634-2.57-9.567a6.98 6.98 0 0 0-3.314-.938zM8 2.08a6 6 0 0 1 6 6 6 6 0 0 1-6 6 6 6 0 0 1-6-6 6 6 0 0 1 6-6z\" />\n <path fill=\"currentColor\"\n d=\"M9.322 0L6.69.393v1.354a6.49 6.477 43.146 0 1 2.632.005V0zM3.937 1.19L1.93 2.897l.988 1.177a6.49 6.477 43.146 0 1 2.017-1.69zm8.128.013l-.993 1.184a6.49 6.477 43.146 0 1 .17.09 6.49 6.477 43.146 0 1 1.845 1.603l1.006-1.197zM.455 5.42l-.44 2.596 1.515.267a6.49 6.477 43.146 0 1 .455-2.593zm15.086.003l-1.523.269a6.49 6.477 43.146 0 1 .464 2.59l1.533-.27zM1.858 10.118l-1.351.78 1.33 2.271 1.339-.772a6.49 6.477 43.146 0 1-1.317-2.28zm12.301.003a6.49 6.477 43.146 0 1-.534 1.215 6.49 6.477 43.146 0 1-.774 1.069l1.338.773 1.302-2.288zm-9.557 3.471l-.534 1.47 2.48.884.525-1.446a6.49 6.477 43.146 0 1-2.303-.8 6.49 6.477 43.146 0 1-.168-.108zm6.814.016a6.49 6.477 43.146 0 1-2.475.897l.53 1.457 2.468-.917z\" />\n <path fill=\"currentColor\"\n d=\"M7.648 3.093a4.989 4.989 0 0 0-3.982 2.483 5.013 5.013 0 0 0 1.836 6.834 5.002 5.002 0 0 0 6.83-1.827 5.01 5.01 0 0 0-1.836-6.832 4.976 4.976 0 0 0-2.848-.658zM8 4.08a4 4 0 0 1 4 4 4 4 0 0 1-4 4 4 4 0 0 1-4-4 4 4 0 0 1 4-4z\" />\n </g>\n </svg>\n </button>\n </div>\n }\n <app-contacts [tenantId]=\"tenantId\" (makeCallEv)=\"onContactsMakeCall($event)\"></app-contacts>\n } @else if (activeTab === 'settings') {\n @if (!hideTabs) {\n <div class=\"avaya-ipo-page-heading\">\n <span class=\"avaya-ipo-heading-with-back\">\n <button type=\"button\" class=\"avaya-ipo-settings-btn avaya-ipo-back-btn\" (click)=\"closeSettings()\" aria-label=\"Go back\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\"\n stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\">\n <path d=\"M15 18l-6-6 6-6\" />\n </svg>\n </button>\n <span>Settings</span>\n </span>\n </div>\n }\n <app-settings\n [extensionId]=\"loginForm?.value?.ipoExtensionNo || userId\"\n [darkMode]=\"darkModeEnabled\"\n (darkModeChange)=\"onThemeToggle($event)\"\n (change)=\"onDeviceChange($event)\"\n (logout)=\"onLogout()\"\n ></app-settings>\n } @else {\n @if (!hideTabs) {\n <button type=\"button\" class=\"avaya-ipo-settings-btn avaya-ipo-settings-btn-floating\" (click)=\"selectTab('settings')\" aria-label=\"Settings\">\n <svg width=\"18px\" viewBox=\"-0.03 0 16.079 16.079\" aria-hidden=\"true\" focusable=\"false\">\n <g>\n <path fill=\"currentColor\"\n d=\"M8.182 1.083a6.99 6.99 0 0 0-6.248 3.493c-1.929 3.342-.776 7.629 2.57 9.562 3.346 1.934 7.634.792 9.562-2.55 1.929-3.343.776-7.634-2.57-9.567a6.98 6.98 0 0 0-3.314-.938zM8 2.08a6 6 0 0 1 6 6 6 6 0 0 1-6 6 6 6 0 0 1-6-6 6 6 0 0 1 6-6z\" />\n <path fill=\"currentColor\"\n d=\"M9.322 0L6.69.393v1.354a6.49 6.477 43.146 0 1 2.632.005V0zM3.937 1.19L1.93 2.897l.988 1.177a6.49 6.477 43.146 0 1 2.017-1.69zm8.128.013l-.993 1.184a6.49 6.477 43.146 0 1 .17.09 6.49 6.477 43.146 0 1 1.845 1.603l1.006-1.197zM.455 5.42l-.44 2.596 1.515.267a6.49 6.477 43.146 0 1 .455-2.593zm15.086.003l-1.523.269a6.49 6.477 43.146 0 1 .464 2.59l1.533-.27zM1.858 10.118l-1.351.78 1.33 2.271 1.339-.772a6.49 6.477 43.146 0 1-1.317-2.28zm12.301.003a6.49 6.477 43.146 0 1-.534 1.215 6.49 6.477 43.146 0 1-.774 1.069l1.338.773 1.302-2.288zm-9.557 3.471l-.534 1.47 2.48.884.525-1.446a6.49 6.477 43.146 0 1-2.303-.8 6.49 6.477 43.146 0 1-.168-.108zm6.814.016a6.49 6.477 43.146 0 1-2.475.897l.53 1.457 2.468-.917z\" />\n <path fill=\"currentColor\"\n d=\"M7.648 3.093a4.989 4.989 0 0 0-3.982 2.483 5.013 5.013 0 0 0 1.836 6.834 5.002 5.002 0 0 0 6.83-1.827 5.01 5.01 0 0 0-1.836-6.832 4.976 4.976 0 0 0-2.848-.658zM8 4.08a4 4 0 0 1 4 4 4 4 0 0 1-4 4 4 4 0 0 1-4-4 4 4 0 0 1 4-4z\" />\n </g>\n </svg>\n </button>\n }\n <app-phone\n [tenantId]=\"tenantId\"\n [agentId]=\"loginForm?.value?.ipoExtensionNo || userId\"\n [activeCallNumber]=\"activeCallNumber\"\n [incomingCallName]=\"incomingCallName\"\n [incomingNameResolved]=\"incomingNameResolved\"\n [activeCallName]=\"activeCallName\"\n [serverIp]=\"avayaIPOServerIP\"\n [serverPort]=\"avayaIPOServerPort\"\n [stunIp]=\"avayaIPOServerStunServerIP\"\n [stunPort]=\"avayaIPOServerStunServerPort\"\n [turnIp]=\"avayaIPOServerTurnServerIP\"\n [turnPort]=\"avayaIPOServerTurnServerPort\"\n [configurationMode]=\"configurationMode\"\n (makeCallEv)=\"onPhoneMakeCall($event)\"\n (endCallEv)=\"onPhoneEndCall()\"\n (callScreenChange)=\"onCallScreenChange($event)\"\n ></app-phone>\n }\n </div>\n </div>\n\n @if (showLoginLoader) {\n <div class=\"avaya-ipo-global-loader\">\n <div class=\"avaya-ipo-spinner\"></div>\n <div class=\"avaya-ipo-loader-text\">Connecting to phone service...</div>\n </div>\n }\n\n @if (!hideTabs && showTabBar) {\n <nav class=\"avaya-ipo-tabs\">\n @if (showHistory) {\n <button type=\"button\" class=\"avaya-ipo-tab-btn\" [class.avaya-ipo-active]=\"activeTab === 'history'\" (click)=\"selectTab('history')\">\n <span class=\"avaya-ipo-tab-icon\">\n <svg width=\"19px\" viewBox=\"0 0 512 512\" aria-hidden=\"true\" focusable=\"false\">\n <path fill=\"currentColor\"\n d=\"M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z\" />\n </svg>\n </span>\n <span class=\"avaya-ipo-tab-text\">History</span>\n </button>\n }\n @if (showContacts) {\n <button type=\"button\" class=\"avaya-ipo-tab-btn\" [class.avaya-ipo-active]=\"activeTab === 'contacts'\" (click)=\"selectTab('contacts')\">\n <span class=\"avaya-ipo-tab-icon\">\n <svg width=\"18px\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path fill=\"currentColor\"\n d=\"M12 12a4 4 0 1 0-4-4 4 4 0 0 0 4 4zm0 2c-4.4 0-8 2.2-8 5v2h16v-2c0-2.8-3.6-5-8-5z\" />\n </svg>\n </span>\n <span class=\"avaya-ipo-tab-text\">Contacts</span>\n </button>\n }\n <button type=\"button\" class=\"avaya-ipo-tab-btn\" [class.avaya-ipo-active]=\"activeTab === 'keypad'\" (click)=\"selectTab('keypad')\">\n <span class=\"avaya-ipo-tab-icon\">\n <svg width=\"20px\" viewBox=\"0 0 512 512\" aria-hidden=\"true\" focusable=\"false\">\n <path fill=\"currentColor\" d=\"M256,400a48,48,0,1,0,48,48,48,48,0,0,0-48-48Z\"></path>\n <path fill=\"currentColor\" d=\"M256,272a48,48,0,1,0,48,48,48,48,0,0,0-48-48Z\"></path>\n <path fill=\"currentColor\" d=\"M256,144a48,48,0,1,0,48,48,48,48,0,0,0-48-48Z\"></path>\n <path fill=\"currentColor\" d=\"M256,16a48,48,0,1,0,48,48,48,48,0,0,0-48-48Z\"></path>\n <path fill=\"currentColor\" d=\"M384,272a48,48,0,1,0,48,48,48,48,0,0,0-48-48Z\"></path>\n <path fill=\"currentColor\" d=\"M384,144a48,48,0,1,0,48,48,48,48,0,0,0-48-48Z\"></path>\n <path fill=\"currentColor\" d=\"M384,16a48,48,0,1,0,48,48,48,48,0,0,0-48-48Z\"></path>\n <path fill=\"currentColor\" d=\"M128,272a48,48,0,1,0,48,48,48,48,0,0,0-48-48Z\"></path>\n <path fill=\"currentColor\" d=\"M128,144a48,48,0,1,0,48,48,48,48,0,0,0-48-48Z\"></path>\n <path fill=\"currentColor\" d=\"M128,16a48,48,0,1,0,48,48,48,48,0,0,0-48-48Z\"></path>\n </svg>\n </span>\n <span class=\"avaya-ipo-tab-text\">Keypad</span>\n </button>\n </nav>\n }\n\n @if (activeTab !== 'keypad') {\n <div class=\"avaya-ipo-widget-version-footer\">v{{ widgetVersion }}</div>\n }\n}\n}\n", styles: [":host{display:flex;flex-direction:column;width:100%;max-width:100%;margin:0;font-family:Open Sans,Helvetica Neue,Arial,sans-serif;min-height:100%;height:100%;background:var(--sd-surface);color:var(--sd-text);box-sizing:border-box;--sd-tabs-height: 60px;--sd-radius-sm: 8px;--sd-radius: 10px;--sd-radius-lg: 14px;--sd-radius-pill: 999px;--sd-shadow-sm: 0 1px 2px rgba(16, 24, 40, .06);--sd-shadow-md: 0 6px 16px rgba(16, 24, 40, .1);--sd-shadow-lg: 0 16px 40px rgba(16, 24, 40, .14);--sd-accent: var(--app-color, #ff6633);--sd-accent-strong: var(--app-color-dark, #ff5805);--sd-accent-soft: #fff1ea;--sd-accent-contrast: #ffffff;--sd-call-accept: #1aa251;--sd-call-end: #e5484d;--sd-surface: var(--background-color, #ffffff);--sd-surface-muted: var(--background-color-dark, #f7f7f7);--sd-surface-sunken: var(--background-color-dark-light, #e8e8e8);--sd-text: var(--header-text-primary, #333333);--sd-text-muted: var(--header-text-secondary, #5f6368);--sd-text-subtle: var(--header-text-muted, #9ca3af);--sd-border: var(--dropdown-border, #e3e3e3);--sd-border-strong: var(--border-color, #c9c9c9);--sd-card: var(--background-color, #ffffff);--sd-avatar: #eceff3;--sd-input: var(--background-color, #ffffff);--sd-input-border: var(--border-color, #c9c9c9);--sd-focus-ring: 0 0 0 3px rgba(255, 102, 51, .22)}:host.avaya-ipo-dark-mode{--sd-accent: #ff7a4d;--sd-accent-strong: #ff6633;--sd-accent-soft: rgba(255, 122, 77, .14);--sd-accent-contrast: #1a1109;--sd-call-accept: #34c759;--sd-call-end: #ff5b5b;--sd-surface: #0f1115;--sd-surface-muted: #151a22;--sd-surface-sunken: #1c222c;--sd-text: #f2f4f8;--sd-text-muted: #aab0bb;--sd-text-subtle: #7e8794;--sd-border: #2a2f3a;--sd-border-strong: #353b47;--sd-card: #161b24;--sd-avatar: #222833;--sd-input: #1c222c;--sd-input-border: #2a2f3a;--sd-focus-ring: 0 0 0 3px rgba(255, 122, 77, .25)}:host.avaya-ipo-mode-popup{min-width:320px;height:100%}:host.avaya-ipo-mode-standalone{width:100%;max-width:460px;height:100dvh;min-height:100dvh;margin-inline:auto;border-inline:1px solid var(--sd-border);box-shadow:var(--sd-shadow-lg);overflow:hidden}@media (max-width: 768px){:host.avaya-ipo-mode-standalone{max-width:100%;border-inline:0;box-shadow:none}}.avaya-ipo-container_connection_status_overlay{width:100%;position:relative;background-color:#7f7f7f1a;padding:10px;box-sizing:border-box}.avaya-ipo-container_connection_status{width:100%;background:var(--sd-card);padding:8px 10px;border-radius:var(--sd-radius-sm);font-size:13px;font-weight:600;color:var(--sd-text-muted);display:flex;gap:8px;align-items:center;box-shadow:var(--sd-shadow-md)}.avaya-ipo-container_connection_status .fa-circle-dot{color:var(--sd-accent)}.avaya-ipo-simple-placeholder{padding:20px;text-align:center;color:var(--sd-text);font-weight:600}.avaya-ipo-auth-error-screen,.avaya-ipo-auth-loading-screen{min-height:100%;flex:1 1 auto;display:flex;align-items:center;justify-content:center;padding:24px;box-sizing:border-box;background:var(--sd-surface)}.avaya-ipo-auth-loading-card{width:min(320px,100%);padding:24px;border-radius:var(--sd-radius-lg);background:var(--sd-card);border:1px solid var(--sd-border);box-shadow:var(--sd-shadow-lg);display:flex;flex-direction:column;gap:10px;text-align:center;align-items:center}.avaya-ipo-auth-loading-title{font-size:16px;font-weight:800;color:var(--sd-text)}.avaya-ipo-auth-loading-message{font-size:12px;color:var(--sd-text-muted)}.avaya-ipo-auth-error-card{width:min(360px,100%);padding:24px;border-radius:var(--sd-radius-lg);background:var(--sd-card);border:1px solid var(--sd-border);box-shadow:var(--sd-shadow-lg);display:flex;flex-direction:column;gap:10px;text-align:center}.avaya-ipo-auth-error-icon{width:56px;height:56px;margin:0 auto 4px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--sd-radius-lg);background:var(--sd-accent);color:var(--sd-accent-contrast)}.avaya-ipo-auth-error-icon svg{width:28px;height:28px}.avaya-ipo-auth-error-title{font-size:18px;font-weight:800;color:var(--sd-text)}.avaya-ipo-auth-error-message{font-size:13px;color:var(--sd-text-muted)}.avaya-ipo-auth-error-hint{font-size:12px;color:var(--sd-text-subtle)}.avaya-ipo-media-elements{display:none}.avaya-ipo-widget-body{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;position:relative;height:100%;padding-bottom:0;overflow-y:auto;-webkit-overflow-scrolling:touch}.avaya-ipo-logout-btn{border:none;background:var(--sd-call-end);color:#fff;padding:8px 12px;border-radius:var(--sd-radius-sm);cursor:pointer;font-weight:600}.avaya-ipo-logout-btn:hover{filter:brightness(.94)}.avaya-ipo-widget-content{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:1rem;padding-bottom:0;height:100%}.avaya-ipo-page-heading{display:flex;align-items:center;justify-content:space-between;font-size:22px;font-weight:800;color:var(--sd-text);padding:15px;z-index:5;background:var(--sd-surface)}.avaya-ipo-settings-btn{width:34px;height:34px;border-radius:var(--sd-radius-sm);border:none;background:transparent;color:var(--sd-text-muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .12s ease,color .12s ease}.avaya-ipo-settings-btn:hover{background:var(--sd-surface-muted)}.avaya-ipo-settings-btn.avaya-ipo-is-active{color:var(--sd-accent);background:var(--sd-accent-soft)}.avaya-ipo-settings-btn:disabled{cursor:default;opacity:.75}.avaya-ipo-settings-btn-floating{position:absolute;top:8px;right:8px;z-index:6}.avaya-ipo-heading-with-back{display:inline-flex;align-items:center;gap:4px}.avaya-ipo-settings-btn.avaya-ipo-back-btn{color:var(--sd-text)}.avaya-ipo-tabs{position:sticky;bottom:0;left:0;right:0;display:flex;gap:6px;padding:8px 12px;background:var(--sd-surface-muted);border-top:1px solid var(--sd-border);box-sizing:border-box;z-index:10;height:var(--sd-tabs-height)}.avaya-ipo-tab-btn{flex:1 1 0;height:44px;border:none;background:transparent;font-weight:600;color:var(--sd-text-muted);border-radius:var(--sd-radius-sm);cursor:pointer;transition:background .12s ease,color .12s ease;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:12px;box-shadow:none}.avaya-ipo-tab-btn:hover{color:var(--sd-text)}.avaya-ipo-tab-btn.avaya-ipo-active{background:var(--sd-accent-soft);color:var(--sd-accent);box-shadow:none}.avaya-ipo-tab-icon{display:flex;align-items:center;justify-content:center;font-size:16px}.avaya-ipo-tab-btn.avaya-ipo-active .avaya-ipo-tab-icon{color:var(--sd-accent)}.avaya-ipo-global-loader{position:absolute;inset:0;background:color-mix(in srgb,var(--sd-surface) 85%,transparent);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;z-index:1000;color:var(--sd-text);font-weight:700}.avaya-ipo-spinner{width:48px;height:48px;border:4px solid var(--sd-surface-sunken);border-top-color:var(--sd-accent);border-radius:50%;animation:spin .9s linear infinite}.avaya-ipo-loader-text{font-size:14px}@keyframes spin{to{transform:rotate(360deg)}}:host ::ng-deep .avaya-ipo-widget-body,:host ::ng-deep .avaya-ipo-widget-content{background:var(--sd-surface);color:var(--sd-text)}:host ::ng-deep .avaya-ipo-page-heading{color:var(--sd-text)}:host ::ng-deep .avaya-ipo-settings-btn{color:var(--sd-text-muted)}:host ::ng-deep .avaya-ipo-tabs{background:var(--sd-surface-muted);border-top-color:var(--sd-border)}:host ::ng-deep .avaya-ipo-tab-btn{color:var(--sd-text-muted)}:host ::ng-deep .avaya-ipo-tab-btn.avaya-ipo-active{color:var(--sd-accent);background:var(--sd-accent-soft)}:host ::ng-deep .avaya-ipo-tab-btn.avaya-ipo-active .avaya-ipo-tab-icon{color:var(--sd-accent)}:host ::ng-deep .avaya-ipo-history_item,:host ::ng-deep .avaya-ipo-contact-card{border-bottom-color:var(--sd-border)}:host ::ng-deep .avaya-ipo-history_avatar,:host ::ng-deep .avaya-ipo-skeleton_avatar,:host ::ng-deep .avaya-ipo-contact-avatar{background:var(--sd-avatar);color:var(--sd-text)}:host ::ng-deep .avaya-ipo-history_name,:host ::ng-deep .avaya-ipo-contact-name{color:var(--sd-text)}:host ::ng-deep .avaya-ipo-history_time,:host ::ng-deep .avaya-ipo-history_meta,:host ::ng-deep .avaya-ipo-history_group_label,:host ::ng-deep .avaya-ipo-contact-phone,:host ::ng-deep .avaya-ipo-contacts-state{color:var(--sd-text-muted)}:host.avaya-ipo-dark-mode ::ng-deep .avaya-ipo-history_group_label{background:#151a22eb}:host.avaya-ipo-dark-mode ::ng-deep .avaya-ipo-history_item:hover{background:#1a202b}:host.avaya-ipo-dark-mode ::ng-deep .avaya-ipo-contacts-search input{background:var(--sd-input);border-color:var(--sd-input-border);color:var(--sd-text)}:host.avaya-ipo-dark-mode ::ng-deep .avaya-ipo-contacts-search input::placeholder{color:var(--sd-text-muted)}:host.avaya-ipo-dark-mode ::ng-deep .avaya-ipo-contact-call{background:#1e2b22;color:#79d48a}:host.avaya-ipo-dark-mode ::ng-deep .avaya-ipo-contact-back{background:#141922;border-color:var(--sd-border);color:var(--sd-text)}:host.avaya-ipo-dark-mode ::ng-deep .avaya-ipo-contact-call-btn{background:#1f2530;border-color:#1f2530;color:#79d48a}:host.avaya-ipo-dark-mode ::ng-deep .avaya-ipo-global-loader{background:#0f1115e6;color:var(--sd-text)}:host.avaya-ipo-dark-mode ::ng-deep .avaya-ipo-spinner{border-color:#2a2f3a;border-top-color:var(--sd-accent)}.avaya-ipo-widget-version-footer{flex:0 0 auto;padding:2px 8px 4px;text-align:center;font-size:10px;line-height:1.2;letter-spacing:.02em;color:var(--sd-text-muted);background:var(--sd-surface);border-top:1px solid var(--sd-border);-webkit-user-select:text;user-select:text}\n"], dependencies: [{ kind: "component", type: CallHistoryComponent, selector: "app-call-history", inputs: ["mode", "tenantId", "agentId"], outputs: ["makeCallEv", "transferEv"] }, { kind: "component", type: ContactsComponent, selector: "app-contacts", inputs: ["tenantId"], outputs: ["makeCallEv"] }, { kind: "component", type: SettingsComponent, selector: "app-settings", inputs: ["selectedAudioInputId", "selectedAudioOutputId", "extensionId", "darkMode"], outputs: ["change", "darkModeChange", "logout"] }, { kind: "component", type: AvayaIpoLoginComponent, selector: "app-avaya-ipo-login", inputs: ["loginForm", "showLoginLoader", "hasAvayaSocketError", "hasAvayaLoginError", "hasAvayaLoginFailedGeneral", "hasAvayaLoginConflictError", "hasAvayaDeviceError"], outputs: ["login"] }, { kind: "component", type: PhoneComponent, selector: "app-phone", inputs: ["contacts", "tenantId", "agentId", "isActiveCall", "activeCallNumber", "incomingCallName", "incomingNameResolved", "activeCallName", "serverIp", "serverPort", "stunIp", "stunPort", "turnIp", "turnPort", "configurationMode"], outputs: ["callScreenChange", "makeCallEv", "endCallEv"] }] });
4764
4997
  }
4765
4998
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: AvayaIPOWidgetComponent, decorators: [{
4766
4999
  type: Component,
4767
- args: [{ selector: 'snugdesk-avaya-ipo-widget', standalone: false, template: "<div class=\"media-elements\">\n <audio id=\"rmtAudio\" autoplay></audio>\n <audio id=\"lclAudio\" autoplay></audio>\n <video id=\"rmtVideo\" autoplay playsinline></video>\n <video id=\"lclVideo\" autoplay playsinline muted></video>\n</div>\n\n@if (authLoading) {\n <div class=\"auth-loading-screen\">\n <div class=\"auth-loading-card\">\n <div class=\"spinner\" aria-hidden=\"true\"></div>\n <div class=\"auth-loading-title\">Checking authentication</div>\n <div class=\"auth-loading-message\">Please wait...</div>\n </div>\n </div>\n} @else if (authErrorMessage) {\n <div class=\"auth-error-screen\">\n <div class=\"auth-error-card\">\n <div class=\"auth-error-icon\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 24 24\" focusable=\"false\">\n <path\n fill=\"currentColor\"\n d=\"M12 2a7 7 0 0 1 7 7v3a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-6a2 2 0 0 1 2-2V9a7 7 0 0 1 7-7zm5 10V9a5 5 0 0 0-10 0v3h10zm-5 3a2 2 0 0 0-1 3.732V20h2v-1.268A2 2 0 0 0 12 15z\"\n />\n </svg>\n </div>\n <div class=\"auth-error-title\">Authentication Required</div>\n <div class=\"auth-error-message\">{{ authErrorMessage }}</div>\n </div>\n </div>\n} @else {\n@if (isReconnectingInProgress || isFailoverInProgress || isFailbackInProgress) {\n <div class=\"container_connection_status_overlay\">\n <div class=\"container_connection_status\">\n <i class=\"fa-solid fa-circle-dot\"></i>\n @if (isReconnectingInProgress) { <span>Reconnecting to the server...</span> }\n @if (isFailoverInProgress) { <span>Failover in progress...</span> }\n @if (isFailbackInProgress) { <span>Failback in progress...</span> }\n </div>\n </div>\n}\n\n@if (showLoginForm) {\n <app-avaya-ipo-login\n [loginForm]=\"loginForm\"\n [showLoginLoader]=\"showLoginLoader\"\n [hasAvayaSocketError]=\"hasAvayaSocketError\"\n [hasAvayaLoginError]=\"hasAvayaLoginError\"\n [hasAvayaLoginFailedGeneral]=\"hasAvayaLoginFailedGeneral\"\n [hasAvayaLoginConflictError]=\"hasAvayaLoginConflictError\"\n [hasAvayaDeviceError]=\"hasAvayaDeviceError\"\n (login)=\"onLogin()\"\n ></app-avaya-ipo-login>\n} @else {\n <div class=\"widget-body\">\n <div class=\"widget-content\">\n @if (activeTab === 'history') {\n @if (!hideTabs) {\n <div class=\"page-heading\">\n <span>History</span>\n <button type=\"button\" class=\"settings-btn\" (click)=\"selectTab('settings')\">\n <svg width=\"18px\" viewBox=\"-0.03 0 16.079 16.079\" aria-hidden=\"true\" focusable=\"false\">\n <g>\n <path fill=\"currentColor\"\n d=\"M8.182 1.083a6.99 6.99 0 0 0-6.248 3.493c-1.929 3.342-.776 7.629 2.57 9.562 3.346 1.934 7.634.792 9.562-2.55 1.929-3.343.776-7.634-2.57-9.567a6.98 6.98 0 0 0-3.314-.938zM8 2.08a6 6 0 0 1 6 6 6 6 0 0 1-6 6 6 6 0 0 1-6-6 6 6 0 0 1 6-6z\" />\n <path fill=\"currentColor\"\n d=\"M9.322 0L6.69.393v1.354a6.49 6.477 43.146 0 1 2.632.005V0zM3.937 1.19L1.93 2.897l.988 1.177a6.49 6.477 43.146 0 1 2.017-1.69zm8.128.013l-.993 1.184a6.49 6.477 43.146 0 1 .17.09 6.49 6.477 43.146 0 1 1.845 1.603l1.006-1.197zM.455 5.42l-.44 2.596 1.515.267a6.49 6.477 43.146 0 1 .455-2.593zm15.086.003l-1.523.269a6.49 6.477 43.146 0 1 .464 2.59l1.533-.27zM1.858 10.118l-1.351.78 1.33 2.271 1.339-.772a6.49 6.477 43.146 0 1-1.317-2.28zm12.301.003a6.49 6.477 43.146 0 1-.534 1.215 6.49 6.477 43.146 0 1-.774 1.069l1.338.773 1.302-2.288zm-9.557 3.471l-.534 1.47 2.48.884.525-1.446a6.49 6.477 43.146 0 1-2.303-.8 6.49 6.477 43.146 0 1-.168-.108zm6.814.016a6.49 6.477 43.146 0 1-2.475.897l.53 1.457 2.468-.917z\" />\n <path fill=\"currentColor\"\n d=\"M7.648 3.093a4.989 4.989 0 0 0-3.982 2.483 5.013 5.013 0 0 0 1.836 6.834 5.002 5.002 0 0 0 6.83-1.827 5.01 5.01 0 0 0-1.836-6.832 4.976 4.976 0 0 0-2.848-.658zM8 4.08a4 4 0 0 1 4 4 4 4 0 0 1-4 4 4 4 0 0 1-4-4 4 4 0 0 1 4-4z\" />\n </g>\n </svg>\n </button>\n </div>\n }\n <app-call-history\n [tenantId]=\"tenantId\"\n [agentId]=\"loginForm?.value?.ipoExtensionNo || userId\"\n (makeCallEv)=\"onHistoryMakeCall($event)\"\n ></app-call-history>\n } @else if (activeTab === 'contacts') {\n @if (!hideTabs) {\n <div class=\"page-heading\">\n <span>Contacts</span>\n <button type=\"button\" class=\"settings-btn\" (click)=\"selectTab('settings')\">\n <svg width=\"18px\" viewBox=\"-0.03 0 16.079 16.079\" aria-hidden=\"true\" focusable=\"false\">\n <g>\n <path fill=\"currentColor\"\n d=\"M8.182 1.083a6.99 6.99 0 0 0-6.248 3.493c-1.929 3.342-.776 7.629 2.57 9.562 3.346 1.934 7.634.792 9.562-2.55 1.929-3.343.776-7.634-2.57-9.567a6.98 6.98 0 0 0-3.314-.938zM8 2.08a6 6 0 0 1 6 6 6 6 0 0 1-6 6 6 6 0 0 1-6-6 6 6 0 0 1 6-6z\" />\n <path fill=\"currentColor\"\n d=\"M9.322 0L6.69.393v1.354a6.49 6.477 43.146 0 1 2.632.005V0zM3.937 1.19L1.93 2.897l.988 1.177a6.49 6.477 43.146 0 1 2.017-1.69zm8.128.013l-.993 1.184a6.49 6.477 43.146 0 1 .17.09 6.49 6.477 43.146 0 1 1.845 1.603l1.006-1.197zM.455 5.42l-.44 2.596 1.515.267a6.49 6.477 43.146 0 1 .455-2.593zm15.086.003l-1.523.269a6.49 6.477 43.146 0 1 .464 2.59l1.533-.27zM1.858 10.118l-1.351.78 1.33 2.271 1.339-.772a6.49 6.477 43.146 0 1-1.317-2.28zm12.301.003a6.49 6.477 43.146 0 1-.534 1.215 6.49 6.477 43.146 0 1-.774 1.069l1.338.773 1.302-2.288zm-9.557 3.471l-.534 1.47 2.48.884.525-1.446a6.49 6.477 43.146 0 1-2.303-.8 6.49 6.477 43.146 0 1-.168-.108zm6.814.016a6.49 6.477 43.146 0 1-2.475.897l.53 1.457 2.468-.917z\" />\n <path fill=\"currentColor\"\n d=\"M7.648 3.093a4.989 4.989 0 0 0-3.982 2.483 5.013 5.013 0 0 0 1.836 6.834 5.002 5.002 0 0 0 6.83-1.827 5.01 5.01 0 0 0-1.836-6.832 4.976 4.976 0 0 0-2.848-.658zM8 4.08a4 4 0 0 1 4 4 4 4 0 0 1-4 4 4 4 0 0 1-4-4 4 4 0 0 1 4-4z\" />\n </g>\n </svg>\n </button>\n </div>\n }\n <app-contacts [tenantId]=\"tenantId\" (makeCallEv)=\"onContactsMakeCall($event)\"></app-contacts>\n } @else if (activeTab === 'settings') {\n @if (!hideTabs) {\n <div class=\"page-heading\">\n <span>Settings</span>\n <button type=\"button\" class=\"settings-btn is-active\" disabled>\n <svg width=\"18px\" viewBox=\"-0.03 0 16.079 16.079\" aria-hidden=\"true\" focusable=\"false\">\n <g>\n <path fill=\"currentColor\"\n d=\"M8.182 1.083a6.99 6.99 0 0 0-6.248 3.493c-1.929 3.342-.776 7.629 2.57 9.562 3.346 1.934 7.634.792 9.562-2.55 1.929-3.343.776-7.634-2.57-9.567a6.98 6.98 0 0 0-3.314-.938zM8 2.08a6 6 0 0 1 6 6 6 6 0 0 1-6 6 6 6 0 0 1-6-6 6 6 0 0 1 6-6z\" />\n <path fill=\"currentColor\"\n d=\"M9.322 0L6.69.393v1.354a6.49 6.477 43.146 0 1 2.632.005V0zM3.937 1.19L1.93 2.897l.988 1.177a6.49 6.477 43.146 0 1 2.017-1.69zm8.128.013l-.993 1.184a6.49 6.477 43.146 0 1 .17.09 6.49 6.477 43.146 0 1 1.845 1.603l1.006-1.197zM.455 5.42l-.44 2.596 1.515.267a6.49 6.477 43.146 0 1 .455-2.593zm15.086.003l-1.523.269a6.49 6.477 43.146 0 1 .464 2.59l1.533-.27zM1.858 10.118l-1.351.78 1.33 2.271 1.339-.772a6.49 6.477 43.146 0 1-1.317-2.28zm12.301.003a6.49 6.477 43.146 0 1-.534 1.215 6.49 6.477 43.146 0 1-.774 1.069l1.338.773 1.302-2.288zm-9.557 3.471l-.534 1.47 2.48.884.525-1.446a6.49 6.477 43.146 0 1-2.303-.8 6.49 6.477 43.146 0 1-.168-.108zm6.814.016a6.49 6.477 43.146 0 1-2.475.897l.53 1.457 2.468-.917z\" />\n <path fill=\"currentColor\"\n d=\"M7.648 3.093a4.989 4.989 0 0 0-3.982 2.483 5.013 5.013 0 0 0 1.836 6.834 5.002 5.002 0 0 0 6.83-1.827 5.01 5.01 0 0 0-1.836-6.832 4.976 4.976 0 0 0-2.848-.658zM8 4.08a4 4 0 0 1 4 4 4 4 0 0 1-4 4 4 4 0 0 1-4-4 4 4 0 0 1 4-4z\" />\n </g>\n </svg>\n </button>\n </div>\n }\n <app-settings\n [extensionId]=\"loginForm?.value?.ipoExtensionNo || userId\"\n [darkMode]=\"darkModeEnabled\"\n (darkModeChange)=\"onThemeToggle($event)\"\n (change)=\"onDeviceChange($event)\"\n (logout)=\"onLogout()\"\n ></app-settings>\n } @else {\n @if (!hideTabs) {\n <div class=\"page-heading\">\n <span>Keypad</span>\n <button type=\"button\" class=\"settings-btn\" (click)=\"selectTab('settings')\">\n <svg width=\"18px\" viewBox=\"-0.03 0 16.079 16.079\" aria-hidden=\"true\" focusable=\"false\">\n <g>\n <path fill=\"currentColor\"\n d=\"M8.182 1.083a6.99 6.99 0 0 0-6.248 3.493c-1.929 3.342-.776 7.629 2.57 9.562 3.346 1.934 7.634.792 9.562-2.55 1.929-3.343.776-7.634-2.57-9.567a6.98 6.98 0 0 0-3.314-.938zM8 2.08a6 6 0 0 1 6 6 6 6 0 0 1-6 6 6 6 0 0 1-6-6 6 6 0 0 1 6-6z\" />\n <path fill=\"currentColor\"\n d=\"M9.322 0L6.69.393v1.354a6.49 6.477 43.146 0 1 2.632.005V0zM3.937 1.19L1.93 2.897l.988 1.177a6.49 6.477 43.146 0 1 2.017-1.69zm8.128.013l-.993 1.184a6.49 6.477 43.146 0 1 .17.09 6.49 6.477 43.146 0 1 1.845 1.603l1.006-1.197zM.455 5.42l-.44 2.596 1.515.267a6.49 6.477 43.146 0 1 .455-2.593zm15.086.003l-1.523.269a6.49 6.477 43.146 0 1 .464 2.59l1.533-.27zM1.858 10.118l-1.351.78 1.33 2.271 1.339-.772a6.49 6.477 43.146 0 1-1.317-2.28zm12.301.003a6.49 6.477 43.146 0 1-.534 1.215 6.49 6.477 43.146 0 1-.774 1.069l1.338.773 1.302-2.288zm-9.557 3.471l-.534 1.47 2.48.884.525-1.446a6.49 6.477 43.146 0 1-2.303-.8 6.49 6.477 43.146 0 1-.168-.108zm6.814.016a6.49 6.477 43.146 0 1-2.475.897l.53 1.457 2.468-.917z\" />\n <path fill=\"currentColor\"\n d=\"M7.648 3.093a4.989 4.989 0 0 0-3.982 2.483 5.013 5.013 0 0 0 1.836 6.834 5.002 5.002 0 0 0 6.83-1.827 5.01 5.01 0 0 0-1.836-6.832 4.976 4.976 0 0 0-2.848-.658zM8 4.08a4 4 0 0 1 4 4 4 4 0 0 1-4 4 4 4 0 0 1-4-4 4 4 0 0 1 4-4z\" />\n </g>\n </svg>\n </button>\n </div>\n }\n <app-phone\n [tenantId]=\"tenantId\"\n [agentId]=\"loginForm?.value?.ipoExtensionNo || userId\"\n [activeCallNumber]=\"activeCallNumber\"\n [incomingCallName]=\"incomingCallName\"\n [incomingNameResolved]=\"incomingNameResolved\"\n [activeCallName]=\"activeCallName\"\n [serverIp]=\"avayaIPOServerIP\"\n [serverPort]=\"avayaIPOServerPort\"\n [stunIp]=\"avayaIPOServerStunServerIP\"\n [stunPort]=\"avayaIPOServerStunServerPort\"\n [turnIp]=\"avayaIPOServerTurnServerIP\"\n [turnPort]=\"avayaIPOServerTurnServerPort\"\n [configurationMode]=\"configurationMode\"\n (makeCallEv)=\"onPhoneMakeCall($event)\"\n (endCallEv)=\"onPhoneEndCall()\"\n (callScreenChange)=\"onCallScreenChange($event)\"\n ></app-phone>\n }\n </div>\n </div>\n\n @if (showLoginLoader) {\n <div class=\"global-loader\">\n <div class=\"spinner\"></div>\n <div class=\"loader-text\">Connecting to phone service...</div>\n </div>\n }\n\n @if (!hideTabs) {\n <nav class=\"tabs\">\n <button type=\"button\" class=\"tab-btn\" [class.active]=\"activeTab === 'history'\" (click)=\"selectTab('history')\">\n <span class=\"tab-icon\">\n <svg width=\"19px\" viewBox=\"0 0 512 512\" aria-hidden=\"true\" focusable=\"false\">\n <path fill=\"currentColor\"\n d=\"M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z\" />\n </svg>\n </span>\n <span class=\"tab-text\">History</span>\n </button>\n <button type=\"button\" class=\"tab-btn\" [class.active]=\"activeTab === 'contacts'\" (click)=\"selectTab('contacts')\">\n <span class=\"tab-icon\">\n <svg width=\"18px\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path fill=\"currentColor\"\n d=\"M12 12a4 4 0 1 0-4-4 4 4 0 0 0 4 4zm0 2c-4.4 0-8 2.2-8 5v2h16v-2c0-2.8-3.6-5-8-5z\" />\n </svg>\n </span>\n <span class=\"tab-text\">Contacts</span>\n </button>\n <button type=\"button\" class=\"tab-btn\" [class.active]=\"activeTab === 'keypad'\" (click)=\"selectTab('keypad')\">\n <span class=\"tab-icon\">\n <svg width=\"20px\" viewBox=\"0 0 512 512\" aria-hidden=\"true\" focusable=\"false\">\n <path fill=\"currentColor\" d=\"M256,400a48,48,0,1,0,48,48,48,48,0,0,0-48-48Z\"></path>\n <path fill=\"currentColor\" d=\"M256,272a48,48,0,1,0,48,48,48,48,0,0,0-48-48Z\"></path>\n <path fill=\"currentColor\" d=\"M256,144a48,48,0,1,0,48,48,48,48,0,0,0-48-48Z\"></path>\n <path fill=\"currentColor\" d=\"M256,16a48,48,0,1,0,48,48,48,48,0,0,0-48-48Z\"></path>\n <path fill=\"currentColor\" d=\"M384,272a48,48,0,1,0,48,48,48,48,0,0,0-48-48Z\"></path>\n <path fill=\"currentColor\" d=\"M384,144a48,48,0,1,0,48,48,48,48,0,0,0-48-48Z\"></path>\n <path fill=\"currentColor\" d=\"M384,16a48,48,0,1,0,48,48,48,48,0,0,0-48-48Z\"></path>\n <path fill=\"currentColor\" d=\"M128,272a48,48,0,1,0,48,48,48,48,0,0,0-48-48Z\"></path>\n <path fill=\"currentColor\" d=\"M128,144a48,48,0,1,0,48,48,48,48,0,0,0-48-48Z\"></path>\n <path fill=\"currentColor\" d=\"M128,16a48,48,0,1,0,48,48,48,48,0,0,0-48-48Z\"></path>\n </svg>\n </span>\n <span class=\"tab-text\">Keypad</span>\n </button>\n </nav>\n }\n}\n}\n", styles: [":host{display:flex;flex-direction:column;width:100%;max-width:100%;margin:0;font-family:Open Sans,Helvetica Neue,Arial,sans-serif;min-height:100%;height:100%;background:var(--sd-surface);color:var(--sd-text);--sd-tabs-height: 60px;--sd-surface: #ffffff;--sd-surface-muted: #f7f7f7;--sd-text: #1f1f1f;--sd-text-muted: #666666;--sd-border: #e5e5e5;--sd-card: #ffffff;--sd-avatar: #f0f0f0;--sd-input: #ffffff;--sd-input-border: #dddddd}:host.dark-mode{--sd-surface: #0f1115;--sd-surface-muted: #151a22;--sd-text: #f2f4f8;--sd-text-muted: #aab0bb;--sd-border: #2a2f3a;--sd-card: #161b24;--sd-avatar: #222833;--sd-input: #1c222c;--sd-input-border: #2a2f3a}.container_connection_status_overlay{width:100%;position:relative;background-color:#6666661a;padding:10px;box-sizing:border-box}.container_connection_status{width:100%;background:#fff;padding:8px 10px;border-radius:8px;font-size:13px;font-weight:600;color:#666;display:flex;gap:8px;align-items:center;box-shadow:0 4px 10px #00000014}.container_connection_status .fa-circle-dot{color:#f66060}.simple-placeholder{padding:20px;text-align:center;color:#444;font-weight:600}.auth-error-screen,.auth-loading-screen{min-height:100%;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(circle at top,#fff,#f2f4f7 65%,#e9edf3)}.auth-loading-card{width:min(320px,100%);padding:24px;border-radius:16px;background:#fff;border:1px solid #e5e7eb;box-shadow:0 16px 40px #0f172a1f;display:flex;flex-direction:column;gap:10px;text-align:center;align-items:center}.auth-loading-title{font-size:16px;font-weight:800;color:#111827}.auth-loading-message{font-size:12px;color:#6b7280}.auth-error-card{width:min(360px,100%);padding:24px;border-radius:16px;background:#fff;border:1px solid #e5e7eb;box-shadow:0 16px 40px #0f172a1f;display:flex;flex-direction:column;gap:10px;text-align:center}.auth-error-icon{width:56px;height:56px;margin:0 auto 4px;display:inline-flex;align-items:center;justify-content:center;border-radius:14px;background:#111827;color:#fff}.auth-error-icon svg{width:28px;height:28px}.auth-error-title{font-size:18px;font-weight:800;color:#111827}.auth-error-message{font-size:13px;color:#374151}.auth-error-hint{font-size:12px;color:#6b7280}.media-elements{display:none}.widget-body{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;position:relative;height:100%;padding-bottom:0;overflow-y:auto;-webkit-overflow-scrolling:touch}.logout-btn{border:none;background:#e3000f;color:#fff;padding:8px 12px;border-radius:6px;cursor:pointer;font-weight:600}.logout-btn:hover{background:#c0000d}.widget-content{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:1rem;padding-bottom:0;height:100%}.page-heading{display:flex;align-items:center;justify-content:space-between;font-size:25px;font-weight:800;color:#1f1f1f;padding:15px;z-index:5;background:var(--sd-surface)}.settings-btn{width:34px;height:34px;border:none;background:transparent;color:#4a4a4a;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.settings-btn.is-active{color:#e3000f;border-color:#f0c4c8;background:#fff5f6}.settings-btn:disabled{cursor:default;opacity:.75}.tabs{position:sticky;bottom:0;left:0;right:0;display:flex;gap:6px;padding:8px 12px;background:#f7f7f7;border-top:1px solid #e0e0e0;box-sizing:border-box;z-index:10;height:var(--sd-tabs-height)}.tab-btn{flex:1 1 0;height:44px;border:none;background:transparent;font-weight:600;color:#666;border-radius:8px;cursor:pointer;transition:background .12s ease,color .12s ease;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:12px;box-shadow:none}.tab-btn.active{background:transparent;color:#e3000f;box-shadow:none}.tab-icon{display:flex;align-items:center;justify-content:center;font-size:16px}.tab-btn.active .tab-icon{color:#e3000f}.global-loader{position:absolute;inset:0;background:#ffffffd9;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;z-index:1000;color:#333;font-weight:700}.spinner{width:48px;height:48px;border:4px solid #f0f0f0;border-top-color:#e3000f;border-radius:50%;animation:spin .9s linear infinite}.loader-text{font-size:14px}@keyframes spin{to{transform:rotate(360deg)}}:host ::ng-deep .widget-body,:host ::ng-deep .widget-content{background:var(--sd-surface);color:var(--sd-text)}:host ::ng-deep .page-heading{color:var(--sd-text)}:host ::ng-deep .settings-btn{color:var(--sd-text)}:host ::ng-deep .tabs{background:var(--sd-surface-muted);border-top-color:var(--sd-border)}:host ::ng-deep .tab-btn{color:var(--sd-text-muted)}:host ::ng-deep .tab-btn.active{color:#e3000f;background:transparent}:host ::ng-deep .tab-btn.active .tab-icon{color:#e3000f}:host ::ng-deep .history_item,:host ::ng-deep .contact-card{border-bottom-color:var(--sd-border)}:host ::ng-deep .history_avatar,:host ::ng-deep .skeleton_avatar,:host ::ng-deep .contact-avatar{background:var(--sd-avatar);color:var(--sd-text)}:host ::ng-deep .history_name,:host ::ng-deep .contact-name{color:var(--sd-text)}:host ::ng-deep .history_time,:host ::ng-deep .history_meta,:host ::ng-deep .history_group_label,:host ::ng-deep .contact-phone,:host ::ng-deep .contacts-state{color:var(--sd-text-muted)}:host.dark-mode ::ng-deep .history_group_label{background:#151a22eb}:host.dark-mode ::ng-deep .history_item:hover{background:#1a202b}:host.dark-mode ::ng-deep .contacts-search input{background:var(--sd-input);border-color:var(--sd-input-border);color:var(--sd-text)}:host.dark-mode ::ng-deep .contacts-search input::placeholder{color:var(--sd-text-muted)}:host.dark-mode ::ng-deep .contact-call{background:#1e2b22;color:#79d48a}:host.dark-mode ::ng-deep .contact-back{background:#141922;border-color:var(--sd-border);color:var(--sd-text)}:host.dark-mode ::ng-deep .contact-call-btn{background:#1f2530;border-color:#1f2530;color:#79d48a}:host.dark-mode ::ng-deep .global-loader{background:#0f1115e6;color:var(--sd-text)}:host.dark-mode ::ng-deep .spinner{border-color:#2a2f3a;border-top-color:#e3000f}\n"] }]
5000
+ args: [{ selector: 'snugdesk-avaya-ipo-widget', standalone: false, template: "<div class=\"avaya-ipo-media-elements\">\n <audio id=\"rmtAudio\" autoplay></audio>\n <audio id=\"lclAudio\" autoplay></audio>\n <video id=\"rmtVideo\" autoplay playsinline></video>\n <video id=\"lclVideo\" autoplay playsinline muted></video>\n</div>\n\n@if (authLoading) {\n <div class=\"avaya-ipo-auth-loading-screen\">\n <div class=\"avaya-ipo-auth-loading-card\">\n <div class=\"avaya-ipo-spinner\" aria-hidden=\"true\"></div>\n <div class=\"avaya-ipo-auth-loading-title\">Checking authentication</div>\n <div class=\"avaya-ipo-auth-loading-message\">Please wait...</div>\n </div>\n </div>\n} @else if (authErrorMessage) {\n <div class=\"avaya-ipo-auth-error-screen\">\n <div class=\"avaya-ipo-auth-error-card\">\n <div class=\"avaya-ipo-auth-error-icon\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 24 24\" focusable=\"false\">\n <path\n fill=\"currentColor\"\n d=\"M12 2a7 7 0 0 1 7 7v3a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-6a2 2 0 0 1 2-2V9a7 7 0 0 1 7-7zm5 10V9a5 5 0 0 0-10 0v3h10zm-5 3a2 2 0 0 0-1 3.732V20h2v-1.268A2 2 0 0 0 12 15z\"\n />\n </svg>\n </div>\n <div class=\"avaya-ipo-auth-error-title\">Authentication Required</div>\n <div class=\"avaya-ipo-auth-error-message\">{{ authErrorMessage }}</div>\n </div>\n </div>\n} @else {\n@if (isReconnectingInProgress || isFailoverInProgress || isFailbackInProgress) {\n <div class=\"avaya-ipo-container_connection_status_overlay\">\n <div class=\"avaya-ipo-container_connection_status\">\n <i class=\"fa-solid fa-circle-dot\"></i>\n @if (isReconnectingInProgress) { <span>Reconnecting to the server...</span> }\n @if (isFailoverInProgress) { <span>Failover in progress...</span> }\n @if (isFailbackInProgress) { <span>Failback in progress...</span> }\n </div>\n </div>\n}\n\n@if (showLoginForm) {\n <app-avaya-ipo-login\n [loginForm]=\"loginForm\"\n [showLoginLoader]=\"showLoginLoader\"\n [hasAvayaSocketError]=\"hasAvayaSocketError\"\n [hasAvayaLoginError]=\"hasAvayaLoginError\"\n [hasAvayaLoginFailedGeneral]=\"hasAvayaLoginFailedGeneral\"\n [hasAvayaLoginConflictError]=\"hasAvayaLoginConflictError\"\n [hasAvayaDeviceError]=\"hasAvayaDeviceError\"\n (login)=\"onLogin()\"\n ></app-avaya-ipo-login>\n} @else {\n <div class=\"avaya-ipo-widget-body\">\n <div class=\"avaya-ipo-widget-content\">\n @if (activeTab === 'history') {\n @if (!hideTabs) {\n <div class=\"avaya-ipo-page-heading avaya-ipo-heading-right\">\n <span>History</span>\n <button type=\"button\" class=\"avaya-ipo-settings-btn\" (click)=\"selectTab('settings')\">\n <svg width=\"18px\" viewBox=\"-0.03 0 16.079 16.079\" aria-hidden=\"true\" focusable=\"false\">\n <g>\n <path fill=\"currentColor\"\n d=\"M8.182 1.083a6.99 6.99 0 0 0-6.248 3.493c-1.929 3.342-.776 7.629 2.57 9.562 3.346 1.934 7.634.792 9.562-2.55 1.929-3.343.776-7.634-2.57-9.567a6.98 6.98 0 0 0-3.314-.938zM8 2.08a6 6 0 0 1 6 6 6 6 0 0 1-6 6 6 6 0 0 1-6-6 6 6 0 0 1 6-6z\" />\n <path fill=\"currentColor\"\n d=\"M9.322 0L6.69.393v1.354a6.49 6.477 43.146 0 1 2.632.005V0zM3.937 1.19L1.93 2.897l.988 1.177a6.49 6.477 43.146 0 1 2.017-1.69zm8.128.013l-.993 1.184a6.49 6.477 43.146 0 1 .17.09 6.49 6.477 43.146 0 1 1.845 1.603l1.006-1.197zM.455 5.42l-.44 2.596 1.515.267a6.49 6.477 43.146 0 1 .455-2.593zm15.086.003l-1.523.269a6.49 6.477 43.146 0 1 .464 2.59l1.533-.27zM1.858 10.118l-1.351.78 1.33 2.271 1.339-.772a6.49 6.477 43.146 0 1-1.317-2.28zm12.301.003a6.49 6.477 43.146 0 1-.534 1.215 6.49 6.477 43.146 0 1-.774 1.069l1.338.773 1.302-2.288zm-9.557 3.471l-.534 1.47 2.48.884.525-1.446a6.49 6.477 43.146 0 1-2.303-.8 6.49 6.477 43.146 0 1-.168-.108zm6.814.016a6.49 6.477 43.146 0 1-2.475.897l.53 1.457 2.468-.917z\" />\n <path fill=\"currentColor\"\n d=\"M7.648 3.093a4.989 4.989 0 0 0-3.982 2.483 5.013 5.013 0 0 0 1.836 6.834 5.002 5.002 0 0 0 6.83-1.827 5.01 5.01 0 0 0-1.836-6.832 4.976 4.976 0 0 0-2.848-.658zM8 4.08a4 4 0 0 1 4 4 4 4 0 0 1-4 4 4 4 0 0 1-4-4 4 4 0 0 1 4-4z\" />\n </g>\n </svg>\n </button>\n </div>\n }\n <app-call-history\n [tenantId]=\"tenantId\"\n [agentId]=\"loginForm?.value?.ipoExtensionNo || userId\"\n (makeCallEv)=\"onHistoryMakeCall($event)\"\n ></app-call-history>\n } @else if (activeTab === 'contacts') {\n @if (!hideTabs) {\n <div class=\"avaya-ipo-page-heading\">\n <span>Contacts</span>\n <button type=\"button\" class=\"avaya-ipo-settings-btn\" (click)=\"selectTab('settings')\">\n <svg width=\"18px\" viewBox=\"-0.03 0 16.079 16.079\" aria-hidden=\"true\" focusable=\"false\">\n <g>\n <path fill=\"currentColor\"\n d=\"M8.182 1.083a6.99 6.99 0 0 0-6.248 3.493c-1.929 3.342-.776 7.629 2.57 9.562 3.346 1.934 7.634.792 9.562-2.55 1.929-3.343.776-7.634-2.57-9.567a6.98 6.98 0 0 0-3.314-.938zM8 2.08a6 6 0 0 1 6 6 6 6 0 0 1-6 6 6 6 0 0 1-6-6 6 6 0 0 1 6-6z\" />\n <path fill=\"currentColor\"\n d=\"M9.322 0L6.69.393v1.354a6.49 6.477 43.146 0 1 2.632.005V0zM3.937 1.19L1.93 2.897l.988 1.177a6.49 6.477 43.146 0 1 2.017-1.69zm8.128.013l-.993 1.184a6.49 6.477 43.146 0 1 .17.09 6.49 6.477 43.146 0 1 1.845 1.603l1.006-1.197zM.455 5.42l-.44 2.596 1.515.267a6.49 6.477 43.146 0 1 .455-2.593zm15.086.003l-1.523.269a6.49 6.477 43.146 0 1 .464 2.59l1.533-.27zM1.858 10.118l-1.351.78 1.33 2.271 1.339-.772a6.49 6.477 43.146 0 1-1.317-2.28zm12.301.003a6.49 6.477 43.146 0 1-.534 1.215 6.49 6.477 43.146 0 1-.774 1.069l1.338.773 1.302-2.288zm-9.557 3.471l-.534 1.47 2.48.884.525-1.446a6.49 6.477 43.146 0 1-2.303-.8 6.49 6.477 43.146 0 1-.168-.108zm6.814.016a6.49 6.477 43.146 0 1-2.475.897l.53 1.457 2.468-.917z\" />\n <path fill=\"currentColor\"\n d=\"M7.648 3.093a4.989 4.989 0 0 0-3.982 2.483 5.013 5.013 0 0 0 1.836 6.834 5.002 5.002 0 0 0 6.83-1.827 5.01 5.01 0 0 0-1.836-6.832 4.976 4.976 0 0 0-2.848-.658zM8 4.08a4 4 0 0 1 4 4 4 4 0 0 1-4 4 4 4 0 0 1-4-4 4 4 0 0 1 4-4z\" />\n </g>\n </svg>\n </button>\n </div>\n }\n <app-contacts [tenantId]=\"tenantId\" (makeCallEv)=\"onContactsMakeCall($event)\"></app-contacts>\n } @else if (activeTab === 'settings') {\n @if (!hideTabs) {\n <div class=\"avaya-ipo-page-heading\">\n <span class=\"avaya-ipo-heading-with-back\">\n <button type=\"button\" class=\"avaya-ipo-settings-btn avaya-ipo-back-btn\" (click)=\"closeSettings()\" aria-label=\"Go back\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\"\n stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\">\n <path d=\"M15 18l-6-6 6-6\" />\n </svg>\n </button>\n <span>Settings</span>\n </span>\n </div>\n }\n <app-settings\n [extensionId]=\"loginForm?.value?.ipoExtensionNo || userId\"\n [darkMode]=\"darkModeEnabled\"\n (darkModeChange)=\"onThemeToggle($event)\"\n (change)=\"onDeviceChange($event)\"\n (logout)=\"onLogout()\"\n ></app-settings>\n } @else {\n @if (!hideTabs) {\n <button type=\"button\" class=\"avaya-ipo-settings-btn avaya-ipo-settings-btn-floating\" (click)=\"selectTab('settings')\" aria-label=\"Settings\">\n <svg width=\"18px\" viewBox=\"-0.03 0 16.079 16.079\" aria-hidden=\"true\" focusable=\"false\">\n <g>\n <path fill=\"currentColor\"\n d=\"M8.182 1.083a6.99 6.99 0 0 0-6.248 3.493c-1.929 3.342-.776 7.629 2.57 9.562 3.346 1.934 7.634.792 9.562-2.55 1.929-3.343.776-7.634-2.57-9.567a6.98 6.98 0 0 0-3.314-.938zM8 2.08a6 6 0 0 1 6 6 6 6 0 0 1-6 6 6 6 0 0 1-6-6 6 6 0 0 1 6-6z\" />\n <path fill=\"currentColor\"\n d=\"M9.322 0L6.69.393v1.354a6.49 6.477 43.146 0 1 2.632.005V0zM3.937 1.19L1.93 2.897l.988 1.177a6.49 6.477 43.146 0 1 2.017-1.69zm8.128.013l-.993 1.184a6.49 6.477 43.146 0 1 .17.09 6.49 6.477 43.146 0 1 1.845 1.603l1.006-1.197zM.455 5.42l-.44 2.596 1.515.267a6.49 6.477 43.146 0 1 .455-2.593zm15.086.003l-1.523.269a6.49 6.477 43.146 0 1 .464 2.59l1.533-.27zM1.858 10.118l-1.351.78 1.33 2.271 1.339-.772a6.49 6.477 43.146 0 1-1.317-2.28zm12.301.003a6.49 6.477 43.146 0 1-.534 1.215 6.49 6.477 43.146 0 1-.774 1.069l1.338.773 1.302-2.288zm-9.557 3.471l-.534 1.47 2.48.884.525-1.446a6.49 6.477 43.146 0 1-2.303-.8 6.49 6.477 43.146 0 1-.168-.108zm6.814.016a6.49 6.477 43.146 0 1-2.475.897l.53 1.457 2.468-.917z\" />\n <path fill=\"currentColor\"\n d=\"M7.648 3.093a4.989 4.989 0 0 0-3.982 2.483 5.013 5.013 0 0 0 1.836 6.834 5.002 5.002 0 0 0 6.83-1.827 5.01 5.01 0 0 0-1.836-6.832 4.976 4.976 0 0 0-2.848-.658zM8 4.08a4 4 0 0 1 4 4 4 4 0 0 1-4 4 4 4 0 0 1-4-4 4 4 0 0 1 4-4z\" />\n </g>\n </svg>\n </button>\n }\n <app-phone\n [tenantId]=\"tenantId\"\n [agentId]=\"loginForm?.value?.ipoExtensionNo || userId\"\n [activeCallNumber]=\"activeCallNumber\"\n [incomingCallName]=\"incomingCallName\"\n [incomingNameResolved]=\"incomingNameResolved\"\n [activeCallName]=\"activeCallName\"\n [serverIp]=\"avayaIPOServerIP\"\n [serverPort]=\"avayaIPOServerPort\"\n [stunIp]=\"avayaIPOServerStunServerIP\"\n [stunPort]=\"avayaIPOServerStunServerPort\"\n [turnIp]=\"avayaIPOServerTurnServerIP\"\n [turnPort]=\"avayaIPOServerTurnServerPort\"\n [configurationMode]=\"configurationMode\"\n (makeCallEv)=\"onPhoneMakeCall($event)\"\n (endCallEv)=\"onPhoneEndCall()\"\n (callScreenChange)=\"onCallScreenChange($event)\"\n ></app-phone>\n }\n </div>\n </div>\n\n @if (showLoginLoader) {\n <div class=\"avaya-ipo-global-loader\">\n <div class=\"avaya-ipo-spinner\"></div>\n <div class=\"avaya-ipo-loader-text\">Connecting to phone service...</div>\n </div>\n }\n\n @if (!hideTabs && showTabBar) {\n <nav class=\"avaya-ipo-tabs\">\n @if (showHistory) {\n <button type=\"button\" class=\"avaya-ipo-tab-btn\" [class.avaya-ipo-active]=\"activeTab === 'history'\" (click)=\"selectTab('history')\">\n <span class=\"avaya-ipo-tab-icon\">\n <svg width=\"19px\" viewBox=\"0 0 512 512\" aria-hidden=\"true\" focusable=\"false\">\n <path fill=\"currentColor\"\n d=\"M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z\" />\n </svg>\n </span>\n <span class=\"avaya-ipo-tab-text\">History</span>\n </button>\n }\n @if (showContacts) {\n <button type=\"button\" class=\"avaya-ipo-tab-btn\" [class.avaya-ipo-active]=\"activeTab === 'contacts'\" (click)=\"selectTab('contacts')\">\n <span class=\"avaya-ipo-tab-icon\">\n <svg width=\"18px\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path fill=\"currentColor\"\n d=\"M12 12a4 4 0 1 0-4-4 4 4 0 0 0 4 4zm0 2c-4.4 0-8 2.2-8 5v2h16v-2c0-2.8-3.6-5-8-5z\" />\n </svg>\n </span>\n <span class=\"avaya-ipo-tab-text\">Contacts</span>\n </button>\n }\n <button type=\"button\" class=\"avaya-ipo-tab-btn\" [class.avaya-ipo-active]=\"activeTab === 'keypad'\" (click)=\"selectTab('keypad')\">\n <span class=\"avaya-ipo-tab-icon\">\n <svg width=\"20px\" viewBox=\"0 0 512 512\" aria-hidden=\"true\" focusable=\"false\">\n <path fill=\"currentColor\" d=\"M256,400a48,48,0,1,0,48,48,48,48,0,0,0-48-48Z\"></path>\n <path fill=\"currentColor\" d=\"M256,272a48,48,0,1,0,48,48,48,48,0,0,0-48-48Z\"></path>\n <path fill=\"currentColor\" d=\"M256,144a48,48,0,1,0,48,48,48,48,0,0,0-48-48Z\"></path>\n <path fill=\"currentColor\" d=\"M256,16a48,48,0,1,0,48,48,48,48,0,0,0-48-48Z\"></path>\n <path fill=\"currentColor\" d=\"M384,272a48,48,0,1,0,48,48,48,48,0,0,0-48-48Z\"></path>\n <path fill=\"currentColor\" d=\"M384,144a48,48,0,1,0,48,48,48,48,0,0,0-48-48Z\"></path>\n <path fill=\"currentColor\" d=\"M384,16a48,48,0,1,0,48,48,48,48,0,0,0-48-48Z\"></path>\n <path fill=\"currentColor\" d=\"M128,272a48,48,0,1,0,48,48,48,48,0,0,0-48-48Z\"></path>\n <path fill=\"currentColor\" d=\"M128,144a48,48,0,1,0,48,48,48,48,0,0,0-48-48Z\"></path>\n <path fill=\"currentColor\" d=\"M128,16a48,48,0,1,0,48,48,48,48,0,0,0-48-48Z\"></path>\n </svg>\n </span>\n <span class=\"avaya-ipo-tab-text\">Keypad</span>\n </button>\n </nav>\n }\n\n @if (activeTab !== 'keypad') {\n <div class=\"avaya-ipo-widget-version-footer\">v{{ widgetVersion }}</div>\n }\n}\n}\n", styles: [":host{display:flex;flex-direction:column;width:100%;max-width:100%;margin:0;font-family:Open Sans,Helvetica Neue,Arial,sans-serif;min-height:100%;height:100%;background:var(--sd-surface);color:var(--sd-text);box-sizing:border-box;--sd-tabs-height: 60px;--sd-radius-sm: 8px;--sd-radius: 10px;--sd-radius-lg: 14px;--sd-radius-pill: 999px;--sd-shadow-sm: 0 1px 2px rgba(16, 24, 40, .06);--sd-shadow-md: 0 6px 16px rgba(16, 24, 40, .1);--sd-shadow-lg: 0 16px 40px rgba(16, 24, 40, .14);--sd-accent: var(--app-color, #ff6633);--sd-accent-strong: var(--app-color-dark, #ff5805);--sd-accent-soft: #fff1ea;--sd-accent-contrast: #ffffff;--sd-call-accept: #1aa251;--sd-call-end: #e5484d;--sd-surface: var(--background-color, #ffffff);--sd-surface-muted: var(--background-color-dark, #f7f7f7);--sd-surface-sunken: var(--background-color-dark-light, #e8e8e8);--sd-text: var(--header-text-primary, #333333);--sd-text-muted: var(--header-text-secondary, #5f6368);--sd-text-subtle: var(--header-text-muted, #9ca3af);--sd-border: var(--dropdown-border, #e3e3e3);--sd-border-strong: var(--border-color, #c9c9c9);--sd-card: var(--background-color, #ffffff);--sd-avatar: #eceff3;--sd-input: var(--background-color, #ffffff);--sd-input-border: var(--border-color, #c9c9c9);--sd-focus-ring: 0 0 0 3px rgba(255, 102, 51, .22)}:host.avaya-ipo-dark-mode{--sd-accent: #ff7a4d;--sd-accent-strong: #ff6633;--sd-accent-soft: rgba(255, 122, 77, .14);--sd-accent-contrast: #1a1109;--sd-call-accept: #34c759;--sd-call-end: #ff5b5b;--sd-surface: #0f1115;--sd-surface-muted: #151a22;--sd-surface-sunken: #1c222c;--sd-text: #f2f4f8;--sd-text-muted: #aab0bb;--sd-text-subtle: #7e8794;--sd-border: #2a2f3a;--sd-border-strong: #353b47;--sd-card: #161b24;--sd-avatar: #222833;--sd-input: #1c222c;--sd-input-border: #2a2f3a;--sd-focus-ring: 0 0 0 3px rgba(255, 122, 77, .25)}:host.avaya-ipo-mode-popup{min-width:320px;height:100%}:host.avaya-ipo-mode-standalone{width:100%;max-width:460px;height:100dvh;min-height:100dvh;margin-inline:auto;border-inline:1px solid var(--sd-border);box-shadow:var(--sd-shadow-lg);overflow:hidden}@media (max-width: 768px){:host.avaya-ipo-mode-standalone{max-width:100%;border-inline:0;box-shadow:none}}.avaya-ipo-container_connection_status_overlay{width:100%;position:relative;background-color:#7f7f7f1a;padding:10px;box-sizing:border-box}.avaya-ipo-container_connection_status{width:100%;background:var(--sd-card);padding:8px 10px;border-radius:var(--sd-radius-sm);font-size:13px;font-weight:600;color:var(--sd-text-muted);display:flex;gap:8px;align-items:center;box-shadow:var(--sd-shadow-md)}.avaya-ipo-container_connection_status .fa-circle-dot{color:var(--sd-accent)}.avaya-ipo-simple-placeholder{padding:20px;text-align:center;color:var(--sd-text);font-weight:600}.avaya-ipo-auth-error-screen,.avaya-ipo-auth-loading-screen{min-height:100%;flex:1 1 auto;display:flex;align-items:center;justify-content:center;padding:24px;box-sizing:border-box;background:var(--sd-surface)}.avaya-ipo-auth-loading-card{width:min(320px,100%);padding:24px;border-radius:var(--sd-radius-lg);background:var(--sd-card);border:1px solid var(--sd-border);box-shadow:var(--sd-shadow-lg);display:flex;flex-direction:column;gap:10px;text-align:center;align-items:center}.avaya-ipo-auth-loading-title{font-size:16px;font-weight:800;color:var(--sd-text)}.avaya-ipo-auth-loading-message{font-size:12px;color:var(--sd-text-muted)}.avaya-ipo-auth-error-card{width:min(360px,100%);padding:24px;border-radius:var(--sd-radius-lg);background:var(--sd-card);border:1px solid var(--sd-border);box-shadow:var(--sd-shadow-lg);display:flex;flex-direction:column;gap:10px;text-align:center}.avaya-ipo-auth-error-icon{width:56px;height:56px;margin:0 auto 4px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--sd-radius-lg);background:var(--sd-accent);color:var(--sd-accent-contrast)}.avaya-ipo-auth-error-icon svg{width:28px;height:28px}.avaya-ipo-auth-error-title{font-size:18px;font-weight:800;color:var(--sd-text)}.avaya-ipo-auth-error-message{font-size:13px;color:var(--sd-text-muted)}.avaya-ipo-auth-error-hint{font-size:12px;color:var(--sd-text-subtle)}.avaya-ipo-media-elements{display:none}.avaya-ipo-widget-body{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;position:relative;height:100%;padding-bottom:0;overflow-y:auto;-webkit-overflow-scrolling:touch}.avaya-ipo-logout-btn{border:none;background:var(--sd-call-end);color:#fff;padding:8px 12px;border-radius:var(--sd-radius-sm);cursor:pointer;font-weight:600}.avaya-ipo-logout-btn:hover{filter:brightness(.94)}.avaya-ipo-widget-content{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:1rem;padding-bottom:0;height:100%}.avaya-ipo-page-heading{display:flex;align-items:center;justify-content:space-between;font-size:22px;font-weight:800;color:var(--sd-text);padding:15px;z-index:5;background:var(--sd-surface)}.avaya-ipo-settings-btn{width:34px;height:34px;border-radius:var(--sd-radius-sm);border:none;background:transparent;color:var(--sd-text-muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .12s ease,color .12s ease}.avaya-ipo-settings-btn:hover{background:var(--sd-surface-muted)}.avaya-ipo-settings-btn.avaya-ipo-is-active{color:var(--sd-accent);background:var(--sd-accent-soft)}.avaya-ipo-settings-btn:disabled{cursor:default;opacity:.75}.avaya-ipo-settings-btn-floating{position:absolute;top:8px;right:8px;z-index:6}.avaya-ipo-heading-with-back{display:inline-flex;align-items:center;gap:4px}.avaya-ipo-settings-btn.avaya-ipo-back-btn{color:var(--sd-text)}.avaya-ipo-tabs{position:sticky;bottom:0;left:0;right:0;display:flex;gap:6px;padding:8px 12px;background:var(--sd-surface-muted);border-top:1px solid var(--sd-border);box-sizing:border-box;z-index:10;height:var(--sd-tabs-height)}.avaya-ipo-tab-btn{flex:1 1 0;height:44px;border:none;background:transparent;font-weight:600;color:var(--sd-text-muted);border-radius:var(--sd-radius-sm);cursor:pointer;transition:background .12s ease,color .12s ease;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:12px;box-shadow:none}.avaya-ipo-tab-btn:hover{color:var(--sd-text)}.avaya-ipo-tab-btn.avaya-ipo-active{background:var(--sd-accent-soft);color:var(--sd-accent);box-shadow:none}.avaya-ipo-tab-icon{display:flex;align-items:center;justify-content:center;font-size:16px}.avaya-ipo-tab-btn.avaya-ipo-active .avaya-ipo-tab-icon{color:var(--sd-accent)}.avaya-ipo-global-loader{position:absolute;inset:0;background:color-mix(in srgb,var(--sd-surface) 85%,transparent);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;z-index:1000;color:var(--sd-text);font-weight:700}.avaya-ipo-spinner{width:48px;height:48px;border:4px solid var(--sd-surface-sunken);border-top-color:var(--sd-accent);border-radius:50%;animation:spin .9s linear infinite}.avaya-ipo-loader-text{font-size:14px}@keyframes spin{to{transform:rotate(360deg)}}:host ::ng-deep .avaya-ipo-widget-body,:host ::ng-deep .avaya-ipo-widget-content{background:var(--sd-surface);color:var(--sd-text)}:host ::ng-deep .avaya-ipo-page-heading{color:var(--sd-text)}:host ::ng-deep .avaya-ipo-settings-btn{color:var(--sd-text-muted)}:host ::ng-deep .avaya-ipo-tabs{background:var(--sd-surface-muted);border-top-color:var(--sd-border)}:host ::ng-deep .avaya-ipo-tab-btn{color:var(--sd-text-muted)}:host ::ng-deep .avaya-ipo-tab-btn.avaya-ipo-active{color:var(--sd-accent);background:var(--sd-accent-soft)}:host ::ng-deep .avaya-ipo-tab-btn.avaya-ipo-active .avaya-ipo-tab-icon{color:var(--sd-accent)}:host ::ng-deep .avaya-ipo-history_item,:host ::ng-deep .avaya-ipo-contact-card{border-bottom-color:var(--sd-border)}:host ::ng-deep .avaya-ipo-history_avatar,:host ::ng-deep .avaya-ipo-skeleton_avatar,:host ::ng-deep .avaya-ipo-contact-avatar{background:var(--sd-avatar);color:var(--sd-text)}:host ::ng-deep .avaya-ipo-history_name,:host ::ng-deep .avaya-ipo-contact-name{color:var(--sd-text)}:host ::ng-deep .avaya-ipo-history_time,:host ::ng-deep .avaya-ipo-history_meta,:host ::ng-deep .avaya-ipo-history_group_label,:host ::ng-deep .avaya-ipo-contact-phone,:host ::ng-deep .avaya-ipo-contacts-state{color:var(--sd-text-muted)}:host.avaya-ipo-dark-mode ::ng-deep .avaya-ipo-history_group_label{background:#151a22eb}:host.avaya-ipo-dark-mode ::ng-deep .avaya-ipo-history_item:hover{background:#1a202b}:host.avaya-ipo-dark-mode ::ng-deep .avaya-ipo-contacts-search input{background:var(--sd-input);border-color:var(--sd-input-border);color:var(--sd-text)}:host.avaya-ipo-dark-mode ::ng-deep .avaya-ipo-contacts-search input::placeholder{color:var(--sd-text-muted)}:host.avaya-ipo-dark-mode ::ng-deep .avaya-ipo-contact-call{background:#1e2b22;color:#79d48a}:host.avaya-ipo-dark-mode ::ng-deep .avaya-ipo-contact-back{background:#141922;border-color:var(--sd-border);color:var(--sd-text)}:host.avaya-ipo-dark-mode ::ng-deep .avaya-ipo-contact-call-btn{background:#1f2530;border-color:#1f2530;color:#79d48a}:host.avaya-ipo-dark-mode ::ng-deep .avaya-ipo-global-loader{background:#0f1115e6;color:var(--sd-text)}:host.avaya-ipo-dark-mode ::ng-deep .avaya-ipo-spinner{border-color:#2a2f3a;border-top-color:var(--sd-accent)}.avaya-ipo-widget-version-footer{flex:0 0 auto;padding:2px 8px 4px;text-align:center;font-size:10px;line-height:1.2;letter-spacing:.02em;color:var(--sd-text-muted);background:var(--sd-surface);border-top:1px solid var(--sd-border);-webkit-user-select:text;user-select:text}\n"] }]
4768
5001
  }], ctorParameters: () => [{ type: i1$2.FormBuilder }, { type: AvayaIPOService }, { type: i0.ChangeDetectorRef }, { type: CountryService }, { type: PhoneNumberLookupService }, { type: EntitiesSearchService }, { type: i1$1.SnugdeskAuthenticationService }], propDecorators: { hostDarkMode: [{
4769
5002
  type: HostBinding,
4770
- args: ['class.dark-mode']
5003
+ args: ['class.avaya-ipo-dark-mode']
5004
+ }], hostModeStandalone: [{
5005
+ type: HostBinding,
5006
+ args: ['class.avaya-ipo-mode-standalone']
5007
+ }], hostModePopup: [{
5008
+ type: HostBinding,
5009
+ args: ['class.avaya-ipo-mode-popup']
4771
5010
  }], isVisible: [{
4772
5011
  type: Input
5012
+ }], displayMode: [{
5013
+ type: Input
4773
5014
  }], configurationMode: [{
4774
5015
  type: Input
4775
5016
  }], avayaIPOServerIP: [{
@@ -4790,8 +5031,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImpor
4790
5031
  type: Input
4791
5032
  }], userId: [{
4792
5033
  type: Input
5034
+ }], extension: [{
5035
+ type: Input
5036
+ }], password: [{
5037
+ type: Input
5038
+ }], showHistory: [{
5039
+ type: Input
5040
+ }], showContacts: [{
5041
+ type: Input
4793
5042
  }], notificationEvent: [{
4794
5043
  type: Output
5044
+ }], incomingCall: [{
5045
+ type: Output
4795
5046
  }] } });
4796
5047
 
4797
5048
  class AvayaIPOWidgetModule {