@seniorsistemas/angular-components 17.26.9 → 17.26.11
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/bundles/seniorsistemas-angular-components.umd.js +118 -80
- package/bundles/seniorsistemas-angular-components.umd.js.map +1 -1
- package/bundles/seniorsistemas-angular-components.umd.min.js +1 -1
- package/bundles/seniorsistemas-angular-components.umd.min.js.map +1 -1
- package/components/speech-recognition/speech-recognition/speech-recognition.component.d.ts +5 -2
- package/components/speech-recognition/speech-recognition.service.d.ts +3 -2
- package/components/text-area/text-area/text-area.component.d.ts +1 -3
- package/esm2015/components/speech-recognition/speech-recognition/speech-recognition.component.js +35 -20
- package/esm2015/components/speech-recognition/speech-recognition.service.js +41 -22
- package/esm2015/components/speech-recognition/text-to-speech.service.js +1 -1
- package/esm2015/components/text-area/text-area/text-area.component.js +3 -14
- package/esm2015/components/tooltip/tooltip.component.js +1 -1
- package/esm5/components/speech-recognition/speech-recognition/speech-recognition.component.js +40 -19
- package/esm5/components/speech-recognition/speech-recognition.service.js +78 -46
- package/esm5/components/speech-recognition/text-to-speech.service.js +1 -1
- package/esm5/components/text-area/text-area/text-area.component.js +3 -18
- package/esm5/components/tooltip/tooltip.component.js +1 -1
- package/fesm2015/seniorsistemas-angular-components.js +76 -53
- package/fesm2015/seniorsistemas-angular-components.js.map +1 -1
- package/fesm5/seniorsistemas-angular-components.js +118 -80
- package/fesm5/seniorsistemas-angular-components.js.map +1 -1
- package/package.json +1 -1
- package/seniorsistemas-angular-components.metadata.json +1 -1
package/esm5/components/speech-recognition/speech-recognition/speech-recognition.component.js
CHANGED
|
@@ -15,7 +15,7 @@ var SpeechRecognitionComponent = /** @class */ (function () {
|
|
|
15
15
|
this.speechRecognitionPlaceholder = '';
|
|
16
16
|
this._recognizedText = '';
|
|
17
17
|
this.originalTextAreaElementText = '';
|
|
18
|
-
this.
|
|
18
|
+
this.isDoneTextToSpeech = false;
|
|
19
19
|
this.onDestroy$ = new Subject();
|
|
20
20
|
this.VOICE_SPEEDS = [0.5, 1, 1.5, 2];
|
|
21
21
|
this.keydownEventListener = function (event) {
|
|
@@ -24,7 +24,7 @@ var SpeechRecognitionComponent = /** @class */ (function () {
|
|
|
24
24
|
}
|
|
25
25
|
};
|
|
26
26
|
this.disabled = false;
|
|
27
|
-
this.
|
|
27
|
+
this.isListeningUserVoice = false;
|
|
28
28
|
this.voiceSpeed = 1;
|
|
29
29
|
this.isDisabledMicrophone = false;
|
|
30
30
|
this.canRenderMicrophone = true;
|
|
@@ -36,7 +36,9 @@ var SpeechRecognitionComponent = /** @class */ (function () {
|
|
|
36
36
|
this.isPlayingTextToSpeech = false;
|
|
37
37
|
this.recognizedText = new EventEmitter();
|
|
38
38
|
}
|
|
39
|
+
SpeechRecognitionComponent_1 = SpeechRecognitionComponent;
|
|
39
40
|
SpeechRecognitionComponent.prototype.ngOnInit = function () {
|
|
41
|
+
var _this = this;
|
|
40
42
|
if (!this.hasSpeechRecognitionBrowserApi) {
|
|
41
43
|
return;
|
|
42
44
|
}
|
|
@@ -45,6 +47,11 @@ var SpeechRecognitionComponent = /** @class */ (function () {
|
|
|
45
47
|
}
|
|
46
48
|
this.textAreaElement.placeholder = this.speechRecognitionPlaceholder ? this.speechRecognitionPlaceholder : this.translateService.instant("platform.angular_components.text_area_speech_recognition_placeholder");
|
|
47
49
|
this.textAreaElement.addEventListener('keydown', this.keydownEventListener);
|
|
50
|
+
this.speechRecognitionService.microphoneStatus$.pipe(takeUntil(this.onDestroy$)).subscribe(function (status) {
|
|
51
|
+
if (status === 'active') {
|
|
52
|
+
_this.onCloseToolbar();
|
|
53
|
+
}
|
|
54
|
+
});
|
|
48
55
|
};
|
|
49
56
|
SpeechRecognitionComponent.prototype.onListen = function () {
|
|
50
57
|
var _this = this;
|
|
@@ -56,7 +63,7 @@ var SpeechRecognitionComponent = /** @class */ (function () {
|
|
|
56
63
|
this.canRenderListeningText = true;
|
|
57
64
|
this.originalTextAreaElementText = this.textAreaElement.value;
|
|
58
65
|
this.textAreaElement.value = '';
|
|
59
|
-
this.
|
|
66
|
+
this.isListeningUserVoice = true;
|
|
60
67
|
this.speechRecognitionService.listen()
|
|
61
68
|
.pipe(takeUntil(this.onDestroy$))
|
|
62
69
|
.subscribe(function (_a) {
|
|
@@ -68,10 +75,10 @@ var SpeechRecognitionComponent = /** @class */ (function () {
|
|
|
68
75
|
_this.canRenderAprove = true;
|
|
69
76
|
_this.canRenderDiscard = true;
|
|
70
77
|
_this.canRenderListeningText = false;
|
|
71
|
-
_this.
|
|
78
|
+
_this.isListeningUserVoice = false;
|
|
72
79
|
}
|
|
73
80
|
}, function () {
|
|
74
|
-
_this.
|
|
81
|
+
_this.isListeningUserVoice = false;
|
|
75
82
|
_this.canRenderMicrophone = true;
|
|
76
83
|
_this.isDisabledMicrophone = false;
|
|
77
84
|
_this.canRenderListeningText = false;
|
|
@@ -90,15 +97,15 @@ var SpeechRecognitionComponent = /** @class */ (function () {
|
|
|
90
97
|
}
|
|
91
98
|
this.canRenderTextToSpeechToolbar = true;
|
|
92
99
|
this.canRenderTextToSpeech = false;
|
|
93
|
-
|
|
100
|
+
SpeechRecognitionComponent_1.TOOLBAR_ACTIVE = true;
|
|
94
101
|
this.speak();
|
|
95
102
|
};
|
|
96
103
|
SpeechRecognitionComponent.prototype.onCloseToolbar = function () {
|
|
97
104
|
this.canRenderTextToSpeechToolbar = false;
|
|
98
105
|
this.canRenderTextToSpeech = true;
|
|
99
|
-
this.
|
|
100
|
-
this.textToSpeechService.cancel();
|
|
106
|
+
this.stopTextToSpeech();
|
|
101
107
|
this.voiceSpeed = 1;
|
|
108
|
+
SpeechRecognitionComponent_1.TOOLBAR_ACTIVE = false;
|
|
102
109
|
};
|
|
103
110
|
SpeechRecognitionComponent.prototype.onDiscard = function () {
|
|
104
111
|
this.canRenderAprove = false;
|
|
@@ -109,7 +116,8 @@ var SpeechRecognitionComponent = /** @class */ (function () {
|
|
|
109
116
|
this._recognizedText = '';
|
|
110
117
|
this.setTextAreaValue(this.originalTextAreaElementText);
|
|
111
118
|
this.disabled = false;
|
|
112
|
-
this.
|
|
119
|
+
this.stopTextToSpeech();
|
|
120
|
+
SpeechRecognitionComponent_1.TOOLBAR_ACTIVE = false;
|
|
113
121
|
};
|
|
114
122
|
SpeechRecognitionComponent.prototype.onAprove = function () {
|
|
115
123
|
this.canRenderAprove = false;
|
|
@@ -139,7 +147,7 @@ var SpeechRecognitionComponent = /** @class */ (function () {
|
|
|
139
147
|
this.textToSpeechService.pause();
|
|
140
148
|
}
|
|
141
149
|
else {
|
|
142
|
-
if (this.
|
|
150
|
+
if (this.isDoneTextToSpeech) {
|
|
143
151
|
this.speak();
|
|
144
152
|
}
|
|
145
153
|
else {
|
|
@@ -149,7 +157,6 @@ var SpeechRecognitionComponent = /** @class */ (function () {
|
|
|
149
157
|
this.isPlayingTextToSpeech = !this.isPlayingTextToSpeech;
|
|
150
158
|
};
|
|
151
159
|
SpeechRecognitionComponent.prototype.restartTextToSpeech = function () {
|
|
152
|
-
this.isPlayingTextToSpeech = true;
|
|
153
160
|
this.textToSpeechService.cancel();
|
|
154
161
|
this.speak();
|
|
155
162
|
};
|
|
@@ -180,7 +187,7 @@ var SpeechRecognitionComponent = /** @class */ (function () {
|
|
|
180
187
|
Object.defineProperty(SpeechRecognitionComponent.prototype, "isDisabledTextToSpeech", {
|
|
181
188
|
get: function () {
|
|
182
189
|
var hasTextToSpeechVoice = this.textToSpeechService.hasVoice;
|
|
183
|
-
return !this.
|
|
190
|
+
return !this.textToSpeech || !hasTextToSpeechVoice || this.isListening || SpeechRecognitionComponent_1.TOOLBAR_ACTIVE;
|
|
184
191
|
},
|
|
185
192
|
enumerable: true,
|
|
186
193
|
configurable: true
|
|
@@ -188,14 +195,28 @@ var SpeechRecognitionComponent = /** @class */ (function () {
|
|
|
188
195
|
SpeechRecognitionComponent.prototype.setTextAreaValue = function (value) {
|
|
189
196
|
this.textAreaElement.value = value;
|
|
190
197
|
};
|
|
198
|
+
SpeechRecognitionComponent.prototype.stopTextToSpeech = function () {
|
|
199
|
+
this.isPlayingTextToSpeech = false;
|
|
200
|
+
this.textToSpeechService.cancel();
|
|
201
|
+
};
|
|
191
202
|
SpeechRecognitionComponent.prototype.speak = function () {
|
|
192
203
|
var _this = this;
|
|
193
|
-
this.
|
|
194
|
-
this.
|
|
204
|
+
this.isDoneTextToSpeech = false;
|
|
205
|
+
this.isPlayingTextToSpeech = true;
|
|
206
|
+
this.textToSpeechService.speak(this.textToSpeech, this.voiceSpeed).then(function () {
|
|
195
207
|
_this.isPlayingTextToSpeech = false;
|
|
196
|
-
_this.
|
|
208
|
+
_this.isDoneTextToSpeech = true;
|
|
197
209
|
});
|
|
198
210
|
};
|
|
211
|
+
Object.defineProperty(SpeechRecognitionComponent.prototype, "textToSpeech", {
|
|
212
|
+
get: function () {
|
|
213
|
+
return this.textAreaElement.value;
|
|
214
|
+
},
|
|
215
|
+
enumerable: true,
|
|
216
|
+
configurable: true
|
|
217
|
+
});
|
|
218
|
+
var SpeechRecognitionComponent_1;
|
|
219
|
+
SpeechRecognitionComponent.TOOLBAR_ACTIVE = false;
|
|
199
220
|
SpeechRecognitionComponent.ctorParameters = function () { return [
|
|
200
221
|
{ type: SpeechRecognitionService },
|
|
201
222
|
{ type: TextToSpeechService },
|
|
@@ -213,14 +234,14 @@ var SpeechRecognitionComponent = /** @class */ (function () {
|
|
|
213
234
|
__decorate([
|
|
214
235
|
Output()
|
|
215
236
|
], SpeechRecognitionComponent.prototype, "recognizedText", void 0);
|
|
216
|
-
SpeechRecognitionComponent = __decorate([
|
|
237
|
+
SpeechRecognitionComponent = SpeechRecognitionComponent_1 = __decorate([
|
|
217
238
|
Component({
|
|
218
239
|
selector: 's-speech-recognition',
|
|
219
|
-
template: "<section class=\"speech-recognition\" *ngIf=\"hasSpeechRecognitionBrowserApi\">\n <div class=\"speech-recognition-text\">\n <ng-container *ngIf=\"canRenderMicrophone\">\n {{ 'platform.angular_components.text_area_before_speech' | translate }}\n </ng-container>\n\n <ng-container *ngIf=\"
|
|
220
|
-
styles: [".speech-recognition{display:-ms-flexbox;display:flex;gap:10px;-ms-flex-pack:justify;justify-content:space-between;width:100%}.speech-recognition-buttons{display:-ms-flexbox;display:flex;gap:10px;position:relative;bottom:15px;margin-right:16px}.speech-recognition-item{display:-ms-inline-flexbox;display:inline-flex;height:25px;padding:4px 12px;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;gap:8px;border-radius:15px;cursor:pointer;transition:background .1s ease-in}.speech-recognition-item i,.speech-recognition-item span{color:#fff}.speech-recognition-item-disabled{cursor:default!important}.speech-recognition-item-disabled *{opacity:.5}.speech-recognition-item-microphone{background:#428bca}.speech-recognition-item-microphone:not(.speech-recognition-item-disabled):hover{background:#063951}.speech-recognition-item-regular{background:#7892a1}.speech-recognition-item-regular:not(.speech-recognition-item-disabled):hover{background:#697882}.speech-recognition-item-aprove{background:#0c9348}.speech-recognition-item-aprove:not(.speech-recognition-item-disabled):hover{background:#063951}.speech-recognition-item-discard{background:#c13018}.speech-recognition-item-discard:not(.speech-recognition-item-disabled):hover{background:#063951}.speech-recognition-item-toolbar{background:#7892a1;display:-ms-flexbox;display:flex;border-radius:15px;-ms-flex-align:center;align-items:center;color:#fff}.speech-recognition-item-toolbar i,.speech-recognition-item-toolbar span{cursor:pointer}.speech-recognition-item-toolbar i:not(:first-child),.speech-recognition-item-toolbar i:not(:last-child){padding:6px}.speech-recognition-item-toolbar i:first-child{padding-left:10px}.speech-recognition-item-toolbar i:last-child{padding-right:10px}.speech-recognition-
|
|
240
|
+
template: "<section class=\"speech-recognition\" *ngIf=\"hasSpeechRecognitionBrowserApi\">\n <div class=\"speech-recognition-text\">\n <ng-container *ngIf=\"canRenderMicrophone\">\n {{ 'platform.angular_components.text_area_before_speech' | translate }}\n </ng-container>\n\n <ng-container *ngIf=\"isListeningUserVoice\">\n {{ 'platform.angular_components.text_area_while_speech' | translate }}\n </ng-container>\n\n <ng-container *ngIf=\"canRenderAprove && canRenderDiscard\">\n {{ 'platform.angular_components.text_area_end_speech' | translate }}\n </ng-container>\n </div>\n <div class=\"speech-recognition-buttons\">\n <span\n *ngIf=\"canRenderListeningText\"\n (click)=\"stopListening()\"\n class=\"speech-recognition-item speech-recognition-item-regular\">\n <i class=\"far fa-ellipsis-h\"></i>\n </span>\n\n <span\n *ngIf=\"canRenderMicrophone\"\n (click)=\"onListen()\"\n class=\"speech-recognition-item speech-recognition-item-microphone\"\n [class.speech-recognition-item-disabled]=\"isDisabledMicrophone || isListening || disabled\">\n <i class=\"fas fa-microphone\"></i>\n </span>\n\n <span\n *ngIf=\"canRenderAprove\"\n (click)=\"onAprove()\"\n class=\"speech-recognition-item speech-recognition-item-aprove\">\n <i class=\"fas fa-check\"></i>\n </span>\n\n <span *ngIf=\"canRenderDiscard\"\n (click)=\"onDiscard()\"\n class=\"speech-recognition-item speech-recognition-item-discard\">\n <i class=\"fas fa-times\"></i>\n </span>\n\n <span\n *ngIf=\"canRenderTextToSpeech\"\n (click)=\"onOpenToolbar()\"\n class=\"speech-recognition-item speech-recognition-item-regular\"\n [class.speech-recognition-item-disabled]=\"isDisabledTextToSpeech\">\n <i class=\"fas fa-volume-down\"></i>\n </span>\n\n <span\n *ngIf=\"canRenderTextToSpeechToolbar\"\n class=\"speech-recognition-item-toolbar\">\n <i class=\"fas\" [class.fa-pause]=\"isPlayingTextToSpeech\" [class.fa-play]=\"!isPlayingTextToSpeech\"\n (click)=\"toggleTextToSpeech()\"></i>\n <i class=\"fas fa-backward\" (click)=\"restartTextToSpeech()\"></i>\n <span (click)=\"updateVoiceSpeed()\">\n {{ voiceSpeed }}x\n </span>\n <i class=\"fas fa-times\" (click)=\"onCloseToolbar()\"></i>\n </span>\n </div>\n</section>\n",
|
|
241
|
+
styles: [".speech-recognition{display:-ms-flexbox;display:flex;gap:10px;-ms-flex-pack:justify;justify-content:space-between;width:100%}.speech-recognition-buttons{display:-ms-flexbox;display:flex;gap:10px;position:relative;bottom:15px;margin-right:16px}.speech-recognition-item{display:-ms-inline-flexbox;display:inline-flex;height:25px;padding:4px 12px;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;gap:8px;border-radius:15px;cursor:pointer;transition:background .1s ease-in}.speech-recognition-item i,.speech-recognition-item span{color:#fff}.speech-recognition-item-disabled{cursor:default!important}.speech-recognition-item-disabled *{opacity:.5}.speech-recognition-item-microphone{background:#428bca}.speech-recognition-item-microphone:not(.speech-recognition-item-disabled):hover{background:#063951}.speech-recognition-item-regular{background:#7892a1}.speech-recognition-item-regular:not(.speech-recognition-item-disabled):hover{background:#697882}.speech-recognition-item-aprove{background:#0c9348}.speech-recognition-item-aprove:not(.speech-recognition-item-disabled):hover{background:#063951}.speech-recognition-item-discard{background:#c13018}.speech-recognition-item-discard:not(.speech-recognition-item-disabled):hover{background:#063951}.speech-recognition-item-toolbar{background:#7892a1;display:-ms-flexbox;display:flex;border-radius:15px;-ms-flex-align:center;align-items:center;color:#fff;height:25px}.speech-recognition-item-toolbar i,.speech-recognition-item-toolbar span{cursor:pointer}.speech-recognition-item-toolbar i:not(:first-child),.speech-recognition-item-toolbar i:not(:last-child){padding:6px}.speech-recognition-item-toolbar i:first-child{padding-left:10px}.speech-recognition-item-toolbar i:last-child{padding-right:10px}.speech-recognition-text{color:#212533;font-size:12px;font-style:normal;font-weight:400;word-break:break-word}"]
|
|
221
242
|
})
|
|
222
243
|
], SpeechRecognitionComponent);
|
|
223
244
|
return SpeechRecognitionComponent;
|
|
224
245
|
}());
|
|
225
246
|
export { SpeechRecognitionComponent };
|
|
226
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlZWNoLXJlY29nbml0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL3NwZWVjaC1yZWNvZ25pdGlvbi9zcGVlY2gtcmVjb2duaXRpb24vc3BlZWNoLXJlY29nbml0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFPaEU7SUE4QkUsb0NBQ21CLHdCQUFrRCxFQUNsRCxtQkFBd0MsRUFDeEMsZ0JBQWtDO1FBSHJELGlCQUlLO1FBSGMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUEvQjVDLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLGlDQUE0QixHQUFHLEVBQUUsQ0FBQztRQUNuQyxvQkFBZSxHQUFHLEVBQUUsQ0FBQztRQUNyQixnQ0FBMkIsR0FBRyxFQUFFLENBQUM7UUFDakMsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDZCxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUNqQyxpQkFBWSxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVB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O0lBN0IzQywwQkFBMEI7UUFMdEMsU0FBUyxDQUFDO1lBQ1QsUUFBUSxFQUFFLHNCQUFzQjtZQUNoQyx5b0ZBQWtEOztTQUVuRCxDQUFDO09BQ1csMEJBQTBCLENBZ010QztJQUFELGlDQUFDO0NBQUEsQUFoTUQsSUFnTUM7U0FoTVksMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTcGVlY2hSZWNvZ25pdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zcGVlY2gtcmVjb2duaXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBUZXh0VG9TcGVlY2hTZXJ2aWNlIH0gZnJvbSAnLi4vdGV4dC10by1zcGVlY2guc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Mtc3BlZWNoLXJlY29nbml0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NwZWVjaC1yZWNvZ25pdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NwZWVjaC1yZWNvZ25pdGlvbi5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNwZWVjaFJlY29nbml0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSB0ZXh0QXJlYUVsZW1lbnQ6IEhUTUxUZXh0QXJlYUVsZW1lbnQ7XG4gIEBJbnB1dCgpIGtlZXBDb250ZXh0ID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNwZWVjaFJlY29nbml0aW9uUGxhY2Vob2xkZXIgPSAnJztcbiAgcHJpdmF0ZSBfcmVjb2duaXplZFRleHQgPSAnJztcbiAgcHJpdmF0ZSBvcmlnaW5hbFRleHRBcmVhRWxlbWVudFRleHQgPSAnJztcbiAgcHJpdmF0ZSBpc0RvbmVTcGVha2luZyA9IGZhbHNlO1xuICBwcml2YXRlIHJlYWRvbmx5IG9uRGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IFZPSUNFX1NQRUVEUyA9IFswLjUsIDEsIDEuNSwgMl07XG4gIHByaXZhdGUgcmVhZG9ubHkga2V5ZG93bkV2ZW50TGlzdGVuZXIgPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuICBkaXNhYmxlZCA9IGZhbHNlO1xuICBpc1NwZWFraW5nID0gZmFsc2U7XG4gIHZvaWNlU3BlZWQgPSAxO1xuICBpc0Rpc2FibGVkTWljcm9waG9uZSA9IGZhbHNlO1xuXG4gIGNhblJlbmRlck1pY3JvcGhvbmUgPSB0cnVlO1xuICBjYW5SZW5kZXJUZXh0VG9TcGVlY2ggPSB0cnVlO1xuICBjYW5SZW5kZXJMaXN0ZW5pbmdUZXh0ID0gZmFsc2U7XG4gIGNhblJlbmRlckRpc2NhcmQgPSBmYWxzZTtcbiAgY2FuUmVuZGVyQXByb3ZlID0gZmFsc2U7XG4gIGNhblJlbmRlclRleHRUb1NwZWVjaFRvb2xiYXIgPSBmYWxzZTtcblxuICBpc1BsYXlpbmdUZXh0VG9TcGVlY2ggPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgcmVjb2duaXplZFRleHQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBzcGVlY2hSZWNvZ25pdGlvblNlcnZpY2U6IFNwZWVjaFJlY29nbml0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRUb1NwZWVjaFNlcnZpY2U6IFRleHRUb1NwZWVjaFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmhhc1NwZWVjaFJlY29nbml0aW9uQnJvd3NlckFwaSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXRoaXMudGV4dEFyZWFFbGVtZW50KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3RleHRBcmVhRWxlbWVudCBpcyByZXF1aXJlZCcpO1xuICAgIH1cbiAgICB0aGlzLnRleHRBcmVhRWxlbWVudC5wbGFjZWhvbGRlciA9IHRoaXMuc3BlZWNoUmVjb2duaXRpb25QbGFjZWhvbGRlciA/IHRoaXMuc3BlZWNoUmVjb2duaXRpb25QbGFjZWhvbGRlciA6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwicGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLnRleHRfYXJlYV9zcGVlY2hfcmVjb2duaXRpb25fcGxhY2Vob2xkZXJcIik7XG4gICAgdGhpcy50ZXh0QXJlYUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMua2V5ZG93bkV2ZW50TGlzdGVuZXIpXG4gIH1cblxuICBvbkxpc3RlbigpIHtcbiAgICBpZiAodGhpcy5pc0Rpc2FibGVkTWljcm9waG9uZSB8fCB0aGlzLmlzTGlzdGVuaW5nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZGlzYWJsZWQgPSB0cnVlO1xuICAgIHRoaXMuY2FuUmVuZGVyTWljcm9waG9uZSA9IGZhbHNlO1xuICAgIHRoaXMuY2FuUmVuZGVyTGlzdGVuaW5nVGV4dCA9IHRydWU7XG4gICAgdGhpcy5vcmlnaW5hbFRleHRBcmVhRWxlbWVudFRleHQgPSB0aGlzLnRleHRBcmVhRWxlbWVudC52YWx1ZTtcbiAgICB0aGlzLnRleHRBcmVhRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgIHRoaXMuaXNTcGVha2luZyA9IHRydWU7XG4gICAgdGhpcy5zcGVlY2hSZWNvZ25pdGlvblNlcnZpY2UubGlzdGVuKClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgoeyB0ZXh0LCBpc0ZpbmFsIH0pID0+IHtcbiAgICAgICAgdGhpcy5fcmVjb2duaXplZFRleHQgPSB0ZXh0O1xuICAgICAgICB0aGlzLnNldFRleHRBcmVhVmFsdWUodGV4dCk7XG4gICAgICAgIHRoaXMuc2Nyb2xsVGV4dEFyZWFCb3R0b20oKTtcbiAgICAgICAgaWYgKGlzRmluYWwpIHtcbiAgICAgICAgICB0aGlzLmNhblJlbmRlckFwcm92ZSA9IHRydWU7XG4gICAgICAgICAgdGhpcy5jYW5SZW5kZXJEaXNjYXJkID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmNhblJlbmRlckxpc3RlbmluZ1RleHQgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmlzU3BlYWtpbmcgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSwgKCkgPT4ge1xuICAgICAgICB0aGlzLmlzU3BlYWtpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jYW5SZW5kZXJNaWNyb3Bob25lID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5pc0Rpc2FibGVkTWljcm9waG9uZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNhblJlbmRlckxpc3RlbmluZ1RleHQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgc2Nyb2xsVGV4dEFyZWFCb3R0b20oKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnRleHRBcmVhRWxlbWVudC5zY3JvbGxUb3AgPSB0aGlzLnRleHRBcmVhRWxlbWVudC5zY3JvbGxIZWlnaHQ7XG4gICAgfSwgMTIwKVxuICB9XG5cbiAgb25PcGVuVG9vbGJhcigpIHtcbiAgICBpZiAodGhpcy5pc0Rpc2FibGVkVGV4dFRvU3BlZWNoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY2FuUmVuZGVyVGV4dFRvU3BlZWNoVG9vbGJhciA9IHRydWU7XG4gICAgdGhpcy5jYW5SZW5kZXJUZXh0VG9TcGVlY2ggPSBmYWxzZTtcbiAgICB0aGlzLmlzUGxheWluZ1RleHRUb1NwZWVjaCA9IHRydWU7XG4gICAgdGhpcy5zcGVhaygpO1xuICB9XG5cbiAgb25DbG9zZVRvb2xiYXIoKSB7XG4gICAgdGhpcy5jYW5SZW5kZXJUZXh0VG9TcGVlY2hUb29sYmFyID0gZmFsc2U7XG4gICAgdGhpcy5jYW5SZW5kZXJUZXh0VG9TcGVlY2ggPSB0cnVlO1xuICAgIHRoaXMuaXNQbGF5aW5nVGV4dFRvU3BlZWNoID0gZmFsc2U7XG4gICAgdGhpcy50ZXh0VG9TcGVlY2hTZXJ2aWNlLmNhbmNlbCgpO1xuICAgIHRoaXMudm9pY2VTcGVlZCA9IDE7XG4gIH1cbiAgb25EaXNjYXJkKCkge1xuICAgIHRoaXMuY2FuUmVuZGVyQXByb3ZlID0gZmFsc2U7XG4gICAgdGhpcy5jYW5SZW5kZXJEaXNjYXJkID0gZmFsc2U7XG4gICAgdGhpcy5jYW5SZW5kZXJNaWNyb3Bob25lID0gdHJ1ZTtcbiAgICB0aGlzLmNhblJlbmRlclRleHRUb1NwZWVjaFRvb2xiYXIgPSBmYWxzZTtcbiAgICB0aGlzLmNhblJlbmRlclRleHRUb1NwZWVjaCA9IHRydWU7XG4gICAgdGhpcy5fcmVjb2duaXplZFRleHQgPSAnJztcbiAgICB0aGlzLnNldFRleHRBcmVhVmFsdWUodGhpcy5vcmlnaW5hbFRleHRBcmVhRWxlbWVudFRleHQpO1xuICAgIHRoaXMuZGlzYWJsZWQgPSBmYWxzZTtcbiAgICB0aGlzLnRleHRUb1NwZWVjaFNlcnZpY2UuY2FuY2VsKCk7XG4gIH1cblxuICBvbkFwcm92ZSgpIHtcbiAgICB0aGlzLmNhblJlbmRlckFwcm92ZSA9IGZhbHNlO1xuICAgIHRoaXMuY2FuUmVuZGVyRGlzY2FyZCA9IGZhbHNlO1xuICAgIHRoaXMuY2FuUmVuZGVyTWljcm9waG9uZSA9IHRydWU7XG4gICAgdGhpcy5jYW5SZW5kZXJUZXh0VG9TcGVlY2hUb29sYmFyID0gZmFsc2U7XG4gICAgdGhpcy5jYW5SZW5kZXJUZXh0VG9TcGVlY2ggPSB0cnVlO1xuICAgIGlmICh0aGlzLmtlZXBDb250ZXh0KSB7XG4gICAgICBjb25zdCBicmVha0xpbmUgPSB0aGlzLm9yaWdpbmFsVGV4dEFyZWFFbGVtZW50VGV4dC5sZW5ndGggPiAwID8gJ1xcbicgOiAnJztcbiAgICAgIHRoaXMub3JpZ2luYWxUZXh0QXJlYUVsZW1lbnRUZXh0ICs9IGAke2JyZWFrTGluZX0ke3RoaXMuX3JlY29nbml6ZWRUZXh0fWBcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcmlnaW5hbFRleHRBcmVhRWxlbWVudFRleHQgPSB0aGlzLl9yZWNvZ25pemVkVGV4dFxuICAgIH1cbiAgICB0aGlzLnJlY29nbml6ZWRUZXh0LmVtaXQodGhpcy5rZWVwQ29udGV4dCA/IHRoaXMub3JpZ2luYWxUZXh0QXJlYUVsZW1lbnRUZXh0IDogdGhpcy5fcmVjb2duaXplZFRleHQpO1xuICAgIHRoaXMuc2Nyb2xsVGV4dEFyZWFCb3R0b20oKTtcbiAgICB0aGlzLl9yZWNvZ25pemVkVGV4dCA9ICcnO1xuICAgIHRoaXMuZGlzYWJsZWQgPSBmYWxzZTtcbiAgICB0aGlzLnRleHRUb1NwZWVjaFNlcnZpY2UuY2FuY2VsKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm9uRGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMub25EZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgdG9nZ2xlVGV4dFRvU3BlZWNoKCkge1xuICAgIGlmICh0aGlzLmlzUGxheWluZ1RleHRUb1NwZWVjaCkge1xuICAgICAgdGhpcy50ZXh0VG9TcGVlY2hTZXJ2aWNlLnBhdXNlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmlzRG9uZVNwZWFraW5nKSB7XG4gICAgICAgIHRoaXMuc3BlYWsoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudGV4dFRvU3BlZWNoU2VydmljZS5yZXN1bWUoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5pc1BsYXlpbmdUZXh0VG9TcGVlY2ggPSAhdGhpcy5pc1BsYXlpbmdUZXh0VG9TcGVlY2g7XG4gIH1cblxuICByZXN0YXJ0VGV4dFRvU3BlZWNoKCkge1xuICAgIHRoaXMuaXNQbGF5aW5nVGV4dFRvU3BlZWNoID0gdHJ1ZTtcbiAgICB0aGlzLnRleHRUb1NwZWVjaFNlcnZpY2UuY2FuY2VsKCk7XG4gICAgdGhpcy5zcGVhaygpO1xuICB9XG5cbiAgdXBkYXRlVm9pY2VTcGVlZCgpIHtcbiAgICBjb25zdCB2b2ljZVNwZWVkSW5kZXggPSB0aGlzLlZPSUNFX1NQRUVEUy5pbmRleE9mKHRoaXMudm9pY2VTcGVlZCk7XG4gICAgY29uc3QgbmV4dFZvaWNlU3BlZWRJbmRleCA9IHRoaXMuVk9JQ0VfU1BFRURTW3ZvaWNlU3BlZWRJbmRleCArIDFdID8gdm9pY2VTcGVlZEluZGV4ICsgMSA6IDA7XG4gICAgdGhpcy52b2ljZVNwZWVkID0gdGhpcy5WT0lDRV9TUEVFRFNbbmV4dFZvaWNlU3BlZWRJbmRleF07XG4gICAgdGhpcy50ZXh0VG9TcGVlY2hTZXJ2aWNlLmNhbmNlbCgpO1xuICAgIHRoaXMuc3BlYWsoKVxuICB9XG5cbiAgc3RvcExpc3RlbmluZygpIHtcbiAgICB0aGlzLnNwZWVjaFJlY29nbml0aW9uU2VydmljZS5zdG9wKCk7XG4gIH1cblxuICBnZXQgaXNMaXN0ZW5pbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3BlZWNoUmVjb2duaXRpb25TZXJ2aWNlLmlzTGlzdGVuaW5nXG4gIH1cblxuICBnZXQgaGFzU3BlZWNoUmVjb2duaXRpb25Ccm93c2VyQXBpKCkge1xuICAgIHJldHVybiB0aGlzLnNwZWVjaFJlY29nbml0aW9uU2VydmljZS5oYXNTdXBwb3J0U3BlZWNoUmVjb2duaXRpb247XG4gIH1cblxuICBnZXQgaXNEaXNhYmxlZFRleHRUb1NwZWVjaCgpIHtcbiAgICBjb25zdCBoYXNUZXh0VG9TcGVlY2hWb2ljZSA9IHRoaXMudGV4dFRvU3BlZWNoU2VydmljZS5oYXNWb2ljZTtcbiAgICByZXR1cm4gIXRoaXMuX3JlY29nbml6ZWRUZXh0IHx8ICFoYXNUZXh0VG9TcGVlY2hWb2ljZSB8fCB0aGlzLmlzTGlzdGVuaW5nO1xuICB9XG4gIHByaXZhdGUgc2V0VGV4dEFyZWFWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy50ZXh0QXJlYUVsZW1lbnQudmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgc3BlYWsoKSB7XG4gICAgdGhpcy5pc0RvbmVTcGVha2luZyA9IGZhbHNlO1xuICAgIHRoaXMudGV4dFRvU3BlZWNoU2VydmljZS5zcGVhayh0aGlzLl9yZWNvZ25pemVkVGV4dCwgdGhpcy52b2ljZVNwZWVkKS50aGVuKCgpID0+IHtcbiAgICAgIHRoaXMuaXNQbGF5aW5nVGV4dFRvU3BlZWNoID0gZmFsc2U7XG4gICAgICB0aGlzLmlzRG9uZVNwZWFraW5nID0gdHJ1ZTtcbiAgICB9KTtcbiAgfVxuXG59XG4iXX0=
|
|
247
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlZWNoLXJlY29nbml0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL3NwZWVjaC1yZWNvZ25pdGlvbi9zcGVlY2gtcmVjb2duaXRpb24vc3BlZWNoLXJlY29nbml0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFPaEU7SUErQkUsb0NBQ21CLHdCQUFrRCxFQUNsRCxtQkFBd0MsRUFDeEMsZ0JBQWtDO1FBSHJELGlCQUlLO1FBSGMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUEvQjVDLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLGlDQUE0QixHQUFHLEVBQUUsQ0FBQztRQUNuQyxvQkFBZSxHQUFHLEVBQUUsQ0FBQztRQUNyQixnQ0FBMkIsR0FBRyxFQUFFLENBQUM7UUFDakMsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ2pDLGlCQUFZLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcs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SUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQztRQUNsQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUN0RSxLQUFJLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFDO1lBQ25DLEtBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsc0JBQVksb0RBQVk7YUFBeEI7WUFDRSxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDO1FBQ3BDLENBQUM7OztPQUFBOztJQTlNYyx5Q0FBYyxHQUFHLEtBQUssQ0FBQzs7Z0JBK0JPLHdCQUF3QjtnQkFDN0IsbUJBQW1CO2dCQUN0QixnQkFBZ0I7O0lBaEM1QztRQUFSLEtBQUssRUFBRTt1RUFBc0M7SUFDckM7UUFBUixLQUFLLEVBQUU7bUVBQXFCO0lBQ3BCO1FBQVIsS0FBSyxFQUFFO29GQUFtQztJQTBCakM7UUFBVCxNQUFNLEVBQUU7c0VBQTZDO0lBOUIzQywwQkFBMEI7UUFMdEMsU0FBUyxDQUFDO1lBQ1QsUUFBUSxFQUFFLHNCQUFzQjtZQUNoQyxtcEZBQWtEOztTQUVuRCxDQUFDO09BQ1csMEJBQTBCLENBaU50QztJQUFELGlDQUFDO0NBQUEsQUFqTkQsSUFpTkM7U0FqTlksMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTcGVlY2hSZWNvZ25pdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zcGVlY2gtcmVjb2duaXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBUZXh0VG9TcGVlY2hTZXJ2aWNlIH0gZnJvbSAnLi4vdGV4dC10by1zcGVlY2guc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Mtc3BlZWNoLXJlY29nbml0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NwZWVjaC1yZWNvZ25pdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NwZWVjaC1yZWNvZ25pdGlvbi5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNwZWVjaFJlY29nbml0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHN0YXRpYyBUT09MQkFSX0FDVElWRSA9IGZhbHNlO1xuICBASW5wdXQoKSB0ZXh0QXJlYUVsZW1lbnQ6IEhUTUxUZXh0QXJlYUVsZW1lbnQ7XG4gIEBJbnB1dCgpIGtlZXBDb250ZXh0ID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNwZWVjaFJlY29nbml0aW9uUGxhY2Vob2xkZXIgPSAnJztcbiAgcHJpdmF0ZSBfcmVjb2duaXplZFRleHQgPSAnJztcbiAgcHJpdmF0ZSBvcmlnaW5hbFRleHRBcmVhRWxlbWVudFRleHQgPSAnJztcbiAgcHJpdmF0ZSBpc0RvbmVUZXh0VG9TcGVlY2ggPSBmYWxzZTtcbiAgcHJpdmF0ZSByZWFkb25seSBvbkRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBWT0lDRV9TUEVFRFMgPSBbMC41LCAxLCAxLjUsIDJdO1xuICBwcml2YXRlIHJlYWRvbmx5IGtleWRvd25FdmVudExpc3RlbmVyID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9XG5cbiAgZGlzYWJsZWQgPSBmYWxzZTtcbiAgaXNMaXN0ZW5pbmdVc2VyVm9pY2UgPSBmYWxzZTtcbiAgdm9pY2VTcGVlZCA9IDE7XG4gIGlzRGlzYWJsZWRNaWNyb3Bob25lID0gZmFsc2U7XG5cbiAgY2FuUmVuZGVyTWljcm9waG9uZSA9IHRydWU7XG4gIGNhblJlbmRlclRleHRUb1NwZWVjaCA9IHRydWU7XG4gIGNhblJlbmRlckxpc3RlbmluZ1RleHQgPSBmYWxzZTtcbiAgY2FuUmVuZGVyRGlzY2FyZCA9IGZhbHNlO1xuICBjYW5SZW5kZXJBcHJvdmUgPSBmYWxzZTtcbiAgY2FuUmVuZGVyVGV4dFRvU3BlZWNoVG9vbGJhciA9IGZhbHNlO1xuXG4gIGlzUGxheWluZ1RleHRUb1NwZWVjaCA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSByZWNvZ25pemVkVGV4dCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNwZWVjaFJlY29nbml0aW9uU2VydmljZTogU3BlZWNoUmVjb2duaXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dFRvU3BlZWNoU2VydmljZTogVGV4dFRvU3BlZWNoU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaGFzU3BlZWNoUmVjb2duaXRpb25Ccm93c2VyQXBpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghdGhpcy50ZXh0QXJlYUVsZW1lbnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigndGV4dEFyZWFFbGVtZW50IGlzIHJlcXVpcmVkJyk7XG4gICAgfVxuICAgIHRoaXMudGV4dEFyZWFFbGVtZW50LnBsYWNlaG9sZGVyID0gdGhpcy5zcGVlY2hSZWNvZ25pdGlvblBsYWNlaG9sZGVyID8gdGhpcy5zcGVlY2hSZWNvZ25pdGlvblBsYWNlaG9sZGVyIDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMudGV4dF9hcmVhX3NwZWVjaF9yZWNvZ25pdGlvbl9wbGFjZWhvbGRlclwiKTtcbiAgICB0aGlzLnRleHRBcmVhRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5rZXlkb3duRXZlbnRMaXN0ZW5lcilcbiAgICB0aGlzLnNwZWVjaFJlY29nbml0aW9uU2VydmljZS5taWNyb3Bob25lU3RhdHVzJC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKS5zdWJzY3JpYmUoKHN0YXR1cykgPT4ge1xuICAgICAgaWYgKHN0YXR1cyA9PT0gJ2FjdGl2ZScpIHtcbiAgICAgICAgdGhpcy5vbkNsb3NlVG9vbGJhcigpO1xuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBvbkxpc3RlbigpIHtcbiAgICBpZiAodGhpcy5pc0Rpc2FibGVkTWljcm9waG9uZSB8fCB0aGlzLmlzTGlzdGVuaW5nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZGlzYWJsZWQgPSB0cnVlO1xuICAgIHRoaXMuY2FuUmVuZGVyTWljcm9waG9uZSA9IGZhbHNlO1xuICAgIHRoaXMuY2FuUmVuZGVyTGlzdGVuaW5nVGV4dCA9IHRydWU7XG4gICAgdGhpcy5vcmlnaW5hbFRleHRBcmVhRWxlbWVudFRleHQgPSB0aGlzLnRleHRBcmVhRWxlbWVudC52YWx1ZTtcbiAgICB0aGlzLnRleHRBcmVhRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgIHRoaXMuaXNMaXN0ZW5pbmdVc2VyVm9pY2UgPSB0cnVlO1xuICAgIHRoaXMuc3BlZWNoUmVjb2duaXRpb25TZXJ2aWNlLmxpc3RlbigpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKHsgdGV4dCwgaXNGaW5hbCB9KSA9PiB7XG4gICAgICAgIHRoaXMuX3JlY29nbml6ZWRUZXh0ID0gdGV4dDtcbiAgICAgICAgdGhpcy5zZXRUZXh0QXJlYVZhbHVlKHRleHQpO1xuICAgICAgICB0aGlzLnNjcm9sbFRleHRBcmVhQm90dG9tKCk7XG4gICAgICAgIGlmIChpc0ZpbmFsKSB7XG4gICAgICAgICAgdGhpcy5jYW5SZW5kZXJBcHJvdmUgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuY2FuUmVuZGVyRGlzY2FyZCA9IHRydWU7XG4gICAgICAgICAgdGhpcy5jYW5SZW5kZXJMaXN0ZW5pbmdUZXh0ID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5pc0xpc3RlbmluZ1VzZXJWb2ljZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9LCAoKSA9PiB7XG4gICAgICAgIHRoaXMuaXNMaXN0ZW5pbmdVc2VyVm9pY2UgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jYW5SZW5kZXJNaWNyb3Bob25lID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5pc0Rpc2FibGVkTWljcm9waG9uZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNhblJlbmRlckxpc3RlbmluZ1RleHQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgc2Nyb2xsVGV4dEFyZWFCb3R0b20oKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnRleHRBcmVhRWxlbWVudC5zY3JvbGxUb3AgPSB0aGlzLnRleHRBcmVhRWxlbWVudC5zY3JvbGxIZWlnaHQ7XG4gICAgfSwgMTIwKVxuICB9XG5cbiAgb25PcGVuVG9vbGJhcigpIHtcbiAgICBpZiAodGhpcy5pc0Rpc2FibGVkVGV4dFRvU3BlZWNoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY2FuUmVuZGVyVGV4dFRvU3BlZWNoVG9vbGJhciA9IHRydWU7XG4gICAgdGhpcy5jYW5SZW5kZXJUZXh0VG9TcGVlY2ggPSBmYWxzZTtcbiAgICBTcGVlY2hSZWNvZ25pdGlvbkNvbXBvbmVudC5UT09MQkFSX0FDVElWRSA9IHRydWU7XG4gICAgdGhpcy5zcGVhaygpO1xuICB9XG5cbiAgb25DbG9zZVRvb2xiYXIoKSB7XG4gICAgdGhpcy5jYW5SZW5kZXJUZXh0VG9TcGVlY2hUb29sYmFyID0gZmFsc2U7XG4gICAgdGhpcy5jYW5SZW5kZXJUZXh0VG9TcGVlY2ggPSB0cnVlO1xuICAgIHRoaXMuc3RvcFRleHRUb1NwZWVjaCgpO1xuICAgIHRoaXMudm9pY2VTcGVlZCA9IDE7XG4gICAgU3BlZWNoUmVjb2duaXRpb25Db21wb25lbnQuVE9PTEJBUl9BQ1RJVkUgPSBmYWxzZTtcbiAgfVxuICBvbkRpc2NhcmQoKSB7XG4gICAgdGhpcy5jYW5SZW5kZXJBcHJvdmUgPSBmYWxzZTtcbiAgICB0aGlzLmNhblJlbmRlckRpc2NhcmQgPSBmYWxzZTtcbiAgICB0aGlzLmNhblJlbmRlck1pY3JvcGhvbmUgPSB0cnVlO1xuICAgIHRoaXMuY2FuUmVuZGVyVGV4dFRvU3BlZWNoVG9vbGJhciA9IGZhbHNlO1xuICAgIHRoaXMuY2FuUmVuZGVyVGV4dFRvU3BlZWNoID0gdHJ1ZTtcbiAgICB0aGlzLl9yZWNvZ25pemVkVGV4dCA9ICcnO1xuICAgIHRoaXMuc2V0VGV4dEFyZWFWYWx1ZSh0aGlzLm9yaWdpbmFsVGV4dEFyZWFFbGVtZW50VGV4dCk7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGZhbHNlO1xuICAgIHRoaXMuc3RvcFRleHRUb1NwZWVjaCgpO1xuICAgIFNwZWVjaFJlY29nbml0aW9uQ29tcG9uZW50LlRPT0xCQVJfQUNUSVZFID0gZmFsc2U7XG4gIH1cblxuICBvbkFwcm92ZSgpIHtcbiAgICB0aGlzLmNhblJlbmRlckFwcm92ZSA9IGZhbHNlO1xuICAgIHRoaXMuY2FuUmVuZGVyRGlzY2FyZCA9IGZhbHNlO1xuICAgIHRoaXMuY2FuUmVuZGVyTWljcm9waG9uZSA9IHRydWU7XG4gICAgdGhpcy5jYW5SZW5kZXJUZXh0VG9TcGVlY2hUb29sYmFyID0gZmFsc2U7XG4gICAgdGhpcy5jYW5SZW5kZXJUZXh0VG9TcGVlY2ggPSB0cnVlO1xuICAgIGlmICh0aGlzLmtlZXBDb250ZXh0KSB7XG4gICAgICBjb25zdCBicmVha0xpbmUgPSB0aGlzLm9yaWdpbmFsVGV4dEFyZWFFbGVtZW50VGV4dC5sZW5ndGggPiAwID8gJ1xcbicgOiAnJztcbiAgICAgIHRoaXMub3JpZ2luYWxUZXh0QXJlYUVsZW1lbnRUZXh0ICs9IGAke2JyZWFrTGluZX0ke3RoaXMuX3JlY29nbml6ZWRUZXh0fWBcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcmlnaW5hbFRleHRBcmVhRWxlbWVudFRleHQgPSB0aGlzLl9yZWNvZ25pemVkVGV4dFxuICAgIH1cbiAgICB0aGlzLnJlY29nbml6ZWRUZXh0LmVtaXQodGhpcy5rZWVwQ29udGV4dCA/IHRoaXMub3JpZ2luYWxUZXh0QXJlYUVsZW1lbnRUZXh0IDogdGhpcy5fcmVjb2duaXplZFRleHQpO1xuICAgIHRoaXMuc2Nyb2xsVGV4dEFyZWFCb3R0b20oKTtcbiAgICB0aGlzLl9yZWNvZ25pemVkVGV4dCA9ICcnO1xuICAgIHRoaXMuZGlzYWJsZWQgPSBmYWxzZTtcbiAgICB0aGlzLnRleHRUb1NwZWVjaFNlcnZpY2UuY2FuY2VsKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm9uRGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMub25EZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgdG9nZ2xlVGV4dFRvU3BlZWNoKCkge1xuICAgIGlmICh0aGlzLmlzUGxheWluZ1RleHRUb1NwZWVjaCkge1xuICAgICAgdGhpcy50ZXh0VG9TcGVlY2hTZXJ2aWNlLnBhdXNlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmlzRG9uZVRleHRUb1NwZWVjaCkge1xuICAgICAgICB0aGlzLnNwZWFrKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnRleHRUb1NwZWVjaFNlcnZpY2UucmVzdW1lKCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuaXNQbGF5aW5nVGV4dFRvU3BlZWNoID0gIXRoaXMuaXNQbGF5aW5nVGV4dFRvU3BlZWNoO1xuICB9XG5cbiAgcmVzdGFydFRleHRUb1NwZWVjaCgpIHtcbiAgICB0aGlzLnRleHRUb1NwZWVjaFNlcnZpY2UuY2FuY2VsKCk7XG4gICAgdGhpcy5zcGVhaygpO1xuICB9XG5cbiAgdXBkYXRlVm9pY2VTcGVlZCgpIHtcbiAgICBjb25zdCB2b2ljZVNwZWVkSW5kZXggPSB0aGlzLlZPSUNFX1NQRUVEUy5pbmRleE9mKHRoaXMudm9pY2VTcGVlZCk7XG4gICAgY29uc3QgbmV4dFZvaWNlU3BlZWRJbmRleCA9IHRoaXMuVk9JQ0VfU1BFRURTW3ZvaWNlU3BlZWRJbmRleCArIDFdID8gdm9pY2VTcGVlZEluZGV4ICsgMSA6IDA7XG4gICAgdGhpcy52b2ljZVNwZWVkID0gdGhpcy5WT0lDRV9TUEVFRFNbbmV4dFZvaWNlU3BlZWRJbmRleF07XG4gICAgdGhpcy50ZXh0VG9TcGVlY2hTZXJ2aWNlLmNhbmNlbCgpO1xuICAgIHRoaXMuc3BlYWsoKVxuICB9XG5cbiAgc3RvcExpc3RlbmluZygpIHtcbiAgICB0aGlzLnNwZWVjaFJlY29nbml0aW9uU2VydmljZS5zdG9wKCk7XG4gIH1cblxuICBnZXQgaXNMaXN0ZW5pbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3BlZWNoUmVjb2duaXRpb25TZXJ2aWNlLmlzTGlzdGVuaW5nXG4gIH1cblxuICBnZXQgaGFzU3BlZWNoUmVjb2duaXRpb25Ccm93c2VyQXBpKCkge1xuICAgIHJldHVybiB0aGlzLnNwZWVjaFJlY29nbml0aW9uU2VydmljZS5oYXNTdXBwb3J0U3BlZWNoUmVjb2duaXRpb247XG4gIH1cblxuICBnZXQgaXNEaXNhYmxlZFRleHRUb1NwZWVjaCgpIHtcbiAgICBjb25zdCBoYXNUZXh0VG9TcGVlY2hWb2ljZSA9IHRoaXMudGV4dFRvU3BlZWNoU2VydmljZS5oYXNWb2ljZTtcbiAgICByZXR1cm4gIXRoaXMudGV4dFRvU3BlZWNoIHx8ICFoYXNUZXh0VG9TcGVlY2hWb2ljZSB8fCB0aGlzLmlzTGlzdGVuaW5nIHx8IFNwZWVjaFJlY29nbml0aW9uQ29tcG9uZW50LlRPT0xCQVJfQUNUSVZFO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRUZXh0QXJlYVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnRleHRBcmVhRWxlbWVudC52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBzdG9wVGV4dFRvU3BlZWNoKCkge1xuICAgIHRoaXMuaXNQbGF5aW5nVGV4dFRvU3BlZWNoID0gZmFsc2U7XG4gICAgdGhpcy50ZXh0VG9TcGVlY2hTZXJ2aWNlLmNhbmNlbCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzcGVhaygpIHtcbiAgICB0aGlzLmlzRG9uZVRleHRUb1NwZWVjaCA9IGZhbHNlO1xuICAgIHRoaXMuaXNQbGF5aW5nVGV4dFRvU3BlZWNoID0gdHJ1ZTtcbiAgICB0aGlzLnRleHRUb1NwZWVjaFNlcnZpY2Uuc3BlYWsodGhpcy50ZXh0VG9TcGVlY2gsIHRoaXMudm9pY2VTcGVlZCkudGhlbigoKSA9PiB7XG4gICAgICB0aGlzLmlzUGxheWluZ1RleHRUb1NwZWVjaCA9IGZhbHNlO1xuICAgICAgdGhpcy5pc0RvbmVUZXh0VG9TcGVlY2ggPSB0cnVlO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgdGV4dFRvU3BlZWNoKCkge1xuICAgIHJldHVybiB0aGlzLnRleHRBcmVhRWxlbWVudC52YWx1ZTtcbiAgfVxuXG59XG4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
1
|
+
import { __awaiter, __decorate, __generator } from "tslib";
|
|
2
2
|
import { Injectable, NgZone } from '@angular/core';
|
|
3
3
|
import { Subject } from 'rxjs';
|
|
4
4
|
import { LocaleService } from '../locale/locale.service';
|
|
@@ -16,9 +16,8 @@ var SpeechRecognitionService = /** @class */ (function () {
|
|
|
16
16
|
this.translateService = translateService;
|
|
17
17
|
this.hasSupportSpeechRecognition = false;
|
|
18
18
|
this.isListening = false;
|
|
19
|
-
this.
|
|
19
|
+
this.microphoneStatus$ = new Subject();
|
|
20
20
|
this.TIMEOUT_NO_MESSAGE = 3000;
|
|
21
|
-
this.verifyMicrophoneState();
|
|
22
21
|
this.setRecognition();
|
|
23
22
|
}
|
|
24
23
|
SpeechRecognitionService.prototype.listen = function () {
|
|
@@ -27,82 +26,73 @@ var SpeechRecognitionService = /** @class */ (function () {
|
|
|
27
26
|
if (this.isListening) {
|
|
28
27
|
speechSubject.error('Already listening');
|
|
29
28
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
var
|
|
42
|
-
|
|
43
|
-
|
|
29
|
+
this.hasMicrophoneAccess.then(function (hasAccess) {
|
|
30
|
+
if (!hasAccess) {
|
|
31
|
+
_this.toastService.show({ severity: 'error', text: _this.translateService.instant('platform.angular_components.no_microphone_permission') });
|
|
32
|
+
speechSubject.error('Microphone access is disabled');
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
_this.microphoneStatus$.next('active');
|
|
36
|
+
_this.isListening = true;
|
|
37
|
+
_this.recognition.continuous = true;
|
|
38
|
+
_this.recognition.interimResults = true;
|
|
39
|
+
_this.recognition.maxAlternatives = 1;
|
|
40
|
+
var silenceTimer;
|
|
41
|
+
var restartSilenceTimer = function () {
|
|
42
|
+
if (silenceTimer !== undefined) {
|
|
43
|
+
clearTimeout(silenceTimer);
|
|
44
44
|
}
|
|
45
|
-
|
|
45
|
+
silenceTimer = setTimeout(function () {
|
|
46
46
|
_this.recognition.stop();
|
|
47
47
|
}, _this.TIMEOUT_NO_MESSAGE);
|
|
48
48
|
};
|
|
49
|
-
var
|
|
50
|
-
var
|
|
51
|
-
|
|
49
|
+
var fullTranscript = '';
|
|
50
|
+
var interimTranscript = '';
|
|
51
|
+
_this.recognition.onresult = function (event) {
|
|
52
52
|
_this.ngZone.run(function () {
|
|
53
|
-
|
|
53
|
+
restartSilenceTimer();
|
|
54
54
|
var interimTranscript = '';
|
|
55
55
|
for (var i = event.resultIndex; i < event.results.length; ++i) {
|
|
56
56
|
var transcript = event.results[i][0].transcript;
|
|
57
57
|
if (event.results[i].isFinal) {
|
|
58
|
-
|
|
58
|
+
fullTranscript += transcript + '\n';
|
|
59
59
|
}
|
|
60
60
|
else {
|
|
61
61
|
interimTranscript += transcript;
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
64
|
interimTranscript = interimTranscript;
|
|
65
|
-
speechSubject.next({ text:
|
|
65
|
+
speechSubject.next({ text: fullTranscript + interimTranscript, isFinal: false });
|
|
66
66
|
});
|
|
67
67
|
};
|
|
68
|
-
|
|
68
|
+
_this.recognition.onerror = function () {
|
|
69
69
|
_this.ngZone.run(function () {
|
|
70
|
-
if (
|
|
71
|
-
clearTimeout(
|
|
70
|
+
if (silenceTimer !== undefined) {
|
|
71
|
+
clearTimeout(silenceTimer);
|
|
72
72
|
}
|
|
73
73
|
_this.isListening = false;
|
|
74
74
|
speechSubject.error('Speech recognition error');
|
|
75
|
+
_this.microphoneStatus$.next('inactive');
|
|
75
76
|
});
|
|
76
77
|
};
|
|
77
|
-
|
|
78
|
+
_this.recognition.onend = function () {
|
|
78
79
|
_this.ngZone.run(function () {
|
|
79
|
-
if (
|
|
80
|
-
clearTimeout(
|
|
80
|
+
if (silenceTimer !== undefined) {
|
|
81
|
+
clearTimeout(silenceTimer);
|
|
81
82
|
}
|
|
82
|
-
speechSubject.next({ text:
|
|
83
|
+
speechSubject.next({ text: fullTranscript + interimTranscript, isFinal: true });
|
|
83
84
|
_this.isListening = false;
|
|
84
85
|
speechSubject.complete();
|
|
86
|
+
_this.microphoneStatus$.next('inactive');
|
|
85
87
|
});
|
|
86
88
|
};
|
|
87
|
-
|
|
88
|
-
}
|
|
89
|
+
_this.recognition.start();
|
|
90
|
+
});
|
|
89
91
|
return speechSubject;
|
|
90
92
|
};
|
|
91
93
|
SpeechRecognitionService.prototype.stop = function () {
|
|
92
94
|
this.recognition.stop();
|
|
93
95
|
};
|
|
94
|
-
SpeechRecognitionService.prototype.verifyMicrophoneState = function () {
|
|
95
|
-
var _this = this;
|
|
96
|
-
navigator.permissions.query({ name: 'microphone' }).then(function (result) {
|
|
97
|
-
var microphoneResultState = result.state;
|
|
98
|
-
_this.hasMicrophoneAccess = microphoneResultState === 'granted';
|
|
99
|
-
result.onchange = function () {
|
|
100
|
-
_this.ngZone.run(function () {
|
|
101
|
-
_this.hasMicrophoneAccess = result.state === 'granted';
|
|
102
|
-
});
|
|
103
|
-
};
|
|
104
|
-
});
|
|
105
|
-
};
|
|
106
96
|
SpeechRecognitionService.prototype.setRecognition = function () {
|
|
107
97
|
var _this = this;
|
|
108
98
|
var _a;
|
|
@@ -118,6 +108,48 @@ var SpeechRecognitionService = /** @class */ (function () {
|
|
|
118
108
|
this.recognition.maxAlternatives = 1;
|
|
119
109
|
this.localeService.getLocale().subscribe(function (locale) { return _this.recognition.lang = locale; });
|
|
120
110
|
};
|
|
111
|
+
Object.defineProperty(SpeechRecognitionService.prototype, "hasMicrophoneAccess", {
|
|
112
|
+
get: function () {
|
|
113
|
+
var _this = this;
|
|
114
|
+
return new Promise(function (resolve) { return __awaiter(_this, void 0, void 0, function () {
|
|
115
|
+
var permission;
|
|
116
|
+
var _this = this;
|
|
117
|
+
return __generator(this, function (_a) {
|
|
118
|
+
switch (_a.label) {
|
|
119
|
+
case 0: return [4 /*yield*/, navigator.permissions.query({ name: 'microphone' })];
|
|
120
|
+
case 1:
|
|
121
|
+
permission = _a.sent();
|
|
122
|
+
if (permission.state === 'denied') {
|
|
123
|
+
resolve(false);
|
|
124
|
+
}
|
|
125
|
+
else if (permission.state === 'granted') {
|
|
126
|
+
resolve(true);
|
|
127
|
+
}
|
|
128
|
+
else if (permission.state === 'prompt') {
|
|
129
|
+
try {
|
|
130
|
+
navigator.mediaDevices.getUserMedia({ audio: true }).then(function (stream) {
|
|
131
|
+
stream.getTracks().forEach(function (t) { return t.stop(); });
|
|
132
|
+
}).catch(function () {
|
|
133
|
+
resolve(false);
|
|
134
|
+
});
|
|
135
|
+
permission.onchange = function () {
|
|
136
|
+
_this.ngZone.run(function () {
|
|
137
|
+
resolve(permission.state === 'granted' ? true : false);
|
|
138
|
+
});
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
catch (error) {
|
|
142
|
+
resolve(false);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
return [2 /*return*/];
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
}); });
|
|
149
|
+
},
|
|
150
|
+
enumerable: true,
|
|
151
|
+
configurable: true
|
|
152
|
+
});
|
|
121
153
|
SpeechRecognitionService.ctorParameters = function () { return [
|
|
122
154
|
{ type: LocaleService },
|
|
123
155
|
{ type: NgZone },
|
|
@@ -133,4 +165,4 @@ var SpeechRecognitionService = /** @class */ (function () {
|
|
|
133
165
|
return SpeechRecognitionService;
|
|
134
166
|
}());
|
|
135
167
|
export { SpeechRecognitionService };
|
|
136
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlZWNoLXJlY29nbml0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9zcGVlY2gtcmVjb2duaXRpb24vc3BlZWNoLXJlY29nbml0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7QUFVdkQ7SUFPRSxrQ0FDbUIsYUFBNEIsRUFDNUIsTUFBYyxFQUNkLFlBQTBCLEVBQ25DLGdCQUFrQztRQUh6QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDbkMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQVY1QyxnQ0FBMkIsR0FBRyxLQUFLLENBQUM7UUFDcEMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDWix3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFFbkIsdUJBQWtCLEdBQUcsSUFBSSxDQUFDO1FBUXpDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQseUNBQU0sR0FBTjtRQUFBLGlCQWlFQztRQWhFQyxJQUFNLGFBQWEsR0FBRyxJQUFJLE9BQU8sRUFBZ0IsQ0FBQztRQUNsRCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsYUFBYSxD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SSxDQUFDLHNEQUFzRCxDQUFDLENBQUM7WUFDckUsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLDJCQUEyQixHQUFHLElBQUksQ0FBQztRQUN4QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksNEJBQTRCLEVBQUUsQ0FBQztRQUN0RCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxPQUFBLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLEVBQUUsMENBQUUsTUFBTSxLQUFJLE9BQU8sQ0FBQztRQUNqRixJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDeEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLENBQUMsU0FBUyxDQUFDLFVBQUEsTUFBTSxJQUFJLE9BQUEsS0FBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEdBQUcsTUFBTSxFQUE5QixDQUE4QixDQUFDLENBQUM7SUFDckYsQ0FBQzs7Z0JBM0dpQyxhQUFhO2dCQUNwQixNQUFNO2dCQUNBLFlBQVk7Z0JBQ2pCLGdCQUFnQjs7O0lBWGpDLHdCQUF3QjtRQUhwQyxVQUFVLENBQUM7WUFDVixVQUFVLEVBQUUsTUFBTTtTQUNuQixDQUFDO09BQ1csd0JBQXdCLENBb0hwQzttQ0FsSUQ7Q0FrSUMsQUFwSEQsSUFvSEM7U0FwSFksd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMb2NhbGVTZXJ2aWNlIH0gZnJvbSAnLi4vbG9jYWxlL2xvY2FsZS5zZXJ2aWNlJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uL3RvYXN0L3RvYXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNwZWVjaFJlc3VsdCB7XG4gIHRleHQ6IHN0cmluZztcbiAgaXNGaW5hbDogYm9vbGVhbjtcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU3BlZWNoUmVjb2duaXRpb25TZXJ2aWNlIHtcbiAgaGFzU3VwcG9ydFNwZWVjaFJlY29nbml0aW9uID0gZmFsc2U7XG4gIGlzTGlzdGVuaW5nID0gZmFsc2U7XG4gIHByaXZhdGUgaGFzTWljcm9waG9uZUFjY2VzcyA9IGZhbHNlO1xuICBwcml2YXRlIHJlY29nbml0aW9uITogU3BlZWNoUmVjb2duaXRpb247XG4gIHByaXZhdGUgcmVhZG9ubHkgVElNRU9VVF9OT19NRVNTQUdFID0gMzAwMDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvY2FsZVNlcnZpY2U6IExvY2FsZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBuZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRvYXN0U2VydmljZTogVG9hc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy52ZXJpZnlNaWNyb3Bob25lU3RhdGUoKTtcbiAgICB0aGlzLnNldFJlY29nbml0aW9uKCk7XG4gIH1cblxuICBsaXN0ZW4oKSB7XG4gICAgY29uc3Qgc3BlZWNoU3ViamVjdCA9IG5ldyBTdWJqZWN0PFNwZWVjaFJlc3VsdD4oKTtcbiAgICBpZiAodGhpcy5pc0xpc3RlbmluZykge1xuICAgICAgc3BlZWNoU3ViamVjdC5lcnJvcignQWxyZWFkeSBsaXN0ZW5pbmcnKTtcbiAgICB9IGVsc2UgaWYgKCF0aGlzLmhhc01pY3JvcGhvbmVBY2Nlc3MpIHtcbiAgICAgIHRoaXMuaXNMaXN0ZW5pbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLnNob3coeyBzZXZlcml0eTogJ2Vycm9yJywgdGV4dDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy5ub19taWNyb3Bob25lX3Blcm1pc3Npb24nKSB9KTtcbiAgICAgIHNwZWVjaFN1YmplY3QuZXJyb3IoJ01pY3JvcGhvbmUgYWNjZXNzIGlzIGRpc2FibGVkJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaXNMaXN0ZW5pbmcgPSB0cnVlO1xuICAgICAgdGhpcy5yZWNvZ25pdGlvbi5jb250aW51b3VzID0gdHJ1ZTtcbiAgICAgIHRoaXMucmVjb2duaXRpb24uaW50ZXJpbVJlc3VsdHMgPSB0cnVlO1xuICAgICAgdGhpcy5yZWNvZ25pdGlvbi5tYXhBbHRlcm5hdGl2ZXMgPSAxO1xuICAgICAgbGV0IHNpbGVuY2VUaW1lcjogYW55O1xuICAgICAgY29uc3QgcmVzdGFydFNpbGVuY2VUaW1lciA9ICgpID0+IHtcbiAgICAgICAgaWYgKHNpbGVuY2VUaW1lciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgY2xlYXJUaW1lb3V0KHNpbGVuY2VUaW1lcik7XG4gICAgICAgIH1cblxuICAgICAgICBzaWxlbmNlVGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLnJlY29nbml0aW9uLnN0b3AoKTtcbiAgICAgICAgfSwgdGhpcy5USU1FT1VUX05PX01FU1NBR0UpO1xuICAgICAgfTtcbiAgICAgIGxldCBmdWxsVHJhbnNjcmlwdCA9ICcnO1xuICAgICAgbGV0IGludGVyaW1UcmFuc2NyaXB0ID0gJyc7XG5cbiAgICAgIHRoaXMucmVjb2duaXRpb24ub25yZXN1bHQgPSAoZXZlbnQ6IFNwZWVjaFJlY29nbml0aW9uRXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICByZXN0YXJ0U2lsZW5jZVRpbWVyKCk7XG4gICAgICAgICAgbGV0IGludGVyaW1UcmFuc2NyaXB0ID0gJyc7XG4gICAgICAgICAgZm9yIChsZXQgaSA9IGV2ZW50LnJlc3VsdEluZGV4OyBpIDwgZXZlbnQucmVzdWx0cy5sZW5ndGg7ICsraSkge1xuICAgICAgICAgICAgY29uc3QgdHJhbnNjcmlwdCA9IGV2ZW50LnJlc3VsdHNbaV1bMF0udHJhbnNjcmlwdDtcbiAgICAgICAgICAgIGlmIChldmVudC5yZXN1bHRzW2ldLmlzRmluYWwpIHtcbiAgICAgICAgICAgICAgZnVsbFRyYW5zY3JpcHQgKz0gdHJhbnNjcmlwdCArICdcXG4nO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgaW50ZXJpbVRyYW5zY3JpcHQgKz0gdHJhbnNjcmlwdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaW50ZXJpbVRyYW5zY3JpcHQgPSBpbnRlcmltVHJhbnNjcmlwdDtcbiAgICAgICAgICBzcGVlY2hTdWJqZWN0Lm5leHQoeyB0ZXh0OiBmdWxsVHJhbnNjcmlwdCArIGludGVyaW1UcmFuc2NyaXB0LCBpc0ZpbmFsOiBmYWxzZSB9KTtcbiAgICAgICAgfSlcbiAgICAgIH07XG4gICAgICB0aGlzLnJlY29nbml0aW9uLm9uZXJyb3IgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgaWYgKHNpbGVuY2VUaW1lciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQoc2lsZW5jZVRpbWVyKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5pc0xpc3RlbmluZyA9IGZhbHNlO1xuICAgICAgICAgIHNwZWVjaFN1YmplY3QuZXJyb3IoJ1NwZWVjaCByZWNvZ25pdGlvbiBlcnJvcicpO1xuICAgICAgICB9KVxuICAgICAgfTtcblxuICAgICAgdGhpcy5yZWNvZ25pdGlvbi5vbmVuZCA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICBpZiAoc2lsZW5jZVRpbWVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dChzaWxlbmNlVGltZXIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBzcGVlY2hTdWJqZWN0Lm5leHQoeyB0ZXh0OiBmdWxsVHJhbnNjcmlwdCArIGludGVyaW1UcmFuc2NyaXB0LCBpc0ZpbmFsOiB0cnVlIH0pO1xuICAgICAgICAgIHRoaXMuaXNMaXN0ZW5pbmcgPSBmYWxzZTtcbiAgICAgICAgICBzcGVlY2hTdWJqZWN0LmNvbXBsZXRlKCk7XG4gICAgICAgIH0pXG4gICAgICB9O1xuICAgICAgdGhpcy5yZWNvZ25pdGlvbi5zdGFydCgpO1xuICAgIH1cbiAgICByZXR1cm4gc3BlZWNoU3ViamVjdDtcbiAgfVxuXG5cbiAgc3RvcCgpIHtcbiAgICB0aGlzLnJlY29nbml0aW9uLnN0b3AoKTtcbiAgfVxuXG4gIHByaXZhdGUgdmVyaWZ5TWljcm9waG9uZVN0YXRlKCkge1xuICAgIG5hdmlnYXRvci5wZXJtaXNzaW9ucy5xdWVyeSh7IG5hbWU6ICdtaWNyb3Bob25lJyB9KS50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgIGNvbnN0IG1pY3JvcGhvbmVSZXN1bHRTdGF0ZTogUGVybWlzc2lvblN0YXRlID0gcmVzdWx0LnN0YXRlO1xuICAgICAgdGhpcy5oYXNNaWNyb3Bob25lQWNjZXNzID0gbWljcm9waG9uZVJlc3VsdFN0YXRlID09PSAnZ3JhbnRlZCc7XG4gICAgICByZXN1bHQub25jaGFuZ2UgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgdGhpcy5oYXNNaWNyb3Bob25lQWNjZXNzID0gcmVzdWx0LnN0YXRlID09PSAnZ3JhbnRlZCc7XG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgc2V0UmVjb2duaXRpb24oKSB7XG4gICAgY29uc3QgU3BlZWNoUmVjb2duaXRpb25Db25zdHJ1Y3RvciA9XG4gICAgICAod2luZG93IGFzIGFueSkuU3BlZWNoUmVjb2duaXRpb24gfHwgKHdpbmRvdyBhcyBhbnkpLndlYmtpdFNwZWVjaFJlY29nbml0aW9uO1xuXG4gICAgaWYgKCFTcGVlY2hSZWNvZ25pdGlvbkNvbnN0cnVjdG9yKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1NwZWVjaCByZWNvZ25pdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGluIHRoaXMgYnJvd3Nlci4nKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5oYXNTdXBwb3J0U3BlZWNoUmVjb2duaXRpb24gPSB0cnVlO1xuICAgIHRoaXMucmVjb2duaXRpb24gPSBuZXcgU3BlZWNoUmVjb2duaXRpb25Db25zdHJ1Y3RvcigpO1xuICAgIHRoaXMucmVjb2duaXRpb24ubGFuZyA9IHRoaXMubG9jYWxlU2VydmljZS5nZXRMb2NhbGVPcHRpb25zKCk/LmxvY2FsZSB8fCAncHQtQlInO1xuICAgIHRoaXMucmVjb2duaXRpb24uaW50ZXJpbVJlc3VsdHMgPSBmYWxzZTtcbiAgICB0aGlzLnJlY29nbml0aW9uLm1heEFsdGVybmF0aXZlcyA9IDE7XG4gICAgdGhpcy5sb2NhbGVTZXJ2aWNlLmdldExvY2FsZSgpLnN1YnNjcmliZShsb2NhbGUgPT4gdGhpcy5yZWNvZ25pdGlvbi5sYW5nID0gbG9jYWxlKTtcbiAgfVxufVxuIl19
|
|
168
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlZWNoLXJlY29nbml0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9zcGVlY2gtcmVjb2duaXRpb24vc3BlZWNoLXJlY29nbml0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7QUFXdkQ7SUFPRSxrQ0FDbUIsYUFBNEIsRUFDNUIsTUFBYyxFQUNkLFlBQTBCLEVBQ25DLGdCQUFrQztRQUh6QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDbkMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQVY1QyxnQ0FBMkIsR0FBRyxLQUFLLENBQUM7UUFDcEMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDWCxzQkFBaUIsR0FBRyxJQUFJLE9BQU8sRUFBb0IsQ0FBQztRQUU1Qyx1QkFBa0IsR0FBRyxJQUFJLENBQUM7UUFRekMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCx5Q0FBTSxHQUFOO1FBQUEsaUJBdUVDO1FBdEVDLElBQU0sYUFBYSxHQUFHLElBQUksT0FBTyxFQUFnQixDQUFDO1FBQ2xELElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixhQUFhLENBQUMsS0FBSyxDQUFDLG1CQUFtQixD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R0FBRzt3Q0FDcEIsS0FBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7NENBQ2QsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO3dDQUN6RCxDQUFDLENBQUMsQ0FBQTtvQ0FDSixDQUFDLENBQUE7aUNBQ0Y7Z0NBQUMsT0FBTyxLQUFLLEVBQUU7b0NBQ2QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO2lDQUNoQjs2QkFDRjs7OztpQkFDRixDQUFDLENBQUE7UUFDSixDQUFDOzs7T0FBQTs7Z0JBOUhpQyxhQUFhO2dCQUNwQixNQUFNO2dCQUNBLFlBQVk7Z0JBQ2pCLGdCQUFnQjs7O0lBWGpDLHdCQUF3QjtRQUhwQyxVQUFVLENBQUM7WUFDVixVQUFVLEVBQUUsTUFBTTtTQUNuQixDQUFDO09BQ1csd0JBQXdCLENBdUlwQzttQ0F0SkQ7Q0FzSkMsQUF2SUQsSUF1SUM7U0F2SVksd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMb2NhbGVTZXJ2aWNlIH0gZnJvbSAnLi4vbG9jYWxlL2xvY2FsZS5zZXJ2aWNlJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uL3RvYXN0L3RvYXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5leHBvcnQgdHlwZSBNaWNyb3Bob25lU3RhdHVzID0gJ2FjdGl2ZScgfCAnaW5hY3RpdmUnO1xuZXhwb3J0IGludGVyZmFjZSBTcGVlY2hSZXN1bHQge1xuICB0ZXh0OiBzdHJpbmc7XG4gIGlzRmluYWw6IGJvb2xlYW47XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFNwZWVjaFJlY29nbml0aW9uU2VydmljZSB7XG4gIGhhc1N1cHBvcnRTcGVlY2hSZWNvZ25pdGlvbiA9IGZhbHNlO1xuICBpc0xpc3RlbmluZyA9IGZhbHNlO1xuICByZWFkb25seSBtaWNyb3Bob25lU3RhdHVzJCA9IG5ldyBTdWJqZWN0PE1pY3JvcGhvbmVTdGF0dXM+KCk7XG4gIHByaXZhdGUgcmVjb2duaXRpb24hOiBTcGVlY2hSZWNvZ25pdGlvbjtcbiAgcHJpdmF0ZSByZWFkb25seSBUSU1FT1VUX05PX01FU1NBR0UgPSAzMDAwO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9jYWxlU2VydmljZTogTG9jYWxlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5nWm9uZTogTmdab25lLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdG9hc3RTZXJ2aWNlOiBUb2FzdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICApIHtcbiAgICB0aGlzLnNldFJlY29nbml0aW9uKCk7XG4gIH1cblxuICBsaXN0ZW4oKSB7XG4gICAgY29uc3Qgc3BlZWNoU3ViamVjdCA9IG5ldyBTdWJqZWN0PFNwZWVjaFJlc3VsdD4oKTtcbiAgICBpZiAodGhpcy5pc0xpc3RlbmluZykge1xuICAgICAgc3BlZWNoU3ViamVjdC5lcnJvcignQWxyZWFkeSBsaXN0ZW5pbmcnKTtcbiAgICB9XG4gICAgdGhpcy5oYXNNaWNyb3Bob25lQWNjZXNzLnRoZW4oKGhhc0FjY2VzcykgPT4ge1xuICAgICAgaWYgKCFoYXNBY2Nlc3MpIHtcbiAgICAgICAgdGhpcy50b2FzdFNlcnZpY2Uuc2hvdyh7IHNldmVyaXR5OiAnZXJyb3InLCB0ZXh0OiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLm5vX21pY3JvcGhvbmVfcGVybWlzc2lvbicpIH0pO1xuICAgICAgICBzcGVlY2hTdWJqZWN0LmVycm9yKCdNaWNyb3Bob25lIGFjY2VzcyBpcyBkaXNhYmxlZCcpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLm1pY3JvcGhvbmVTdGF0dXMkLm5leHQoJ2FjdGl2ZScpO1xuXG4gICAgICB0aGlzLmlzTGlzdGVuaW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMucmVjb2duaXRpb24uY29udGludW91cyA9IHRydWU7XG4gICAgICB0aGlzLnJlY29nbml0aW9uLmludGVyaW1SZXN1bHRzID0gdHJ1ZTtcbiAgICAgIHRoaXMucmVjb2duaXRpb24ubWF4QWx0ZXJuYXRpdmVzID0gMTtcbiAgICAgIGxldCBzaWxlbmNlVGltZXI6IGFueTtcbiAgICAgIGNvbnN0IHJlc3RhcnRTaWxlbmNlVGltZXIgPSAoKSA9PiB7XG4gICAgICAgIGlmIChzaWxlbmNlVGltZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGNsZWFyVGltZW91dChzaWxlbmNlVGltZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgc2lsZW5jZVRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5yZWNvZ25pdGlvbi5zdG9wKCk7XG4gICAgICAgIH0sIHRoaXMuVElNRU9VVF9OT19NRVNTQUdFKTtcbiAgICAgIH07XG4gICAgICBsZXQgZnVsbFRyYW5zY3JpcHQgPSAnJztcbiAgICAgIGxldCBpbnRlcmltVHJhbnNjcmlwdCA9ICcnO1xuXG4gICAgICB0aGlzLnJlY29nbml0aW9uLm9ucmVzdWx0ID0gKGV2ZW50OiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgcmVzdGFydFNpbGVuY2VUaW1lcigpO1xuICAgICAgICAgIGxldCBpbnRlcmltVHJhbnNjcmlwdCA9ICcnO1xuICAgICAgICAgIGZvciAobGV0IGkgPSBldmVudC5yZXN1bHRJbmRleDsgaSA8IGV2ZW50LnJlc3VsdHMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zY3JpcHQgPSBldmVudC5yZXN1bHRzW2ldWzBdLnRyYW5zY3JpcHQ7XG4gICAgICAgICAgICBpZiAoZXZlbnQucmVzdWx0c1tpXS5pc0ZpbmFsKSB7XG4gICAgICAgICAgICAgIGZ1bGxUcmFuc2NyaXB0ICs9IHRyYW5zY3JpcHQgKyAnXFxuJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGludGVyaW1UcmFuc2NyaXB0ICs9IHRyYW5zY3JpcHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGludGVyaW1UcmFuc2NyaXB0ID0gaW50ZXJpbVRyYW5zY3JpcHQ7XG4gICAgICAgICAgc3BlZWNoU3ViamVjdC5uZXh0KHsgdGV4dDogZnVsbFRyYW5zY3JpcHQgKyBpbnRlcmltVHJhbnNjcmlwdCwgaXNGaW5hbDogZmFsc2UgfSk7XG4gICAgICAgIH0pXG4gICAgICB9O1xuICAgICAgdGhpcy5yZWNvZ25pdGlvbi5vbmVycm9yID0gKCkgPT4ge1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgIGlmIChzaWxlbmNlVGltZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHNpbGVuY2VUaW1lcik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuaXNMaXN0ZW5pbmcgPSBmYWxzZTtcbiAgICAgICAgICBzcGVlY2hTdWJqZWN0LmVycm9yKCdTcGVlY2ggcmVjb2duaXRpb24gZXJyb3InKTtcbiAgICAgICAgICB0aGlzLm1pY3JvcGhvbmVTdGF0dXMkLm5leHQoJ2luYWN0aXZlJylcbiAgICAgICAgfSlcbiAgICAgIH07XG5cbiAgICAgIHRoaXMucmVjb2duaXRpb24ub25lbmQgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgaWYgKHNpbGVuY2VUaW1lciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQoc2lsZW5jZVRpbWVyKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgc3BlZWNoU3ViamVjdC5uZXh0KHsgdGV4dDogZnVsbFRyYW5zY3JpcHQgKyBpbnRlcmltVHJhbnNjcmlwdCwgaXNGaW5hbDogdHJ1ZSB9KTtcbiAgICAgICAgICB0aGlzLmlzTGlzdGVuaW5nID0gZmFsc2U7XG4gICAgICAgICAgc3BlZWNoU3ViamVjdC5jb21wbGV0ZSgpO1xuICAgICAgICAgIHRoaXMubWljcm9waG9uZVN0YXR1cyQubmV4dCgnaW5hY3RpdmUnKVxuICAgICAgICB9KVxuICAgICAgfTtcbiAgICAgIHRoaXMucmVjb2duaXRpb24uc3RhcnQoKTtcbiAgICB9KVxuICAgIHJldHVybiBzcGVlY2hTdWJqZWN0O1xuICB9XG5cblxuICBzdG9wKCkge1xuICAgIHRoaXMucmVjb2duaXRpb24uc3RvcCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRSZWNvZ25pdGlvbigpIHtcbiAgICBjb25zdCBTcGVlY2hSZWNvZ25pdGlvbkNvbnN0cnVjdG9yID1cbiAgICAgICh3aW5kb3cgYXMgYW55KS5TcGVlY2hSZWNvZ25pdGlvbiB8fCAod2luZG93IGFzIGFueSkud2Via2l0U3BlZWNoUmVjb2duaXRpb247XG5cbiAgICBpZiAoIVNwZWVjaFJlY29nbml0aW9uQ29uc3RydWN0b3IpIHtcbiAgICAgIGNvbnNvbGUud2FybignU3BlZWNoIHJlY29nbml0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBicm93c2VyLicpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmhhc1N1cHBvcnRTcGVlY2hSZWNvZ25pdGlvbiA9IHRydWU7XG4gICAgdGhpcy5yZWNvZ25pdGlvbiA9IG5ldyBTcGVlY2hSZWNvZ25pdGlvbkNvbnN0cnVjdG9yKCk7XG4gICAgdGhpcy5yZWNvZ25pdGlvbi5sYW5nID0gdGhpcy5sb2NhbGVTZXJ2aWNlLmdldExvY2FsZU9wdGlvbnMoKT8ubG9jYWxlIHx8ICdwdC1CUic7XG4gICAgdGhpcy5yZWNvZ25pdGlvbi5pbnRlcmltUmVzdWx0cyA9IGZhbHNlO1xuICAgIHRoaXMucmVjb2duaXRpb24ubWF4QWx0ZXJuYXRpdmVzID0gMTtcbiAgICB0aGlzLmxvY2FsZVNlcnZpY2UuZ2V0TG9jYWxlKCkuc3Vic2NyaWJlKGxvY2FsZSA9PiB0aGlzLnJlY29nbml0aW9uLmxhbmcgPSBsb2NhbGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgaGFzTWljcm9waG9uZUFjY2VzcygpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUpID0+IHtcbiAgICAgIGNvbnN0IHBlcm1pc3Npb24gPSBhd2FpdCBuYXZpZ2F0b3IucGVybWlzc2lvbnMucXVlcnkoeyBuYW1lOiAnbWljcm9waG9uZScgfSk7XG4gICAgICBpZiAocGVybWlzc2lvbi5zdGF0ZSA9PT0gJ2RlbmllZCcpIHtcbiAgICAgICAgcmVzb2x2ZShmYWxzZSk7XG4gICAgICB9IGVsc2UgaWYgKHBlcm1pc3Npb24uc3RhdGUgPT09ICdncmFudGVkJykge1xuICAgICAgICByZXNvbHZlKHRydWUpXG4gICAgICB9IGVsc2UgaWYgKHBlcm1pc3Npb24uc3RhdGUgPT09ICdwcm9tcHQnKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoeyBhdWRpbzogdHJ1ZSB9KS50aGVuKChzdHJlYW0pID0+IHtcbiAgICAgICAgICAgIHN0cmVhbS5nZXRUcmFja3MoKS5mb3JFYWNoKHQgPT4gdC5zdG9wKCkpO1xuICAgICAgICAgIH0pLmNhdGNoKCgpID0+IHtcbiAgICAgICAgICAgIHJlc29sdmUoZmFsc2UpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHBlcm1pc3Npb24ub25jaGFuZ2UgPSAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICByZXNvbHZlKHBlcm1pc3Npb24uc3RhdGUgPT09ICdncmFudGVkJyA/IHRydWUgOiBmYWxzZSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICByZXNvbHZlKGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG4gIH1cbn1cbiJdfQ==
|
|
@@ -89,4 +89,4 @@ var TextToSpeechService = /** @class */ (function () {
|
|
|
89
89
|
return TextToSpeechService;
|
|
90
90
|
}());
|
|
91
91
|
export { TextToSpeechService };
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC10by1zcGVlY2guc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL3NwZWVjaC1yZWNvZ25pdGlvbi90ZXh0LXRvLXNwZWVjaC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7OztBQU16RDtJQUlFLDZCQUE2QixNQUFxQixFQUFtQixNQUFjO1FBQXRELFdBQU0sR0FBTixNQUFNLENBQWU7UUFBbUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUhsRSxjQUFTLEdBQUcsSUFBSSx3QkFBd0IsRUFBRSxDQUFDO1FBRTVELFdBQU0sR0FBMkIsRUFBRSxDQUFDO1FBRWxDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRU8sdUNBQVMsR0FBakI7UUFBQSxpQkFlQztRQWRDLElBQUksT0FBTyxHQUFHLGVBQWUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUUxQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRTtZQUNuQixlQUFlLENBQUMsZUFBZSxHQUFHO2dCQUNoQyxLQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQzs7b0JBQ2QsT0FBTyxHQUFHLGVBQWUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztvQkFDdEMsSUFBTSxXQUFXLEdBQUcsT0FBQSxLQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixFQUFFLDBDQUFFLE1BQU0sS0FBSSxPQUFPLENBQUM7b0JBQ3RFLEtBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDO29CQUMxQyxLQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxVQUFDLE1BQU07d0JBQ3ZDLEtBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO29CQUN2QyxDQUFDLENBQUMsQ0FBQTtnQkFDSixDQUFDLENBQUMsQ0FBQTtZQUNKLENBQUMsQ0FBQTtTQUNGO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCx5Q0FBVyxHQUFYLFVBQVksUUFBZ0I7UUFDMUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFDLEtBQUssSUFBSyxPQUFBLEtBQUssQ0FBQyxRQUFRLEtBQUssUUFBUSxFQUEzQixDQUEyQixDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUdELG1DQUFLLEdBQUwsVUFBTSxJQUFZLEVBQUUsS0FBaUI7UUFBckMsaUJBZUM7UUFmbUIsc0JBQUEsRUFBQSxTQUFpQjtRQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNyQixPQUFPO1NBQ1I7UUFDRCxPQUFPLElBQUksT0FBTyxDQUFDLFVBQUMsT0FBTztZQUN6QixLQUFJLENBQUMsU0FBUyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7WUFDM0IsS0FBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsS0FBSSxDQUFDLFdBQVcsQ0FBQztZQUN4QyxLQUFJLENBQUMsU0FBUyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7WUFDNUIsZUFBZSxDQUFDLEtBQUssQ0FBQyxLQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDdEMsS0FBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUc7Z0JBQ3JCLEtBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO29CQUNkLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDaEIsQ0FBQyxDQUFDLENBQUE7WUFDSixDQUFDLENBQUE7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxtQ0FBSyxHQUFMO1FBQ0UsZUFBZSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxvQ0FBTSxHQUFOO1FBQ0UsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxvQ0FBTSxHQUFOO1FBQ0UsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxzQkFBSSx5Q0FBUTthQUFaO1lBQ0UsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUM1QixDQUFDOzs7T0FBQTtJQUVPLDRDQUFjLEdBQXRCLFVBQXVCLE1BQThCLEVBQUUsSUFBWTtRQUNqRSxJQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQUMsS0FBSyxJQUFLLE9BQUEsS0FBSyxDQUFDLElBQUksS0FBSyxJQUFJLEVBQW5CLENBQW1CLENBQUMsQ0FBQztRQUMzRCxJQUFJLE1BQU0sRUFBRTtZQUNWLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDO1NBQzNCO0lBQ0gsQ0FBQzs7Z0JBckVvQyxhQUFhO2dCQUEyQixNQUFNOzs7SUFKeEUsbUJBQW1CO1FBSC9CLFVBQVUsQ0FBQztZQUNWLFVBQVUsRUFBRSxNQUFNO1NBQ25CLENBQUM7T0FDVyxtQkFBbUIsQ0EwRS9COzhCQWpGRDtDQWlGQyxBQTFFRCxJQTBFQztTQTFFWSxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvY2FsZVNlcnZpY2UgfSBmcm9tICcuLi9sb2NhbGUvbG9jYWxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBUZXh0VG9TcGVlY2hTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSB1dHRlcmFuY2UgPSBuZXcgU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlKCk7XG4gIHByaXZhdGUgYWN0aXZlVm9pY2U6IFNwZWVjaFN5bnRoZXNpc1ZvaWNlO1xuICB2b2ljZXM6IFNwZWVjaFN5bnRoZXNpc1ZvaWNlW10gPSBbXTtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBsb2NhbGU6IExvY2FsZVNlcnZpY2UsIHByaXZhdGUgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmUpIHtcbiAgICB0aGlzLnNldFZvaWNlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRWb2ljZXMoKSB7XG4gICAgbGV0IF92b2ljZXMgPSBzcGVlY2hTeW50aGVzaXMuZ2V0Vm9pY2VzKCk7XG5cbiAgICBpZiAoIV92b2ljZXMubGVuZ3RoKSB7XG4gICAgICBzcGVlY2hTeW50aGVzaXMub252b2ljZXNjaGFuZ2VkID0gKCkgPT4ge1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgIF92b2ljZXMgPSBzcGVlY2hTeW50aGVzaXMuZ2V0Vm9pY2VzKCk7XG4gICAgICAgICAgY29uc3QgY3VycmVudExhbmcgPSB0aGlzLmxvY2FsZS5nZXRMb2NhbGVPcHRpb25zKCk/LmxvY2FsZSB8fCAncHQtQlInO1xuICAgICAgICAgIHRoaXMuc2V0QWN0aXZlVm9pY2UoX3ZvaWNlcywgY3VycmVudExhbmcpO1xuICAgICAgICAgIHRoaXMubG9jYWxlLmdldExvY2FsZSgpLnN1YnNjcmliZSgobG9jYWxlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNldEFjdGl2ZVZvaWNlKF92b2ljZXMsIGxvY2FsZSk7XG4gICAgICAgICAgfSlcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgYWN0aXZlIHZvaWNlXG4gICAqIFtNRE4gUmVmZXJlbmNlXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9BUEkvU3BlZWNoU3ludGhlc2lzVm9pY2Uvdm9pY2VVUkkpXG4gICAqIEBwYXJhbSB2b2ljZVVyaVxuICAgKi9cbiAgdXBkYXRlVm9pY2Uodm9pY2VVcmk6IHN0cmluZykge1xuICAgIHRoaXMuYWN0aXZlVm9pY2UgPSB0aGlzLnZvaWNlcy5maW5kKCh2b2ljZSkgPT4gdm9pY2Uudm9pY2VVUkkgPT09IHZvaWNlVXJpKTtcbiAgfVxuXG5cbiAgc3BlYWsodGV4dDogc3RyaW5nLCBzcGVlZDogbnVtYmVyID0gMSkge1xuICAgIGlmICghdGhpcy5hY3RpdmVWb2ljZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIHRoaXMudXR0ZXJhbmNlLnRleHQgPSB0ZXh0O1xuICAgICAgdGhpcy51dHRlcmFuY2Uudm9pY2UgPSB0aGlzLmFjdGl2ZVZvaWNlO1xuICAgICAgdGhpcy51dHRlcmFuY2UucmF0ZSA9IHNwZWVkO1xuICAgICAgc3BlZWNoU3ludGhlc2lzLnNwZWFrKHRoaXMudXR0ZXJhbmNlKTtcbiAgICAgIHRoaXMudXR0ZXJhbmNlLm9uZW5kID0gKCkgPT4ge1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIHBhdXNlKCkge1xuICAgIHNwZWVjaFN5bnRoZXNpcy5wYXVzZSgpO1xuICB9XG5cbiAgcmVzdW1lKCkge1xuICAgIHNwZWVjaFN5bnRoZXNpcy5yZXN1bWUoKTtcbiAgfVxuXG4gIGNhbmNlbCgpIHtcbiAgICBzcGVlY2hTeW50aGVzaXMuY2FuY2VsKCk7XG4gIH1cblxuICBnZXQgaGFzVm9pY2UoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5hY3RpdmVWb2ljZTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0QWN0aXZlVm9pY2Uodm9pY2VzOiBTcGVlY2hTeW50aGVzaXNWb2ljZVtdLCBsYW5nOiBzdHJpbmcpIHtcbiAgICBjb25zdCBfdm9pY2UgPSB2b2ljZXMuZmluZCgodm9pY2UpID0+IHZvaWNlLmxhbmcgPT09IGxhbmcpO1xuICAgIGlmIChfdm9pY2UpIHtcbiAgICAgIHRoaXMuYWN0aXZlVm9pY2UgPSBfdm9pY2U7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -35,21 +35,6 @@ var TextAreaComponent = /** @class */ (function () {
|
|
|
35
35
|
enumerable: true,
|
|
36
36
|
configurable: true
|
|
37
37
|
});
|
|
38
|
-
Object.defineProperty(TextAreaComponent.prototype, "placeholder", {
|
|
39
|
-
get: function () {
|
|
40
|
-
return this._placeholder;
|
|
41
|
-
},
|
|
42
|
-
set: function (value) {
|
|
43
|
-
if (value) {
|
|
44
|
-
this._placeholder = value;
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
this._placeholder = '';
|
|
48
|
-
}
|
|
49
|
-
},
|
|
50
|
-
enumerable: true,
|
|
51
|
-
configurable: true
|
|
52
|
-
});
|
|
53
38
|
Object.defineProperty(TextAreaComponent.prototype, "inputStyle", {
|
|
54
39
|
get: function () {
|
|
55
40
|
return this._inputStyle;
|
|
@@ -114,7 +99,7 @@ var TextAreaComponent = /** @class */ (function () {
|
|
|
114
99
|
], TextAreaComponent.prototype, "maxLength", void 0);
|
|
115
100
|
__decorate([
|
|
116
101
|
Input()
|
|
117
|
-
], TextAreaComponent.prototype, "placeholder",
|
|
102
|
+
], TextAreaComponent.prototype, "placeholder", void 0);
|
|
118
103
|
__decorate([
|
|
119
104
|
Input()
|
|
120
105
|
], TextAreaComponent.prototype, "inputStyle", null);
|
|
@@ -124,7 +109,7 @@ var TextAreaComponent = /** @class */ (function () {
|
|
|
124
109
|
TextAreaComponent = TextAreaComponent_1 = __decorate([
|
|
125
110
|
Component({
|
|
126
111
|
selector: 's-textarea',
|
|
127
|
-
template: "<textarea\n *ngIf=\"keyFilter\"\n #textArea\n class=\"textarea\"\n [pKeyFilter]=\"keyFilter\"\n [id]=\"inputId\"\n [rows]=\"rows\"\n [(ngModel)]=\"value\"\n [disabled]=\"disabled\"\n [ngStyle]=\"inputStyle\"\n [readOnly]=\"readOnly\"\n [placeholder]=\"placeholder\"\n [maxlength]=\"maxLength\"\n (ngModelChange)=\"setValue($event)\">\n</textarea>\n\n<textarea\n *ngIf=\"!keyFilter\"\n #textArea\n class=\"textarea\"\n [id]=\"inputId\"\n [rows]=\"rows\"\n [(ngModel)]=\"value\"\n [disabled]=\"disabled\"\n [ngStyle]=\"inputStyle\"\n [readOnly]=\"readOnly\"\n [placeholder]=\"placeholder\"\n [maxlength]=\"maxLength\"\n (ngModelChange)=\"setValue($event)\">\n</textarea>\n\n<s-speech-recognition\n *ngIf=\"speechRecognition && renderTextArea\"\n [textAreaElement]=\"textAreaElement.nativeElement\"\n [keepContext]=\"keepContext\"\n [speechRecognitionPlaceholder]=\"speechRecognitionPlaceholder\"\n (recognizedText)=\"handleRecognizedText($event)\">\n</s-speech-recognition>\n",
|
|
112
|
+
template: "<textarea\n *ngIf=\"keyFilter\"\n #textArea\n class=\"textarea\"\n [pKeyFilter]=\"keyFilter\"\n [id]=\"inputId\"\n [rows]=\"rows\"\n [(ngModel)]=\"value\"\n [disabled]=\"disabled\"\n [ngStyle]=\"inputStyle\"\n [readOnly]=\"readOnly\"\n [placeholder]=\"placeholder ? placeholder : ''\"\n [maxlength]=\"maxLength\"\n (ngModelChange)=\"setValue($event)\">\n</textarea>\n\n<textarea\n *ngIf=\"!keyFilter\"\n #textArea\n class=\"textarea\"\n [id]=\"inputId\"\n [rows]=\"rows\"\n [(ngModel)]=\"value\"\n [disabled]=\"disabled\"\n [ngStyle]=\"inputStyle\"\n [readOnly]=\"readOnly\"\n [placeholder]=\"placeholder ? placeholder : ''\"\n [maxlength]=\"maxLength\"\n (ngModelChange)=\"setValue($event)\">\n</textarea>\n\n<s-speech-recognition\n *ngIf=\"speechRecognition && renderTextArea\"\n [textAreaElement]=\"textAreaElement.nativeElement\"\n [keepContext]=\"keepContext\"\n [speechRecognitionPlaceholder]=\"speechRecognitionPlaceholder\"\n (recognizedText)=\"handleRecognizedText($event)\">\n</s-speech-recognition>\n",
|
|
128
113
|
providers: [
|
|
129
114
|
{
|
|
130
115
|
provide: NG_VALUE_ACCESSOR,
|
|
@@ -138,4 +123,4 @@ var TextAreaComponent = /** @class */ (function () {
|
|
|
138
123
|
return TextAreaComponent;
|
|
139
124
|
}());
|
|
140
125
|
export { TextAreaComponent };
|
|
141
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1hcmVhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL3RleHQtYXJlYS90ZXh0LWFyZWEvdGV4dC1hcmVhLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkcsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBY3pFO0lBNENFLDJCQUE2QixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQTNDbkQsYUFBUSxHQUE0QixjQUFRLENBQUMsQ0FBQztRQUM5QyxjQUFTLEdBQTRCLGNBQVEsQ0FBQyxDQUFDO1FBQy9DLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQWdCRixZQUFPLEdBQUcsY0FBWSxJQUFJLENBQUMsTUFBTSxFQUFJLENBQUM7UUFDdEMsU0FBSSxHQUFHLENBQUMsQ0FBQztRQUNULHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUUxQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixpQ0FBNEIsR0FBRyxFQUFFLENBQUM7UUFHbkMsZ0JBQVcsR0FBaUM7WUFDbEQsTUFBTSxFQUFFLFVBQVU7U0FDbkIsQ0FBQTtRQVVRLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFMUIsbUJBQWMsR0FBRyxLQUFLLENBQUM7SUFFZ0MsQ0FBQzswQkE1QzdDLGlCQUFpQjtJQVE1QixzQkFBVyw4Q0FBZTthQUExQjtZQUNFLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQy9CLENBQUM7YUFFRCxVQUEyQixLQUFzQztZQUFqRSxpQkFNQztZQUxDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7WUFDOUIsVUFBVSxDQUFDO2dCQUNULEtBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO2dCQUMzQixLQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzNCLENBQUMsQ0FBQyxDQUFBO1FBQ0osQ0FBQzs7O09BUkE7SUFxQlEsc0JBQUkseUNBQVU7YUFBZDtZQUNQLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUMxQixDQUFDO2FBQ0QsVUFBZSxLQUFtQztZQUNoRCxJQUFJLENBQUMsV0FBVyx5QkFDWCxLQUFLLEdBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FDcEIsQ0FBQztRQUNKLENBQUM7OztPQU5BO0lBYUQsc0NBQVUsR0FBVixVQUFXLEdBQVc7UUFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7SUFDbkIsQ0FBQztJQUVELDRDQUFnQixHQUFoQixVQUFpQixFQUEyQjtRQUMxQyxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsNkNBQWlCLEdBQWpCLFVBQWtCLEVBQWM7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELDRDQUFnQixHQUFoQixVQUFpQixVQUFtQjtRQUNsQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztJQUM3QixDQUFDO0lBRUQsb0NBQVEsR0FBUixVQUFTLEtBQWE7UUFDcEIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxnREFBb0IsR0FBcEIsVUFBcUIsY0FBc0I7UUFDekMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNoQyxDQUFDOzs7Z0JBOUJpQyxpQkFBaUI7O0lBcENuRDtRQURDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLENBQUM7NERBRzNDO0lBVVE7UUFBUixLQUFLLEVBQUU7c0RBQXVDO0lBQ3RDO1FBQVIsS0FBSyxFQUFFO21EQUFVO0lBQ1Q7UUFBUixLQUFLLEVBQUU7Z0VBQTJCO0lBQzFCO1FBQVIsS0FBSyxFQUFFO3dEQUE0QjtJQUMzQjtRQUFSLEtBQUssRUFBRTswREFBcUI7SUFDcEI7UUFBUixLQUFLLEVBQUU7MkVBQW1DO0lBQ2xDO1FBQVIsS0FBSyxFQUFFO3dEQUFtQjtJQUNsQjtRQUFSLEtBQUssRUFBRTswREFBcUI7SUFJcEI7UUFBUixLQUFLLEVBQUU7dURBRVA7SUFPUTtRQUFSLEtBQUssRUFBRTt1REFBa0I7SUF4Q2YsaUJBQWlCO1FBWjdCLFNBQVMsQ0FBQztZQUNULFFBQVEsRUFBRSxZQUFZO1lBQ3RCLDZtQ0FBeUM7WUFFekMsU0FBUyxFQUFFO2dCQUNUO29CQUNFLE9BQU8sRUFBRSxpQkFBaUI7b0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsY0FBTSxPQUFBLG1CQUFpQixFQUFqQixDQUFpQixDQUFDO29CQUNoRCxLQUFLLEVBQUUsSUFBSTtpQkFDWjthQUNGOztTQUNGLENBQUM7T0FDVyxpQkFBaUIsQ0EyRTdCO0lBQUQsd0JBQUM7Q0FBQSxBQTNFRCxJQTJFQztTQTNFWSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBmb3J3YXJkUmVmLCBJbnB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3MtdGV4dGFyZWEnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGV4dC1hcmVhLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGV4dC1hcmVhLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGV4dEFyZWFDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV4dEFyZWFDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIG9uQ2hhbmdlOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZCA9ICgpID0+IHsgfTtcbiAgb25Ub3VjaGVkOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZCA9ICgpID0+IHsgfTtcbiAgZGlzYWJsZWQgPSBmYWxzZTtcbiAgdmFsdWUgPSAnJztcbiAgcHJpdmF0ZSBfdGV4dEFyZWFFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQ+O1xuXG4gIEBWaWV3Q2hpbGQoJ3RleHRBcmVhJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIHB1YmxpYyBnZXQgdGV4dEFyZWFFbGVtZW50KCk6IEVsZW1lbnRSZWY8SFRNTFRleHRBcmVhRWxlbWVudD4ge1xuICAgIHJldHVybiB0aGlzLl90ZXh0QXJlYUVsZW1lbnQ7XG4gIH1cblxuICBwdWJsaWMgc2V0IHRleHRBcmVhRWxlbWVudCh2YWx1ZTogRWxlbWVudFJlZjxIVE1MVGV4dEFyZWFFbGVtZW50Pikge1xuICAgIHRoaXMuX3RleHRBcmVhRWxlbWVudCA9IHZhbHVlO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5yZW5kZXJUZXh0QXJlYSA9IHRydWU7XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSlcbiAgfVxuXG4gIEBJbnB1dCgpIGlucHV0SWQgPSBgdGV4dGFyZWEtJHtNYXRoLnJhbmRvbSgpfWA7XG4gIEBJbnB1dCgpIHJvd3MgPSA1O1xuICBASW5wdXQoKSBzcGVlY2hSZWNvZ25pdGlvbiA9IGZhbHNlO1xuICBASW5wdXQoKSBrZXlGaWx0ZXI6IHN0cmluZyB8IFJlZ0V4cDtcbiAgQElucHV0KCkga2VlcENvbnRleHQgPSBmYWxzZTtcbiAgQElucHV0KCkgc3BlZWNoUmVjb2duaXRpb25QbGFjZWhvbGRlciA9ICcnO1xuICBASW5wdXQoKSBtYXhMZW5ndGg6IG51bWJlcjtcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgcHJpdmF0ZSBfaW5wdXRTdHlsZTogUGFydGlhbDxDU1NTdHlsZURlY2xhcmF0aW9uPiA9IHtcbiAgICByZXNpemU6ICd2ZXJ0aWNhbCdcbiAgfVxuICBASW5wdXQoKSBnZXQgaW5wdXRTdHlsZSgpOiBQYXJ0aWFsPENTU1N0eWxlRGVjbGFyYXRpb24+IHtcbiAgICByZXR1cm4gdGhpcy5faW5wdXRTdHlsZTtcbiAgfVxuICBzZXQgaW5wdXRTdHlsZSh2YWx1ZTogUGFydGlhbDxDU1NTdHlsZURlY2xhcmF0aW9uPikge1xuICAgIHRoaXMuX2lucHV0U3R5bGUgPSB7XG4gICAgICAuLi52YWx1ZSxcbiAgICAgIC4uLnRoaXMuX2lucHV0U3R5bGUsXG4gICAgfTtcbiAgfVxuICBASW5wdXQoKSByZWFkT25seSA9IGZhbHNlO1xuXG4gIHJlbmRlclRleHRBcmVhID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7IH1cblxuICB3cml0ZVZhbHVlKG9iajogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IG9iajtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICBzZXRWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMud3JpdGVWYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgIHRoaXMub25Ub3VjaGVkKHRoaXMudmFsdWUpO1xuICB9XG5cbiAgaGFuZGxlUmVjb2duaXplZFRleHQocmVjb2duaXplZFRleHQ6IHN0cmluZykge1xuICAgIHRoaXMuc2V0VmFsdWUocmVjb2duaXplZFRleHQpO1xuICB9XG59XG4iXX0=
|