///<reference path="./IMacroReader.ts" />
///<reference path="./IMacroReaderResult.ts" />
///<reference path="../IMacroDefinition.ts" /> 
///<reference path="../SourceHelper.ts" />
///<reference path="../../../util/ObjectUtils.ts" />
var econda;
(function (econda) {
    var tagmanager;
    (function (tagmanager) {
        var macro;
        (function (macro) {
            var reader;
            (function (reader) {
                var ObjectUtils = econda.util.ObjectUtils;
                var SourceHelper = econda.tagmanager.macro.SourceHelper;
                /**
                 * Read data from global js varables. This class if for internal use only.
                 * @class econda.tagmanager.macro.reader.JsVariableReader
                 * @private
                 */
                var JsVariableReader = (function () {
                    function JsVariableReader(cfg) {
                        /**
                        * Copy of parent object for "global" variables
                        * @property {Object} data
                        * @private
                        */
                        this.globalVariableParent = null;
                        this.globalVariableParent = cfg.globalVariableParent;
                    }
                    JsVariableReader.prototype.readValue = function (macroDefinition) {
                        var s = SourceHelper.parse(macroDefinition.patternSourceName);
                        if (s.element === null) {
                            return {
                                value: undefined,
                                success: false
                            };
                        }
                        else {
                            var value = ObjectUtils.getNestedProperty(this.globalVariableParent, s.element);
                            return {
                                value: value,
                                success: (value !== undefined)
                            };
                        }
                    };
                    JsVariableReader.prototype.readValueWithEvent = function (macroDefinition, eventData) {
                        return {
                            value: undefined,
                            success: false
                        };
                    };
                    return JsVariableReader;
                }());
                reader.JsVariableReader = JsVariableReader;
            })(reader = macro.reader || (macro.reader = {}));
        })(macro = tagmanager.macro || (tagmanager.macro = {}));
    })(tagmanager = econda.tagmanager || (econda.tagmanager = {}));
})(econda || (econda = {}));