UNPKG

@notatki/core

Version:

A collection of tools for creating and syncing Anki notes from simple text files.

125 lines 3.33 kB
export class ModelMap { static basic = { name: "Basic", id: 1607392319, cloze: false, fields: [ { name: "Front", required: true }, { name: "Back", required: true }, ], cards: [ { name: "Card 1", front: "{{Front}}", back: "{{FrontSide}}<hr>{{Back}}", }, ], styling: "", }; static basicAndReversedCard = { name: "Basic (and reversed card)", id: 1607392320, cloze: false, fields: [ { name: "Front", required: true }, { name: "Back", required: true }, ], cards: [ { name: "Card 1", front: "{{Front}}", back: "{{FrontSide}}<hr>{{Back}}", }, { name: "Card 2", front: "{{Back}}", back: "{{FrontSide}}<hr>{{Front}}", }, ], styling: "", }; static basicOptionalReversedCard = { name: "Basic (optional reversed card)", id: 1607392321, cloze: false, fields: [ { name: "Front", required: true }, { name: "Back", required: true }, { name: "Add Reverse", required: false }, ], cards: [ { name: "Card 1", front: "{{Front}}", back: "{{FrontSide}}<hr>{{Back}}", }, { name: "Card 2", front: "{{#Add Reverse}}{{Back}}{{/Add Reverse}}", back: "{{FrontSide}}<hr>{{Front}}", }, ], styling: "", }; static basicTypeInAnswer = { name: "Basic (type in the answer)", id: 1607392322, cloze: false, fields: [ { name: "Front", required: true }, { name: "Back", required: true }, ], cards: [ { name: "Card 1", front: "{{Front}}<br>{{type:Back}}", back: "{{Front}}<hr>{{Back}}", }, ], styling: "", }; static cloze = { name: "Cloze", id: 1607392323, cloze: true, fields: [ { name: "Text", required: true }, { name: "Back Extra", required: false }, ], cards: [ { name: "Cloze", front: "{{cloze:Text}}", back: "{{cloze:Text}}<br>{{Back Extra}}", }, ], styling: "", }; static internal = [ ModelMap.basic, ModelMap.basicAndReversedCard, ModelMap.basicOptionalReversedCard, ModelMap.basicTypeInAnswer, ModelMap.cloze, ]; #map = new Map(); constructor(initial = ModelMap.internal) { for (const model of initial) { this.add(model); } } [Symbol.iterator]() { return this.#map.values(); } add(model) { this.#map.set(model.name.toLowerCase(), model); return this; } has(name) { return this.#map.has(name.toLowerCase()); } get(name) { return this.#map.get(name.toLowerCase()) ?? null; } } //# sourceMappingURL=model.js.map