Initial commit
This commit is contained in:
@@ -0,0 +1,86 @@
|
||||
var _ = require('underscore');
|
||||
var ParserCSS = require('builder/helpers/parser-css');
|
||||
var LegendColorHelper = require('builder/editor/layers/layer-content-views/legend/form/legend-color-helper');
|
||||
|
||||
module.exports = {
|
||||
getStyleAttrs: function (styleModel) {
|
||||
if (!styleModel) return;
|
||||
|
||||
var fill = styleModel.get('fill');
|
||||
var stroke = styleModel.get('stroke');
|
||||
if (!fill && !stroke || _.isEmpty(fill) && _.isEmpty(stroke)) return;
|
||||
|
||||
return {
|
||||
fill: fill,
|
||||
stroke: stroke
|
||||
};
|
||||
},
|
||||
|
||||
getColorAttribute: function (styleModel) {
|
||||
var color = this.getColor(styleModel);
|
||||
return color && color.attribute;
|
||||
},
|
||||
|
||||
getSizeAttribute: function (styleModel) {
|
||||
var size = this.getSize(styleModel);
|
||||
return size && size.attribute;
|
||||
},
|
||||
|
||||
getColor: function (styleModel) {
|
||||
var style = this.getStyleAttrs(styleModel);
|
||||
var color = style ? (style.fill && style.fill.color || style.stroke && style.stroke.color) : null;
|
||||
return color;
|
||||
},
|
||||
|
||||
getSize: function (styleModel) {
|
||||
var style = this.getStyleAttrs(styleModel);
|
||||
var size = style ? (style.fill && style.fill.size || style.stroke && style.stroke.size) : null;
|
||||
return size;
|
||||
},
|
||||
|
||||
getColorsFromRange: function (styleModel) {
|
||||
var color = this.getColor(styleModel);
|
||||
if (!(color && color.range)) { return []; }
|
||||
|
||||
return color.range.map(function (v, index) {
|
||||
return { color: v };
|
||||
});
|
||||
},
|
||||
|
||||
getHeatmapColors: function (layerDefinitionModel) {
|
||||
var changed = layerDefinitionModel.styleModel && layerDefinitionModel.styleModel.hasChanged();
|
||||
|
||||
if (changed) {
|
||||
return this.getColorsFromRange(layerDefinitionModel.styleModel);
|
||||
}
|
||||
|
||||
var content = layerDefinitionModel.cartocssModel.get('content');
|
||||
var parser = new ParserCSS(content);
|
||||
return parser.colorsUsedForLegend({ mode: 'hex' });
|
||||
},
|
||||
|
||||
getStyleCategories: function (styleModel) {
|
||||
var color = this.getColor(styleModel);
|
||||
if (!color) { return []; }
|
||||
|
||||
if (color.range) {
|
||||
return color.range.map(function (v, index) {
|
||||
return {
|
||||
color: v,
|
||||
title: color.domain && LegendColorHelper.unquoteColor(color.domain[index]) || _t('editor.legend.legend-form.others'),
|
||||
icon: color.images && color.images[index] || ''
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
if (color.fixed) {
|
||||
return [{
|
||||
color: color.fixed,
|
||||
icon: color.image || '',
|
||||
title: ''
|
||||
}];
|
||||
}
|
||||
|
||||
return [];
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user