{"version":3,"sources":["src/common.speech/ServiceMessages/DetailedSpeechPhrase.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGpE,MAAM,WAAW,qBAAqB;IAClC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AAED,MAAM,WAAW,OAAO;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC;IAChB,YAAY,CAAC,EAAE,KAAK,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,KAAK;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,oBAAqB,YAAW,qBAAqB;IAC9D,OAAO,CAAC,wBAAwB,CAAwB;IAExD,OAAO;WAMO,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,oBAAoB;IAI9E,OAAO,CAAC,aAAa;IAmBd,MAAM,IAAI,MAAM;IASvB,IAAW,iBAAiB,IAAI,iBAAiB,CAEhD;IACD,IAAW,KAAK,IAAI,OAAO,EAAE,CAE5B;IACD,IAAW,QAAQ,IAAI,MAAM,CAE5B;IACD,IAAW,MAAM,IAAI,MAAM,CAE1B;IACD,IAAW,QAAQ,IAAI,MAAM,CAE5B;IACD,IAAW,2BAA2B,IAAI,MAAM,CAE/C;IACD,IAAW,IAAI,IAAI,MAAM,CAKxB;IACD,IAAW,SAAS,IAAI,MAAM,CAE7B;IACD,OAAO,CAAC,oBAAoB;CAO/B","file":"DetailedSpeechPhrase.d.ts","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT license.\r\n\r\nimport { IPrimaryLanguage, RecognitionStatus } from \"../Exports.js\";\r\n\r\n// speech.phrase for detailed\r\nexport interface IDetailedSpeechPhrase {\r\n    RecognitionStatus: RecognitionStatus;\r\n    NBest: IPhrase[];\r\n    Duration?: number;\r\n    Offset?: number;\r\n    PrimaryLanguage?: IPrimaryLanguage;\r\n    DisplayText?: string;\r\n    SpeakerId?: string;\r\n    [key: string]: any;\r\n}\r\n\r\nexport interface IPhrase {\r\n    Confidence?: number;\r\n    Lexical: string;\r\n    ITN: string;\r\n    MaskedITN: string;\r\n    Display?: string;\r\n    DisplayText?: string;\r\n    Words?: IWord[];\r\n    DisplayWords?: IWord[];\r\n}\r\n\r\nexport interface IWord {\r\n    Word: string;\r\n    Offset: number;\r\n    Duration: number;\r\n}\r\n\r\nexport class DetailedSpeechPhrase implements IDetailedSpeechPhrase {\r\n    private privDetailedSpeechPhrase: IDetailedSpeechPhrase;\r\n\r\n    private constructor(json: string, baseOffset: number) {\r\n        this.privDetailedSpeechPhrase = JSON.parse(json) as IDetailedSpeechPhrase;\r\n        this.privDetailedSpeechPhrase.RecognitionStatus = this.mapRecognitionStatus(this.privDetailedSpeechPhrase.RecognitionStatus);\r\n        this.updateOffsets(baseOffset);\r\n    }\r\n\r\n    public static fromJSON(json: string, baseOffset: number): DetailedSpeechPhrase {\r\n        return new DetailedSpeechPhrase(json, baseOffset);\r\n    }\r\n\r\n    private updateOffsets(baseOffset: number): void {\r\n        this.privDetailedSpeechPhrase.Offset += baseOffset;\r\n\r\n        if (!!this.privDetailedSpeechPhrase.NBest) {\r\n            for (const phrase of this.privDetailedSpeechPhrase.NBest) {\r\n                if (!!phrase.Words) {\r\n                    for (const word of phrase.Words) {\r\n                        word.Offset += baseOffset;\r\n                    }\r\n                }\r\n                if (!!phrase.DisplayWords) {\r\n                    for (const word of phrase.DisplayWords) {\r\n                        word.Offset += baseOffset;\r\n                    }\r\n                }\r\n            }\r\n        }\r\n    }\r\n\r\n    public asJson(): string {\r\n        const jsonObj = { ...this.privDetailedSpeechPhrase };\r\n        // Convert the enum value to its string representation for serialization purposes.\r\n        return JSON.stringify({\r\n            ...jsonObj,\r\n            RecognitionStatus: RecognitionStatus[jsonObj.RecognitionStatus] as keyof typeof RecognitionStatus\r\n        });\r\n    }\r\n\r\n    public get RecognitionStatus(): RecognitionStatus {\r\n        return this.privDetailedSpeechPhrase.RecognitionStatus;\r\n    }\r\n    public get NBest(): IPhrase[] {\r\n        return this.privDetailedSpeechPhrase.NBest;\r\n    }\r\n    public get Duration(): number {\r\n        return this.privDetailedSpeechPhrase.Duration;\r\n    }\r\n    public get Offset(): number {\r\n        return this.privDetailedSpeechPhrase.Offset;\r\n    }\r\n    public get Language(): string {\r\n        return this.privDetailedSpeechPhrase.PrimaryLanguage === undefined ? undefined : this.privDetailedSpeechPhrase.PrimaryLanguage.Language;\r\n    }\r\n    public get LanguageDetectionConfidence(): string {\r\n        return this.privDetailedSpeechPhrase.PrimaryLanguage === undefined ? undefined : this.privDetailedSpeechPhrase.PrimaryLanguage.Confidence;\r\n    }\r\n    public get Text(): string {\r\n        if (!!this.privDetailedSpeechPhrase.NBest && this.privDetailedSpeechPhrase.NBest[0]) {\r\n            return this.privDetailedSpeechPhrase.NBest[0].Display || this.privDetailedSpeechPhrase.NBest[0].DisplayText;\r\n        }\r\n        return this.privDetailedSpeechPhrase.DisplayText;\r\n    }\r\n    public get SpeakerId(): string {\r\n        return this.privDetailedSpeechPhrase.SpeakerId;\r\n    }\r\n    private mapRecognitionStatus(status: any): RecognitionStatus {\r\n        if (typeof status === \"string\") {\r\n            return RecognitionStatus[status as keyof typeof RecognitionStatus];\r\n        } else if (typeof status === \"number\") {\r\n            return status;\r\n        }\r\n    }\r\n}\r\n"]}