UNPKG

@gooddata/react-components

Version:

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

124 lines • 6.13 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-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(/&lt;|&#60;/g, "<").replace(/&gt;|&#62;/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