UNPKG

@gooddata/react-components

Version:

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

131 lines 5.92 kB
"use strict"; 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) 2007-2021 GoodData Corporation var typings_1 = require("@gooddata/typings"); var invariant = require("invariant"); var mappingHeader_1 = require("./mappingHeader"); function findInDimensionHeaders(dimensions, headerCallback) { var returnValue = null; for (var dimensionIndex = 0; dimensionIndex < dimensions.length; dimensionIndex++) { var dimension = dimensions[dimensionIndex]; for (var headerIndex = 0; headerIndex < dimension.headers.length; headerIndex++) { var wrappedHeader = dimension.headers[headerIndex]; var headerType = Object.keys(wrappedHeader)[0]; var header = wrappedHeader[headerType]; var headerCount = dimension.headers.length; returnValue = headerCallback(headerType, header, dimensionIndex, headerIndex, headerCount); if (!!returnValue) { break; } } if (!!returnValue) { break; } } return returnValue; } exports.findInDimensionHeaders = findInDimensionHeaders; function findMeasureGroupInDimensions(dimensions) { return findInDimensionHeaders(dimensions, function (headerType, header, _dimensionIndex, headerIndex, headerCount) { var measureGroupHeader = headerType === "measureGroupHeader" ? header : null; if (measureGroupHeader) { invariant(headerIndex === headerCount - 1, "MeasureGroup must be the last header in it's dimension"); } return measureGroupHeader; }); } exports.findMeasureGroupInDimensions = findMeasureGroupInDimensions; function findAttributeInDimension(dimension, attributeHeaderItemsDimension, indexInDimension) { return findInDimensionHeaders([dimension], function (headerType, header, _dimensionIndex, headerIndex) { if (headerType === "attributeHeader" && (indexInDimension === undefined || indexInDimension === headerIndex)) { return __assign({}, header, { // attribute items are delivered separately from attributeHeaderItems items: attributeHeaderItemsDimension[indexInDimension ? indexInDimension : 0] }); } return null; }); } exports.findAttributeInDimension = findAttributeInDimension; function findMeasureHeaderByLocalIdentifier(executionResponse, localIdentifier) { var responseMeasureGroup = findMeasureGroupInDimensions(executionResponse.dimensions); if (!responseMeasureGroup) { return null; } var header = responseMeasureGroup.items.find(function (header) { return mappingHeader_1.getMappingHeaderLocalIdentifier(header) === localIdentifier; }); return header ? header : null; } exports.findMeasureHeaderByLocalIdentifier = findMeasureHeaderByLocalIdentifier; function getNthAttributeHeader(attributeHeaders, headerIndex) { if (attributeHeaders.length && attributeHeaders[headerIndex]) { return attributeHeaders[headerIndex].attributeHeader; } return null; } exports.getNthAttributeHeader = getNthAttributeHeader; function getNthAttributeLocalIdentifier(rowAttributeHeaders, headerIndex) { var attributeHeader = getNthAttributeHeader(rowAttributeHeaders, headerIndex); return attributeHeader && attributeHeader.localIdentifier; } exports.getNthAttributeLocalIdentifier = getNthAttributeLocalIdentifier; function getNthAttributeName(rowAttributeHeaders, headerIndex) { var attributeHeader = getNthAttributeHeader(rowAttributeHeaders, headerIndex); return attributeHeader && attributeHeader.formOf.name; } exports.getNthAttributeName = getNthAttributeName; function getNthDimensionHeaders(executionResponse, headerIndex) { if (executionResponse.dimensions.length && executionResponse.dimensions[headerIndex]) { return executionResponse.dimensions[headerIndex].headers; } return null; } exports.getNthDimensionHeaders = getNthDimensionHeaders; function getHeaderItemName(headerItem) { if (headerItem && typings_1.Execution.isAttributeHeaderItem(headerItem)) { return headerItem.attributeHeaderItem.name; } return ""; } exports.getHeaderItemName = getHeaderItemName; function getAttributeHeadersInDimension(dimensions) { return dimensions.reduce(function (result, dimension) { var headers = dimension.headers; var filteredAttributeHeaders = headers.reduce(function (result, header) { if (typings_1.Execution.isAttributeHeader(header)) { result.push(header.attributeHeader); } return result; }, []); return result.concat(filteredAttributeHeaders); }, []); } exports.getAttributeHeadersInDimension = getAttributeHeadersInDimension; function getMeasureGroupHeaderItemsInDimension(dimensions) { return dimensions.reduce(function (result, dimension) { var headers = dimension.headers; var filteredMeasureHeaders = headers.reduce(function (result, header) { if (typings_1.Execution.isMeasureGroupHeader(header)) { return result.concat(header.measureGroupHeader.items); } return result; }, []); return result.concat(filteredMeasureHeaders); }, []); } exports.getMeasureGroupHeaderItemsInDimension = getMeasureGroupHeaderItemsInDimension; function isTwoDimensionsData(data) { return Array.isArray(data[0]); } exports.isTwoDimensionsData = isTwoDimensionsData; //# sourceMappingURL=executionResultHelper.js.map