{"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.\r\n// Licensed under the MIT license.\r\n\r\nimport {\r\n    IDynamicGrammar,\r\n    IDynamicGrammarGeneric,\r\n} from \"./Exports\";\r\n\r\n/**\r\n * Responsible for building the object to be sent to the speech service to support dynamic grammars.\r\n * @class DynamicGrammarBuilder\r\n */\r\nexport class DynamicGrammarBuilder {\r\n\r\n    private privPhrases: string[];\r\n    private privGrammars: string[];\r\n\r\n    // Adds one more reference phrases to the dynamic grammar to send.\r\n    // All added phrases are generic phrases.\r\n    public addPhrase(phrase: string | string[]): void {\r\n        if (!this.privPhrases) {\r\n            this.privPhrases = [];\r\n        }\r\n\r\n        if (phrase instanceof Array) {\r\n            this.privPhrases = this.privPhrases.concat(phrase as string[]);\r\n        } else {\r\n            this.privPhrases.push(phrase as string);\r\n        }\r\n    }\r\n\r\n    // Clears all phrases stored in the current object.\r\n    public clearPhrases(): void {\r\n        this.privPhrases = undefined;\r\n    }\r\n\r\n    // Adds one or more reference grammars to the current grammar.\r\n    public addReferenceGrammar(grammar: string | string[]): void {\r\n        if (!this.privGrammars) {\r\n            this.privGrammars = [];\r\n        }\r\n\r\n        if (grammar instanceof Array) {\r\n            this.privGrammars = this.privGrammars.concat(grammar as string[]);\r\n        } else {\r\n            this.privGrammars.push(grammar as string);\r\n        }\r\n    }\r\n\r\n    // clears all grammars stored on the recognizer.\r\n    public clearGrammars(): void {\r\n        this.privGrammars = undefined;\r\n    }\r\n\r\n    // Generates an object that represents the dynamic grammar used by the Speech Service.\r\n    // This is done by building an object with the correct layout based on the phrases and reference grammars added to this instance\r\n    // of a DynamicGrammarBuilder\r\n    public generateGrammarObject(): IDynamicGrammar {\r\n        if (this.privGrammars === undefined && this.privPhrases === undefined) {\r\n            return undefined;\r\n        }\r\n\r\n        const retObj: IDynamicGrammar = {};\r\n        retObj.ReferenceGrammars = this.privGrammars;\r\n\r\n        if (undefined !== this.privPhrases && 0 !== this.privPhrases.length) {\r\n            const retPhrases: IDynamicGrammarGeneric[] = [];\r\n\r\n            this.privPhrases.forEach((value: string, index: number, array: string[]): void => {\r\n                retPhrases.push({\r\n                    Text: value,\r\n                });\r\n            });\r\n\r\n            retObj.Groups = [{ Type: \"Generic\", Items: retPhrases }];\r\n        }\r\n\r\n        return retObj;\r\n    }\r\n}\r\n"]}