@gooddata/react-components
Version:
GoodData.UI - A powerful JavaScript library for building analytical applications
109 lines • 5.67 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 __());
};
})();
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
Object.defineProperty(exports, "__esModule", { value: true });
// (C) 2020 GoodData Corporation
var gooddata_js_1 = require("@gooddata/gooddata-js");
var colorStrategy_1 = require("../colorStrategy");
var color_1 = require("../../utils/color");
var executionResultHelper_1 = require("../../../../helpers/executionResultHelper");
var chartOptionsBuilder_1 = require("../chartOptionsBuilder");
var utils_1 = require("./utils");
var emptyColorPaletteItem = { type: "guid", value: "none" };
var MeasureColorStrategy = /** @class */ (function (_super) {
__extends(MeasureColorStrategy, _super);
function MeasureColorStrategy() {
return _super !== null && _super.apply(this, arguments) || this;
}
MeasureColorStrategy.prototype.createColorAssignment = function (colorPalette, colorMapping, _viewByAttribute, _stackByAttribute, executionResponse, afm) {
var _a = this.mapColorsFromMeasures(executionResponse, afm, colorMapping, colorPalette), allMeasuresAssignment = _a.allMeasuresAssignment, nonDerivedMeasuresAssignment = _a.nonDerivedMeasuresAssignment;
return {
fullColorAssignment: this.mapColorsFromDerivedMeasure(executionResponse, afm, allMeasuresAssignment, colorPalette),
outputColorAssignment: nonDerivedMeasuresAssignment,
};
};
MeasureColorStrategy.prototype.mapMeasureColor = function (headerItem, currentColorPaletteIndex, colorPalette, colorAssignment, executionResponse, afm) {
var mappedColor = color_1.getColorFromMapping(headerItem, colorAssignment, executionResponse, afm);
return utils_1.isValidMappedColor(mappedColor, colorPalette)
? mappedColor
: {
type: "guid",
value: colorPalette[currentColorPaletteIndex % colorPalette.length].guid,
};
};
MeasureColorStrategy.prototype.mapColorsFromMeasures = function (executionResponse, afm, colorMapping, colorPalette) {
var _this = this;
var currentColorPaletteIndex = 0;
var nonDerivedMeasuresAssignment = [];
var measureGroup = executionResultHelper_1.findMeasureGroupInDimensions(executionResponse.dimensions);
var allMeasuresAssignment = measureGroup.items.map(function (headerItem, index) {
if (chartOptionsBuilder_1.isDerivedMeasure(measureGroup.items[index], afm)) {
return {
headerItem: headerItem,
color: emptyColorPaletteItem,
};
}
var color = _this.mapMeasureColor(headerItem, currentColorPaletteIndex, colorPalette, colorMapping, executionResponse, afm);
var mappedMeasure = {
headerItem: headerItem,
color: color,
};
currentColorPaletteIndex++;
nonDerivedMeasuresAssignment.push(mappedMeasure);
return mappedMeasure;
});
return {
allMeasuresAssignment: allMeasuresAssignment,
nonDerivedMeasuresAssignment: nonDerivedMeasuresAssignment,
};
};
MeasureColorStrategy.prototype.mapColorsFromDerivedMeasure = function (executionResponse, afm, measuresColorAssignment, colorPalette) {
var _this = this;
return measuresColorAssignment.map(function (mapItem, measureItemIndex) {
var measureGroup = executionResultHelper_1.findMeasureGroupInDimensions(executionResponse.dimensions);
if (!chartOptionsBuilder_1.isDerivedMeasure(measureGroup.items[measureItemIndex], afm)) {
return mapItem;
}
var parentMeasureIndex = chartOptionsBuilder_1.findParentMeasureIndex(afm, measureItemIndex);
if (parentMeasureIndex > -1) {
var sourceMeasureColor = measuresColorAssignment[parentMeasureIndex].color;
return _this.getDerivedMeasureColorAssignment(sourceMeasureColor, colorPalette, measureItemIndex, mapItem);
}
return mapItem;
});
};
MeasureColorStrategy.prototype.getDerivedMeasureColorAssignment = function (sourceMeasureColor, colorPalette, measureItemIndex, mapItem) {
var rgbColor = gooddata_js_1.TypeGuards.isGuidColorItem(sourceMeasureColor)
? color_1.getColorByGuid(colorPalette, sourceMeasureColor.value, measureItemIndex)
: sourceMeasureColor.value;
return __assign({}, mapItem, { color: {
type: "rgb",
value: color_1.getLighterColorFromRGB(rgbColor, 0.6),
} });
};
return MeasureColorStrategy;
}(colorStrategy_1.default));
exports.default = MeasureColorStrategy;
//# sourceMappingURL=measure.js.map