@gooddata/react-components
Version:
GoodData.UI - A powerful JavaScript library for building analytical applications
67 lines • 3.01 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) 2019-2020 GoodData Corporation
var React = require("react");
var omit = require("lodash/omit");
var noop = require("lodash/noop");
var get = require("lodash/get");
var GeoChart_1 = require("./core/GeoChart");
var DataSourceProvider_1 = require("./afm/DataSourceProvider");
var conversion_1 = require("../helpers/conversion");
var dimensions_1 = require("../helpers/dimensions");
var resultSpec_1 = require("../helpers/resultSpec");
var utils_1 = require("../helpers/utils");
var bucketNames_1 = require("../constants/bucketNames");
exports.getBuckets = function (props) {
var color = props.color, location = props.location, segmentBy = props.segmentBy, size = props.size, config = props.config;
var buckets = [
{
localIdentifier: bucketNames_1.SIZE,
items: size ? [utils_1.disableBucketItemComputeRatio(size)] : [],
},
{
localIdentifier: bucketNames_1.COLOR,
items: color ? [utils_1.disableBucketItemComputeRatio(color)] : [],
},
{
localIdentifier: bucketNames_1.LOCATION,
items: location ? [location] : [],
},
{
localIdentifier: bucketNames_1.SEGMENT,
items: segmentBy ? [segmentBy] : [],
},
];
var tooltipText = get(config, bucketNames_1.TOOLTIP_TEXT);
if (tooltipText) {
buckets.push({
localIdentifier: bucketNames_1.TOOLTIP_TEXT,
items: [tooltipText],
});
}
return buckets;
};
// noop is never called because resultSpec is always provided
var DataSourceProvider = DataSourceProvider_1.dataSourceProvider(GeoChart_1.GeoChart, noop, "GeoPushpinChart");
function GeoPushpinChart(props) {
var sortBy = props.sortBy, filters = props.filters, exportTitle = props.exportTitle;
var buckets = exports.getBuckets(props);
var afm = conversion_1.convertBucketsToAFM(buckets, filters);
var resultSpec = resultSpec_1.getResultSpec(buckets, sortBy, dimensions_1.getGeoChartDimensions);
var newProps = omit(__assign({}, props), [bucketNames_1.LOCATION, bucketNames_1.COLOR, bucketNames_1.SIZE, "segmentBy", "filters", "sortBy"]);
newProps.config = __assign({}, newProps.config, { mdObject: conversion_1.convertBucketsToMdObject(buckets, props.filters, "local:pushpin") });
return React.createElement(DataSourceProvider, __assign({}, newProps, { afm: afm, resultSpec: resultSpec, exportTitle: exportTitle }));
}
exports.GeoPushpinChart = GeoPushpinChart;
//# sourceMappingURL=GeoPushpinChart.js.map