{"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.\n// Licensed under the MIT license.\n\nimport { IPrimaryLanguage, RecognitionStatus } from \"../Exports.js\";\n\n// speech.phrase for detailed\nexport interface IDetailedSpeechPhrase {\n    RecognitionStatus: RecognitionStatus;\n    NBest: IPhrase[];\n    Duration?: number;\n    Offset?: number;\n    PrimaryLanguage?: IPrimaryLanguage;\n    DisplayText?: string;\n    SpeakerId?: string;\n    [key: string]: any;\n}\n\nexport interface IPhrase {\n    Confidence?: number;\n    Lexical: string;\n    ITN: string;\n    MaskedITN: string;\n    Display?: string;\n    DisplayText?: string;\n    Words?: IWord[];\n    DisplayWords?: IWord[];\n}\n\nexport interface IWord {\n    Word: string;\n    Offset: number;\n    Duration: number;\n}\n\nexport class DetailedSpeechPhrase implements IDetailedSpeechPhrase {\n    private privDetailedSpeechPhrase: IDetailedSpeechPhrase;\n\n    private constructor(json: string, baseOffset: number) {\n        this.privDetailedSpeechPhrase = JSON.parse(json) as IDetailedSpeechPhrase;\n        this.privDetailedSpeechPhrase.RecognitionStatus = this.mapRecognitionStatus(this.privDetailedSpeechPhrase.RecognitionStatus);\n        this.updateOffsets(baseOffset);\n    }\n\n    public static fromJSON(json: string, baseOffset: number): DetailedSpeechPhrase {\n        return new DetailedSpeechPhrase(json, baseOffset);\n    }\n\n    private updateOffsets(baseOffset: number): void {\n        this.privDetailedSpeechPhrase.Offset += baseOffset;\n\n        if (!!this.privDetailedSpeechPhrase.NBest) {\n            for (const phrase of this.privDetailedSpeechPhrase.NBest) {\n                if (!!phrase.Words) {\n                    for (const word of phrase.Words) {\n                        word.Offset += baseOffset;\n                    }\n                }\n                if (!!phrase.DisplayWords) {\n                    for (const word of phrase.DisplayWords) {\n                        word.Offset += baseOffset;\n                    }\n                }\n            }\n        }\n    }\n\n    public asJson(): string {\n        const jsonObj = { ...this.privDetailedSpeechPhrase };\n        // Convert the enum value to its string representation for serialization purposes.\n        return JSON.stringify({\n            ...jsonObj,\n            RecognitionStatus: RecognitionStatus[jsonObj.RecognitionStatus] as keyof typeof RecognitionStatus\n        });\n    }\n\n    public get RecognitionStatus(): RecognitionStatus {\n        return this.privDetailedSpeechPhrase.RecognitionStatus;\n    }\n    public get NBest(): IPhrase[] {\n        return this.privDetailedSpeechPhrase.NBest;\n    }\n    public get Duration(): number {\n        return this.privDetailedSpeechPhrase.Duration;\n    }\n    public get Offset(): number {\n        return this.privDetailedSpeechPhrase.Offset;\n    }\n    public get Language(): string {\n        return this.privDetailedSpeechPhrase.PrimaryLanguage === undefined ? undefined : this.privDetailedSpeechPhrase.PrimaryLanguage.Language;\n    }\n    public get LanguageDetectionConfidence(): string {\n        return this.privDetailedSpeechPhrase.PrimaryLanguage === undefined ? undefined : this.privDetailedSpeechPhrase.PrimaryLanguage.Confidence;\n    }\n    public get Text(): string {\n        if (!!this.privDetailedSpeechPhrase.NBest && this.privDetailedSpeechPhrase.NBest[0]) {\n            return this.privDetailedSpeechPhrase.NBest[0].Display || this.privDetailedSpeechPhrase.NBest[0].DisplayText;\n        }\n        return this.privDetailedSpeechPhrase.DisplayText;\n    }\n    public get SpeakerId(): string {\n        return this.privDetailedSpeechPhrase.SpeakerId;\n    }\n    private mapRecognitionStatus(status: any): RecognitionStatus {\n        if (typeof status === \"string\") {\n            return RecognitionStatus[status as keyof typeof RecognitionStatus];\n        } else if (typeof status === \"number\") {\n            return status;\n        }\n    }\n}\n"]}