UNPKG

@gooddata/react-components

Version:

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

96 lines 5.35 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) 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