ngx-scandoc 18.0.3 → 19.0.1
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/fesm2022/ngx-scandoc.mjs +128 -127
- package/fesm2022/ngx-scandoc.mjs.map +1 -1
- package/package.json +9 -11
- package/esm2022/core/app.worker.mjs +0 -236
- package/esm2022/core/components/base.component.mjs +0 -15
- package/esm2022/core/components/camera-switch/camera-switch.component.mjs +0 -25
- package/esm2022/core/components/components.module.mjs +0 -69
- package/esm2022/core/components/manual-scan/manual-scan.component.mjs +0 -290
- package/esm2022/core/components/scan/scan.component.mjs +0 -732
- package/esm2022/core/components/scan-results/scan-results.component.mjs +0 -65
- package/esm2022/core/components/webcam/domain/webcam-image.mjs +0 -58
- package/esm2022/core/components/webcam/domain/webcam-init-error.mjs +0 -3
- package/esm2022/core/components/webcam/domain/webcam-mirror-properties.mjs +0 -3
- package/esm2022/core/components/webcam/util/webcam.util.mjs +0 -50
- package/esm2022/core/components/webcam/webcam/webcam.component.mjs +0 -543
- package/esm2022/core/components/webcam/webcam.module.mjs +0 -29
- package/esm2022/core/helpers/object-utils.mjs +0 -100
- package/esm2022/core/interfaces/config.mjs +0 -2
- package/esm2022/core/interfaces/guest.data.mjs +0 -2
- package/esm2022/core/pipes/pipes.module.mjs +0 -19
- package/esm2022/core/pipes/safeResourceUrl.pipe.mjs +0 -20
- package/esm2022/core/shared/material.module.mjs +0 -162
- package/esm2022/core/tokens/config.tokens.mjs +0 -4
- package/esm2022/dialogs/components/blank/blank.component.mjs +0 -46
- package/esm2022/dialogs/components/confirm/confirm.component.mjs +0 -51
- package/esm2022/dialogs/components/loading/loading.component.mjs +0 -12
- package/esm2022/dialogs/components/prompt-manual/prompt-manual.component.mjs +0 -30
- package/esm2022/dialogs/components/scan-profile/scan-profile.component.mjs +0 -79
- package/esm2022/dialogs/components/scan-selfie/scan-selfie.component.mjs +0 -95
- package/esm2022/dialogs/components/turn-document/turn-document.component.mjs +0 -31
- package/esm2022/dialogs/dialogs.core.provider.mjs +0 -120
- package/esm2022/dialogs/dialogs.module.mjs +0 -102
- package/esm2022/forms/form.module.mjs +0 -87
- package/esm2022/forms/types/avatar.type.mjs +0 -58
- package/esm2022/forms/types/profile.image.type.mjs +0 -64
- package/esm2022/forms/types/title.type.mjs +0 -32
- package/esm2022/lib/ngx-scandoc.module.mjs +0 -44
- package/esm2022/ngx-scandoc.mjs +0 -5
- package/esm2022/providers/auth.provider.mjs +0 -113
- package/esm2022/providers/camera.provider.mjs +0 -87
- package/esm2022/providers/interceptor.provider.mjs +0 -77
- package/esm2022/providers/layout.provider.mjs +0 -30
- package/esm2022/providers/scan.form.mjs +0 -347
- package/esm2022/providers/scan.provider.mjs +0 -756
- package/esm2022/providers/translate-loader.provider.mjs +0 -126
- package/esm2022/providers/translation.provider.mjs +0 -133
- package/esm2022/providers/webrtc.provider.mjs +0 -58
- package/esm2022/public-api.mjs +0 -33
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { forkJoin, Observable, of, throwError } from 'rxjs';
|
|
3
|
-
import { catchError, map, retry } from 'rxjs/operators';
|
|
4
|
-
import { ObjectUtils } from '../core/helpers/object-utils';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/common/http";
|
|
7
|
-
export class ComponentTranslationModel {
|
|
8
|
-
constructor(obj) {
|
|
9
|
-
this.name = obj && obj.name;
|
|
10
|
-
this.path = obj && obj.path;
|
|
11
|
-
this.json = (obj && obj.json) || [];
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
export class TranslateLoaderProvider {
|
|
15
|
-
constructor(http) {
|
|
16
|
-
this.http = http;
|
|
17
|
-
// private prefix = null;
|
|
18
|
-
this.suffix = '.json';
|
|
19
|
-
this.providers = [];
|
|
20
|
-
this.queue = [];
|
|
21
|
-
}
|
|
22
|
-
ngOnDestroy() {
|
|
23
|
-
console.log('TRANSLATE DESTROY');
|
|
24
|
-
}
|
|
25
|
-
registerProvider(name, path) {
|
|
26
|
-
const registered = this.providers.find((provider) => provider.name === name);
|
|
27
|
-
if (registered) {
|
|
28
|
-
registered.path = path;
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
this.providers.push(new ComponentTranslationModel({ name: name, path: path }));
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
providerRegistered(name) {
|
|
35
|
-
return this.providers.find((x) => x.name === name) ? true : false;
|
|
36
|
-
}
|
|
37
|
-
getComponentToFetch(lang) {
|
|
38
|
-
const observableBatch = [];
|
|
39
|
-
if (!this.queue[lang]) {
|
|
40
|
-
this.queue[lang] = [];
|
|
41
|
-
}
|
|
42
|
-
this.providers.forEach((component) => {
|
|
43
|
-
if (!this.isComponentInQueue(lang, component.name)) {
|
|
44
|
-
this.queue[lang].push(component.name);
|
|
45
|
-
const translationUrl = `${component.path}/${lang}${this.suffix}?v=${Date.now()}`;
|
|
46
|
-
observableBatch.push(this.http.get(translationUrl).pipe(map((res) => {
|
|
47
|
-
component.json[lang] = res;
|
|
48
|
-
}), retry(3), catchError(() => throwError(`Failed to load ${translationUrl}`))));
|
|
49
|
-
}
|
|
50
|
-
});
|
|
51
|
-
return observableBatch;
|
|
52
|
-
}
|
|
53
|
-
init(lang) {
|
|
54
|
-
if (this.queue[lang] === undefined) {
|
|
55
|
-
this.queue[lang] = [];
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
isComponentInQueue(lang, name) {
|
|
59
|
-
return (this.queue[lang] || []).find((x) => x === name) ? true : false;
|
|
60
|
-
}
|
|
61
|
-
getFullTranslationJSON(lang) {
|
|
62
|
-
let result = {};
|
|
63
|
-
this.providers
|
|
64
|
-
.slice(0)
|
|
65
|
-
.sort((a, b) => {
|
|
66
|
-
if (a.name === 'app') {
|
|
67
|
-
return 1;
|
|
68
|
-
}
|
|
69
|
-
if (b.name === 'app') {
|
|
70
|
-
return -1;
|
|
71
|
-
}
|
|
72
|
-
return a.name.localeCompare(b.name);
|
|
73
|
-
})
|
|
74
|
-
.forEach((model) => {
|
|
75
|
-
if (model.json && model.json[lang]) {
|
|
76
|
-
result = ObjectUtils.merge(result, model.json[lang]);
|
|
77
|
-
}
|
|
78
|
-
});
|
|
79
|
-
return result;
|
|
80
|
-
}
|
|
81
|
-
getTranslation(lang) {
|
|
82
|
-
let hasFailures = false;
|
|
83
|
-
const batch = [
|
|
84
|
-
...this.getComponentToFetch(lang).map((observable) => {
|
|
85
|
-
return observable.pipe(catchError((error) => {
|
|
86
|
-
hasFailures = true;
|
|
87
|
-
return of(error);
|
|
88
|
-
}));
|
|
89
|
-
}),
|
|
90
|
-
];
|
|
91
|
-
return new Observable((observer) => {
|
|
92
|
-
if (batch.length > 0) {
|
|
93
|
-
forkJoin(batch).subscribe(() => {
|
|
94
|
-
const fullTranslation = this.getFullTranslationJSON(lang);
|
|
95
|
-
if (fullTranslation) {
|
|
96
|
-
observer.next(fullTranslation);
|
|
97
|
-
}
|
|
98
|
-
if (hasFailures) {
|
|
99
|
-
observer.error('Failed to load some resources');
|
|
100
|
-
}
|
|
101
|
-
else {
|
|
102
|
-
observer.complete();
|
|
103
|
-
}
|
|
104
|
-
}, (err) => {
|
|
105
|
-
observer.error('Failed to load some resources');
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
else {
|
|
109
|
-
const fullTranslation = this.getFullTranslationJSON(lang);
|
|
110
|
-
if (fullTranslation) {
|
|
111
|
-
observer.next(fullTranslation);
|
|
112
|
-
observer.complete();
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
});
|
|
116
|
-
}
|
|
117
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TranslateLoaderProvider, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
118
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TranslateLoaderProvider, providedIn: 'root' }); }
|
|
119
|
-
}
|
|
120
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TranslateLoaderProvider, decorators: [{
|
|
121
|
-
type: Injectable,
|
|
122
|
-
args: [{
|
|
123
|
-
providedIn: 'root',
|
|
124
|
-
}]
|
|
125
|
-
}], ctorParameters: () => [{ type: i1.HttpClient }] });
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLWxvYWRlci5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zY2FuZG9jL3NyYy9wcm92aWRlcnMvdHJhbnNsYXRlLWxvYWRlci5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRXRELE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7QUFDM0QsTUFBTSxPQUFPLHlCQUF5QjtJQUtwQyxZQUFZLEdBQVM7UUFDbkIsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQztRQUM1QixJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQzVCLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0NBQ0Y7QUFLRCxNQUFNLE9BQU8sdUJBQXVCO0lBTWxDLFlBQW9CLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7UUFMcEMseUJBQXlCO1FBQ2pCLFdBQU0sR0FBRyxPQUFPLENBQUM7UUFDakIsY0FBUyxHQUFnQyxFQUFFLENBQUM7UUFDNUMsVUFBSyxHQUFZLEVBQUUsQ0FBQztJQUVXLENBQUM7SUFFeEMsV0FBVztRQUNULE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsSUFBWSxFQUFF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LENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDakMsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNyQixRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUN2QixHQUFHLEVBQUU7b0JBQ0gsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDO29CQUUxRCxJQUFJLGVBQWUsRUFBRSxDQUFDO3dCQUNwQixRQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO29CQUNqQyxDQUFDO29CQUVELElBQUksV0FBVyxFQUFFLENBQUM7d0JBQ2hCLFFBQVEsQ0FBQyxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQztvQkFDbEQsQ0FBQzt5QkFBTSxDQUFDO3dCQUNOLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDdEIsQ0FBQztnQkFDSCxDQUFDLEVBQ0QsQ0FBQyxHQUFHLEVBQUUsRUFBRTtvQkFDTixRQUFRLENBQUMsS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUM7Z0JBQ2xELENBQUMsQ0FDRixDQUFDO1lBQ0osQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFFMUQsSUFBSSxlQUFlLEVBQUUsQ0FBQztvQkFDcEIsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztvQkFDL0IsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUN0QixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0ExSVUsdUJBQXVCO21IQUF2Qix1QkFBdUIsY0FGdEIsTUFBTTs7NEZBRVAsdUJBQXVCO2tCQUhuQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZUxvYWRlciB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgZm9ya0pvaW4sIE9ic2VydmFibGUsIG9mLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIHJldHJ5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgT2JqZWN0VXRpbHMgfSBmcm9tICcuLi9jb3JlL2hlbHBlcnMvb2JqZWN0LXV0aWxzJztcbmV4cG9ydCBjbGFzcyBDb21wb25lbnRUcmFuc2xhdGlvbk1vZGVsIHtcbiAgbmFtZTogc3RyaW5nO1xuICBwYXRoOiBzdHJpbmc7XG4gIGpzb246IHN0cmluZ1tdO1xuXG4gIGNvbnN0cnVjdG9yKG9iaj86IGFueSkge1xuICAgIHRoaXMubmFtZSA9IG9iaiAmJiBvYmoubmFtZTtcbiAgICB0aGlzLnBhdGggPSBvYmogJiYgb2JqLnBhdGg7XG4gICAgdGhpcy5qc29uID0gKG9iaiAmJiBvYmouanNvbikgfHwgW107XG4gIH1cbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFRyYW5zbGF0ZUxvYWRlclByb3ZpZGVyIGltcGxlbWVudHMgVHJhbnNsYXRlTG9hZGVyLCBPbkRlc3Ryb3kge1xuICAvLyBwcml2YXRlIHByZWZpeCA9IG51bGw7XG4gIHByaXZhdGUgc3VmZml4ID0gJy5qc29uJztcbiAgcHJpdmF0ZSBwcm92aWRlcnM6IENvbXBvbmVudFRyYW5zbGF0aW9uTW9kZWxbXSA9IFtdO1xuICBwcml2YXRlIHF1ZXVlOiBhbnlbXVtdID0gW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7fVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGNvbnNvbGUubG9nKCdUUkFOU0xBVEUgREVTVFJPWScpO1xuICB9XG5cbiAgcmVnaXN0ZXJQcm92aWRlcihuYW1lOiBzdHJpbmcsIHBhdGg6IHN0cmluZykge1xuICAgIGNvbnN0IHJlZ2lzdGVyZWQgPSB0aGlzLnByb3ZpZGVycy5maW5kKFxuICAgICAgKHByb3ZpZGVyKSA9PiBwcm92aWRlci5uYW1lID09PSBuYW1lXG4gICAgKTtcblxuICAgIGlmIChyZWdpc3RlcmVkKSB7XG4gICAgICByZWdpc3RlcmVkLnBhdGggPSBwYXRoO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnByb3ZpZGVycy5wdXNoKFxuICAgICAgICBuZXcgQ29tcG9uZW50VHJhbnNsYXRpb25Nb2RlbCh7IG5hbWU6IG5hbWUsIHBhdGg6IHBhdGggfSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJvdmlkZXJSZWdpc3RlcmVkKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnByb3ZpZGVycy5maW5kKCh4KSA9PiB4Lm5hbWUgPT09IG5hbWUpID8gdHJ1ZSA6IGZhbHNlO1xuICB9XG5cbiAgZ2V0Q29tcG9uZW50VG9GZXRjaChsYW5nOiBhbnkpOiBBcnJheTxPYnNlcnZhYmxlPGFueT4+IHtcbiAgICBjb25zdCBvYnNlcnZhYmxlQmF0Y2g6IGFueSA9IFtdO1xuXG4gICAgaWYgKCF0aGlzLnF1ZXVlW2xhbmddKSB7XG4gICAgICB0aGlzLnF1ZXVlW2xhbmddID0gW107XG4gICAgfVxuXG4gICAgdGhpcy5wcm92aWRlcnMuZm9yRWFjaCgoY29tcG9uZW50OmFueSkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmlzQ29tcG9uZW50SW5RdWV1ZShsYW5nLCBjb21wb25lbnQubmFtZSkpIHtcbiAgICAgICAgdGhpcy5xdWV1ZVtsYW5nXS5wdXNoKGNvbXBvbmVudC5uYW1lKTtcblxuICAgICAgICBjb25zdCB0cmFuc2xhdGlvblVybCA9IGAke2NvbXBvbmVudC5wYXRofS8ke2xhbmd9JHtcbiAgICAgICAgICB0aGlzLnN1ZmZpeFxuICAgICAgICB9P3Y9JHtEYXRlLm5vdygpfWA7XG5cbiAgICAgICAgb2JzZXJ2YWJsZUJhdGNoLnB1c2goXG4gICAgICAgICAgdGhpcy5odHRwLmdldCh0cmFuc2xhdGlvblVybCkucGlwZShcbiAgICAgICAgICAgIG1hcCgocmVzKSA9PiB7XG4gICAgICAgICAgICAgIGNvbXBvbmVudC5qc29uW2xhbmddID0gcmVzO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICByZXRyeSgzKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gdGhyb3dFcnJvcihgRmFpbGVkIHRvIGxvYWQgJHt0cmFuc2xhdGlvblVybH1gKSlcbiAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gb2JzZXJ2YWJsZUJhdGNoO1xuICB9XG5cbiAgaW5pdChsYW5nOiBhbnkpIHtcbiAgICBpZiAodGhpcy5xdWV1ZVtsYW5nXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnF1ZXVlW2xhbmddID0gW107XG4gICAgfVxuICB9XG5cbiAgaXNDb21wb25lbnRJblF1ZXVlKGxhbmc6IGFueSwgbmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuICh0aGlzLnF1ZXVlW2xhbmddIHx8IFtdKS5maW5kKCh4KSA9PiB4ID09PSBuYW1lKSA/IHRydWUgOiBmYWxzZTtcbiAgfVxuXG4gIGdldEZ1bGxUcmFuc2xhdGlvbkpTT04obGFuZzogYW55KTogYW55IHtcbiAgICBsZXQgcmVzdWx0ID0ge307XG5cbiAgICB0aGlzLnByb3ZpZGVyc1xuICAgICAgLnNsaWNlKDApXG4gICAgICAuc29ydCgoYSwgYikgPT4ge1xuICAgICAgICBpZiAoYS5uYW1lID09PSAnYXBwJykge1xuICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGIubmFtZSA9PT0gJ2FwcCcpIHtcbiAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYS5uYW1lLmxvY2FsZUNvbXBhcmUoYi5uYW1lKTtcbiAgICAgIH0pXG4gICAgICAuZm9yRWFjaCgobW9kZWwpID0+IHtcbiAgICAgICAgaWYgKG1vZGVsLmpzb24gJiYgbW9kZWwuanNvbltsYW5nXSkge1xuICAgICAgICAgIHJlc3VsdCA9IE9iamVjdFV0aWxzLm1lcmdlKHJlc3VsdCwgbW9kZWwuanNvbltsYW5nXSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGdldFRyYW5zbGF0aW9uKGxhbmc6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IGhhc0ZhaWx1cmVzID0gZmFsc2U7XG4gICAgY29uc3QgYmF0Y2ggPSBbXG4gICAgICAuLi50aGlzLmdldENvbXBvbmVudFRvRmV0Y2gobGFuZykubWFwKChvYnNlcnZhYmxlKSA9PiB7XG4gICAgICAgIHJldHVybiBvYnNlcnZhYmxlLnBpcGUoXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgICAgIGhhc0ZhaWx1cmVzID0gdHJ1ZTtcblxuICAgICAgICAgICAgcmV0dXJuIG9mKGVycm9yKTtcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSksXG4gICAgXTtcblxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgob2JzZXJ2ZXIpID0+IHtcbiAgICAgIGlmIChiYXRjaC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGZvcmtKb2luKGJhdGNoKS5zdWJzY3JpYmUoXG4gICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZnVsbFRyYW5zbGF0aW9uID0gdGhpcy5nZXRGdWxsVHJhbnNsYXRpb25KU09OKGxhbmcpO1xuXG4gICAgICAgICAgICBpZiAoZnVsbFRyYW5zbGF0aW9uKSB7XG4gICAgICAgICAgICAgIG9ic2VydmVyLm5leHQoZnVsbFRyYW5zbGF0aW9uKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGhhc0ZhaWx1cmVzKSB7XG4gICAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKCdGYWlsZWQgdG8gbG9hZCBzb21lIHJlc291cmNlcycpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKCdGYWlsZWQgdG8gbG9hZCBzb21lIHJlc291cmNlcycpO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGZ1bGxUcmFuc2xhdGlvbiA9IHRoaXMuZ2V0RnVsbFRyYW5zbGF0aW9uSlNPTihsYW5nKTtcblxuICAgICAgICBpZiAoZnVsbFRyYW5zbGF0aW9uKSB7XG4gICAgICAgICAgb2JzZXJ2ZXIubmV4dChmdWxsVHJhbnNsYXRpb24pO1xuICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
import { Inject, Injectable, InjectionToken, Optional, } from '@angular/core';
|
|
2
|
-
import { switchMap, catchError } from 'rxjs/operators';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@ngx-translate/core";
|
|
5
|
-
import * as i2 from "@angular/common";
|
|
6
|
-
const TRANSLATION_PROVIDER = new InjectionToken('Injection token for translation providers.');
|
|
7
|
-
export class NgxScanDocTranslationProvider {
|
|
8
|
-
constructor(translate, injector,
|
|
9
|
-
//@Optional() @Inject(SCAN_CONFIG_TOKEN) config: ScanConfig,
|
|
10
|
-
providers, platformLocation) {
|
|
11
|
-
this.translate = translate;
|
|
12
|
-
this.injector = injector;
|
|
13
|
-
this.platformLocation = platformLocation;
|
|
14
|
-
console.log('MM', Math.random());
|
|
15
|
-
this.customLoader = this.translate.currentLoader;
|
|
16
|
-
//console.log('config',config)
|
|
17
|
-
// console.log(this.translate)
|
|
18
|
-
if (providers && providers.length > 0) {
|
|
19
|
-
for (const provider of providers) {
|
|
20
|
-
this.addTranslationFolder(provider.name, provider.source);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
path(path) {
|
|
25
|
-
return path;
|
|
26
|
-
// const baseHref = this.platformLocation
|
|
27
|
-
// .getBaseHrefFromDOM()
|
|
28
|
-
// .split('/')
|
|
29
|
-
// .join('');
|
|
30
|
-
// return baseHref != '' ? `/${baseHref}${path}` : path;
|
|
31
|
-
}
|
|
32
|
-
setDefaultLang(lang) {
|
|
33
|
-
this.defaultLang = lang;
|
|
34
|
-
this.translate.setDefaultLang(this.defaultLang);
|
|
35
|
-
}
|
|
36
|
-
registerTranslationFolder(name = '', path = '') {
|
|
37
|
-
console.log(name, path, this.userLang, this.defaultLang);
|
|
38
|
-
if (!this.customLoader.providerRegistered(name)) {
|
|
39
|
-
this.customLoader.registerProvider(name, this.path(path));
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
addTranslationFolder(name = '', path = '') {
|
|
43
|
-
console.log(name, path, this.userLang, this.defaultLang);
|
|
44
|
-
if (!this.customLoader.providerRegistered(name)) {
|
|
45
|
-
this.customLoader.registerProvider(name, this.path(path));
|
|
46
|
-
if (this.userLang) {
|
|
47
|
-
const existCurrentLang = this.translate.currentLang ? true : false;
|
|
48
|
-
this.loadTranslation(this.userLang, this.defaultLang, !existCurrentLang);
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
this.loadTranslation(this.defaultLang);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
loadTranslation(lang, fallback, useLang = true) {
|
|
56
|
-
this.translate.getTranslation(lang).subscribe((resp) => {
|
|
57
|
-
this.onTranslationChanged(lang);
|
|
58
|
-
if (useLang) {
|
|
59
|
-
setTimeout(() => {
|
|
60
|
-
this.translate.use(lang);
|
|
61
|
-
}, 20);
|
|
62
|
-
}
|
|
63
|
-
// this.translate.reloadLang(lang)
|
|
64
|
-
}, () => {
|
|
65
|
-
if (fallback && fallback !== lang) {
|
|
66
|
-
this.loadTranslation(fallback);
|
|
67
|
-
}
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
updateTranslation(lang, fallback) {
|
|
71
|
-
return this.translate.getTranslation(lang).pipe(catchError(() => {
|
|
72
|
-
if (fallback && fallback !== lang) {
|
|
73
|
-
return this.updateTranslation(fallback);
|
|
74
|
-
}
|
|
75
|
-
return this.translate.use(lang);
|
|
76
|
-
}), switchMap(() => {
|
|
77
|
-
this.onTranslationChanged(lang);
|
|
78
|
-
return this.translate.use(lang);
|
|
79
|
-
}));
|
|
80
|
-
}
|
|
81
|
-
onTranslationChanged(lang) {
|
|
82
|
-
this.translate.onTranslationChange.next({
|
|
83
|
-
lang,
|
|
84
|
-
translations: this.customLoader.getFullTranslationJSON(lang),
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
use(lang) {
|
|
88
|
-
this.customLoader.init(lang);
|
|
89
|
-
return this.updateTranslation(lang);
|
|
90
|
-
}
|
|
91
|
-
forms(item, namespace = null) {
|
|
92
|
-
if (item.fieldGroup) {
|
|
93
|
-
item.fieldGroup = item.fieldGroup.map((field) => this.forms(field));
|
|
94
|
-
}
|
|
95
|
-
const prefix = namespace ? namespace + '.' : '';
|
|
96
|
-
if (item.props &&
|
|
97
|
-
(item.props.label || item.props.placeholder || item.props.options)) {
|
|
98
|
-
if (!item.expressions) {
|
|
99
|
-
item.expressions = {};
|
|
100
|
-
}
|
|
101
|
-
if (item.props.label) {
|
|
102
|
-
item.expressions['props.label'] = this.translate.stream(prefix + item.props.label);
|
|
103
|
-
}
|
|
104
|
-
if (item.props.placeholder) {
|
|
105
|
-
item.expressions['props.placeholder'] = this.translate.stream(prefix + item.props.placeholder);
|
|
106
|
-
}
|
|
107
|
-
if (Array.isArray(item.props.options)) {
|
|
108
|
-
item.expressions['props.options'] = item.props.options.map((m) => {
|
|
109
|
-
// console.log(m);
|
|
110
|
-
if (m.label) {
|
|
111
|
-
m.label = this.translate.instant(prefix + m.label);
|
|
112
|
-
}
|
|
113
|
-
return m;
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
return item;
|
|
118
|
-
}
|
|
119
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxScanDocTranslationProvider, deps: [{ token: i1.TranslateService }, { token: i0.Injector }, { token: TRANSLATION_PROVIDER, optional: true }, { token: i2.PlatformLocation }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
120
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxScanDocTranslationProvider, providedIn: 'root' }); }
|
|
121
|
-
}
|
|
122
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxScanDocTranslationProvider, decorators: [{
|
|
123
|
-
type: Injectable,
|
|
124
|
-
args: [{
|
|
125
|
-
providedIn: 'root',
|
|
126
|
-
}]
|
|
127
|
-
}], ctorParameters: () => [{ type: i1.TranslateService }, { type: i0.Injector }, { type: undefined, decorators: [{
|
|
128
|
-
type: Optional
|
|
129
|
-
}, {
|
|
130
|
-
type: Inject,
|
|
131
|
-
args: [TRANSLATION_PROVIDER]
|
|
132
|
-
}] }, { type: i2.PlatformLocation }] });
|
|
133
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24ucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2NhbmRvYy9zcmMvcHJvdmlkZXJzL3RyYW5zbGF0aW9uLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCxNQUFNLEVBQ04sVUFBVSxFQUNWLGNBQWMsRUFFZCxRQUFRLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFLdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUd2RCxNQUFNLG9CQUFvQixHQUFHLElBQUksY0FBYyxDQUM3Qyw0Q0FBNEMsQ0FDN0MsQ0FBQztBQVNGLE1BQU0sT0FBTyw2QkFBNkI7SUFLeEMsWUFDUyxTQUEyQixFQUMxQixRQUFrQjtJQUMxQiw0REFBNEQ7SUFDbEIsU0FBZ0MsRUFDbEUsZ0JBQWtDO1FBSm5DLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzFCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFHbEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUUxQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBd0MsQ0FBQztRQUM1RSw4QkFBOEI7UUFFOUIsOEJBQThCO1FBRTlCLElBQUksU0FBUyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdEMsS0FBSyxNQUFNLFFBQVEsSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFDakMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzVELENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUNPLElBQUksQ0FBQyxJQUFTO1FBQ3BCLE9BQU8sSUFBSSxDQUFDO1FBQ1oseUNBQXlDO1FBQ3pDLDBCQUEwQjtRQUMxQixnQkFBZ0I7UUFDaEIsZUFBZTtRQUVmLHdEQUF3RDtJQUMxRCxDQUFDO0lBRU0sY0FBYyxDQUFDLElBQVk7UUFDaEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFTSx5QkFBeUIsQ0FBQyxPQUFlLEVBQUUsRUFBRSxPQUFlLEVBQUU7UUFDbkUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRXpELElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDaEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzVELENBQUM7SUFDSCxDQUFDO0lBRU0sb0JBQW9CLENBQUMsT0FBZSxFQUFFLEVBQUUsT0FBZSxFQUFFO1FBQzlELE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUV6RCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ2hELElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUUxRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDbEIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7Z0JBRW5FLElBQUksQ0FBQyxlQUFlLENBQ2xCLElBQUksQ0FBQyxRQUFRLEVBQ2IsSUFBSSxDQUFDLFdBQVcsRUFDaEIsQ0FBQyxnQkFBZ0IsQ0FDbEIsQ0FBQztZQUNKLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN6QyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTSxlQUFlLENBQUMsSUFBWSxFQUFFLFFBQWlCLEVBQUUsT0FBTyxHQUFHLElBQUk7UUFDcEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUMzQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ1AsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBRWhDLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ1osVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDZCxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDM0IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ1QsQ0FBQztZQUNELGtDQUFrQztRQUNwQyxDQUFDLEVBQ0QsR0FBRyxFQUFFO1lBQ0gsSUFBSSxRQUFRLElBQUksUUFBUSxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUNsQyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2pDLENBQUM7UUFDSCxDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxJQUFZLEVBQUUsUUFBaUI7UUFDdkQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQzdDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLFFBQVEsSUFBSSxRQUFRLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQ2xDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzFDLENBQUM7WUFFRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxFQUNGLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDYixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFaEMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVPLG9CQUFvQixDQUFDLElBQVk7UUFDdkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUM7WUFDdEMsSUFBSTtZQUNKLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQztTQUM3RCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sR0FBRyxDQUFDLElBQVk7UUFDckIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFN0IsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUNELEtBQUssQ0FBQyxJQUFTLEVBQUUsU0FBUyxHQUFHLElBQUk7UUFDL0IsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzNFLENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVoRCxJQUNFLElBQUksQ0FBQyxLQUFLO1lBQ1YsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUNsRSxDQUFDO1lBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDdEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7WUFDeEIsQ0FBQztZQUNELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDckIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FDckQsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUMxQixDQUFDO1lBQ0osQ0FBQztZQUNELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUMzRCxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQ2hDLENBQUM7WUFDSixDQUFDO1lBQ0QsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFDdEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRTtvQkFDcEUsa0JBQWtCO29CQUNsQixJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQzt3QkFDWixDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3JELENBQUM7b0JBQ0QsT0FBTyxDQUFDLENBQUM7Z0JBQ1gsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzsrR0F4SlUsNkJBQTZCLDBFQVNsQixvQkFBb0I7bUhBVC9CLDZCQUE2QixjQUY1QixNQUFNOzs0RkFFUCw2QkFBNkI7a0JBSHpDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFVSSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYXRmb3JtTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgSW5qZWN0LFxuICBJbmplY3RhYmxlLFxuICBJbmplY3Rpb25Ub2tlbixcbiAgSW5qZWN0b3IsXG4gIE9wdGlvbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRyYW5zbGF0ZUxvYWRlclByb3ZpZGVyIH0gZnJvbSAnLi90cmFuc2xhdGUtbG9hZGVyLnByb3ZpZGVyJztcblxuaW1wb3J0IHsgc3dpdGNoTWFwLCBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU2NhbkNvbmZpZyB9IGZyb20gJy4uL2NvcmUvaW50ZXJmYWNlcy9jb25maWcnO1xuaW1wb3J0IHsgU0NBTl9DT05GSUdfVE9LRU4gfSBmcm9tICcuLi9jb3JlL3Rva2Vucy9jb25maWcudG9rZW5zJztcbmNvbnN0IFRSQU5TTEFUSU9OX1BST1ZJREVSID0gbmV3IEluamVjdGlvblRva2VuKFxuICAnSW5qZWN0aW9uIHRva2VuIGZvciB0cmFuc2xhdGlvbiBwcm92aWRlcnMuJ1xuKTtcblxuaW50ZXJmYWNlIFRyYW5zbGF0aW9uUHJvdmlkZXIge1xuICBuYW1lOiBzdHJpbmc7XG4gIHNvdXJjZTogc3RyaW5nO1xufVxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE5neFNjYW5Eb2NUcmFuc2xhdGlvblByb3ZpZGVyIHtcbiAgcHVibGljIGRlZmF1bHRMYW5nITogc3RyaW5nO1xuICBwdWJsaWMgdXNlckxhbmchOiBzdHJpbmc7XG4gIHByaXZhdGUgY3VzdG9tTG9hZGVyITogVHJhbnNsYXRlTG9hZGVyUHJvdmlkZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAvL0BPcHRpb25hbCgpIEBJbmplY3QoU0NBTl9DT05GSUdfVE9LRU4pIGNvbmZpZzogU2NhbkNvbmZpZyxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFRSQU5TTEFUSU9OX1BST1ZJREVSKSBwcm92aWRlcnM6IFRyYW5zbGF0aW9uUHJvdmlkZXJbXSxcbiAgICBwcml2YXRlIHBsYXRmb3JtTG9jYXRpb246IFBsYXRmb3JtTG9jYXRpb25cbiAgKSB7XG4gICAgY29uc29sZS5sb2coJ01NJywgTWF0aC5yYW5kb20oKSk7XG4gICAgdGhpcy5jdXN0b21Mb2FkZXIgPSB0aGlzLnRyYW5zbGF0ZS5jdXJyZW50TG9hZGVyIGFzIFRyYW5zbGF0ZUxvYWRlclByb3ZpZGVyO1xuICAgIC8vY29uc29sZS5sb2coJ2NvbmZpZycsY29uZmlnKVxuXG4gICAgLy8gY29uc29sZS5sb2codGhpcy50cmFuc2xhdGUpXG5cbiAgICBpZiAocHJvdmlkZXJzICYmIHByb3ZpZGVycy5sZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKGNvbnN0IHByb3ZpZGVyIG9mIHByb3ZpZGVycykge1xuICAgICAgICB0aGlzLmFkZFRyYW5zbGF0aW9uRm9sZGVyKHByb3ZpZGVyLm5hbWUsIHByb3ZpZGVyLnNvdXJjZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHByaXZhdGUgcGF0aChwYXRoOiBhbnkpIHtcbiAgICByZXR1cm4gcGF0aDtcbiAgICAvLyBjb25zdCBiYXNlSHJlZiA9IHRoaXMucGxhdGZvcm1Mb2NhdGlvblxuICAgIC8vICAgLmdldEJhc2VIcmVmRnJvbURPTSgpXG4gICAgLy8gICAuc3BsaXQoJy8nKVxuICAgIC8vICAgLmpvaW4oJycpO1xuXG4gICAgLy8gcmV0dXJuIGJhc2VIcmVmICE9ICcnID8gYC8ke2Jhc2VIcmVmfSR7cGF0aH1gIDogcGF0aDtcbiAgfVxuXG4gIHB1YmxpYyBzZXREZWZhdWx0TGFuZyhsYW5nOiBzdHJpbmcpIHtcbiAgICB0aGlzLmRlZmF1bHRMYW5nID0gbGFuZztcbiAgICB0aGlzLnRyYW5zbGF0ZS5zZXREZWZhdWx0TGFuZyh0aGlzLmRlZmF1bHRMYW5nKTtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3RlclRyYW5zbGF0aW9uRm9sZGVyKG5hbWU6IHN0cmluZyA9ICcnLCBwYXRoOiBzdHJpbmcgPSAnJykge1xuICAgIGNvbnNvbGUubG9nKG5hbWUsIHBhdGgsIHRoaXMudXNlckxhbmcsIHRoaXMuZGVmYXVsdExhbmcpO1xuXG4gICAgaWYgKCF0aGlzLmN1c3RvbUxvYWRlci5wcm92aWRlclJlZ2lzdGVyZWQobmFtZSkpIHtcbiAgICAgIHRoaXMuY3VzdG9tTG9hZGVyLnJlZ2lzdGVyUHJvdmlkZXIobmFtZSwgdGhpcy5wYXRoKHBhdGgpKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYWRkVHJhbnNsYXRpb25Gb2xkZXIobmFtZTogc3RyaW5nID0gJycsIHBhdGg6IHN0cmluZyA9ICcnKSB7XG4gICAgY29uc29sZS5sb2cobmFtZSwgcGF0aCwgdGhpcy51c2VyTGFuZywgdGhpcy5kZWZhdWx0TGFuZyk7XG5cbiAgICBpZiAoIXRoaXMuY3VzdG9tTG9hZGVyLnByb3ZpZGVyUmVnaXN0ZXJlZChuYW1lKSkge1xuICAgICAgdGhpcy5jdXN0b21Mb2FkZXIucmVnaXN0ZXJQcm92aWRlcihuYW1lLCB0aGlzLnBhdGgocGF0aCkpO1xuXG4gICAgICBpZiAodGhpcy51c2VyTGFuZykge1xuICAgICAgICBjb25zdCBleGlzdEN1cnJlbnRMYW5nID0gdGhpcy50cmFuc2xhdGUuY3VycmVudExhbmcgPyB0cnVlIDogZmFsc2U7XG5cbiAgICAgICAgdGhpcy5sb2FkVHJhbnNsYXRpb24oXG4gICAgICAgICAgdGhpcy51c2VyTGFuZyxcbiAgICAgICAgICB0aGlzLmRlZmF1bHRMYW5nLFxuICAgICAgICAgICFleGlzdEN1cnJlbnRMYW5nXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmxvYWRUcmFuc2xhdGlvbih0aGlzLmRlZmF1bHRMYW5nKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbG9hZFRyYW5zbGF0aW9uKGxhbmc6IHN0cmluZywgZmFsbGJhY2s/OiBzdHJpbmcsIHVzZUxhbmcgPSB0cnVlKSB7XG4gICAgdGhpcy50cmFuc2xhdGUuZ2V0VHJhbnNsYXRpb24obGFuZykuc3Vic2NyaWJlKFxuICAgICAgKHJlc3ApID0+IHtcbiAgICAgICAgdGhpcy5vblRyYW5zbGF0aW9uQ2hhbmdlZChsYW5nKTtcblxuICAgICAgICBpZiAodXNlTGFuZykge1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGUudXNlKGxhbmcpO1xuICAgICAgICAgIH0sIDIwKTtcbiAgICAgICAgfVxuICAgICAgICAvLyB0aGlzLnRyYW5zbGF0ZS5yZWxvYWRMYW5nKGxhbmcpXG4gICAgICB9LFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAoZmFsbGJhY2sgJiYgZmFsbGJhY2sgIT09IGxhbmcpIHtcbiAgICAgICAgICB0aGlzLmxvYWRUcmFuc2xhdGlvbihmYWxsYmFjayk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVUcmFuc2xhdGlvbihsYW5nOiBzdHJpbmcsIGZhbGxiYWNrPzogc3RyaW5nKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuZ2V0VHJhbnNsYXRpb24obGFuZykucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xuICAgICAgICBpZiAoZmFsbGJhY2sgJiYgZmFsbGJhY2sgIT09IGxhbmcpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy51cGRhdGVUcmFuc2xhdGlvbihmYWxsYmFjayk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUudXNlKGxhbmcpO1xuICAgICAgfSksXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgICB0aGlzLm9uVHJhbnNsYXRpb25DaGFuZ2VkKGxhbmcpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS51c2UobGFuZyk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIG9uVHJhbnNsYXRpb25DaGFuZ2VkKGxhbmc6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMudHJhbnNsYXRlLm9uVHJhbnNsYXRpb25DaGFuZ2UubmV4dCh7XG4gICAgICBsYW5nLFxuICAgICAgdHJhbnNsYXRpb25zOiB0aGlzLmN1c3RvbUxvYWRlci5nZXRGdWxsVHJhbnNsYXRpb25KU09OKGxhbmcpLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHVzZShsYW5nOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHRoaXMuY3VzdG9tTG9hZGVyLmluaXQobGFuZyk7XG5cbiAgICByZXR1cm4gdGhpcy51cGRhdGVUcmFuc2xhdGlvbihsYW5nKTtcbiAgfVxuICBmb3JtcyhpdGVtOiBhbnksIG5hbWVzcGFjZSA9IG51bGwpIHtcbiAgICBpZiAoaXRlbS5maWVsZEdyb3VwKSB7XG4gICAgICBpdGVtLmZpZWxkR3JvdXAgPSBpdGVtLmZpZWxkR3JvdXAubWFwKChmaWVsZDogYW55KSA9PiB0aGlzLmZvcm1zKGZpZWxkKSk7XG4gICAgfVxuXG4gICAgY29uc3QgcHJlZml4ID0gbmFtZXNwYWNlID8gbmFtZXNwYWNlICsgJy4nIDogJyc7XG5cbiAgICBpZiAoXG4gICAgICBpdGVtLnByb3BzICYmXG4gICAgICAoaXRlbS5wcm9wcy5sYWJlbCB8fCBpdGVtLnByb3BzLnBsYWNlaG9sZGVyIHx8IGl0ZW0ucHJvcHMub3B0aW9ucylcbiAgICApIHtcbiAgICAgIGlmICghaXRlbS5leHByZXNzaW9ucykge1xuICAgICAgICBpdGVtLmV4cHJlc3Npb25zID0ge307XG4gICAgICB9XG4gICAgICBpZiAoaXRlbS5wcm9wcy5sYWJlbCkge1xuICAgICAgICBpdGVtLmV4cHJlc3Npb25zWydwcm9wcy5sYWJlbCddID0gdGhpcy50cmFuc2xhdGUuc3RyZWFtKFxuICAgICAgICAgIHByZWZpeCArIGl0ZW0ucHJvcHMubGFiZWxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmIChpdGVtLnByb3BzLnBsYWNlaG9sZGVyKSB7XG4gICAgICAgIGl0ZW0uZXhwcmVzc2lvbnNbJ3Byb3BzLnBsYWNlaG9sZGVyJ10gPSB0aGlzLnRyYW5zbGF0ZS5zdHJlYW0oXG4gICAgICAgICAgcHJlZml4ICsgaXRlbS5wcm9wcy5wbGFjZWhvbGRlclxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbS5wcm9wcy5vcHRpb25zKSkge1xuICAgICAgICBpdGVtLmV4cHJlc3Npb25zWydwcm9wcy5vcHRpb25zJ10gPSBpdGVtLnByb3BzLm9wdGlvbnMubWFwKChtOiBhbnkpID0+IHtcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZyhtKTtcbiAgICAgICAgICBpZiAobS5sYWJlbCkge1xuICAgICAgICAgICAgbS5sYWJlbCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQocHJlZml4ICsgbS5sYWJlbCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBtO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gaXRlbTtcbiAgfVxufVxuIl19
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { webSocket } from 'rxjs/webSocket';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class webRtcProvider {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.pc = new RTCPeerConnection();
|
|
7
|
-
}
|
|
8
|
-
connect(id = 1) {
|
|
9
|
-
this.subject = webSocket('wss://localhost:3000?id=' + id);
|
|
10
|
-
}
|
|
11
|
-
setup() {
|
|
12
|
-
this.connect(1);
|
|
13
|
-
// try {
|
|
14
|
-
// this.pc = new RTCPeerConnection({
|
|
15
|
-
// iceServers: [
|
|
16
|
-
// { urls: 'stun:stun.services.mozilla.com' },
|
|
17
|
-
// { urls: 'stun:stun.l.google.com:19302' },
|
|
18
|
-
// ],
|
|
19
|
-
// });
|
|
20
|
-
// } catch (error) {
|
|
21
|
-
// console.log(error);
|
|
22
|
-
// this.pc = new RTCPeerConnection({
|
|
23
|
-
// iceServers: [
|
|
24
|
-
// { urls: 'stun:stun.services.mozilla.com' },
|
|
25
|
-
// { urls: 'stun:stun.l.google.com:19302' },
|
|
26
|
-
// ],
|
|
27
|
-
// });
|
|
28
|
-
// }
|
|
29
|
-
// this.pc.onicecandidate = (event) => {
|
|
30
|
-
// event.candidate
|
|
31
|
-
// ? this.sendMessage({ ice: event.candidate })
|
|
32
|
-
// : console.log('Sent All Ice');
|
|
33
|
-
// };
|
|
34
|
-
// if (this.pc) {
|
|
35
|
-
// from(this.pc.createOffer())
|
|
36
|
-
// .pipe(switchMap((offer) => from(this.pc.setLocalDescription(offer))))
|
|
37
|
-
// .subscribe((data: any) => {
|
|
38
|
-
// this.sendMessage({
|
|
39
|
-
// type: 'offer',
|
|
40
|
-
// sdp: this.pc.localDescription,
|
|
41
|
-
// });
|
|
42
|
-
// });
|
|
43
|
-
// }
|
|
44
|
-
}
|
|
45
|
-
sendMessage(data) {
|
|
46
|
-
console.log(data);
|
|
47
|
-
this.subject.next(JSON.stringify(data));
|
|
48
|
-
}
|
|
49
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: webRtcProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
50
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: webRtcProvider, providedIn: 'root' }); }
|
|
51
|
-
}
|
|
52
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: webRtcProvider, decorators: [{
|
|
53
|
-
type: Injectable,
|
|
54
|
-
args: [{
|
|
55
|
-
providedIn: 'root',
|
|
56
|
-
}]
|
|
57
|
-
}], ctorParameters: () => [] });
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2VicnRjLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNjYW5kb2Mvc3JjL3Byb3ZpZGVycy93ZWJydGMucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBTTNDLE1BQU0sT0FBTyxjQUFjO0lBR3pCO1FBRkEsT0FBRSxHQUFzQixJQUFJLGlCQUFpQixFQUFFLENBQUM7SUFFakMsQ0FBQztJQUVoQixPQUFPLENBQUMsRUFBRSxHQUFHLENBQUM7UUFDWixJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQywwQkFBMEIsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsS0FBSztRQUVILElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFFZixRQUFRO1FBQ1Isc0NBQXNDO1FBQ3RDLG9CQUFvQjtRQUNwQixvREFBb0Q7UUFDcEQsa0RBQWtEO1FBQ2xELFNBQVM7UUFDVCxRQUFRO1FBQ1Isb0JBQW9CO1FBQ3BCLHdCQUF3QjtRQUN4QixzQ0FBc0M7UUFDdEMsb0JBQW9CO1FBQ3BCLG9EQUFvRDtRQUNwRCxrREFBa0Q7UUFDbEQsU0FBUztRQUNULFFBQVE7UUFDUixJQUFJO1FBRUosd0NBQXdDO1FBQ3hDLG9CQUFvQjtRQUNwQixtREFBbUQ7UUFDbkQscUNBQXFDO1FBQ3JDLEtBQUs7UUFFTCxpQkFBaUI7UUFDakIsZ0NBQWdDO1FBQ2hDLDRFQUE0RTtRQUM1RSxrQ0FBa0M7UUFDbEMsMkJBQTJCO1FBQzNCLHlCQUF5QjtRQUN6Qix5Q0FBeUM7UUFDekMsWUFBWTtRQUNaLFVBQVU7UUFDVixJQUFJO0lBQ04sQ0FBQztJQUNELFdBQVcsQ0FBQyxJQUFTO1FBQ25CLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7K0dBbERVLGNBQWM7bUhBQWQsY0FBYyxjQUZiLE1BQU07OzRGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgd2ViU29ja2V0IH0gZnJvbSAncnhqcy93ZWJTb2NrZXQnO1xuaW1wb3J0IHsgZnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3Mgd2ViUnRjUHJvdmlkZXIge1xuICBwYzogUlRDUGVlckNvbm5lY3Rpb24gPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTtcbiAgc3ViamVjdDogYW55O1xuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgY29ubmVjdChpZCA9IDEpIHtcbiAgICB0aGlzLnN1YmplY3QgPSB3ZWJTb2NrZXQoJ3dzczovL2xvY2FsaG9zdDozMDAwP2lkPScgKyBpZCk7XG4gIH1cblxuICBzZXR1cCgpIHtcblxuICAgIHRoaXMuY29ubmVjdCgxKVxuXG4gICAgLy8gdHJ5IHtcbiAgICAvLyAgIHRoaXMucGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oe1xuICAgIC8vICAgICBpY2VTZXJ2ZXJzOiBbXG4gICAgLy8gICAgICAgeyB1cmxzOiAnc3R1bjpzdHVuLnNlcnZpY2VzLm1vemlsbGEuY29tJyB9LFxuICAgIC8vICAgICAgIHsgdXJsczogJ3N0dW46c3R1bi5sLmdvb2dsZS5jb206MTkzMDInIH0sXG4gICAgLy8gICAgIF0sXG4gICAgLy8gICB9KTtcbiAgICAvLyB9IGNhdGNoIChlcnJvcikge1xuICAgIC8vICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgIC8vICAgdGhpcy5wYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbih7XG4gICAgLy8gICAgIGljZVNlcnZlcnM6IFtcbiAgICAvLyAgICAgICB7IHVybHM6ICdzdHVuOnN0dW4uc2VydmljZXMubW96aWxsYS5jb20nIH0sXG4gICAgLy8gICAgICAgeyB1cmxzOiAnc3R1bjpzdHVuLmwuZ29vZ2xlLmNvbToxOTMwMicgfSxcbiAgICAvLyAgICAgXSxcbiAgICAvLyAgIH0pO1xuICAgIC8vIH1cblxuICAgIC8vIHRoaXMucGMub25pY2VjYW5kaWRhdGUgPSAoZXZlbnQpID0+IHtcbiAgICAvLyAgIGV2ZW50LmNhbmRpZGF0ZVxuICAgIC8vICAgICA/IHRoaXMuc2VuZE1lc3NhZ2UoeyBpY2U6IGV2ZW50LmNhbmRpZGF0ZSB9KVxuICAgIC8vICAgICA6IGNvbnNvbGUubG9nKCdTZW50IEFsbCBJY2UnKTtcbiAgICAvLyB9O1xuXG4gICAgLy8gaWYgKHRoaXMucGMpIHtcbiAgICAvLyAgIGZyb20odGhpcy5wYy5jcmVhdGVPZmZlcigpKVxuICAgIC8vICAgICAucGlwZShzd2l0Y2hNYXAoKG9mZmVyKSA9PiBmcm9tKHRoaXMucGMuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcikpKSlcbiAgICAvLyAgICAgLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XG4gICAgLy8gICAgICAgdGhpcy5zZW5kTWVzc2FnZSh7XG4gICAgLy8gICAgICAgICB0eXBlOiAnb2ZmZXInLFxuICAgIC8vICAgICAgICAgc2RwOiB0aGlzLnBjLmxvY2FsRGVzY3JpcHRpb24sXG4gICAgLy8gICAgICAgfSk7XG4gICAgLy8gICAgIH0pO1xuICAgIC8vIH1cbiAgfVxuICBzZW5kTWVzc2FnZShkYXRhOiBhbnkpIHtcbiAgICBjb25zb2xlLmxvZyhkYXRhKTtcbiAgICB0aGlzLnN1YmplY3QubmV4dChKU09OLnN0cmluZ2lmeShkYXRhKSk7XG4gIH1cbn1cbiJdfQ==
|
package/esm2022/public-api.mjs
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Public API Surface of ngx-scandoc
|
|
3
|
-
*/
|
|
4
|
-
export { CoreComponentsModule } from './core/components/components.module';
|
|
5
|
-
export { CorePipesModule } from './core/pipes/pipes.module';
|
|
6
|
-
export { MaterialModule } from './core/shared/material.module';
|
|
7
|
-
export { DialogsModule } from './dialogs/dialogs.module';
|
|
8
|
-
export { NgxScandocDialogsCoreProvider } from './dialogs/dialogs.core.provider';
|
|
9
|
-
export { AppFormModule } from './forms/form.module';
|
|
10
|
-
export { NgxScandocAuthProvider } from './providers/auth.provider';
|
|
11
|
-
export { HttpErrorInterceptor } from './providers/interceptor.provider';
|
|
12
|
-
export { NgxScandocFieldsProvider } from './providers/scan.form';
|
|
13
|
-
export { ScanProvider } from './providers/scan.provider';
|
|
14
|
-
export { NgxScanDocTranslationProvider } from './providers/translation.provider';
|
|
15
|
-
export { TranslateLoaderProvider } from './providers/translate-loader.provider';
|
|
16
|
-
export { webRtcProvider } from './providers/webrtc.provider';
|
|
17
|
-
export { WebcamComponent } from './core/components/webcam/webcam/webcam.component';
|
|
18
|
-
export { SafeResourceUrlPipe } from './core/pipes/safeResourceUrl.pipe';
|
|
19
|
-
export { BlankComponent } from './dialogs/components/blank/blank.component';
|
|
20
|
-
export { LoadingComponent } from './dialogs/components/loading/loading.component';
|
|
21
|
-
export { ScanProfileComponent } from './dialogs/components/scan-profile/scan-profile.component';
|
|
22
|
-
export { ScanSelfieComponent } from './dialogs/components/scan-selfie/scan-selfie.component';
|
|
23
|
-
export { TurnDocumentComponent } from './dialogs/components/turn-document/turn-document.component';
|
|
24
|
-
export { WebcamModule } from './core/components/webcam/webcam.module';
|
|
25
|
-
export { NgxScandocModule } from './lib/ngx-scandoc.module';
|
|
26
|
-
export { ScanComponent } from './core/components/scan/scan.component';
|
|
27
|
-
export { CameraSwitchComponent } from './core/components/camera-switch/camera-switch.component';
|
|
28
|
-
export { PromptManualComponent } from './dialogs/components/prompt-manual/prompt-manual.component';
|
|
29
|
-
export { ManualScanComponent } from './core/components/manual-scan/manual-scan.component';
|
|
30
|
-
// export {NgxScandocCameraProvider} from './providers/camera.provider'
|
|
31
|
-
export { SCAN_CONFIG_TOKEN, AUTH_CONFIG_TOKEN } from './core/tokens/config.tokens';
|
|
32
|
-
export { WebcamImage } from './core/components/webcam/domain/webcam-image';
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC1zY2FuZG9jL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ25GLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNsRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUNoRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUM3RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUNuRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ25HLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzFGLHVFQUF1RTtBQUN2RSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQTtBQUMvRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOENBQThDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG5neC1zY2FuZG9jXG4gKi9cbmV4cG9ydCB7IENvcmVDb21wb25lbnRzTW9kdWxlIH0gZnJvbSAnLi9jb3JlL2NvbXBvbmVudHMvY29tcG9uZW50cy5tb2R1bGUnO1xuZXhwb3J0IHsgQ29yZVBpcGVzTW9kdWxlIH0gZnJvbSAnLi9jb3JlL3BpcGVzL3BpcGVzLm1vZHVsZSc7XG5leHBvcnQgeyBNYXRlcmlhbE1vZHVsZSB9IGZyb20gJy4vY29yZS9zaGFyZWQvbWF0ZXJpYWwubW9kdWxlJztcbmV4cG9ydCB7IERpYWxvZ3NNb2R1bGUgfSBmcm9tICcuL2RpYWxvZ3MvZGlhbG9ncy5tb2R1bGUnO1xuZXhwb3J0IHsgTmd4U2NhbmRvY0RpYWxvZ3NDb3JlUHJvdmlkZXIgfSBmcm9tICcuL2RpYWxvZ3MvZGlhbG9ncy5jb3JlLnByb3ZpZGVyJztcbmV4cG9ydCB7IEFwcEZvcm1Nb2R1bGUgfSBmcm9tICcuL2Zvcm1zL2Zvcm0ubW9kdWxlJztcbmV4cG9ydCB7IE5neFNjYW5kb2NBdXRoUHJvdmlkZXIgfSBmcm9tICcuL3Byb3ZpZGVycy9hdXRoLnByb3ZpZGVyJztcbmV4cG9ydCB7IEh0dHBFcnJvckludGVyY2VwdG9yIH0gZnJvbSAnLi9wcm92aWRlcnMvaW50ZXJjZXB0b3IucHJvdmlkZXInO1xuZXhwb3J0IHsgTmd4U2NhbmRvY0ZpZWxkc1Byb3ZpZGVyIH0gZnJvbSAnLi9wcm92aWRlcnMvc2Nhbi5mb3JtJztcbmV4cG9ydCB7IFNjYW5Qcm92aWRlciB9IGZyb20gJy4vcHJvdmlkZXJzL3NjYW4ucHJvdmlkZXInO1xuZXhwb3J0IHsgTmd4U2NhbkRvY1RyYW5zbGF0aW9uUHJvdmlkZXIgfSBmcm9tICcuL3Byb3ZpZGVycy90cmFuc2xhdGlvbi5wcm92aWRlcic7XG5leHBvcnQgeyBUcmFuc2xhdGVMb2FkZXJQcm92aWRlciB9IGZyb20gJy4vcHJvdmlkZXJzL3RyYW5zbGF0ZS1sb2FkZXIucHJvdmlkZXInO1xuZXhwb3J0IHsgd2ViUnRjUHJvdmlkZXIgfSBmcm9tICcuL3Byb3ZpZGVycy93ZWJydGMucHJvdmlkZXInO1xuZXhwb3J0IHsgV2ViY2FtQ29tcG9uZW50IH0gZnJvbSAnLi9jb3JlL2NvbXBvbmVudHMvd2ViY2FtL3dlYmNhbS93ZWJjYW0uY29tcG9uZW50JztcbmV4cG9ydCB7IFNhZmVSZXNvdXJjZVVybFBpcGUgfSBmcm9tICcuL2NvcmUvcGlwZXMvc2FmZVJlc291cmNlVXJsLnBpcGUnO1xuZXhwb3J0IHsgQmxhbmtDb21wb25lbnQgfSBmcm9tICcuL2RpYWxvZ3MvY29tcG9uZW50cy9ibGFuay9ibGFuay5jb21wb25lbnQnO1xuZXhwb3J0IHsgTG9hZGluZ0NvbXBvbmVudCB9IGZyb20gJy4vZGlhbG9ncy9jb21wb25lbnRzL2xvYWRpbmcvbG9hZGluZy5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2NhblByb2ZpbGVDb21wb25lbnQgfSBmcm9tICcuL2RpYWxvZ3MvY29tcG9uZW50cy9zY2FuLXByb2ZpbGUvc2Nhbi1wcm9maWxlLmNvbXBvbmVudCc7XG5leHBvcnQgeyBTY2FuU2VsZmllQ29tcG9uZW50IH0gZnJvbSAnLi9kaWFsb2dzL2NvbXBvbmVudHMvc2Nhbi1zZWxmaWUvc2Nhbi1zZWxmaWUuY29tcG9uZW50JztcbmV4cG9ydCB7IFR1cm5Eb2N1bWVudENvbXBvbmVudCB9IGZyb20gJy4vZGlhbG9ncy9jb21wb25lbnRzL3R1cm4tZG9jdW1lbnQvdHVybi1kb2N1bWVudC5jb21wb25lbnQnO1xuZXhwb3J0IHsgV2ViY2FtTW9kdWxlIH0gZnJvbSAnLi9jb3JlL2NvbXBvbmVudHMvd2ViY2FtL3dlYmNhbS5tb2R1bGUnO1xuXG5leHBvcnQgeyBOZ3hTY2FuZG9jTW9kdWxlIH0gZnJvbSAnLi9saWIvbmd4LXNjYW5kb2MubW9kdWxlJztcbmV4cG9ydCB7IFNjYW5Db21wb25lbnQgfSBmcm9tICcuL2NvcmUvY29tcG9uZW50cy9zY2FuL3NjYW4uY29tcG9uZW50JztcbmV4cG9ydCB7IENhbWVyYVN3aXRjaENvbXBvbmVudCB9IGZyb20gJy4vY29yZS9jb21wb25lbnRzL2NhbWVyYS1zd2l0Y2gvY2FtZXJhLXN3aXRjaC5jb21wb25lbnQnO1xuZXhwb3J0IHsgUHJvbXB0TWFudWFsQ29tcG9uZW50IH0gZnJvbSAnLi9kaWFsb2dzL2NvbXBvbmVudHMvcHJvbXB0LW1hbnVhbC9wcm9tcHQtbWFudWFsLmNvbXBvbmVudCc7XG5leHBvcnQgeyBNYW51YWxTY2FuQ29tcG9uZW50IH0gZnJvbSAnLi9jb3JlL2NvbXBvbmVudHMvbWFudWFsLXNjYW4vbWFudWFsLXNjYW4uY29tcG9uZW50Jztcbi8vIGV4cG9ydCB7Tmd4U2NhbmRvY0NhbWVyYVByb3ZpZGVyfSBmcm9tICcuL3Byb3ZpZGVycy9jYW1lcmEucHJvdmlkZXInXG5leHBvcnQge1NDQU5fQ09ORklHX1RPS0VOLEFVVEhfQ09ORklHX1RPS0VOfSBmcm9tICcuL2NvcmUvdG9rZW5zL2NvbmZpZy50b2tlbnMnXG5leHBvcnQgeyBXZWJjYW1JbWFnZSB9IGZyb20gJy4vY29yZS9jb21wb25lbnRzL3dlYmNhbS9kb21haW4vd2ViY2FtLWltYWdlJztcbmV4cG9ydCB7IFNjYW5Db25maWcgfSBmcm9tICcuL2NvcmUvaW50ZXJmYWNlcy9jb25maWcnO1xuIl19
|