{"version":3,"sources":["src/common.speech/DynamicGrammarBuilder.ts"],"names":[],"mappings":"AAGA,OAAO,EACH,eAAe,EAElB,MAAM,WAAW,CAAC;AAEnB;;;GAGG;AACH,qBAAa,qBAAqB;IAE9B,OAAO,CAAC,WAAW,CAAW;IAC9B,OAAO,CAAC,YAAY,CAAW;IAIxB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAa1C,YAAY,IAAI,IAAI;IAKpB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAarD,aAAa,IAAI,IAAI;IAOrB,qBAAqB,IAAI,eAAe;CAsBlD","file":"DynamicGrammarBuilder.d.ts","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT license.\n\nimport {\n    IDynamicGrammar,\n    IDynamicGrammarGeneric,\n} from \"./Exports\";\n\n/**\n * Responsible for building the object to be sent to the speech service to support dynamic grammars.\n * @class DynamicGrammarBuilder\n */\nexport class DynamicGrammarBuilder {\n\n    private privPhrases: string[];\n    private privGrammars: string[];\n\n    // Adds one more reference phrases to the dynamic grammar to send.\n    // All added phrases are generic phrases.\n    public addPhrase(phrase: string | string[]): void {\n        if (!this.privPhrases) {\n            this.privPhrases = [];\n        }\n\n        if (phrase instanceof Array) {\n            this.privPhrases = this.privPhrases.concat(phrase as string[]);\n        } else {\n            this.privPhrases.push(phrase as string);\n        }\n    }\n\n    // Clears all phrases stored in the current object.\n    public clearPhrases(): void {\n        this.privPhrases = undefined;\n    }\n\n    // Adds one or more reference grammars to the current grammar.\n    public addReferenceGrammar(grammar: string | string[]): void {\n        if (!this.privGrammars) {\n            this.privGrammars = [];\n        }\n\n        if (grammar instanceof Array) {\n            this.privGrammars = this.privGrammars.concat(grammar as string[]);\n        } else {\n            this.privGrammars.push(grammar as string);\n        }\n    }\n\n    // clears all grammars stored on the recognizer.\n    public clearGrammars(): void {\n        this.privGrammars = undefined;\n    }\n\n    // Generates an object that represents the dynamic grammar used by the Speech Service.\n    // This is done by building an object with the correct layout based on the phrases and reference grammars added to this instance\n    // of a DynamicGrammarBuilder\n    public generateGrammarObject(): IDynamicGrammar {\n        if (this.privGrammars === undefined && this.privPhrases === undefined) {\n            return undefined;\n        }\n\n        const retObj: IDynamicGrammar = {};\n        retObj.ReferenceGrammars = this.privGrammars;\n\n        if (undefined !== this.privPhrases && 0 !== this.privPhrases.length) {\n            const retPhrases: IDynamicGrammarGeneric[] = [];\n\n            this.privPhrases.forEach((value: string, index: number, array: string[]): void => {\n                retPhrases.push({\n                    Text: value,\n                });\n            });\n\n            retObj.Groups = [{ Type: \"Generic\", Items: retPhrases }];\n        }\n\n        return retObj;\n    }\n}\n"]}