@eqproject/eqp-dynamic-module 2.8.4 → 2.8.6

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.
Files changed (42) hide show
  1. package/esm2020/lib/components/private/add-form-field/add-form-field.component.mjs +11 -6
  2. package/esm2020/lib/components/private/add-formula-field/add-formula-field.component.mjs +18 -7
  3. package/esm2020/lib/components/private/dynamic-module-field-fix/dynamic-module-field.component.mjs +3 -2
  4. package/esm2020/lib/components/private/field-templates/date-field-template/date-field-template.component.mjs +11 -5
  5. package/esm2020/lib/components/private/field-templates/label-field-template/label-field-template.component.mjs +6 -14
  6. package/esm2020/lib/components/private/field-templates/text-field-template/text-field-template.component.mjs +12 -49
  7. package/esm2020/lib/components/private/field-templates/textarea-field-template/textarea-field-template.component.mjs +12 -49
  8. package/esm2020/lib/components/private/form-records/add-form-record/add-form-record.component.mjs +40 -12
  9. package/esm2020/lib/components/private/form-records/list-view-form-record/list-view-form-record.component.mjs +18 -15
  10. package/esm2020/lib/components/private/form-statistics/filter-form-statistic/filter-form-statistic.component.mjs +2 -4
  11. package/esm2020/lib/components/private/form-statistics/filter-templates/list-value-filter-template/list-value-filter-template.component.mjs +3 -3
  12. package/esm2020/lib/components/private/form-statistics/filter-templates/text-filter-template/text-filter-template.component.mjs +13 -45
  13. package/esm2020/lib/components/private/form-statistics/filter-templates/textarea-filter-template/textarea-filter-template.component.mjs +13 -45
  14. package/esm2020/lib/components/private/trigger-creator/trigger-templates/text-trigger-template/text-trigger-template.component.mjs +13 -45
  15. package/esm2020/lib/components/private/trigger-creator/trigger-templates/textarea-trigger-template/textarea-trigger-template.component.mjs +13 -45
  16. package/esm2020/lib/directives/speech-to-text/speech-to-text.directive.mjs +186 -0
  17. package/esm2020/lib/eqp-dynamic-module.module.mjs +6 -3
  18. package/esm2020/lib/models/fields/dateField.model.mjs +5 -1
  19. package/esm2020/lib/services/global.service.mjs +4 -1
  20. package/esm2020/public-api.mjs +2 -1
  21. package/fesm2015/eqproject-eqp-dynamic-module.mjs +341 -384
  22. package/fesm2015/eqproject-eqp-dynamic-module.mjs.map +1 -1
  23. package/fesm2020/eqproject-eqp-dynamic-module.mjs +341 -384
  24. package/fesm2020/eqproject-eqp-dynamic-module.mjs.map +1 -1
  25. package/lib/components/private/add-form-field/add-form-field.component.d.ts +2 -1
  26. package/lib/components/private/add-formula-field/add-formula-field.component.d.ts +3 -0
  27. package/lib/components/private/field-templates/date-field-template/date-field-template.component.d.ts +2 -1
  28. package/lib/components/private/field-templates/label-field-template/label-field-template.component.d.ts +1 -3
  29. package/lib/components/private/field-templates/text-field-template/text-field-template.component.d.ts +1 -6
  30. package/lib/components/private/field-templates/textarea-field-template/textarea-field-template.component.d.ts +1 -6
  31. package/lib/components/private/form-records/add-form-record/add-form-record.component.d.ts +4 -1
  32. package/lib/components/private/form-statistics/filter-templates/text-filter-template/text-filter-template.component.d.ts +1 -6
  33. package/lib/components/private/form-statistics/filter-templates/textarea-filter-template/textarea-filter-template.component.d.ts +1 -6
  34. package/lib/components/private/trigger-creator/trigger-templates/text-trigger-template/text-trigger-template.component.d.ts +1 -6
  35. package/lib/components/private/trigger-creator/trigger-templates/textarea-trigger-template/textarea-trigger-template.component.d.ts +1 -6
  36. package/lib/directives/speech-to-text/speech-to-text.directive.d.ts +31 -0
  37. package/lib/eqp-dynamic-module.module.d.ts +15 -14
  38. package/lib/services/global.service.d.ts +3 -0
  39. package/package.json +1 -1
  40. package/public-api.d.ts +1 -0
  41. package/esm2020/lib/services/voice-recognition.service.mjs +0 -75
  42. package/lib/services/voice-recognition.service.d.ts +0 -18
@@ -44,7 +44,8 @@ export declare class AddFormFieldComponent implements OnInit {
44
44
  key: string;
45
45
  value: string;
46
46
  };
47
- availableColSpanSizes: Array<ColSpanSizesEnum>;
47
+ availableColSpanSizesCompilazione: Array<ColSpanSizesEnum>;
48
+ availableColSpanSizesRisposta: Array<ColSpanSizesEnum>;
48
49
  formulaAutocompleteOptions: Array<{
49
50
  label: string;
50
51
  value: string;
@@ -11,6 +11,7 @@ export declare class AddFormulaComponent implements OnInit, OnChanges {
11
11
  formulaTextArea: ElementRef<HTMLTextAreaElement>;
12
12
  caretPosition: number;
13
13
  fieldNull: boolean;
14
+ fieldSearched: string;
14
15
  formula: Formula;
15
16
  stringaFormula: string;
16
17
  counter: number;
@@ -21,6 +22,8 @@ export declare class AddFormulaComponent implements OnInit, OnChanges {
21
22
  clear(): any;
22
23
  ngOnChanges(changes: SimpleChanges): void;
23
24
  lostFocus(textArea: any): void;
25
+ fieldSearchEvent(): void;
26
+ fieldSearch(text: string): void;
24
27
  back(): void;
25
28
  addSymbol(value: string): void;
26
29
  addListNumberReader(): void;
@@ -12,6 +12,7 @@ export declare class DateFieldTemplateComponent implements OnInit, OnChanges, IB
12
12
  modes: typeof ModeEnum;
13
13
  timeType: typeof TimeTypeEnum;
14
14
  mode: ModeEnum;
15
+ showSeconds: boolean;
15
16
  outputFormat: string;
16
17
  constructor();
17
18
  ngOnInit(): void;
@@ -23,7 +24,7 @@ export declare class DateFieldTemplateComponent implements OnInit, OnChanges, IB
23
24
  /**
24
25
  * Metodo per emettere l'evento che il valore del record è cambiato.
25
26
  */
26
- onRecordValueChange(): void;
27
+ onRecordValueChange(ev: any): void;
27
28
  setOutputFormat(): void;
28
29
  /**
29
30
  * In base al formato della data richiesta nel DateField (solo data, solo orario o data e ora)
@@ -1,12 +1,10 @@
1
1
  import { EventEmitter, OnChanges, OnInit, SimpleChanges } from '@angular/core';
2
2
  import { Record } from '../../../../models/record.model';
3
3
  import { IBaseFieldComponent } from '../../../../interfaces/iBaseFieldComponent.interface';
4
- import { VoiceRecognitionService } from '../../../../services/voice-recognition.service';
5
4
  import { Subscription } from 'rxjs';
6
5
  import { LabelField } from '../../../../models/fields/labelField.model';
7
6
  import * as i0 from "@angular/core";
8
7
  export declare class LabelFieldTemplateComponent implements OnInit, OnChanges, IBaseFieldComponent {
9
- voiceservice: VoiceRecognitionService;
10
8
  isStillRecoginze: boolean;
11
9
  source: import("rxjs").Observable<number>;
12
10
  newtext: string;
@@ -18,7 +16,7 @@ export declare class LabelFieldTemplateComponent implements OnInit, OnChanges, I
18
16
  FieldstyleObj: any;
19
17
  LabelstyleObj: any;
20
18
  recordChange: EventEmitter<Record>;
21
- constructor(voiceservice: VoiceRecognitionService);
19
+ constructor();
22
20
  ngOnInit(): void;
23
21
  initStyles(): void;
24
22
  ngOnChanges(changes: SimpleChanges): void;
@@ -2,11 +2,9 @@ import { EventEmitter, OnChanges, OnInit, SimpleChanges } from '@angular/core';
2
2
  import { Record } from '../../../../models/record.model';
3
3
  import { TextMaskEnum, TextField } from '../../../../models/fields/textField.model';
4
4
  import { IBaseFieldComponent } from '../../../../interfaces/iBaseFieldComponent.interface';
5
- import { VoiceRecognitionService } from '../../../../services/voice-recognition.service';
6
5
  import { Subscription } from 'rxjs';
7
6
  import * as i0 from "@angular/core";
8
7
  export declare class TextFieldTemplateComponent implements OnInit, OnChanges, IBaseFieldComponent {
9
- voiceservice: VoiceRecognitionService;
10
8
  isStillRecoginze: boolean;
11
9
  source: import("rxjs").Observable<number>;
12
10
  newtext: string;
@@ -19,14 +17,11 @@ export declare class TextFieldTemplateComponent implements OnInit, OnChanges, IB
19
17
  LabelstyleObj: any;
20
18
  recordChange: EventEmitter<Record>;
21
19
  InputMaskEnum: typeof TextMaskEnum;
22
- constructor(voiceservice: VoiceRecognitionService);
20
+ constructor();
23
21
  ngOnInit(): void;
24
22
  initStyles(): void;
25
23
  ngOnChanges(changes: SimpleChanges): void;
26
- ttsClick(): void;
27
24
  getInputType(): "text" | "email" | "password" | "tel" | "url";
28
- updateRTVoiceField(): void;
29
- updateVoiceField(): void;
30
25
  /**
31
26
  * Metodo per aggiornare il valore del campo quando questo è rappresentato da una formula.
32
27
  */
@@ -2,11 +2,9 @@ import { EventEmitter, OnChanges, OnInit, SimpleChanges } from '@angular/core';
2
2
  import { IBaseFieldComponent } from '../../../../interfaces/iBaseFieldComponent.interface';
3
3
  import { Record } from '../../../../models/record.model';
4
4
  import { TextareaField } from '../../../../models/fields/textareaField.model';
5
- import { VoiceRecognitionService } from '../../../../services/voice-recognition.service';
6
5
  import { Subscription } from 'rxjs';
7
6
  import * as i0 from "@angular/core";
8
7
  export declare class TextareaFieldTemplateComponent implements OnInit, OnChanges, IBaseFieldComponent {
9
- voiceservice: VoiceRecognitionService;
10
8
  isStillRecoginze: boolean;
11
9
  field: TextareaField;
12
10
  record: Record;
@@ -16,17 +14,14 @@ export declare class TextareaFieldTemplateComponent implements OnInit, OnChanges
16
14
  subscription: Subscription;
17
15
  FieldstyleObj: any;
18
16
  LabelstyleObj: any;
19
- constructor(voiceservice: VoiceRecognitionService);
17
+ constructor();
20
18
  ngOnInit(): void;
21
19
  initStyles(): void;
22
20
  ngOnChanges(changes: SimpleChanges): void;
23
- ttsClick(): void;
24
21
  /**
25
22
  * Metodo per aggiornare il valore del campo quando questo è rappresentato da una formula.
26
23
  */
27
24
  updateField(): void;
28
- updateRTVoiceField(): void;
29
- updateVoiceField(): void;
30
25
  /**
31
26
  * Metodo per emettere l'evento che il valore del record è cambiato.
32
27
  */
@@ -9,10 +9,12 @@ import { DynamicModuleFieldFixComponent } from '../../dynamic-module-field-fix/d
9
9
  import { EndPointConfiguration } from './../../../../models/endPointConfiguration.model';
10
10
  import { DynamicLoaderDirectiveData, eventOut } from "../../../../directives/dynamic-loader/dynamic-loader.directive";
11
11
  import { FireTrigger } from '../../../../models/trigger.model';
12
+ import { DatePipe } from '@angular/common';
12
13
  import * as i0 from "@angular/core";
13
14
  export declare class AddFormRecordComponent implements OnInit {
14
15
  private cdr;
15
16
  utilityService: UtilityHelperService;
17
+ private datepipe;
16
18
  configurations: DynamicModuleCompileConfig;
17
19
  endPointConfiguration: EndPointConfiguration;
18
20
  userID: string;
@@ -42,8 +44,9 @@ export declare class AddFormRecordComponent implements OnInit {
42
44
  FormScalarTypeEnum: typeof FormScalarTypeEnum;
43
45
  FieldTypeEnum: typeof FieldTypeEnum;
44
46
  fieldTemplate: QueryList<DynamicModuleFieldFixComponent>;
45
- constructor(cdr: ChangeDetectorRef, utilityService: UtilityHelperService);
47
+ constructor(cdr: ChangeDetectorRef, utilityService: UtilityHelperService, datepipe: DatePipe);
46
48
  ngOnInit(): void;
49
+ onStepChange(event: any): void;
47
50
  /**
48
51
  * Metodo invocato al cambio del valore di ogni proprietà dell'oggetto record.
49
52
  * Serve ad aggiornare il valore di tutti i campi che hanno una formula.
@@ -1,13 +1,11 @@
1
1
  import { EventEmitter } from '@angular/core';
2
2
  import { Record } from '../../../../../models/record.model';
3
3
  import { TextMaskEnum, TextField } from '../../../../../models/fields/textField.model';
4
- import { VoiceRecognitionService } from '../../../../../services/voice-recognition.service';
5
4
  import { Subscription } from 'rxjs';
6
5
  import { LogicOperatorText } from '../../../../../models/logicOperator.model';
7
6
  import { Statistic } from '../../../../../models/statistic.model';
8
7
  import * as i0 from "@angular/core";
9
8
  export declare class TextFilterTemplateComponent {
10
- voiceservice: VoiceRecognitionService;
11
9
  isStillRecoginze: boolean;
12
10
  source: import("rxjs").Observable<number>;
13
11
  newtext: string;
@@ -23,13 +21,10 @@ export declare class TextFilterTemplateComponent {
23
21
  logicOperatorText: typeof LogicOperatorText;
24
22
  selectedLogicOperator: LogicOperatorText;
25
23
  activeCondition: boolean;
26
- constructor(voiceservice: VoiceRecognitionService);
24
+ constructor();
27
25
  ngOnInit(): void;
28
26
  initStyles(): void;
29
- ttsClick(): void;
30
27
  getInputType(): "text" | "email" | "password" | "tel" | "url";
31
- updateRTVoiceField(): void;
32
- updateVoiceField(): void;
33
28
  /**
34
29
  * Metodo per emettere l'evento che il valore del record è cambiato.
35
30
  */
@@ -1,13 +1,11 @@
1
1
  import { EventEmitter } from '@angular/core';
2
2
  import { Record } from '../../../../../models/record.model';
3
3
  import { TextMaskEnum, TextField } from '../../../../../models/fields/textField.model';
4
- import { VoiceRecognitionService } from '../../../../../services/voice-recognition.service';
5
4
  import { Subscription } from 'rxjs';
6
5
  import { LogicOperatorText } from '../../../../../models/logicOperator.model';
7
6
  import { Statistic } from '../../../../../models/statistic.model';
8
7
  import * as i0 from "@angular/core";
9
8
  export declare class TextareaFilterTemplateComponent {
10
- voiceservice: VoiceRecognitionService;
11
9
  isStillRecoginze: boolean;
12
10
  source: import("rxjs").Observable<number>;
13
11
  newtext: string;
@@ -23,13 +21,10 @@ export declare class TextareaFilterTemplateComponent {
23
21
  logicOperatorText: typeof LogicOperatorText;
24
22
  selectedLogicOperator: LogicOperatorText;
25
23
  activeCondition: boolean;
26
- constructor(voiceservice: VoiceRecognitionService);
24
+ constructor();
27
25
  ngOnInit(): void;
28
26
  initStyles(): void;
29
- ttsClick(): void;
30
27
  getInputType(): "text" | "email" | "password" | "tel" | "url";
31
- updateRTVoiceField(): void;
32
- updateVoiceField(): void;
33
28
  /**
34
29
  * Metodo per emettere l'evento che il valore del record è cambiato.
35
30
  */
@@ -1,13 +1,11 @@
1
1
  import { EventEmitter } from '@angular/core';
2
2
  import { Record } from '../../../../../models/record.model';
3
3
  import { TextMaskEnum, TextField } from '../../../../../models/fields/textField.model';
4
- import { VoiceRecognitionService } from '../../../../../services/voice-recognition.service';
5
4
  import { Subscription } from 'rxjs';
6
5
  import { LogicOperatorText } from '../../../../../models/logicOperator.model';
7
6
  import { BooleanLogicOperatorType, TriggerCondition } from '../../../../../models/trigger.model';
8
7
  import * as i0 from "@angular/core";
9
8
  export declare class TextTriggerTemplateComponent {
10
- voiceservice: VoiceRecognitionService;
11
9
  condition: TriggerCondition;
12
10
  recordChange: EventEmitter<Record>;
13
11
  triggerChange: EventEmitter<any>;
@@ -25,13 +23,10 @@ export declare class TextTriggerTemplateComponent {
25
23
  booleanLogicOperatorType: typeof BooleanLogicOperatorType;
26
24
  selectedBooleanLogicOperator: BooleanLogicOperatorType;
27
25
  field: TextField;
28
- constructor(voiceservice: VoiceRecognitionService);
26
+ constructor();
29
27
  ngOnInit(): void;
30
28
  initStyles(): void;
31
- ttsClick(): void;
32
29
  getInputType(): "text" | "email" | "password" | "tel" | "url";
33
- updateRTVoiceField(): void;
34
- updateVoiceField(): void;
35
30
  /**
36
31
  * Metodo per emettere l'evento che il valore del record è cambiato.
37
32
  */
@@ -1,13 +1,11 @@
1
1
  import { EventEmitter } from '@angular/core';
2
2
  import { Record } from '../../../../../models/record.model';
3
3
  import { TextMaskEnum, TextField } from '../../../../../models/fields/textField.model';
4
- import { VoiceRecognitionService } from '../../../../../services/voice-recognition.service';
5
4
  import { Subscription } from 'rxjs';
6
5
  import { LogicOperatorText } from '../../../../../models/logicOperator.model';
7
6
  import { TriggerCondition, BooleanLogicOperatorType } from '../../../../../models/trigger.model';
8
7
  import * as i0 from "@angular/core";
9
8
  export declare class TextareaTriggerTemplateComponent {
10
- voiceservice: VoiceRecognitionService;
11
9
  condition: TriggerCondition;
12
10
  recordChange: EventEmitter<Record>;
13
11
  triggerChange: EventEmitter<any>;
@@ -25,13 +23,10 @@ export declare class TextareaTriggerTemplateComponent {
25
23
  activeCondition: boolean;
26
24
  booleanLogicOperatorType: typeof BooleanLogicOperatorType;
27
25
  selectedBooleanLogicOperator: BooleanLogicOperatorType;
28
- constructor(voiceservice: VoiceRecognitionService);
26
+ constructor();
29
27
  ngOnInit(): void;
30
28
  initStyles(): void;
31
- ttsClick(): void;
32
29
  getInputType(): "text" | "email" | "password" | "tel" | "url";
33
- updateRTVoiceField(): void;
34
- updateVoiceField(): void;
35
30
  /**
36
31
  * Metodo per emettere l'evento che il valore del record è cambiato.
37
32
  */
@@ -0,0 +1,31 @@
1
+ import { ElementRef, EventEmitter, OnDestroy } from "@angular/core";
2
+ import { Subscription } from "rxjs";
3
+ import * as i0 from "@angular/core";
4
+ export declare class SpeechToTextDirective implements OnDestroy {
5
+ private elementRef;
6
+ debug: boolean;
7
+ bindedText: string;
8
+ bindedTextChange: EventEmitter<string>;
9
+ beginSentence: string;
10
+ private domElement;
11
+ pausedClass: string;
12
+ speakingClass: string;
13
+ recognition: any;
14
+ tempWords: any;
15
+ transcript_arr: any[];
16
+ confidence_arr: any[];
17
+ isStoppedSpeechRecog: boolean;
18
+ isStoppedAutomatically: boolean;
19
+ timeInterval: import("rxjs").Observable<number>;
20
+ subscription: Subscription;
21
+ SpeechToggle(): void;
22
+ constructor(elementRef: ElementRef);
23
+ ngOnDestroy(): void;
24
+ SpeechToTextToggler(): void;
25
+ private start;
26
+ private stop;
27
+ private wordConcat;
28
+ private printDebug;
29
+ static ɵfac: i0.ɵɵFactoryDeclaration<SpeechToTextDirective, never>;
30
+ static ɵdir: i0.ɵɵDirectiveDeclaration<SpeechToTextDirective, "[SpeechToText]", never, { "bindedText": "bindedText"; }, { "bindedTextChange": "bindedTextChange"; }, never, never, false, never>;
31
+ }
@@ -51,19 +51,20 @@ import * as i48 from "./components/private/trigger-creator/trigger-templates/dat
51
51
  import * as i49 from "./components/private/trigger-creator/trigger-templates/list-value-trigger-template/list-value-trigger-template.component";
52
52
  import * as i50 from "./components/private/trigger-creator/trigger-templates/textarea-trigger-template/textarea-trigger-template.component";
53
53
  import * as i51 from "./components/private/trigger-creator/trigger-templates/list-form-record-trigger-template/list-form-record-trigger-template.component";
54
- import * as i52 from "./modules/material.module";
55
- import * as i53 from "@angular/forms";
56
- import * as i54 from "@angular/common";
57
- import * as i55 from "@eqproject/eqp-table";
58
- import * as i56 from "@eqproject/eqp-attachments";
59
- import * as i57 from "@eqproject/eqp-select";
60
- import * as i58 from "@eqproject/eqp-datetimepicker";
61
- import * as i59 from "@eqproject/eqp-filters";
62
- import * as i60 from "@eqproject/eqp-img-drawing";
63
- import * as i61 from "@angular/cdk/drag-drop";
64
- import * as i62 from "@eqproject/eqp-numeric";
65
- import * as i63 from "@canvasjs/angular-stockcharts";
66
- import * as i64 from "tmw-picker";
54
+ import * as i52 from "./directives/speech-to-text/speech-to-text.directive";
55
+ import * as i53 from "./modules/material.module";
56
+ import * as i54 from "@angular/forms";
57
+ import * as i55 from "@angular/common";
58
+ import * as i56 from "@eqproject/eqp-table";
59
+ import * as i57 from "@eqproject/eqp-attachments";
60
+ import * as i58 from "@eqproject/eqp-select";
61
+ import * as i59 from "@eqproject/eqp-datetimepicker";
62
+ import * as i60 from "@eqproject/eqp-filters";
63
+ import * as i61 from "@eqproject/eqp-img-drawing";
64
+ import * as i62 from "@angular/cdk/drag-drop";
65
+ import * as i63 from "@eqproject/eqp-numeric";
66
+ import * as i64 from "@canvasjs/angular-stockcharts";
67
+ import * as i65 from "tmw-picker";
67
68
  export declare const customNumericMaskConfig: {
68
69
  align: string;
69
70
  allowNegative: boolean;
@@ -80,6 +81,6 @@ export declare const customNumericMaskConfig: {
80
81
  };
81
82
  export declare class EqpDynamicModuleModule {
82
83
  static ɵfac: i0.ɵɵFactoryDeclaration<EqpDynamicModuleModule, never>;
83
- static ɵmod: i0.ɵɵNgModuleDeclaration<EqpDynamicModuleModule, [typeof i1.EqpDynamicModuleComponent, typeof i2.EqpDynamicModuleConfiguratorComponent, typeof i3.AddFormFieldComponent, typeof i4.TextFieldTemplateComponent, typeof i5.BooleanFieldTemplateComponent, typeof i6.DateFieldTemplateComponent, typeof i7.TextareaFieldTemplateComponent, typeof i8.NumericFieldTemplateComponent, typeof i9.ListValueFieldTemplateComponent, typeof i10.AttachmentFieldTemplateComponent, typeof i11.ImageFieldTemplateComponent, typeof i12.ListFormRecordComponent, typeof i13.ListViewFormRecordComponent, typeof i14.AddFormRecordComponent, typeof i15.ViewFormRecordComponent, typeof i16.DynamicModuleFieldComponent, typeof i17.DynamicModuleFieldFixComponent, typeof i18.SpinnerComponent, typeof i19.AddFormulaComponent, typeof i19.DialogDataExampleDialog, typeof i20.RepairFormFieldsComponent, typeof i21.SingleRecordComponent, typeof i22.FilterFormStatisticComponent, typeof i23.DynamicModuleFilterFixComponent, typeof i24.DynamicModuleTriggerFixComponent, typeof i25.TextFilterTemplateComponent, typeof i26.NumericFilterTemplateComponent, typeof i27.BooleanFilterTemplateComponent, typeof i28.DateFilterTemplateComponent, typeof i29.ListValueFilterTemplateComponent, typeof i30.TextareaFilterTemplateComponent, typeof i31.AttachmentFilterTemplateComponent, typeof i32.ImageFilterTemplateComponent, typeof i33.ListFormRecordFilterTemplateComponent, typeof i34.GraphsComponent, typeof i35.GraphComponent, typeof i36.ImageFieldSelectorTemplateComponent, typeof i37.LabelFieldTemplateComponent, typeof i38.ImageSelectorFilterTemplateComponent, typeof i39.TmwImageDrawerComponent, typeof i40.ImageWithMarkersFieldTemplateComponent, typeof i41.TmwImageMarkerComponent, typeof i42.DynamicLoaderDirective, typeof i43.DbgetterComponent, typeof i44.TriggerCreatorComponent, typeof i45.TextTriggerTemplateComponent, typeof i46.NumericTriggerTemplateComponent, typeof i47.BooleanTriggerTemplateComponent, typeof i48.DateTriggerTemplateComponent, typeof i49.ListValueTriggerTemplateComponent, typeof i50.TextareaTriggerTemplateComponent, typeof i51.ListFormRecordTriggerTemplateComponent], [typeof i52.MaterialModule, typeof i53.FormsModule, typeof i54.CommonModule, typeof i53.ReactiveFormsModule, typeof i55.EqpTableModule, typeof i56.EqpAttachmentsModule, typeof i57.EqpSelectModule, typeof i58.EqpDatetimepickerModule, typeof i59.EqpFiltersModule, typeof i60.EqpImgDrawingModule, typeof i61.DragDropModule, typeof i62.EqpNumericModule, typeof i63.CanvasJSAngularStockChartsModule, typeof i64.TmwPickerModule], [typeof i1.EqpDynamicModuleComponent, typeof i2.EqpDynamicModuleConfiguratorComponent, typeof i61.DragDropModule, typeof i63.CanvasJSChart, typeof i63.CanvasJSStockChart, typeof i42.DynamicLoaderDirective, typeof i64.TmwPickerModule]>;
84
+ static ɵmod: i0.ɵɵNgModuleDeclaration<EqpDynamicModuleModule, [typeof i1.EqpDynamicModuleComponent, typeof i2.EqpDynamicModuleConfiguratorComponent, typeof i3.AddFormFieldComponent, typeof i4.TextFieldTemplateComponent, typeof i5.BooleanFieldTemplateComponent, typeof i6.DateFieldTemplateComponent, typeof i7.TextareaFieldTemplateComponent, typeof i8.NumericFieldTemplateComponent, typeof i9.ListValueFieldTemplateComponent, typeof i10.AttachmentFieldTemplateComponent, typeof i11.ImageFieldTemplateComponent, typeof i12.ListFormRecordComponent, typeof i13.ListViewFormRecordComponent, typeof i14.AddFormRecordComponent, typeof i15.ViewFormRecordComponent, typeof i16.DynamicModuleFieldComponent, typeof i17.DynamicModuleFieldFixComponent, typeof i18.SpinnerComponent, typeof i19.AddFormulaComponent, typeof i19.DialogDataExampleDialog, typeof i20.RepairFormFieldsComponent, typeof i21.SingleRecordComponent, typeof i22.FilterFormStatisticComponent, typeof i23.DynamicModuleFilterFixComponent, typeof i24.DynamicModuleTriggerFixComponent, typeof i25.TextFilterTemplateComponent, typeof i26.NumericFilterTemplateComponent, typeof i27.BooleanFilterTemplateComponent, typeof i28.DateFilterTemplateComponent, typeof i29.ListValueFilterTemplateComponent, typeof i30.TextareaFilterTemplateComponent, typeof i31.AttachmentFilterTemplateComponent, typeof i32.ImageFilterTemplateComponent, typeof i33.ListFormRecordFilterTemplateComponent, typeof i34.GraphsComponent, typeof i35.GraphComponent, typeof i36.ImageFieldSelectorTemplateComponent, typeof i37.LabelFieldTemplateComponent, typeof i38.ImageSelectorFilterTemplateComponent, typeof i39.TmwImageDrawerComponent, typeof i40.ImageWithMarkersFieldTemplateComponent, typeof i41.TmwImageMarkerComponent, typeof i42.DynamicLoaderDirective, typeof i43.DbgetterComponent, typeof i44.TriggerCreatorComponent, typeof i45.TextTriggerTemplateComponent, typeof i46.NumericTriggerTemplateComponent, typeof i47.BooleanTriggerTemplateComponent, typeof i48.DateTriggerTemplateComponent, typeof i49.ListValueTriggerTemplateComponent, typeof i50.TextareaTriggerTemplateComponent, typeof i51.ListFormRecordTriggerTemplateComponent, typeof i52.SpeechToTextDirective], [typeof i53.MaterialModule, typeof i54.FormsModule, typeof i55.CommonModule, typeof i54.ReactiveFormsModule, typeof i56.EqpTableModule, typeof i57.EqpAttachmentsModule, typeof i58.EqpSelectModule, typeof i59.EqpDatetimepickerModule, typeof i60.EqpFiltersModule, typeof i61.EqpImgDrawingModule, typeof i62.DragDropModule, typeof i63.EqpNumericModule, typeof i64.CanvasJSAngularStockChartsModule, typeof i65.TmwPickerModule], [typeof i1.EqpDynamicModuleComponent, typeof i2.EqpDynamicModuleConfiguratorComponent, typeof i62.DragDropModule, typeof i64.CanvasJSChart, typeof i64.CanvasJSStockChart, typeof i42.DynamicLoaderDirective, typeof i65.TmwPickerModule]>;
84
85
  static ɵinj: i0.ɵɵInjectorDeclaration<EqpDynamicModuleModule>;
85
86
  }
@@ -1,8 +1,11 @@
1
1
  import { HttpClient } from "@angular/common/http";
2
+ import { SpeechToTextDirective } from "../../lib/directives/speech-to-text/speech-to-text.directive";
2
3
  import * as i0 from "@angular/core";
3
4
  export declare class GlobalService {
4
5
  private http;
5
6
  static debugMode: boolean;
7
+ static isSpeechToTextStarted: boolean;
8
+ static speechDirective: SpeechToTextDirective;
6
9
  constructor(http: HttpClient);
7
10
  static debugLog(message: string, element?: any): void;
8
11
  static stringToValuePairs(valueString: string): {
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "author": {
5
5
  "name": "EqProject"
6
6
  },
7
- "version": "2.8.4",
7
+ "version": "2.8.6",
8
8
  "peerDependencies": {
9
9
  "@angular-material-components/datetime-picker": "^15.0.0",
10
10
  "@angular-material-components/moment-adapter": "^15.0.0",
package/public-api.d.ts CHANGED
@@ -50,3 +50,4 @@ export * from './lib/services/spinner.service';
50
50
  export * from './lib/services/utilityHelper.services';
51
51
  export * from './lib/models/graph.model';
52
52
  export * from './lib/directives/dynamic-loader/dynamic-loader.directive';
53
+ export * from './lib/directives/speech-to-text/speech-to-text.directive';
@@ -1,75 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class VoiceRecognitionService {
4
- constructor() {
5
- this.isStoppedSpeechRecog = false;
6
- this.text = '';
7
- this.transcript_arr = [];
8
- this.confidence_arr = [];
9
- this.isStarted = false; //<< this Flag to check if the user stop the service
10
- this.isStoppedAutomatically = true; //<< this Flag to check if the service stopped automaticically.
11
- }
12
- init() {
13
- try {
14
- this.recognition = new webkitSpeechRecognition();
15
- this.recognition.continuous = true;
16
- this.recognition.interimResults = true;
17
- this.recognition.lang = 'it-IT';
18
- this.recognition.addEventListener('result', (e) => {
19
- const transcript = Array.from(e.results)
20
- .map((result) => result[0])
21
- .map((result) => result.transcript)
22
- .join('');
23
- this.transcript_arr.push(transcript);
24
- this.tempWords = transcript;
25
- const confidence = Array.from(e.results)
26
- .map((result) => result[0])
27
- .map((result) => result.confidence)
28
- .join('');
29
- this.confidence_arr.push(confidence);
30
- });
31
- this.recognition.addEventListener('end', (condition) => {
32
- this.wordConcat();
33
- if (this.isStoppedAutomatically) {
34
- this.recognition.stop();
35
- this.recognition.start();
36
- this.isStoppedAutomatically = true;
37
- }
38
- });
39
- }
40
- catch (error) {
41
- //console.log(error);
42
- //this.domElement.style.display = "none";
43
- }
44
- }
45
- start() {
46
- if (!this.isStarted) {
47
- this.recognition.start();
48
- this.isStarted = true;
49
- }
50
- return true;
51
- }
52
- stop() {
53
- if (this.isStarted) {
54
- this.isStoppedAutomatically = false;
55
- this.wordConcat();
56
- this.recognition.stop();
57
- this.isStarted = false;
58
- this.transcript_arr = [];
59
- }
60
- return false;
61
- }
62
- wordConcat() {
63
- this.text = this.text + ' ' + this.tempWords + '.';
64
- this.tempWords = '';
65
- }
66
- }
67
- VoiceRecognitionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: VoiceRecognitionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
68
- VoiceRecognitionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: VoiceRecognitionService, providedIn: 'root' });
69
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: VoiceRecognitionService, decorators: [{
70
- type: Injectable,
71
- args: [{
72
- providedIn: 'root',
73
- }]
74
- }], ctorParameters: function () { return []; } });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9pY2UtcmVjb2duaXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VxcC1keW5hbWljLW1vZHVsZS9zcmMvbGliL3NlcnZpY2VzL3ZvaWNlLXJlY29nbml0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNM0MsTUFBTSxPQUFPLHVCQUF1QjtJQVNsQztRQVBBLHlCQUFvQixHQUFHLEtBQUssQ0FBQztRQUN0QixTQUFJLEdBQUcsRUFBRSxDQUFDO1FBRWpCLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLGNBQVMsR0FBRyxLQUFLLENBQUMsQ0FBQyxvREFBb0Q7UUFDdkUsMkJBQXNCLEdBQUcsSUFBSSxDQUFDLENBQUMsK0RBQStEO0lBQzlFLENBQUM7SUFFakIsSUFBSTtRQUVGLElBQUk7WUFDSixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksdUJBQXVCLEVBQUUsQ0FBQztZQUVqRCxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7WUFDbkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQztZQUVoQyxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxDQUFDLENBQU0sRUFBRSxFQUFFO2dCQUNyRCxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7cUJBQ3JDLEdBQUcsQ0FBQyxDQUFDLE1BQVcsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUMvQixHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7cUJBQ2xDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDWixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDckMsSUFBSSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUM7Z0JBRTVCLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztxQkFDckMsR0FBRyxDQUFDLENBQUMsTUFBVyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7cUJBQy9CLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztxQkFDbEMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNaLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3ZDLENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxTQUFjLEVBQUUsRUFBRTtnQkFDMUQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNsQixJQUFJLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtvQkFDL0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDekIsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQztpQkFDcEM7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUVKO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFFZCxxQkFBcUI7WUFFckIseUNBQXlDO1NBQzFDO0lBQ0QsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1NBQ3ZCO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsSUFBSTtRQUNGLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixJQUFJLENBQUMsc0JBQXNCLEdBQUcsS0FBSyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1NBQzFCO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUM7UUFDbkQsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQzs7cUhBekVVLHVCQUF1Qjt5SEFBdkIsdUJBQXVCLGNBRnRCLE1BQU07NEZBRVAsdUJBQXVCO2tCQUhuQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuZGVjbGFyZSB2YXIgd2Via2l0U3BlZWNoUmVjb2duaXRpb246IGFueTtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWb2ljZVJlY29nbml0aW9uU2VydmljZSB7XHJcbiAgcmVjb2duaXRpb247XHJcbiAgaXNTdG9wcGVkU3BlZWNoUmVjb2cgPSBmYWxzZTtcclxuICBwdWJsaWMgdGV4dCA9ICcnO1xyXG4gIHRlbXBXb3JkczogYW55O1xyXG4gIHRyYW5zY3JpcHRfYXJyID0gW107XHJcbiAgY29uZmlkZW5jZV9hcnIgPSBbXTtcclxuICBpc1N0YXJ0ZWQgPSBmYWxzZTsgLy88PCB0aGlzIEZsYWcgdG8gY2hlY2sgaWYgdGhlIHVzZXIgc3RvcCB0aGUgc2VydmljZVxyXG4gIGlzU3RvcHBlZEF1dG9tYXRpY2FsbHkgPSB0cnVlOyAvLzw8IHRoaXMgRmxhZyB0byBjaGVjayBpZiB0aGUgc2VydmljZSBzdG9wcGVkIGF1dG9tYXRpY2ljYWxseS5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBpbml0KCkge1xyXG5cclxuICAgIHRyeSB7XHJcbiAgICB0aGlzLnJlY29nbml0aW9uID0gbmV3IHdlYmtpdFNwZWVjaFJlY29nbml0aW9uKCk7XHJcblxyXG4gICAgdGhpcy5yZWNvZ25pdGlvbi5jb250aW51b3VzID0gdHJ1ZTtcclxuICAgIHRoaXMucmVjb2duaXRpb24uaW50ZXJpbVJlc3VsdHMgPSB0cnVlO1xyXG4gICAgdGhpcy5yZWNvZ25pdGlvbi5sYW5nID0gJ2l0LUlUJztcclxuXHJcbiAgICB0aGlzLnJlY29nbml0aW9uLmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc3VsdCcsIChlOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgdHJhbnNjcmlwdCA9IEFycmF5LmZyb20oZS5yZXN1bHRzKVxyXG4gICAgICAgIC5tYXAoKHJlc3VsdDogYW55KSA9PiByZXN1bHRbMF0pXHJcbiAgICAgICAgLm1hcCgocmVzdWx0KSA9PiByZXN1bHQudHJhbnNjcmlwdClcclxuICAgICAgICAuam9pbignJyk7XHJcbiAgICAgIHRoaXMudHJhbnNjcmlwdF9hcnIucHVzaCh0cmFuc2NyaXB0KTtcclxuICAgICAgdGhpcy50ZW1wV29yZHMgPSB0cmFuc2NyaXB0O1xyXG5cclxuICAgICAgY29uc3QgY29uZmlkZW5jZSA9IEFycmF5LmZyb20oZS5yZXN1bHRzKVxyXG4gICAgICAgIC5tYXAoKHJlc3VsdDogYW55KSA9PiByZXN1bHRbMF0pXHJcbiAgICAgICAgLm1hcCgocmVzdWx0KSA9PiByZXN1bHQuY29uZmlkZW5jZSlcclxuICAgICAgICAuam9pbignJyk7XHJcbiAgICAgIHRoaXMuY29uZmlkZW5jZV9hcnIucHVzaChjb25maWRlbmNlKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMucmVjb2duaXRpb24uYWRkRXZlbnRMaXN0ZW5lcignZW5kJywgKGNvbmRpdGlvbjogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMud29yZENvbmNhdCgpO1xyXG4gICAgICBpZiAodGhpcy5pc1N0b3BwZWRBdXRvbWF0aWNhbGx5KSB7XHJcbiAgICAgICAgdGhpcy5yZWNvZ25pdGlvbi5zdG9wKCk7XHJcbiAgICAgICAgdGhpcy5yZWNvZ25pdGlvbi5zdGFydCgpO1xyXG4gICAgICAgIHRoaXMuaXNTdG9wcGVkQXV0b21hdGljYWxseSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgXHJcbiAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgXHJcbiAgICAvL2NvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgICAgIFxyXG4gICAgLy90aGlzLmRvbUVsZW1lbnQuc3R5bGUuZGlzcGxheSA9IFwibm9uZVwiO1xyXG4gIH1cclxuICB9XHJcblxyXG4gIHN0YXJ0KCkge1xyXG4gICAgaWYgKCF0aGlzLmlzU3RhcnRlZCkge1xyXG4gICAgICB0aGlzLnJlY29nbml0aW9uLnN0YXJ0KCk7XHJcbiAgICAgIHRoaXMuaXNTdGFydGVkID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuICBzdG9wKCkge1xyXG4gICAgaWYgKHRoaXMuaXNTdGFydGVkKSB7XHJcbiAgICAgIHRoaXMuaXNTdG9wcGVkQXV0b21hdGljYWxseSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLndvcmRDb25jYXQoKTtcclxuICAgICAgdGhpcy5yZWNvZ25pdGlvbi5zdG9wKCk7XHJcbiAgICAgIHRoaXMuaXNTdGFydGVkID0gZmFsc2U7XHJcbiAgICAgIHRoaXMudHJhbnNjcmlwdF9hcnIgPSBbXTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHdvcmRDb25jYXQoKSB7XHJcbiAgICB0aGlzLnRleHQgPSB0aGlzLnRleHQgKyAnICcgKyB0aGlzLnRlbXBXb3JkcyArICcuJztcclxuICAgIHRoaXMudGVtcFdvcmRzID0gJyc7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,18 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- export declare class VoiceRecognitionService {
3
- recognition: any;
4
- isStoppedSpeechRecog: boolean;
5
- text: string;
6
- tempWords: any;
7
- transcript_arr: any[];
8
- confidence_arr: any[];
9
- isStarted: boolean;
10
- isStoppedAutomatically: boolean;
11
- constructor();
12
- init(): void;
13
- start(): boolean;
14
- stop(): boolean;
15
- wordConcat(): void;
16
- static ɵfac: i0.ɵɵFactoryDeclaration<VoiceRecognitionService, never>;
17
- static ɵprov: i0.ɵɵInjectableDeclaration<VoiceRecognitionService>;
18
- }