{"version":3,"sources":["src/common.speech/DynamicGrammarBuilder.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,GAAG,EAAE,MAAM,8BAA8B,CAAC;AAGnD;;;GAGG;AACH,qBAAa,qBAAqB;IAE9B,OAAO,CAAC,WAAW,CAAW;IAC9B,OAAO,CAAC,YAAY,CAAW;IAC/B,OAAO,CAAC,UAAU,CAAe;IAI1B,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;IAKrB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAO/B,qBAAqB,IAAI,GAAG;CAuBtC","file":"DynamicGrammarBuilder.d.ts","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT license.\n\nimport { Dgi } from \"./ServiceMessages/Dgi/Dgi.js\";\nimport { GroupType } from \"./ServiceMessages/Dgi/Group.js\";\nimport { Item } from \"./ServiceMessages/Dgi/Item.js\";\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    private privWeight: number = 1.0;\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);\n        } else {\n            this.privPhrases.push(phrase);\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);\n        } else {\n            this.privGrammars.push(grammar);\n        }\n    }\n\n    // clears all grammars stored on the recognizer.\n    public clearGrammars(): void {\n        this.privGrammars = undefined;\n    }\n\n    // Sets the weight for the dynamic grammar.\n    public setWeight(weight: number): void {\n        this.privWeight = weight;\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(): Dgi {\n        if (this.privGrammars === undefined && this.privPhrases === undefined) {\n            return undefined;\n        }\n\n        const retObj: Dgi = {};\n        retObj.referenceGrammars = this.privGrammars;\n\n        if (undefined !== this.privPhrases && 0 !== this.privPhrases.length) {\n            const retPhrases: Item[] = [];\n\n            this.privPhrases.forEach((value: string): void => {\n                retPhrases.push({\n                    text: value,\n                });\n            });\n\n            retObj.groups = [{ type: GroupType.Generic, items: retPhrases }];\n            retObj.bias = this.privWeight;\n        }\n\n        return retObj;\n    }\n}\n"]}