mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 10:26:08 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			66 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| import FlexContainer from "./containers/flex_container.js";
 | |
| import utils from "../services/utils.js";
 | |
| import attributeService from "../services/attributes.js";
 | |
| 
 | |
| export default class NoteWrapperWidget extends FlexContainer {
 | |
|     constructor() {
 | |
|         super("column");
 | |
| 
 | |
|         this.css("flex-grow", "1").collapsible();
 | |
|     }
 | |
| 
 | |
|     setNoteContextEvent({ noteContext }) {
 | |
|         this.noteContext = noteContext;
 | |
| 
 | |
|         this.refresh();
 | |
|     }
 | |
| 
 | |
|     noteSwitchedAndActivatedEvent() {
 | |
|         this.refresh();
 | |
|     }
 | |
| 
 | |
|     noteSwitchedEvent() {
 | |
|         this.refresh();
 | |
|     }
 | |
| 
 | |
|     activeContextChangedEvent() {
 | |
|         this.refresh();
 | |
|     }
 | |
| 
 | |
|     refresh() {
 | |
|         const isHiddenExt = this.isHiddenExt(); // preserve through class reset
 | |
| 
 | |
|         this.$widget.removeClass();
 | |
| 
 | |
|         this.toggleExt(!isHiddenExt);
 | |
| 
 | |
|         this.$widget.addClass("component note-split");
 | |
| 
 | |
|         const note = this.noteContext?.note;
 | |
|         if (!note) {
 | |
|             return;
 | |
|         }
 | |
| 
 | |
|         this.$widget.toggleClass("full-content-width", ["image", "mermaid", "book", "render", "canvas", "webView", "mindMap", "geoMap"].includes(note.type) || !!note?.isLabelTruthy("fullContentWidth"));
 | |
| 
 | |
|         this.$widget.addClass(note.getCssClass());
 | |
| 
 | |
|         this.$widget.addClass(utils.getNoteTypeClass(note.type));
 | |
|         this.$widget.addClass(utils.getMimeTypeClass(note.mime));
 | |
| 
 | |
|         this.$widget.toggleClass("protected", note.isProtected);
 | |
|     }
 | |
| 
 | |
|     async entitiesReloadedEvent({ loadResults }) {
 | |
|         // listening on changes of note.type and CSS class
 | |
| 
 | |
|         const noteId = this.noteContext?.noteId;
 | |
|         if (
 | |
|             loadResults.isNoteReloaded(noteId) ||
 | |
|             loadResults.getAttributeRows().find((attr) => attr.type === "label" && attr.name === "cssClass" && attributeService.isAffecting(attr, this.noteContext?.note))
 | |
|         ) {
 | |
|             this.refresh();
 | |
|         }
 | |
|     }
 | |
| }
 |