import { t } from "../../services/i18n.js"; import utils from "../../services/utils.js"; import server from "../../services/server.js"; import toastService from "../../services/toast.js"; import appContext from "../../components/app_context.js"; import openService from "../../services/open.js"; import protectedSessionHolder from "../../services/protected_session_holder.js"; import BasicWidget from "../basic_widget.js"; import dialogService, { openDialog } from "../../services/dialog.js"; import options from "../../services/options.js"; import type FNote from "../../entities/fnote.js"; import type { NoteType } from "../../entities/fnote.js"; import { Dropdown, Modal } from "bootstrap"; import { renderMathInElement } from "../../services/math.js"; const TPL = /*html*/`
")
                .text(fullRevision.content).prop("outerHTML"));
        } else if (revisionItem.type === "image") {
            if (fullRevision.mime === "image/svg+xml") {
                let encodedSVG = encodeURIComponent(fullRevision.content); //Base64 of other format images may be embedded in svg
                this.$content.html($("![]() ")
                    .attr("src", `data:${fullRevision.mime};utf8,${encodedSVG}`)
                    .css("max-width", "100%")
                    .css("max-height", "100%").prop("outerHTML"));
            } else {
                this.$content.html(
                    $("
")
                    .attr("src", `data:${fullRevision.mime};utf8,${encodedSVG}`)
                    .css("max-width", "100%")
                    .css("max-height", "100%").prop("outerHTML"));
            } else {
                this.$content.html(
                    $("![]() ")
                        // the reason why we put this inline as base64 is that we do not want to let user copy this
                        // as a URL to be used in a note. Instead, if they copy and paste it into a note, it will be uploaded as a new note
                        .attr("src", `data:${fullRevision.mime};base64,${fullRevision.content}`)
                        .css("max-width", "100%")
                        .css("max-height", "100%")
                        .prop("outerHTML")
                );
            }
        } else if (revisionItem.type === "file") {
            const $table = $("
")
                        // the reason why we put this inline as base64 is that we do not want to let user copy this
                        // as a URL to be used in a note. Instead, if they copy and paste it into a note, it will be uploaded as a new note
                        .attr("src", `data:${fullRevision.mime};base64,${fullRevision.content}`)
                        .css("max-width", "100%")
                        .css("max-height", "100%")
                        .prop("outerHTML")
                );
            }
        } else if (revisionItem.type === "file") {
            const $table = $("| ").text(t("revisions.mime")), $(" | ").text(revisionItem.mime))) .append($(" | 
|---|---|
| ").text(t("revisions.file_size")), $(" | ").text(utils.formatSize(revisionItem.contentLength)))); if (fullRevision.content) { $table.append( $(" | 
| ').append($(' ').text(t("revisions.preview")), $('').text(fullRevision.content))
                    )
                );
            }
            this.$content.html($table.prop("outerHTML"));
        } else if (["canvas", "mindMap"].includes(revisionItem.type)) {
            const encodedTitle = encodeURIComponent(revisionItem.title);
            this.$content.html(
                $(" ").text(fullRevision.content));
        } else {
            this.$content.text(t("revisions.preview_not_available"));
        }
    }
}
 | |