{"version":3,"sources":["src/sdk/AutoDetectSourceLanguageConfig.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,kBAAkB,EAElB,oBAAoB,EACvB,MAAM,WAAW,CAAC;AAEnB;;;;GAIG;AACH,qBAAa,8BAA8B;IACvC,OAAO,CAAC,cAAc,CAAqB;IAE3C,OAAO;IAIP;;;;;;;;OAQG;WACW,aAAa,IAAI,8BAA8B;IAM7D;;;;;;;OAOG;WACW,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,8BAA8B;IAOhF;;;;;;;OAOG;WACW,yBAAyB,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,8BAA8B;IAkBxG;;;;;;OAMG;IACH,IAAW,UAAU,IAAI,kBAAkB,CAE1C;CAEJ","file":"AutoDetectSourceLanguageConfig.d.ts","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT license.\n\nimport { AutoDetectSourceLanguagesOpenRangeOptionName } from \"../common.speech/Exports\";\nimport {Contracts} from \"./Contracts\";\nimport {\n    PropertyCollection,\n    PropertyId,\n    SourceLanguageConfig,\n} from \"./Exports\";\n\n/**\n * Language auto detect configuration.\n * @class AutoDetectSourceLanguageConfig\n * Added in version 1.13.0.\n */\nexport class AutoDetectSourceLanguageConfig {\n    private privProperties: PropertyCollection;\n\n    private constructor() {\n        this.privProperties = new PropertyCollection();\n    }\n\n    /**\n     * @member AutoDetectSourceLanguageConfig.fromOpenRange\n     * @function\n     * @public\n     * Only [[SpeechSynthesizer]] supports source language auto detection from open range,\n     * for [[Recognizer]], please use AutoDetectSourceLanguageConfig with specific source languages.\n     * @return {AutoDetectSourceLanguageConfig} Instance of AutoDetectSourceLanguageConfig\n     * @summary Creates an instance of the AutoDetectSourceLanguageConfig with open range.\n     */\n    public static fromOpenRange(): AutoDetectSourceLanguageConfig {\n        const config = new AutoDetectSourceLanguageConfig();\n        config.properties.setProperty(PropertyId.SpeechServiceConnection_AutoDetectSourceLanguages, AutoDetectSourceLanguagesOpenRangeOptionName);\n        return config;\n    }\n\n    /**\n     * @member AutoDetectSourceLanguageConfig.fromLanguages\n     * @function\n     * @public\n     * @param {string[]} languages Comma-separated string of languages (eg. \"en-US,fr-FR\") to populate properties of config.\n     * @return {AutoDetectSourceLanguageConfig} Instance of AutoDetectSourceLanguageConfig\n     * @summary Creates an instance of the AutoDetectSourceLanguageConfig with given languages.\n     */\n    public static fromLanguages(languages: string[]): AutoDetectSourceLanguageConfig {\n        Contracts.throwIfArrayEmptyOrWhitespace(languages, \"languages\");\n        const config = new AutoDetectSourceLanguageConfig();\n        config.properties.setProperty(PropertyId.SpeechServiceConnection_AutoDetectSourceLanguages, languages.join());\n        return config;\n    }\n\n    /**\n     * @member AutoDetectSourceLanguageConfig.fromSourceLanguageConfigs\n     * @function\n     * @public\n     * @param {SourceLanguageConfig[]} configs SourceLanguageConfigs to populate properties of config.\n     * @return {AutoDetectSourceLanguageConfig} Instance of AutoDetectSourceLanguageConfig\n     * @summary Creates an instance of the AutoDetectSourceLanguageConfig with given SourceLanguageConfigs.\n     */\n    public static fromSourceLanguageConfigs(configs: SourceLanguageConfig[]): AutoDetectSourceLanguageConfig {\n        if (configs.length < 1) {\n            throw new Error(\"Expected non-empty SourceLanguageConfig array.\");\n        }\n        const autoConfig = new AutoDetectSourceLanguageConfig();\n        const langs: string[] = [];\n        configs.forEach((config: SourceLanguageConfig) => {\n            langs.push(config.language);\n            if (config.endpointId !== undefined && config.endpointId !== \"\") {\n                const customProperty = config.language + PropertyId.SpeechServiceConnection_EndpointId.toString();\n                autoConfig.properties.setProperty(customProperty, config.endpointId);\n            }\n        });\n        autoConfig.properties.setProperty(PropertyId.SpeechServiceConnection_AutoDetectSourceLanguages, langs.join());\n\n        return autoConfig;\n    }\n\n    /**\n     * @member AutoDetectSourceLanguageConfig.prototype.properties\n     * @function\n     * @public\n     * @return {PropertyCollection} Properties of the config.\n     * @summary Gets a auto detected language config properties\n     */\n    public get properties(): PropertyCollection {\n        return this.privProperties;\n    }\n\n}\n"]}