///<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 SourceHelper = econda.tagmanager.macro.SourceHelper;
                var ObjectUtils = econda.util.ObjectUtils;
                /**
                 * Read data from data layer. This class if for internal use only.
                 * @class econda.tagmanager.macro.reader.DataLayerReader
                 * @private
                 */
                var EventDataReader = (function () {
                    function EventDataReader() {
                    }
                    /**
                     * Event data only
                     *
                     * @param {econda.tagmanager.macro.IMacroDefinition} macroDefinition
                     * @returns {econda.tagmanager.macro.reader.IMacroReaderResult}
                     */
                    EventDataReader.prototype.readValue = function (macroDefinition) {
                        return {
                            value: undefined,
                            success: false
                        };
                    };
                    /**
                     * Read value from data layer.
                     * @param {Object} macroDefinition
                     * @param eventData eventData pushed from user
                     */
                    EventDataReader.prototype.readValueWithEvent = function (macroDefinition, eventData) {
                        if (eventData === void 0) { eventData = null; }
                        var ret;
                        var source = SourceHelper.parse(macroDefinition.patternSourceName);
                        var value = (typeof eventData == 'object' && eventData != null)
                            ? ObjectUtils.getNestedProperty(eventData, source.element)
                            : undefined;
                        if (typeof value != 'undefined') {
                            ret = {
                                value: value,
                                success: true
                            };
                        }
                        else {
                            ret = {
                                value: undefined,
                                success: false
                            };
                        }
                        return ret;
                    };
                    return EventDataReader;
                }());
                reader.EventDataReader = EventDataReader;
            })(reader = macro.reader || (macro.reader = {}));
        })(macro = tagmanager.macro || (tagmanager.macro = {}));
    })(tagmanager = econda.tagmanager || (econda.tagmanager = {}));
})(econda || (econda = {}));