var __extends = (this && this.__extends) || function (d, b) {
    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
    function __() { this.constructor = d; }
    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
/// <reference path="Tracking.ts" />
/// <reference path="../../base/BaseClass.ts" />
var econda;
(function (econda) {
    var recengine;
    (function (recengine) {
        var response;
        (function (response) {
            /**
             * Information about widget detail settings in cross sell user interface.
             * @class econda.recengine.response.WidgetDetails
             */
            var WidgetDetails = (function (_super) {
                __extends(WidgetDetails, _super);
                function WidgetDetails(cfg) {
                    if (cfg === void 0) { cfg = null; }
                    _super.call(this);
                    /**
                     * Widget title as configured in cross sell user interface
                     * @cfg {String} title
                     * @accessor
                     */
                    this._title = null;
                    /**
                     * If checkbox "disable on empty" is activated for this widget in cross sell user interface
                     * @cfg {Boolean} [disableOnEmpty=true]
                     * @accessor
                     */
                    this._disableOnEmpty = true;
                    /**
                     * Data required for performance tracking
                     * @cfg {econda.recengine.response.Tracking} tracking
                     * @accessor
                     */
                    this._tracking = null;
                    /**
                     * Fallback url
                     * @cfg {String} deeplinkFallbackUrl
                     * @accessor
                     */
                    this._deeplinkFallbackUrl = null;
                    if (cfg instanceof WidgetDetails) {
                        return cfg;
                    }
                    if (cfg) {
                        this.initConfig(cfg);
                    }
                }
                WidgetDetails.prototype.getTitle = function () {
                    return this._title;
                };
                WidgetDetails.prototype.setTitle = function (title) {
                    this._title = title;
                };
                WidgetDetails.prototype.getDisableOnEmpty = function () {
                    return this._disableOnEmpty;
                };
                WidgetDetails.prototype.setDisableonempty = function (disable) {
                    this._disableOnEmpty = disable;
                };
                WidgetDetails.prototype.setDisableOnEmpty = function (disable) {
                    this._disableOnEmpty = disable;
                };
                WidgetDetails.prototype.getTracking = function (returnEmptyObject) {
                    if (returnEmptyObject === void 0) { returnEmptyObject = false; }
                    if (returnEmptyObject && this._tracking === null) {
                        return new response.Tracking();
                    }
                    return this._tracking;
                };
                WidgetDetails.prototype.setTracking = function (trackingData) {
                    this._tracking = new response.Tracking(trackingData);
                };
                WidgetDetails.prototype.setDeeplinkfallbackurl = function (url) {
                    this._deeplinkFallbackUrl = url;
                };
                WidgetDetails.prototype.setDeeplinkFallbackUrl = function (url) {
                    this._deeplinkFallbackUrl = url;
                };
                WidgetDetails.prototype.getDeeplinkFallbackUrl = function () {
                    return this._deeplinkFallbackUrl;
                };
                return WidgetDetails;
            }(econda.base.BaseClass));
            response.WidgetDetails = WidgetDetails; // end of class
        })(response = recengine.response || (recengine.response = {}));
    })(recengine = econda.recengine || (econda.recengine = {}));
})(econda || (econda = {})); // end of module