UNPKG

@gooddata/gooddata-js

Version:
71 lines (70 loc) 2.23 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 }); var AfmUtils_1 = require("./AfmUtils"); /** * Attaches sorts into resultSpec * * @method applySorting * @param {AFM.IResultSpec} resultSpec * @param {AFM.SortItem[]} sortItems * @returns {AFM.IResultSpec} */ function applySorting(resultSpec, sortItems) { if (resultSpec === void 0) { resultSpec = {}; } if (sortItems === void 0) { sortItems = []; } if (sortItems.length === 0) { return resultSpec; } return __assign({}, resultSpec, { sorts: sortItems }); } exports.applySorting = applySorting; function sortItemIsAttribute(sortItem) { return !!sortItem.attributeSortItem; } function sortItemIsMeasure(sortItem) { return !sortItemIsAttribute(sortItem); } function locatorIsMeasure(locator) { return !!locator.measureLocatorItem; } function getSortItemIdentifier(sortItem) { if (sortItemIsAttribute(sortItem)) { return sortItem.attributeSortItem.attributeIdentifier; } if (sortItemIsMeasure(sortItem)) { var locator = sortItem.measureSortItem.locators[0]; if (locatorIsMeasure(locator)) { return locator.measureLocatorItem.measureIdentifier; } } return null; } /** * Returns true if sortItem fits to afm * * @method isSortValid * @param {AFM.IAfm} afm * @param {AFM.SortItem} sortItem * @returns {boolean} */ function isSortValid(afm, sortItem) { if (!sortItem) { return true; } var sortIdentifier = getSortItemIdentifier(sortItem); var normalizedAfm = AfmUtils_1.normalizeAfm(afm); return (normalizedAfm.measures.some(function (m) { return m.localIdentifier === sortIdentifier; }) || normalizedAfm.attributes.some(function (a) { return a.localIdentifier === sortIdentifier; })); } exports.isSortValid = isSortValid;