UNPKG

@gooddata/react-components

Version:

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

67 lines 3.01 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) 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