goog.provide('M.style.chart.Variable');
/**
* @namespace M.style.chart.Variable
*/
(function() {
/**
* @classdesc
* Main constructor of the class. Creates a chart variable
*
* @param {Mx.ChartVariableOptions} options.
* - attribute {string} the feature property name where data is stored
* - label {number}
* - text {string|Function} data label displayed. If this property is a
* function the args passed will be: currentVal, values, feature
* - stroke.
* - color {string} the color of the data label stroke
* - width {number} the width of the data label stroke
* - radiusIncrement {number} distance between text position origin and
* chart radius
* - fill {string} the color of the data label
* - font {string} the font family of the data label
* - scale {number} the scale of the data label. We can't use a font size so
* canvas will rescales the text
* - fill {number} the color of the chart representation fill (if chart type = 'bar')
* this property sets the bar fill color
* - legend {string} the layerswitcher legend label
*
* [WARN] Notice that label property only will be applied if the geometry is
* not of type 'multipolygon' and chart type is distinct of 'bar' type
*
* @constructor
* @api stable
*/
M.style.chart.Variable = function(options = {}) {
/**
* Feature property name where data is stored
* @private
* @type {string}
*/
this.attributeName_ = options.attribute || null;
/**
* Data label displayed options
* @private
* @type {object}
*/
this.label_ = options.label || null;
/**
* Data chart color
* @private
* @type {string}
*/
this.fillColor_ = options.fill || null;
/**
* Layerswitcher display name
* @private
* @type {string}
*/
this.legend_ = options.legend || null;
};
/**
* attributeName_ setter & getter declaration
*/
Object.defineProperty(M.style.chart.Variable.prototype, 'attribute', {
get: function() {
return this.attributeName_;
},
set: function(attribute) {
this.attributeName_ = attribute;
}
});
/**
* label_ setter & getter declaration
*/
Object.defineProperty(M.style.chart.Variable.prototype, 'label', {
get: function() {
return this.label_;
},
set: function(label) {
this.label_ = label;
}
});
/**
* fillColor_ setter & getter declaration
*/
Object.defineProperty(M.style.chart.Variable.prototype, 'fillColor', {
get: function() {
return this.fillColor_;
},
set: function(fillColor) {
this.fillColor_ = fillColor;
}
});
/**
* legend_ setter & getter declaration
*/
Object.defineProperty(M.style.chart.Variable.prototype, 'legend', {
get: function() {
return this.legend_;
},
set: function(legend) {
this.legend_ = legend;
}
});
})();