@gooddata/react-components
Version:
GoodData.UI - A powerful JavaScript library for building analytical applications
90 lines • 4.73 kB
JavaScript
;
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
// (C) 2020 GoodData Corporation
var gooddata_js_1 = require("@gooddata/gooddata-js");
var executionResultHelper_1 = require("../../../../helpers/executionResultHelper");
var color_1 = require("../../utils/color");
var utils_1 = require("./utils");
var colorStrategy_1 = require("../colorStrategy");
var bulletChartOptions_1 = require("../chartOptions/bulletChartOptions");
var BulletChartColorStrategy = /** @class */ (function (_super) {
__extends(BulletChartColorStrategy, _super);
function BulletChartColorStrategy() {
return _super !== null && _super.apply(this, arguments) || this;
}
BulletChartColorStrategy.prototype.createColorAssignment = function (colorPalette, colorMapping, _viewByAttribute, _stackByAttribute, executionResponse, afm, occupiedMeasureBucketsLocalIdentifiers) {
var _this = this;
var measureGroup = executionResultHelper_1.findMeasureGroupInDimensions(executionResponse.dimensions);
var defaultColorsAssignment = this.getDefaultColorAssignment(colorPalette, measureGroup, occupiedMeasureBucketsLocalIdentifiers);
var colorAssignment = measureGroup.items.map(function (headerItem) {
var color = _this.mapMeasureColor(headerItem, colorPalette, colorMapping, executionResponse, afm, defaultColorsAssignment);
return {
headerItem: headerItem,
color: color,
};
});
return {
fullColorAssignment: colorAssignment,
};
};
BulletChartColorStrategy.prototype.createPalette = function (colorPalette, colorAssignments) {
return colorAssignments
.map(function (colorAssignment, index) {
if (gooddata_js_1.TypeGuards.isRgbColorItem(colorAssignment.color)) {
return colorAssignment.color.value;
}
else if (gooddata_js_1.TypeGuards.isGuidColorItem(colorAssignment.color)) {
return color_1.getColorByGuid(colorPalette, colorAssignment.color.value, index);
}
})
.filter(function (color) { return typeof color !== "undefined"; })
.map(function (color) { return color_1.getRgbStringFromRGB(color); });
};
BulletChartColorStrategy.prototype.mapMeasureColor = function (headerItem, colorPalette, colorMapping, executionResponse, afm, defaultColorsAssignment) {
var mappedColor = color_1.getColorFromMapping(headerItem, colorMapping, executionResponse, afm);
if (utils_1.isValidMappedColor(mappedColor, colorPalette)) {
return mappedColor;
}
var defaultColorAssignment = defaultColorsAssignment.find(function (colorAssignment) {
return colorAssignment.headerItem.measureHeaderItem
.localIdentifier === headerItem.measureHeaderItem.localIdentifier;
});
return defaultColorAssignment.color;
};
BulletChartColorStrategy.prototype.getDefaultColorAssignment = function (colorPalette, measureGroup, occupiedMeasureBucketsLocalIdentifiers) {
return measureGroup.items.map(function (headerItem, index) {
var color = (bulletChartOptions_1.isPrimarySeries(index, occupiedMeasureBucketsLocalIdentifiers) && {
type: "guid",
value: colorPalette[0].guid,
}) ||
(bulletChartOptions_1.isTargetSeries(index, occupiedMeasureBucketsLocalIdentifiers) && {
type: "rgb",
value: color_1.getLighterColorFromRGB(colorPalette[0].fill, -0.3),
}) ||
(bulletChartOptions_1.isComparativeSeries(index, occupiedMeasureBucketsLocalIdentifiers) && {
type: "rgb",
value: color_1.DEFAULT_BULLET_GRAY_COLOR,
});
return {
headerItem: headerItem,
color: color,
};
});
};
return BulletChartColorStrategy;
}(colorStrategy_1.default));
exports.default = BulletChartColorStrategy;
//# sourceMappingURL=bulletChart.js.map