UNPKG

maplibre-gl

Version:

BSD licensed community fork of mapbox-gl, a WebGL interactive maps library

28 lines (22 loc) 986 B
import {plugin as rtlTextPlugin} from '../source/rtl_text_plugin'; import type SymbolStyleLayer from '../style/style_layer/symbol_style_layer'; import type {Feature} from '../style-spec/expression'; import Formatted from '../style-spec/expression/types/formatted'; function transformTextInternal(text: string, layer: SymbolStyleLayer, feature: Feature) { const transform = layer.layout.get('text-transform').evaluate(feature, {}); if (transform === 'uppercase') { text = text.toLocaleUpperCase(); } else if (transform === 'lowercase') { text = text.toLocaleLowerCase(); } if (rtlTextPlugin.applyArabicShaping) { text = rtlTextPlugin.applyArabicShaping(text); } return text; } export default function transformText(text: Formatted, layer: SymbolStyleLayer, feature: Feature): Formatted { text.sections.forEach(section => { section.text = transformTextInternal(section.text, layer, feature); }); return text; }