import {
    Zondy
} from '../../common/Base';
import {
    CTheme
} from './CTheme';
import {
    CChartType
} from './CChartType';
import {
    CChartThemeInfo
} from './CChartThemeInfo';
import {
    CChartThemeRepresentInfo
} from './CChartThemeRepresentInfo';

/**
 * 统计专题图
 * @class module:专题图服务.CChartTheme
 * @classdesc 统计专题图
 * @description Zondy.Object.Theme.CChartTheme 
 * @extends CTheme
 * @param {Object} opt_options 属性键值对。
 * @param {Number} [opt_options.ChartType = CChartType.Bar] 统计图类型 {@link Zondy.Object.Theme.CChartType}
 * @param {Array} [opt_options.ChartThemeInfoArr = null] 统计专题图信息 Array<{@link Zondy.Object.Theme.CChartThemeInfo}>
 * @param {Object} [opt_options.RepresentInfo = null] 统计图符号参数信息 {@link Zondy.Object.Theme.CChartThemeRepresentInfo}
 */
class CChartTheme extends CTheme {
    constructor(opt_options) {
        var options = opt_options ? opt_options : {};
        super(options);

        /**
         * @private
         * @member Zondy.Object.Theme.CChartTheme.prototype.ChartType
         * @type {Zondy.Object.Theme.CChartType}
         * @description 统计图类型 {@link Zondy.Object.Theme.CChartType}
         * @default CChartType.Bar
         */
        this.ChartType = (options.ChartType !== undefined) ? options.ChartType : CChartType.Bar;

        /**
         * @private
         * @member Zondy.Object.Theme.CChartTheme.prototype.ChartThemeInfoArr
         * @type {Zondy.Object.Theme.CChartThemeInfo}
         * @description 统计专题图信息 Array<{@link Zondy.Object.Theme.CChartThemeInfo}>
         * @default null
         */
        this.ChartThemeInfoArr = (options.ChartThemeInfoArr !== undefined) ? options.ChartThemeInfoArr : null;

        /**
         * @private
         * @member Zondy.Object.Theme.CChartTheme.prototype.RepresentInfo
         * @type {Zondy.Object.Theme.CChartThemeRepresentInfo}
         * @description 统计图符号参数信息 {@link Zondy.Object.Theme.CChartThemeRepresentInfo}
         * @default null
         */
        this.RepresentInfo = (options.RepresentInfo !== undefined) ? options.RepresentInfo : null;

        /**
         * @private
         * @member Zondy.Object.Theme.CChartTheme.prototype.Type
         * @type {String}
         * @description 专题图类型,只读属性
         * @default "CChartTheme"
         */
        this.Type = "CChartTheme";
    }
}
export {
    CChartTheme
};
Zondy.Object.Theme.CChartTheme = CChartTheme;