@gooddata/react-components
Version:
GoodData.UI - A powerful JavaScript library for building analytical applications
131 lines • 5.92 kB
JavaScript
;
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