in modules/ui/sidebar.js [178:277]
function hover(targets) {
var datum = targets && targets.length && targets[0];
if (datum && datum.__featurehash__) { // hovering on data
_wasData = true;
sidebar
.show(dataEditor.datum(datum));
selection.selectAll('.sidebar-component')
.classed('inspector-hover', true);
} else if (datum && datum.__fbid__) { // hovering on RapiD data
_wasRapiD = true;
sidebar
.show(rapidInspector.datum(datum));
selection.selectAll('.sidebar-component')
.classed('inspector-hover', true)
.classed('rapid-inspector-fadein', true);
} else if (datum instanceof osmNote) {
if (context.mode().id === 'drag-note') return;
_wasNote = true;
var osm = services.osm;
if (osm) {
datum = osm.getNote(datum.id); // marker may contain stale data - get latest
}
sidebar
.show(noteEditor.note(datum));
selection.selectAll('.sidebar-component')
.classed('inspector-hover', true);
} else if (datum instanceof QAItem) {
_wasQaItem = true;
var errService = services[datum.service];
if (errService) {
// marker may contain stale data - get latest
datum = errService.getError(datum.id);
}
// Currently only three possible services
var errEditor;
if (datum.service === 'keepRight') {
errEditor = keepRightEditor;
} else if (datum.service === 'osmose') {
errEditor = osmoseEditor;
} else {
errEditor = improveOsmEditor;
}
context.container().selectAll('.qaItem.' + datum.service)
.classed('hover', function(d) { return d.id === datum.id; });
sidebar
.show(errEditor.error(datum));
selection.selectAll('.sidebar-component')
.classed('inspector-hover', true);
} else if (!_current && (datum instanceof osmEntity)) {
featureListWrap
.classed('inspector-hidden', true);
inspectorWrap
.classed('inspector-hidden', false)
.classed('inspector-hover', true);
if (!inspector.entityIDs() || !utilArrayIdentical(inspector.entityIDs(), [datum.id]) || inspector.state() !== 'hover') {
inspector
.state('hover')
.entityIDs([datum.id])
.newFeature(false);
inspectorWrap
.call(inspector);
}
} else if (!_current) {
featureListWrap
.classed('inspector-hidden', false);
inspectorWrap
.classed('inspector-hidden', true);
inspector
.state('hide');
} else if (_wasRapiD || _wasData || _wasNote || _wasQaItem) {
_wasRapiD = false;
_wasNote = false;
_wasData = false;
_wasQaItem = false;
context.container().selectAll('.layer-ai-features .hover').classed('hover', false);
context.container().selectAll('.note').classed('hover', false);
context.container().selectAll('.qaItem').classed('hover', false);
sidebar.hide();
}
}