UNPKG

@mcdevsl/superset-ui

Version:
50 lines (42 loc) 1.62 kB
import { Encodable, ColorSchemeResolver, TimeFormatResolver, CategoricalColorScaleResolver, defaultColorSchemeResolver, addPrefix, } from 'encodable'; import { CategoricalColorNamespace, getCategoricalSchemeRegistry, getSequentialSchemeRegistry, getNumberFormatter, getTimeFormatter, LOCAL_PREFIX, getTimeFormatterRegistry, } from '@superset-ui/core'; const timeFormat: TimeFormatResolver = ({ format, formatInLocalTime = false } = {}) => { const formatString = formatInLocalTime ? addPrefix(LOCAL_PREFIX, format ?? getTimeFormatterRegistry().getDefaultKey()!) : format; return getTimeFormatter(formatString); }; const colorSchemeResolver: ColorSchemeResolver = ({ name, type = 'categorical' } = {}) => { if (type === 'sequential') { const scheme = getSequentialSchemeRegistry().get(name); return typeof scheme === 'undefined' ? scheme : { type: 'sequential', ...scheme }; } if (type === 'categorical') { const scheme = getCategoricalSchemeRegistry().get(name); return typeof scheme === 'undefined' ? scheme : { type: 'categorical', ...scheme }; } return defaultColorSchemeResolver({ name, type }); }; const colorScaleResolver: CategoricalColorScaleResolver = ({ name, namespace } = {}) => CategoricalColorNamespace.getScale(name, namespace); export default function configureEncodable() { Encodable.setNumberFormatResolver(getNumberFormatter) .setTimeFormatResolver(timeFormat) .setColorSchemeResolver(colorSchemeResolver) .setCategoricalColorScaleResolver(colorScaleResolver); }