UNPKG

@gooddata/react-components

Version:

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

132 lines 5.87 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); // (C) 2019-2020 GoodData Corporation var get = require("lodash/get"); var BucketNames = require("../../constants/bucketNames"); var common_1 = require("../../components/visualizations/utils/common"); var mdObjBucketHelper_1 = require("../../helpers/mdObjBucketHelper"); var MdObjectHelper_1 = require("../../helpers/MdObjectHelper"); function isAttribute(item) { var attribute = item; return attribute.visualizationAttribute !== undefined; } function findBucketByLocalIdentifier(buckets, bucketName) { return (buckets || []).find(function (bucket) { return get(bucket, "localIdentifier") === bucketName; }); } function hasAttribute(mdObject) { return mdObject.buckets.some(function (bucket) { return bucket.items.some(isAttribute); }); } exports.hasAttribute = hasAttribute; function haveManyViewItems(mdObject) { var viewBucket = mdObject && findBucketByLocalIdentifier(mdObject.buckets, BucketNames.VIEW); return viewBucket && get(viewBucket, "items").length > 1; } exports.haveManyViewItems = haveManyViewItems; function hasOneViewItem(mdObject) { var viewBucket = mdObject && findBucketByLocalIdentifier(mdObject.buckets, BucketNames.VIEW); return viewBucket && get(viewBucket, "items").length === 1; } exports.hasOneViewItem = hasOneViewItem; function hasTertiaryMeasures(mdObject) { return mdObject.buckets .filter(function (bucket) { return [BucketNames.TERTIARY_MEASURES].indexOf(get(bucket, "localIdentifier")) >= 0; }) .some(function (bucket) { return get(bucket, "items").length > 0; }); } exports.hasTertiaryMeasures = hasTertiaryMeasures; function isStacked(mdObject) { return (mdObject && mdObject.buckets .filter(function (bucket) { return [BucketNames.STACK, BucketNames.SEGMENT].indexOf(get(bucket, "localIdentifier")) >= 0; }) .some(function (bucket) { return get(bucket, "items").length > 0; })); } exports.isStacked = isStacked; function hasMeasures(mdObject) { return mdObject && MdObjectHelper_1.getMeasuresFromMdObject(mdObject).length > 0; } exports.hasMeasures = hasMeasures; function hasColorMeasure(mdObject) { var colorBucket = mdObject && findBucketByLocalIdentifier(mdObject.buckets, BucketNames.COLOR); return colorBucket && get(colorBucket, "items").length > 0; } exports.hasColorMeasure = hasColorMeasure; function hasSizeMeasure(mdObject) { var sizeBucket = mdObject && findBucketByLocalIdentifier(mdObject.buckets, BucketNames.SIZE); return sizeBucket && get(sizeBucket, "items").length > 0; } exports.hasSizeMeasure = hasSizeMeasure; function hasLocationAttribute(mdObject) { if (!mdObject) { return false; } return mdObjBucketHelper_1.getBucketItems(mdObject.buckets, BucketNames.LOCATION).length > 0; } exports.hasLocationAttribute = hasLocationAttribute; function hasSegmentAttribute(mdObject) { if (!mdObject) { return false; } return mdObjBucketHelper_1.getBucketItems(mdObject.buckets, BucketNames.SEGMENT).length > 0; } exports.hasSegmentAttribute = hasSegmentAttribute; // don't support sort by total value for dual axis function canSortStackTotalValue(mdObject, supportedControls, enableSortingByTotalGroup) { if (enableSortingByTotalGroup === void 0) { enableSortingByTotalGroup = false; } var isSingleAxisAndStacked = get(supportedControls, "stackMeasures", false) && MdObjectHelper_1.areAllMeasuresOnSingleAxis(mdObject, get(supportedControls, "secondary_yaxis", false)); if (enableSortingByTotalGroup) { return isSingleAxisAndStacked; } return isSingleAxisAndStacked && hasOneViewItem(mdObject); } exports.canSortStackTotalValue = canSortStackTotalValue; function countItemsInMdObject(mdObject) { if (!mdObject) { return {}; } var buckets = mdObject.buckets; var viewByItemCount = mdObjBucketHelper_1.getBucketItems(buckets, BucketNames.VIEW).length; var measureItemCount = mdObjBucketHelper_1.getBucketItems(buckets, BucketNames.MEASURES).length; var secondaryMeasureItemCount = mdObjBucketHelper_1.getBucketItems(buckets, BucketNames.SECONDARY_MEASURES).length; return { viewByItemCount: viewByItemCount, measureItemCount: measureItemCount, secondaryMeasureItemCount: secondaryMeasureItemCount, }; } exports.countItemsInMdObject = countItemsInMdObject; function countItemsOnAxes(type, controls, mdObject) { var isBarFamilyChartType = common_1.isBarChart(type) || common_1.isBulletChart(type); var _a = countItemsInMdObject(mdObject), viewByItemCount = _a.viewByItemCount, measureItemCount = _a.measureItemCount, secondaryMeasureItemCount = _a.secondaryMeasureItemCount; var totalMeasureItemCount = measureItemCount + secondaryMeasureItemCount; var secondaryMeasureCountInConfig = (isBarFamilyChartType ? get(controls, "secondary_xaxis.measures", []) : get(controls, "secondary_yaxis.measures", [])).length; if (isBarFamilyChartType) { return { yaxis: viewByItemCount, xaxis: totalMeasureItemCount - secondaryMeasureCountInConfig, secondary_xaxis: secondaryMeasureCountInConfig, }; } if (common_1.isScatterPlot(type) || common_1.isBubbleChart(type)) { return { xaxis: measureItemCount, yaxis: secondaryMeasureItemCount, }; } return { xaxis: viewByItemCount, yaxis: totalMeasureItemCount - secondaryMeasureCountInConfig, secondary_yaxis: secondaryMeasureCountInConfig, }; } exports.countItemsOnAxes = countItemsOnAxes; function isDisplayFormUri(displayForm) { return displayForm.hasOwnProperty("uri"); } exports.isDisplayFormUri = isDisplayFormUri; //# sourceMappingURL=mdObjectHelper.js.map