@seniorsistemas/angular-components 17.26.9 → 17.26.10
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 +117 -79
- 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/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/fesm2015/seniorsistemas-angular-components.js +75 -52
- package/fesm2015/seniorsistemas-angular-components.js.map +1 -1
- package/fesm5/seniorsistemas-angular-components.js +117 -79
- package/fesm5/seniorsistemas-angular-components.js.map +1 -1
- package/package.json +1 -1
- package/seniorsistemas-angular-components.metadata.json +1 -1
|
@@ -10624,9 +10624,8 @@ let SpeechRecognitionService = class SpeechRecognitionService {
|
|
|
10624
10624
|
this.translateService = translateService;
|
|
10625
10625
|
this.hasSupportSpeechRecognition = false;
|
|
10626
10626
|
this.isListening = false;
|
|
10627
|
-
this.
|
|
10627
|
+
this.microphoneStatus$ = new Subject();
|
|
10628
10628
|
this.TIMEOUT_NO_MESSAGE = 3000;
|
|
10629
|
-
this.verifyMicrophoneState();
|
|
10630
10629
|
this.setRecognition();
|
|
10631
10630
|
}
|
|
10632
10631
|
listen() {
|
|
@@ -10634,12 +10633,13 @@ let SpeechRecognitionService = class SpeechRecognitionService {
|
|
|
10634
10633
|
if (this.isListening) {
|
|
10635
10634
|
speechSubject.error('Already listening');
|
|
10636
10635
|
}
|
|
10637
|
-
|
|
10638
|
-
|
|
10639
|
-
|
|
10640
|
-
|
|
10641
|
-
|
|
10642
|
-
|
|
10636
|
+
this.hasMicrophoneAccess.then((hasAccess) => {
|
|
10637
|
+
if (!hasAccess) {
|
|
10638
|
+
this.toastService.show({ severity: 'error', text: this.translateService.instant('platform.angular_components.no_microphone_permission') });
|
|
10639
|
+
speechSubject.error('Microphone access is disabled');
|
|
10640
|
+
return;
|
|
10641
|
+
}
|
|
10642
|
+
this.microphoneStatus$.next('active');
|
|
10643
10643
|
this.isListening = true;
|
|
10644
10644
|
this.recognition.continuous = true;
|
|
10645
10645
|
this.recognition.interimResults = true;
|
|
@@ -10679,6 +10679,7 @@ let SpeechRecognitionService = class SpeechRecognitionService {
|
|
|
10679
10679
|
}
|
|
10680
10680
|
this.isListening = false;
|
|
10681
10681
|
speechSubject.error('Speech recognition error');
|
|
10682
|
+
this.microphoneStatus$.next('inactive');
|
|
10682
10683
|
});
|
|
10683
10684
|
};
|
|
10684
10685
|
this.recognition.onend = () => {
|
|
@@ -10689,26 +10690,16 @@ let SpeechRecognitionService = class SpeechRecognitionService {
|
|
|
10689
10690
|
speechSubject.next({ text: fullTranscript + interimTranscript, isFinal: true });
|
|
10690
10691
|
this.isListening = false;
|
|
10691
10692
|
speechSubject.complete();
|
|
10693
|
+
this.microphoneStatus$.next('inactive');
|
|
10692
10694
|
});
|
|
10693
10695
|
};
|
|
10694
10696
|
this.recognition.start();
|
|
10695
|
-
}
|
|
10697
|
+
});
|
|
10696
10698
|
return speechSubject;
|
|
10697
10699
|
}
|
|
10698
10700
|
stop() {
|
|
10699
10701
|
this.recognition.stop();
|
|
10700
10702
|
}
|
|
10701
|
-
verifyMicrophoneState() {
|
|
10702
|
-
navigator.permissions.query({ name: 'microphone' }).then((result) => {
|
|
10703
|
-
const microphoneResultState = result.state;
|
|
10704
|
-
this.hasMicrophoneAccess = microphoneResultState === 'granted';
|
|
10705
|
-
result.onchange = () => {
|
|
10706
|
-
this.ngZone.run(() => {
|
|
10707
|
-
this.hasMicrophoneAccess = result.state === 'granted';
|
|
10708
|
-
});
|
|
10709
|
-
};
|
|
10710
|
-
});
|
|
10711
|
-
}
|
|
10712
10703
|
setRecognition() {
|
|
10713
10704
|
var _a;
|
|
10714
10705
|
const SpeechRecognitionConstructor = window.SpeechRecognition || window.webkitSpeechRecognition;
|
|
@@ -10723,6 +10714,34 @@ let SpeechRecognitionService = class SpeechRecognitionService {
|
|
|
10723
10714
|
this.recognition.maxAlternatives = 1;
|
|
10724
10715
|
this.localeService.getLocale().subscribe(locale => this.recognition.lang = locale);
|
|
10725
10716
|
}
|
|
10717
|
+
get hasMicrophoneAccess() {
|
|
10718
|
+
return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {
|
|
10719
|
+
const permission = yield navigator.permissions.query({ name: 'microphone' });
|
|
10720
|
+
if (permission.state === 'denied') {
|
|
10721
|
+
resolve(false);
|
|
10722
|
+
}
|
|
10723
|
+
else if (permission.state === 'granted') {
|
|
10724
|
+
resolve(true);
|
|
10725
|
+
}
|
|
10726
|
+
else if (permission.state === 'prompt') {
|
|
10727
|
+
try {
|
|
10728
|
+
navigator.mediaDevices.getUserMedia({ audio: true }).then((stream) => {
|
|
10729
|
+
stream.getTracks().forEach(t => t.stop());
|
|
10730
|
+
}).catch(() => {
|
|
10731
|
+
resolve(false);
|
|
10732
|
+
});
|
|
10733
|
+
permission.onchange = () => {
|
|
10734
|
+
this.ngZone.run(() => {
|
|
10735
|
+
resolve(permission.state === 'granted' ? true : false);
|
|
10736
|
+
});
|
|
10737
|
+
};
|
|
10738
|
+
}
|
|
10739
|
+
catch (error) {
|
|
10740
|
+
resolve(false);
|
|
10741
|
+
}
|
|
10742
|
+
}
|
|
10743
|
+
}));
|
|
10744
|
+
}
|
|
10726
10745
|
};
|
|
10727
10746
|
SpeechRecognitionService.ctorParameters = () => [
|
|
10728
10747
|
{ type: LocaleService },
|
|
@@ -12645,17 +12664,6 @@ let TextAreaComponent = TextAreaComponent_1 = class TextAreaComponent {
|
|
|
12645
12664
|
this.cdr.detectChanges();
|
|
12646
12665
|
});
|
|
12647
12666
|
}
|
|
12648
|
-
get placeholder() {
|
|
12649
|
-
return this._placeholder;
|
|
12650
|
-
}
|
|
12651
|
-
set placeholder(value) {
|
|
12652
|
-
if (value) {
|
|
12653
|
-
this._placeholder = value;
|
|
12654
|
-
}
|
|
12655
|
-
else {
|
|
12656
|
-
this._placeholder = '';
|
|
12657
|
-
}
|
|
12658
|
-
}
|
|
12659
12667
|
get inputStyle() {
|
|
12660
12668
|
return this._inputStyle;
|
|
12661
12669
|
}
|
|
@@ -12716,7 +12724,7 @@ __decorate([
|
|
|
12716
12724
|
], TextAreaComponent.prototype, "maxLength", void 0);
|
|
12717
12725
|
__decorate([
|
|
12718
12726
|
Input()
|
|
12719
|
-
], TextAreaComponent.prototype, "placeholder",
|
|
12727
|
+
], TextAreaComponent.prototype, "placeholder", void 0);
|
|
12720
12728
|
__decorate([
|
|
12721
12729
|
Input()
|
|
12722
12730
|
], TextAreaComponent.prototype, "inputStyle", null);
|
|
@@ -12726,7 +12734,7 @@ __decorate([
|
|
|
12726
12734
|
TextAreaComponent = TextAreaComponent_1 = __decorate([
|
|
12727
12735
|
Component({
|
|
12728
12736
|
selector: 's-textarea',
|
|
12729
|
-
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",
|
|
12737
|
+
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",
|
|
12730
12738
|
providers: [
|
|
12731
12739
|
{
|
|
12732
12740
|
provide: NG_VALUE_ACCESSOR,
|
|
@@ -12816,7 +12824,8 @@ TextToSpeechService = __decorate([
|
|
|
12816
12824
|
})
|
|
12817
12825
|
], TextToSpeechService);
|
|
12818
12826
|
|
|
12819
|
-
|
|
12827
|
+
var SpeechRecognitionComponent_1;
|
|
12828
|
+
let SpeechRecognitionComponent = SpeechRecognitionComponent_1 = class SpeechRecognitionComponent {
|
|
12820
12829
|
constructor(speechRecognitionService, textToSpeechService, translateService) {
|
|
12821
12830
|
this.speechRecognitionService = speechRecognitionService;
|
|
12822
12831
|
this.textToSpeechService = textToSpeechService;
|
|
@@ -12825,7 +12834,7 @@ let SpeechRecognitionComponent = class SpeechRecognitionComponent {
|
|
|
12825
12834
|
this.speechRecognitionPlaceholder = '';
|
|
12826
12835
|
this._recognizedText = '';
|
|
12827
12836
|
this.originalTextAreaElementText = '';
|
|
12828
|
-
this.
|
|
12837
|
+
this.isDoneTextToSpeech = false;
|
|
12829
12838
|
this.onDestroy$ = new Subject();
|
|
12830
12839
|
this.VOICE_SPEEDS = [0.5, 1, 1.5, 2];
|
|
12831
12840
|
this.keydownEventListener = (event) => {
|
|
@@ -12834,7 +12843,7 @@ let SpeechRecognitionComponent = class SpeechRecognitionComponent {
|
|
|
12834
12843
|
}
|
|
12835
12844
|
};
|
|
12836
12845
|
this.disabled = false;
|
|
12837
|
-
this.
|
|
12846
|
+
this.isListeningUserVoice = false;
|
|
12838
12847
|
this.voiceSpeed = 1;
|
|
12839
12848
|
this.isDisabledMicrophone = false;
|
|
12840
12849
|
this.canRenderMicrophone = true;
|
|
@@ -12855,6 +12864,11 @@ let SpeechRecognitionComponent = class SpeechRecognitionComponent {
|
|
|
12855
12864
|
}
|
|
12856
12865
|
this.textAreaElement.placeholder = this.speechRecognitionPlaceholder ? this.speechRecognitionPlaceholder : this.translateService.instant("platform.angular_components.text_area_speech_recognition_placeholder");
|
|
12857
12866
|
this.textAreaElement.addEventListener('keydown', this.keydownEventListener);
|
|
12867
|
+
this.speechRecognitionService.microphoneStatus$.pipe(takeUntil(this.onDestroy$)).subscribe((status) => {
|
|
12868
|
+
if (status === 'active') {
|
|
12869
|
+
this.onCloseToolbar();
|
|
12870
|
+
}
|
|
12871
|
+
});
|
|
12858
12872
|
}
|
|
12859
12873
|
onListen() {
|
|
12860
12874
|
if (this.isDisabledMicrophone || this.isListening) {
|
|
@@ -12865,7 +12879,7 @@ let SpeechRecognitionComponent = class SpeechRecognitionComponent {
|
|
|
12865
12879
|
this.canRenderListeningText = true;
|
|
12866
12880
|
this.originalTextAreaElementText = this.textAreaElement.value;
|
|
12867
12881
|
this.textAreaElement.value = '';
|
|
12868
|
-
this.
|
|
12882
|
+
this.isListeningUserVoice = true;
|
|
12869
12883
|
this.speechRecognitionService.listen()
|
|
12870
12884
|
.pipe(takeUntil(this.onDestroy$))
|
|
12871
12885
|
.subscribe(({ text, isFinal }) => {
|
|
@@ -12876,10 +12890,10 @@ let SpeechRecognitionComponent = class SpeechRecognitionComponent {
|
|
|
12876
12890
|
this.canRenderAprove = true;
|
|
12877
12891
|
this.canRenderDiscard = true;
|
|
12878
12892
|
this.canRenderListeningText = false;
|
|
12879
|
-
this.
|
|
12893
|
+
this.isListeningUserVoice = false;
|
|
12880
12894
|
}
|
|
12881
12895
|
}, () => {
|
|
12882
|
-
this.
|
|
12896
|
+
this.isListeningUserVoice = false;
|
|
12883
12897
|
this.canRenderMicrophone = true;
|
|
12884
12898
|
this.isDisabledMicrophone = false;
|
|
12885
12899
|
this.canRenderListeningText = false;
|
|
@@ -12897,15 +12911,15 @@ let SpeechRecognitionComponent = class SpeechRecognitionComponent {
|
|
|
12897
12911
|
}
|
|
12898
12912
|
this.canRenderTextToSpeechToolbar = true;
|
|
12899
12913
|
this.canRenderTextToSpeech = false;
|
|
12900
|
-
|
|
12914
|
+
SpeechRecognitionComponent_1.TOOLBAR_ACTIVE = true;
|
|
12901
12915
|
this.speak();
|
|
12902
12916
|
}
|
|
12903
12917
|
onCloseToolbar() {
|
|
12904
12918
|
this.canRenderTextToSpeechToolbar = false;
|
|
12905
12919
|
this.canRenderTextToSpeech = true;
|
|
12906
|
-
this.
|
|
12907
|
-
this.textToSpeechService.cancel();
|
|
12920
|
+
this.stopTextToSpeech();
|
|
12908
12921
|
this.voiceSpeed = 1;
|
|
12922
|
+
SpeechRecognitionComponent_1.TOOLBAR_ACTIVE = false;
|
|
12909
12923
|
}
|
|
12910
12924
|
onDiscard() {
|
|
12911
12925
|
this.canRenderAprove = false;
|
|
@@ -12916,7 +12930,8 @@ let SpeechRecognitionComponent = class SpeechRecognitionComponent {
|
|
|
12916
12930
|
this._recognizedText = '';
|
|
12917
12931
|
this.setTextAreaValue(this.originalTextAreaElementText);
|
|
12918
12932
|
this.disabled = false;
|
|
12919
|
-
this.
|
|
12933
|
+
this.stopTextToSpeech();
|
|
12934
|
+
SpeechRecognitionComponent_1.TOOLBAR_ACTIVE = false;
|
|
12920
12935
|
}
|
|
12921
12936
|
onAprove() {
|
|
12922
12937
|
this.canRenderAprove = false;
|
|
@@ -12946,7 +12961,7 @@ let SpeechRecognitionComponent = class SpeechRecognitionComponent {
|
|
|
12946
12961
|
this.textToSpeechService.pause();
|
|
12947
12962
|
}
|
|
12948
12963
|
else {
|
|
12949
|
-
if (this.
|
|
12964
|
+
if (this.isDoneTextToSpeech) {
|
|
12950
12965
|
this.speak();
|
|
12951
12966
|
}
|
|
12952
12967
|
else {
|
|
@@ -12956,7 +12971,6 @@ let SpeechRecognitionComponent = class SpeechRecognitionComponent {
|
|
|
12956
12971
|
this.isPlayingTextToSpeech = !this.isPlayingTextToSpeech;
|
|
12957
12972
|
}
|
|
12958
12973
|
restartTextToSpeech() {
|
|
12959
|
-
this.isPlayingTextToSpeech = true;
|
|
12960
12974
|
this.textToSpeechService.cancel();
|
|
12961
12975
|
this.speak();
|
|
12962
12976
|
}
|
|
@@ -12978,19 +12992,28 @@ let SpeechRecognitionComponent = class SpeechRecognitionComponent {
|
|
|
12978
12992
|
}
|
|
12979
12993
|
get isDisabledTextToSpeech() {
|
|
12980
12994
|
const hasTextToSpeechVoice = this.textToSpeechService.hasVoice;
|
|
12981
|
-
return !this.
|
|
12995
|
+
return !this.textToSpeech || !hasTextToSpeechVoice || this.isListening || SpeechRecognitionComponent_1.TOOLBAR_ACTIVE;
|
|
12982
12996
|
}
|
|
12983
12997
|
setTextAreaValue(value) {
|
|
12984
12998
|
this.textAreaElement.value = value;
|
|
12985
12999
|
}
|
|
13000
|
+
stopTextToSpeech() {
|
|
13001
|
+
this.isPlayingTextToSpeech = false;
|
|
13002
|
+
this.textToSpeechService.cancel();
|
|
13003
|
+
}
|
|
12986
13004
|
speak() {
|
|
12987
|
-
this.
|
|
12988
|
-
this.
|
|
13005
|
+
this.isDoneTextToSpeech = false;
|
|
13006
|
+
this.isPlayingTextToSpeech = true;
|
|
13007
|
+
this.textToSpeechService.speak(this.textToSpeech, this.voiceSpeed).then(() => {
|
|
12989
13008
|
this.isPlayingTextToSpeech = false;
|
|
12990
|
-
this.
|
|
13009
|
+
this.isDoneTextToSpeech = true;
|
|
12991
13010
|
});
|
|
12992
13011
|
}
|
|
13012
|
+
get textToSpeech() {
|
|
13013
|
+
return this.textAreaElement.value;
|
|
13014
|
+
}
|
|
12993
13015
|
};
|
|
13016
|
+
SpeechRecognitionComponent.TOOLBAR_ACTIVE = false;
|
|
12994
13017
|
SpeechRecognitionComponent.ctorParameters = () => [
|
|
12995
13018
|
{ type: SpeechRecognitionService },
|
|
12996
13019
|
{ type: TextToSpeechService },
|
|
@@ -13008,11 +13031,11 @@ __decorate([
|
|
|
13008
13031
|
__decorate([
|
|
13009
13032
|
Output()
|
|
13010
13033
|
], SpeechRecognitionComponent.prototype, "recognizedText", void 0);
|
|
13011
|
-
SpeechRecognitionComponent = __decorate([
|
|
13034
|
+
SpeechRecognitionComponent = SpeechRecognitionComponent_1 = __decorate([
|
|
13012
13035
|
Component({
|
|
13013
13036
|
selector: 's-speech-recognition',
|
|
13014
|
-
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=\"
|
|
13015
|
-
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-
|
|
13037
|
+
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",
|
|
13038
|
+
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}"]
|
|
13016
13039
|
})
|
|
13017
13040
|
], SpeechRecognitionComponent);
|
|
13018
13041
|
|