UNPKG

anki-apkg-generator

Version:
127 lines (94 loc) 3.57 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.ModelKinds = void 0; function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } var ModelKinds; exports.ModelKinds = ModelKinds; (function (ModelKinds) { ModelKinds[ModelKinds["Standard"] = 0] = "Standard"; ModelKinds[ModelKinds["Close"] = 1] = "Close"; })(ModelKinds || (exports.ModelKinds = ModelKinds = {})); class Model { constructor(card) { _defineProperty(this, "id", void 0); _defineProperty(this, "name", ''); _defineProperty(this, "sticky", false); _defineProperty(this, "rtl", false); _defineProperty(this, "fields", void 0); _defineProperty(this, "sortIndex", 0); _defineProperty(this, "kind", ModelKinds.Standard); _defineProperty(this, "card", void 0); _defineProperty(this, "latexPre", '\\documentclass[12pt]{article}\n\\special{papersize=3in,5in}\n\\usepackage[utf8]{inputenc}\n\\usepackage{amssymb,amsmath}\n\\pagestyle{empty}\n\\setlength{\\parindent}{0in}\n\\begin{document}\n'); _defineProperty(this, "latexPost", '\\end{document}'); _defineProperty(this, "latexsvg", false); this.fields = []; this.id = Date.now(); this.card = card; } setName(name) { this.name = name; return this; } setId(id) { this.id = id; return this; } setFields(fields) { this.fields = fields; return this; } setSortIndex(index) { this.sortIndex = index; return this; } setRtl(rtl) { this.rtl = rtl; return this; } setSticky(sticky) { this.sticky = sticky; return this; } setLatexPre(latexPre) { this.latexPre = latexPre; return this; } setLatexPost(latexPost) { this.latexPost = latexPost; return this; } setLatexsvg(latexsvg) { this.latexsvg = latexsvg; return this; } setKind(type) { this.kind = type; return this; } toJSON(deckId) { return { id: this.id, name: this.name, did: deckId, type: this.kind, mod: Date.now(), usn: -1, flds: this.fields.map((field, index) => _objectSpread(_objectSpread({}, field), {}, { sticky: index === 1, rtl: this.rtl // other: null // @TODO what's meaning? })), sortf: this.sortIndex, // 排序fields index tmpls: this.card.templates, css: this.card.css, latexPre: this.latexPre, latexPost: this.latexPost, latexsvg: this.latexsvg // 用dvisvgm创建可缩放的图片 }; } } exports.default = Model;