mirror of
https://github.com/FoggedLens/iD.git
synced 2026-02-13 01:02:58 +00:00
34 lines
1.2 KiB
JavaScript
34 lines
1.2 KiB
JavaScript
import { presetManager } from '../presets';
|
|
import { utilDisplayName, utilDisplayType } from './util';
|
|
|
|
/**
|
|
* `utilDisplayLabel` returns a string suitable for display
|
|
*
|
|
* By default returns something like name/ref, fallback to preset type, fallback to OSM type
|
|
* "Main Street" or "Tertiary Road"
|
|
*
|
|
* If `verbose=true`, include both preset name and feature name.
|
|
* "Tertiary Road Main Street"
|
|
* @param {osmEntity} entity
|
|
* @param {string | unknown} graphOrGeometry
|
|
* @param {boolean} [verbose]
|
|
* @returns {string}
|
|
*/
|
|
export function utilDisplayLabel(entity, graphOrGeometry, verbose) {
|
|
var result;
|
|
var displayName = utilDisplayName(entity);
|
|
var preset = typeof graphOrGeometry === 'string' ?
|
|
presetManager.matchTags(entity.tags, graphOrGeometry) :
|
|
presetManager.match(entity, graphOrGeometry);
|
|
var presetName = preset && (preset.suggestion ? preset.subtitle() : preset.name());
|
|
|
|
if (verbose) {
|
|
result = [presetName, displayName].filter(Boolean).join(' ');
|
|
} else {
|
|
result = displayName || presetName;
|
|
}
|
|
|
|
// Fallback to the OSM type (node/way/relation)
|
|
return result || utilDisplayType(entity.id);
|
|
}
|