Files
iD/modules/osm/qa_item.js
2025-05-06 09:19:00 +02:00

39 lines
941 B
JavaScript

export class QAItem {
constructor(loc, service, itemType, id, props) {
// Store required properties
this.loc = loc;
this.service = service.title;
this.itemType = itemType;
// All issues must have an ID for selection, use generic if none specified
this.id = id ? id : `${QAItem.id()}`;
this.update(props);
// Some QA services have marker icons to differentiate issues
if (service && typeof service.getIcon === 'function') {
this.icon = service.getIcon(itemType);
}
}
update(props) {
// You can't override this initial information
const { loc, service, itemType, id } = this;
Object.keys(props).forEach(prop => this[prop] = props[prop]);
this.loc = loc;
this.service = service;
this.itemType = itemType;
this.id = id;
return this;
}
// Generic handling for newly created QAItems
static id() {
return this.nextId--;
}
}
QAItem.nextId = -1;