{"version":3,"sources":["src/common.speech/ServiceMessages/TranslationPhrase.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAInF,MAAM,WAAW,kBAAkB;IAC/B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,gBAAgB,CAAC;CACtC;AAED,qBAAa,iBAAkB,YAAW,kBAAkB;IACxD,OAAO,CAAC,qBAAqB,CAAqB;IAElD,OAAO;WASO,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,iBAAiB;WAI7D,uBAAuB,CAAC,mBAAmB,EAAE;QAAE,YAAY,EAAE,kBAAkB,CAAA;KAAE,EAAE,UAAU,EAAE,MAAM,GAAG,iBAAiB;IASvI,IAAW,iBAAiB,IAAI,iBAAiB,CAEhD;IAED,IAAW,MAAM,IAAI,MAAM,CAE1B;IAED,IAAW,QAAQ,IAAI,MAAM,CAE5B;IAED,IAAW,IAAI,IAAI,MAAM,GAAG,SAAS,CAEpC;IAED,IAAW,QAAQ,IAAI,MAAM,GAAG,SAAS,CAExC;IAED,IAAW,UAAU,IAAI,MAAM,GAAG,SAAS,CAE1C;IAED,IAAW,WAAW,IAAI,aAAa,GAAG,SAAS,CAElD;IAEM,MAAM,IAAI,MAAM;IAoBvB,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,oBAAoB;CAO/B","file":"TranslationPhrase.d.ts","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT license.\n\nimport { Contracts } from \"../../sdk/Contracts.js\";\nimport { IPrimaryLanguage, ITranslations, RecognitionStatus } from \"../Exports.js\";\nimport { TranslationStatus } from \"../TranslationStatus.js\";\n\n// translation.phrase\nexport interface ITranslationPhrase {\n    RecognitionStatus: RecognitionStatus;\n    Offset: number;\n    Duration: number;\n    Translation?: ITranslations;\n    Text?: string;\n    DisplayText?: string;\n    PrimaryLanguage?: IPrimaryLanguage;\n}\n\nexport class TranslationPhrase implements ITranslationPhrase {\n    private privTranslationPhrase: ITranslationPhrase;\n\n    private constructor(phrase: ITranslationPhrase, baseOffset: number) {\n        this.privTranslationPhrase = phrase;\n        this.privTranslationPhrase.Offset += baseOffset;\n        this.privTranslationPhrase.RecognitionStatus = this.mapRecognitionStatus(this.privTranslationPhrase.RecognitionStatus);\n        if (this.privTranslationPhrase.Translation !== undefined) {\n            this.privTranslationPhrase.Translation.TranslationStatus = this.mapTranslationStatus(this.privTranslationPhrase.Translation.TranslationStatus);\n        }\n    }\n\n    public static fromJSON(json: string, baseOffset: number): TranslationPhrase {\n        return new TranslationPhrase(JSON.parse(json) as ITranslationPhrase, baseOffset);\n    }\n\n    public static fromTranslationResponse(translationResponse: { SpeechPhrase: ITranslationPhrase }, baseOffset: number): TranslationPhrase {\n        Contracts.throwIfNullOrUndefined(translationResponse, \"translationResponse\");\n        const phrase: ITranslationPhrase = translationResponse.SpeechPhrase;\n        translationResponse.SpeechPhrase = undefined;\n        phrase.Translation = (translationResponse as unknown as ITranslations);\n        phrase.Text = phrase.DisplayText;\n        return new TranslationPhrase(phrase, baseOffset);\n    }\n\n    public get RecognitionStatus(): RecognitionStatus {\n        return this.privTranslationPhrase.RecognitionStatus;\n    }\n\n    public get Offset(): number {\n        return this.privTranslationPhrase.Offset;\n    }\n\n    public get Duration(): number {\n        return this.privTranslationPhrase.Duration;\n    }\n\n    public get Text(): string | undefined {\n        return this.privTranslationPhrase.Text;\n    }\n\n    public get Language(): string | undefined {\n        return this.privTranslationPhrase.PrimaryLanguage?.Language;\n    }\n\n    public get Confidence(): string | undefined {\n        return this.privTranslationPhrase.PrimaryLanguage?.Confidence;\n    }\n\n    public get Translation(): ITranslations | undefined {\n        return this.privTranslationPhrase.Translation;\n    }\n\n    public asJson(): string {\n        const jsonObj = { ...this.privTranslationPhrase };\n\n        // Convert the enum values to their string representations for serialization\n        const serializedObj: any = {\n            ...jsonObj,\n            RecognitionStatus: RecognitionStatus[jsonObj.RecognitionStatus]\n        };\n\n        if (jsonObj.Translation) {\n            // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n            serializedObj.Translation = {\n                ...jsonObj.Translation,\n                TranslationStatus: TranslationStatus[jsonObj.Translation.TranslationStatus]\n            };\n        }\n\n        return JSON.stringify(serializedObj);\n    }\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    private mapTranslationStatus(status: any): TranslationStatus {\n        if (typeof status === \"string\") {\n            return TranslationStatus[status as keyof typeof TranslationStatus];\n        } else if (typeof status === \"number\") {\n            return status;\n        }\n    }\n}\n"]}