{"version":3,"file":"angular-speech-to-text.mjs","sources":["../../../projects/angular-speech-to-text/src/lib/angular-speech-to-text.service.ts","../../../projects/angular-speech-to-text/src/lib/angular-speech-to-text.component.ts","../../../projects/angular-speech-to-text/src/lib/angular-speech-to-text.module.ts","../../../projects/angular-speech-to-text/src/public-api.ts","../../../projects/angular-speech-to-text/src/angular-speech-to-text.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-expressions */\r\n/* eslint-disable object-shorthand */\r\n/* eslint-disable @typescript-eslint/naming-convention */\r\nimport { Injectable, NgZone } from '@angular/core';\r\nimport { Platform } from '@ionic/angular';\r\nimport { rejects } from 'assert';\r\nimport { Subject } from 'rxjs';\r\n\r\ndeclare const cordova: any;\r\nexport interface IResultEvent {\r\n  result: any;\r\n}\r\n\r\nexport interface ISubscriber {\r\n  id: string;\r\n  subscriber: any;\r\n}\r\n\r\n@Injectable()\r\nexport class SpeechToText {\r\n\r\n  private recognizerSubject = new Subject<IResultEvent>();\r\n  private recognizerSubscribes: any = {};\r\n\r\n  private downloadSubscriber: any = {};\r\n  private downloadSubject = new Subject<any>();\r\n\r\n  private syntSubscribes: any = {};\r\n  private synthSubject = new Subject<any>();\r\n  private nativeCallSubscribes: any = {};\r\n  private nativeCallSubject = new Subject<any>();\r\n\r\n  constructor(\r\n    private platform: Platform,\r\n    private ngZone: NgZone\r\n  ) { }\r\n\r\n  public download(locale: string): Promise<any> {\r\n    return new Promise((resolve: any, reject: any) => {\r\n      if (!this.platform.is('cordova')) {\r\n        const msg = 'Speech-to-text plugin not available';\r\n        reject(msg);\r\n      }\r\n      if (this.platform.is('cordova')) {\r\n        cordova.plugins.SpeechToText.download((value: any) => {\r\n          this.downloadSubject.next(value);\r\n          resolve(value);\r\n        }, (err: any) => {\r\n          reject(err);\r\n        }, locale);\r\n      }\r\n    });\r\n  }\r\n\r\n  public getDownloadedLanguages(): Promise<any> {\r\n    return new Promise((resolve: any, reject: any) => {\r\n      if (!this.platform.is('cordova')) {\r\n        const msg = 'Speech-to-text plugin not available';\r\n        reject(msg);\r\n      }\r\n      if (this.platform.is('cordova')) {\r\n        cordova.plugins.SpeechToText.getDownloadedLanguages((value: any) => {\r\n          resolve(value);\r\n        }, (err: any) => {\r\n          reject(err);\r\n        });\r\n      }\r\n    });\r\n  }\r\n\r\n  public getAvailableLanguages(): Promise<any> {\r\n    return new Promise((resolve: any, reject: any) => {\r\n      if (!this.platform.is('cordova')) {\r\n        const msg = 'Speech-to-text plugin not available';\r\n        reject(msg);\r\n      }\r\n      if (this.platform.is('cordova')) {\r\n        cordova.plugins.SpeechToText.getAvailableLanguages((value: any) => {\r\n          resolve(value);\r\n        }, (err: any) => {\r\n          reject(err);\r\n        });\r\n      }\r\n    });\r\n  }\r\n\r\n  public enableRecognizer(locale?: string): Promise<any> {\r\n    return new Promise((resolve: any, reject: any) => {\r\n      if (!this.platform.is('cordova')) {\r\n        const msg = 'Speech-to-text plugin not available';\r\n        reject(msg);\r\n      }\r\n      if (this.platform.is('cordova')) {\r\n        cordova.plugins.SpeechToText.enable((value: any) => {\r\n          resolve(value);\r\n        }, (err: any) => {\r\n          reject(err);\r\n        },\r\n          locale);\r\n      }\r\n    });\r\n  }\r\n\r\n  public startRecognizer(): Promise<any> {\r\n    return new Promise((resolve: any, reject: any) => {\r\n      if (!this.platform.is('cordova')) {\r\n        const msg = 'Speech-to-text plugin not available';\r\n        reject(msg);\r\n      }\r\n      cordova.plugins.SpeechToText.start((value: any) => {\r\n        this.recognizerSubject.next(value);\r\n        resolve(value);\r\n      }, (err: any) => {\r\n        reject(err);\r\n      });\r\n    });\r\n  }\r\n\r\n  public stopRecognizer(): Promise<any> {\r\n    return new Promise((resolve: any, reject: any) => {\r\n      if (!this.platform.is('cordova')) {\r\n        const msg = 'Speech-to-text plugin not available';\r\n        reject(msg);\r\n      }\r\n      if (this.platform.is('cordova')) {\r\n        cordova.plugins.SpeechToText.stop((value: any) => {\r\n          resolve(value);\r\n        }, (err: any) => {\r\n          reject(err);\r\n        });\r\n      }\r\n    });\r\n  }\r\n\r\n  public isPlaying(): Promise<any> {\r\n    return new Promise((resolve: any, reject: any) => {\r\n      if (!this.platform.is('cordova')) {\r\n        const msg = 'Speech-to-text plugin not available';\r\n        reject(msg);\r\n      }\r\n      if (this.platform.is('cordova')) {\r\n        cordova.plugins.SpeechToText.isPlaying((value: any) => {\r\n          resolve(value);\r\n        }, (err: any) => {\r\n          reject(err);\r\n        });\r\n      }\r\n    });\r\n  }\r\n\r\n  public isEnable(): Promise<any> {\r\n    return new Promise((resolve: any, reject: any) => {\r\n      if (!this.platform.is('cordova')) {\r\n        const msg = 'Speech-to-text plugin not available';\r\n        reject(msg);\r\n      }\r\n      if (this.platform.is('cordova')) {\r\n        cordova.plugins.SpeechToText.isEnable((value: any) => {\r\n          resolve(value);\r\n        }, (err: any) => {\r\n          reject(err);\r\n        });\r\n      }\r\n    });\r\n  }\r\n\r\n  public synthText(text: string, flush?: boolean): Promise<any> {\r\n    return new Promise((resolve: any, reject: any) => {\r\n      if (!this.platform.is('cordova')) {\r\n        const msg = 'Speech-to-text plugin not available';\r\n        reject(msg);\r\n      }\r\n      if (this.platform.is('cordova')) {\r\n        cordova.plugins.SpeechToText.speechText((value: any) => {\r\n          this.synthSubject.next(value);\r\n          resolve(value);\r\n        }, (err: any) => {\r\n          reject(err);\r\n        },\r\n          text, flush);\r\n      }\r\n    });\r\n  }\r\n\r\n  public getSynthVoices(): Promise<any> {\r\n    return new Promise((resolve: any, reject: any) => {\r\n      if (!this.platform.is('cordova')) {\r\n        const msg = 'Speech-to-text plugin not available';\r\n        reject(msg);\r\n      }\r\n      if (this.platform.is('cordova')) {\r\n        cordova.plugins.SpeechToText.getSpeechVoices((value: any) => {\r\n          resolve(value);\r\n        }, (err: any) => {\r\n          reject(err);\r\n        });\r\n      }\r\n    });\r\n  }\r\n\r\n  public setSynthVolume(vol: number): Promise<any> {\r\n    return new Promise((resolve: any, reject: any) => {\r\n      if (!this.platform.is('cordova')) {\r\n        const msg = 'Speech-to-text plugin not available';\r\n        reject(msg);\r\n      }\r\n      if (this.platform.is('cordova')) {\r\n        cordova.plugins.SpeechToText.setSpeechVolume((value: any) => {\r\n          resolve(value);\r\n        }, (err: any) => {\r\n          reject(err);\r\n        },\r\n          vol);\r\n      }\r\n    });\r\n  }\r\n\r\n  public setSynthVoice(name: string): Promise<any> {\r\n    return new Promise((resolve: any, reject: any) => {\r\n      if (!this.platform.is('cordova')) {\r\n        const msg = 'Speech-to-text plugin not available';\r\n        reject(msg);\r\n      }\r\n      if (this.platform.is('cordova')) {\r\n        cordova.plugins.SpeechToText.setSpeechVoice((value: any) => {\r\n          resolve(value);\r\n        }, (err: any) => {\r\n          reject(err);\r\n        },\r\n          name);\r\n      }\r\n    });\r\n  }\r\n\r\n  public playSound(path: string, volume: number): Promise<any> {\r\n    return new Promise((resolve: any, reject: any) => {\r\n      if (!this.platform.is('cordova')) {\r\n        const msg = 'Speech-to-text plugin not available';\r\n        reject(msg);\r\n      }\r\n      if (this.platform.is('cordova')) {\r\n        cordova.plugins.SpeechToText.playSound((value: any) => {\r\n          resolve(value);\r\n        }, (err: any) => {\r\n          reject(err);\r\n        },\r\n          path, volume);\r\n      }\r\n    });\r\n  }\r\n\r\n  public initAudioCapture(): Promise<any> {\r\n    return new Promise((resolve: any, reject: any) => {\r\n      if (!this.platform.is('cordova')) {\r\n        const msg = 'Speech-to-text plugin not available';\r\n        reject(msg);\r\n      }\r\n      cordova.plugins.SpeechToText.initAudioCapture((value: any) => {\r\n        this.recognizerSubject.next(value);\r\n        resolve(value);\r\n      }, (err: any) => {\r\n        reject(err);\r\n      });\r\n    });\r\n  }\r\n\r\n  public stopAudioCapture(): Promise<any> {\r\n    return new Promise((resolve: any, reject: any) => {\r\n      if (!this.platform.is('cordova')) {\r\n        const msg = 'Speech-to-text plugin not available';\r\n        reject(msg);\r\n      }\r\n      if (this.platform.is('cordova')) {\r\n        cordova.plugins.SpeechToText.stopAudioCapture((value: any) => {\r\n          resolve(value);\r\n        }, (err: any) => {\r\n          reject(err);\r\n        });\r\n      }\r\n    });\r\n  }\r\n\r\n  //****************************** EVENTS *****************************/\r\n  public subscrbeToRecognizer(id: string, callbackFunction: any, errorFunction: any): void {\r\n    try {\r\n      const element = this.recognizerSubscribes[id];\r\n      if (!element || (element.subscriber && element.subscriber.closed)) {\r\n        const subscriber = this.recognizerSubject.asObservable().subscribe((value: any) => {\r\n          this.ngZone.run(() => {\r\n            callbackFunction(value);\r\n          });\r\n        });\r\n        this.recognizerSubscribes[id] = {\r\n          key: id,\r\n          subscriber: subscriber\r\n        };\r\n      }\r\n    } catch (err) {\r\n      errorFunction(err);\r\n    }\r\n  }\r\n\r\n  public unsubscribeToRecognizer(id: string): Promise<any> {\r\n    return new Promise((resolve: any, reject: any) => {\r\n      try {\r\n        const element = this.recognizerSubscribes[id];\r\n        if (element && element.subscriber && !element.subscriber.closed) {\r\n          element.subscriber.unsubscribe();\r\n        };\r\n        if (element) {\r\n          delete this.recognizerSubscribes[id];\r\n          resolve('subscribe ok');\r\n        }\r\n      } catch (err) {\r\n        reject(err);\r\n      }\r\n    });\r\n  }\r\n\r\n  public subscrbeToSyntesizer(id: string, callbackFunction: any, errorFunction: any): void {\r\n    try {\r\n      const element = this.syntSubscribes[id];\r\n      if (!element || (element.subscriber && element.subscriber.closed)) {\r\n        const subscriber = this.synthSubject.asObservable().subscribe((value: any) => {\r\n          this.ngZone.run(() => {\r\n            callbackFunction(value);\r\n          });\r\n        });\r\n        this.syntSubscribes[id] = {\r\n          key: id,\r\n          subscriber: subscriber\r\n        };\r\n      }\r\n    } catch (err) {\r\n      errorFunction(err);\r\n    }\r\n  }\r\n\r\n  public unsubscribeToSyntesizer(id: string): Promise<any> {\r\n    return new Promise((resolve: any, reject: any) => {\r\n      try {\r\n        const element = this.syntSubscribes[id];\r\n        if (element && element.subscriber && !element.subscriber.closed) {\r\n          this.syntSubscribes[id].subscriber.unsubscribe();\r\n        };\r\n        if (this.syntSubscribes[id]) {\r\n          delete this.syntSubscribes[id];\r\n        }\r\n        resolve('subscribe ok');\r\n      } catch (err) {\r\n        reject(err);\r\n      }\r\n    });\r\n  }\r\n\r\n  public subscrbeToDownload(id: string, callbackFunction: any, errorFunction: any): Promise<any> {\r\n    return new Promise((resolve) => {\r\n      try {\r\n        if (!this.downloadSubscriber[id]) {\r\n          this.downloadSubscriber[id] = this.downloadSubject.asObservable().subscribe((value: any) => {\r\n            this.ngZone.run(() => {\r\n              callbackFunction(value);\r\n            });\r\n          });\r\n          resolve('subscribe ok');\r\n        } else {\r\n          resolve('parameter id already in use');\r\n        }\r\n      } catch (err) {\r\n        errorFunction(err);\r\n      }\r\n    });\r\n  }\r\n\r\n  public unsubscribeToDownload(id: string): Promise<any> {\r\n    return new Promise((resolve, reject) => {\r\n      try {\r\n        if (this.downloadSubscriber[id]) {\r\n          !this.downloadSubscriber[id] || this.downloadSubscriber[id].unsubscribe();\r\n          delete this.downloadSubscriber[id];\r\n        };\r\n        resolve('subscribe ok');\r\n      } catch (err) {\r\n        reject(err);\r\n      }\r\n    });\r\n  }\r\n\r\n\r\n  public subscrbeToNativeCall(id: string, callbackFunction: any, errorFunction: any): void {\r\n    try {\r\n      const element = this.nativeCallSubscribes[id];\r\n      if (!element || (element.subscriber && element.subscriber.closed)) {\r\n        const subscriber = this.nativeCallSubject.asObservable().subscribe((value: any) => {\r\n          this.ngZone.run(() => {\r\n            callbackFunction(value);\r\n          });\r\n        });\r\n        this.nativeCallSubscribes[id] = {\r\n          key: id,\r\n          subscriber: subscriber\r\n        };\r\n      }\r\n    } catch (err) {\r\n      errorFunction(err);\r\n    }\r\n  }\r\n\r\n  public unsubscribeToNativeCall(id: string): Promise<any> {\r\n    return new Promise((resolve: any, reject: any) => {\r\n      try {\r\n        const element = this.nativeCallSubscribes[id];\r\n        if (element && element.subscriber && !element.subscriber.closed) {\r\n          element.subscriber.unsubscribe();\r\n        };\r\n        if (element) {\r\n          delete this.nativeCallSubscribes[id];\r\n          resolve('subscribe ok');\r\n        }\r\n      } catch (err) {\r\n        reject(err);\r\n      }\r\n    });\r\n  }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'app-angular-speech-to-text',\r\n  template: ``,\r\n  styles: [\r\n  ]\r\n})\r\nexport class AngularSpeechToTextComponent implements OnInit {\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { AngularSpeechToTextComponent } from './angular-speech-to-text.component';\r\n\r\n\r\n\r\n@NgModule({\r\n  declarations: [AngularSpeechToTextComponent],\r\n  imports: [],\r\n  exports: [AngularSpeechToTextComponent]\r\n})\r\nexport class AngularSpeechToTextModule { }\r\n","/*\r\n * Public API Surface of angular-speech-to-text\r\n */\r\n\r\nexport * from './lib/angular-speech-to-text.service';\r\nexport * from './lib/angular-speech-to-text.component';\r\nexport * from './lib/angular-speech-to-text.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}