UNPKG

@gooddata/react-components

Version:

GoodData.UI - A powerful JavaScript library for building analytical applications

90 lines 4.73 kB
"use strict"; 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