3672b0fe73
* Only collect card stats on the backend ... ... instead of rendering an HTML string using askama. * Add ts page Card Info * Update test for new `col.card_stats()` * Remove obsolete CardStats code * Use new ts page in `CardInfoDialog` * Align start and end instead of left and right Curiously, `text-align: start` does not work for `th` tags if assigned via classes. * Adopt ts refactorings after rebase #1405 and #1409 * Clean up `ts/card-info/BUILD.bazel` * Port card info logic from Rust to TS * Move repeated field to the top https://github.com/ankitects/anki/pull/1414#discussion_r725402730 * Convert pseudo classes to interfaces * CardInfoPage -> CardInfo * Make revlog in card info optional * Add legacy support for old card stats * Check for undefined instead of falsy * Make Revlog separate component * drop askama dependency (dae) * Fix nightmode for legacy card stats
33 lines
833 B
TypeScript
33 lines
833 B
TypeScript
// Copyright: Ankitects Pty Ltd and contributors
|
|
// License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
|
|
|
import { anki } from "./backend_proto";
|
|
|
|
import Cards = anki.cards;
|
|
import DeckConfig = anki.deckconfig;
|
|
import Generic = anki.generic;
|
|
import Notetypes = anki.notetypes;
|
|
import Scheduler = anki.scheduler;
|
|
import Stats = anki.stats;
|
|
import Tags = anki.tags;
|
|
|
|
export { Stats, Cards, DeckConfig, Notetypes, Scheduler, Tags };
|
|
|
|
export function unwrapOptionalNumber(
|
|
msg:
|
|
| Generic.IInt64
|
|
| Generic.IUInt32
|
|
| Generic.IInt32
|
|
| Generic.OptionalInt32
|
|
| Generic.OptionalUInt32
|
|
| null
|
|
| undefined
|
|
): number | undefined {
|
|
if (msg && msg !== null) {
|
|
if (msg.val !== null) {
|
|
return msg.val;
|
|
}
|
|
}
|
|
return undefined;
|
|
}
|