UNPKG

@superset-ui/core

Version:
100 lines (93 loc) 2.62 kB
/** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ import { CurrencyFormatter, ensureIsArray, getNumberFormatter, isSavedMetric } from '@superset-ui/core'; export const buildCustomFormatters = ( metrics, savedCurrencyFormats, savedColumnFormats, d3Format, currencyFormat) => { const metricsArray = ensureIsArray(metrics); return metricsArray.reduce((acc, metric) => { if (isSavedMetric(metric)) { const actualD3Format = d3Format != null ? d3Format : savedColumnFormats[metric]; const actualCurrencyFormat = currencyFormat != null && currencyFormat.symbol ? currencyFormat : savedCurrencyFormats[metric]; return actualCurrencyFormat ? { ...acc, [metric]: new CurrencyFormatter({ d3Format: actualD3Format, currency: actualCurrencyFormat }) } : { ...acc, [metric]: getNumberFormatter(actualD3Format) }; } return acc; }, {}); }; export const getCustomFormatter = ( customFormatters, metrics, key) => { const metricsArray = ensureIsArray(metrics); if (metricsArray.length === 1 && isSavedMetric(metricsArray[0])) { return customFormatters[metricsArray[0]]; } return key ? customFormatters[key] : undefined; }; export const getValueFormatter = ( metrics, savedCurrencyFormats, savedColumnFormats, d3Format, currencyFormat, key) => { const customFormatter = getCustomFormatter( buildCustomFormatters( metrics, savedCurrencyFormats, savedColumnFormats, d3Format, currencyFormat ), metrics, key ); if (customFormatter) { return customFormatter; } if (currencyFormat != null && currencyFormat.symbol) { return new CurrencyFormatter({ currency: currencyFormat, d3Format }); } return getNumberFormatter(d3Format); }; //# sourceMappingURL=utils.js.map