@gooddata/react-components
Version:
GoodData.UI - A powerful JavaScript library for building analytical applications
96 lines • 5.35 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) 2019 GoodData Corporation
var get = require("lodash/get");
var set = require("lodash/set");
var BucketNames = require("../../../constants/bucketNames");
var PluggableBaseChart_1 = require("./baseChart/PluggableBaseChart");
var axis_1 = require("../../constants/axis");
var bucketHelper_1 = require("../../utils/bucketHelper");
var uiConfig_1 = require("../../constants/uiConfig");
var propertiesHelper_1 = require("../../utils/propertiesHelper");
var columnBarChartUiConfigHelper_1 = require("../../utils/uiConfigHelpers/columnBarChartUiConfigHelper");
var mdObjectHelper_1 = require("../../utils/mdObjectHelper");
var bucket_1 = require("../../constants/bucket");
var PluggableColumnBarCharts = /** @class */ (function (_super) {
__extends(PluggableColumnBarCharts, _super);
function PluggableColumnBarCharts(props) {
var _this = _super.call(this, props) || this;
// set default to DUAL to get the full supported props list
// and will be updated in getExtendedReferencePoint
_this.axis = axis_1.AXIS.DUAL;
_this.supportedPropertiesList = _this.getSupportedPropertiesList();
return _this;
}
PluggableColumnBarCharts.prototype.getExtendedReferencePoint = function (referencePoint) {
var _this = this;
// reset the list to retrieve full 'referencePoint.properties.controls'
this.supportedPropertiesList = this.getSupportedPropertiesList();
return _super.prototype.getExtendedReferencePoint.call(this, referencePoint).then(function (ext) {
var newExt = propertiesHelper_1.setSecondaryMeasures(ext, _this.secondaryAxis);
_this.axis = get(newExt, uiConfig_1.UICONFIG_AXIS, axis_1.AXIS.PRIMARY);
// filter out unnecessary stacking props for some specific cases such as one measure or empty stackBy
_this.supportedPropertiesList = propertiesHelper_1.removeImmutableOptionalStackingProperties(newExt, _this.getSupportedPropertiesList());
newExt = propertiesHelper_1.getReferencePointWithSupportedProperties(newExt, _this.supportedPropertiesList);
return columnBarChartUiConfigHelper_1.setColumnBarChartUiConfig(newExt, _this.intl);
});
};
PluggableColumnBarCharts.prototype.isOpenAsReportSupported = function () {
return (_super.prototype.isOpenAsReportSupported.call(this) &&
!mdObjectHelper_1.haveManyViewItems(this.mdObject) &&
!propertiesHelper_1.isStackingMeasure(this.visualizationProperties) &&
!propertiesHelper_1.isStackingToPercent(this.visualizationProperties));
};
PluggableColumnBarCharts.prototype.configureBuckets = function (extendedReferencePoint) {
var buckets = get(extendedReferencePoint, bucket_1.BUCKETS, []);
var measures = bucketHelper_1.getFilteredMeasuresForStackedCharts(buckets);
var dateItems = bucketHelper_1.getDateItems(buckets);
var categoriesCount = get(extendedReferencePoint, [uiConfig_1.UICONFIG, bucket_1.BUCKETS, BucketNames.VIEW, "itemsLimit"], uiConfig_1.MAX_CATEGORIES_COUNT);
var allAttributesWithoutStacks = bucketHelper_1.getAllCategoriesAttributeItems(buckets);
var views = allAttributesWithoutStacks.slice(0, categoriesCount);
var hasDateItemInViewByBucket = views.some(bucketHelper_1.isDateBucketItem);
var stackItemIndex = categoriesCount;
var stacks = bucketHelper_1.getStackItems(buckets);
if (dateItems.length && !hasDateItemInViewByBucket) {
var extraViewItems = allAttributesWithoutStacks.slice(0, categoriesCount - 1);
views = [dateItems[0]].concat(extraViewItems);
stackItemIndex = categoriesCount - 1;
}
if (!stacks.length && measures.length <= 1 && allAttributesWithoutStacks.length > stackItemIndex) {
stacks = allAttributesWithoutStacks
.slice(stackItemIndex, allAttributesWithoutStacks.length)
.filter(bucketHelper_1.isNotDateBucketItem)
.slice(0, uiConfig_1.MAX_STACKS_COUNT);
}
set(extendedReferencePoint, bucket_1.BUCKETS, [
{
localIdentifier: BucketNames.MEASURES,
items: measures,
},
{
localIdentifier: BucketNames.VIEW,
items: views,
},
{
localIdentifier: BucketNames.STACK,
items: stacks,
},
]);
};
return PluggableColumnBarCharts;
}(PluggableBaseChart_1.PluggableBaseChart));
exports.PluggableColumnBarCharts = PluggableColumnBarCharts;
//# sourceMappingURL=PluggableColumnBarCharts.js.map