@gooddata/react-components
Version:
GoodData React Components
88 lines • 3.53 kB
JavaScript
;
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