    ﻿import { Zondy } from '../../../base'
    import { defaultValue, extend } from '../../../util'
    import CAnnInfo from './CAnnInfo'
    import CChartLabelFormat from './CChartLabelFormat'

    /**
     * @class module:专题图服务.CChartThemeRepresentInfo
     * @classdesc 统计图符号参数信息
     * @description Zondy.Object.Theme.CChartThemeRepresentInfo
     * @param {Object} options 属性键值对。
     * @param {Object} [options.AnnInfoLabel = new CAnnInfo()] 统计值作为注记的表现信息 {@link Zondy.Object.Theme.CAnnInfo}
     * @param {Number} [options.DigitLabel = 0] 统计值小数点位置
     * @param {Number} [options.FormatLabel = CChartLabelFormat.Unknown] 统计值类型 {@link Zondy.Object.Theme.CChartLabelFormat}
     * @param {Boolean} [options.IsDrawLabel = true] 是否显示统计值
     * @param {Number} [options.LineColor = -1] 线颜色值
     * @param {Number} [options.MaxLength = 30.00] 统计图标最大长度
     * @param {Number} [options.MinRadius = 10.00] 统计图标最小半径
     * @param {Number} [options.PieSizeFixFlag = 0] 统计图标大小是否固定
     * @param {Number} [options.PieTiltedAngle = 30.00] 统计图标倾斜角度
     * @param {Number} [options.PlotRadius = 1.00] 统计图标半径
     * @param {Number} [options.ThickPersent = 10.00] 统计图标厚度
     * @param {Number} [options.Width = 3.00] 统计图标宽度
     */
    const CChartThemeRepresentInfo = function (options) {
      options = defaultValue(options, {})
      extend(this, options)
      /**
       * @member Zondy.Object.Theme.CChartThemeRepresentInfo.prototype.AnnInfoLabel
       * @type {Object}
       * @description 统计值作为注记的表现信息 {@link Zondy.Object.Theme.CAnnInfo}
       * @default new CAnnInfo()
       */
      this.AnnInfoLabel =
        options.AnnInfoLabel !== undefined ? options.AnnInfoLabel : new CAnnInfo()

      /**
       * @member Zondy.Object.Theme.CChartThemeRepresentInfo.prototype.DigitLabel
       * @type {Number}
       * @description 统计值小数点位置
       * @default 0
       */
      this.DigitLabel = options.DigitLabel !== undefined ? options.DigitLabel : 0

      /**
       * @member Zondy.Object.Theme.CChartThemeRepresentInfo.prototype.FormatLabel
       * @type {Number}
       * @description 统计值类型 {@link Zondy.Object.Theme.CChartLabelFormat}
       * @default CChartLabelFormat.Unknown
       */
      this.FormatLabel =
        options.FormatLabel !== undefined
          ? options.FormatLabel
          : CChartLabelFormat.Unknown

      /**
       * @member Zondy.Object.Theme.CChartThemeRepresentInfo.prototype.IsDrawLabel
       * @type {Boolean}
       * @description 是否显示统计值
       * @default true
       */
      this.IsDrawLabel =
        options.IsDrawLabel !== undefined ? options.IsDrawLabel : true

      /**
       * @member Zondy.Object.Theme.CChartThemeRepresentInfo.prototype.LineColor
       * @type {Number}
       * @description 线颜色值
       * @default -1
       */
      this.LineColor = options.LineColor !== undefined ? options.LineColor : -1

      /**
       * @member Zondy.Object.Theme.CChartThemeRepresentInfo.prototype.MaxLength
       * @type {Number}
       * @description 统计图标最大长度
       * @default 30
       */
      this.MaxLength = options.MaxLength !== undefined ? options.MaxLength : 30

      /**
       * @member Zondy.Object.Theme.CChartThemeRepresentInfo.prototype.MinRadius
       * @type {Number}
       * @description 统计图标最小半径
       * @default 10
       */
      this.MinRadius = options.MinRadius !== undefined ? options.MinRadius : 10

      /**
       * @member Zondy.Object.Theme.CChartThemeRepresentInfo.prototype.PieSizeFixFlag
       * @type {Number}
       * @description 统计图标大小是否固定
       * @default 0
       */
      this.PieSizeFixFlag =
        options.PieSizeFixFlag !== undefined ? options.PieSizeFixFlag : 0

      /**
       * @member Zondy.Object.Theme.CChartThemeRepresentInfo.prototype.PieTiltedAngle
       * @type {Number}
       * @description 统计图标倾斜角度
       * @default 30
       */
      this.PieTiltedAngle =
        options.PieTiltedAngle !== undefined ? options.PieTiltedAngle : 30

      /**
       * @member Zondy.Object.Theme.CChartThemeRepresentInfo.prototype.PlotRadius
       * @type {Number}
       * @description 统计图标半径
       * @default 1
       */
      this.PlotRadius = options.PlotRadius !== undefined ? options.PlotRadius : 1

      /**
       * @member Zondy.Object.Theme.CChartThemeRepresentInfo.prototype.ThickPersent
       * @type {Number}
       * @description 统计图标厚度
       * @default 10
       */
      this.ThickPersent =
        options.ThickPersent !== undefined ? options.ThickPersent : 10

      /**
       * @member Zondy.Object.Theme.CChartThemeRepresentInfo.prototype.Width
       * @type {Number}
       * @description 统计图标宽度
       * @default 3
       */
      this.Width = options.Width !== undefined ? options.Width : 3
    }
    export default CChartThemeRepresentInfo
    Zondy.Object.Theme.CChartThemeRepresentInfo = CChartThemeRepresentInfo