UNPKG

@e280/quay

Version:

File-browser and outliner UI for the web

23 lines 667 B
import { MapG, sub } from "@e280/stz"; /** Tracks what kind and specimen data is associated with each item id. */ export class Clade { taxonomy; onChange = sub(); #specimens = new MapG(); constructor(taxonomy) { this.taxonomy = taxonomy; } getSpecimen(id) { return this.#specimens.require(id); } setSpecimen(id, kind, specimen) { this.#specimens.set(id, [kind, specimen]); this.onChange.pub(); } query(id) { const [kind, specimen] = this.getSpecimen(id); const taxon = this.taxonomy.taxon(kind); return { kind, taxon, specimen }; } } //# sourceMappingURL=clade.js.map