@testgorilla/tgo-immersive-test 0.0.1 → 1.0.0
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/README.md +32 -0
- package/esm2022/index.mjs +5 -0
- package/esm2022/lib/components/immersive-test/immersive-test.component.mjs +257 -0
- package/esm2022/lib/components/index.mjs +6 -0
- package/esm2022/lib/components/review-instructions-dialog/index.mjs +2 -0
- package/esm2022/lib/components/review-instructions-dialog/review-instructions-dialog.component.mjs +69 -0
- package/esm2022/lib/components/ringing-phone-animation/index.mjs +2 -0
- package/esm2022/lib/components/ringing-phone-animation/ringing-phone-animation.component.mjs +43 -0
- package/esm2022/lib/components/ringing-phone-animation/ringing-phone-animation.sound.mjs +2 -0
- package/esm2022/lib/components/video-countdown/index.mjs +2 -0
- package/esm2022/lib/components/video-countdown/video-countdown.component.mjs +105 -0
- package/esm2022/lib/models/index.mjs +2 -0
- package/esm2022/lib/models/translations.mjs +3 -0
- package/esm2022/lib/services/index.mjs +3 -0
- package/esm2022/shared/index.mjs +5 -0
- package/esm2022/shared/lib/components/audio-animation/audio-animation.component.mjs +114 -0
- package/esm2022/shared/lib/components/audio-animation/index.mjs +2 -0
- package/esm2022/shared/lib/components/index.mjs +3 -0
- package/esm2022/shared/lib/components/vimeo-video/index.mjs +2 -0
- package/esm2022/shared/lib/components/vimeo-video/vimeo-video.component.mjs +101 -0
- package/esm2022/shared/lib/models/answer.mjs +2 -0
- package/esm2022/shared/lib/models/assessment.mjs +2 -0
- package/esm2022/shared/lib/models/environment.mjs +2 -0
- package/esm2022/shared/lib/models/index.mjs +9 -0
- package/esm2022/shared/lib/models/question-component.mjs +2 -0
- package/esm2022/shared/lib/models/question.mjs +2 -0
- package/esm2022/shared/lib/models/test.mjs +2 -0
- package/esm2022/shared/lib/models/translations.mjs +2 -0
- package/esm2022/shared/lib/models/window.mjs +2 -0
- package/esm2022/shared/lib/services/api/api.service.mjs +97 -0
- package/esm2022/shared/lib/services/api/mocked-api.service.mjs +131 -0
- package/esm2022/shared/lib/services/environment/environment.service.mjs +13 -0
- package/esm2022/shared/lib/services/index.mjs +10 -0
- package/esm2022/shared/lib/services/localization/languages.model.mjs +19 -0
- package/esm2022/shared/lib/services/localization/transloco-lazy-module-utils.mjs +27 -0
- package/esm2022/shared/lib/services/localization/transloco-testing.module.mjs +11 -0
- package/esm2022/shared/lib/services/media/media.service.mjs +129 -0
- package/esm2022/shared/lib/services/mixpanel/mixpanel.service.mjs +30 -0
- package/esm2022/shared/lib/services/theme/theme.service.mjs +24 -0
- package/esm2022/shared/test-mocks/assessment-test.mock.mjs +112 -0
- package/esm2022/shared/test-mocks/index.mjs +3 -0
- package/esm2022/shared/test-mocks/tgo-ui.mock.mjs +39 -0
- package/esm2022/testgorilla-tgo-immersive-test.mjs +5 -0
- package/fesm2022/testgorilla-tgo-immersive-test.mjs +466 -0
- package/fesm2022/testgorilla-tgo-immersive-test.mjs.map +1 -0
- package/lib/components/immersive-test/immersive-test.component.d.ts +53 -0
- package/{src/lib/components/index.ts → lib/components/index.d.ts} +0 -2
- package/lib/components/review-instructions-dialog/review-instructions-dialog.component.d.ts +24 -0
- package/lib/components/ringing-phone-animation/ringing-phone-animation.component.d.ts +13 -0
- package/lib/components/ringing-phone-animation/ringing-phone-animation.sound.d.ts +1 -0
- package/lib/components/video-countdown/video-countdown.component.d.ts +24 -0
- package/lib/models/index.d.ts +2 -0
- package/lib/models/translations.d.ts +1 -0
- package/lib/services/index.d.ts +1 -0
- package/package.json +18 -8
- package/shared/index.d.ts +4 -0
- package/shared/lib/components/audio-animation/audio-animation.component.d.ts +27 -0
- package/shared/lib/components/audio-animation/index.d.ts +1 -0
- package/shared/lib/components/index.d.ts +2 -0
- package/shared/lib/components/vimeo-video/index.d.ts +1 -0
- package/shared/lib/components/vimeo-video/vimeo-video.component.d.ts +24 -0
- package/shared/lib/models/answer.d.ts +17 -0
- package/shared/lib/models/assessment.d.ts +80 -0
- package/shared/lib/models/environment.d.ts +1 -0
- package/shared/lib/models/index.d.ts +8 -0
- package/shared/lib/models/question-component.d.ts +54 -0
- package/shared/lib/models/question.d.ts +102 -0
- package/shared/lib/models/test.d.ts +81 -0
- package/shared/lib/models/translations.d.ts +1 -0
- package/shared/lib/models/window.d.ts +6 -0
- package/shared/lib/services/api/api.service.d.ts +25 -0
- package/shared/lib/services/api/mocked-api.service.d.ts +35 -0
- package/shared/lib/services/environment/environment.service.d.ts +6 -0
- package/shared/lib/services/index.d.ts +9 -0
- package/shared/lib/services/localization/languages.model.d.ts +15 -0
- package/shared/lib/services/localization/transloco-lazy-module-utils.d.ts +11 -0
- package/shared/lib/services/localization/transloco-testing.module.d.ts +2 -0
- package/shared/lib/services/media/media.service.d.ts +29 -0
- package/shared/lib/services/mixpanel/mixpanel.service.d.ts +10 -0
- package/shared/lib/services/theme/theme.service.d.ts +8 -0
- package/shared/test-mocks/assessment-test.mock.d.ts +21 -0
- package/shared/test-mocks/index.d.ts +2 -0
- package/shared/test-mocks/tgo-ui.mock.d.ts +21 -0
- package/.eslintrc.json +0 -46
- package/jest.config.ts +0 -28
- package/ng-package.json +0 -16
- package/project.json +0 -37
- package/src/lib/components/immersive-test/immersive-test.component.html +0 -100
- package/src/lib/components/immersive-test/immersive-test.component.scss +0 -247
- package/src/lib/components/immersive-test/immersive-test.component.spec.ts +0 -581
- package/src/lib/components/immersive-test/immersive-test.component.ts +0 -279
- package/src/lib/components/review-instructions-dialog/review-instructions-dialog.component.html +0 -39
- package/src/lib/components/review-instructions-dialog/review-instructions-dialog.component.scss +0 -160
- package/src/lib/components/review-instructions-dialog/review-instructions-dialog.component.spec.ts +0 -81
- package/src/lib/components/review-instructions-dialog/review-instructions-dialog.component.ts +0 -80
- package/src/lib/components/ringing-phone-animation/ringing-phone-animation.component.html +0 -16
- package/src/lib/components/ringing-phone-animation/ringing-phone-animation.component.scss +0 -79
- package/src/lib/components/ringing-phone-animation/ringing-phone-animation.component.spec.ts +0 -95
- package/src/lib/components/ringing-phone-animation/ringing-phone-animation.component.ts +0 -54
- package/src/lib/components/ringing-phone-animation/ringing-phone-animation.sound.ts +0 -2
- package/src/lib/components/video-countdown/video-countdown.component.html +0 -10
- package/src/lib/components/video-countdown/video-countdown.component.scss +0 -16
- package/src/lib/components/video-countdown/video-countdown.component.spec.ts +0 -59
- package/src/lib/components/video-countdown/video-countdown.component.ts +0 -102
- package/src/lib/models/index.ts +0 -9
- package/src/lib/models/translations.ts +0 -3
- package/src/lib/services/index.ts +0 -7
- package/src/test-setup.ts +0 -22
- package/tsconfig.json +0 -17
- package/tsconfig.lib.json +0 -15
- package/tsconfig.lib.prod.json +0 -10
- package/tsconfig.spec.json +0 -13
- /package/{src/assets → assets}/i18n/en.json +0 -0
- /package/{src/index.ts → index.d.ts} +0 -0
- /package/{src/lib/components/review-instructions-dialog/index.ts → lib/components/review-instructions-dialog/index.d.ts} +0 -0
- /package/{src/lib/components/ringing-phone-animation/index.ts → lib/components/ringing-phone-animation/index.d.ts} +0 -0
- /package/{src/lib/components/video-countdown/index.ts → lib/components/video-countdown/index.d.ts} +0 -0
package/README.md
CHANGED
|
@@ -32,6 +32,38 @@ import { ImmersiveTestComponent } from '@testgorilla/tgo-immersive-test';
|
|
|
32
32
|
export class MyComponent {}
|
|
33
33
|
```
|
|
34
34
|
|
|
35
|
+
## Assets (translations)
|
|
36
|
+
|
|
37
|
+
This package ships its translations under `assets/i18n`. Consumer apps must copy these assets into their build output so Transloco can load them at runtime.
|
|
38
|
+
|
|
39
|
+
- **Angular CLI / Nx**: add an `assets` entry pointing at the package:
|
|
40
|
+
|
|
41
|
+
```json
|
|
42
|
+
{
|
|
43
|
+
"assets": [
|
|
44
|
+
"src/favicon.ico",
|
|
45
|
+
"src/assets",
|
|
46
|
+
{
|
|
47
|
+
"glob": "**/*",
|
|
48
|
+
"input": "node_modules/@testgorilla/tgo-immersive-test/assets",
|
|
49
|
+
"output": "assets/tgo-immersive-test"
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
If you develop inside this repo (consuming the workspace sources), also include the local path:
|
|
56
|
+
|
|
57
|
+
```json
|
|
58
|
+
{
|
|
59
|
+
"glob": "**/*",
|
|
60
|
+
"input": "packages/tgo-immersive-test/src/assets",
|
|
61
|
+
"output": "assets/tgo-immersive-test"
|
|
62
|
+
}
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
After adding the asset entries, rebuild/re-serve your app so `/assets/tgo-immersive-test/i18n/en.json` is available.
|
|
66
|
+
|
|
35
67
|
## API
|
|
36
68
|
|
|
37
69
|
### Inputs
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export * from './lib/components';
|
|
2
|
+
export * from './lib/components/immersive-test/immersive-test.component';
|
|
3
|
+
export * from './lib/models';
|
|
4
|
+
export * from './lib/services';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy90Z28taW1tZXJzaXZlLXRlc3Qvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYywwREFBMEQsQ0FBQztBQUN6RSxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2ltbWVyc2l2ZS10ZXN0L2ltbWVyc2l2ZS10ZXN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMnO1xuIl19
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
import { AudioAnimationComponent, VimeoVideoComponent, MediaService, ThemeService, TranslocoLazyModuleUtils, getAvailableLangs, } from '../../../shared/index.mjs';
|
|
2
|
+
import { VideoCountdownComponent } from '../video-countdown';
|
|
3
|
+
import { RingingPhoneAnimationComponent } from '../ringing-phone-animation';
|
|
4
|
+
import { ReviewInstructionsDialogComponent, } from '../review-instructions-dialog';
|
|
5
|
+
import { ROOT_TRANSLATIONS_SCOPE } from '../../models/translations';
|
|
6
|
+
import { catchError, firstValueFrom, Observable, takeUntil } from 'rxjs';
|
|
7
|
+
import { transition, style, animate, trigger } from '@angular/animations';
|
|
8
|
+
import { ElementRef, signal, ViewChild, Component, EventEmitter, Input, Output, inject, Inject, ChangeDetectorRef, } from '@angular/core';
|
|
9
|
+
import { Subject } from 'rxjs';
|
|
10
|
+
import { ButtonComponentModule, DialogService, IconComponentModule, } from '@testgorilla/tgo-ui';
|
|
11
|
+
import { CommonModule } from '@angular/common';
|
|
12
|
+
import { TRANSLOCO_SCOPE, TranslocoModule, TranslocoService, } from '@ngneat/transloco';
|
|
13
|
+
import * as i0 from "@angular/core";
|
|
14
|
+
import * as i1 from "@testgorilla/tgo-ui";
|
|
15
|
+
import * as i2 from "@angular/common";
|
|
16
|
+
export class ImmersiveTestComponent {
|
|
17
|
+
translationScope;
|
|
18
|
+
videoElement;
|
|
19
|
+
audioElement;
|
|
20
|
+
question;
|
|
21
|
+
test;
|
|
22
|
+
isFirstQuestion;
|
|
23
|
+
expirationObservable;
|
|
24
|
+
selectedMediaDevices;
|
|
25
|
+
mediaAccessChanged;
|
|
26
|
+
submissionStateChanged = new EventEmitter();
|
|
27
|
+
loadingStateChanged = new EventEmitter();
|
|
28
|
+
requestMediaAccess = new EventEmitter();
|
|
29
|
+
isAnswering = signal(false);
|
|
30
|
+
isCountingDown = signal(false);
|
|
31
|
+
isVideoPlaying = signal(false);
|
|
32
|
+
isQuestionPlaying = signal(false);
|
|
33
|
+
candidateVideoStreamReady = signal(false);
|
|
34
|
+
translations = {};
|
|
35
|
+
volume = signal(0);
|
|
36
|
+
audioUrl = signal('');
|
|
37
|
+
unsubscribe$ = new Subject();
|
|
38
|
+
mediaService = inject(MediaService);
|
|
39
|
+
translocoService = inject(TranslocoService);
|
|
40
|
+
dialog = inject(DialogService);
|
|
41
|
+
cdr = inject(ChangeDetectorRef);
|
|
42
|
+
themeService = inject(ThemeService);
|
|
43
|
+
companyColor = this.themeService.getCompanyColor();
|
|
44
|
+
get fileUrl() {
|
|
45
|
+
const match = this.question?.text.match(/(src|href)="([^"]*)"/);
|
|
46
|
+
return (match && match.pop()) || '';
|
|
47
|
+
}
|
|
48
|
+
get isVideo() {
|
|
49
|
+
return this.fileUrl.includes('player.vimeo.com');
|
|
50
|
+
}
|
|
51
|
+
constructor(translationScope) {
|
|
52
|
+
this.translationScope = translationScope;
|
|
53
|
+
}
|
|
54
|
+
ngOnInit() {
|
|
55
|
+
this.initExpirationSubscription();
|
|
56
|
+
this.initMediaAccessSubscription();
|
|
57
|
+
this.loadingStateChanged.emit(false);
|
|
58
|
+
this.mediaService.setSelectedMediaDevices(this.selectedMediaDevices);
|
|
59
|
+
void this.setTranslations();
|
|
60
|
+
void this.initVideoStream();
|
|
61
|
+
if (!this.isFirstQuestion) {
|
|
62
|
+
void this.startQuestion();
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
ngOnDestroy() {
|
|
66
|
+
this.unsubscribe$.next();
|
|
67
|
+
this.unsubscribe$.complete();
|
|
68
|
+
}
|
|
69
|
+
stopRecording() {
|
|
70
|
+
this.mediaService.stopRecording();
|
|
71
|
+
}
|
|
72
|
+
onVideoLoad() {
|
|
73
|
+
this.candidateVideoStreamReady.set(true);
|
|
74
|
+
}
|
|
75
|
+
async startQuestion() {
|
|
76
|
+
this.isQuestionPlaying.set(true);
|
|
77
|
+
if (!this.isVideo) {
|
|
78
|
+
await this.mediaService.playAudio(this.fileUrl);
|
|
79
|
+
this.startCountdown();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
async startCountdown() {
|
|
83
|
+
if (!(await this.mediaService.checkPermission({ audio: true, video: false }))) {
|
|
84
|
+
this.requestMediaAccess.emit();
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
this.isCountingDown.set(true);
|
|
88
|
+
this.isVideoPlaying.set(false);
|
|
89
|
+
}
|
|
90
|
+
startRecordAnswer() {
|
|
91
|
+
this.isCountingDown.set(false);
|
|
92
|
+
this.isAnswering.set(true);
|
|
93
|
+
this.mediaService
|
|
94
|
+
.recordAudio()
|
|
95
|
+
.pipe(takeUntil(this.unsubscribe$), catchError((error) => {
|
|
96
|
+
console.error('Error recording answer', error);
|
|
97
|
+
this.isAnswering.set(false);
|
|
98
|
+
this.startCountdown();
|
|
99
|
+
throw error;
|
|
100
|
+
}))
|
|
101
|
+
.subscribe((event) => {
|
|
102
|
+
if (event.type === 'complete') {
|
|
103
|
+
if (!this.test.is_preview_mode) {
|
|
104
|
+
this.submissionStateChanged.emit({ file: event.file, text: '' });
|
|
105
|
+
this.isAnswering.set(false);
|
|
106
|
+
this.loadingStateChanged.emit(true);
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
const url = window.URL.createObjectURL(event.file);
|
|
110
|
+
this.audioUrl.set(url);
|
|
111
|
+
if (this.audioElement) {
|
|
112
|
+
this.audioElement.nativeElement.src = url;
|
|
113
|
+
this.audioElement.nativeElement.play();
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
this.volume.set(event.value);
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
openReviewInstructionsDialog() {
|
|
123
|
+
const dialogData = {
|
|
124
|
+
backgroundInfoData: this.test.intro_text,
|
|
125
|
+
instructionsInfoData: this.test.test_instruction,
|
|
126
|
+
};
|
|
127
|
+
this.dialog.open(ReviewInstructionsDialogComponent, {
|
|
128
|
+
size: 'large',
|
|
129
|
+
extraData: dialogData,
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
async initVideoStream() {
|
|
133
|
+
try {
|
|
134
|
+
const stream = await this.mediaService.getMediaStream({
|
|
135
|
+
video: true,
|
|
136
|
+
audio: false,
|
|
137
|
+
});
|
|
138
|
+
if (this.videoElement) {
|
|
139
|
+
this.videoElement.nativeElement.srcObject = stream;
|
|
140
|
+
await this.videoElement?.nativeElement.play();
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
catch (error) {
|
|
144
|
+
console.error('Error initializing video stream:', error);
|
|
145
|
+
this.candidateVideoStreamReady.set(false);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
async setTranslations() {
|
|
149
|
+
this.translations = await firstValueFrom(this.translocoService.selectTranslateObject(`TEST`, {}, this.translationScope));
|
|
150
|
+
this.cdr.markForCheck();
|
|
151
|
+
}
|
|
152
|
+
initExpirationSubscription() {
|
|
153
|
+
this.expirationObservable
|
|
154
|
+
?.pipe(takeUntil(this.unsubscribe$))
|
|
155
|
+
.subscribe(() => {
|
|
156
|
+
if (!this.test?.is_preview_mode) {
|
|
157
|
+
if (this.mediaService.isRecording()) {
|
|
158
|
+
this.stopRecording();
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
this.submissionStateChanged.emit({ file: undefined, text: '' });
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
initMediaAccessSubscription() {
|
|
167
|
+
this.mediaAccessChanged
|
|
168
|
+
?.pipe(takeUntil(this.unsubscribe$))
|
|
169
|
+
.subscribe((selectedMediaDevices) => {
|
|
170
|
+
this.mediaService.setSelectedMediaDevices(selectedMediaDevices);
|
|
171
|
+
if (!this.isCountingDown()) {
|
|
172
|
+
void this.startCountdown();
|
|
173
|
+
}
|
|
174
|
+
void this.initVideoStream();
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ImmersiveTestComponent, deps: [{ token: TRANSLOCO_SCOPE }], target: i0.ɵɵFactoryTarget.Component });
|
|
178
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ImmersiveTestComponent, isStandalone: true, selector: "tgo-immersive-test", inputs: { question: "question", test: "test", isFirstQuestion: "isFirstQuestion", expirationObservable: "expirationObservable", selectedMediaDevices: "selectedMediaDevices", mediaAccessChanged: "mediaAccessChanged" }, outputs: { submissionStateChanged: "submissionStateChanged", loadingStateChanged: "loadingStateChanged", requestMediaAccess: "requestMediaAccess" }, providers: [
|
|
179
|
+
TranslocoLazyModuleUtils.getScopeProvider('tgo-immersive-test', getAvailableLangs(), ROOT_TRANSLATIONS_SCOPE, (lang) => {
|
|
180
|
+
// Fetch from app assets; demo app copies the library assets to
|
|
181
|
+
// /assets/tgo-immersive-test via project.json.
|
|
182
|
+
const url = new URL(`assets/tgo-immersive-test/i18n/${lang}.json`, document.baseURI).href;
|
|
183
|
+
return fetch(url).then((res) => res.json());
|
|
184
|
+
}),
|
|
185
|
+
DialogService,
|
|
186
|
+
ThemeService,
|
|
187
|
+
], viewQueries: [{ propertyName: "videoElement", first: true, predicate: ["video"], descendants: true }, { propertyName: "audioElement", first: true, predicate: ["audio"], descendants: true }], ngImport: i0, template: "<div class=\"immersive-test\">\n <div class=\"test-container\">\n <div\n class=\"media-container\"\n [class.is-video-visible]=\"isQuestionPlaying() && !isAnswering()\"\n [class.is-playing]=\"isVideoPlaying()\"\n [class.is-answering]=\"isAnswering()\"\n >\n <div class=\"candidate-no-camera\" *ngIf=\"!candidateVideoStreamReady()\">\n <h3> </h3>\n <tgo-audio-animation\n *ngIf=\"isAnswering()\"\n [volume]=\"volume()\"\n [fakeData]=\"false\"\n ></tgo-audio-animation>\n <ui-icon name=\"User-profile-in-line\" color=\"white\" size=\"24\"></ui-icon>\n <h3 class=\"bold\">{{ translations['YOU'] }}</h3>\n </div>\n <div class=\"candidate-camera\" [hidden]=\"!candidateVideoStreamReady()\">\n <tgo-audio-animation\n *ngIf=\"isAnswering() && candidateVideoStreamReady()\"\n [volume]=\"volume()\"\n [fakeData]=\"false\"\n ></tgo-audio-animation>\n <video height #video id=\"video\" playsinline (loadedmetadata)=\"onVideoLoad()\"></video>\n <h3 class=\"bold\" *ngIf=\"candidateVideoStreamReady()\">\n {{ translations['YOU'] }}\n </h3>\n </div>\n <tgo-audio-animation *ngIf=\"isVideoPlaying()\" [fakeData]=\"true\"></tgo-audio-animation>\n <tgo-vimeo-video\n *ngIf=\"isVideo\"\n [isPlaying]=\"isQuestionPlaying()\"\n [videoUrl]=\"fileUrl\"\n (videoEnded)=\"startCountdown()\"\n (videoStarted)=\"isVideoPlaying.set(true)\"\n ></tgo-vimeo-video>\n <div class=\"audio-info\" *ngIf=\"isQuestionPlaying() && !isVideo\">\n <ui-icon name=\"User-profile-filled\" color=\"white\" size=\"80\"></ui-icon>\n </div>\n <div class=\"start\" *ngIf=\"isFirstQuestion && !isQuestionPlaying()\">\n <tgo-ringing-phone-animation [isRinging]=\"true\"></tgo-ringing-phone-animation>\n <ui-button\n [label]=\"translations['ANSWER']\"\n [class.white-btn]=\"test.is_preview_mode\"\n variant=\"primary\"\n [companyColor]=\"companyColor\"\n (click)=\"startQuestion()\"\n data-testid=\"immersive-test.start-question-btn\"\n ></ui-button>\n </div>\n <div class=\"overlay\" *ngIf=\"isAnswering() || isCountingDown()\" [@fadeInFadeOut]>\n <div class=\"answer\" *ngIf=\"!audioUrl() && isAnswering()\">\n <div>\n <h3 class=\"uppercase recording-started\">\n <span class=\"recording-dot\"></span>{{ translations['RECORDING_STARTED'] }}\n </h3>\n <h1 class=\"bold\">\n {{ translations['ANSWER_THE_QUESTION'] }}\n </h1>\n </div>\n <ui-button\n [label]=\"translations['ANSWER_COMPLETED']\"\n [class.white-btn]=\"test.is_preview_mode\"\n variant=\"primary\"\n [companyColor]=\"companyColor\"\n (click)=\"stopRecording()\"\n data-testid=\"immersive-test.stop-recording-btn\"\n ></ui-button>\n </div>\n <div class=\"answer\" *ngIf=\"isCountingDown()\">\n <div>\n <h1 class=\"bold\">\n {{ translations['GET_READY'] }}\n </h1>\n </div>\n <tgo-video-countdown (finish)=\"startRecordAnswer()\"></tgo-video-countdown>\n <div> </div>\n </div>\n <div class=\"preview\" [class.hidden]=\"!audioUrl()\" *ngIf=\"test.is_preview_mode\">\n <h4>{{ translations['AUDIO_READY'] }}</h4>\n <p>{{ translations['AUDIO_PREVIEW'] }}</p>\n <audio #audio controls></audio>\n </div>\n </div>\n </div>\n <div class=\"media-info\">\n <h3 class=\"bold\">{{ translations['CUSTOMER'] }}</h3>\n <ui-button\n [hidden]=\"!test.test_instruction && !test.intro_text\"\n class=\"review-button\"\n [label]=\"translations['REVIEW_INSTRUCTIONS']\"\n variant=\"secondary\"\n size=\"small\"\n (click)=\"openReviewInstructionsDialog()\"\n data-testid=\"immersive-test.review-instructions-btn\"\n ></ui-button>\n </div>\n </div>\n</div>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}.immersive-test{padding:0 64px;margin-top:40px}.immersive-test .media-info{width:100%;display:flex;justify-content:space-between;align-items:center;background:#242424a8;background-color:#242424;border-bottom-left-radius:10px;border-bottom-right-radius:10px;padding:13px 32px;color:#fff}.immersive-test .media-info ::ng-deep ui-button button{border-color:#fff;color:#fff}.immersive-test .test-container{min-width:360px;max-width:1312px;min-height:725px;height:min(725px,100%,max(100vw - 200px,100vh - 200px,200px));border-radius:10px;display:flex;flex-direction:column;justify-content:space-between;position:relative;background-color:#242424}.immersive-test .media-container{position:relative;color:#fff;flex-grow:1;border-top-left-radius:10px;border-top-right-radius:10px;aspect-ratio:16/9}.immersive-test .media-container .candidate-no-camera{position:absolute;width:200px;aspect-ratio:16/9;z-index:3;top:32px;left:32px;border-radius:10px;background-color:#1a47aa;display:flex;justify-content:space-between;flex-direction:column;padding:16px}.immersive-test .media-container .candidate-no-camera ui-icon{margin:auto}.immersive-test .media-container .candidate-camera{position:absolute;width:200px;top:32px;left:32px;z-index:3}.immersive-test .media-container .candidate-camera video{width:200px;border-radius:10px}.immersive-test .media-container .candidate-camera h3{position:absolute;bottom:16px;left:16px}.immersive-test .media-container tgo-audio-animation{position:absolute;top:32px;right:32px;z-index:1}.immersive-test .media-container tgo-vimeo-video{display:none;position:absolute;height:100%;width:100%}.immersive-test .media-container.is-video-visible tgo-vimeo-video{display:block}.immersive-test .media-container.is-playing{border:4px solid #0165FC;border-bottom-width:3px}.immersive-test .media-container.is-answering .candidate-camera tgo-audio-animation,.immersive-test .media-container.is-answering .candidate-no-camera tgo-audio-animation{position:absolute;top:16px;right:16px}.immersive-test .media-container.is-answering .candidate-camera video,.immersive-test .media-container.is-answering .candidate-no-camera{border:3px solid #0165FC;border-radius:10px}.immersive-test .media-container.is-answering tgo-vimeo-video{display:block}.immersive-test .media-container .start,.immersive-test .media-container .audio-info,.immersive-test .media-container .overlay,.immersive-test .media-container .answer{display:flex;justify-content:center;align-items:center;flex-direction:column;gap:40px;height:100%}.immersive-test .media-container .preview{height:100%;display:flex;align-items:center;flex-direction:column;justify-content:flex-end;padding:24px}.immersive-test .media-container .preview p{color:#d3d3d3;margin:8px 0}.immersive-test .media-container .preview audio{margin:16px 0}.immersive-test .media-container .preview.hidden{display:none}.immersive-test h3,.immersive-test h4{color:#fff}.immersive-test .bold{font-weight:700}.immersive-test ui-button.review-button ::ng-deep button{border:1px solid #ffffff}.immersive-test ui-button.white-btn ::ng-deep button{background-color:#fff;border-color:#fff;color:#000}.immersive-test ui-button.white-btn ::ng-deep button:hover{background-color:#666!important}.immersive-test .overlay{top:0;position:absolute;width:100%;height:100%;background-color:#242424e0;z-index:2;border-radius:10px}.immersive-test .overlay h1,.immersive-test .overlay h3{color:#fff;text-align:center}.immersive-test .overlay h3{margin-bottom:10px}.immersive-test tgo-radial-progress{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.immersive-test .uppercase{text-transform:uppercase}.immersive-test .recording-started{display:flex;align-items:center;justify-content:center;gap:10px}.immersive-test .recording-dot{background-color:#ff3003;display:inline-block;width:20px;height:20px;border-radius:50%}@media screen and (max-width: 600px){.immersive-test{padding:0 24px;margin-top:16px}}\n"], dependencies: [{ kind: "ngmodule", type: TranslocoModule }, { kind: "ngmodule", type: ButtonComponentModule }, { kind: "component", type: i1.ButtonComponent, selector: "ui-button", inputs: ["size", "variant", "label", "iconPosition", "justIcon", "iconName", "disabled", "loading", "fullWidth", "url", "urlTarget", "value", "tooltip", "isPremium", "type", "companyColor", "buttonBadgeConfig", "applicationTheme", "disabledScaleOnClick", "ariaLabel", "ariaRequired", "ariaLabelledby", "ariaDescribedby", "preventDefault", "hasBackground", "tooltipPosition", "role", "iconFilled"], outputs: ["buttonClickEvent", "buttonHoverEvent"] }, { kind: "ngmodule", type: IconComponentModule }, { kind: "component", type: i1.IconComponent, selector: "ui-icon", inputs: ["size", "cssClass", "name", "color", "filled", "toggleIconStyle", "applicationTheme", "useFullIconName"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: VimeoVideoComponent, selector: "tgo-vimeo-video", inputs: ["videoUrl", "isPlaying", "options"], outputs: ["videoEnded", "videoStarted"] }, { kind: "component", type: VideoCountdownComponent, selector: "tgo-video-countdown", inputs: ["startFrom", "endAt", "interval"], outputs: ["finish"] }, { kind: "component", type: RingingPhoneAnimationComponent, selector: "tgo-ringing-phone-animation", inputs: ["isRinging"] }, { kind: "component", type: AudioAnimationComponent, selector: "tgo-audio-animation", inputs: ["volume", "fakeData"] }], animations: [
|
|
188
|
+
trigger('fadeInFadeOut', [
|
|
189
|
+
transition(':enter', [
|
|
190
|
+
style({ opacity: 0 }),
|
|
191
|
+
animate('600ms', style({ opacity: 1 })),
|
|
192
|
+
]),
|
|
193
|
+
transition(':leave', [animate('600ms', style({ opacity: 0 }))]),
|
|
194
|
+
]),
|
|
195
|
+
] });
|
|
196
|
+
}
|
|
197
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ImmersiveTestComponent, decorators: [{
|
|
198
|
+
type: Component,
|
|
199
|
+
args: [{ selector: 'tgo-immersive-test', animations: [
|
|
200
|
+
trigger('fadeInFadeOut', [
|
|
201
|
+
transition(':enter', [
|
|
202
|
+
style({ opacity: 0 }),
|
|
203
|
+
animate('600ms', style({ opacity: 1 })),
|
|
204
|
+
]),
|
|
205
|
+
transition(':leave', [animate('600ms', style({ opacity: 0 }))]),
|
|
206
|
+
]),
|
|
207
|
+
], standalone: true, imports: [
|
|
208
|
+
TranslocoModule,
|
|
209
|
+
ButtonComponentModule,
|
|
210
|
+
IconComponentModule,
|
|
211
|
+
CommonModule,
|
|
212
|
+
VimeoVideoComponent,
|
|
213
|
+
VideoCountdownComponent,
|
|
214
|
+
RingingPhoneAnimationComponent,
|
|
215
|
+
AudioAnimationComponent,
|
|
216
|
+
ReviewInstructionsDialogComponent,
|
|
217
|
+
], providers: [
|
|
218
|
+
TranslocoLazyModuleUtils.getScopeProvider('tgo-immersive-test', getAvailableLangs(), ROOT_TRANSLATIONS_SCOPE, (lang) => {
|
|
219
|
+
// Fetch from app assets; demo app copies the library assets to
|
|
220
|
+
// /assets/tgo-immersive-test via project.json.
|
|
221
|
+
const url = new URL(`assets/tgo-immersive-test/i18n/${lang}.json`, document.baseURI).href;
|
|
222
|
+
return fetch(url).then((res) => res.json());
|
|
223
|
+
}),
|
|
224
|
+
DialogService,
|
|
225
|
+
ThemeService,
|
|
226
|
+
], template: "<div class=\"immersive-test\">\n <div class=\"test-container\">\n <div\n class=\"media-container\"\n [class.is-video-visible]=\"isQuestionPlaying() && !isAnswering()\"\n [class.is-playing]=\"isVideoPlaying()\"\n [class.is-answering]=\"isAnswering()\"\n >\n <div class=\"candidate-no-camera\" *ngIf=\"!candidateVideoStreamReady()\">\n <h3> </h3>\n <tgo-audio-animation\n *ngIf=\"isAnswering()\"\n [volume]=\"volume()\"\n [fakeData]=\"false\"\n ></tgo-audio-animation>\n <ui-icon name=\"User-profile-in-line\" color=\"white\" size=\"24\"></ui-icon>\n <h3 class=\"bold\">{{ translations['YOU'] }}</h3>\n </div>\n <div class=\"candidate-camera\" [hidden]=\"!candidateVideoStreamReady()\">\n <tgo-audio-animation\n *ngIf=\"isAnswering() && candidateVideoStreamReady()\"\n [volume]=\"volume()\"\n [fakeData]=\"false\"\n ></tgo-audio-animation>\n <video height #video id=\"video\" playsinline (loadedmetadata)=\"onVideoLoad()\"></video>\n <h3 class=\"bold\" *ngIf=\"candidateVideoStreamReady()\">\n {{ translations['YOU'] }}\n </h3>\n </div>\n <tgo-audio-animation *ngIf=\"isVideoPlaying()\" [fakeData]=\"true\"></tgo-audio-animation>\n <tgo-vimeo-video\n *ngIf=\"isVideo\"\n [isPlaying]=\"isQuestionPlaying()\"\n [videoUrl]=\"fileUrl\"\n (videoEnded)=\"startCountdown()\"\n (videoStarted)=\"isVideoPlaying.set(true)\"\n ></tgo-vimeo-video>\n <div class=\"audio-info\" *ngIf=\"isQuestionPlaying() && !isVideo\">\n <ui-icon name=\"User-profile-filled\" color=\"white\" size=\"80\"></ui-icon>\n </div>\n <div class=\"start\" *ngIf=\"isFirstQuestion && !isQuestionPlaying()\">\n <tgo-ringing-phone-animation [isRinging]=\"true\"></tgo-ringing-phone-animation>\n <ui-button\n [label]=\"translations['ANSWER']\"\n [class.white-btn]=\"test.is_preview_mode\"\n variant=\"primary\"\n [companyColor]=\"companyColor\"\n (click)=\"startQuestion()\"\n data-testid=\"immersive-test.start-question-btn\"\n ></ui-button>\n </div>\n <div class=\"overlay\" *ngIf=\"isAnswering() || isCountingDown()\" [@fadeInFadeOut]>\n <div class=\"answer\" *ngIf=\"!audioUrl() && isAnswering()\">\n <div>\n <h3 class=\"uppercase recording-started\">\n <span class=\"recording-dot\"></span>{{ translations['RECORDING_STARTED'] }}\n </h3>\n <h1 class=\"bold\">\n {{ translations['ANSWER_THE_QUESTION'] }}\n </h1>\n </div>\n <ui-button\n [label]=\"translations['ANSWER_COMPLETED']\"\n [class.white-btn]=\"test.is_preview_mode\"\n variant=\"primary\"\n [companyColor]=\"companyColor\"\n (click)=\"stopRecording()\"\n data-testid=\"immersive-test.stop-recording-btn\"\n ></ui-button>\n </div>\n <div class=\"answer\" *ngIf=\"isCountingDown()\">\n <div>\n <h1 class=\"bold\">\n {{ translations['GET_READY'] }}\n </h1>\n </div>\n <tgo-video-countdown (finish)=\"startRecordAnswer()\"></tgo-video-countdown>\n <div> </div>\n </div>\n <div class=\"preview\" [class.hidden]=\"!audioUrl()\" *ngIf=\"test.is_preview_mode\">\n <h4>{{ translations['AUDIO_READY'] }}</h4>\n <p>{{ translations['AUDIO_PREVIEW'] }}</p>\n <audio #audio controls></audio>\n </div>\n </div>\n </div>\n <div class=\"media-info\">\n <h3 class=\"bold\">{{ translations['CUSTOMER'] }}</h3>\n <ui-button\n [hidden]=\"!test.test_instruction && !test.intro_text\"\n class=\"review-button\"\n [label]=\"translations['REVIEW_INSTRUCTIONS']\"\n variant=\"secondary\"\n size=\"small\"\n (click)=\"openReviewInstructionsDialog()\"\n data-testid=\"immersive-test.review-instructions-btn\"\n ></ui-button>\n </div>\n </div>\n</div>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}.immersive-test{padding:0 64px;margin-top:40px}.immersive-test .media-info{width:100%;display:flex;justify-content:space-between;align-items:center;background:#242424a8;background-color:#242424;border-bottom-left-radius:10px;border-bottom-right-radius:10px;padding:13px 32px;color:#fff}.immersive-test .media-info ::ng-deep ui-button button{border-color:#fff;color:#fff}.immersive-test .test-container{min-width:360px;max-width:1312px;min-height:725px;height:min(725px,100%,max(100vw - 200px,100vh - 200px,200px));border-radius:10px;display:flex;flex-direction:column;justify-content:space-between;position:relative;background-color:#242424}.immersive-test .media-container{position:relative;color:#fff;flex-grow:1;border-top-left-radius:10px;border-top-right-radius:10px;aspect-ratio:16/9}.immersive-test .media-container .candidate-no-camera{position:absolute;width:200px;aspect-ratio:16/9;z-index:3;top:32px;left:32px;border-radius:10px;background-color:#1a47aa;display:flex;justify-content:space-between;flex-direction:column;padding:16px}.immersive-test .media-container .candidate-no-camera ui-icon{margin:auto}.immersive-test .media-container .candidate-camera{position:absolute;width:200px;top:32px;left:32px;z-index:3}.immersive-test .media-container .candidate-camera video{width:200px;border-radius:10px}.immersive-test .media-container .candidate-camera h3{position:absolute;bottom:16px;left:16px}.immersive-test .media-container tgo-audio-animation{position:absolute;top:32px;right:32px;z-index:1}.immersive-test .media-container tgo-vimeo-video{display:none;position:absolute;height:100%;width:100%}.immersive-test .media-container.is-video-visible tgo-vimeo-video{display:block}.immersive-test .media-container.is-playing{border:4px solid #0165FC;border-bottom-width:3px}.immersive-test .media-container.is-answering .candidate-camera tgo-audio-animation,.immersive-test .media-container.is-answering .candidate-no-camera tgo-audio-animation{position:absolute;top:16px;right:16px}.immersive-test .media-container.is-answering .candidate-camera video,.immersive-test .media-container.is-answering .candidate-no-camera{border:3px solid #0165FC;border-radius:10px}.immersive-test .media-container.is-answering tgo-vimeo-video{display:block}.immersive-test .media-container .start,.immersive-test .media-container .audio-info,.immersive-test .media-container .overlay,.immersive-test .media-container .answer{display:flex;justify-content:center;align-items:center;flex-direction:column;gap:40px;height:100%}.immersive-test .media-container .preview{height:100%;display:flex;align-items:center;flex-direction:column;justify-content:flex-end;padding:24px}.immersive-test .media-container .preview p{color:#d3d3d3;margin:8px 0}.immersive-test .media-container .preview audio{margin:16px 0}.immersive-test .media-container .preview.hidden{display:none}.immersive-test h3,.immersive-test h4{color:#fff}.immersive-test .bold{font-weight:700}.immersive-test ui-button.review-button ::ng-deep button{border:1px solid #ffffff}.immersive-test ui-button.white-btn ::ng-deep button{background-color:#fff;border-color:#fff;color:#000}.immersive-test ui-button.white-btn ::ng-deep button:hover{background-color:#666!important}.immersive-test .overlay{top:0;position:absolute;width:100%;height:100%;background-color:#242424e0;z-index:2;border-radius:10px}.immersive-test .overlay h1,.immersive-test .overlay h3{color:#fff;text-align:center}.immersive-test .overlay h3{margin-bottom:10px}.immersive-test tgo-radial-progress{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.immersive-test .uppercase{text-transform:uppercase}.immersive-test .recording-started{display:flex;align-items:center;justify-content:center;gap:10px}.immersive-test .recording-dot{background-color:#ff3003;display:inline-block;width:20px;height:20px;border-radius:50%}@media screen and (max-width: 600px){.immersive-test{padding:0 24px;margin-top:16px}}\n"] }]
|
|
227
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
228
|
+
type: Inject,
|
|
229
|
+
args: [TRANSLOCO_SCOPE]
|
|
230
|
+
}] }], propDecorators: { videoElement: [{
|
|
231
|
+
type: ViewChild,
|
|
232
|
+
args: ['video']
|
|
233
|
+
}], audioElement: [{
|
|
234
|
+
type: ViewChild,
|
|
235
|
+
args: ['audio']
|
|
236
|
+
}], question: [{
|
|
237
|
+
type: Input,
|
|
238
|
+
args: [{ required: true }]
|
|
239
|
+
}], test: [{
|
|
240
|
+
type: Input,
|
|
241
|
+
args: [{ required: true }]
|
|
242
|
+
}], isFirstQuestion: [{
|
|
243
|
+
type: Input
|
|
244
|
+
}], expirationObservable: [{
|
|
245
|
+
type: Input
|
|
246
|
+
}], selectedMediaDevices: [{
|
|
247
|
+
type: Input
|
|
248
|
+
}], mediaAccessChanged: [{
|
|
249
|
+
type: Input
|
|
250
|
+
}], submissionStateChanged: [{
|
|
251
|
+
type: Output
|
|
252
|
+
}], loadingStateChanged: [{
|
|
253
|
+
type: Output
|
|
254
|
+
}], requestMediaAccess: [{
|
|
255
|
+
type: Output
|
|
256
|
+
}] } });
|
|
257
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1tZXJzaXZlLXRlc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGdvLWltbWVyc2l2ZS10ZXN0L3NyYy9saWIvY29tcG9uZW50cy9pbW1lcnNpdmUtdGVzdC9pbW1lcnNpdmUtdGVzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90Z28taW1tZXJzaXZlLXRlc3Qvc3JjL2xpYi9jb21wb25lbnRzL2ltbWVyc2l2ZS10ZXN0L2ltbWVyc2l2ZS10ZXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsbUJBQW1CLEVBTW5CLFlBQVksRUFDWixZQUFZLEVBQ1osd0JBQXdCLEVBQ3hCLGlCQUFpQixHQUNsQixNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVFLE9BQU8sRUFDTCxpQ0FBaUMsR0FFbEMsTUFBTSwrQkFBK0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRSxPQUFPLEVBQ0wsVUFBVSxFQUVWLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFFTixNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9B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QUEvQixTQUFTO3VCQUFDLE9BQU87Z0JBQ0UsWUFBWTtzQkFBL0IsU0FBUzt1QkFBQyxPQUFPO2dCQUNTLFFBQVE7c0JBQWxDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNFLElBQUk7c0JBQTlCLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNoQixlQUFlO3NCQUF2QixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUVJLHNCQUFzQjtzQkFBL0IsTUFBTTtnQkFFRyxtQkFBbUI7c0JBQTVCLE1BQU07Z0JBRUcsa0JBQWtCO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQXVkaW9BbmltYXRpb25Db21wb25lbnQsXG4gIFZpbWVvVmlkZW9Db21wb25lbnQsXG4gIFF1ZXN0aW9uLFxuICBUZXN0UmVzdWx0UmVhZCxcbiAgU2VsZWN0ZWRNZWRpYURldmljZXMsXG4gIElTdWJtaXNzaW9uU3RhdGUsXG4gIElRdWVzdGlvbkRhdGFDb250cmFjdCxcbiAgTWVkaWFTZXJ2aWNlLFxuICBUaGVtZVNlcnZpY2UsXG4gIFRyYW5zbG9jb0xhenlNb2R1bGVVdGlscyxcbiAgZ2V0QXZhaWxhYmxlTGFuZ3MsXG59IGZyb20gJ0B0ZXN0Z29yaWxsYS90Z28tdGVzdC1zaGFyZWQnO1xuaW1wb3J0IHsgVmlkZW9Db3VudGRvd25Db21wb25lbnQgfSBmcm9tICcuLi92aWRlby1jb3VudGRvd24nO1xuaW1wb3J0IHsgUmluZ2luZ1Bob25lQW5pbWF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vcmluZ2luZy1waG9uZS1hbmltYXRpb24nO1xuaW1wb3J0IHtcbiAgUmV2aWV3SW5zdHJ1Y3Rpb25zRGlhbG9nQ29tcG9uZW50LFxuICBSZXZpZXdJbnN0cnVjdGlvbnNEaWFsb2dEYXRhLFxufSBmcm9tICcuLi9yZXZpZXctaW5zdHJ1Y3Rpb25zLWRpYWxvZyc7XG5pbXBvcnQgeyBST09UX1RSQU5TTEFUSU9OU19TQ09QRSB9IGZyb20gJy4uLy4uL21vZGVscy90cmFuc2xhdGlvbnMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZmlyc3RWYWx1ZUZyb20sIE9ic2VydmFibGUsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdHJhbnNpdGlvbiwgc3R5bGUsIGFuaW1hdGUsIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7XG4gIEVsZW1lbnRSZWYsXG4gIE9uRGVzdHJveSxcbiAgc2lnbmFsLFxuICBWaWV3Q2hpbGQsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBpbmplY3QsXG4gIE9uSW5pdCxcbiAgSW5qZWN0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBCdXR0b25Db21wb25lbnRNb2R1bGUsXG4gIERpYWxvZ1NlcnZpY2UsXG4gIEljb25Db21wb25lbnRNb2R1bGUsXG59IGZyb20gJ0B0ZXN0Z29yaWxsYS90Z28tdWknO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIFRSQU5TTE9DT19TQ09QRSxcbiAgVHJhbnNsb2NvTW9kdWxlLFxuICBUcmFuc2xvY29TY29wZSxcbiAgVHJhbnNsb2NvU2VydmljZSxcbn0gZnJvbSAnQG5nbmVhdC90cmFuc2xvY28nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0Z28taW1tZXJzaXZlLXRlc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW1tZXJzaXZlLXRlc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vaW1tZXJzaXZlLXRlc3QuY29tcG9uZW50LnNjc3MnLFxuICBhbmltYXRpb25zOiBbXG4gICAgdHJpZ2dlcignZmFkZUluRmFkZU91dCcsIFtcbiAgICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtcbiAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAwIH0pLFxuICAgICAgICBhbmltYXRlKCc2MDBtcycsIHN0eWxlKHsgb3BhY2l0eTogMSB9KSksXG4gICAgICBdKSxcbiAgICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFthbmltYXRlKCc2MDBtcycsIHN0eWxlKHsgb3BhY2l0eTogMCB9KSldKSxcbiAgICBdKSxcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIFRyYW5zbG9jb01vZHVsZSxcbiAgICBCdXR0b25Db21wb25lbnRNb2R1bGUsXG4gICAgSWNvbkNvbXBvbmVudE1vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVmltZW9WaWRlb0NvbXBvbmVudCxcbiAgICBWaWRlb0NvdW50ZG93bkNvbXBvbmVudCxcbiAgICBSaW5naW5nUGhvbmVBbmltYXRpb25Db21wb25lbnQsXG4gICAgQXVkaW9BbmltYXRpb25Db21wb25lbnQsXG4gICAgUmV2aWV3SW5zdHJ1Y3Rpb25zRGlhbG9nQ29tcG9uZW50LFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICBUcmFuc2xvY29MYXp5TW9kdWxlVXRpbHMuZ2V0U2NvcGVQcm92aWRlcihcbiAgICAgICd0Z28taW1tZXJzaXZlLXRlc3QnLFxuICAgICAgZ2V0QXZhaWxhYmxlTGFuZ3MoKSxcbiAgICAgIFJPT1RfVFJBTlNMQVRJT05TX1NDT1BFLFxuICAgICAgKGxhbmc6IHN0cmluZykgPT4ge1xuICAgICAgICAvLyBGZXRjaCBmcm9tIGFwcCBhc3NldHM7IGRlbW8gYXBwIGNvcGllcyB0aGUgbGlicmFyeSBhc3NldHMgdG9cbiAgICAgICAgLy8gL2Fzc2V0cy90Z28taW1tZXJzaXZlLXRlc3QgdmlhIHByb2plY3QuanNvbi5cbiAgICAgICAgY29uc3QgdXJsID0gbmV3IFVSTChcbiAgICAgICAgICBgYXNzZXRzL3Rnby1pbW1lcnNpdmUtdGVzdC9pMThuLyR7bGFuZ30uanNvbmAsXG4gICAgICAgICAgZG9jdW1lbnQuYmFzZVVSSVxuICAgICAgICApLmhyZWY7XG4gICAgICAgIHJldHVybiBmZXRjaCh1cmwpLnRoZW4oKHJlcykgPT4gcmVzLmpzb24oKSk7XG4gICAgICB9XG4gICAgKSxcbiAgICBEaWFsb2dTZXJ2aWNlLFxuICAgIFRoZW1lU2VydmljZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgSW1tZXJzaXZlVGVzdENvbXBvbmVudFxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBJUXVlc3Rpb25EYXRhQ29udHJhY3RcbntcbiAgQFZpZXdDaGlsZCgndmlkZW8nKSB2aWRlb0VsZW1lbnQ/OiBFbGVtZW50UmVmPEhUTUxWaWRlb0VsZW1lbnQ+O1xuICBAVmlld0NoaWxkKCdhdWRpbycpIGF1ZGlvRWxlbWVudD86IEVsZW1lbnRSZWY8SFRNTEF1ZGlvRWxlbWVudD47XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHF1ZXN0aW9uITogUXVlc3Rpb247XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHRlc3QhOiBUZXN0UmVzdWx0UmVhZDtcbiAgQElucHV0KCkgaXNGaXJzdFF1ZXN0aW9uPzogYm9vbGVhbjtcbiAgQElucHV0KCkgZXhwaXJhdGlvbk9ic2VydmFibGU/OiBPYnNlcnZhYmxlPHZvaWQ+O1xuICBASW5wdXQoKSBzZWxlY3RlZE1lZGlhRGV2aWNlcz86IFNlbGVjdGVkTWVkaWFEZXZpY2VzO1xuICBASW5wdXQoKSBtZWRpYUFjY2Vzc0NoYW5nZWQ/OiBPYnNlcnZhYmxlPFNlbGVjdGVkTWVkaWFEZXZpY2VzPiB8IHVuZGVmaW5lZDtcblxuICBAT3V0cHV0KCkgc3VibWlzc2lvblN0YXRlQ2hhbmdlZCA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxJU3VibWlzc2lvblN0YXRlIHwgbnVsbD4oKTtcbiAgQE91dHB1dCgpIGxvYWRpbmdTdGF0ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAT3V0cHV0KCkgcmVxdWVzdE1lZGlhQWNjZXNzOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgaXNBbnN3ZXJpbmcgPSBzaWduYWwoZmFsc2UpO1xuICBpc0NvdW50aW5nRG93biA9IHNpZ25hbChmYWxzZSk7XG4gIGlzVmlkZW9QbGF5aW5nID0gc2lnbmFsKGZhbHNlKTtcbiAgaXNRdWVzdGlvblBsYXlpbmcgPSBzaWduYWwoZmFsc2UpO1xuICBjYW5kaWRhdGVWaWRlb1N0cmVhbVJlYWR5ID0gc2lnbmFsKGZhbHNlKTtcbiAgdHJhbnNsYXRpb25zOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG4gIHZvbHVtZSA9IHNpZ25hbCgwKTtcbiAgYXVkaW9VcmwgPSBzaWduYWwoJycpO1xuXG4gIHByaXZhdGUgdW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSBtZWRpYVNlcnZpY2UgPSBpbmplY3QoTWVkaWFTZXJ2aWNlKTtcbiAgcHJpdmF0ZSB0cmFuc2xvY29TZXJ2aWNlID0gaW5qZWN0KFRyYW5zbG9jb1NlcnZpY2UpO1xuICBwcml2YXRlIGRpYWxvZyA9IGluamVjdChEaWFsb2dTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICBwcml2YXRlIHRoZW1lU2VydmljZSA9IGluamVjdChUaGVtZVNlcnZpY2UpO1xuXG4gIGNvbXBhbnlDb2xvciA9IHRoaXMudGhlbWVTZXJ2aWNlLmdldENvbXBhbnlDb2xvcigpO1xuXG4gIGdldCBmaWxlVXJsKCk6IHN0cmluZyB7XG4gICAgY29uc3QgbWF0Y2ggPSB0aGlzLnF1ZXN0aW9uPy50ZXh0Lm1hdGNoKC8oc3JjfGhyZWYpPVwiKFteXCJdKilcIi8pO1xuICAgIHJldHVybiAobWF0Y2ggJiYgbWF0Y2gucG9wKCkpIHx8ICcnO1xuICB9XG5cbiAgZ2V0IGlzVmlkZW8oKSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsZVVybC5pbmNsdWRlcygncGxheWVyLnZpbWVvLmNvbScpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChUUkFOU0xPQ09fU0NPUEUpIHByaXZhdGUgdHJhbnNsYXRpb25TY29wZTogVHJhbnNsb2NvU2NvcGVcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdEV4cGlyYXRpb25TdWJzY3JpcHRpb24oKTtcbiAgICB0aGlzLmluaXRNZWRpYUFjY2Vzc1N1YnNjcmlwdGlvbigpO1xuICAgIHRoaXMubG9hZGluZ1N0YXRlQ2hhbmdlZC5lbWl0KGZhbHNlKTtcbiAgICB0aGlzLm1lZGlhU2VydmljZS5zZXRTZWxlY3RlZE1lZGlhRGV2aWNlcyh0aGlzLnNlbGVjdGVkTWVkaWFEZXZpY2VzKTtcbiAgICB2b2lkIHRoaXMuc2V0VHJhbnNsYXRpb25zKCk7XG4gICAgdm9pZCB0aGlzLmluaXRWaWRlb1N0cmVhbSgpO1xuICAgIGlmICghdGhpcy5pc0ZpcnN0UXVlc3Rpb24pIHtcbiAgICAgIHZvaWQgdGhpcy5zdGFydFF1ZXN0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy51bnN1YnNjcmliZSQubmV4dCgpO1xuICAgIHRoaXMudW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBzdG9wUmVjb3JkaW5nKCkge1xuICAgIHRoaXMubWVkaWFTZXJ2aWNlLnN0b3BSZWNvcmRpbmcoKTtcbiAgfVxuXG4gIG9uVmlkZW9Mb2FkKCkge1xuICAgIHRoaXMuY2FuZGlkYXRlVmlkZW9TdHJlYW1SZWFkeS5zZXQodHJ1ZSk7XG4gIH1cblxuICBhc3luYyBzdGFydFF1ZXN0aW9uKCkge1xuICAgIHRoaXMuaXNRdWVzdGlvblBsYXlpbmcuc2V0KHRydWUpO1xuXG4gICAgaWYgKCF0aGlzLmlzVmlkZW8pIHtcbiAgICAgIGF3YWl0IHRoaXMubWVkaWFTZXJ2aWNlLnBsYXlBdWRpbyh0aGlzLmZpbGVVcmwpO1xuICAgICAgdGhpcy5zdGFydENvdW50ZG93bigpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHN0YXJ0Q291bnRkb3duKCkge1xuICAgIGlmIChcbiAgICAgICEoYXdhaXQgdGhpcy5tZWRpYVNlcnZpY2UuY2hlY2tQZXJtaXNzaW9uKHsgYXVkaW86IHRydWUsIHZpZGVvOiBmYWxzZSB9KSlcbiAgICApIHtcbiAgICAgIHRoaXMucmVxdWVzdE1lZGlhQWNjZXNzLmVtaXQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pc0NvdW50aW5nRG93bi5zZXQodHJ1ZSk7XG4gICAgdGhpcy5pc1ZpZGVvUGxheWluZy5zZXQoZmFsc2UpO1xuICB9XG5cbiAgc3RhcnRSZWNvcmRBbnN3ZXIoKSB7XG4gICAgdGhpcy5pc0NvdW50aW5nRG93bi5zZXQoZmFsc2UpO1xuICAgIHRoaXMuaXNBbnN3ZXJpbmcuc2V0KHRydWUpO1xuICAgIHRoaXMubWVkaWFTZXJ2aWNlXG4gICAgICAucmVjb3JkQXVkaW8oKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgcmVjb3JkaW5nIGFuc3dlcicsIGVycm9yKTtcbiAgICAgICAgICB0aGlzLmlzQW5zd2VyaW5nLnNldChmYWxzZSk7XG4gICAgICAgICAgdGhpcy5zdGFydENvdW50ZG93bigpO1xuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09ICdjb21wbGV0ZScpIHtcbiAgICAgICAgICBpZiAoIXRoaXMudGVzdC5pc19wcmV2aWV3X21vZGUpIHtcbiAgICAgICAgICAgIHRoaXMuc3VibWlzc2lvblN0YXRlQ2hhbmdlZC5lbWl0KHsgZmlsZTogZXZlbnQuZmlsZSwgdGV4dDogJycgfSk7XG4gICAgICAgICAgICB0aGlzLmlzQW5zd2VyaW5nLnNldChmYWxzZSk7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmdTdGF0ZUNoYW5nZWQuZW1pdCh0cnVlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgdXJsID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoZXZlbnQuZmlsZSk7XG4gICAgICAgICAgICB0aGlzLmF1ZGlvVXJsLnNldCh1cmwpO1xuICAgICAgICAgICAgaWYgKHRoaXMuYXVkaW9FbGVtZW50KSB7XG4gICAgICAgICAgICAgIHRoaXMuYXVkaW9FbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc3JjID0gdXJsO1xuICAgICAgICAgICAgICB0aGlzLmF1ZGlvRWxlbWVudC5uYXRpdmVFbGVtZW50LnBsYXkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy52b2x1bWUuc2V0KGV2ZW50LnZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBvcGVuUmV2aWV3SW5zdHJ1Y3Rpb25zRGlhbG9nKCkge1xuICAgIGNvbnN0IGRpYWxvZ0RhdGE6IFJldmlld0luc3RydWN0aW9uc0RpYWxvZ0RhdGEgPSB7XG4gICAgICBiYWNrZ3JvdW5kSW5mb0RhdGE6IHRoaXMudGVzdC5pbnRyb190ZXh0LFxuICAgICAgaW5zdHJ1Y3Rpb25zSW5mb0RhdGE6IHRoaXMudGVzdC50ZXN0X2luc3RydWN0aW9uLFxuICAgIH07XG4gICAgdGhpcy5kaWFsb2cub3BlbihSZXZpZXdJbnN0cnVjdGlvbnNEaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIHNpemU6ICdsYXJnZScsXG4gICAgICBleHRyYURhdGE6IGRpYWxvZ0RhdGEsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGluaXRWaWRlb1N0cmVhbSgpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgdGhpcy5tZWRpYVNlcnZpY2UuZ2V0TWVkaWFTdHJlYW0oe1xuICAgICAgICB2aWRlbzogdHJ1ZSxcbiAgICAgICAgYXVkaW86IGZhbHNlLFxuICAgICAgfSk7XG4gICAgICBpZiAodGhpcy52aWRlb0VsZW1lbnQpIHtcbiAgICAgICAgdGhpcy52aWRlb0VsZW1lbnQubmF0aXZlRWxlbWVudC5zcmNPYmplY3QgPSBzdHJlYW07XG4gICAgICAgIGF3YWl0IHRoaXMudmlkZW9FbGVtZW50Py5uYXRpdmVFbGVtZW50LnBsYXkoKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW5pdGlhbGl6aW5nIHZpZGVvIHN0cmVhbTonLCBlcnJvcik7XG4gICAgICB0aGlzLmNhbmRpZGF0ZVZpZGVvU3RyZWFtUmVhZHkuc2V0KGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNldFRyYW5zbGF0aW9ucygpIHtcbiAgICB0aGlzLnRyYW5zbGF0aW9ucyA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgdGhpcy50cmFuc2xvY29TZXJ2aWNlLnNlbGVjdFRyYW5zbGF0ZU9iamVjdChcbiAgICAgICAgYFRFU1RgLFxuICAgICAgICB7fSxcbiAgICAgICAgdGhpcy50cmFuc2xhdGlvblNjb3BlIGFzIHN0cmluZ1xuICAgICAgKVxuICAgICk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRFeHBpcmF0aW9uU3Vic2NyaXB0aW9uKCkge1xuICAgIHRoaXMuZXhwaXJhdGlvbk9ic2VydmFibGVcbiAgICAgID8ucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy50ZXN0Py5pc19wcmV2aWV3X21vZGUpIHtcbiAgICAgICAgICBpZiAodGhpcy5tZWRpYVNlcnZpY2UuaXNSZWNvcmRpbmcoKSkge1xuICAgICAgICAgICAgdGhpcy5zdG9wUmVjb3JkaW5nKCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3VibWlzc2lvblN0YXRlQ2hhbmdlZC5lbWl0KHsgZmlsZTogdW5kZWZpbmVkLCB0ZXh0OiAnJyB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0TWVkaWFBY2Nlc3NTdWJzY3JpcHRpb24oKSB7XG4gICAgdGhpcy5tZWRpYUFjY2Vzc0NoYW5nZWRcbiAgICAgID8ucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKVxuICAgICAgLnN1YnNjcmliZSgoc2VsZWN0ZWRNZWRpYURldmljZXMpID0+IHtcbiAgICAgICAgdGhpcy5tZWRpYVNlcnZpY2Uuc2V0U2VsZWN0ZWRNZWRpYURldmljZXMoc2VsZWN0ZWRNZWRpYURldmljZXMpO1xuICAgICAgICBpZiAoIXRoaXMuaXNDb3VudGluZ0Rvd24oKSkge1xuICAgICAgICAgIHZvaWQgdGhpcy5zdGFydENvdW50ZG93bigpO1xuICAgICAgICB9XG4gICAgICAgIHZvaWQgdGhpcy5pbml0VmlkZW9TdHJlYW0oKTtcbiAgICAgIH0pO1xuICB9XG59XG5cbiIsIjxkaXYgY2xhc3M9XCJpbW1lcnNpdmUtdGVzdFwiPlxuICA8ZGl2IGNsYXNzPVwidGVzdC1jb250YWluZXJcIj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cIm1lZGlhLWNvbnRhaW5lclwiXG4gICAgICBbY2xhc3MuaXMtdmlkZW8tdmlzaWJsZV09XCJpc1F1ZXN0aW9uUGxheWluZygpICYmICFpc0Fuc3dlcmluZygpXCJcbiAgICAgIFtjbGFzcy5pcy1wbGF5aW5nXT1cImlzVmlkZW9QbGF5aW5nKClcIlxuICAgICAgW2NsYXNzLmlzLWFuc3dlcmluZ109XCJpc0Fuc3dlcmluZygpXCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2FuZGlkYXRlLW5vLWNhbWVyYVwiICpuZ0lmPVwiIWNhbmRpZGF0ZVZpZGVvU3RyZWFtUmVhZHkoKVwiPlxuICAgICAgICA8aDM+Jm5ic3A7PC9oMz5cbiAgICAgICAgPHRnby1hdWRpby1hbmltYXRpb25cbiAgICAgICAgICAqbmdJZj1cImlzQW5zd2VyaW5nKClcIlxuICAgICAgICAgIFt2b2x1bWVdPVwidm9sdW1lKClcIlxuICAgICAgICAgIFtmYWtlRGF0YV09XCJmYWxzZVwiXG4gICAgICAgID48L3Rnby1hdWRpby1hbmltYXRpb24+XG4gICAgICAgIDx1aS1pY29uIG5hbWU9XCJVc2VyLXByb2ZpbGUtaW4tbGluZVwiIGNvbG9yPVwid2hpdGVcIiBzaXplPVwiMjRcIj48L3VpLWljb24+XG4gICAgICAgIDxoMyBjbGFzcz1cImJvbGRcIj57eyB0cmFuc2xhdGlvbnNbJ1lPVSddIH19PC9oMz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNhbmRpZGF0ZS1jYW1lcmFcIiBbaGlkZGVuXT1cIiFjYW5kaWRhdGVWaWRlb1N0cmVhbVJlYWR5KClcIj5cbiAgICAgICAgPHRnby1hdWRpby1hbmltYXRpb25cbiAgICAgICAgICAqbmdJZj1cImlzQW5zd2VyaW5nKCkgJiYgY2FuZGlkYXRlVmlkZW9TdHJlYW1SZWFkeSgpXCJcbiAgICAgICAgICBbdm9sdW1lXT1cInZvbHVtZSgpXCJcbiAgICAgICAgICBbZmFrZURhdGFdPVwiZmFsc2VcIlxuICAgICAgICA+PC90Z28tYXVkaW8tYW5pbWF0aW9uPlxuICAgICAgICA8dmlkZW8gaGVpZ2h0ICN2aWRlbyBpZD1cInZpZGVvXCIgcGxheXNpbmxpbmUgKGxvYWRlZG1ldGFkYXRhKT1cIm9uVmlkZW9Mb2FkKClcIj48L3ZpZGVvPlxuICAgICAgICA8aDMgY2xhc3M9XCJib2xkXCIgKm5nSWY9XCJjYW5kaWRhdGVWaWRlb1N0cmVhbVJlYWR5KClcIj5cbiAgICAgICAgICB7eyB0cmFuc2xhdGlvbnNbJ1lPVSddIH19XG4gICAgICAgIDwvaDM+XG4gICAgICA8L2Rpdj5cbiAgICAgIDx0Z28tYXVkaW8tYW5pbWF0aW9uICpuZ0lmPVwiaXNWaWRlb1BsYXlpbmcoKVwiIFtmYWtlRGF0YV09XCJ0cnVlXCI+PC90Z28tYXVkaW8tYW5pbWF0aW9uPlxuICAgICAgPHRnby12aW1lby12aWRlb1xuICAgICAgICAqbmdJZj1cImlzVmlkZW9cIlxuICAgICAgICBbaXNQbGF5aW5nXT1cImlzUXVlc3Rpb25QbGF5aW5nKClcIlxuICAgICAgICBbdmlkZW9VcmxdPVwiZmlsZVVybFwiXG4gICAgICAgICh2aWRlb0VuZGVkKT1cInN0YXJ0Q291bnRkb3duKClcIlxuICAgICAgICAodmlkZW9TdGFydGVkKT1cImlzVmlkZW9QbGF5aW5nLnNldCh0cnVlKVwiXG4gICAgICA+PC90Z28tdmltZW8tdmlkZW8+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXVkaW8taW5mb1wiICpuZ0lmPVwiaXNRdWVzdGlvblBsYXlpbmcoKSAmJiAhaXNWaWRlb1wiPlxuICAgICAgICA8dWktaWNvbiBuYW1lPVwiVXNlci1wcm9maWxlLWZpbGxlZFwiIGNvbG9yPVwid2hpdGVcIiBzaXplPVwiODBcIj48L3VpLWljb24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzdGFydFwiICpuZ0lmPVwiaXNGaXJzdFF1ZXN0aW9uICYmICFpc1F1ZXN0aW9uUGxheWluZygpXCI+XG4gICAgICAgIDx0Z28tcmluZ2luZy1waG9uZS1hbmltYXRpb24gW2lzUmluZ2luZ109XCJ0cnVlXCI+PC90Z28tcmluZ2luZy1waG9uZS1hbmltYXRpb24+XG4gICAgICAgIDx1aS1idXR0b25cbiAgICAgICAgICBbbGFiZWxdPVwidHJhbnNsYXRpb25zWydBTlNXRVInXVwiXG4gICAgICAgICAgW2NsYXNzLndoaXRlLWJ0bl09XCJ0ZXN0LmlzX3ByZXZpZXdfbW9kZVwiXG4gICAgICAgICAgdmFyaWFudD1cInByaW1hcnlcIlxuICAgICAgICAgIFtjb21wYW55Q29sb3JdPVwiY29tcGFueUNvbG9yXCJcbiAgICAgICAgICAoY2xpY2spPVwic3RhcnRRdWVzdGlvbigpXCJcbiAgICAgICAgICBkYXRhLXRlc3RpZD1cImltbWVyc2l2ZS10ZXN0LnN0YXJ0LXF1ZXN0aW9uLWJ0blwiXG4gICAgICAgID48L3VpLWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm92ZXJsYXlcIiAqbmdJZj1cImlzQW5zd2VyaW5nKCkgfHwgaXNDb3VudGluZ0Rvd24oKVwiIFtAZmFkZUluRmFkZU91dF0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhbnN3ZXJcIiAqbmdJZj1cIiFhdWRpb1VybCgpICYmIGlzQW5zd2VyaW5nKClcIj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGgzIGNsYXNzPVwidXBwZXJjYXNlIHJlY29yZGluZy1zdGFydGVkXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVjb3JkaW5nLWRvdFwiPjwvc3Bhbj57eyB0cmFuc2xhdGlvbnNbJ1JFQ09SRElOR19TVEFSVEVEJ10gfX1cbiAgICAgICAgICAgIDwvaDM+XG4gICAgICAgICAgICA8aDEgY2xhc3M9XCJib2xkXCI+XG4gICAgICAgICAgICAgIHt7IHRyYW5zbGF0aW9uc1snQU5TV0VSX1RIRV9RVUVTVElPTiddIH19XG4gICAgICAgICAgICA8L2gxPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDx1aS1idXR0b25cbiAgICAgICAgICAgIFtsYWJlbF09XCJ0cmFuc2xhdGlvbnNbJ0FOU1dFUl9DT01QTEVURUQnXVwiXG4gICAgICAgICAgICBbY2xhc3Mud2hpdGUtYnRuXT1cInRlc3QuaXNfcHJldmlld19tb2RlXCJcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgIFtjb21wYW55Q29sb3JdPVwiY29tcGFueUNvbG9yXCJcbiAgICAgICAgICAgIChjbGljayk9XCJzdG9wUmVjb3JkaW5nKClcIlxuICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJpbW1lcnNpdmUtdGVzdC5zdG9wLXJlY29yZGluZy1idG5cIlxuICAgICAgICAgID48L3VpLWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhbnN3ZXJcIiAqbmdJZj1cImlzQ291bnRpbmdEb3duKClcIj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGgxIGNsYXNzPVwiYm9sZFwiPlxuICAgICAgICAgICAgICB7eyB0cmFuc2xhdGlvbnNbJ0dFVF9SRUFEWSddIH19XG4gICAgICAgICAgICA8L2gxPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDx0Z28tdmlkZW8tY291bnRkb3duIChmaW5pc2gpPVwic3RhcnRSZWNvcmRBbnN3ZXIoKVwiPjwvdGdvLXZpZGVvLWNvdW50ZG93bj5cbiAgICAgICAgICA8ZGl2PiZuYnNwOzwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInByZXZpZXdcIiBbY2xhc3MuaGlkZGVuXT1cIiFhdWRpb1VybCgpXCIgKm5nSWY9XCJ0ZXN0LmlzX3ByZXZpZXdfbW9kZVwiPlxuICAgICAgICAgIDxoND57eyB0cmFuc2xhdGlvbnNbJ0FVRElPX1JFQURZJ10gfX08L2g0PlxuICAgICAgICAgIDxwPnt7IHRyYW5zbGF0aW9uc1snQVVESU9fUFJFVklFVyddIH19PC9wPlxuICAgICAgICAgIDxhdWRpbyAjYXVkaW8gY29udHJvbHM+PC9hdWRpbz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWVkaWEtaW5mb1wiPlxuICAgICAgPGgzIGNsYXNzPVwiYm9sZFwiPnt7IHRyYW5zbGF0aW9uc1snQ1VTVE9NRVInXSB9fTwvaDM+XG4gICAgICA8dWktYnV0dG9uXG4gICAgICAgIFtoaWRkZW5dPVwiIXRlc3QudGVzdF9pbnN0cnVjdGlvbiAmJiAhdGVzdC5pbnRyb190ZXh0XCJcbiAgICAgICAgY2xhc3M9XCJyZXZpZXctYnV0dG9uXCJcbiAgICAgICAgW2xhYmVsXT1cInRyYW5zbGF0aW9uc1snUkVWSUVXX0lOU1RSVUNUSU9OUyddXCJcbiAgICAgICAgdmFyaWFudD1cInNlY29uZGFyeVwiXG4gICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgIChjbGljayk9XCJvcGVuUmV2aWV3SW5zdHJ1Y3Rpb25zRGlhbG9nKClcIlxuICAgICAgICBkYXRhLXRlc3RpZD1cImltbWVyc2l2ZS10ZXN0LnJldmlldy1pbnN0cnVjdGlvbnMtYnRuXCJcbiAgICAgID48L3VpLWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// Library-specific components only (shared components are bundled from packages/shared)
|
|
2
|
+
export * from './immersive-test/immersive-test.component';
|
|
3
|
+
export * from './review-instructions-dialog';
|
|
4
|
+
export * from './ringing-phone-animation';
|
|
5
|
+
export * from './video-countdown';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90Z28taW1tZXJzaXZlLXRlc3Qvc3JjL2xpYi9jb21wb25lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHdGQUF3RjtBQUN4RixjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGlicmFyeS1zcGVjaWZpYyBjb21wb25lbnRzIG9ubHkgKHNoYXJlZCBjb21wb25lbnRzIGFyZSBidW5kbGVkIGZyb20gcGFja2FnZXMvc2hhcmVkKVxuZXhwb3J0ICogZnJvbSAnLi9pbW1lcnNpdmUtdGVzdC9pbW1lcnNpdmUtdGVzdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9yZXZpZXctaW5zdHJ1Y3Rpb25zLWRpYWxvZyc7XG5leHBvcnQgKiBmcm9tICcuL3JpbmdpbmctcGhvbmUtYW5pbWF0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vdmlkZW8tY291bnRkb3duJztcblxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './review-instructions-dialog.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90Z28taW1tZXJzaXZlLXRlc3Qvc3JjL2xpYi9jb21wb25lbnRzL3Jldmlldy1pbnN0cnVjdGlvbnMtZGlhbG9nL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0NBQXdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Jldmlldy1pbnN0cnVjdGlvbnMtZGlhbG9nLmNvbXBvbmVudCc7XG4iXX0=
|
package/esm2022/lib/components/review-instructions-dialog/review-instructions-dialog.component.mjs
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, inject, Inject, } from '@angular/core';
|
|
3
|
+
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
|
4
|
+
import { TRANSLOCO_SCOPE, TranslocoModule, TranslocoService, } from '@ngneat/transloco';
|
|
5
|
+
import { CardComponentModule, DialogComponentModule } from '@testgorilla/tgo-ui';
|
|
6
|
+
import { QuillViewComponent } from 'ngx-quill';
|
|
7
|
+
import { firstValueFrom } from 'rxjs';
|
|
8
|
+
import { getAvailableLangs, TranslocoLazyModuleUtils } from '../../services';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@angular/material/dialog";
|
|
11
|
+
import * as i2 from "@angular/common";
|
|
12
|
+
import * as i3 from "@ngneat/transloco";
|
|
13
|
+
import * as i4 from "@testgorilla/tgo-ui";
|
|
14
|
+
export class ReviewInstructionsDialogComponent {
|
|
15
|
+
dialogData;
|
|
16
|
+
translationScope;
|
|
17
|
+
dialogRef;
|
|
18
|
+
translations = {};
|
|
19
|
+
translocoService = inject(TranslocoService);
|
|
20
|
+
cdr = inject(ChangeDetectorRef);
|
|
21
|
+
constructor(dialogData, translationScope, dialogRef) {
|
|
22
|
+
this.dialogData = dialogData;
|
|
23
|
+
this.translationScope = translationScope;
|
|
24
|
+
this.dialogRef = dialogRef;
|
|
25
|
+
}
|
|
26
|
+
ngOnInit() {
|
|
27
|
+
void this.setTranslations();
|
|
28
|
+
}
|
|
29
|
+
closeDialog() {
|
|
30
|
+
this.dialogRef.close(false);
|
|
31
|
+
}
|
|
32
|
+
async setTranslations() {
|
|
33
|
+
this.translations = await firstValueFrom(this.translocoService.selectTranslateObject(`INSTRUCTIONS_MODAL`, {}, this.translationScope));
|
|
34
|
+
this.cdr.markForCheck();
|
|
35
|
+
}
|
|
36
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ReviewInstructionsDialogComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: TRANSLOCO_SCOPE }, { token: i1.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
37
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ReviewInstructionsDialogComponent, isStandalone: true, selector: "tgo-review-instructions-dialog", providers: [
|
|
38
|
+
TranslocoLazyModuleUtils.getScopeProvider('tgo-immersive-test-review-instructions', getAvailableLangs(), 'INSTRUCTIONS_MODAL', (lang) => {
|
|
39
|
+
// Fetch from app assets; demo app copies the library assets to
|
|
40
|
+
// /assets/tgo-immersive-test via project.json.
|
|
41
|
+
const url = new URL(`assets/tgo-immersive-test/i18n/${lang}.json`, document.baseURI).href;
|
|
42
|
+
return fetch(url).then((res) => res.json());
|
|
43
|
+
}),
|
|
44
|
+
], ngImport: i0, template: "<ng-container *transloco=\"let t\">\n <ui-dialog\n class=\"dialog-wrapper\"\n [title]=\"translations['TITLE']\"\n [secondaryButtonLabel]=\"translations['CLOSE']\"\n (secondaryButtonClickEvent)=\"closeDialog()\"\n >\n <section class=\"containers-section\">\n <div class=\"immersive-test-instructions-container\">\n <div\n class=\"background-information-container\"\n *ngIf=\"dialogData?.backgroundInfoData\"\n >\n <ui-card class=\"background-information-card\" variant=\"neutral\">\n <quill-view\n theme=\"snow\"\n [content]=\"dialogData?.backgroundInfoData\"\n class=\"content-container notranslate\"\n ></quill-view>\n </ui-card>\n </div>\n\n <div\n class=\"inner-instructions-container\"\n *ngIf=\"dialogData?.instructionsInfoData\"\n >\n <ui-card class=\"instructions-card\" variant=\"educative\">\n <quill-view\n theme=\"snow\"\n [content]=\"dialogData?.instructionsInfoData\"\n class=\"content-container notranslate\"\n ></quill-view>\n </ui-card>\n </div>\n </div>\n </section>\n </ui-dialog>\n</ng-container>\n\n", styles: ["@charset \"UTF-8\";:host .dialog-wrapper{width:100%}:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section{width:100%;display:flex;flex-direction:column;justify-content:center;padding:.3rem .8rem}:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container{display:flex;justify-content:space-between;width:100%;gap:2.5rem}:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .background-information-container{display:flex;flex-direction:column;width:100%;max-width:450px}:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .background-information-container .background-information-card .content-container .ql-container .ql-editor{padding:0}:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .background-information-container .background-information-card .content-container .ql-container .ql-editor h1,:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .background-information-container .background-information-card .content-container .ql-container .ql-editor h2,:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .background-information-container .background-information-card .content-container .ql-container .ql-editor h3,:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .background-information-container .background-information-card .content-container .ql-container .ql-editor h4,:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .background-information-container .background-information-card .content-container .ql-container .ql-editor h5,:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .background-information-container .background-information-card .content-container .ql-container .ql-editor h6{font-size:16px;font-weight:700;line-height:20px;margin-bottom:.6rem}:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .background-information-container .background-information-card .content-container .ql-container .ql-editor p,:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .background-information-container .background-information-card .content-container .ql-container .ql-editor span{font-size:14px;margin-bottom:1.5rem}:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .background-information-container .background-information-card .content-container .ql-container .ql-editor p:last-child,:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .background-information-container .background-information-card .content-container .ql-container .ql-editor span:last-child{margin-bottom:0}:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .background-information-container .background-information-card .content-container .ql-container .ql-editor br{display:none}:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .inner-instructions-container{display:flex;flex-direction:column;gap:2.5rem;width:100%;max-width:450px}:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .inner-instructions-container .instructions-card .card-container{border-width:1px}:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .inner-instructions-container .instructions-card .card-container .ql-container .ql-editor{padding:0}:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .inner-instructions-container .instructions-card .card-container .ql-container .ql-editor h1,:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .inner-instructions-container .instructions-card .card-container .ql-container .ql-editor h2,:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .inner-instructions-container .instructions-card .card-container .ql-container .ql-editor h3,:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .inner-instructions-container .instructions-card .card-container .ql-container .ql-editor h4,:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .inner-instructions-container .instructions-card .card-container .ql-container .ql-editor h5,:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .inner-instructions-container .instructions-card .card-container .ql-container .ql-editor h6{font-size:16px;font-weight:700;line-height:20px;margin-bottom:.6rem}:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .inner-instructions-container .instructions-card .card-container .ql-container .ql-editor p:before,:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .inner-instructions-container .instructions-card .card-container .ql-container .ql-editor span:before{content:\"\\2022 \";color:#000;font-size:1em;position:absolute;left:8px;top:0}:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .inner-instructions-container .instructions-card .card-container .ql-container .ql-editor p,:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .inner-instructions-container .instructions-card .card-container .ql-container .ql-editor span{position:relative;font-size:14px;padding-left:22px;margin:3px 0 0}:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .inner-instructions-container .instructions-card .card-container .ql-container .ql-editor ul,:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .inner-instructions-container .instructions-card .card-container .ql-container .ql-editor ol{padding-left:10px;margin:5px 0 0}:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .inner-instructions-container .instructions-card .card-container .ql-container .ql-editor ul li,:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .inner-instructions-container .instructions-card .card-container .ql-container .ql-editor ol li{font-size:14px;padding-left:0}:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .inner-instructions-container .instructions-card .card-container .ql-container .ql-editor ul li span:before,:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .inner-instructions-container .instructions-card .card-container .ql-container .ql-editor ol li span:before{top:-3px}:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .inner-instructions-container .instructions-card .card-container .ql-container .ql-editor ul li span,:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .inner-instructions-container .instructions-card .card-container .ql-container .ql-editor ol li span{padding-left:12px}:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .inner-instructions-container .instructions-card .card-container .ql-container .ql-editor br{display:none}@media (max-width: 799px){:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section{padding-top:0}:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container{flex-wrap:wrap}:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .background-information-container{max-width:none}:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .inner-instructions-container{max-width:none}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i3.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }, { kind: "ngmodule", type: DialogComponentModule }, { kind: "component", type: i4.DialogComponent, selector: "ui-dialog", inputs: ["title", "showCloseButton", "canCloseFn", "secondaryButtonLabel", "footerMessage", "primaryButtonLabel", "primaryButtonIconName", "secondaryButtonType", "primaryButtonType", "primaryButtonDataTestId", "secondaryButtonDataTestId", "companyColor", "applicationTheme", "disablePrimaryButton", "disableClose", "shouldDisableButtons", "ariaLabelledby", "ariaDescribedby", "keyboardOpen", "primaryButtonIconPosition"], outputs: ["closeEvent", "secondaryButtonClickEvent", "primaryButtonClickEvent"] }, { kind: "ngmodule", type: CardComponentModule }, { kind: "component", type: i4.CardComponent, selector: "ui-card", inputs: ["size", "variant", "applicationTheme", "errors", "errorsSize", "selected", "allowSelect", "allowFocus"], outputs: ["cardSelected"] }, { kind: "component", type: QuillViewComponent, selector: "quill-view", inputs: ["format", "theme", "modules", "debug", "formats", "sanitize", "beforeRender", "strict", "content", "customModules", "customOptions"], outputs: ["onEditorCreated"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
45
|
+
}
|
|
46
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ReviewInstructionsDialogComponent, decorators: [{
|
|
47
|
+
type: Component,
|
|
48
|
+
args: [{ selector: 'tgo-review-instructions-dialog', providers: [
|
|
49
|
+
TranslocoLazyModuleUtils.getScopeProvider('tgo-immersive-test-review-instructions', getAvailableLangs(), 'INSTRUCTIONS_MODAL', (lang) => {
|
|
50
|
+
// Fetch from app assets; demo app copies the library assets to
|
|
51
|
+
// /assets/tgo-immersive-test via project.json.
|
|
52
|
+
const url = new URL(`assets/tgo-immersive-test/i18n/${lang}.json`, document.baseURI).href;
|
|
53
|
+
return fetch(url).then((res) => res.json());
|
|
54
|
+
}),
|
|
55
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
56
|
+
CommonModule,
|
|
57
|
+
TranslocoModule,
|
|
58
|
+
DialogComponentModule,
|
|
59
|
+
CardComponentModule,
|
|
60
|
+
QuillViewComponent,
|
|
61
|
+
], template: "<ng-container *transloco=\"let t\">\n <ui-dialog\n class=\"dialog-wrapper\"\n [title]=\"translations['TITLE']\"\n [secondaryButtonLabel]=\"translations['CLOSE']\"\n (secondaryButtonClickEvent)=\"closeDialog()\"\n >\n <section class=\"containers-section\">\n <div class=\"immersive-test-instructions-container\">\n <div\n class=\"background-information-container\"\n *ngIf=\"dialogData?.backgroundInfoData\"\n >\n <ui-card class=\"background-information-card\" variant=\"neutral\">\n <quill-view\n theme=\"snow\"\n [content]=\"dialogData?.backgroundInfoData\"\n class=\"content-container notranslate\"\n ></quill-view>\n </ui-card>\n </div>\n\n <div\n class=\"inner-instructions-container\"\n *ngIf=\"dialogData?.instructionsInfoData\"\n >\n <ui-card class=\"instructions-card\" variant=\"educative\">\n <quill-view\n theme=\"snow\"\n [content]=\"dialogData?.instructionsInfoData\"\n class=\"content-container notranslate\"\n ></quill-view>\n </ui-card>\n </div>\n </div>\n </section>\n </ui-dialog>\n</ng-container>\n\n", styles: ["@charset \"UTF-8\";:host .dialog-wrapper{width:100%}:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section{width:100%;display:flex;flex-direction:column;justify-content:center;padding:.3rem .8rem}:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container{display:flex;justify-content:space-between;width:100%;gap:2.5rem}:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .background-information-container{display:flex;flex-direction:column;width:100%;max-width:450px}:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .background-information-container .background-information-card .content-container .ql-container .ql-editor{padding:0}:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .background-information-container .background-information-card .content-container .ql-container .ql-editor h1,:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .background-information-container .background-information-card .content-container .ql-container .ql-editor h2,:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .background-information-container .background-information-card .content-container .ql-container .ql-editor h3,:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .background-information-container .background-information-card .content-container .ql-container .ql-editor h4,:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .background-information-container .background-information-card .content-container .ql-container .ql-editor h5,:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .background-information-container .background-information-card .content-container .ql-container .ql-editor h6{font-size:16px;font-weight:700;line-height:20px;margin-bottom:.6rem}:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .background-information-container .background-information-card .content-container .ql-container .ql-editor p,:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .background-information-container .background-information-card .content-container .ql-container .ql-editor span{font-size:14px;margin-bottom:1.5rem}:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .background-information-container .background-information-card .content-container .ql-container .ql-editor p:last-child,:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .background-information-container .background-information-card .content-container .ql-container .ql-editor span:last-child{margin-bottom:0}:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .background-information-container .background-information-card .content-container .ql-container .ql-editor br{display:none}:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .inner-instructions-container{display:flex;flex-direction:column;gap:2.5rem;width:100%;max-width:450px}:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .inner-instructions-container .instructions-card .card-container{border-width:1px}:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .inner-instructions-container .instructions-card .card-container .ql-container .ql-editor{padding:0}:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .inner-instructions-container .instructions-card .card-container .ql-container .ql-editor h1,:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .inner-instructions-container .instructions-card .card-container .ql-container .ql-editor h2,:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .inner-instructions-container .instructions-card .card-container .ql-container .ql-editor h3,:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .inner-instructions-container .instructions-card .card-container .ql-container .ql-editor h4,:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .inner-instructions-container .instructions-card .card-container .ql-container .ql-editor h5,:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .inner-instructions-container .instructions-card .card-container .ql-container .ql-editor h6{font-size:16px;font-weight:700;line-height:20px;margin-bottom:.6rem}:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .inner-instructions-container .instructions-card .card-container .ql-container .ql-editor p:before,:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .inner-instructions-container .instructions-card .card-container .ql-container .ql-editor span:before{content:\"\\2022 \";color:#000;font-size:1em;position:absolute;left:8px;top:0}:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .inner-instructions-container .instructions-card .card-container .ql-container .ql-editor p,:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .inner-instructions-container .instructions-card .card-container .ql-container .ql-editor span{position:relative;font-size:14px;padding-left:22px;margin:3px 0 0}:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .inner-instructions-container .instructions-card .card-container .ql-container .ql-editor ul,:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .inner-instructions-container .instructions-card .card-container .ql-container .ql-editor ol{padding-left:10px;margin:5px 0 0}:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .inner-instructions-container .instructions-card .card-container .ql-container .ql-editor ul li,:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .inner-instructions-container .instructions-card .card-container .ql-container .ql-editor ol li{font-size:14px;padding-left:0}:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .inner-instructions-container .instructions-card .card-container .ql-container .ql-editor ul li span:before,:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .inner-instructions-container .instructions-card .card-container .ql-container .ql-editor ol li span:before{top:-3px}:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .inner-instructions-container .instructions-card .card-container .ql-container .ql-editor ul li span,:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .inner-instructions-container .instructions-card .card-container .ql-container .ql-editor ol li span{padding-left:12px}:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .inner-instructions-container .instructions-card .card-container .ql-container .ql-editor br{display:none}@media (max-width: 799px){:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section{padding-top:0}:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container{flex-wrap:wrap}:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .background-information-container{max-width:none}:host .dialog-wrapper ::ng-deep .mat-mdc-dialog-content .containers-section .immersive-test-instructions-container .inner-instructions-container{max-width:none}}\n"] }]
|
|
62
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
63
|
+
type: Inject,
|
|
64
|
+
args: [MAT_DIALOG_DATA]
|
|
65
|
+
}] }, { type: undefined, decorators: [{
|
|
66
|
+
type: Inject,
|
|
67
|
+
args: [TRANSLOCO_SCOPE]
|
|
68
|
+
}] }, { type: i1.MatDialogRef }] });
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV2aWV3LWluc3RydWN0aW9ucy1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGdvLWltbWVyc2l2ZS10ZXN0L3NyYy9saWIvY29tcG9uZW50cy9yZXZpZXctaW5zdHJ1Y3Rpb25zLWRpYWxvZy9yZXZpZXctaW5zdHJ1Y3Rpb25zLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90Z28taW1tZXJzaXZlLXRlc3Qvc3JjL2xpYi9jb21wb25lbnRzL3Jldmlldy1pbnN0cnVjdGlvbnMtZGlhbG9nL3Jldmlldy1pbnN0cnVjdGlvbnMtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsTUFBTSxFQUNOLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLE9BQU8sRUFDTCxlQUFlLEVBQ2YsZUFBZSxFQUVmLGdCQUFnQixHQUNqQixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUFxQzdFLE1BQU0sT0FBTyxpQ0FBaUM7SUFRbkM7SUFDMEI7SUFDekI7SUFUVixZQUFZLEdBQThCLEVBQUUsQ0FBQztJQUVyQyxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUM1QyxHQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFFeEMsWUFFUyxVQUF3QyxFQUNkLGdCQUFnQyxFQUN6RCxTQUEwRDtRQUYzRCxlQUFVLEdBQVYsVUFBVSxDQUE4QjtRQUNkLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBZ0I7UUFDekQsY0FBUyxHQUFULFNBQVMsQ0FBaUQ7SUFDakUsQ0FBQztJQUVKLFFBQVE7UUFDTixLQUFLLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFTyxLQUFLLENBQUMsZUFBZTtRQUMzQixJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sY0FBYyxDQUN0QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMscUJBQXFCLENBQ3pDLG9CQUFvQixFQUNwQixFQUFFLEVBQ0YsSUFBSSxDQUFDLGdCQUEwQixDQUNoQyxDQUNGLENBQUM7UUFDRixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7d0dBOUJVLGlDQUFpQyxrQkFPbEMsZUFBZSxhQUVmLGVBQWU7NEZBVGQsaUNBQWlDLDZFQTFCakM7WUFDVCx3QkFBd0IsQ0FBQyxnQkFBZ0IsQ0FDdkMsd0NBQXdDLEVBQ3hDLGlCQUFpQixFQUFFLEVBQ25CLG9CQUFvQixFQUNwQixDQUFDLElBQVksRUFBRSxFQUFFO2dCQUNmLCtEQUErRDtnQkFDL0QsK0NBQStDO2dCQUMvQyxNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FDakIsa0NBQWtDLElBQUksT0FBTyxFQUM3QyxRQUFRLENBQUMsT0FBTyxDQUNqQixDQUFDLElBQUksQ0FBQztnQkFDUCxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzlDLENBQUMsQ0FDRjtTQUNGLDBCQzdDSCx3d0NBdUNBLDQyUkRVSSxZQUFZLGtJQUNaLGVBQWUsZ09BQ2YscUJBQXFCLDZsQkFDckIsbUJBQW1CLGdQQUNuQixrQkFBa0I7OzRGQUdULGlDQUFpQztrQkE5QjdDLFNBQVM7K0JBQ0UsZ0NBQWdDLGFBRy9CO3dCQUNULHdCQUF3QixDQUFDLGdCQUFnQixDQUN2Qyx3Q0FBd0MsRUFDeEMsaUJBQWlCLEVBQUUsRUFDbkIsb0JBQW9CLEVBQ3BCLENBQUMsSUFBWSxFQUFFLEVBQUU7NEJBQ2YsK0RBQStEOzRCQUMvRCwrQ0FBK0M7NEJBQy9DLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUNqQixrQ0FBa0MsSUFBSSxPQUFPLEVBQzdDLFFBQVEsQ0FBQyxPQUFPLENBQ2pCLENBQUMsSUFBSSxDQUFDOzRCQUNQLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7d0JBQzlDLENBQUMsQ0FDRjtxQkFDRixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixlQUFlO3dCQUNmLHFCQUFxQjt3QkFDckIsbUJBQW1CO3dCQUNuQixrQkFBa0I7cUJBQ25COzswQkFTRSxNQUFNOzJCQUFDLGVBQWU7OzBCQUV0QixNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIGluamVjdCxcbiAgSW5qZWN0LFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHtcbiAgVFJBTlNMT0NPX1NDT1BFLFxuICBUcmFuc2xvY29Nb2R1bGUsXG4gIFRyYW5zbG9jb1Njb3BlLFxuICBUcmFuc2xvY29TZXJ2aWNlLFxufSBmcm9tICdAbmduZWF0L3RyYW5zbG9jbyc7XG5pbXBvcnQgeyBDYXJkQ29tcG9uZW50TW9kdWxlLCBEaWFsb2dDb21wb25lbnRNb2R1bGUgfSBmcm9tICdAdGVzdGdvcmlsbGEvdGdvLXVpJztcbmltcG9ydCB7IFF1aWxsVmlld0NvbXBvbmVudCB9IGZyb20gJ25neC1xdWlsbCc7XG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZ2V0QXZhaWxhYmxlTGFuZ3MsIFRyYW5zbG9jb0xhenlNb2R1bGVVdGlscyB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcblxuZXhwb3J0IGludGVyZmFjZSBSZXZpZXdJbnN0cnVjdGlvbnNEaWFsb2dEYXRhIHtcbiAgYmFja2dyb3VuZEluZm9EYXRhPzogc3RyaW5nO1xuICBpbnN0cnVjdGlvbnNJbmZvRGF0YT86IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGdvLXJldmlldy1pbnN0cnVjdGlvbnMtZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Jldmlldy1pbnN0cnVjdGlvbnMtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmV2aWV3LWluc3RydWN0aW9ucy1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgVHJhbnNsb2NvTGF6eU1vZHVsZVV0aWxzLmdldFNjb3BlUHJvdmlkZXIoXG4gICAgICAndGdvLWltbWVyc2l2ZS10ZXN0LXJldmlldy1pbnN0cnVjdGlvbnMnLFxuICAgICAgZ2V0QXZhaWxhYmxlTGFuZ3MoKSxcbiAgICAgICdJTlNUUlVDVElPTlNfTU9EQUwnLFxuICAgICAgKGxhbmc6IHN0cmluZykgPT4ge1xuICAgICAgICAvLyBGZXRjaCBmcm9tIGFwcCBhc3NldHM7IGRlbW8gYXBwIGNvcGllcyB0aGUgbGlicmFyeSBhc3NldHMgdG9cbiAgICAgICAgLy8gL2Fzc2V0cy90Z28taW1tZXJzaXZlLXRlc3QgdmlhIHByb2plY3QuanNvbi5cbiAgICAgICAgY29uc3QgdXJsID0gbmV3IFVSTChcbiAgICAgICAgICBgYXNzZXRzL3Rnby1pbW1lcnNpdmUtdGVzdC9pMThuLyR7bGFuZ30uanNvbmAsXG4gICAgICAgICAgZG9jdW1lbnQuYmFzZVVSSVxuICAgICAgICApLmhyZWY7XG4gICAgICAgIHJldHVybiBmZXRjaCh1cmwpLnRoZW4oKHJlcykgPT4gcmVzLmpzb24oKSk7XG4gICAgICB9XG4gICAgKSxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVHJhbnNsb2NvTW9kdWxlLFxuICAgIERpYWxvZ0NvbXBvbmVudE1vZHVsZSxcbiAgICBDYXJkQ29tcG9uZW50TW9kdWxlLFxuICAgIFF1aWxsVmlld0NvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUmV2aWV3SW5zdHJ1Y3Rpb25zRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgdHJhbnNsYXRpb25zOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG5cbiAgcHJpdmF0ZSB0cmFuc2xvY29TZXJ2aWNlID0gaW5qZWN0KFRyYW5zbG9jb1NlcnZpY2UpO1xuICBwcml2YXRlIGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpXG4gICAgcHVibGljIGRpYWxvZ0RhdGE6IFJldmlld0luc3RydWN0aW9uc0RpYWxvZ0RhdGEsXG4gICAgQEluamVjdChUUkFOU0xPQ09fU0NPUEUpIHByaXZhdGUgdHJhbnNsYXRpb25TY29wZTogVHJhbnNsb2NvU2NvcGUsXG4gICAgcHJpdmF0ZSBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxSZXZpZXdJbnN0cnVjdGlvbnNEaWFsb2dDb21wb25lbnQ+XG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB2b2lkIHRoaXMuc2V0VHJhbnNsYXRpb25zKCk7XG4gIH1cblxuICBjbG9zZURpYWxvZygpOiB2b2lkIHtcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShmYWxzZSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNldFRyYW5zbGF0aW9ucygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLnRyYW5zbGF0aW9ucyA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgdGhpcy50cmFuc2xvY29TZXJ2aWNlLnNlbGVjdFRyYW5zbGF0ZU9iamVjdChcbiAgICAgICAgYElOU1RSVUNUSU9OU19NT0RBTGAsXG4gICAgICAgIHt9LFxuICAgICAgICB0aGlzLnRyYW5zbGF0aW9uU2NvcGUgYXMgc3RyaW5nXG4gICAgICApXG4gICAgKTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqdHJhbnNsb2NvPVwibGV0IHRcIj5cbiAgPHVpLWRpYWxvZ1xuICAgIGNsYXNzPVwiZGlhbG9nLXdyYXBwZXJcIlxuICAgIFt0aXRsZV09XCJ0cmFuc2xhdGlvbnNbJ1RJVExFJ11cIlxuICAgIFtzZWNvbmRhcnlCdXR0b25MYWJlbF09XCJ0cmFuc2xhdGlvbnNbJ0NMT1NFJ11cIlxuICAgIChzZWNvbmRhcnlCdXR0b25DbGlja0V2ZW50KT1cImNsb3NlRGlhbG9nKClcIlxuICA+XG4gICAgPHNlY3Rpb24gY2xhc3M9XCJjb250YWluZXJzLXNlY3Rpb25cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJpbW1lcnNpdmUtdGVzdC1pbnN0cnVjdGlvbnMtY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImJhY2tncm91bmQtaW5mb3JtYXRpb24tY29udGFpbmVyXCJcbiAgICAgICAgICAqbmdJZj1cImRpYWxvZ0RhdGE/LmJhY2tncm91bmRJbmZvRGF0YVwiXG4gICAgICAgID5cbiAgICAgICAgICA8dWktY2FyZCBjbGFzcz1cImJhY2tncm91bmQtaW5mb3JtYXRpb24tY2FyZFwiIHZhcmlhbnQ9XCJuZXV0cmFsXCI+XG4gICAgICAgICAgICA8cXVpbGwtdmlld1xuICAgICAgICAgICAgICB0aGVtZT1cInNub3dcIlxuICAgICAgICAgICAgICBbY29udGVudF09XCJkaWFsb2dEYXRhPy5iYWNrZ3JvdW5kSW5mb0RhdGFcIlxuICAgICAgICAgICAgICBjbGFzcz1cImNvbnRlbnQtY29udGFpbmVyIG5vdHJhbnNsYXRlXCJcbiAgICAgICAgICAgID48L3F1aWxsLXZpZXc+XG4gICAgICAgICAgPC91aS1jYXJkPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJpbm5lci1pbnN0cnVjdGlvbnMtY29udGFpbmVyXCJcbiAgICAgICAgICAqbmdJZj1cImRpYWxvZ0RhdGE/Lmluc3RydWN0aW9uc0luZm9EYXRhXCJcbiAgICAgICAgPlxuICAgICAgICAgIDx1aS1jYXJkIGNsYXNzPVwiaW5zdHJ1Y3Rpb25zLWNhcmRcIiB2YXJpYW50PVwiZWR1Y2F0aXZlXCI+XG4gICAgICAgICAgICA8cXVpbGwtdmlld1xuICAgICAgICAgICAgICB0aGVtZT1cInNub3dcIlxuICAgICAgICAgICAgICBbY29udGVudF09XCJkaWFsb2dEYXRhPy5pbnN0cnVjdGlvbnNJbmZvRGF0YVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiY29udGVudC1jb250YWluZXIgbm90cmFuc2xhdGVcIlxuICAgICAgICAgICAgPjwvcXVpbGwtdmlldz5cbiAgICAgICAgICA8L3VpLWNhcmQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9zZWN0aW9uPlxuICA8L3VpLWRpYWxvZz5cbjwvbmctY29udGFpbmVyPlxuXG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './ringing-phone-animation.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90Z28taW1tZXJzaXZlLXRlc3Qvc3JjL2xpYi9jb21wb25lbnRzL3JpbmdpbmctcGhvbmUtYW5pbWF0aW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUNBQXFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3JpbmdpbmctcGhvbmUtYW5pbWF0aW9uLmNvbXBvbmVudCc7XG4iXX0=
|