import { t } from '../core/localizer'; import { svgIcon } from '../svg/icon'; export function uiNoteHeader() { var _note; function noteHeader(selection) { var header = selection.selectAll('.note-header') .data( (_note ? [_note] : []), function(d) { return d.status + d.id; } ); header.exit() .remove(); var headerEnter = header.enter() .append('div') .attr('class', 'note-header'); var iconEnter = headerEnter .append('div') .attr('class', function(d) { return 'note-header-icon ' + d.status; }) .classed('new', function(d) { return d.id < 0; }); iconEnter .append('div') .attr('class', 'preset-icon-28') .call(svgIcon('#iD-icon-note', 'note-fill')); iconEnter.each(function(d) { var statusIcon; if (d.id < 0) { statusIcon = '#iD-icon-plus'; } else if (d.status === 'open') { statusIcon = '#iD-icon-close'; } else { statusIcon = '#iD-icon-apply'; } iconEnter .append('div') .attr('class', 'note-icon-annotation') .call(svgIcon(statusIcon, 'icon-annotation')); }); headerEnter .append('div') .attr('class', 'note-header-label') .html(function(d) { if (_note.isNew()) { return t('note.new'); } return t('note.note') + ' ' + d.id + ' ' + (d.status === 'closed' ? t('note.closed') : ''); }); } noteHeader.note = function(val) { if (!arguments.length) return _note; _note = val; return noteHeader; }; return noteHeader; }