let WIDGET_TPL = `<div class="smm-widget"> <div id="[to be set]" class="smm-render"></div> </div>`; class SmmWidget extends api.NoteContextAwareWidget { static get parentWidget() { return "note-detail-pane"; } isEnabled() { return super.isEnabled() && this.note.type === 'code' && this.note.mime==="application/json" && this.note.hasLabel('simpleMindMap') && this.note.isContentAvailable() && this.noteContext?.viewScope.viewMode === 'default'; } async doRender() { this.$widget = $(WIDGET_TPL); this.contentSized(); // css move to #appCss // this.cssBlock(styles); this.$render = this.$widget.find('.smm-render'); this.$render.attr('id', this.componentId); return this.$widget; } async renderWidget() { // 清空重新渲染 this.$render.empty(); const context = { "widget": this.$widget, "note": this.note, "config": { showSource: false, lang: "zh", useLeftKeySelectionRightKeyDrag: false, imageNoteType: "svg", exportType: "note", helpUrl: "https://github.com/waterovo/trilium-simple-mind-map?tab=readme-ov-file#%E4%BD%BF%E7%94%A8", rainbowLinesConfig:{open:false}, } } this.smmRender = new SmmRender(context); await this.smmRender.init(); } async refreshWithNote(note) { $(document).ready(async()=>{ await this.refreshWidget(); }); } async refreshWidget() { await this.renderWidget(); } } module.exports = SmmWidget;