@gooddata/react-components
Version:
GoodData.UI - A powerful JavaScript library for building analytical applications
34 lines (28 loc) • 1.32 kB
text/typescript
// (C) 2019-2020 GoodData Corporation
import get = require("lodash/get");
import isEmpty = require("lodash/isEmpty");
import { VisualizationObject } from "@gooddata/typings";
import { SECONDARY_MEASURES } from "../constants/bucketNames";
export function findBucketByLocalIdentifier(
buckets: VisualizationObject.IBucket[],
bucketName: string,
): VisualizationObject.IBucket {
return (buckets || []).find(bucket => bucket.localIdentifier === bucketName);
}
export function getBucketItems(
buckets: VisualizationObject.IBucket[],
localIdentifier: string,
): VisualizationObject.BucketItem[] {
return get(findBucketByLocalIdentifier(buckets, localIdentifier), "items", []);
}
export function isBucketEmpty(buckets: VisualizationObject.IBucket[], bucketName: string): boolean {
return isEmpty(getBucketItems(buckets, bucketName));
}
export function getSecondaryMeasuresLocalIdentifiers(buckets: VisualizationObject.IBucket[]): string[] {
return getBucketItems(buckets, SECONDARY_MEASURES).map((item: VisualizationObject.BucketItem) =>
get(item, "measure.localIdentifier"),
);
}
export const filterOutEmptyBuckets = (
buckets: VisualizationObject.IBucket[],
): VisualizationObject.IBucket[] => buckets.filter(bucket => !isBucketEmpty(buckets, bucket.localIdentifier));