fix dependency cycle caused by utilDisplayLabel importing presetManager

This commit is contained in:
Kyle Hensel
2024-08-24 11:31:20 +10:00
parent 9469ee2e24
commit 90c4241723
20 changed files with 55 additions and 46 deletions
-1
View File
@@ -19,7 +19,6 @@ export { utilDetect } from './detect';
export { utilDisplayName } from './util';
export { utilDisplayNameForPath } from './util';
export { utilDisplayType } from './util';
export { utilDisplayLabel } from './util';
export { utilEntityRoot } from './util';
export { utilEditDistance } from './util';
export { utilEntityAndDeepMemberIDs } from './util';
-27
View File
@@ -1,7 +1,6 @@
import { remove as removeDiacritics } from 'diacritics';
import { fixRTLTextForSvg, rtlRegex } from './svg_paths_rtl_fix';
import { presetManager } from '../presets';
import { t, localizer } from '../core/localizer';
import { utilArrayUnion } from './array';
import { utilDetect } from './detect';
@@ -244,32 +243,6 @@ export function utilDisplayType(id) {
}
// `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"
//
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);
}
export function utilEntityRoot(entityType) {
return {
node: 'n',
+33
View File
@@ -0,0 +1,33 @@
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);
}