UNPKG

@gooddata/react-components

Version:
88 lines 3.53 kB
"use strict"; var __extends = (this && this.__extends) || (function () { var extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); var __assign = (this && this.__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; }; exports.__esModule = true; var React = require("react"); var react_intl_1 = require("react-intl"); var includes = require("lodash/includes"); var get = require("lodash/get"); var isEmpty = require("lodash/isEmpty"); var isString = require("lodash/isString"); var merge = require("lodash/merge"); function replaceEmptyAttributeValues(data, emptyValueString) { if (emptyValueString === void 0) { emptyValueString = ''; } var headers = get(data, 'headers', null); var rawData = get(data, 'rawData', null); if (!headers || !rawData) { return data; } var attributeIndexes = headers .reduce(function (arr, header) { if (header.type === 'attrLabel') { arr.push(data.headers.indexOf(header)); } return arr; }, []); var sanitizedData = merge({}, data); sanitizedData.rawData = rawData.map(function (row) { return row.map(function (value, index) { if (includes(attributeIndexes, index)) { if (isString(value.name) && isEmpty(value.name)) { return __assign({}, value, { name: emptyValueString }); } } return value; }); }); return sanitizedData; } var TranslationsProvider = /** @class */ (function (_super) { __extends(TranslationsProvider, _super); function TranslationsProvider() { return _super !== null && _super.apply(this, arguments) || this; } TranslationsProvider.prototype.render = function () { if (!this.props.result) { return null; } return React.cloneElement(this.props.children, { data: replaceEmptyAttributeValues(this.props.result, this.getEmptyValueString()), numericSymbols: this.getNumericSymbols() }); }; TranslationsProvider.prototype.getNumericSymbols = function () { var _this = this; return [ 'visualization.numericValues.k', 'visualization.numericValues.m', 'visualization.numericValues.g', 'visualization.numericValues.t', 'visualization.numericValues.p', 'visualization.numericValues.e' ].map(function (id) { return _this.props.intl.formatMessage({ id: id }); }); }; TranslationsProvider.prototype.getEmptyValueString = function () { var emptyValueString = this.props.intl.formatMessage({ id: 'visualization.emptyValue' }); return "(" + emptyValueString + ")"; }; return TranslationsProvider; }(React.Component)); exports.TranslationsProvider = TranslationsProvider; exports.IntlTranslationsProvider = react_intl_1.injectIntl(TranslationsProvider); //# sourceMappingURL=TranslationsProvider.js.map