From e41a9f5ffa6625452be038d3b5bcee2ebfa93847 Mon Sep 17 00:00:00 2001 From: Ronny Zulaikha <75528127+ronzulu@users.noreply.github.com> Date: Tue, 16 Jan 2024 04:12:13 +1100 Subject: [PATCH 01/12] Fixes bug #670 apply label customisation easy/good/hard uniformly across buttons & menu (#835) * Updated code and language files * pnpm format & lint --- CHANGELOG.md | 2 +- CONTRIBUTING.md | 2 +- docs/changelog.md | 4 ++++ src/TopicPath.ts | 1 - src/lang/locale/ar.ts | 8 ++------ src/lang/locale/cz.ts | 8 ++------ src/lang/locale/de.ts | 8 ++------ src/lang/locale/en.ts | 8 ++------ src/lang/locale/es.ts | 8 ++------ src/lang/locale/ja.ts | 8 ++------ src/lang/locale/ko.ts | 8 ++------ src/lang/locale/pt-br.ts | 8 ++------ src/lang/locale/ru.ts | 8 ++------ src/lang/locale/zh-cn.ts | 8 ++------ src/lang/locale/zh-tw.ts | 8 ++------ src/main.ts | 30 ++++++++++++++++++++++++------ 16 files changed, 52 insertions(+), 75 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1bed66b3..1cc39a66 120000 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1 +1 @@ -docs/changelog.md \ No newline at end of file +docs/changelog.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 651dc17d..9815d5bd 120000 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1 +1 @@ -docs/en/contributing.md \ No newline at end of file +docs/en/contributing.md diff --git a/docs/changelog.md b/docs/changelog.md index a9f239b5..6fbbdfe3 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file. Dates are d Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). +#### [Unreleased] + +- Bug 670 Label customizations not applying to menu items + #### [1.11.0](https://github.com/st3v3nmw/obsidian-spaced-repetition/compare/1.10.5...1.11.0) - chore: Update dependencies [`#824`](https://github.com/st3v3nmw/obsidian-spaced-repetition/pull/824) diff --git a/src/TopicPath.ts b/src/TopicPath.ts index 6ced4afc..6b34bc20 100644 --- a/src/TopicPath.ts +++ b/src/TopicPath.ts @@ -1,7 +1,6 @@ import { SRSettings } from "src/settings"; import { OBSIDIAN_TAG_AT_STARTOFLINE_REGEX } from "./constants"; import { ISRFile } from "./SRFile"; -import { stringTrimStart } from "./util/utils"; export class TopicPath { path: string[]; diff --git a/src/lang/locale/ar.ts b/src/lang/locale/ar.ts index fdc6769e..94af4100 100644 --- a/src/lang/locale/ar.ts +++ b/src/lang/locale/ar.ts @@ -25,12 +25,8 @@ export default { // main.ts OPEN_NOTE_FOR_REVIEW: "افتح الملاحظة للمراجعة", REVIEW_CARDS: "مراجعة البطاقات", - REVIEW_EASY_FILE_MENU: "مراجعة: سهل", - REVIEW_GOOD_FILE_MENU: "مراجعة: جيد", - REVIEW_HARD_FILE_MENU: "مراجعة: صعب", - REVIEW_NOTE_EASY_CMD: "مراجعة الملاحظة كـ سهلة", - REVIEW_NOTE_GOOD_CMD: "مراجعة الملاحظة كـ جيدة", - REVIEW_NOTE_HARD_CMD: "مراجعة الملاحظة كـ صعبة", + REVIEW_DIFFICULTY_FILE_MENU: "${difficulty} :مراجعة", + REVIEW_NOTE_DIFFICULTY_CMD: "${difficulty} مراجعة الملاحظة كـ", CRAM_ALL_CARDS: "حدد رُزمَة للحشر", REVIEW_ALL_CARDS: "مراجعة البطاقات من جميع الملاحظات", REVIEW_CARDS_IN_NOTE: "مراجعة البطاقات من هذه الملاحظة", diff --git a/src/lang/locale/cz.ts b/src/lang/locale/cz.ts index cd741860..ba0c5686 100644 --- a/src/lang/locale/cz.ts +++ b/src/lang/locale/cz.ts @@ -25,12 +25,8 @@ export default { // main.ts OPEN_NOTE_FOR_REVIEW: "Otevřít poznámku k revizi", REVIEW_CARDS: "Poznámek k revizi", - REVIEW_EASY_FILE_MENU: "Revize: Jednoduché", - REVIEW_GOOD_FILE_MENU: "Revize: Dobré", - REVIEW_HARD_FILE_MENU: "Revize: Těžké", - REVIEW_NOTE_EASY_CMD: "Označit poznámku jako jednoduchou", - REVIEW_NOTE_GOOD_CMD: "Označit poznámku jako dobrou", - REVIEW_NOTE_HARD_CMD: "Označit poznámku jako težkou", + REVIEW_DIFFICULTY_FILE_MENU: "Revize: ${difficulty}", + REVIEW_NOTE_DIFFICULTY_CMD: "Označit poznámku jako ${difficulty}", REVIEW_ALL_CARDS: "Revidovat kartičky ve všech poznámkách", CRAM_ALL_CARDS: "Select a deck to cram", REVIEW_CARDS_IN_NOTE: "Revidovat kartičky v této poznámce.", diff --git a/src/lang/locale/de.ts b/src/lang/locale/de.ts index b5384410..3b2b7bac 100644 --- a/src/lang/locale/de.ts +++ b/src/lang/locale/de.ts @@ -28,12 +28,8 @@ export default { // main.ts OPEN_NOTE_FOR_REVIEW: "Notiz zur Wiederholung öffnen", REVIEW_CARDS: "Lernkarten wiederholen", - REVIEW_EASY_FILE_MENU: "Notiz abschliessen als: Einfach", - REVIEW_GOOD_FILE_MENU: "Notiz abschliessen als: Gut", - REVIEW_HARD_FILE_MENU: "Notiz abschliessen als: Schwer", - REVIEW_NOTE_EASY_CMD: "Notiz abschliessen als: Einfach", - REVIEW_NOTE_GOOD_CMD: "Notiz abschliessen als: Gut", - REVIEW_NOTE_HARD_CMD: "Notiz abschliessen als: Schwer", + REVIEW_DIFFICULTY_FILE_MENU: "Notiz abschliessen als: ${difficulty}", + REVIEW_NOTE_DIFFICULTY_CMD: "Notiz abschliessen als: ${difficulty}", REVIEW_ALL_CARDS: "Alle Lernkarten wiederholen", CRAM_ALL_CARDS: "Select a deck to cram", REVIEW_CARDS_IN_NOTE: "Lernkarten in dieser Notiz wiederholen", diff --git a/src/lang/locale/en.ts b/src/lang/locale/en.ts index 4a5e76ad..d90ce51e 100644 --- a/src/lang/locale/en.ts +++ b/src/lang/locale/en.ts @@ -25,12 +25,8 @@ export default { // main.ts OPEN_NOTE_FOR_REVIEW: "Open a note for review", REVIEW_CARDS: "Review flashcards", - REVIEW_EASY_FILE_MENU: "Review: Easy", - REVIEW_GOOD_FILE_MENU: "Review: Good", - REVIEW_HARD_FILE_MENU: "Review: Hard", - REVIEW_NOTE_EASY_CMD: "Review note as easy", - REVIEW_NOTE_GOOD_CMD: "Review note as good", - REVIEW_NOTE_HARD_CMD: "Review note as hard", + REVIEW_DIFFICULTY_FILE_MENU: "Review: ${difficulty}", + REVIEW_NOTE_DIFFICULTY_CMD: "Review note as ${difficulty}", CRAM_ALL_CARDS: "Select a deck to cram", REVIEW_ALL_CARDS: "Review flashcards from all notes", REVIEW_CARDS_IN_NOTE: "Review flashcards in this note", diff --git a/src/lang/locale/es.ts b/src/lang/locale/es.ts index a4c91163..7b1df99b 100644 --- a/src/lang/locale/es.ts +++ b/src/lang/locale/es.ts @@ -25,12 +25,8 @@ export default { // main.ts OPEN_NOTE_FOR_REVIEW: "Abrir nota para revisión", REVIEW_CARDS: "Revisar Tarjetas", - REVIEW_EASY_FILE_MENU: "Revisar: Fácil", - REVIEW_GOOD_FILE_MENU: "Revisar: Bien", - REVIEW_HARD_FILE_MENU: "Revisar: Difícil", - REVIEW_NOTE_EASY_CMD: "Revisar nota como fácil", - REVIEW_NOTE_GOOD_CMD: "Revisar nota como bien", - REVIEW_NOTE_HARD_CMD: "Revisar nota como difícil", + REVIEW_DIFFICULTY_FILE_MENU: "Revisar: ${difficulty}", + REVIEW_NOTE_DIFFICULTY_CMD: "Revisar nota como ${difficulty}", CRAM_ALL_CARDS: "Selecciona un mazo a memorizar", REVIEW_ALL_CARDS: "Revisar tarjetas de todas las notas", REVIEW_CARDS_IN_NOTE: "Revisar tarjetas en esta nota", diff --git a/src/lang/locale/ja.ts b/src/lang/locale/ja.ts index 47a24766..e296225d 100644 --- a/src/lang/locale/ja.ts +++ b/src/lang/locale/ja.ts @@ -25,12 +25,8 @@ export default { // main.ts OPEN_NOTE_FOR_REVIEW: "レビューするノートを開く", REVIEW_CARDS: "フラッシュカードのレビュー", - REVIEW_EASY_FILE_MENU: "レビュー: Easy", - REVIEW_GOOD_FILE_MENU: "レビュー: Good", - REVIEW_HARD_FILE_MENU: "レビュー: Hard", - REVIEW_NOTE_EASY_CMD: "ノートをEasyとしてレビューする", - REVIEW_NOTE_GOOD_CMD: "ノートをGoodとしてレビューする", - REVIEW_NOTE_HARD_CMD: "ノートをHardとしてレビューする", + REVIEW_DIFFICULTY_FILE_MENU: "レビュー: ${difficulty}", + REVIEW_NOTE_DIFFICULTY_CMD: "ノートを${difficulty}としてレビューする", REVIEW_ALL_CARDS: "すべてのノートからフラッシュカードをレビューする", CRAM_ALL_CARDS: "Select a deck to cram", REVIEW_CARDS_IN_NOTE: "このノートのフラッシュカードをレビューする", diff --git a/src/lang/locale/ko.ts b/src/lang/locale/ko.ts index f3408acd..b7347e85 100644 --- a/src/lang/locale/ko.ts +++ b/src/lang/locale/ko.ts @@ -25,12 +25,8 @@ export default { // main.ts OPEN_NOTE_FOR_REVIEW: "리뷰할 노트 열기", REVIEW_CARDS: "플래시카드 리뷰", - REVIEW_EASY_FILE_MENU: "리뷰: 쉬움(Easy)", - REVIEW_GOOD_FILE_MENU: "리뷰: 좋음(Good)", - REVIEW_HARD_FILE_MENU: "리뷰: 어려움(Hard)", - REVIEW_NOTE_EASY_CMD: "노트를 쉬움(easy)으로 리뷰합니다", - REVIEW_NOTE_GOOD_CMD: "노트를 좋음(good)으로 리뷰합니다", - REVIEW_NOTE_HARD_CMD: "노트를 어려움(hard)으로 리뷰합니다", + REVIEW_DIFFICULTY_FILE_MENU: "리뷰: ${difficulty}", + REVIEW_NOTE_DIFFICULTY_CMD: "노트를 ${difficulty}으로 리뷰합니다", REVIEW_ALL_CARDS: "모든 노트들의 플래시카드들을 리뷰합니다", CRAM_ALL_CARDS: "Select a deck to cram", REVIEW_CARDS_IN_NOTE: "이 노트의 플래시카드들을 리뷰합니다", diff --git a/src/lang/locale/pt-br.ts b/src/lang/locale/pt-br.ts index 2d309ada..0f2a6c57 100644 --- a/src/lang/locale/pt-br.ts +++ b/src/lang/locale/pt-br.ts @@ -26,12 +26,8 @@ export default { // main.ts OPEN_NOTE_FOR_REVIEW: "Abrir uma nota para revisar", REVIEW_CARDS: "Revisar flashcards", - REVIEW_EASY_FILE_MENU: "Revisão: Fácil", - REVIEW_GOOD_FILE_MENU: "Revisão: OK", - REVIEW_HARD_FILE_MENU: "Revisão: Difícil", - REVIEW_NOTE_EASY_CMD: "Revisar nota como fácil", - REVIEW_NOTE_GOOD_CMD: "Revisar nota como OK", - REVIEW_NOTE_HARD_CMD: "Revisar nota como difícil", + REVIEW_DIFFICULTY_FILE_MENU: "Revisão: ${difficulty}", + REVIEW_NOTE_DIFFICULTY_CMD: "Revisar nota como ${difficulty}", REVIEW_ALL_CARDS: "Revisar flashcards de todas as notas", CRAM_ALL_CARDS: "Select a deck to cram", REVIEW_CARDS_IN_NOTE: "Revisar flashcards nessa nota", diff --git a/src/lang/locale/ru.ts b/src/lang/locale/ru.ts index 6bf7d666..46cc5a92 100644 --- a/src/lang/locale/ru.ts +++ b/src/lang/locale/ru.ts @@ -31,12 +31,8 @@ export default { // main.ts OPEN_NOTE_FOR_REVIEW: "Открыть заметку для повторения", REVIEW_CARDS: "Повторить карточки", - REVIEW_EASY_FILE_MENU: "Повторение: Легко", - REVIEW_GOOD_FILE_MENU: "Повторение: Нормально", - REVIEW_HARD_FILE_MENU: "Повторение: Сложно", - REVIEW_NOTE_EASY_CMD: "Повторять заметку как Лёгкую", - REVIEW_NOTE_GOOD_CMD: "Повторять заметку как Нормальную", - REVIEW_NOTE_HARD_CMD: "Повторять заметку как Сложную", + REVIEW_DIFFICULTY_FILE_MENU: "Повторение: ${difficulty}", + REVIEW_NOTE_DIFFICULTY_CMD: "Повторять заметку как ${difficulty}", CRAM_ALL_CARDS: "Зубрить все карточки в этой колоде", REVIEW_ALL_CARDS: "Повторить все карточки во всех заметках", REVIEW_CARDS_IN_NOTE: "Повторить карточки в этой заметке", diff --git a/src/lang/locale/zh-cn.ts b/src/lang/locale/zh-cn.ts index 390ba1f0..41c5defd 100644 --- a/src/lang/locale/zh-cn.ts +++ b/src/lang/locale/zh-cn.ts @@ -25,12 +25,8 @@ export default { // main.ts OPEN_NOTE_FOR_REVIEW: "打开一个笔记开始复习", REVIEW_CARDS: "复习卡片", - REVIEW_EASY_FILE_MENU: "复习:简单", - REVIEW_GOOD_FILE_MENU: "复习:记得", - REVIEW_HARD_FILE_MENU: "复习:较难", - REVIEW_NOTE_EASY_CMD: "标记为“简单”", - REVIEW_NOTE_GOOD_CMD: "标记为“记得”", - REVIEW_NOTE_HARD_CMD: "标记为“较难”", + REVIEW_DIFFICULTY_FILE_MENU: "复习:${difficulty}", + REVIEW_NOTE_DIFFICULTY_CMD: "标记为“${difficulty}”", REVIEW_ALL_CARDS: "复习所有笔记中的卡片", CRAM_ALL_CARDS: "选择要集中复习的卡组", REVIEW_CARDS_IN_NOTE: "复习此笔记中的卡片", diff --git a/src/lang/locale/zh-tw.ts b/src/lang/locale/zh-tw.ts index 93c2fe35..afbd8643 100644 --- a/src/lang/locale/zh-tw.ts +++ b/src/lang/locale/zh-tw.ts @@ -25,12 +25,8 @@ export default { // main.ts OPEN_NOTE_FOR_REVIEW: "打開一個筆記開始復習", REVIEW_CARDS: "復習卡片", - REVIEW_EASY_FILE_MENU: "復習:簡單", - REVIEW_GOOD_FILE_MENU: "復習:記得", - REVIEW_HARD_FILE_MENU: "復習:較難", - REVIEW_NOTE_EASY_CMD: "標記為「簡單」", - REVIEW_NOTE_GOOD_CMD: "標記為「記得」", - REVIEW_NOTE_HARD_CMD: "標記為「較難」", + REVIEW_DIFFICULTY_FILE_MENU: "復習:${difficulty}", + REVIEW_NOTE_DIFFICULTY_CMD: "標記為「${difficulty}」", REVIEW_CARDS_IN_NOTE: "復習此筆記中的卡片", CRAM_ALL_CARDS: "選擇要不計難易度復習的牌組", REVIEW_ALL_CARDS: "復習所有筆記中的卡片", diff --git a/src/main.ts b/src/main.ts index e5a6d698..da911009 100644 --- a/src/main.ts +++ b/src/main.ts @@ -120,7 +120,11 @@ export default class SRPlugin extends Plugin { this.app.workspace.on("file-menu", (menu, fileish: TAbstractFile) => { if (fileish instanceof TFile && fileish.extension === "md") { menu.addItem((item) => { - item.setTitle(t("REVIEW_EASY_FILE_MENU")) + item.setTitle( + t("REVIEW_DIFFICULTY_FILE_MENU", { + difficulty: this.data.settings.flashcardEasyText, + }), + ) .setIcon("SpacedRepIcon") .onClick(() => { this.saveReviewResponse(fileish, ReviewResponse.Easy); @@ -128,7 +132,11 @@ export default class SRPlugin extends Plugin { }); menu.addItem((item) => { - item.setTitle(t("REVIEW_GOOD_FILE_MENU")) + item.setTitle( + t("REVIEW_DIFFICULTY_FILE_MENU", { + difficulty: this.data.settings.flashcardGoodText, + }), + ) .setIcon("SpacedRepIcon") .onClick(() => { this.saveReviewResponse(fileish, ReviewResponse.Good); @@ -136,7 +144,11 @@ export default class SRPlugin extends Plugin { }); menu.addItem((item) => { - item.setTitle(t("REVIEW_HARD_FILE_MENU")) + item.setTitle( + t("REVIEW_DIFFICULTY_FILE_MENU", { + difficulty: this.data.settings.flashcardHardText, + }), + ) .setIcon("SpacedRepIcon") .onClick(() => { this.saveReviewResponse(fileish, ReviewResponse.Hard); @@ -160,7 +172,9 @@ export default class SRPlugin extends Plugin { this.addCommand({ id: "srs-note-review-easy", - name: t("REVIEW_NOTE_EASY_CMD"), + name: t("REVIEW_NOTE_DIFFICULTY_CMD", { + difficulty: this.data.settings.flashcardEasyText, + }), callback: () => { const openFile: TFile | null = this.app.workspace.getActiveFile(); if (openFile && openFile.extension === "md") { @@ -171,7 +185,9 @@ export default class SRPlugin extends Plugin { this.addCommand({ id: "srs-note-review-good", - name: t("REVIEW_NOTE_GOOD_CMD"), + name: t("REVIEW_NOTE_DIFFICULTY_CMD", { + difficulty: this.data.settings.flashcardGoodText, + }), callback: () => { const openFile: TFile | null = this.app.workspace.getActiveFile(); if (openFile && openFile.extension === "md") { @@ -182,7 +198,9 @@ export default class SRPlugin extends Plugin { this.addCommand({ id: "srs-note-review-hard", - name: t("REVIEW_NOTE_HARD_CMD"), + name: t("REVIEW_NOTE_DIFFICULTY_CMD", { + difficulty: this.data.settings.flashcardHardText, + }), callback: () => { const openFile: TFile | null = this.app.workspace.getActiveFile(); if (openFile && openFile.extension === "md") { From 9b81cdf784f1d1283132801587b3a3b15a70ad58 Mon Sep 17 00:00:00 2001 From: Michail Sygkelakis Date: Mon, 15 Jan 2024 18:16:29 +0100 Subject: [PATCH 02/12] fix:multiLineTextFinder to handle null return value from find method (#830) --- src/util/MultiLineTextFinder.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/util/MultiLineTextFinder.ts b/src/util/MultiLineTextFinder.ts index 7977e6c6..a21d579a 100644 --- a/src/util/MultiLineTextFinder.ts +++ b/src/util/MultiLineTextFinder.ts @@ -12,8 +12,11 @@ export class MultiLineTextFinder { } else { const sourceTextArray = splitTextIntoLineArray(sourceText); const searchTextArray = splitTextIntoLineArray(searchText); - const lineNo: number = MultiLineTextFinder.find(sourceTextArray, searchTextArray); - if (lineNo) { + const lineNo: number | null = MultiLineTextFinder.find( + sourceTextArray, + searchTextArray, + ); + if (lineNo !== null) { const replacementTextArray = splitTextIntoLineArray(replacementText); const linesToRemove: number = searchTextArray.length; sourceTextArray.splice(lineNo, linesToRemove, ...replacementTextArray); From 17fad0cdf5c91529074d1e9317f2bc57b90dd5ed Mon Sep 17 00:00:00 2001 From: Andrea V <1577639+karimodm@users.noreply.github.com> Date: Mon, 15 Jan 2024 18:29:21 +0100 Subject: [PATCH 03/12] Fix/bug 424 review next cache race (#821) * Sort reviewdecks with updated due after review * Comment * Lint and Format * Simpler code * Deal with new notes reviews * Format * Comment typo * Lint fix * Changelog --------- Co-authored-by: Stephen Mwangi --- docs/changelog.md | 6 ++++ src/main.ts | 81 +++++++++++++++++++++++++++++++++-------------- 2 files changed, 64 insertions(+), 23 deletions(-) diff --git a/docs/changelog.md b/docs/changelog.md index 6fbbdfe3..ecad38b6 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -6,6 +6,12 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). #### [Unreleased] +- Bug fix Note review doesn't open next note automatically after a review [`#424`](https://github.com/st3v3nmw/obsidian-spaced-repetition/issues/424), [`#582`](https://github.com/st3v3nmw/obsidian-spaced-repetition/issues/582) +- Feat: Support richer set of flashcard ordering during review; e.g. random card from random deck [`#814`](https://github.com/st3v3nmw/obsidian-spaced-repetition/issues/814) +- Bug fix Problem with nested list item's indentation [`#800`](https://github.com/st3v3nmw/obsidian-spaced-repetition/issues/800) +- Bug fix Problem with nested list item's indentation [`#812`](https://github.com/st3v3nmw/obsidian-spaced-repetition/issues/812) +- Bug Cloze Breaks When }} Encountered [`#799`](https://github.com/st3v3nmw/obsidian-spaced-repetition/issues/799) +- Bug fix: When reviewing an entire note, the metadata is applied incorrectly (on top of the already existing metadata) [`#776`](https://github.com/st3v3nmw/obsidian-spaced-repetition/issues/776 - Bug 670 Label customizations not applying to menu items #### [1.11.0](https://github.com/st3v3nmw/obsidian-spaced-repetition/compare/1.10.5...1.11.0) diff --git a/src/main.ts b/src/main.ts index da911009..3c282e9f 100644 --- a/src/main.ts +++ b/src/main.ts @@ -346,8 +346,6 @@ export default class SRPlugin extends Plugin { this.easeByPath = new NoteEaseList(this.data.settings); this.incomingLinks = {}; this.pageranks = {}; - this.dueNotesCount = 0; - this.dueDatesNotes = {}; this.reviewDecks = {}; // reset flashcards stuff @@ -449,13 +447,6 @@ export default class SRPlugin extends Plugin { .moment(frontmatter["sr-due"], ["YYYY-MM-DD", "DD-MM-YYYY", "ddd MMM DD YYYY"]) .valueOf(); - for (const matchedNoteTag of matchedNoteTags) { - this.reviewDecks[matchedNoteTag].scheduledNotes.push({ note: noteFile, dueUnix }); - if (dueUnix <= now.valueOf()) { - this.reviewDecks[matchedNoteTag].dueNotesCount++; - } - } - let ease: number; if (this.easeByPath.hasEaseForPath(noteFile.path)) { ease = (this.easeByPath.getEaseByPath(noteFile.path) + frontmatter["sr-ease"]) / 2; @@ -464,15 +455,10 @@ export default class SRPlugin extends Plugin { } this.easeByPath.setEaseForPath(noteFile.path, ease); - if (dueUnix <= now.valueOf()) { - this.dueNotesCount++; - } - - const nDays: number = Math.ceil((dueUnix - now.valueOf()) / (24 * 3600 * 1000)); - if (!Object.prototype.hasOwnProperty.call(this.dueDatesNotes, nDays)) { - this.dueDatesNotes[nDays] = 0; + // schedule the note + for (const matchedNoteTag of matchedNoteTags) { + this.reviewDecks[matchedNoteTag].scheduledNotes.push({ note: noteFile, dueUnix }); } - this.dueDatesNotes[nDays]++; } graph.rank(0.85, 0.000001, (node: string, rank: number) => { @@ -497,10 +483,6 @@ export default class SRPlugin extends Plugin { console.log(`SR: ${t("DECKS")}`, this.deckTree); } - for (const deckKey in this.reviewDecks) { - this.reviewDecks[deckKey].sortNotes(this.pageranks); - } - if (this.data.settings.showDebugMessages) { console.log( "SR: " + @@ -510,6 +492,36 @@ export default class SRPlugin extends Plugin { ); } + this.updateAndSortDueNotes(); + + this.syncLock = false; + } + + private updateAndSortDueNotes() { + this.dueNotesCount = 0; + this.dueDatesNotes = {}; + + const now = window.moment(Date.now()); + Object.values(this.reviewDecks).forEach((reviewDeck: ReviewDeck) => { + reviewDeck.dueNotesCount = 0; + reviewDeck.scheduledNotes.forEach((scheduledNote: SchedNote) => { + if (scheduledNote.dueUnix <= now.valueOf()) { + reviewDeck.dueNotesCount++; + this.dueNotesCount++; + } + + const nDays: number = Math.ceil( + (scheduledNote.dueUnix - now.valueOf()) / (24 * 3600 * 1000), + ); + if (!Object.prototype.hasOwnProperty.call(this.dueDatesNotes, nDays)) { + this.dueDatesNotes[nDays] = 0; + } + this.dueDatesNotes[nDays]++; + }); + + reviewDeck.sortNotes(this.pageranks); + }); + this.statusBar.setText( t("STATUS_BAR", { dueNotesCount: this.dueNotesCount, @@ -518,7 +530,6 @@ export default class SRPlugin extends Plugin { ); if (this.data.settings.enableNoteReviewPaneOnStartup) this.reviewQueueView.redraw(); - this.syncLock = false; } async loadNote(noteFile: TFile, topicPath: TopicPath): Promise { @@ -663,9 +674,33 @@ export default class SRPlugin extends Plugin { } await this.app.vault.modify(note, fileText); + // Update note's properties to update our due notes. + this.easeByPath.setEaseForPath(note.path, ease); + + Object.values(this.reviewDecks).forEach((reviewDeck: ReviewDeck) => { + let wasDueInDeck = false; + for (const scheduledNote of reviewDeck.scheduledNotes) { + if (scheduledNote.note.path === note.path) { + scheduledNote.dueUnix = due.valueOf(); + wasDueInDeck = true; + break; + } + } + + // It was a new note, remove it from the new notes and schedule it. + if (!wasDueInDeck) { + reviewDeck.newNotes.splice( + reviewDeck.newNotes.findIndex((newNote: TFile) => newNote.path === note.path), + 1, + ); + reviewDeck.scheduledNotes.push({ note, dueUnix: due.valueOf() }); + } + }); + + this.updateAndSortDueNotes(); + new Notice(t("RESPONSE_RECEIVED")); - await this.sync(); if (this.data.settings.autoNextNote) { this.reviewNextNote(this.lastSelectedReviewDeck); } From fd7dacf00adeb46614841ce619e45fbf33cec4d6 Mon Sep 17 00:00:00 2001 From: Ivan Kalashnikov <53004350+Steindvart@users.noreply.github.com> Date: Tue, 16 Jan 2024 00:36:53 +0700 Subject: [PATCH 04/12] [FIX] Bug #841. (#842) * Remove only non-letter symbols from header string. * `changelog.md` is updated. * Code style fixes. --- docs/changelog.md | 1 + src/constants.ts | 1 + src/util/RenderMarkdownWrapper.ts | 9 +++++++-- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/docs/changelog.md b/docs/changelog.md index ecad38b6..5865dd00 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -6,6 +6,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). #### [Unreleased] +- Bug 841 fix: Incorrect display of the card content when the title embedded-link is inserted in not English note [`#842`](https://github.com/st3v3nmw/obsidian-spaced-repetition/pull/842) - Bug fix Note review doesn't open next note automatically after a review [`#424`](https://github.com/st3v3nmw/obsidian-spaced-repetition/issues/424), [`#582`](https://github.com/st3v3nmw/obsidian-spaced-repetition/issues/582) - Feat: Support richer set of flashcard ordering during review; e.g. random card from random deck [`#814`](https://github.com/st3v3nmw/obsidian-spaced-repetition/issues/814) - Bug fix Problem with nested list item's indentation [`#800`](https://github.com/st3v3nmw/obsidian-spaced-repetition/issues/800) diff --git a/src/constants.ts b/src/constants.ts index 8acd7a40..18d11626 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -3,6 +3,7 @@ export const SCHEDULING_INFO_REGEX = /^---\r?\n((?:.*\r?\n)*)sr-due: (.+)\r?\nsr-interval: (\d+)\r?\nsr-ease: (\d+)\r?\n((?:.*\r?\n)?)---/; export const YAML_FRONT_MATTER_REGEX = /^---\r?\n((?:.*\r?\n)*?)---/; +export const NON_LETTER_SYMBOLS_REGEX = /[!-/:-@[-`{-~}\s]/g; export const MULTI_SCHEDULING_EXTRACTOR = /!([\d-]+),(\d+),(\d+)/gm; export const LEGACY_SCHEDULING_EXTRACTOR = //gm; diff --git a/src/util/RenderMarkdownWrapper.ts b/src/util/RenderMarkdownWrapper.ts index f084a59f..8b82f763 100644 --- a/src/util/RenderMarkdownWrapper.ts +++ b/src/util/RenderMarkdownWrapper.ts @@ -1,5 +1,10 @@ import { App, MarkdownRenderer, TFile } from "obsidian"; -import { AUDIO_FORMATS, IMAGE_FORMATS, VIDEO_FORMATS } from "../constants"; +import { + AUDIO_FORMATS, + IMAGE_FORMATS, + VIDEO_FORMATS, + NON_LETTER_SYMBOLS_REGEX, +} from "../constants"; import SRPlugin from "../main"; export class RenderMarkdownWrapper { @@ -119,7 +124,7 @@ export class RenderMarkdownWrapper { const text = await this.app.vault.cachedRead(link.target); let blockText; if (link.heading) { - const clean = (s: string) => s.replace(/[\W\s]/g, ""); + const clean = (s: string) => s.replace(NON_LETTER_SYMBOLS_REGEX, ""); const headingIndex = cache.headings?.findIndex( (h) => clean(h.heading) === clean(link.heading), ); From 35ba72240a09edc225ee12ffb3f5cc14f30cb71f Mon Sep 17 00:00:00 2001 From: Ivan Kalashnikov <53004350+Steindvart@users.noreply.github.com> Date: Tue, 16 Jan 2024 00:44:35 +0700 Subject: [PATCH 05/12] Completion and improvement of `ru` translation. (#838) * Settings of cards order on review - `ru` translation. * Typo fixes, choosing more semantically accurate language constructs, language style is improved. * `changelog.md` is updated. * Lint format. --- docs/changelog.md | 1 + src/lang/locale/ru.ts | 133 +++++++++++++++++++++--------------------- 2 files changed, 69 insertions(+), 65 deletions(-) diff --git a/docs/changelog.md b/docs/changelog.md index 5865dd00..98cd5b1a 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -6,6 +6,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). #### [Unreleased] +- Completion and improvement of `ru` translation [`#838`](https://github.com/st3v3nmw/obsidian-spaced-repetition/pull/838) - Bug 841 fix: Incorrect display of the card content when the title embedded-link is inserted in not English note [`#842`](https://github.com/st3v3nmw/obsidian-spaced-repetition/pull/842) - Bug fix Note review doesn't open next note automatically after a review [`#424`](https://github.com/st3v3nmw/obsidian-spaced-repetition/issues/424), [`#582`](https://github.com/st3v3nmw/obsidian-spaced-repetition/issues/582) - Feat: Support richer set of flashcard ordering during review; e.g. random card from random deck [`#814`](https://github.com/st3v3nmw/obsidian-spaced-repetition/issues/814) diff --git a/src/lang/locale/ru.ts b/src/lang/locale/ru.ts index 46cc5a92..c6fdf5f6 100644 --- a/src/lang/locale/ru.ts +++ b/src/lang/locale/ru.ts @@ -6,10 +6,13 @@ // Микко Ведру // https://github.com/mikkovedru +// Калашников Иван +// https://github.com/Steindvart + export default { // flashcard-modal.tsx DECKS: "Колоды", - DUE_CARDS: "Предстоящие карточки", + DUE_CARDS: "Повторяемые карточки", NEW_CARDS: "Новые карточки", TOTAL_CARDS: "Всего карточек", BACK: "Назад", @@ -20,85 +23,86 @@ export default { GOOD: "Нормально", EASY: "Легко", SHOW_ANSWER: "Показать ответ", - CARD_PROGRESS_RESET: "Сбросить прогресс изучение карточки", + CARD_PROGRESS_RESET: "Сбросить прогресс изучения карточки", SAVE: "Сохранить", CANCEL: "Отмена", NO_INPUT: "Пустой ввод.", - CURRENT_EASE_HELP_TEXT: "Текущая Легкость: ", + CURRENT_EASE_HELP_TEXT: "Текущий прогресс: ", CURRENT_INTERVAL_HELP_TEXT: "Текущий интервал: ", CARD_GENERATED_FROM: "Сгенерированно из: ${notePath}", // main.ts - OPEN_NOTE_FOR_REVIEW: "Открыть заметку для повторения", - REVIEW_CARDS: "Повторить карточки", - REVIEW_DIFFICULTY_FILE_MENU: "Повторение: ${difficulty}", - REVIEW_NOTE_DIFFICULTY_CMD: "Повторять заметку как ${difficulty}", + OPEN_NOTE_FOR_REVIEW: "Открыть заметку для изучения", + REVIEW_CARDS: "Изучать карточки", + REVIEW_DIFFICULTY_FILE_MENU: "Изучение: ${difficulty}", + REVIEW_NOTE_DIFFICULTY_CMD: "Изучать заметку как ${difficulty}", CRAM_ALL_CARDS: "Зубрить все карточки в этой колоде", - REVIEW_ALL_CARDS: "Повторить все карточки во всех заметках", - REVIEW_CARDS_IN_NOTE: "Повторить карточки в этой заметке", + REVIEW_ALL_CARDS: "Изучать все карточки во всех заметках", + REVIEW_CARDS_IN_NOTE: "Изучать карточки в этой заметке", CRAM_CARDS_IN_NOTE: "Зубрить карточки в этой заметке", VIEW_STATS: "Посмотреть статистику", - STATUS_BAR: - "Повторить: ${dueNotesCount} заметок(-ки), ${dueFlashcardsCount} карточек(-ки) предстоит", + STATUS_BAR: "Повторить: ${dueNotesCount} заметок, ${dueFlashcardsCount} карточек", SYNC_TIME_TAKEN: "Синхронизация заняла ${t}мс", NOTE_IN_IGNORED_FOLDER: "Заметка сохранена в игнорируемую папку (см. настройки).", - PLEASE_TAG_NOTE: "Пожалуйста пометьте заметку как надо для повторения (см. настройки).", + PLEASE_TAG_NOTE: "Для изучения, пожалуйста, правильно пометьте заметку тегом (см. настройки).", RESPONSE_RECEIVED: "Ответ получен.", NO_DECK_EXISTS: "Не существует уровня ${deckName}", ALL_CAUGHT_UP: "Молодец! Ты справился и дошел до конца! :D", // scheduling.ts DAYS_STR_IVL: "${interval} дней", - MONTHS_STR_IVL: "${interval} месяцов", - YEARS_STR_IVL: "${interval} года (лет)", + MONTHS_STR_IVL: "${interval} месяцев", + YEARS_STR_IVL: "${interval} годов", DAYS_STR_IVL_MOBILE: "${interval}д.", MONTHS_STR_IVL_MOBILE: "${interval}м.", YEARS_STR_IVL_MOBILE: "${interval}г.", // settings.ts SETTINGS_HEADER: "Плагин Spaced Repetition - Настройки", - CHECK_WIKI: 'Для доп. инфы, смотри wiki.', + CHECK_WIKI: 'Для дополнительной информации посетите: wiki.', FOLDERS_TO_IGNORE: "Игнорируемые папки", FOLDERS_TO_IGNORE_DESC: - "Ведите пути папок, каждая на своей строке, например: Templates Meta/Scripts", + "Укажите пути папок, каждый на своей строке, например: Templates Meta/Scripts", FLASHCARDS: "Карточки", - FLASHCARD_EASY_LABEL: "Текст кнопки Легко", - FLASHCARD_GOOD_LABEL: "Текст кнопки Нормально", - FLASHCARD_HARD_LABEL: "Текст кнопки Сложно", + FLASHCARD_EASY_LABEL: 'Текст кнопки "Легко"', + FLASHCARD_GOOD_LABEL: 'Текст кнопки "Нормально"', + FLASHCARD_HARD_LABEL: 'Текст кнопки "Сложно"', FLASHCARD_EASY_DESC: 'Настроить ярлык для кнопки "Легко"', FLASHCARD_GOOD_DESC: 'Настроить ярлык для кнопки "Нормально"', FLASHCARD_HARD_DESC: 'Настроить ярлык для кнопки "Сложно"', - FLASHCARD_TAGS: "Тэги карточек", + FLASHCARD_TAGS: "Теги карточек", FLASHCARD_TAGS_DESC: - "Ведите тэги разделенные Enter-ом или пробелом, например: #flashcards #deck2 #deck3.", + "Укажите теги разделенные Enter-ом или пробелом, например: #flashcards #deck2 #deck3.", CONVERT_FOLDERS_TO_DECKS: "Конвертировать папки в уровни и подуровни?", - CONVERT_FOLDERS_TO_DECKS_DESC: "Это альтернатива тэгам карточек, настройка сверху.", + CONVERT_FOLDERS_TO_DECKS_DESC: "Это альтернатива описанному выше варианту тегов флэш-карт", INLINE_SCHEDULING_COMMENTS: "Сохранять комментарий планирования на последней строке карточки?", INLINE_SCHEDULING_COMMENTS_DESC: "Включение этой настройки сделает так, что HTML комментарии не будут ломать форматирование списка.", - BURY_SIBLINGS_TILL_NEXT_DAY: "Прятать родственные карточки до след. дня?", + BURY_SIBLINGS_TILL_NEXT_DAY: "Прятать родственные карточки до следующего дня?", BURY_SIBLINGS_TILL_NEXT_DAY_DESC: "Родственные карточки - те, которые образованы из одного текста, пример: карточки с пропусками ([...])", - SHOW_CARD_CONTEXT: "Показывать контекст(уровень) в карточках(во время повторения)?", + SHOW_CARD_CONTEXT: "Показывать контекст (уровень) в карточках (во время повторения)?", SHOW_CARD_CONTEXT_DESC: "пример: Title > Heading 1 > Subheading > ... > Subheading", - CARD_MODAL_HEIGHT_PERCENT: "Высота карточки впроцентах", + CARD_MODAL_HEIGHT_PERCENT: "Высота карточки в процентах", CARD_MODAL_SIZE_PERCENT_DESC: - "Если пользуетесь мобильным телефоном, выставьте 100% или у вас будут огромные изображения", - RESET_DEFAULT: "Настройки по умолчанию", + "Если пользуетесь мобильным телефоном, выставьте 100%. Иначе у вас будут огромные изображения", + RESET_DEFAULT: "Настройки по-умолчанию", CARD_MODAL_WIDTH_PERCENT: "Ширина карточки в процентах", - RANDOMIZE_CARD_ORDER: "Случайный порядок карточек во время повторения?", - REVIEW_CARD_ORDER_WITHIN_DECK: "Order cards in a deck are displayed during review", - REVIEW_CARD_ORDER_NEW_FIRST_SEQUENTIAL: "Sequentially within a deck (All new cards first)", - REVIEW_CARD_ORDER_DUE_FIRST_SEQUENTIAL: "Sequentially within a deck (All due cards first)", - REVIEW_CARD_ORDER_NEW_FIRST_RANDOM: "Randomly within a deck (All new cards first)", - REVIEW_CARD_ORDER_DUE_FIRST_RANDOM: "Randomly within a deck (All due cards first)", - REVIEW_CARD_ORDER_RANDOM_DECK_AND_CARD: "Random card from random deck", - REVIEW_DECK_ORDER: "Order decks are displayed during review", + RANDOMIZE_CARD_ORDER: "Случайный порядок карт во время изучения?", + REVIEW_CARD_ORDER_WITHIN_DECK: "Порядок отображения карт колоды во время изучения", + REVIEW_CARD_ORDER_NEW_FIRST_SEQUENTIAL: + "Последовательно внутри колоды (сначала все новые карты)", + REVIEW_CARD_ORDER_DUE_FIRST_SEQUENTIAL: + "Последовательно внутри колоды (сначала все повторяемые карты)", + REVIEW_CARD_ORDER_NEW_FIRST_RANDOM: "Случайно внутри колоды (сначала все новые карты)", + REVIEW_CARD_ORDER_DUE_FIRST_RANDOM: "Случайно внутри колоды (сначала все повторяемые карты)", + REVIEW_CARD_ORDER_RANDOM_DECK_AND_CARD: "Случайная карта из случайной колоды", + REVIEW_DECK_ORDER: "Порядок отображения колод во время изучения", REVIEW_DECK_ORDER_PREV_DECK_COMPLETE_SEQUENTIAL: - "Sequentially (once all cards in previous deck reviewed)", + "Последовательно (после изучения всех карт из предыдущей колоды)", REVIEW_DECK_ORDER_PREV_DECK_COMPLETE_RANDOM: - "Randomly (once all cards in previous deck reviewed)", - REVIEW_DECK_ORDER_RANDOM_DECK_AND_CARD: "Random card from random deck", + "Случайно (после изучения всех карт из предыдущей колоды)", + REVIEW_DECK_ORDER_RANDOM_DECK_AND_CARD: "Случайная карта из случайной колоды", DISABLE_CLOZE_CARDS: "Выключить карты с пропусками (пример: [...])?", CONVERT_HIGHLIGHTS_TO_CLOZES: "Конвертировать ==выделенный текст== в пропуски (пример: [...])?", CONVERT_BOLD_TEXT_TO_CLOZES: "Конвертировать **жирный текст** в пропуски (пример: [...])?", @@ -111,21 +115,21 @@ export default { MULTILINE_CARDS_SEPARATOR: "Разделитель для многострочных карточек", MULTILINE_REVERSED_CARDS_SEPARATOR: "Разделитель для обратных многострочных карточек", NOTES: "Заметки", - REVIEW_PANE_ON_STARTUP: "Включить панель повторения при запуске программы", - TAGS_TO_REVIEW: "Тэги для повторения", + REVIEW_PANE_ON_STARTUP: "Включить панель изучения карточек при запуске программы", + TAGS_TO_REVIEW: "Теги для изучения", TAGS_TO_REVIEW_DESC: - "Введите тэги, разделенные Enter-ами или пробелами, например: #review #tag2 #tag3.", - OPEN_RANDOM_NOTE: "Открыть случайную заметку для повторения", - OPEN_RANDOM_NOTE_DESC: "Если выключить, то заметки будут следовать по важности (PageRank).", - AUTO_NEXT_NOTE: "После повторения автоматически открывать следующую заметку", + "Введите теги, разделенные Enter-ами или пробелами, например: #review #tag2 #tag3.", + OPEN_RANDOM_NOTE: "Открыть случайную заметку для изучения", + OPEN_RANDOM_NOTE_DESC: "Если выключить, то заметки будут отсортированы по важности (PageRank).", + AUTO_NEXT_NOTE: "После изучения автоматически открывать следующую заметку", DISABLE_FILE_MENU_REVIEW_OPTIONS: - "Выключить выбор сложности повторения в меню файла, т.е.: Повторение: Легко Нормально Сложно", + "Выключить выбор сложности изучения в меню файла, т.е.: Изучение: Легко Нормально Сложно", DISABLE_FILE_MENU_REVIEW_OPTIONS_DESC: - "После выключения вы сможете повторять при помощи хоткеев. Перезагрузите Obsidian после изменения этого.", + "После выключения вы сможете изучать карточки при помощи горячих клавиш. Перезагрузите Obsidian после изменения этой настройки.", MAX_N_DAYS_REVIEW_QUEUE: "Наибольшее количество дней для отображение на панели справа", MIN_ONE_DAY: "Количество дней не меньше 1.", - VALID_NUMBER_WARNING: "Пожалуйста введите подходящее число.", - UI_PREFERENCES: "Пользовательский интерфейс Настройки", + VALID_NUMBER_WARNING: "Пожалуйста, введите подходящее число.", + UI_PREFERENCES: "Пользовательский интерфейс - Настройки", INITIALLY_EXPAND_SUBDECKS_IN_TREE: "Деревья колод должны изначально отображаться как развернутые", INITIALLY_EXPAND_SUBDECKS_IN_TREE_DESC: @@ -137,22 +141,21 @@ export default { BASE_EASE_DESC: "минимум = 130, предпочтительно около 250.", BASE_EASE_MIN_WARNING: "Лёгкость должна быть минимум 130.", LAPSE_INTERVAL_CHANGE: - "Изменение промежутка когда вы отвечаете Сложно во время повторения карточки/заметки", + 'Изменение интервала при выборе "Сложно" во время изучения карточки/заметки', LAPSE_INTERVAL_CHANGE_DESC: "новыйПромежуток = старыйПромежуток * изменениеПромежутка / 100.", EASY_BONUS: "Легко: бонус", EASY_BONUS_DESC: "Бонус за Легко позволяет вам установить разницу в промежутках между ответами Хорошо и Легко на карточке/заметке (мин. = 100%).", - EASY_BONUS_MIN_WARNING: "Бонус за Легко должен быть не меньше 100.", - MAX_INTERVAL: "Maximum interval in days", + EASY_BONUS_MIN_WARNING: 'Бонус за "Легко" должен быть не меньше 100.', + MAX_INTERVAL: "Максимальный интервал повторения в днях", MAX_INTERVAL_DESC: - "Позволяет вам устанавливать верхнюю границу на промежуток (по умолчанию = 100 лет).", - MAX_INTERVAL_MIN_WARNING: "Максимальный промежуток должен быть не меньше 1.", + "Позволяет вам устанавливать верхнюю границу на интервал повторения (по умолчанию = 100 лет).", + MAX_INTERVAL_MIN_WARNING: "Максимальный интервал должен быть не меньше 1.", MAX_LINK_CONTRIB: "Максимальный вклад связи (ссылки)", MAX_LINK_CONTRIB_DESC: - "Максимальный вклад взвешенной Лёгкости связанных заметок в начальную Лёгкость.", - LOGGING: "Ведение лога", - DISPLAY_DEBUG_INFO: - "Отображать отладочную информацию в консоле разработчика (developer console)?", + 'Максимальный вклад среднего значения "Лёгкости" связанных заметок в начальную "Лёгкость".', + LOGGING: "Журналирование", + DISPLAY_DEBUG_INFO: "Отображать отладочную информацию в консоли разработчика?", // sidebar.ts NOTES_REVIEW_QUEUE: "Очередь заметок на повторение", @@ -165,25 +168,25 @@ export default { // stats-modal.tsx STATS_TITLE: "Статистика", MONTH: "Месяц", - QUARTER: "Четверть", + QUARTER: "Квартал", YEAR: "Год", LIFETIME: "Всё время", FORECAST: "Прогноз", - FORECAST_DESC: "Количество карточек предстоящих в будущем", + FORECAST_DESC: "Количество карточек предстоящих для повторения", SCHEDULED: "Запланировано", - DAYS: "Дней", + DAYS: "Дни", NUMBER_OF_CARDS: "Количество карточек", - REVIEWS_PER_DAY: "Среднее количество: ${avg} повторений в день", //!!! + REVIEWS_PER_DAY: "Среднее количество: ${avg} повторений в день", INTERVALS: "Интервалы", INTERVALS_DESC: "Промежутки времени до следующего показа карточек во время повторения", COUNT: "Количество", INTERVALS_SUMMARY: "Средний промежуток: ${avg}, Самый длинный промежуток: ${longest}", - EASES: "Лёгкость (параметр в алгоритме, который влияет на приоритет и время показа карточек) \n (от англ. ease, см. настройки алгоритма)", - EASES_SUMMARY: "Среднее количество Лёгкости: ${avgEase}", + EASES: "Прогресс изучения", + EASES_SUMMARY: "Среднее значение прогресса: ${avgEase}", CARD_TYPES: "Типы карточек", CARD_TYPES_DESC: "Включая спрятанные карточки, если такие существуют.", CARD_TYPE_NEW: "Новых", - CARD_TYPE_YOUNG: "Молодых", - CARD_TYPE_MATURE: "Взрослых", + CARD_TYPE_YOUNG: "Повторяемых", + CARD_TYPE_MATURE: "Изученных", CARD_TYPES_SUMMARY: "Всего карточек: ${totalCardsCount}", }; From 7702ae16d07b198453ba14ca8821c196ff498bd7 Mon Sep 17 00:00:00 2001 From: Ronny Zulaikha <75528127+ronzulu@users.noreply.github.com> Date: Tue, 16 Jan 2024 04:48:57 +1100 Subject: [PATCH 06/12] Bug 826 auto review next note doesn't work when first note reviewed is not selected from sidebar (#827) * Initial fix, added much debug output * Removed debug code * Reverted some variable name changes etc * Fixed incorrect condition identified by https://github.com/karimodm * Updated change log, npx prettier --------- Co-authored-by: Stephen Mwangi --- docs/changelog.md | 3 ++- src/main.ts | 9 +++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/docs/changelog.md b/docs/changelog.md index 98cd5b1a..84b521b1 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -6,6 +6,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). #### [Unreleased] +- Bug fix: Auto review next note doesn't work when first note reviewed is not selected from sidebar [`#826`](https://github.com/st3v3nmw/obsidian-spaced-repetition/issues/826) - Completion and improvement of `ru` translation [`#838`](https://github.com/st3v3nmw/obsidian-spaced-repetition/pull/838) - Bug 841 fix: Incorrect display of the card content when the title embedded-link is inserted in not English note [`#842`](https://github.com/st3v3nmw/obsidian-spaced-repetition/pull/842) - Bug fix Note review doesn't open next note automatically after a review [`#424`](https://github.com/st3v3nmw/obsidian-spaced-repetition/issues/424), [`#582`](https://github.com/st3v3nmw/obsidian-spaced-repetition/issues/582) @@ -14,7 +15,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). - Bug fix Problem with nested list item's indentation [`#812`](https://github.com/st3v3nmw/obsidian-spaced-repetition/issues/812) - Bug Cloze Breaks When }} Encountered [`#799`](https://github.com/st3v3nmw/obsidian-spaced-repetition/issues/799) - Bug fix: When reviewing an entire note, the metadata is applied incorrectly (on top of the already existing metadata) [`#776`](https://github.com/st3v3nmw/obsidian-spaced-repetition/issues/776 -- Bug 670 Label customizations not applying to menu items +- Bug 670 Label customizations not applying to menu item #### [1.11.0](https://github.com/st3v3nmw/obsidian-spaced-repetition/compare/1.10.5...1.11.0) diff --git a/src/main.ts b/src/main.ts index 3c282e9f..1a46390e 100644 --- a/src/main.ts +++ b/src/main.ts @@ -702,12 +702,21 @@ export default class SRPlugin extends Plugin { new Notice(t("RESPONSE_RECEIVED")); if (this.data.settings.autoNextNote) { + if (!this.lastSelectedReviewDeck) { + const reviewDeckKeys: string[] = Object.keys(this.reviewDecks); + if (reviewDeckKeys.length > 0) this.lastSelectedReviewDeck = reviewDeckKeys[0]; + else { + new Notice(t("ALL_CAUGHT_UP")); + return; + } + } this.reviewNextNote(this.lastSelectedReviewDeck); } } async reviewNextNoteModal(): Promise { const reviewDeckNames: string[] = Object.keys(this.reviewDecks); + if (reviewDeckNames.length === 1) { this.reviewNextNote(reviewDeckNames[0]); } else { From 8b0586156935e0ccc2881016dbba1cd92aa03c61 Mon Sep 17 00:00:00 2001 From: Stephen Mwangi Date: Mon, 15 Jan 2024 21:00:23 +0300 Subject: [PATCH 07/12] chore: update dependencies (#845) --- CHANGELOG.md | 2 +- CONTRIBUTING.md | 2 +- docs/changelog.md | 20 +-- package.json | 18 +- pnpm-lock.yaml | 421 +++++++++++++++++++++++----------------------- 5 files changed, 232 insertions(+), 231 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1cc39a66..1bed66b3 120000 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1 +1 @@ -docs/changelog.md +docs/changelog.md \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 9815d5bd..651dc17d 120000 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1 +1 @@ -docs/en/contributing.md +docs/en/contributing.md \ No newline at end of file diff --git a/docs/changelog.md b/docs/changelog.md index 84b521b1..7f4516a4 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -6,19 +6,19 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). #### [Unreleased] -- Bug fix: Auto review next note doesn't work when first note reviewed is not selected from sidebar [`#826`](https://github.com/st3v3nmw/obsidian-spaced-repetition/issues/826) -- Completion and improvement of `ru` translation [`#838`](https://github.com/st3v3nmw/obsidian-spaced-repetition/pull/838) -- Bug 841 fix: Incorrect display of the card content when the title embedded-link is inserted in not English note [`#842`](https://github.com/st3v3nmw/obsidian-spaced-repetition/pull/842) -- Bug fix Note review doesn't open next note automatically after a review [`#424`](https://github.com/st3v3nmw/obsidian-spaced-repetition/issues/424), [`#582`](https://github.com/st3v3nmw/obsidian-spaced-repetition/issues/582) -- Feat: Support richer set of flashcard ordering during review; e.g. random card from random deck [`#814`](https://github.com/st3v3nmw/obsidian-spaced-repetition/issues/814) -- Bug fix Problem with nested list item's indentation [`#800`](https://github.com/st3v3nmw/obsidian-spaced-repetition/issues/800) -- Bug fix Problem with nested list item's indentation [`#812`](https://github.com/st3v3nmw/obsidian-spaced-repetition/issues/812) -- Bug Cloze Breaks When }} Encountered [`#799`](https://github.com/st3v3nmw/obsidian-spaced-repetition/issues/799) -- Bug fix: When reviewing an entire note, the metadata is applied incorrectly (on top of the already existing metadata) [`#776`](https://github.com/st3v3nmw/obsidian-spaced-repetition/issues/776 -- Bug 670 Label customizations not applying to menu item +- chore: Update dependencies [`#845`](https://github.com/st3v3nmw/obsidian-spaced-repetition/pull/845) +- Bug 826 auto review next note doesn't work when first note reviewed is not selected from sidebar [`#827`](https://github.com/st3v3nmw/obsidian-spaced-repetition/pull/827) +- Completion and improvement of `ru` translation. [`#838`](https://github.com/st3v3nmw/obsidian-spaced-repetition/pull/838) +- [FIX] Bug #841. [`#842`](https://github.com/st3v3nmw/obsidian-spaced-repetition/pull/842) +- Fix/bug 424 review next cache race [`#821`](https://github.com/st3v3nmw/obsidian-spaced-repetition/pull/821) +- fix:multiLineTextFinder to handle null return value from find method [`#830`](https://github.com/st3v3nmw/obsidian-spaced-repetition/pull/830) +- Fixes bug #670 apply label customisation easy/good/hard uniformly across buttons & menu [`#835`](https://github.com/st3v3nmw/obsidian-spaced-repetition/pull/835) #### [1.11.0](https://github.com/st3v3nmw/obsidian-spaced-repetition/compare/1.10.5...1.11.0) +> 9 January 2024 + +- Bump version to v1.11.0 [`#832`](https://github.com/st3v3nmw/obsidian-spaced-repetition/pull/832) - chore: Update dependencies [`#824`](https://github.com/st3v3nmw/obsidian-spaced-repetition/pull/824) - Support richer set of flashcard ordering during review [`#820`](https://github.com/st3v3nmw/obsidian-spaced-repetition/pull/820) - Bug 800/812 nested lists indentation [`#818`](https://github.com/st3v3nmw/obsidian-spaced-repetition/pull/818) diff --git a/package.json b/package.json index 38643da8..85ba33c9 100644 --- a/package.json +++ b/package.json @@ -21,17 +21,17 @@ "license": "MIT", "devDependencies": { "@types/jest": "^29.5.11", - "@types/node": "^20.10.6", + "@types/node": "^20.11.2", "@types/vhtml": "^2.2.9", - "@typescript-eslint/eslint-plugin": "^6.16.0", - "@typescript-eslint/parser": "^6.16.0", - "@wdio/cli": "^8.27.1", - "@wdio/local-runner": "^8.27.0", - "@wdio/mocha-framework": "^8.27.0", - "@wdio/spec-reporter": "^8.27.0", + "@typescript-eslint/eslint-plugin": "^6.19.0", + "@typescript-eslint/parser": "^6.19.0", + "@wdio/cli": "^8.27.2", + "@wdio/local-runner": "^8.27.2", + "@wdio/mocha-framework": "^8.27.2", + "@wdio/spec-reporter": "^8.27.2", "auto-changelog": "^2.4.0", "builtin-modules": "^3.3.0", - "chai": "^4.3.10", + "chai": "^4.4.1", "esbuild": "~0.19.11", "eslint": "^8.56.0", "jest": "^29.7.0", @@ -39,7 +39,7 @@ "jest-expect-message": "^1.1.3", "moment": "^2.30.1", "obsidian": "^1.4.11", - "prettier": "^3.1.1", + "prettier": "^3.2.2", "ts-jest": "^29.1.1", "tslib": "2.6.1", "typescript": "5.1.6", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ccac7458..6f92c722 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,29 +17,29 @@ devDependencies: specifier: ^29.5.11 version: 29.5.11 '@types/node': - specifier: ^20.10.6 - version: 20.10.6 + specifier: ^20.11.2 + version: 20.11.2 '@types/vhtml': specifier: ^2.2.9 version: 2.2.9 '@typescript-eslint/eslint-plugin': - specifier: ^6.16.0 - version: 6.16.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0)(typescript@5.1.6) + specifier: ^6.19.0 + version: 6.19.0(@typescript-eslint/parser@6.19.0)(eslint@8.56.0)(typescript@5.1.6) '@typescript-eslint/parser': - specifier: ^6.16.0 - version: 6.16.0(eslint@8.56.0)(typescript@5.1.6) + specifier: ^6.19.0 + version: 6.19.0(eslint@8.56.0)(typescript@5.1.6) '@wdio/cli': - specifier: ^8.27.1 - version: 8.27.1(typescript@5.1.6) + specifier: ^8.27.2 + version: 8.27.2(typescript@5.1.6) '@wdio/local-runner': - specifier: ^8.27.0 - version: 8.27.0(typescript@5.1.6) + specifier: ^8.27.2 + version: 8.27.2(typescript@5.1.6) '@wdio/mocha-framework': - specifier: ^8.27.0 - version: 8.27.0 + specifier: ^8.27.2 + version: 8.27.2 '@wdio/spec-reporter': - specifier: ^8.27.0 - version: 8.27.0 + specifier: ^8.27.2 + version: 8.27.2 auto-changelog: specifier: ^2.4.0 version: 2.4.0 @@ -47,8 +47,8 @@ devDependencies: specifier: ^3.3.0 version: 3.3.0 chai: - specifier: ^4.3.10 - version: 4.3.10 + specifier: ^4.4.1 + version: 4.4.1 esbuild: specifier: ~0.19.11 version: 0.19.11 @@ -57,7 +57,7 @@ devDependencies: version: 8.56.0 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@20.10.6) + version: 29.7.0(@types/node@20.11.2) jest-environment-jsdom: specifier: ^29.7.0 version: 29.7.0 @@ -71,8 +71,8 @@ devDependencies: specifier: ^1.4.11 version: 1.4.11(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) prettier: - specifier: ^3.1.1 - version: 3.1.1 + specifier: ^3.2.2 + version: 3.2.2 ts-jest: specifier: ^29.1.1 version: 29.1.1(@babel/core@7.23.7)(esbuild@0.19.11)(jest@29.7.0)(typescript@5.1.6) @@ -87,7 +87,7 @@ devDependencies: version: 2.2.0 wdio-chromedriver-service: specifier: ^8.1.1 - version: 8.1.1(webdriverio@8.27.0) + version: 8.1.1(webdriverio@8.27.2) packages: @@ -101,7 +101,7 @@ packages: engines: {node: '>=6.0.0'} dependencies: '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.20 + '@jridgewell/trace-mapping': 0.3.21 dev: true /@babel/code-frame@7.23.5: @@ -126,7 +126,7 @@ packages: '@babel/generator': 7.23.6 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) - '@babel/helpers': 7.23.7 + '@babel/helpers': 7.23.8 '@babel/parser': 7.23.6 '@babel/template': 7.22.15 '@babel/traverse': 7.23.7 @@ -146,7 +146,7 @@ packages: dependencies: '@babel/types': 7.23.6 '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.20 + '@jridgewell/trace-mapping': 0.3.21 jsesc: 2.5.2 dev: true @@ -236,8 +236,8 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helpers@7.23.7: - resolution: {integrity: sha512-6AMnjCoC8wjqBzDHkuqpa7jAKwvMo4dC+lr/TFBz+ucfulO1XMpDnwWPGBNwClOKZ8h6xn5N81W/R5OrcKtCbQ==} + /@babel/helpers@7.23.8: + resolution: {integrity: sha512-KDqYz4PiOWvDFrdHLPhKtCThtIcKVy6avWD2oG4GEvyQ+XDZwHD4YQd+H2vNMnq2rkdxsDkU82T+Vk8U/WXHRQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.15 @@ -689,11 +689,11 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@humanwhocodes/config-array@0.11.13: - resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} + /@humanwhocodes/config-array@0.11.14: + resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} engines: {node: '>=10.10.0'} dependencies: - '@humanwhocodes/object-schema': 2.0.1 + '@humanwhocodes/object-schema': 2.0.2 debug: 4.3.4(supports-color@8.1.1) minimatch: 3.1.2 transitivePeerDependencies: @@ -705,8 +705,8 @@ packages: engines: {node: '>=12.22'} dev: true - /@humanwhocodes/object-schema@2.0.1: - resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} + /@humanwhocodes/object-schema@2.0.2: + resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} dev: true /@isaacs/cliui@8.0.2: @@ -742,7 +742,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.10.6 + '@types/node': 20.11.2 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -763,14 +763,14 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.10.6 + '@types/node': 20.11.2 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@20.10.6) + jest-config: 29.7.0(@types/node@20.11.2) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -798,7 +798,7 @@ packages: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.10.6 + '@types/node': 20.11.2 jest-mock: 29.7.0 dev: true @@ -825,7 +825,7 @@ packages: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 20.10.6 + '@types/node': 20.11.2 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -857,8 +857,8 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.20 - '@types/node': 20.10.6 + '@jridgewell/trace-mapping': 0.3.21 + '@types/node': 20.11.2 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -891,7 +891,7 @@ packages: resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jridgewell/trace-mapping': 0.3.20 + '@jridgewell/trace-mapping': 0.3.21 callsites: 3.1.0 graceful-fs: 4.2.11 dev: true @@ -922,7 +922,7 @@ packages: dependencies: '@babel/core': 7.23.7 '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.20 + '@jridgewell/trace-mapping': 0.3.21 babel-plugin-istanbul: 6.1.1 chalk: 4.1.2 convert-source-map: 2.0.0 @@ -946,7 +946,7 @@ packages: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 20.10.6 + '@types/node': 20.11.2 '@types/yargs': 17.0.32 chalk: 4.1.2 dev: true @@ -957,7 +957,7 @@ packages: dependencies: '@jridgewell/set-array': 1.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.20 + '@jridgewell/trace-mapping': 0.3.21 dev: true /@jridgewell/resolve-uri@3.1.1: @@ -974,8 +974,8 @@ packages: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} dev: true - /@jridgewell/trace-mapping@0.3.20: - resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} + /@jridgewell/trace-mapping@0.3.21: + resolution: {integrity: sha512-SRfKmRe1KvYnxjEMtxEr+J4HIeMX5YBg/qhRHpxEIGjhX1rshcHlnFUE9K0GazhVKWM7B+nARSkV8LuvJdJ5/g==} dependencies: '@jridgewell/resolve-uri': 3.1.1 '@jridgewell/sourcemap-codec': 1.4.15 @@ -1042,8 +1042,8 @@ packages: - supports-color dev: true - /@puppeteer/browsers@1.9.0: - resolution: {integrity: sha512-QwguOLy44YBGC8vuPP2nmpX4MUN2FzWbsnvZJtiCzecU3lHmVZkaC1tq6rToi9a200m8RzlVtDyxCS0UIDrxUg==} + /@puppeteer/browsers@1.9.1: + resolution: {integrity: sha512-PuvK6xZzGhKPvlx3fpfdM2kYY3P/hB1URtK8wA7XUJ6prn6pp22zvJHu48th0SGcHL9SutbPHrFuQgfXTFobWA==} engines: {node: '>=16.3.0'} hasBin: true dependencies: @@ -1137,7 +1137,7 @@ packages: /@types/graceful-fs@4.1.9: resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} dependencies: - '@types/node': 20.10.6 + '@types/node': 20.11.2 dev: true /@types/http-cache-semantics@4.0.4: @@ -1170,7 +1170,7 @@ packages: /@types/jsdom@20.0.1: resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} dependencies: - '@types/node': 20.10.6 + '@types/node': 20.11.2 '@types/tough-cookie': 4.0.5 parse5: 7.1.2 dev: true @@ -1183,8 +1183,8 @@ packages: resolution: {integrity: sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==} dev: true - /@types/node@20.10.6: - resolution: {integrity: sha512-Vac8H+NlRNNlAmDfGUP7b5h/KA+AtWIzuXy0E6OyP8f1tCLYAtPvKRRDJjAPqhpCb0t6U2j7/xqAuLEebW2kiw==} + /@types/node@20.11.2: + resolution: {integrity: sha512-cZShBaVa+UO1LjWWBPmWRR4+/eY/JR/UIEcDlVsw3okjWEu+rB7/mH6X3B/L+qJVHDLjk9QW/y2upp9wp1yDXA==} dependencies: undici-types: 5.26.5 dev: true @@ -1222,7 +1222,7 @@ packages: /@types/ws@8.5.10: resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} dependencies: - '@types/node': 20.10.6 + '@types/node': 20.11.2 dev: true /@types/yargs-parser@21.0.3: @@ -1239,12 +1239,12 @@ packages: resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} requiresBuild: true dependencies: - '@types/node': 20.10.6 + '@types/node': 20.11.2 dev: true optional: true - /@typescript-eslint/eslint-plugin@6.16.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0)(typescript@5.1.6): - resolution: {integrity: sha512-O5f7Kv5o4dLWQtPX4ywPPa+v9G+1q1x8mz0Kr0pXUtKsevo+gIJHLkGc8RxaZWtP8RrhwhSNIWThnW42K9/0rQ==} + /@typescript-eslint/eslint-plugin@6.19.0(@typescript-eslint/parser@6.19.0)(eslint@8.56.0)(typescript@5.1.6): + resolution: {integrity: sha512-DUCUkQNklCQYnrBSSikjVChdc84/vMPDQSgJTHBZ64G9bA9w0Crc0rd2diujKbTdp6w2J47qkeHQLoi0rpLCdg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -1255,11 +1255,11 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.16.0(eslint@8.56.0)(typescript@5.1.6) - '@typescript-eslint/scope-manager': 6.16.0 - '@typescript-eslint/type-utils': 6.16.0(eslint@8.56.0)(typescript@5.1.6) - '@typescript-eslint/utils': 6.16.0(eslint@8.56.0)(typescript@5.1.6) - '@typescript-eslint/visitor-keys': 6.16.0 + '@typescript-eslint/parser': 6.19.0(eslint@8.56.0)(typescript@5.1.6) + '@typescript-eslint/scope-manager': 6.19.0 + '@typescript-eslint/type-utils': 6.19.0(eslint@8.56.0)(typescript@5.1.6) + '@typescript-eslint/utils': 6.19.0(eslint@8.56.0)(typescript@5.1.6) + '@typescript-eslint/visitor-keys': 6.19.0 debug: 4.3.4(supports-color@8.1.1) eslint: 8.56.0 graphemer: 1.4.0 @@ -1272,8 +1272,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.16.0(eslint@8.56.0)(typescript@5.1.6): - resolution: {integrity: sha512-H2GM3eUo12HpKZU9njig3DF5zJ58ja6ahj1GoHEHOgQvYxzoFJJEvC1MQ7T2l9Ha+69ZSOn7RTxOdpC/y3ikMw==} + /@typescript-eslint/parser@6.19.0(eslint@8.56.0)(typescript@5.1.6): + resolution: {integrity: sha512-1DyBLG5SH7PYCd00QlroiW60YJ4rWMuUGa/JBV0iZuqi4l4IK3twKPq5ZkEebmGqRjXWVgsUzfd3+nZveewgow==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -1282,10 +1282,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.16.0 - '@typescript-eslint/types': 6.16.0 - '@typescript-eslint/typescript-estree': 6.16.0(typescript@5.1.6) - '@typescript-eslint/visitor-keys': 6.16.0 + '@typescript-eslint/scope-manager': 6.19.0 + '@typescript-eslint/types': 6.19.0 + '@typescript-eslint/typescript-estree': 6.19.0(typescript@5.1.6) + '@typescript-eslint/visitor-keys': 6.19.0 debug: 4.3.4(supports-color@8.1.1) eslint: 8.56.0 typescript: 5.1.6 @@ -1293,16 +1293,16 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager@6.16.0: - resolution: {integrity: sha512-0N7Y9DSPdaBQ3sqSCwlrm9zJwkpOuc6HYm7LpzLAPqBL7dmzAUimr4M29dMkOP/tEwvOCC/Cxo//yOfJD3HUiw==} + /@typescript-eslint/scope-manager@6.19.0: + resolution: {integrity: sha512-dO1XMhV2ehBI6QN8Ufi7I10wmUovmLU0Oru3n5LVlM2JuzB4M+dVphCPLkVpKvGij2j/pHBWuJ9piuXx+BhzxQ==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.16.0 - '@typescript-eslint/visitor-keys': 6.16.0 + '@typescript-eslint/types': 6.19.0 + '@typescript-eslint/visitor-keys': 6.19.0 dev: true - /@typescript-eslint/type-utils@6.16.0(eslint@8.56.0)(typescript@5.1.6): - resolution: {integrity: sha512-ThmrEOcARmOnoyQfYkHw/DX2SEYBalVECmoldVuH6qagKROp/jMnfXpAU/pAIWub9c4YTxga+XwgAkoA0pxfmg==} + /@typescript-eslint/type-utils@6.19.0(eslint@8.56.0)(typescript@5.1.6): + resolution: {integrity: sha512-mcvS6WSWbjiSxKCwBcXtOM5pRkPQ6kcDds/juxcy/727IQr3xMEcwr/YLHW2A2+Fp5ql6khjbKBzOyjuPqGi/w==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -1311,8 +1311,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.16.0(typescript@5.1.6) - '@typescript-eslint/utils': 6.16.0(eslint@8.56.0)(typescript@5.1.6) + '@typescript-eslint/typescript-estree': 6.19.0(typescript@5.1.6) + '@typescript-eslint/utils': 6.19.0(eslint@8.56.0)(typescript@5.1.6) debug: 4.3.4(supports-color@8.1.1) eslint: 8.56.0 ts-api-utils: 1.0.3(typescript@5.1.6) @@ -1321,13 +1321,13 @@ packages: - supports-color dev: true - /@typescript-eslint/types@6.16.0: - resolution: {integrity: sha512-hvDFpLEvTJoHutVl87+MG/c5C8I6LOgEx05zExTSJDEVU7hhR3jhV8M5zuggbdFCw98+HhZWPHZeKS97kS3JoQ==} + /@typescript-eslint/types@6.19.0: + resolution: {integrity: sha512-lFviGV/vYhOy3m8BJ/nAKoAyNhInTdXpftonhWle66XHAtT1ouBlkjL496b5H5hb8dWXHwtypTqgtb/DEa+j5A==} engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@6.16.0(typescript@5.1.6): - resolution: {integrity: sha512-VTWZuixh/vr7nih6CfrdpmFNLEnoVBF1skfjdyGnNwXOH1SLeHItGdZDHhhAIzd3ACazyY2Fg76zuzOVTaknGA==} + /@typescript-eslint/typescript-estree@6.19.0(typescript@5.1.6): + resolution: {integrity: sha512-o/zefXIbbLBZ8YJ51NlkSAt2BamrK6XOmuxSR3hynMIzzyMY33KuJ9vuMdFSXW+H0tVvdF9qBPTHA91HDb4BIQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -1335,8 +1335,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.16.0 - '@typescript-eslint/visitor-keys': 6.16.0 + '@typescript-eslint/types': 6.19.0 + '@typescript-eslint/visitor-keys': 6.19.0 debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 @@ -1348,8 +1348,8 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@6.16.0(eslint@8.56.0)(typescript@5.1.6): - resolution: {integrity: sha512-T83QPKrBm6n//q9mv7oiSvy/Xq/7Hyw9SzSEhMHJwznEmQayfBM87+oAlkNAMEO7/MjIwKyOHgBJbxB0s7gx2A==} + /@typescript-eslint/utils@6.19.0(eslint@8.56.0)(typescript@5.1.6): + resolution: {integrity: sha512-QR41YXySiuN++/dC9UArYOg4X86OAYP83OWTewpVx5ct1IZhjjgTLocj7QNxGhWoTqknsgpl7L+hGygCO+sdYw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -1357,9 +1357,9 @@ packages: '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.6 - '@typescript-eslint/scope-manager': 6.16.0 - '@typescript-eslint/types': 6.16.0 - '@typescript-eslint/typescript-estree': 6.16.0(typescript@5.1.6) + '@typescript-eslint/scope-manager': 6.19.0 + '@typescript-eslint/types': 6.19.0 + '@typescript-eslint/typescript-estree': 6.19.0(typescript@5.1.6) eslint: 8.56.0 semver: 7.5.4 transitivePeerDependencies: @@ -1367,11 +1367,11 @@ packages: - typescript dev: true - /@typescript-eslint/visitor-keys@6.16.0: - resolution: {integrity: sha512-QSFQLruk7fhs91a/Ep/LqRdbJCZ1Rq03rqBdKT5Ky17Sz8zRLUksqIe9DW0pKtg/Z35/ztbLQ6qpOCN6rOC11A==} + /@typescript-eslint/visitor-keys@6.19.0: + resolution: {integrity: sha512-hZaUCORLgubBvtGpp1JEFEazcuEdfxta9j4iUwdSAr7mEsYYAp3EAUyCZk3VEEqGj6W+AV4uWyrDGtrlawAsgQ==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.16.0 + '@typescript-eslint/types': 6.19.0 eslint-visitor-keys: 3.4.3 dev: true @@ -1379,18 +1379,18 @@ packages: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: true - /@wdio/cli@8.27.1(typescript@5.1.6): - resolution: {integrity: sha512-RY9o4h0iN6UGpU31X5c9mu/TK2FlHtKtDaRJYunm5ycZvGahQcN+naYpea1ftDr4IpI2gGGlHxvEeHkJF7urDQ==} + /@wdio/cli@8.27.2(typescript@5.1.6): + resolution: {integrity: sha512-gRbwqjjczReWqLFZQX9iwTsCwGPFavJwL7iKSoIeAS645sM9PMmPW7mHzawmkFxqDDAyBWO3qFn4KV2H/2YfdA==} engines: {node: ^16.13 || >=18} hasBin: true dependencies: - '@types/node': 20.10.6 - '@wdio/config': 8.27.0 - '@wdio/globals': 8.27.0(typescript@5.1.6) + '@types/node': 20.11.2 + '@wdio/config': 8.27.2 + '@wdio/globals': 8.27.2(typescript@5.1.6) '@wdio/logger': 8.24.12 '@wdio/protocols': 8.24.12 - '@wdio/types': 8.27.0 - '@wdio/utils': 8.27.0 + '@wdio/types': 8.27.2 + '@wdio/utils': 8.27.2 async-exit-hook: 2.0.1 chalk: 5.3.0 chokidar: 3.5.3 @@ -1405,7 +1405,7 @@ packages: lodash.union: 4.6.0 read-pkg-up: 10.1.0 recursive-readdir: 2.2.3 - webdriverio: 8.27.0(typescript@5.1.6) + webdriverio: 8.27.2(typescript@5.1.6) yargs: 17.7.2 transitivePeerDependencies: - bufferutil @@ -1416,13 +1416,13 @@ packages: - utf-8-validate dev: true - /@wdio/config@8.27.0: - resolution: {integrity: sha512-zYM5daeiBVVAbQj0ASymAt0RUsocLVIwKiUHNa8gg/1GsZnztGjetXExSp1gXlxtMVM5xWUSKjh6ceFK79gWDQ==} + /@wdio/config@8.27.2: + resolution: {integrity: sha512-qR1r7K7/jsQhi9g5NiW40lgbvbzCcwwk8nz07hzTj6m8fQ8TXkQPob2fnrlDaNrXjzbZC4od0uv0a5fimK9YOQ==} engines: {node: ^16.13 || >=18} dependencies: '@wdio/logger': 8.24.12 - '@wdio/types': 8.27.0 - '@wdio/utils': 8.27.0 + '@wdio/types': 8.27.2 + '@wdio/utils': 8.27.2 decamelize: 6.0.0 deepmerge-ts: 5.1.0 glob: 10.3.10 @@ -1431,12 +1431,12 @@ packages: - supports-color dev: true - /@wdio/globals@8.27.0(typescript@5.1.6): - resolution: {integrity: sha512-HUPOIsrmxfF0LhU68lVsNGQGZkW/bWOvcCd8WxeaggTAH9JyxasxxfwzeCceAuhAvwtlwoMXITOpjAXO2mj38Q==} + /@wdio/globals@8.27.2(typescript@5.1.6): + resolution: {integrity: sha512-kU9fsOD1HVSROgN0TkjH8+O2SWbd5hHzL952+YOifMHFtt05Ua/n5mqxTTVAWmxUMMCz6VOuySmBt2Dhd4NnKA==} engines: {node: ^16.13 || >=18} optionalDependencies: - expect-webdriverio: 4.7.2(typescript@5.1.6) - webdriverio: 8.27.0(typescript@5.1.6) + expect-webdriverio: 4.8.1(typescript@5.1.6) + webdriverio: 8.27.2(typescript@5.1.6) transitivePeerDependencies: - bufferutil - devtools @@ -1446,15 +1446,15 @@ packages: - utf-8-validate dev: true - /@wdio/local-runner@8.27.0(typescript@5.1.6): - resolution: {integrity: sha512-nxS17mhoLkXP20eoPMkz7tbMFMOQejSw0hZfkEvuDCNhJokr8ugp6IjYXL9f7yV9IB9UDGHox8WGY4ArSrOeBA==} + /@wdio/local-runner@8.27.2(typescript@5.1.6): + resolution: {integrity: sha512-7m0vEulOyriMPB1+559ioEdjXlLu7yseM3KfQapCdLqaqTWvURJlMSxiHZZwuHaVGKa6YBPNB7NhRcHoUsqsAg==} engines: {node: ^16.13 || >=18} dependencies: - '@types/node': 20.10.6 + '@types/node': 20.11.2 '@wdio/logger': 8.24.12 '@wdio/repl': 8.24.12 - '@wdio/runner': 8.27.0(typescript@5.1.6) - '@wdio/types': 8.27.0 + '@wdio/runner': 8.27.2(typescript@5.1.6) + '@wdio/types': 8.27.2 async-exit-hook: 2.0.1 split2: 4.2.0 stream-buffers: 3.0.2 @@ -1477,15 +1477,15 @@ packages: strip-ansi: 7.1.0 dev: true - /@wdio/mocha-framework@8.27.0: - resolution: {integrity: sha512-NaFUPv90ks1XlZy0qdUaJ5/ilBtiCCgTIxaPexshJiaVDT5cV+Igjag/O80HIcvqknOZpdKAR0I1ArQzhJrmcA==} + /@wdio/mocha-framework@8.27.2: + resolution: {integrity: sha512-R0PRW5X8VDJzpHPhtOGkcPFrcetDOYz9q//4uqvdtdKtngrp4goz2cVNEmnbXJDMUm5VHSYy2GW6YtsjWUxbkA==} engines: {node: ^16.13 || >=18} dependencies: '@types/mocha': 10.0.6 - '@types/node': 20.10.6 + '@types/node': 20.11.2 '@wdio/logger': 8.24.12 - '@wdio/types': 8.27.0 - '@wdio/utils': 8.27.0 + '@wdio/types': 8.27.2 + '@wdio/utils': 8.27.2 mocha: 10.2.0 transitivePeerDependencies: - supports-color @@ -1499,35 +1499,35 @@ packages: resolution: {integrity: sha512-321F3sWafnlw93uRTSjEBVuvWCxTkWNDs7ektQS15drrroL3TMeFOynu4rDrIz0jXD9Vas0HCD2Tq/P0uxFLdw==} engines: {node: ^16.13 || >=18} dependencies: - '@types/node': 20.10.6 + '@types/node': 20.11.2 dev: true - /@wdio/reporter@8.27.0: - resolution: {integrity: sha512-kBwsrHbsblmXfHSWlaOKXjPRPeT29WSKTUoCmzuTcCkhvbjY4TrEB0p04cpaM7uNqdIZTxHng54gZVaG/nZPiw==} + /@wdio/reporter@8.27.2: + resolution: {integrity: sha512-vMhoTVsowDmk6EXYgJ4nFBd6vvMFLIO3zUL4w/DCCkPDyjS9/6ggs/wpVSlrKxw9qisAph1Z4W9ngtNuhQQuwg==} engines: {node: ^16.13 || >=18} dependencies: - '@types/node': 20.10.6 + '@types/node': 20.11.2 '@wdio/logger': 8.24.12 - '@wdio/types': 8.27.0 + '@wdio/types': 8.27.2 diff: 5.1.0 object-inspect: 1.13.1 dev: true - /@wdio/runner@8.27.0(typescript@5.1.6): - resolution: {integrity: sha512-da332r2d1QXdRhMhsDxMObcqLZS0l/u14pHICNTvEHp+72gOttbjUDvdMHPQY6Ae5ul7AVVQ05qpmz9CX7TzOg==} + /@wdio/runner@8.27.2(typescript@5.1.6): + resolution: {integrity: sha512-a72dJ+7ap0DOrkrjx1ofYHzgDYzK0I7RjSGOEvi2cc+SwnwESHnwtPug5F3NfDFEMXV3Y3pN+E/yz81S27WpvQ==} engines: {node: ^16.13 || >=18} dependencies: - '@types/node': 20.10.6 - '@wdio/config': 8.27.0 - '@wdio/globals': 8.27.0(typescript@5.1.6) + '@types/node': 20.11.2 + '@wdio/config': 8.27.2 + '@wdio/globals': 8.27.2(typescript@5.1.6) '@wdio/logger': 8.24.12 - '@wdio/types': 8.27.0 - '@wdio/utils': 8.27.0 + '@wdio/types': 8.27.2 + '@wdio/utils': 8.27.2 deepmerge-ts: 5.1.0 - expect-webdriverio: 4.7.2(typescript@5.1.6) + expect-webdriverio: 4.8.1(typescript@5.1.6) gaze: 1.1.3 - webdriver: 8.27.0 - webdriverio: 8.27.0(typescript@5.1.6) + webdriver: 8.27.2 + webdriverio: 8.27.2(typescript@5.1.6) transitivePeerDependencies: - bufferutil - devtools @@ -1537,39 +1537,39 @@ packages: - utf-8-validate dev: true - /@wdio/spec-reporter@8.27.0: - resolution: {integrity: sha512-EOXLBIr4oLzSDp/BQ86IqCulSF0jwEAj2EiMeY6dh9WXzBBtoR8WnoX/27xFoZ8GU2zetWC3EVnLJ0Ex8Up1mA==} + /@wdio/spec-reporter@8.27.2: + resolution: {integrity: sha512-2U1MALAHjUqDo3C+PYinN1wAnDBiy+kLG3GrTpMeIWZ2qZ6m1fRWt9GlADX7r07vhiRqShxy131nUenqeoF/qg==} engines: {node: ^16.13 || >=18} dependencies: - '@wdio/reporter': 8.27.0 - '@wdio/types': 8.27.0 + '@wdio/reporter': 8.27.2 + '@wdio/types': 8.27.2 chalk: 5.3.0 easy-table: 1.2.0 pretty-ms: 7.0.1 dev: true - /@wdio/types@8.27.0: - resolution: {integrity: sha512-LbP9FKh8r0uW9/dKhTIUCC1Su8PsP9TmzGKXkWt6/IMacgJiB/zW3u1CgyaLw9lG0UiQORHGoeJX9zB2HZAh4w==} + /@wdio/types@8.27.2: + resolution: {integrity: sha512-z/TtSQysEtAUNh+DooOs22G7xotTsJC2RcIZKaVtHY4Gl6lF+tn8kLRXD79jem2ta1byB1TpW62K366k1vzcLw==} engines: {node: ^16.13 || >=18} dependencies: - '@types/node': 20.10.6 + '@types/node': 20.11.2 dev: true - /@wdio/utils@8.27.0: - resolution: {integrity: sha512-4BY+JBQssVn003P5lA289uDMie3LtGinHze5btkcW9timB6VaU+EeZS4eKTPC0pziizLhteVvXYxv3YTpeeRfA==} + /@wdio/utils@8.27.2: + resolution: {integrity: sha512-jWxUhGjlZ4L3uOsP96oLKWjkITpoH/KPTtKzU7xdoVGhd1LXK4d/Fr8cTFTNkDBXM7yuM7C+EMmQ8HJHR55KTA==} engines: {node: ^16.13 || >=18} dependencies: - '@puppeteer/browsers': 1.9.0 + '@puppeteer/browsers': 1.9.1 '@wdio/logger': 8.24.12 - '@wdio/types': 8.27.0 + '@wdio/types': 8.27.2 decamelize: 6.0.0 deepmerge-ts: 5.1.0 edgedriver: 5.3.9 geckodriver: 4.3.0 get-port: 7.0.0 import-meta-resolve: 4.0.0 - locate-app: 2.2.3 - safaridriver: 0.1.1 + locate-app: 2.2.7 + safaridriver: 0.1.2 split2: 4.2.0 wait-port: 1.1.0 transitivePeerDependencies: @@ -1585,7 +1585,7 @@ packages: resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} dependencies: acorn: 8.11.3 - acorn-walk: 8.3.1 + acorn-walk: 8.3.2 dev: true /acorn-jsx@5.3.2(acorn@8.11.3): @@ -1596,8 +1596,8 @@ packages: acorn: 8.11.3 dev: true - /acorn-walk@8.3.1: - resolution: {integrity: sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==} + /acorn-walk@8.3.2: + resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} engines: {node: '>=0.4.0'} dev: true @@ -1919,8 +1919,8 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001572 - electron-to-chromium: 1.4.616 + caniuse-lite: 1.0.30001576 + electron-to-chromium: 1.4.630 node-releases: 2.0.14 update-browserslist-db: 1.0.13(browserslist@4.22.2) dev: true @@ -1991,7 +1991,7 @@ packages: dependencies: function-bind: 1.1.2 get-intrinsic: 1.2.2 - set-function-length: 1.1.1 + set-function-length: 1.2.0 dev: true /callsites@3.1.0: @@ -2009,12 +2009,12 @@ packages: engines: {node: '>=10'} dev: true - /caniuse-lite@1.0.30001572: - resolution: {integrity: sha512-1Pbh5FLmn5y4+QhNyJE9j3/7dK44dGB83/ZMjv/qJk86TvDbjk0LosiZo0i0WB0Vx607qMX9jYrn1VLHCkN4rw==} + /caniuse-lite@1.0.30001576: + resolution: {integrity: sha512-ff5BdakGe2P3SQsMsiqmt1Lc8221NR1VzHj5jXN5vBny9A6fpze94HiVV/n7XRosOlsShJcvMv5mdnpjOGCEgg==} dev: true - /chai@4.3.10: - resolution: {integrity: sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==} + /chai@4.4.1: + resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} engines: {node: '>=4'} dependencies: assertion-error: 1.1.0 @@ -2232,7 +2232,7 @@ packages: readable-stream: 3.6.2 dev: true - /create-jest@29.7.0(@types/node@20.10.6): + /create-jest@29.7.0(@types/node@20.11.2): resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -2241,7 +2241,7 @@ packages: chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@20.10.6) + jest-config: 29.7.0(@types/node@20.11.2) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -2435,8 +2435,8 @@ packages: resolution: {integrity: sha512-hyWmRrexdhbZ1tcJUGpO95ivbRhWXz++F4Ko+n21AY5PNln2ovoJw+8ZMNDTtip+CNFQfrtLVh/w4009dXO/eQ==} dev: true - /devtools-protocol@0.0.1237913: - resolution: {integrity: sha512-Pxtmz2ZIqBkpU82HaIdsvCQBG94yTC4xajrEsWx9p38QKEfBCJktSazsHkrjf9j3dVVNPhg5LR21F6KWeXpjiQ==} + /devtools-protocol@0.0.1239539: + resolution: {integrity: sha512-uS7hZVqZxGyZwR8lX/8wWyNLGEYs1wWWxN7qeRC+wBZ4VM5JXYwCJg8hofEna5yX0W2cavpjHOE4ukHXLHlEaA==} dev: true /diff-sequences@29.6.3: @@ -2528,8 +2528,8 @@ packages: jake: 10.8.7 dev: true - /electron-to-chromium@1.4.616: - resolution: {integrity: sha512-1n7zWYh8eS0L9Uy+GskE0lkBUNK83cXTVJI0pU3mGprFsbfSdAc15VTFbo+A+Bq4pwstmL30AVcEU3Fo463lNg==} + /electron-to-chromium@1.4.630: + resolution: {integrity: sha512-osHqhtjojpCsACVnuD11xO5g9xaCyw7Qqn/C2KParkMv42i8jrJJgx3g7mkHfpxwhy9MnOJr8+pKOdZ7qzgizg==} dev: true /emittery@0.13.1: @@ -2652,7 +2652,7 @@ packages: '@eslint-community/regexpp': 4.10.0 '@eslint/eslintrc': 2.1.4 '@eslint/js': 8.56.0 - '@humanwhocodes/config-array': 0.11.13 + '@humanwhocodes/config-array': 0.11.14 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 '@ungap/structured-clone': 1.2.0 @@ -2764,17 +2764,17 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /expect-webdriverio@4.7.2(typescript@5.1.6): - resolution: {integrity: sha512-aR/L0NrleB7lZCdJK9yNijuJajmNKo+DDaUheSY0Sqiopwg2X2B+kAnuWYSc2XCL0IdPTN3JcplXj+IOGQN51g==} + /expect-webdriverio@4.8.1(typescript@5.1.6): + resolution: {integrity: sha512-JD5aboj/tCiMXdEPCpt3BA0xL3DBhNu1MoiOdBGT9LT+9COIXoDG6Ks6h5S4c4PNwLs6xSeU8s7XxFAmBPu45Q==} engines: {node: '>=16 || >=18 || >=20'} dependencies: expect: 29.7.0 jest-matcher-utils: 29.7.0 lodash.isequal: 4.5.0 optionalDependencies: - '@wdio/globals': 8.27.0(typescript@5.1.6) + '@wdio/globals': 8.27.2(typescript@5.1.6) '@wdio/logger': 8.24.12 - webdriverio: 8.27.0(typescript@5.1.6) + webdriverio: 8.27.2(typescript@5.1.6) transitivePeerDependencies: - bufferutil - devtools @@ -2872,7 +2872,7 @@ packages: engines: {node: ^12.20 || >= 14.13} dependencies: node-domexception: 1.0.0 - web-streams-polyfill: 3.2.1 + web-streams-polyfill: 3.3.2 dev: true /figures@5.0.0: @@ -3679,7 +3679,7 @@ packages: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.10.6 + '@types/node': 20.11.2 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.1 @@ -3700,7 +3700,7 @@ packages: - supports-color dev: true - /jest-cli@29.7.0(@types/node@20.10.6): + /jest-cli@29.7.0(@types/node@20.11.2): resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -3714,10 +3714,10 @@ packages: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@20.10.6) + create-jest: 29.7.0(@types/node@20.11.2) exit: 0.1.2 import-local: 3.1.0 - jest-config: 29.7.0(@types/node@20.10.6) + jest-config: 29.7.0(@types/node@20.11.2) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -3728,7 +3728,7 @@ packages: - ts-node dev: true - /jest-config@29.7.0(@types/node@20.10.6): + /jest-config@29.7.0(@types/node@20.11.2): resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -3743,7 +3743,7 @@ packages: '@babel/core': 7.23.7 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.10.6 + '@types/node': 20.11.2 babel-jest: 29.7.0(@babel/core@7.23.7) chalk: 4.1.2 ci-info: 3.9.0 @@ -3809,7 +3809,7 @@ packages: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 '@types/jsdom': 20.0.1 - '@types/node': 20.10.6 + '@types/node': 20.11.2 jest-mock: 29.7.0 jest-util: 29.7.0 jsdom: 20.0.3 @@ -3826,7 +3826,7 @@ packages: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.10.6 + '@types/node': 20.11.2 jest-mock: 29.7.0 jest-util: 29.7.0 dev: true @@ -3846,7 +3846,7 @@ packages: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 20.10.6 + '@types/node': 20.11.2 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -3897,7 +3897,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.10.6 + '@types/node': 20.11.2 jest-util: 29.7.0 dev: true @@ -3952,7 +3952,7 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.10.6 + '@types/node': 20.11.2 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -3983,7 +3983,7 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.10.6 + '@types/node': 20.11.2 chalk: 4.1.2 cjs-module-lexer: 1.2.3 collect-v8-coverage: 1.0.2 @@ -4035,7 +4035,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.10.6 + '@types/node': 20.11.2 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -4060,7 +4060,7 @@ packages: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.10.6 + '@types/node': 20.11.2 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -4072,13 +4072,13 @@ packages: resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 20.10.6 + '@types/node': 20.11.2 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true - /jest@29.7.0(@types/node@20.10.6): + /jest@29.7.0(@types/node@20.11.2): resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -4091,7 +4091,7 @@ packages: '@jest/core': 29.7.0 '@jest/types': 29.6.3 import-local: 3.1.0 - jest-cli: 29.7.0(@types/node@20.10.6) + jest-cli: 29.7.0(@types/node@20.11.2) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -4255,10 +4255,10 @@ packages: resolution: {integrity: sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==} dev: true - /locate-app@2.2.3: - resolution: {integrity: sha512-3FAWZ/afqGa283tCL6f7HX1zkf0ZJkdBwPWn6Fykh3f6sP5zaKKI6/rUNGZYgBh59u/NXLcRwM5uBhJ8Q9isUQ==} + /locate-app@2.2.7: + resolution: {integrity: sha512-4NR8WidaCRCozDZ0BW0U5wL91EPuuIshFun2//4Kpca4DIi5XPQHAUEbj+MQt7NihZTYs+HKfOuaoqurZ58bUg==} dependencies: - n12: 1.8.6 + n12: 1.8.10 type-fest: 2.13.0 userhome: 1.0.0 dev: true @@ -4544,8 +4544,8 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: true - /n12@1.8.6: - resolution: {integrity: sha512-a+9bk4vwyYkBtoo1ONHLakCME4pl+qXZteHcDH3+91Wxa365SgxcXP4X0bLHYjoIR4u+b/yE8IJeQPJqhJpodQ==} + /n12@1.8.10: + resolution: {integrity: sha512-/iREutgBDWCLwSqVOTKyAXRfToeY8Y9PmFPk3egwWVf6UYUyL9UXIaVnEkW4mx+g3dBGBywfvWilfKFEkiGK+A==} dev: true /nanoid@3.3.3: @@ -4909,8 +4909,8 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /prettier@3.1.1: - resolution: {integrity: sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==} + /prettier@3.2.2: + resolution: {integrity: sha512-HTByuKZzw7utPiDO523Tt2pLtEyK7OibUD9suEJQrPUCYQqrHr74GGX6VidMrovbf/I50mPqr8j/II6oBAuc5A==} engines: {node: '>=14'} hasBin: true dev: true @@ -5223,8 +5223,8 @@ packages: tslib: 2.6.1 dev: true - /safaridriver@0.1.1: - resolution: {integrity: sha512-dpCmh2EYKh9G61nR+ve0w2+WW2YJX59Rtke0pUoUXbvGKPDLK+NcL7I3VBS1UcGJbA6ptQTT82JcGwJHALD0kQ==} + /safaridriver@0.1.2: + resolution: {integrity: sha512-4R309+gWflJktzPXBQCobbWEHlzC4aK3a+Ov3tz2Ib2aBxiwd11phkdIBH1l0EO22x24CJMUQkpKFumRriCSRg==} dev: true /safe-buffer@5.1.2: @@ -5272,11 +5272,12 @@ packages: randombytes: 2.1.0 dev: true - /set-function-length@1.1.1: - resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==} + /set-function-length@1.2.0: + resolution: {integrity: sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==} engines: {node: '>= 0.4'} dependencies: define-data-property: 1.1.1 + function-bind: 1.1.2 get-intrinsic: 1.2.2 gopd: 1.0.1 has-property-descriptors: 1.0.1 @@ -5632,7 +5633,7 @@ packages: bs-logger: 0.2.6 esbuild: 0.19.11 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@20.10.6) + jest: 29.7.0(@types/node@20.11.2) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -5780,7 +5781,7 @@ packages: resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} engines: {node: '>=10.12.0'} dependencies: - '@jridgewell/trace-mapping': 0.3.20 + '@jridgewell/trace-mapping': 0.3.21 '@types/istanbul-lib-coverage': 2.0.6 convert-source-map: 2.0.0 dev: true @@ -5831,7 +5832,7 @@ packages: defaults: 1.0.4 dev: true - /wdio-chromedriver-service@8.1.1(webdriverio@8.27.0): + /wdio-chromedriver-service@8.1.1(webdriverio@8.27.2): resolution: {integrity: sha512-pN3GiOkTIMnalfq4PJAHdX95pDp1orHnTY8W1fIbd6ok81ba97UjerTgS7lUDRUh1p0MAm35Ww0uc0/9wzB7SA==} engines: {node: ^16.13 || >=18} peerDependencies: @@ -5848,27 +5849,27 @@ packages: fs-extra: 11.2.0 split2: 4.2.0 tcp-port-used: 1.0.2 - webdriverio: 8.27.0(typescript@5.1.6) + webdriverio: 8.27.2(typescript@5.1.6) transitivePeerDependencies: - supports-color dev: true - /web-streams-polyfill@3.2.1: - resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==} + /web-streams-polyfill@3.3.2: + resolution: {integrity: sha512-3pRGuxRF5gpuZc0W+EpwQRmCD7gRqcDOMt688KmdlDAgAyaB1XlN0zq2njfDNm44XVdIouE7pZ6GzbdyH47uIQ==} engines: {node: '>= 8'} dev: true - /webdriver@8.27.0: - resolution: {integrity: sha512-n1IA+rR3u84XxU9swiKUM06BkEC0GDimfZkBML57cny+utQOUbdM/mBpqCUnkWX/RBz/p2EfHdKNyOs3/REaog==} + /webdriver@8.27.2: + resolution: {integrity: sha512-vY2Lr0ZNr83n0v8PjLCXtJwR9E7QGycJVS+ev2G72gI54/rFwLv58HMSbJNn8CtE27VkhtewMUPlDpSkj5wGPQ==} engines: {node: ^16.13 || >=18} dependencies: - '@types/node': 20.10.6 + '@types/node': 20.11.2 '@types/ws': 8.5.10 - '@wdio/config': 8.27.0 + '@wdio/config': 8.27.2 '@wdio/logger': 8.24.12 '@wdio/protocols': 8.24.12 - '@wdio/types': 8.27.0 - '@wdio/utils': 8.27.0 + '@wdio/types': 8.27.2 + '@wdio/utils': 8.27.2 deepmerge-ts: 5.1.0 got: 12.6.1 ky: 0.33.3 @@ -5879,8 +5880,8 @@ packages: - utf-8-validate dev: true - /webdriverio@8.27.0(typescript@5.1.6): - resolution: {integrity: sha512-Qh5VCiBjEmxnmXcL1QEFoDzFqTtaWKrXriuU5G0yHKCModGAt2G7IHTkAok3CpmkVJfZpEvY630aP1MvgDtFhw==} + /webdriverio@8.27.2(typescript@5.1.6): + resolution: {integrity: sha512-X6PhKE8e8XsB33Q/KSS1zYKP2Rqkq2Nef0YKOhQO+5OTlTkeqMCjnEtyRcfmdtfAwT0DEFqMnGnUKEbTajFC4Q==} engines: {node: ^16.13 || >=18} peerDependencies: devtools: ^8.14.0 @@ -5888,18 +5889,18 @@ packages: devtools: optional: true dependencies: - '@types/node': 20.10.6 - '@wdio/config': 8.27.0 + '@types/node': 20.11.2 + '@wdio/config': 8.27.2 '@wdio/logger': 8.24.12 '@wdio/protocols': 8.24.12 '@wdio/repl': 8.24.12 - '@wdio/types': 8.27.0 - '@wdio/utils': 8.27.0 + '@wdio/types': 8.27.2 + '@wdio/utils': 8.27.2 archiver: 6.0.1 aria-query: 5.3.0 css-shorthand-properties: 1.1.1 css-value: 0.0.1 - devtools-protocol: 0.0.1237913 + devtools-protocol: 0.0.1239539 grapheme-splitter: 1.0.4 import-meta-resolve: 4.0.0 is-plain-obj: 4.1.0 @@ -5911,7 +5912,7 @@ packages: resq: 1.11.0 rgb2hex: 0.2.5 serialize-error: 11.0.3 - webdriver: 8.27.0 + webdriver: 8.27.2 transitivePeerDependencies: - bufferutil - encoding From ac125fceef148bfccd2289438fd4eb0c5e0e02d7 Mon Sep 17 00:00:00 2001 From: Guilherme Novais Date: Mon, 15 Jan 2024 15:04:51 -0300 Subject: [PATCH 08/12] chore: update pt-br.ts for Brazilian Portuguese translation (#765) --- src/lang/locale/pt-br.ts | 54 ++++++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/src/lang/locale/pt-br.ts b/src/lang/locale/pt-br.ts index 0f2a6c57..9ea000ab 100644 --- a/src/lang/locale/pt-br.ts +++ b/src/lang/locale/pt-br.ts @@ -7,21 +7,21 @@ export default { DUE_CARDS: "Cartas para Colocar em Dia", NEW_CARDS: "Novas Cartas", TOTAL_CARDS: "Total de Cartas", - BACK: "Back", - SKIP: "Skip", - EDIT_CARD: "Edit Card", + BACK: "Voltar", + SKIP: "Pular", + EDIT_CARD: "Editar Cartão", RESET_CARD_PROGRESS: "Reiniciar o Progresso da Carta", HARD: "Difícil", GOOD: "OK", EASY: "Fácil", SHOW_ANSWER: "Mostrar Resposta", CARD_PROGRESS_RESET: "O Progresso da Carta foi reiniciado", - SAVE: "Save", - CANCEL: "Cancel", - NO_INPUT: "No input provided.", - CURRENT_EASE_HELP_TEXT: "Current Ease: ", - CURRENT_INTERVAL_HELP_TEXT: "Current Interval: ", - CARD_GENERATED_FROM: "Generated from: ${notePath}", + SAVE: "Salvar", + CANCEL: "Cancelar", + NO_INPUT: "Nenhuma entrada fornecida.", + CURRENT_EASE_HELP_TEXT: "Facilidade atual: ", + CURRENT_INTERVAL_HELP_TEXT: "Intervalo atual: ", + CARD_GENERATED_FROM: "Gerada a partir de: ${notePath}", // main.ts OPEN_NOTE_FOR_REVIEW: "Abrir uma nota para revisar", @@ -29,18 +29,18 @@ export default { REVIEW_DIFFICULTY_FILE_MENU: "Revisão: ${difficulty}", REVIEW_NOTE_DIFFICULTY_CMD: "Revisar nota como ${difficulty}", REVIEW_ALL_CARDS: "Revisar flashcards de todas as notas", - CRAM_ALL_CARDS: "Select a deck to cram", + CRAM_ALL_CARDS: "Selecione um baralho para revisar", REVIEW_CARDS_IN_NOTE: "Revisar flashcards nessa nota", CRAM_CARDS_IN_NOTE: "Revisar todas as flashcards nessa nota", VIEW_STATS: "Ver estatísticas", STATUS_BAR: "Revisão: ${dueNotesCount} nota(s), ${dueFlashcardsCount} Carta(s) para colocar em dia", - SYNC_TIME_TAKEN: "Sicronização levou ${t}ms", + SYNC_TIME_TAKEN: "Sincronização levou ${t}ms", NOTE_IN_IGNORED_FOLDER: "Nota é salva na pasta ignorada (cheque as configurações).", PLEASE_TAG_NOTE: "Por favor etiquete a nota apropriadamente para revisar (nas configurações).", RESPONSE_RECEIVED: "Resposta recebida.", NO_DECK_EXISTS: "Nenhum baralho existe para ${deckName}", - ALL_CAUGHT_UP: "Você colocou tudo em prazo agora :D.", + ALL_CAUGHT_UP: "Você colocou tudo em dia agora :D.", // scheduling.ts DAYS_STR_IVL: "${interval} dia(s)", @@ -51,21 +51,21 @@ export default { YEARS_STR_IVL_MOBILE: "${interval}a", // settings.ts - SETTINGS_HEADER: "Plguin Spaced Repetition - Configuração", - CHECK_WIKI: 'Para mais informações, checke o wiki.', + SETTINGS_HEADER: "Plugin Spaced Repetition - Configuração", + CHECK_WIKI: 'Para mais informações, cheque a wiki.', FOLDERS_TO_IGNORE: "Pastas para ignorar", FOLDERS_TO_IGNORE_DESC: - "Ensira o caminho das pastas separado por quebras de linha ex: Templates Meta/Scripts", + "Insira o caminho das pastas separado por quebras de linha ex: Templates Meta/Scripts", FLASHCARDS: "Flashcards", FLASHCARD_EASY_LABEL: "Texto do Botão de Fácil", FLASHCARD_GOOD_LABEL: "Texto do Botão de OK", FLASHCARD_HARD_LABEL: "Texto do Botão de Difícil", - FLASHCARD_EASY_DESC: 'Costumize o rótulo para o botão de "Fácil"', - FLASHCARD_GOOD_DESC: 'Costumize o rótulo para o botão de "OK"', + FLASHCARD_EASY_DESC: 'Customize o rótulo para o botão de "Fácil"', + FLASHCARD_GOOD_DESC: 'Customize o rótulo para o botão de "OK"', FLASHCARD_HARD_DESC: 'Customize o rótulo para o botão de "Difícil"', FLASHCARD_TAGS: "Etiquetas dos Flashcards", FLASHCARD_TAGS_DESC: - "Ensira etiquetas separadas por espaços ou quebras de linha ex: #flashcards #baralho2 #baralho3.", + "Insira etiquetas separadas por espaços ou quebras de linha ex: #flashcards #baralho2 #baralho3.", CONVERT_FOLDERS_TO_DECKS: "Converter pastas para baralhos e sub-baralhos?", CONVERT_FOLDERS_TO_DECKS_DESC: "Isso é uma alternativa para a opção de etiqueta dos Flashcards em cima.", @@ -76,7 +76,7 @@ export default { BURY_SIBLINGS_TILL_NEXT_DAY: "Enterrar cartas irmãs até o próximo dia?", BURY_SIBLINGS_TILL_NEXT_DAY_DESC: "Cartas irmãs são geradas pelo texto da mesma carta ex: omissão de palavras", - SHOW_CARD_CONTEXT: "Mostrar conxtexto nas cartas?", + SHOW_CARD_CONTEXT: "Mostrar contexto nas cartas?", SHOW_CARD_CONTEXT_DESC: "ex: Título > Cabeçalho 1 > Subcabeçalho > ... > Subcabeçalho", CARD_MODAL_HEIGHT_PERCENT: "Porcentagem da Altura do Flashcard", CARD_MODAL_SIZE_PERCENT_DESC: @@ -107,10 +107,10 @@ export default { MULTILINE_CARDS_SEPARATOR: "Separador para flashcards de múltiplas linhas", MULTILINE_REVERSED_CARDS_SEPARATOR: "Separador para flashcards de múltiplas linhas reversos", NOTES: "Notas", - REVIEW_PANE_ON_STARTUP: "Enable note review pane on startup", + REVIEW_PANE_ON_STARTUP: "Habilitar painel de revisão de notas na inicialização", TAGS_TO_REVIEW: "Etiquetas para revisar", TAGS_TO_REVIEW_DESC: - "Ensira etiquetas separadas por espaços ou quebra de linhas ex: #revisar #etiqueta2 #etiqueta3.", + "Insira etiquetas separadas por espaços ou quebra de linhas ex: #revisar #etiqueta2 #etiqueta3.", OPEN_RANDOM_NOTE: "Abrir uma nota aleatória para revisar", OPEN_RANDOM_NOTE_DESC: "Quando você desabilitar isso, as notas vão ser ordenadas por importância (PageRank).", @@ -121,17 +121,17 @@ export default { "Depois de desabilitar, você pode revisar usando os atalhos de comando. Reinicie Obsidian depois de mudar isso.", MAX_N_DAYS_REVIEW_QUEUE: "Número máximo de dias para exibir no painel direito", MIN_ONE_DAY: "O número de dias deve ser pelo menos 1.", - VALID_NUMBER_WARNING: "Por favor ensira um número válido.", + VALID_NUMBER_WARNING: "Por favor Insira um número válido.", UI_PREFERENCES: "Preferências de UI", INITIALLY_EXPAND_SUBDECKS_IN_TREE: - "Árvores de baralhos devem inicialmente serem exibidas como expandidas", + "Árvores de baralhos devem inicialmente ser exibidas como expandidas", INITIALLY_EXPAND_SUBDECKS_IN_TREE_DESC: "Desabilite isso para colapsar baralhos que estão um dentro do outro na mesma carta. Útil se você tem cartas que pertencem a muitos baralhos em um mesmo arquivo.", ALGORITHM: "Algorítmo", CHECK_ALGORITHM_WIKI: 'Para mais informações, cheque a implementação do algorítmo.', BASE_EASE: "Facilidade base", - BASE_EASE_DESC: "mínimo = 130, preferivelmente aproximadamente 250.", + BASE_EASE_DESC: "mínimo = 130, preferivelmente por volta de 250.", BASE_EASE_MIN_WARNING: "A facilidade base deve ser pelo menos 130.", LAPSE_INTERVAL_CHANGE: "Mudança de intervalo quando você revisa um(a) flashcard/nota como difícil", @@ -140,7 +140,7 @@ export default { EASY_BONUS_DESC: "O bônus de fácil te permite mudar a diferência entre intervalos de responder OK e Fácil em um(a) flashcard/nota (mínimo = 100%).", EASY_BONUS_MIN_WARNING: "O bônus de fácil deve ser pelo menos 100.", - MAX_INTERVAL: "Maximum interval in days", + MAX_INTERVAL: "Intervalo máximo em dias", MAX_INTERVAL_DESC: "Te permite colocar um limite máximo no intervalo (pré-definição = 100 anos).", MAX_INTERVAL_MIN_WARNING: "O intervalo máximo deve ser pelo menos 1 dia.", @@ -161,7 +161,7 @@ export default { // stats-modal.tsx STATS_TITLE: "Estatísticas", MONTH: "Mês", - QUARTER: "Quarto", + QUARTER: "Trimestre", YEAR: "Ano", LIFETIME: "Tempo Total", FORECAST: "Previsão", @@ -177,7 +177,7 @@ export default { EASES: "Facilidades", EASES_SUMMARY: "Facilidade em média: ${avgEase}", CARD_TYPES: "Tipos de Cartas", - CARD_TYPES_DESC: "Isso também inclui cartas enterrados, caso existam", + CARD_TYPES_DESC: "Isso também inclui cartas enterradas, caso existam", CARD_TYPE_NEW: "Novo", CARD_TYPE_YOUNG: "Jovem", CARD_TYPE_MATURE: "Amadurecido", From 981c7e5cba38b328314e169e82b583cf82c39c3c Mon Sep 17 00:00:00 2001 From: Stephen Mwangi Date: Tue, 16 Jan 2024 19:22:35 +0300 Subject: [PATCH 09/12] chore: fix README to point to new project board (#848) --- .github/workflows/e2e.yml | 4 ++-- .github/workflows/pr.yml | 4 ++-- .github/workflows/release.yml | 4 ++-- README.md | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 5984beb9..0e2eeac5 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -13,9 +13,9 @@ jobs: steps: - name: Setup Node - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: - node-version: "20.x" + node-version: "20" - uses: actions/checkout@v3 diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 819568d6..4e09efad 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -10,9 +10,9 @@ jobs: steps: - name: Setup Node - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: - node-version: "20.x" + node-version: "20" - uses: actions/checkout@v3 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 31b97e97..76f76c03 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -16,9 +16,9 @@ jobs: - uses: actions/checkout@v3 - name: Use Node.js - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: - node-version: "20.x" + node-version: "20" - name: Build id: build diff --git a/README.md b/README.md index 1f3d38f7..e2655715 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ Fight the forgetting curve & note aging by reviewing flashcards & notes using spaced repetition on Obsidian.md - Check the documentation [here](https://www.stephenmwangi.com/obsidian-spaced-repetition/). -- Check the [roadmap](https://github.com/st3v3nmw/obsidian-spaced-repetition/projects/2/) for upcoming features & fixes. +- Check the [roadmap](https://github.com/st3v3nmw/obsidian-spaced-repetition/projects/3/) for upcoming features & fixes. - Raise an issue [here](https://github.com/st3v3nmw/obsidian-spaced-repetition/issues/) if you have a feature request or a bug report. - Visit the [discussions](https://github.com/st3v3nmw/obsidian-spaced-repetition/discussions/) section for Q&A help, feedback, and general discussion. - The plugin has been translated into _Arabic / العربية, Chinese (Simplified) / 简体中文, Chinese (Traditional) / 繁體中文, Czech / čeština, German / Deutsch, Korean / 한국어, Japanese / 日本語, Portuguese (Brazil) / Português do Brasil, Spanish / Español, and Russian / русский_ by the Obsidian community 😄. From df20007cbde0eb9aa4d04ff10b3aa4b1b1491962 Mon Sep 17 00:00:00 2001 From: Stephen Mwangi Date: Mon, 22 Jan 2024 19:52:05 +0300 Subject: [PATCH 10/12] Bump version to v1.11.1 (#854) --- LICENSE | 2 +- docs/changelog.md | 6 ++++-- manifest.json | 2 +- package.json | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/LICENSE b/LICENSE index 679a294e..2c2a211a 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2021 - 2023 Stephen Mwangi +Copyright (c) 2021 - 2024 Stephen Mwangi Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/docs/changelog.md b/docs/changelog.md index 7f4516a4..de75b9ca 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -4,9 +4,11 @@ All notable changes to this project will be documented in this file. Dates are d Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). -#### [Unreleased] +#### [1.11.1](https://github.com/st3v3nmw/obsidian-spaced-repetition/compare/1.11.0...1.11.1) -- chore: Update dependencies [`#845`](https://github.com/st3v3nmw/obsidian-spaced-repetition/pull/845) +- chore: fix README to point to new project board [`#848`](https://github.com/st3v3nmw/obsidian-spaced-repetition/pull/848) +- chore: update pt-br.ts for Brazilian Portuguese translation [`#765`](https://github.com/st3v3nmw/obsidian-spaced-repetition/pull/765) +- chore: update dependencies [`#845`](https://github.com/st3v3nmw/obsidian-spaced-repetition/pull/845) - Bug 826 auto review next note doesn't work when first note reviewed is not selected from sidebar [`#827`](https://github.com/st3v3nmw/obsidian-spaced-repetition/pull/827) - Completion and improvement of `ru` translation. [`#838`](https://github.com/st3v3nmw/obsidian-spaced-repetition/pull/838) - [FIX] Bug #841. [`#842`](https://github.com/st3v3nmw/obsidian-spaced-repetition/pull/842) diff --git a/manifest.json b/manifest.json index a1a13dff..c50c6273 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-spaced-repetition", "name": "Spaced Repetition", - "version": "1.11.0", + "version": "1.11.1", "minAppVersion": "0.15.4", "description": "Fight the forgetting curve by reviewing flashcards & entire notes.", "author": "Stephen Mwangi", diff --git a/package.json b/package.json index 85ba33c9..dc97444d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "obsidian-spaced-repetition", - "version": "1.11.0", + "version": "1.11.1", "description": "Fight the forgetting curve by reviewing flashcards & entire notes.", "main": "main.js", "scripts": { From 1ac57eee2a139ac42409e70b6df2471e6eff7f48 Mon Sep 17 00:00:00 2001 From: Newdea <9208450+Newdea@users.noreply.github.com> Date: Tue, 6 Feb 2024 11:20:58 +0800 Subject: [PATCH 11/12] fix conflict --- src/main.ts | 39 ++++++++++++++++++++++------------- src/reviewNote/review-note.ts | 6 +++--- 2 files changed, 28 insertions(+), 17 deletions(-) diff --git a/src/main.ts b/src/main.ts index 316b87ef..237c0fbe 100644 --- a/src/main.ts +++ b/src/main.ts @@ -7,7 +7,7 @@ import { StatsModal } from "src/gui/stats-modal"; import { ReviewQueueListView, REVIEW_QUEUE_VIEW_TYPE } from "src/gui/sidebar"; import { ReviewResponse, schedule } from "src/scheduling"; import { YAML_FRONT_MATTER_REGEX, SCHEDULING_INFO_REGEX } from "src/constants"; -import { ReviewDeck } from "src/ReviewDeck"; +import { ReviewDeck, SchedNote } from "src/ReviewDeck"; import { t } from "src/lang/helpers"; import { appIcon } from "src/icons/appicon"; import { TopicPath } from "./TopicPath"; @@ -77,6 +77,16 @@ const DEFAULT_DATA: PluginData = { historyDeck: null, }; +// export interface SchedNote { +// note: TFile; +// dueUnix: number; +// } + +// export interface LinkStat { +// sourcePath: string; +// linkCount: number; +// } + export default class SRPlugin extends Plugin { private statusBar: HTMLElement; private reviewQueueView: ReviewQueueListView; @@ -180,9 +190,11 @@ export default class SRPlugin extends Plugin { for (let i = 1; i < options.length; i++) { menu.addItem((item) => { // item.setTitle(t("REVIEW_EASY_FILE_MENU")) - item.setTitle(t("REVIEW_DIFFICULTY_FILE_MENU", { - difficulty: showtext[algo][i], - }),) + item.setTitle( + t("REVIEW_DIFFICULTY_FILE_MENU", { + difficulty: showtext[algo][i], + }), + ) .setIcon("SpacedRepIcon") .onClick(() => { this.saveReviewResponse(fileish, i); @@ -468,7 +480,7 @@ export default class SRPlugin extends Plugin { this.easeByPath.setEaseForPath(noteFile.path, ease); const nDays: number = Math.ceil((dueUnix - now.valueOf()) / (24 * 3600 * 1000)); - + const interval = Number(frontmatter["sr-interval"]); this.noteStats.update(nDays, interval, ease); } @@ -700,12 +712,8 @@ export default class SRPlugin extends Plugin { this.data.buryList.push(...result.buryList); await this.savePluginData(); } - this.reviewDecks[deckName].sortNotes(this.linkRank.pageranks); - // this.dueNotesCount = this. ... - this.updateStatusBar(); - if (settings.autoNextNote) { - this.reviewNextNote(deckName); - } + + this.postResponse(note, result.dueNum); return; } const fileCachedData = this.app.metadataCache.getFileCache(note) || {}; @@ -804,12 +812,15 @@ export default class SRPlugin extends Plugin { // Update note's properties to update our due notes. this.easeByPath.setEaseForPath(note.path, ease); + this.postResponse(note, due.valueOf()); + } + private postResponse(note: TFile, dueNum: number) { Object.values(this.reviewDecks).forEach((reviewDeck: ReviewDeck) => { let wasDueInDeck = false; for (const scheduledNote of reviewDeck.scheduledNotes) { if (scheduledNote.note.path === note.path) { - scheduledNote.dueUnix = due.valueOf(); + scheduledNote.dueUnix = dueNum; wasDueInDeck = true; break; } @@ -818,10 +829,10 @@ export default class SRPlugin extends Plugin { // It was a new note, remove it from the new notes and schedule it. if (!wasDueInDeck) { reviewDeck.newNotes.splice( - reviewDeck.newNotes.findIndex((newNote: TFile) => newNote.path === note.path), + reviewDeck.newNotes.findIndex((newNote) => newNote.note.path === note.path), 1, ); - reviewDeck.scheduledNotes.push({ note, dueUnix: due.valueOf() }); + reviewDeck.scheduledNotes.push({ note, dueUnix: dueNum }); } }); diff --git a/src/reviewNote/review-note.ts b/src/reviewNote/review-note.ts index b4dcd870..da89266d 100644 --- a/src/reviewNote/review-note.ts +++ b/src/reviewNote/review-note.ts @@ -67,9 +67,9 @@ export class ReviewNote { ReviewNote.recallReviewResponse(fileId, option); - preUpdateDeck(deck, note); - ItemToDecks.toRevDeck(deck, note, now); - return { buryList }; + // preUpdateDeck(deck, note); + // ItemToDecks.toRevDeck(deck, note, now); + return { buryList, dueNum: item.nextReview }; } static recallReviewNote(settings: SRSettings) { From 65e3160b0ced7e9a1b502da9b3328458df241d4d Mon Sep 17 00:00:00 2001 From: Newdea Date: Wed, 7 Feb 2024 15:23:43 +0000 Subject: [PATCH 12/12] Prettified Code! --- src/algorithms/anki.ts | 4 ++-- src/gui/reviewresponse-modal.tsx | 4 ++-- src/lang/locale/ar.ts | 4 ++-- src/lang/locale/cz.ts | 4 ++-- src/lang/locale/de.ts | 4 ++-- src/lang/locale/es.ts | 4 ++-- src/lang/locale/ja.ts | 4 ++-- src/lang/locale/ko.ts | 4 ++-- src/lang/locale/pt-br.ts | 4 ++-- src/lang/locale/ru.ts | 4 ++-- 10 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/algorithms/anki.ts b/src/algorithms/anki.ts index 588530d0..f044d74b 100644 --- a/src/algorithms/anki.ts +++ b/src/algorithms/anki.ts @@ -160,8 +160,8 @@ export class AnkiAlgorithm extends SrsAlgorithm { lastitval > newdata.lastInterval ? lastitval : iter > 1 - ? this.settings.graduatingInterval - : newdata.lastInterval; + ? this.settings.graduatingInterval + : newdata.lastInterval; newdata.iteration = iter; item.data = deepcopy(newdata); } diff --git a/src/gui/reviewresponse-modal.tsx b/src/gui/reviewresponse-modal.tsx index c2548403..f597f06a 100644 --- a/src/gui/reviewresponse-modal.tsx +++ b/src/gui/reviewresponse-modal.tsx @@ -273,8 +273,8 @@ export class reviewResponseModal { this.responseInterval == null ? `${text}` : Platform.isMobile - ? textInterval(this.responseInterval[index], true) - : `${text} - ${textInterval(this.responseInterval[index], false)}`; + ? textInterval(this.responseInterval[index], true) + : `${text} - ${textInterval(this.responseInterval[index], false)}`; } return text; } diff --git a/src/lang/locale/ar.ts b/src/lang/locale/ar.ts index 15c359ee..cb19ae18 100644 --- a/src/lang/locale/ar.ts +++ b/src/lang/locale/ar.ts @@ -183,8 +183,8 @@ export default { FLASHCARD_BLACKOUT_DESC: 'Customize the label for the "Blackout" Button', FLASHCARD_INCORRECT_DESC: 'Customize the label for the "Incorrect" Button', "FLASHCARD_INCORRECT (EASY)_DESC": 'Customize the label for the "Incorrect (Easy)" Button', - UNTRACK_WITH_REVIEWTAG:"UntrackWithReviewTag", - + UNTRACK_WITH_REVIEWTAG: "UntrackWithReviewTag", + // sidebar.ts NOTES_REVIEW_QUEUE: "ملاحظات قائمة المراجعة", CLOSE: "أغلق", diff --git a/src/lang/locale/cz.ts b/src/lang/locale/cz.ts index cf46433f..c1cde3ac 100644 --- a/src/lang/locale/cz.ts +++ b/src/lang/locale/cz.ts @@ -187,8 +187,8 @@ export default { FLASHCARD_BLACKOUT_DESC: 'Customize the label for the "Blackout" Button', FLASHCARD_INCORRECT_DESC: 'Customize the label for the "Incorrect" Button', "FLASHCARD_INCORRECT (EASY)_DESC": 'Customize the label for the "Incorrect (Easy)" Button', - UNTRACK_WITH_REVIEWTAG:"UntrackWithReviewTag", - + UNTRACK_WITH_REVIEWTAG: "UntrackWithReviewTag", + // sidebar.ts NOTES_REVIEW_QUEUE: "Fronta poznámek k revizi", CLOSE: "Uzavřené", diff --git a/src/lang/locale/de.ts b/src/lang/locale/de.ts index 73a432bd..0b6f2b46 100644 --- a/src/lang/locale/de.ts +++ b/src/lang/locale/de.ts @@ -198,8 +198,8 @@ export default { FLASHCARD_BLACKOUT_DESC: 'Customize the label for the "Blackout" Button', FLASHCARD_INCORRECT_DESC: 'Customize the label for the "Incorrect" Button', "FLASHCARD_INCORRECT (EASY)_DESC": 'Customize the label for the "Incorrect (Easy)" Button', - UNTRACK_WITH_REVIEWTAG:"UntrackWithReviewTag", - + UNTRACK_WITH_REVIEWTAG: "UntrackWithReviewTag", + // sidebar.ts NOTES_REVIEW_QUEUE: "Anstehende Notizen zur Wiederholung", CLOSE: "Schliessen", diff --git a/src/lang/locale/es.ts b/src/lang/locale/es.ts index 9030a92a..2ef87512 100644 --- a/src/lang/locale/es.ts +++ b/src/lang/locale/es.ts @@ -192,8 +192,8 @@ export default { FLASHCARD_BLACKOUT_DESC: 'Customize the label for the "Blackout" Button', FLASHCARD_INCORRECT_DESC: 'Customize the label for the "Incorrect" Button', "FLASHCARD_INCORRECT (EASY)_DESC": 'Customize the label for the "Incorrect (Easy)" Button', - UNTRACK_WITH_REVIEWTAG:"UntrackWithReviewTag", - + UNTRACK_WITH_REVIEWTAG: "UntrackWithReviewTag", + // sidebar.ts NOTES_REVIEW_QUEUE: "Cola de notas a revisar", CLOSE: "Cerrar", diff --git a/src/lang/locale/ja.ts b/src/lang/locale/ja.ts index e7b3dfbb..9844dc78 100644 --- a/src/lang/locale/ja.ts +++ b/src/lang/locale/ja.ts @@ -191,8 +191,8 @@ export default { FLASHCARD_BLACKOUT_DESC: 'Customize the label for the "Blackout" Button', FLASHCARD_INCORRECT_DESC: 'Customize the label for the "Incorrect" Button', "FLASHCARD_INCORRECT (EASY)_DESC": 'Customize the label for the "Incorrect (Easy)" Button', - UNTRACK_WITH_REVIEWTAG:"UntrackWithReviewTag", - + UNTRACK_WITH_REVIEWTAG: "UntrackWithReviewTag", + // sidebar.ts NOTES_REVIEW_QUEUE: "ノートレビューのキュー", CLOSE: "閉じる", diff --git a/src/lang/locale/ko.ts b/src/lang/locale/ko.ts index 26767410..5b02a8a9 100644 --- a/src/lang/locale/ko.ts +++ b/src/lang/locale/ko.ts @@ -188,8 +188,8 @@ export default { FLASHCARD_BLACKOUT_DESC: 'Customize the label for the "Blackout" Button', FLASHCARD_INCORRECT_DESC: 'Customize the label for the "Incorrect" Button', "FLASHCARD_INCORRECT (EASY)_DESC": 'Customize the label for the "Incorrect (Easy)" Button', - UNTRACK_WITH_REVIEWTAG:"UntrackWithReviewTag", - + UNTRACK_WITH_REVIEWTAG: "UntrackWithReviewTag", + // sidebar.ts NOTES_REVIEW_QUEUE: "리뷰할 노트 대기열", CLOSE: "닫기", diff --git a/src/lang/locale/pt-br.ts b/src/lang/locale/pt-br.ts index f9caaf82..8c0b7d7e 100644 --- a/src/lang/locale/pt-br.ts +++ b/src/lang/locale/pt-br.ts @@ -194,8 +194,8 @@ export default { FLASHCARD_BLACKOUT_DESC: 'Customize the label for the "Blackout" Button', FLASHCARD_INCORRECT_DESC: 'Customize the label for the "Incorrect" Button', "FLASHCARD_INCORRECT (EASY)_DESC": 'Customize the label for the "Incorrect (Easy)" Button', - UNTRACK_WITH_REVIEWTAG:"UntrackWithReviewTag", - + UNTRACK_WITH_REVIEWTAG: "UntrackWithReviewTag", + // sidebar.ts NOTES_REVIEW_QUEUE: "Fila de Notas para Revisar", CLOSE: "Fechar", diff --git a/src/lang/locale/ru.ts b/src/lang/locale/ru.ts index 9962a1bb..94a88702 100644 --- a/src/lang/locale/ru.ts +++ b/src/lang/locale/ru.ts @@ -201,8 +201,8 @@ export default { FLASHCARD_BLACKOUT_DESC: 'Customize the label for the "Blackout" Button', FLASHCARD_INCORRECT_DESC: 'Customize the label for the "Incorrect" Button', "FLASHCARD_INCORRECT (EASY)_DESC": 'Customize the label for the "Incorrect (Easy)" Button', - UNTRACK_WITH_REVIEWTAG:"UntrackWithReviewTag", - + UNTRACK_WITH_REVIEWTAG: "UntrackWithReviewTag", + // sidebar.ts NOTES_REVIEW_QUEUE: "Очередь заметок на повторение", CLOSE: "Закрыть",