///<reference path="./IMacroReaderConfigOptions.ts" /> ///<reference path="./IMacroReaderResult.ts" /> ///<reference path="./CookieReader.ts" /> ///<reference path="./DataLayerReader.ts" /> ///<reference path="./EventDataReader.ts" /> ///<reference path="./JsVariableReader.ts" /> ///<reference path="./DomElementReader.ts" /> ///<reference path="./MetaDataReader.ts" /> ///<reference path="./MacroReader.ts" /> ///<reference path="./JsSnippetReader.ts" /> ///<reference path="./NullReader.ts" /> ///<reference path="./UrlReader.ts" /> ///<reference path="../Macro.ts" /> var econda; (function (econda) { var tagmanager; (function (tagmanager) { var macro; (function (macro) { var reader; (function (reader_1) { var Macro = econda.tagmanager.macro.Macro; /** * Read value for given macro definition. It will use specialized readers internally. * @class econda.tagmanager.macro.reader.Reader * @private */ var Reader = (function () { function Reader(cfg) { this.readers = []; this.nullReader = null; this.config = cfg; this.initReaders(); } /** * We initialize all readers one time. This is the place, where we can set global config options. */ Reader.prototype.initReaders = function () { var config = this.config; var r = this.readers; r[Macro.SOURCE_URL] = new econda.tagmanager.macro.reader.UrlReader(); // url reader will read url param if patternSourceName is not empty r[Macro.SOURCE_URL_PARAMETER] = r[Macro.SOURCE_URL]; r[Macro.SOURCE_COOKIE] = new econda.tagmanager.macro.reader.CookieReader(); r[Macro.SOURCE_DATA_LAYER] = new econda.tagmanager.macro.reader.DataLayerReader({ dataLayer: config.dataLayer }); r[Macro.SOURCE_JAVASCRIPT_VARIABLE] = new econda.tagmanager.macro.reader.JsVariableReader({ globalVariableParent: config.globalVariableParent }); r[Macro.SOURCE_DOM_ELEMENT] = new econda.tagmanager.macro.reader.DomElementReader(); r[Macro.SOURCE_META_ELEMENT] = new econda.tagmanager.macro.reader.MetaDataReader(); r[Macro.SOURCE_MACRO] = new econda.tagmanager.macro.reader.MacroReader({ container: config.container }); r[Macro.SOURCE_JAVASCRIPT_SNIPPET] = new econda.tagmanager.macro.reader.JsSnippetReader(); r[Macro.SOURCE_CURRENT_EVENT] = new econda.tagmanager.macro.reader.EventDataReader(); this.nullReader = new econda.tagmanager.macro.reader.NullReader(); }; Reader.prototype.readValue = function (macroDefinition, eventData) { if (eventData === void 0) { eventData = null; } var reader = this.readers[macroDefinition.patternSource] || this.nullReader; if (eventData === null) { return reader.readValue(macroDefinition); } else { return reader.readValueWithEvent(macroDefinition, eventData); } }; return Reader; }()); reader_1.Reader = Reader; })(reader = macro.reader || (macro.reader = {})); })(macro = tagmanager.macro || (tagmanager.macro = {})); })(tagmanager = econda.tagmanager || (econda.tagmanager = {})); })(econda || (econda = {}));