@gooddata/react-components
Version:
GoodData.UI - A powerful JavaScript library for building analytical applications
124 lines • 6.13 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-2020 GoodData Corporation
var setWith = require("lodash/setWith");
var clone = require("lodash/clone");
var get = require("lodash/get");
var includes = require("lodash/includes");
var rxjs_1 = require("rxjs");
var operators_1 = require("rxjs/operators");
var numberjs_1 = require("@gooddata/numberjs");
var visualizationTypes_1 = require("../../../constants/visualizationTypes");
// lodash/fp does not provide typings
// https://stackoverflow.com/questions/38020019/where-can-i-find-typescript-typings-for-lodash-fp
/* tslint:disable */
var isEqual = require("lodash/fp/isEqual");
/* tslint:enable */
function parseValue(value) {
var parsedValue = parseFloat(value);
return isNaN(parsedValue) ? null : parsedValue;
}
exports.parseValue = parseValue;
exports.immutableSet = function (dataSet, path, newValue) {
return setWith(__assign({}, dataSet), path, newValue, clone);
};
exports.repeatItemsNTimes = function (array, n) {
return new Array(n).fill(null).reduce(function (result) { return result.concat(array); }, []);
};
function subscribeEvent(event, debounce, func, target) {
if (target === void 0) { target = window; }
if (debounce > 0) {
return rxjs_1.fromEvent(target, event)
.pipe(operators_1.debounceTime(debounce))
.subscribe(func);
}
return rxjs_1.fromEvent(target, event).subscribe(func);
}
exports.subscribeEvent = subscribeEvent;
function subscribeEvents(func, events, target) {
if (target === void 0) { target = window; }
return events.map(function (event) {
return subscribeEvent(event.name, event.debounce, func, target);
});
}
exports.subscribeEvents = subscribeEvents;
exports.unEscapeAngleBrackets = function (str) {
return str && str.replace(/<|</g, "<").replace(/>|>/g, ">");
};
function getAttributeElementIdFromAttributeElementUri(attributeElementUri) {
var match = "/elements?id=";
return attributeElementUri.slice(attributeElementUri.lastIndexOf(match) + match.length);
}
exports.getAttributeElementIdFromAttributeElementUri = getAttributeElementIdFromAttributeElementUri;
function isRotationInRange(rotation, min, max) {
return rotation >= min && rotation <= max;
}
exports.isRotationInRange = isRotationInRange;
exports.isTable = isEqual(visualizationTypes_1.VisualizationTypes.TABLE);
exports.isColumnChart = isEqual(visualizationTypes_1.VisualizationTypes.COLUMN);
exports.isBarChart = isEqual(visualizationTypes_1.VisualizationTypes.BAR);
exports.isBulletChart = isEqual(visualizationTypes_1.VisualizationTypes.BULLET);
exports.isLineChart = isEqual(visualizationTypes_1.VisualizationTypes.LINE);
exports.isScatterPlot = isEqual(visualizationTypes_1.VisualizationTypes.SCATTER);
exports.isPieChart = isEqual(visualizationTypes_1.VisualizationTypes.PIE);
exports.isDonutChart = isEqual(visualizationTypes_1.VisualizationTypes.DONUT);
exports.isPieOrDonutChart = function (type) { return exports.isPieChart(type) || exports.isDonutChart(type); };
exports.isAreaChart = isEqual(visualizationTypes_1.VisualizationTypes.AREA);
exports.isBubbleChart = isEqual(visualizationTypes_1.VisualizationTypes.BUBBLE);
exports.isHeadline = isEqual(visualizationTypes_1.VisualizationTypes.HEADLINE);
exports.isComboChart = function (type) {
return isEqual(type, visualizationTypes_1.VisualizationTypes.COMBO) || isEqual(type, visualizationTypes_1.VisualizationTypes.COMBO2);
};
exports.isTreemap = isEqual(visualizationTypes_1.VisualizationTypes.TREEMAP);
exports.isFunnelChart = isEqual(visualizationTypes_1.VisualizationTypes.FUNNEL);
exports.isHeatmap = isEqual(visualizationTypes_1.VisualizationTypes.HEATMAP);
exports.isPushpin = isEqual(visualizationTypes_1.VisualizationTypes.PUSHPIN);
exports.isInvertedChartType = function (type) { return exports.isBarChart(type) || exports.isBulletChart(type); };
exports.isChartSupported = function (type) { return includes(visualizationTypes_1.VisualizationTypes, type); };
exports.isOneOfTypes = function (type, types) { return includes(types, type); };
exports.isPrimaryYAxis = function (yAxis) { return !yAxis.opposite; };
exports.stringifyChartTypes = function () {
return Object.keys(visualizationTypes_1.VisualizationTypes)
.reduce(function (acc, type) {
acc.push(visualizationTypes_1.VisualizationTypes[type]);
return acc;
}, [])
.join(", ");
};
function formatLegendLabel(value, format, diff, numericSymbols) {
if (format && format.includes("%")) {
return numberjs_1.numberFormat(value, "#,#0%");
}
var sign = Math.sign(value) === -1 ? "-" : "";
var positiveValue = Math.abs(value);
var formattingString = "";
if (diff < 10) {
formattingString += "[<1]0.00;[<10]#.#;[<100]#.#;";
}
var k = diff < 10000
? "[<999500]0;"
: "[<1000]0;[<10000]#.#," + numericSymbols[0] + ";[<999500]#," + numericSymbols[0] + ";";
var m = "[<10000000]#.#,," + numericSymbols[1] + ";[<999500000]#,," + numericSymbols[1] + ";";
var b = "[<10000000000]#.#,,," + numericSymbols[2] + ";[<999500000000]#,,," + numericSymbols[2] + ";";
var t = "[<10000000000000]#.#,,," + numericSymbols[3] + ";[>=10000000000000]#,,," + numericSymbols[3];
formattingString += k + m + b + t;
return sign + numberjs_1.numberFormat(positiveValue, formattingString);
}
exports.formatLegendLabel = formatLegendLabel;
exports.getPrimaryChartType = function (chartOptions) {
var series = get(chartOptions, "data.series", []);
var targetSeries = series.find(function (item) { return item.yAxis === 0; });
return get(targetSeries, "type", chartOptions.type);
};
//# sourceMappingURL=common.js.map