@snugdesk/avaya-ipo-widget 0.0.0-watch
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.
Potentially problematic release.
This version of @snugdesk/avaya-ipo-widget might be problematic. Click here for more details.
- package/README.md +138 -0
- package/fesm2022/snugdesk-avaya-ipo-widget.mjs +2892 -0
- package/fesm2022/snugdesk-avaya-ipo-widget.mjs.map +1 -0
- package/index.d.ts +445 -0
- package/package.json +37 -0
- package/src/assets/css/intl-tel-input-dropdown.css +0 -0
- package/src/assets/images/bg-app_color_line.gif +0 -0
- package/src/assets/images/icons/sd-backspace.png +0 -0
- package/src/assets/images/icons/sd-call_failed.gif +0 -0
- package/src/assets/images/icons/sd-call_history_not_found.gif +0 -0
- package/src/assets/images/incomingCall_avatar.gif +0 -0
- package/src/assets/images/logo-avaya.png +0 -0
- package/src/assets/images/logo-avaya_small_color.svg +20 -0
- package/src/assets/images/logo-avaya_small_gray.svg +16 -0
- package/src/assets/sounds/ringback_tone.mp3 +0 -0
package/index.d.ts
ADDED
|
@@ -0,0 +1,445 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { NgZone, OnInit, AfterViewInit, OnDestroy, EventEmitter, ChangeDetectorRef } from '@angular/core';
|
|
3
|
+
import * as i6 from '@angular/forms';
|
|
4
|
+
import { FormGroup, FormBuilder } from '@angular/forms';
|
|
5
|
+
import { HttpClient } from '@angular/common/http';
|
|
6
|
+
import * as rxjs from 'rxjs';
|
|
7
|
+
import { BehaviorSubject, Subject, Subscription } from 'rxjs';
|
|
8
|
+
import { SnugdeskAuthenticationService, TenantService, UserService } from '@snugdesk/core';
|
|
9
|
+
import * as i9 from 'ngx-intl-tel-input';
|
|
10
|
+
import { CountryISO, SearchCountryField } from 'ngx-intl-tel-input';
|
|
11
|
+
import * as i5 from '@angular/common';
|
|
12
|
+
import * as i7 from '@angular/material/form-field';
|
|
13
|
+
import * as i8 from '@angular/material/input';
|
|
14
|
+
|
|
15
|
+
interface ActiveCall {
|
|
16
|
+
callId: string;
|
|
17
|
+
phoneNumber: string;
|
|
18
|
+
lookupPhoneNumber: any;
|
|
19
|
+
duration: number;
|
|
20
|
+
timer?: any;
|
|
21
|
+
isMuted: boolean;
|
|
22
|
+
isOnHold: boolean;
|
|
23
|
+
startTime: number;
|
|
24
|
+
slot?: '1' | '2' | '3';
|
|
25
|
+
}
|
|
26
|
+
interface CallMetadata {
|
|
27
|
+
tenantId: string;
|
|
28
|
+
agentId: string;
|
|
29
|
+
phoneNumber: string;
|
|
30
|
+
callId: string;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
interface RecordingSession {
|
|
34
|
+
audioContext: AudioContext;
|
|
35
|
+
recordingStream: MediaStreamAudioDestinationNode;
|
|
36
|
+
recorder?: MediaRecorder | null;
|
|
37
|
+
metadata: CallMetadata;
|
|
38
|
+
stopping: boolean;
|
|
39
|
+
chunkIndex: number;
|
|
40
|
+
chunkTimer?: number;
|
|
41
|
+
}
|
|
42
|
+
declare class RecordingManagerService {
|
|
43
|
+
private http;
|
|
44
|
+
private sessions;
|
|
45
|
+
private readonly MIME_TYPE_PREFERRED;
|
|
46
|
+
private readonly MIME_TYPE_FALLBACK;
|
|
47
|
+
private readonly CHUNK_DURATION_MS;
|
|
48
|
+
private readonly AUDIO_CONTEXT_CLOSE_DELAY_MS;
|
|
49
|
+
private readonly CALL_HISTORY_API_URL;
|
|
50
|
+
constructor(http: HttpClient);
|
|
51
|
+
startRecording(localMediaStream: MediaStream, remoteMediaStream: MediaStream, metadata: CallMetadata): RecordingSession | undefined;
|
|
52
|
+
getSession(callId: string): RecordingSession | undefined;
|
|
53
|
+
stopRecording(callId: string): void;
|
|
54
|
+
/** Start a new MediaRecorder for the next chunk so the blob has its own headers */
|
|
55
|
+
private startNextChunk;
|
|
56
|
+
private uploadCallRecording;
|
|
57
|
+
private convertBlobToBase64;
|
|
58
|
+
private generateFilename;
|
|
59
|
+
private generateChunkFilename;
|
|
60
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RecordingManagerService, never>;
|
|
61
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<RecordingManagerService>;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
interface RemoteMedia {
|
|
65
|
+
callId: string;
|
|
66
|
+
stream: MediaStream;
|
|
67
|
+
}
|
|
68
|
+
declare class AvayaIPOService {
|
|
69
|
+
zone: NgZone;
|
|
70
|
+
private http;
|
|
71
|
+
private cli;
|
|
72
|
+
remoteStream: RemoteMedia | null;
|
|
73
|
+
readonly remoteStream$: BehaviorSubject<RemoteMedia>;
|
|
74
|
+
localStream: MediaStream | null;
|
|
75
|
+
incomingCallSubject: Subject<{
|
|
76
|
+
callId: string;
|
|
77
|
+
farEndNumber: string;
|
|
78
|
+
}>;
|
|
79
|
+
callStateSubject: Subject<{
|
|
80
|
+
callId: string;
|
|
81
|
+
state: string;
|
|
82
|
+
}>;
|
|
83
|
+
private callSlots;
|
|
84
|
+
activeCallsMap: Map<string, any>;
|
|
85
|
+
activeCallId: string | null;
|
|
86
|
+
currentcallId: string | null;
|
|
87
|
+
private agentId;
|
|
88
|
+
private loginStatusSubject;
|
|
89
|
+
loginStatus$: rxjs.Observable<boolean>;
|
|
90
|
+
private readonly DOM_TAGS;
|
|
91
|
+
private readonly CONFIG_TEMPLATE;
|
|
92
|
+
private readonly agentStatusApiUrl;
|
|
93
|
+
private readonly CALL_HISTORY_API_URL;
|
|
94
|
+
private prewarmedStream?;
|
|
95
|
+
private isSafari;
|
|
96
|
+
private _rpcPatched;
|
|
97
|
+
constructor(zone: NgZone, http: HttpClient);
|
|
98
|
+
init(): void;
|
|
99
|
+
logIn(username: string, password: string): void;
|
|
100
|
+
logOut(): void;
|
|
101
|
+
getAlternateServerConfig(): any;
|
|
102
|
+
getDeviceList(): void;
|
|
103
|
+
setDeviceIds(deviceIds: any): void;
|
|
104
|
+
makeCall(destination: string): Promise<'1' | '2' | '3' | null>;
|
|
105
|
+
dropCall(): void;
|
|
106
|
+
doMute(): void;
|
|
107
|
+
doUnMute(): void;
|
|
108
|
+
doHold(): void;
|
|
109
|
+
doUnHold(): void;
|
|
110
|
+
pauseVideo(): void;
|
|
111
|
+
playVideo(): void;
|
|
112
|
+
transferCall(target: string, type: string): void;
|
|
113
|
+
sendDTMF(digit: string | number): void;
|
|
114
|
+
answerCall(): void;
|
|
115
|
+
addVideo(): void;
|
|
116
|
+
removeVideo(): void;
|
|
117
|
+
clearCallSlot(): void;
|
|
118
|
+
setAgentId(id: string): void;
|
|
119
|
+
agentIdle(): void;
|
|
120
|
+
agentBusy(): void;
|
|
121
|
+
agentAutoRelease(): void;
|
|
122
|
+
handleConfigChange: (res_configChange: any) => void;
|
|
123
|
+
handleRegistrationChange: (res_registrationChange: any) => void;
|
|
124
|
+
handleTokenRenewal: (res_tokenRenewal: any) => void;
|
|
125
|
+
assignToFirstAvailableSlot(callId: string, callObj: any): void;
|
|
126
|
+
getSlotForCallId(callId: string): '1' | '2' | '3' | null;
|
|
127
|
+
releaseCallById(callId: string): void;
|
|
128
|
+
handleCallState(callObj: any): void;
|
|
129
|
+
swapLines(): void;
|
|
130
|
+
swapToSlot(targetSlot: '1' | '2' | '3'): void;
|
|
131
|
+
dropCallBySlot(targetSlot: '1' | '2' | '3'): void;
|
|
132
|
+
mergeCall(): void;
|
|
133
|
+
logCall(callData: any): rxjs.Observable<Object>;
|
|
134
|
+
getActiveCallId(): string | null;
|
|
135
|
+
initLocalMic(): Promise<void>;
|
|
136
|
+
private patchRpcForTransfers;
|
|
137
|
+
makeCallWithCustomData(destination: string, dataToSend: string): Promise<'1' | '2' | '3' | null>;
|
|
138
|
+
transferCallWithTag(target: string, type: 'Attended' | 'Blind'): void;
|
|
139
|
+
private _doPatch;
|
|
140
|
+
/** Pre-warm microphone so AWL always has a local stream when it tries addStream() */
|
|
141
|
+
prewarmMic(): Promise<MediaStream>;
|
|
142
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AvayaIPOService, never>;
|
|
143
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AvayaIPOService>;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
declare class CallSocketService {
|
|
147
|
+
private sockets;
|
|
148
|
+
private subjects;
|
|
149
|
+
open(metadata: CallMetadata): void;
|
|
150
|
+
messages$(callId: string): BehaviorSubject<any> | undefined;
|
|
151
|
+
send(callId: string, payload: object): void;
|
|
152
|
+
close(callId: string): void;
|
|
153
|
+
closeAll(): void;
|
|
154
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CallSocketService, never>;
|
|
155
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<CallSocketService>;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
declare class CountryService {
|
|
159
|
+
private httpClient;
|
|
160
|
+
private countriesData;
|
|
161
|
+
private static readonly COUNTRY_ENDPOINT;
|
|
162
|
+
constructor(httpClient: HttpClient);
|
|
163
|
+
getAllCountries(): Promise<any[]>;
|
|
164
|
+
getCountryFromCallingCode(countryCallingCode: string): Promise<any | undefined>;
|
|
165
|
+
getCountryFromCountryCode(countryCode: string): Promise<any | undefined>;
|
|
166
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CountryService, never>;
|
|
167
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<CountryService>;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
declare class PhoneNumberLookupService {
|
|
171
|
+
private httpClient;
|
|
172
|
+
constructor(httpClient: HttpClient);
|
|
173
|
+
lookupPhoneNumber(phoneNumber: string, hlr?: boolean): Promise<Object>;
|
|
174
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PhoneNumberLookupService, never>;
|
|
175
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<PhoneNumberLookupService>;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
declare class AvayaIPOWidgetComponent implements OnInit, AfterViewInit, OnDestroy {
|
|
179
|
+
private http;
|
|
180
|
+
private cdr;
|
|
181
|
+
private zone;
|
|
182
|
+
private formBuilder;
|
|
183
|
+
private countryService;
|
|
184
|
+
private phoneNumberLookupService;
|
|
185
|
+
private avayaIPOService;
|
|
186
|
+
private recordingManagerService;
|
|
187
|
+
private callSocket;
|
|
188
|
+
private authenticationService;
|
|
189
|
+
private tenantService;
|
|
190
|
+
private userService;
|
|
191
|
+
tenantId: string;
|
|
192
|
+
userId: string;
|
|
193
|
+
isVisible: boolean;
|
|
194
|
+
containerHeightObservable: BehaviorSubject<number>;
|
|
195
|
+
containerWidthObservable: BehaviorSubject<number>;
|
|
196
|
+
notificationEvent: EventEmitter<number>;
|
|
197
|
+
isRecording: boolean;
|
|
198
|
+
loginForm: FormGroup;
|
|
199
|
+
transferForm: FormGroup;
|
|
200
|
+
dtmfForm: FormGroup;
|
|
201
|
+
isRinging: boolean;
|
|
202
|
+
showActiveCall: boolean;
|
|
203
|
+
private loginSubscription;
|
|
204
|
+
private incomingCallSubscription;
|
|
205
|
+
callDuration: number;
|
|
206
|
+
private timer;
|
|
207
|
+
isCalling: boolean;
|
|
208
|
+
lookupPhoneNumber: any | null;
|
|
209
|
+
private ringtone;
|
|
210
|
+
isReconnectingInProgress: boolean;
|
|
211
|
+
isFailoverInProgress: boolean;
|
|
212
|
+
isFailbackInProgress: boolean;
|
|
213
|
+
showLoginForm: boolean;
|
|
214
|
+
showLoginPassword: boolean;
|
|
215
|
+
showLoginLoader: boolean;
|
|
216
|
+
hasAvayaSocketError: boolean;
|
|
217
|
+
hasAvayaLoginError: boolean;
|
|
218
|
+
hasAvayaLoginConflictError: boolean;
|
|
219
|
+
hasAvayaDeviceError: boolean;
|
|
220
|
+
callStateSubscription: Subscription;
|
|
221
|
+
isMuted: boolean;
|
|
222
|
+
isOnHold: boolean;
|
|
223
|
+
isactiveCall: boolean;
|
|
224
|
+
phoneNumber: string;
|
|
225
|
+
isDailpadOpen: boolean;
|
|
226
|
+
isCallTransferOpen: boolean;
|
|
227
|
+
activeTab: string;
|
|
228
|
+
contacts: any[];
|
|
229
|
+
searchText: string;
|
|
230
|
+
extensionNumber: string;
|
|
231
|
+
isDirectoryOpen: boolean;
|
|
232
|
+
istransfer: boolean;
|
|
233
|
+
rating: number;
|
|
234
|
+
isConfereceList: boolean;
|
|
235
|
+
conferenceParticipants: any[] | undefined;
|
|
236
|
+
currentView: string;
|
|
237
|
+
redialTimeout: any;
|
|
238
|
+
showCallDisconnected: boolean;
|
|
239
|
+
lastDisconnectedCall: any;
|
|
240
|
+
activeCalls: ActiveCall[];
|
|
241
|
+
currentActiveCallIndex: number;
|
|
242
|
+
isAddingNewCall: boolean;
|
|
243
|
+
isredialling: boolean;
|
|
244
|
+
wasInbound: boolean;
|
|
245
|
+
showHistoryPopup: boolean;
|
|
246
|
+
noOfCalls: number;
|
|
247
|
+
isCallingFromContact: boolean;
|
|
248
|
+
bottomActiveTab: string;
|
|
249
|
+
disconnecttriggered: boolean;
|
|
250
|
+
private lastRemoteStream;
|
|
251
|
+
private lastLocalStream;
|
|
252
|
+
showInitLoader: boolean;
|
|
253
|
+
tenant: any;
|
|
254
|
+
user: any;
|
|
255
|
+
internalContacts: {
|
|
256
|
+
id: number;
|
|
257
|
+
name: string;
|
|
258
|
+
phone: string;
|
|
259
|
+
role: string;
|
|
260
|
+
ext: string;
|
|
261
|
+
}[];
|
|
262
|
+
directoryContacts: {
|
|
263
|
+
id: number;
|
|
264
|
+
name: string;
|
|
265
|
+
phone: string;
|
|
266
|
+
rating: number;
|
|
267
|
+
}[];
|
|
268
|
+
private recognition;
|
|
269
|
+
transcriptText: string;
|
|
270
|
+
showTranscriptionPopup: boolean;
|
|
271
|
+
private recognitionKeepAlive;
|
|
272
|
+
transcriptHistory: string[];
|
|
273
|
+
private recognitionActive;
|
|
274
|
+
private transcriptSegments;
|
|
275
|
+
private transcriptStartedAt;
|
|
276
|
+
private transcriptEndedAt;
|
|
277
|
+
autoDownloadSummaryOnEnd: boolean;
|
|
278
|
+
summaryText: string;
|
|
279
|
+
displayCallingNumber: string;
|
|
280
|
+
redialnumber: string;
|
|
281
|
+
isTransferring: boolean;
|
|
282
|
+
constructor(http: HttpClient, cdr: ChangeDetectorRef, zone: NgZone, formBuilder: FormBuilder, countryService: CountryService, phoneNumberLookupService: PhoneNumberLookupService, avayaIPOService: AvayaIPOService, recordingManagerService: RecordingManagerService, callSocket: CallSocketService, authenticationService: SnugdeskAuthenticationService, tenantService: TenantService, userService: UserService);
|
|
283
|
+
ngOnInit(): Promise<void>;
|
|
284
|
+
loadScript(src: string): Promise<void>;
|
|
285
|
+
ngAfterViewInit(): void;
|
|
286
|
+
ngOnDestroy(): void;
|
|
287
|
+
getLookupPhoneNumber(phoneNumber: string): Promise<any>;
|
|
288
|
+
onLogin(): void;
|
|
289
|
+
onLogout(): void;
|
|
290
|
+
makeCall(phoneNumber: string): Promise<void>;
|
|
291
|
+
makeCallFromContact(phoneNumber: string): Promise<void>;
|
|
292
|
+
cancelCall(): Promise<void>;
|
|
293
|
+
dropCurrentCall(): Promise<void>;
|
|
294
|
+
onMute(): void;
|
|
295
|
+
onUnmute(): void;
|
|
296
|
+
toggleHold(): void;
|
|
297
|
+
toggleMute(): void;
|
|
298
|
+
onPauseVideo(): void;
|
|
299
|
+
onResumeVideo(): void;
|
|
300
|
+
onDigitClick(digit: string): void;
|
|
301
|
+
onBackspace(): void;
|
|
302
|
+
onTransferCall(): void;
|
|
303
|
+
onSendDTMF(digit: string | number): void;
|
|
304
|
+
onAnswerCall(): void;
|
|
305
|
+
onAddVideo(): void;
|
|
306
|
+
onRemoveVideo(): void;
|
|
307
|
+
allowOnlyNumbers(event: Event): void;
|
|
308
|
+
startTimer(index: number): void;
|
|
309
|
+
clearTimer(index: number): void;
|
|
310
|
+
formatTime(totalSeconds: number): string;
|
|
311
|
+
menuDailpad(): void;
|
|
312
|
+
selectTab(tab: string): Promise<void>;
|
|
313
|
+
fetchContacts(): Promise<void>;
|
|
314
|
+
private searchEntities;
|
|
315
|
+
private handleCallConnect;
|
|
316
|
+
private handleCallDisconnect;
|
|
317
|
+
goToDiv(div: string): void;
|
|
318
|
+
restrictNumeric(e: KeyboardEvent): boolean;
|
|
319
|
+
onRedial(): void;
|
|
320
|
+
swapLinesToIndex(index: number): void;
|
|
321
|
+
mergeCall(): void;
|
|
322
|
+
onAddCall(): void;
|
|
323
|
+
getDisplayStatus(call: any): string;
|
|
324
|
+
bottomSelectTab(tab: string): void;
|
|
325
|
+
/** Central place to notify AvayaIPOService about current picks */
|
|
326
|
+
handleDeviceSelection(event: any): void;
|
|
327
|
+
private createMixedStream;
|
|
328
|
+
private initTranscription;
|
|
329
|
+
private stopTranscription;
|
|
330
|
+
private generateAndDownloadSummary;
|
|
331
|
+
private buildExtractiveSummary;
|
|
332
|
+
private splitSentences;
|
|
333
|
+
private extractActionItems;
|
|
334
|
+
private extractKeyInfo;
|
|
335
|
+
private downloadBlobFile;
|
|
336
|
+
private fmtHMS;
|
|
337
|
+
transferToFromHistory(item: {
|
|
338
|
+
phoneNumber?: any;
|
|
339
|
+
lookupPhoneNumber?: any;
|
|
340
|
+
resolvedDialable?: any;
|
|
341
|
+
}): void;
|
|
342
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AvayaIPOWidgetComponent, never>;
|
|
343
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AvayaIPOWidgetComponent, "snugdesk-avaya-ipo-widget", never, { "tenantId": { "alias": "tenantId"; "required": false; }; "userId": { "alias": "userId"; "required": false; }; "isVisible": { "alias": "isVisible"; "required": false; }; "containerHeightObservable": { "alias": "containerHeightObservable"; "required": false; }; "containerWidthObservable": { "alias": "containerWidthObservable"; "required": false; }; }, { "notificationEvent": "notificationEvent"; }, never, never, false, never>;
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
declare class CallHistoryComponent implements OnInit {
|
|
347
|
+
private http;
|
|
348
|
+
private authenticationService;
|
|
349
|
+
private cdr;
|
|
350
|
+
mode: 'dial' | 'transfer';
|
|
351
|
+
makeCallEv: EventEmitter<string>;
|
|
352
|
+
transferEv: EventEmitter<any>;
|
|
353
|
+
private readonly CALL_HISTORY_API_URL;
|
|
354
|
+
showHistoryLoader: boolean;
|
|
355
|
+
callHistory: any[];
|
|
356
|
+
recentCallactiveTab: string;
|
|
357
|
+
constructor(http: HttpClient, authenticationService: SnugdeskAuthenticationService, cdr: ChangeDetectorRef);
|
|
358
|
+
ngOnInit(): Promise<void>;
|
|
359
|
+
recentSelectTab(tab: string): void;
|
|
360
|
+
loadCallHistory(): Promise<void>;
|
|
361
|
+
getCallHistory(tenantId: string, agentId: string): Promise<any>;
|
|
362
|
+
makeCall(phoneNumber: string): void;
|
|
363
|
+
get callerDropped(): any[];
|
|
364
|
+
selectFromHistory(item: any): void;
|
|
365
|
+
private resolveDialable;
|
|
366
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CallHistoryComponent, never>;
|
|
367
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CallHistoryComponent, "app-call-history", never, { "mode": { "alias": "mode"; "required": false; }; }, { "makeCallEv": "makeCallEv"; "transferEv": "transferEv"; }, never, never, false, never>;
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
declare class AuthenticationService {
|
|
371
|
+
private readonly jwtHelper;
|
|
372
|
+
tenant$: BehaviorSubject<any>;
|
|
373
|
+
user$: BehaviorSubject<any>;
|
|
374
|
+
isAuthenticated$: BehaviorSubject<boolean>;
|
|
375
|
+
isAuthenticated(): boolean;
|
|
376
|
+
getAuthSessionToken(): string | null;
|
|
377
|
+
getAuthDomainToken(): string | null;
|
|
378
|
+
getDecodedAuthDomainToken(): any;
|
|
379
|
+
getTenantId(): string;
|
|
380
|
+
getDecodedAuthSessionToken(): any;
|
|
381
|
+
getUserId(): string;
|
|
382
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AuthenticationService, never>;
|
|
383
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AuthenticationService>;
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
declare class DialpadComponent implements OnInit, OnDestroy {
|
|
387
|
+
private cdr;
|
|
388
|
+
private formBuilder;
|
|
389
|
+
private avayaIpoService;
|
|
390
|
+
private authenticationService;
|
|
391
|
+
contacts: any[];
|
|
392
|
+
makeCallEv: EventEmitter<string>;
|
|
393
|
+
audioElement: any;
|
|
394
|
+
private callStateSub?;
|
|
395
|
+
dialForm: FormGroup;
|
|
396
|
+
showDirectoryPhonebook: boolean;
|
|
397
|
+
incomingCallSubscription: any;
|
|
398
|
+
incomingCallNumber: string | undefined;
|
|
399
|
+
CountryISO: typeof CountryISO;
|
|
400
|
+
SearchCountryField: typeof SearchCountryField;
|
|
401
|
+
isRinging: boolean;
|
|
402
|
+
audio: any;
|
|
403
|
+
constructor(cdr: ChangeDetectorRef, formBuilder: FormBuilder, avayaIpoService: AvayaIPOService, authenticationService: AuthenticationService);
|
|
404
|
+
ngOnInit(): void;
|
|
405
|
+
ngOnDestroy(): void;
|
|
406
|
+
makeCall(): void;
|
|
407
|
+
onClear(): void;
|
|
408
|
+
handleKeyboardInput: (event: KeyboardEvent) => void;
|
|
409
|
+
handleKeypadInput(digit: string): void;
|
|
410
|
+
private updatePhoneControl;
|
|
411
|
+
declineAvayaCall(): void;
|
|
412
|
+
acceptAvayaCAll(): void;
|
|
413
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DialpadComponent, never>;
|
|
414
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DialpadComponent, "app-dialpad", never, { "contacts": { "alias": "contacts"; "required": false; }; }, { "makeCallEv": "makeCallEv"; }, never, never, false, never>;
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
declare class DeviceSelectorComponent implements OnInit, OnDestroy {
|
|
418
|
+
selectedAudioInputId?: string;
|
|
419
|
+
selectedAudioOutputId?: string;
|
|
420
|
+
change: EventEmitter<{
|
|
421
|
+
audioInputId: string;
|
|
422
|
+
audioOutputId: string;
|
|
423
|
+
videoInputId?: string;
|
|
424
|
+
}>;
|
|
425
|
+
audioInputs: MediaDeviceInfo[];
|
|
426
|
+
audioOutputs: MediaDeviceInfo[];
|
|
427
|
+
ngOnInit(): void;
|
|
428
|
+
ngOnDestroy(): void;
|
|
429
|
+
private handleDeviceChange;
|
|
430
|
+
private refreshDeviceList;
|
|
431
|
+
onMicChange(deviceId: string | undefined): void;
|
|
432
|
+
onSpeakerChange(deviceId: string | undefined): void;
|
|
433
|
+
private emitDeviceChange;
|
|
434
|
+
trackByDeviceId(index: number, device: MediaDeviceInfo): string;
|
|
435
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DeviceSelectorComponent, never>;
|
|
436
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DeviceSelectorComponent, "app-device-selector", never, { "selectedAudioInputId": { "alias": "selectedAudioInputId"; "required": false; }; "selectedAudioOutputId": { "alias": "selectedAudioOutputId"; "required": false; }; }, { "change": "change"; }, never, never, false, never>;
|
|
437
|
+
}
|
|
438
|
+
|
|
439
|
+
declare class AvayaIPOWidgetModule {
|
|
440
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AvayaIPOWidgetModule, never>;
|
|
441
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<AvayaIPOWidgetModule, [typeof AvayaIPOWidgetComponent, typeof CallHistoryComponent, typeof DialpadComponent, typeof DeviceSelectorComponent], [typeof i5.CommonModule, typeof i6.FormsModule, typeof i6.ReactiveFormsModule, typeof i7.MatFormFieldModule, typeof i8.MatInputModule, typeof i7.MatError, typeof i7.MatFormField, typeof i7.MatLabel, typeof i9.NgxIntlTelInputModule], [typeof AvayaIPOWidgetComponent]>;
|
|
442
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<AvayaIPOWidgetModule>;
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
export { AvayaIPOWidgetComponent, AvayaIPOWidgetModule };
|
package/package.json
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@snugdesk/avaya-ipo-widget",
|
|
3
|
+
"version": "0.0.0-watch+1765882950586",
|
|
4
|
+
"description": "Snugdesk - Avaya IPO widget for Angular",
|
|
5
|
+
"peerDependencies": {
|
|
6
|
+
"@angular/animations": ">=19.0.0",
|
|
7
|
+
"@angular/common": ">=19.0.0",
|
|
8
|
+
"@angular/core": ">=19.0.0",
|
|
9
|
+
"@angular/forms": ">=19.0.0",
|
|
10
|
+
"@angular/material": ">=19.0.0",
|
|
11
|
+
"@angular/platform-browser": ">=19.0.0",
|
|
12
|
+
"@angular/platform-browser-dynamic": ">=19.0.0",
|
|
13
|
+
"rxjs": "~7.8.0"
|
|
14
|
+
},
|
|
15
|
+
"dependencies": {
|
|
16
|
+
"@auth0/angular-jwt": "^5.2.0",
|
|
17
|
+
"@snugdesk/core": "^0.0.12",
|
|
18
|
+
"moment-timezone": "^0.5.48",
|
|
19
|
+
"google-libphonenumber": "^3.0.0",
|
|
20
|
+
"intl-tel-input": "^19.0.0",
|
|
21
|
+
"ngx-intl-tel-input": "^17.0.0",
|
|
22
|
+
"tslib": "^2.3.0",
|
|
23
|
+
"uuid": "^11.1.0"
|
|
24
|
+
},
|
|
25
|
+
"sideEffects": false,
|
|
26
|
+
"module": "fesm2022/snugdesk-avaya-ipo-widget.mjs",
|
|
27
|
+
"typings": "index.d.ts",
|
|
28
|
+
"exports": {
|
|
29
|
+
"./package.json": {
|
|
30
|
+
"default": "./package.json"
|
|
31
|
+
},
|
|
32
|
+
".": {
|
|
33
|
+
"types": "./index.d.ts",
|
|
34
|
+
"default": "./fesm2022/snugdesk-avaya-ipo-widget.mjs"
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
File without changes
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
|
2
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
3
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1080" height="1080" viewBox="0 0 1080 1080" xml:space="preserve">
|
|
4
|
+
<desc>Created with Fabric.js 5.2.4</desc>
|
|
5
|
+
<defs>
|
|
6
|
+
</defs>
|
|
7
|
+
<rect x="0" y="0" width="100%" height="100%" fill="transparent"></rect>
|
|
8
|
+
<g transform="matrix(1 0 0 1 540 540)" id="46946dc3-9491-43cb-8fe7-5b8ffbba78af" >
|
|
9
|
+
<rect style="stroke: none; stroke-width: 1; stroke-dasharray: none; stroke-linecap: butt; stroke-dashoffset: 0; stroke-linejoin: miter; stroke-miterlimit: 4; fill: rgb(255,255,255); fill-rule: nonzero; opacity: 1; visibility: hidden;" vector-effect="non-scaling-stroke" x="-540" y="-540" rx="0" ry="0" width="1080" height="1080" />
|
|
10
|
+
</g>
|
|
11
|
+
<g transform="matrix(1 0 0 1 540 540)" id="863c060c-d63b-4daf-a3bc-022136480777" >
|
|
12
|
+
</g>
|
|
13
|
+
<g transform="matrix(1 0 0 1 540 540)" id="facf6309-efdf-434e-a753-661bb2577e88" >
|
|
14
|
+
<polygon style="stroke: rgb(0,0,0); stroke-width: 0; stroke-dasharray: none; stroke-linecap: butt; stroke-dashoffset: 0; stroke-linejoin: miter; stroke-miterlimit: 4; fill: rgb(218,40,28); fill-rule: nonzero; opacity: 1;" vector-effect="non-scaling-stroke" points="-232.07,221.69 106.75,221.69 161.6,357.36 -295.67,357.36 -368.7,513.14 -570.6,513.14 -69.8,-513.14 69.88,-513.14 570.6,513.14 368.77,513.14 -0.04,-279.29 -232.07,221.69 -232.07,221.69 -232.07,221.69 " />
|
|
15
|
+
</g>
|
|
16
|
+
<g transform="matrix(NaN NaN NaN NaN 0 0)" >
|
|
17
|
+
<g style="" >
|
|
18
|
+
</g>
|
|
19
|
+
</g>
|
|
20
|
+
</svg>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
|
2
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
3
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1080" height="1080" viewBox="0 0 1080 1080" xml:space="preserve">
|
|
4
|
+
<desc>Created with Fabric.js 5.2.4</desc>
|
|
5
|
+
<defs>
|
|
6
|
+
</defs>
|
|
7
|
+
<rect x="0" y="0" width="100%" height="100%" fill="transparent"></rect>
|
|
8
|
+
<g transform="matrix(1 0 0 1 540 540)" id="46946dc3-9491-43cb-8fe7-5b8ffbba78af" >
|
|
9
|
+
<rect style="stroke: none; stroke-width: 1; stroke-dasharray: none; stroke-linecap: butt; stroke-dashoffset: 0; stroke-linejoin: miter; stroke-miterlimit: 4; fill: rgb(255,255,255); fill-rule: nonzero; opacity: 1; visibility: hidden;" vector-effect="non-scaling-stroke" x="-540" y="-540" rx="0" ry="0" width="1080" height="1080" />
|
|
10
|
+
</g>
|
|
11
|
+
<g transform="matrix(1 0 0 1 540 540)" id="863c060c-d63b-4daf-a3bc-022136480777" >
|
|
12
|
+
</g>
|
|
13
|
+
<g transform="matrix(1 0 0 1 540 540)" id="facf6309-efdf-434e-a753-661bb2577e88" >
|
|
14
|
+
<polygon style="stroke: rgb(0,0,0); stroke-width: 0; stroke-dasharray: none; stroke-linecap: butt; stroke-dashoffset: 0; stroke-linejoin: miter; stroke-miterlimit: 4; fill: rgb(136,136,136); fill-rule: nonzero; opacity: 1;" vector-effect="non-scaling-stroke" points="-232.07,221.69 106.75,221.69 161.6,357.36 -295.67,357.36 -368.7,513.14 -570.6,513.14 -69.8,-513.14 69.88,-513.14 570.6,513.14 368.77,513.14 -0.04,-279.29 -232.07,221.69 -232.07,221.69 -232.07,221.69 " />
|
|
15
|
+
</g>
|
|
16
|
+
</svg>
|
|
Binary file
|