@vgroup/dialbox 0.0.62 → 0.0.63
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/dialbox.module.mjs +29 -3
- package/esm2020/lib/service/app-initializer.service.mjs +76 -0
- package/fesm2015/vgroup-dialbox.mjs +106 -3
- package/fesm2015/vgroup-dialbox.mjs.map +1 -1
- package/fesm2020/vgroup-dialbox.mjs +98 -3
- package/fesm2020/vgroup-dialbox.mjs.map +1 -1
- package/lib/service/app-initializer.service.d.ts +17 -0
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
1
|
+
import { APP_INITIALIZER, NgModule, Injector } from '@angular/core';
|
|
2
2
|
import { DialboxComponent } from './dialbox.component';
|
|
3
3
|
import { CommonModule } from '@angular/common';
|
|
4
4
|
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
@@ -8,6 +8,7 @@ import { CallProgressComponent } from './components/call-progress/call-progress.
|
|
|
8
8
|
import { IncomingCallComponent } from './components/call-progress/incoming-call/incoming-call.component';
|
|
9
9
|
import { CallerIdDialogComponent } from './components/caller-id-dialog/caller-id-dialog.component';
|
|
10
10
|
import { BrowserModule } from '@angular/platform-browser';
|
|
11
|
+
import { AppInitializerService } from './service/app-initializer.service';
|
|
11
12
|
import * as i0 from "@angular/core";
|
|
12
13
|
export class DialboxModule {
|
|
13
14
|
}
|
|
@@ -25,7 +26,19 @@ DialboxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version:
|
|
|
25
26
|
IncomingCallComponent,
|
|
26
27
|
CallProgressComponent,
|
|
27
28
|
CallerIdDialogComponent] });
|
|
28
|
-
DialboxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DialboxModule,
|
|
29
|
+
DialboxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DialboxModule, providers: [
|
|
30
|
+
{
|
|
31
|
+
provide: APP_INITIALIZER,
|
|
32
|
+
useFactory: (injector) => {
|
|
33
|
+
return () => {
|
|
34
|
+
const appInitializer = injector.get(AppInitializerService);
|
|
35
|
+
return appInitializer.initializeApp();
|
|
36
|
+
};
|
|
37
|
+
},
|
|
38
|
+
deps: [Injector],
|
|
39
|
+
multi: true
|
|
40
|
+
}
|
|
41
|
+
], imports: [CommonModule,
|
|
29
42
|
FormsModule,
|
|
30
43
|
ReactiveFormsModule,
|
|
31
44
|
HttpClientModule,
|
|
@@ -54,7 +67,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
54
67
|
IncomingCallComponent,
|
|
55
68
|
CallProgressComponent,
|
|
56
69
|
CallerIdDialogComponent,
|
|
70
|
+
],
|
|
71
|
+
providers: [
|
|
72
|
+
{
|
|
73
|
+
provide: APP_INITIALIZER,
|
|
74
|
+
useFactory: (injector) => {
|
|
75
|
+
return () => {
|
|
76
|
+
const appInitializer = injector.get(AppInitializerService);
|
|
77
|
+
return appInitializer.initializeApp();
|
|
78
|
+
};
|
|
79
|
+
},
|
|
80
|
+
deps: [Injector],
|
|
81
|
+
multi: true
|
|
82
|
+
}
|
|
57
83
|
]
|
|
58
84
|
}]
|
|
59
85
|
}] });
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbGJveC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9kaWFsYm94L3NyYy9saWIvZGlhbGJveC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFjLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUUzRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQUN6RyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUNuRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7O0FBc0MxRSxNQUFNLE9BQU8sYUFBYTs7MkdBQWIsYUFBYTs0R0FBYixhQUFhLGlCQWxDdEIsZ0JBQWdCO1FBQ2hCLHFCQUFxQjtRQUNyQix1QkFBdUI7UUFDdkIscUJBQXFCLGFBR3JCLFlBQVk7UUFDWixXQUFXO1FBQ1gsbUJBQW1CO1FBQ25CLGdCQUFnQjtRQUNoQixVQUFVO1FBQ1YsWUFBWTtRQUNaLGFBQWEsYUFHYixnQkFBZ0I7UUFDaEIscUJBQXFCO1FBQ3JCLHFCQUFxQjtRQUNyQix1QkFBdUI7NEdBZ0JkLGFBQWEsYUFkYjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGVBQWU7WUFDeEIsVUFBVSxFQUFFLENBQUMsUUFBa0IsRUFBRSxFQUFFO2dCQUNqQyxPQUFPLEdBQUcsRUFBRTtvQkFDVixNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUM7b0JBQzNELE9BQU8sY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUN4QyxDQUFDLENBQUM7WUFDSixDQUFDO1lBQ0QsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDO1lBQ2hCLEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRixZQTFCQyxZQUFZO1FBQ1osV0FBVztRQUNYLG1CQUFtQjtRQUNuQixnQkFBZ0I7UUFFaEIsWUFBWTtRQUNaLGFBQWE7NEZBc0JKLGFBQWE7a0JBcEN6QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixnQkFBZ0I7d0JBQ2hCLHFCQUFxQjt3QkFDckIsdUJBQXVCO3dCQUN2QixxQkFBcUI7cUJBQ3RCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixnQkFBZ0I7d0JBQ2hCLFVBQVU7d0JBQ1YsWUFBWTt3QkFDWixhQUFhO3FCQUNkO29CQUNELE9BQU8sRUFBRTt3QkFDUCxnQkFBZ0I7d0JBQ2hCLHFCQUFxQjt3QkFDckIscUJBQXFCO3dCQUNyQix1QkFBdUI7cUJBQ3hCO29CQUNELFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsZUFBZTs0QkFDeEIsVUFBVSxFQUFFLENBQUMsUUFBa0IsRUFBRSxFQUFFO2dDQUNqQyxPQUFPLEdBQUcsRUFBRTtvQ0FDVixNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUM7b0NBQzNELE9BQU8sY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO2dDQUN4QyxDQUFDLENBQUM7NEJBQ0osQ0FBQzs0QkFDRCxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUM7NEJBQ2hCLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBOZ01vZHVsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERpYWxib3hDb21wb25lbnQgfSBmcm9tICcuL2RpYWxib3guY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBSb3V0ZXJMaW5rLCBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ2FsbFByb2dyZXNzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhbGwtcHJvZ3Jlc3MvY2FsbC1wcm9ncmVzcy5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBJbmNvbWluZ0NhbGxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2FsbC1wcm9ncmVzcy9pbmNvbWluZy1jYWxsL2luY29taW5nLWNhbGwuY29tcG9uZW50JztcbmltcG9ydCB7IENhbGxlcklkRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhbGxlci1pZC1kaWFsb2cvY2FsbGVyLWlkLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnJvd3Nlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgQXBwSW5pdGlhbGl6ZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlL2FwcC1pbml0aWFsaXplci5zZXJ2aWNlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgRGlhbGJveENvbXBvbmVudCxcbiAgICBDYWxsUHJvZ3Jlc3NDb21wb25lbnQsXG4gICAgQ2FsbGVySWREaWFsb2dDb21wb25lbnQsXG4gICAgSW5jb21pbmdDYWxsQ29tcG9uZW50LFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgSHR0cENsaWVudE1vZHVsZSxcbiAgICBSb3V0ZXJMaW5rLFxuICAgIFJvdXRlck1vZHVsZSxcbiAgICBCcm93c2VyTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBEaWFsYm94Q29tcG9uZW50LFxuICAgIEluY29taW5nQ2FsbENvbXBvbmVudCxcbiAgICBDYWxsUHJvZ3Jlc3NDb21wb25lbnQsXG4gICAgQ2FsbGVySWREaWFsb2dDb21wb25lbnQsXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgIHVzZUZhY3Rvcnk6IChpbmplY3RvcjogSW5qZWN0b3IpID0+IHtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICBjb25zdCBhcHBJbml0aWFsaXplciA9IGluamVjdG9yLmdldChBcHBJbml0aWFsaXplclNlcnZpY2UpO1xuICAgICAgICAgIHJldHVybiBhcHBJbml0aWFsaXplci5pbml0aWFsaXplQXBwKCk7XG4gICAgICAgIH07XG4gICAgICB9LFxuICAgICAgZGVwczogW0luamVjdG9yXSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERpYWxib3hNb2R1bGUgeyB9XG4iXX0=
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { Injectable, Inject, PLATFORM_ID } from '@angular/core';
|
|
2
|
+
import { isPlatformBrowser } from '@angular/common';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "./twilio.service";
|
|
5
|
+
import * as i2 from "./extension.service";
|
|
6
|
+
import * as i3 from "@angular/router";
|
|
7
|
+
export class AppInitializerService {
|
|
8
|
+
constructor(twilioService, extensionService, router, platformId) {
|
|
9
|
+
this.twilioService = twilioService;
|
|
10
|
+
this.extensionService = extensionService;
|
|
11
|
+
this.router = router;
|
|
12
|
+
this.platformId = platformId;
|
|
13
|
+
}
|
|
14
|
+
initializeApp() {
|
|
15
|
+
return new Promise((resolve) => {
|
|
16
|
+
if (isPlatformBrowser(this.platformId)) {
|
|
17
|
+
this.initializeServices().then(() => {
|
|
18
|
+
resolve();
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
resolve();
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
async initializeServices() {
|
|
27
|
+
try {
|
|
28
|
+
// Initialize Twilio device
|
|
29
|
+
await this.initializeTwilio();
|
|
30
|
+
// Fetch initial data
|
|
31
|
+
await this.fetchInitialData();
|
|
32
|
+
console.log('App initialization complete');
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
console.error('Error during app initialization:', error);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
async initializeTwilio() {
|
|
39
|
+
const token = localStorage.getItem('ext_token');
|
|
40
|
+
if (token) {
|
|
41
|
+
await this.twilioService.initializeTwilioDevice();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
async fetchInitialData() {
|
|
45
|
+
const token = localStorage.getItem('ext_token');
|
|
46
|
+
if (token) {
|
|
47
|
+
try {
|
|
48
|
+
// Fetch caller ID
|
|
49
|
+
const response = await this.extensionService.fetchCallerId(token).toPromise();
|
|
50
|
+
if (response && typeof response === 'object' && 'status' in response) {
|
|
51
|
+
const callerIdRes = response;
|
|
52
|
+
if (callerIdRes.status === 200) {
|
|
53
|
+
const callerId = callerIdRes.callerid || 'Not set';
|
|
54
|
+
localStorage.setItem('callerID', callerId);
|
|
55
|
+
this.extensionService.changeMessage(callerId);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
console.error('Error fetching initial data:', error);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
AppInitializerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AppInitializerService, deps: [{ token: i1.TwilioService }, { token: i2.ExtensionService }, { token: i3.Router }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
66
|
+
AppInitializerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AppInitializerService, providedIn: 'root' });
|
|
67
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AppInitializerService, decorators: [{
|
|
68
|
+
type: Injectable,
|
|
69
|
+
args: [{
|
|
70
|
+
providedIn: 'root'
|
|
71
|
+
}]
|
|
72
|
+
}], ctorParameters: function () { return [{ type: i1.TwilioService }, { type: i2.ExtensionService }, { type: i3.Router }, { type: Object, decorators: [{
|
|
73
|
+
type: Inject,
|
|
74
|
+
args: [PLATFORM_ID]
|
|
75
|
+
}] }]; } });
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWluaXRpYWxpemVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kaWFsYm94L3NyYy9saWIvc2VydmljZS9hcHAtaW5pdGlhbGl6ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7O0FBUXBELE1BQU0sT0FBTyxxQkFBcUI7SUFDaEMsWUFDVSxhQUE0QixFQUM1QixnQkFBa0MsRUFDbEMsTUFBYyxFQUNPLFVBQWtCO1FBSHZDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNPLGVBQVUsR0FBVixVQUFVLENBQVE7SUFDOUMsQ0FBQztJQUVKLGFBQWE7UUFDWCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDN0IsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQ3RDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7b0JBQ2xDLE9BQU8sRUFBRSxDQUFDO2dCQUNaLENBQUMsQ0FBQyxDQUFDO2FBQ0o7aUJBQU07Z0JBQ0wsT0FBTyxFQUFFLENBQUM7YUFDWDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLEtBQUssQ0FBQyxrQkFBa0I7UUFDOUIsSUFBSTtZQUNGLDJCQUEyQjtZQUMzQixNQUFNLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBRTlCLHFCQUFxQjtZQUNyQixNQUFNLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBRTlCLE9BQU8sQ0FBQyxHQUFHLENBQUMsNkJBQTZCLENBQUMsQ0FBQztTQUM1QztRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2QsT0FBTyxDQUFDLEtBQUssQ0FBQyxrQ0FBa0MsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUMxRDtJQUNILENBQUM7SUFFTyxLQUFLLENBQUMsZ0JBQWdCO1FBQzVCLE1BQU0sS0FBSyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDaEQsSUFBSSxLQUFLLEVBQUU7WUFDVCxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztTQUNuRDtJQUNILENBQUM7SUFFTyxLQUFLLENBQUMsZ0JBQWdCO1FBQzVCLE1BQU0sS0FBSyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDaEQsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJO2dCQUNGLGtCQUFrQjtnQkFDbEIsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUM5RSxJQUFJLFFBQVEsSUFBSSxPQUFPLFFBQVEsS0FBSyxRQUFRLElBQUksUUFBUSxJQUFJLFFBQVEsRUFBRTtvQkFDcEUsTUFBTSxXQUFXLEdBQUcsUUFBaUQsQ0FBQztvQkFDdEUsSUFBSSxXQUFXLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRTt3QkFDOUIsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLFFBQVEsSUFBSSxTQUFTLENBQUM7d0JBQ25ELFlBQVksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO3dCQUMzQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO3FCQUMvQztpQkFDRjthQUNGO1lBQUMsT0FBTyxLQUFLLEVBQUU7Z0JBQ2QsT0FBTyxDQUFDLEtBQUssQ0FBQyw4QkFBOEIsRUFBRSxLQUFLLENBQUMsQ0FBQzthQUN0RDtTQUNGO0lBQ0gsQ0FBQzs7bUhBM0RVLHFCQUFxQixxR0FLdEIsV0FBVzt1SEFMVixxQkFBcUIsY0FGcEIsTUFBTTs0RkFFUCxxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFNSSxNQUFNOzJCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QsIFBMQVRGT1JNX0lEIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUd2lsaW9TZXJ2aWNlIH0gZnJvbSAnLi90d2lsaW8uc2VydmljZSc7XG5pbXBvcnQgeyBFeHRlbnNpb25TZXJ2aWNlIH0gZnJvbSAnLi9leHRlbnNpb24uc2VydmljZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBcHBJbml0aWFsaXplclNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHR3aWxpb1NlcnZpY2U6IFR3aWxpb1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBleHRlbnNpb25TZXJ2aWNlOiBFeHRlbnNpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBPYmplY3RcbiAgKSB7fVxuXG4gIGluaXRpYWxpemVBcHAoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICB0aGlzLmluaXRpYWxpemVTZXJ2aWNlcygpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGluaXRpYWxpemVTZXJ2aWNlcygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgLy8gSW5pdGlhbGl6ZSBUd2lsaW8gZGV2aWNlXG4gICAgICBhd2FpdCB0aGlzLmluaXRpYWxpemVUd2lsaW8oKTtcbiAgICAgIFxuICAgICAgLy8gRmV0Y2ggaW5pdGlhbCBkYXRhXG4gICAgICBhd2FpdCB0aGlzLmZldGNoSW5pdGlhbERhdGEoKTtcbiAgICAgIFxuICAgICAgY29uc29sZS5sb2coJ0FwcCBpbml0aWFsaXphdGlvbiBjb21wbGV0ZScpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBkdXJpbmcgYXBwIGluaXRpYWxpemF0aW9uOicsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGluaXRpYWxpemVUd2lsaW8oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgdG9rZW4gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnZXh0X3Rva2VuJyk7XG4gICAgaWYgKHRva2VuKSB7XG4gICAgICBhd2FpdCB0aGlzLnR3aWxpb1NlcnZpY2UuaW5pdGlhbGl6ZVR3aWxpb0RldmljZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZmV0Y2hJbml0aWFsRGF0YSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB0b2tlbiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdleHRfdG9rZW4nKTtcbiAgICBpZiAodG9rZW4pIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIC8vIEZldGNoIGNhbGxlciBJRFxuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuZXh0ZW5zaW9uU2VydmljZS5mZXRjaENhbGxlcklkKHRva2VuKS50b1Byb21pc2UoKTtcbiAgICAgICAgaWYgKHJlc3BvbnNlICYmIHR5cGVvZiByZXNwb25zZSA9PT0gJ29iamVjdCcgJiYgJ3N0YXR1cycgaW4gcmVzcG9uc2UpIHtcbiAgICAgICAgICBjb25zdCBjYWxsZXJJZFJlcyA9IHJlc3BvbnNlIGFzIHsgc3RhdHVzOiBudW1iZXI7IGNhbGxlcmlkPzogc3RyaW5nIH07XG4gICAgICAgICAgaWYgKGNhbGxlcklkUmVzLnN0YXR1cyA9PT0gMjAwKSB7XG4gICAgICAgICAgICBjb25zdCBjYWxsZXJJZCA9IGNhbGxlcklkUmVzLmNhbGxlcmlkIHx8ICdOb3Qgc2V0JztcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdjYWxsZXJJRCcsIGNhbGxlcklkKTtcbiAgICAgICAgICAgIHRoaXMuZXh0ZW5zaW9uU2VydmljZS5jaGFuZ2VNZXNzYWdlKGNhbGxlcklkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIGluaXRpYWwgZGF0YTonLCBlcnJvcik7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __awaiter } from 'tslib';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { Injectable, EventEmitter, Component, Input, Output, ViewChild, Inject, NgModule } from '@angular/core';
|
|
3
|
+
import { Injectable, EventEmitter, Component, Input, Output, ViewChild, Inject, PLATFORM_ID, APP_INITIALIZER, Injector, NgModule } from '@angular/core';
|
|
4
4
|
import swal from 'sweetalert2';
|
|
5
5
|
import { AsYouType } from 'libphonenumber-js';
|
|
6
6
|
import { throwError, BehaviorSubject, interval, Subscription } from 'rxjs';
|
|
@@ -13,7 +13,7 @@ import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
|
13
13
|
import * as i5 from '@angular/router';
|
|
14
14
|
import { RouterLink, RouterModule } from '@angular/router';
|
|
15
15
|
import * as i4 from '@angular/common';
|
|
16
|
-
import { CommonModule } from '@angular/common';
|
|
16
|
+
import { isPlatformBrowser, CommonModule } from '@angular/common';
|
|
17
17
|
import * as i3 from '@angular/forms';
|
|
18
18
|
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
19
19
|
import { BrowserModule } from '@angular/platform-browser';
|
|
@@ -3201,6 +3201,84 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
3201
3201
|
}] }];
|
|
3202
3202
|
} });
|
|
3203
3203
|
|
|
3204
|
+
class AppInitializerService {
|
|
3205
|
+
constructor(twilioService, extensionService, router, platformId) {
|
|
3206
|
+
this.twilioService = twilioService;
|
|
3207
|
+
this.extensionService = extensionService;
|
|
3208
|
+
this.router = router;
|
|
3209
|
+
this.platformId = platformId;
|
|
3210
|
+
}
|
|
3211
|
+
initializeApp() {
|
|
3212
|
+
return new Promise((resolve) => {
|
|
3213
|
+
if (isPlatformBrowser(this.platformId)) {
|
|
3214
|
+
this.initializeServices().then(() => {
|
|
3215
|
+
resolve();
|
|
3216
|
+
});
|
|
3217
|
+
}
|
|
3218
|
+
else {
|
|
3219
|
+
resolve();
|
|
3220
|
+
}
|
|
3221
|
+
});
|
|
3222
|
+
}
|
|
3223
|
+
initializeServices() {
|
|
3224
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
3225
|
+
try {
|
|
3226
|
+
// Initialize Twilio device
|
|
3227
|
+
yield this.initializeTwilio();
|
|
3228
|
+
// Fetch initial data
|
|
3229
|
+
yield this.fetchInitialData();
|
|
3230
|
+
console.log('App initialization complete');
|
|
3231
|
+
}
|
|
3232
|
+
catch (error) {
|
|
3233
|
+
console.error('Error during app initialization:', error);
|
|
3234
|
+
}
|
|
3235
|
+
});
|
|
3236
|
+
}
|
|
3237
|
+
initializeTwilio() {
|
|
3238
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
3239
|
+
const token = localStorage.getItem('ext_token');
|
|
3240
|
+
if (token) {
|
|
3241
|
+
yield this.twilioService.initializeTwilioDevice();
|
|
3242
|
+
}
|
|
3243
|
+
});
|
|
3244
|
+
}
|
|
3245
|
+
fetchInitialData() {
|
|
3246
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
3247
|
+
const token = localStorage.getItem('ext_token');
|
|
3248
|
+
if (token) {
|
|
3249
|
+
try {
|
|
3250
|
+
// Fetch caller ID
|
|
3251
|
+
const response = yield this.extensionService.fetchCallerId(token).toPromise();
|
|
3252
|
+
if (response && typeof response === 'object' && 'status' in response) {
|
|
3253
|
+
const callerIdRes = response;
|
|
3254
|
+
if (callerIdRes.status === 200) {
|
|
3255
|
+
const callerId = callerIdRes.callerid || 'Not set';
|
|
3256
|
+
localStorage.setItem('callerID', callerId);
|
|
3257
|
+
this.extensionService.changeMessage(callerId);
|
|
3258
|
+
}
|
|
3259
|
+
}
|
|
3260
|
+
}
|
|
3261
|
+
catch (error) {
|
|
3262
|
+
console.error('Error fetching initial data:', error);
|
|
3263
|
+
}
|
|
3264
|
+
}
|
|
3265
|
+
});
|
|
3266
|
+
}
|
|
3267
|
+
}
|
|
3268
|
+
AppInitializerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AppInitializerService, deps: [{ token: TwilioService }, { token: ExtensionService }, { token: i5.Router }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
3269
|
+
AppInitializerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AppInitializerService, providedIn: 'root' });
|
|
3270
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AppInitializerService, decorators: [{
|
|
3271
|
+
type: Injectable,
|
|
3272
|
+
args: [{
|
|
3273
|
+
providedIn: 'root'
|
|
3274
|
+
}]
|
|
3275
|
+
}], ctorParameters: function () {
|
|
3276
|
+
return [{ type: TwilioService }, { type: ExtensionService }, { type: i5.Router }, { type: Object, decorators: [{
|
|
3277
|
+
type: Inject,
|
|
3278
|
+
args: [PLATFORM_ID]
|
|
3279
|
+
}] }];
|
|
3280
|
+
} });
|
|
3281
|
+
|
|
3204
3282
|
class DialboxModule {
|
|
3205
3283
|
}
|
|
3206
3284
|
DialboxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DialboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
@@ -3217,7 +3295,19 @@ DialboxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version:
|
|
|
3217
3295
|
IncomingCallComponent,
|
|
3218
3296
|
CallProgressComponent,
|
|
3219
3297
|
CallerIdDialogComponent] });
|
|
3220
|
-
DialboxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DialboxModule,
|
|
3298
|
+
DialboxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DialboxModule, providers: [
|
|
3299
|
+
{
|
|
3300
|
+
provide: APP_INITIALIZER,
|
|
3301
|
+
useFactory: (injector) => {
|
|
3302
|
+
return () => {
|
|
3303
|
+
const appInitializer = injector.get(AppInitializerService);
|
|
3304
|
+
return appInitializer.initializeApp();
|
|
3305
|
+
};
|
|
3306
|
+
},
|
|
3307
|
+
deps: [Injector],
|
|
3308
|
+
multi: true
|
|
3309
|
+
}
|
|
3310
|
+
], imports: [CommonModule,
|
|
3221
3311
|
FormsModule,
|
|
3222
3312
|
ReactiveFormsModule,
|
|
3223
3313
|
HttpClientModule,
|
|
@@ -3246,6 +3336,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
3246
3336
|
IncomingCallComponent,
|
|
3247
3337
|
CallProgressComponent,
|
|
3248
3338
|
CallerIdDialogComponent,
|
|
3339
|
+
],
|
|
3340
|
+
providers: [
|
|
3341
|
+
{
|
|
3342
|
+
provide: APP_INITIALIZER,
|
|
3343
|
+
useFactory: (injector) => {
|
|
3344
|
+
return () => {
|
|
3345
|
+
const appInitializer = injector.get(AppInitializerService);
|
|
3346
|
+
return appInitializer.initializeApp();
|
|
3347
|
+
};
|
|
3348
|
+
},
|
|
3349
|
+
deps: [Injector],
|
|
3350
|
+
multi: true
|
|
3351
|
+
}
|
|
3249
3352
|
]
|
|
3250
3353
|
}]
|
|
3251
3354
|
}] });
|