@gooddata/react-components
Version:
GoodData.UI - A powerful JavaScript library for building analytical applications
93 lines • 4.68 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) 2020 GoodData Corporation
var DrillEvents_1 = require("../../../interfaces/DrillEvents");
var agGridDrilling_1 = require("../../core/pivotTable/agGridDrilling");
var afmHelper_1 = require("../../../helpers/afmHelper");
var drilldownEventing_1 = require("./drilldownEventing");
var common_1 = require("./common");
var convertIntersectionToLegacy = function (intersection, afm) {
return intersection.map(function (intersectionItem) {
var header = intersectionItem.header;
if (DrillEvents_1.isDrillIntersectionAttributeItem(header)) {
var _a = header.attributeHeaderItem, itemUri = _a.uri, name_1 = _a.name;
var _b = header.attributeHeader, uri = _b.uri, identifier = _b.identifier;
return drilldownEventing_1.createDrillIntersectionElement(common_1.getAttributeElementIdFromAttributeElementUri(itemUri), name_1, uri, identifier);
}
return convertMeasureHeaderItem(header, afm);
});
};
var convertPointToLegacy = function (afm) { return function (point) {
return __assign({}, point, { intersection: convertIntersectionToLegacy(point.intersection, afm) });
}; };
var convertChartsDrillContextToLegacy = function (drillContext, afm) {
var isGroup = !!drillContext.points;
var convertedProp = isGroup
? {
points: drillContext.points.map(convertPointToLegacy(afm)),
}
: {
intersection: convertIntersectionToLegacy(drillContext.intersection, afm),
};
return __assign({}, drillContext, convertedProp);
};
var convertMeasureHeaderItem = function (header, afm) {
if (!DrillEvents_1.isMappingMeasureHeaderItem(header)) {
throw new Error("Converting wrong item type, IMeasureHeaderItem expected!");
}
var _a = header.measureHeaderItem, localIdentifier = _a.localIdentifier, name = _a.name, headerUri = _a.uri, headerIdentifier = _a.identifier;
var masterMeasureQualifier = afmHelper_1.getMasterMeasureObjQualifier(afm, localIdentifier);
if (!masterMeasureQualifier) {
throw new Error("The metric ids has not been found in execution request!");
}
var id = localIdentifier;
var uri = masterMeasureQualifier.uri || headerUri;
var identifier = masterMeasureQualifier.identifier || headerIdentifier;
return drilldownEventing_1.createDrillIntersectionElement(id, name, uri, identifier);
};
function convertHeadlineDrillIntersectionToLegacy(intersectionExtended, afm) {
return intersectionExtended
.filter(function (_a) {
var header = _a.header;
return DrillEvents_1.isMappingMeasureHeaderItem(header);
})
.map(function (intersectionElement) {
var header = intersectionElement.header;
var _a = header.measureHeaderItem, localIdentifier = _a.localIdentifier, name = _a.name;
var masterMeasureQualifier = afmHelper_1.getMasterMeasureObjQualifier(afm, localIdentifier);
if (!masterMeasureQualifier) {
throw new Error("The metric ids has not been found in execution request!");
}
return drilldownEventing_1.createDrillIntersectionElement(localIdentifier, name, masterMeasureQualifier.uri, masterMeasureQualifier.identifier);
});
}
function convertHeadlineDrillContextToLegacy(drillContext, executionContext) {
var type = drillContext.type, element = drillContext.element, value = drillContext.value;
return {
type: type,
element: element,
value: value,
intersection: convertHeadlineDrillIntersectionToLegacy(drillContext.intersection, executionContext),
};
}
exports.convertDrillContextToLegacy = function (drillContext, executionContext) {
if (DrillEvents_1.isDrillEventContextTableExtended(drillContext)) {
return agGridDrilling_1.convertPivotTableDrillContextToLegacy(drillContext, executionContext);
}
if (DrillEvents_1.isDrillEventContextHeadlineExtended(drillContext) || DrillEvents_1.isDrillEventContextXirrExtended(drillContext)) {
return convertHeadlineDrillContextToLegacy(drillContext, executionContext);
}
return convertChartsDrillContextToLegacy(drillContext, executionContext);
};
//# sourceMappingURL=drilldownEventingLegacy.js.map