You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							66 lines
						
					
					
						
							1.2 KiB
						
					
					
				
			
		
		
	
	
							66 lines
						
					
					
						
							1.2 KiB
						
					
					
				| const _ = require('../utils/under-dash');
 | |
| 
 | |
| class Note {
 | |
|   constructor(note) {
 | |
|     this.note = note;
 | |
|   }
 | |
| 
 | |
|   get model() {
 | |
|     let value = null;
 | |
|     switch (typeof this.note) {
 | |
|       case 'string':
 | |
|         value = {
 | |
|           type: 'note',
 | |
|           note: {
 | |
|             texts: [
 | |
|               {
 | |
|                 text: this.note,
 | |
|               },
 | |
|             ],
 | |
|           },
 | |
|         };
 | |
|         break;
 | |
|       default:
 | |
|         value = {
 | |
|           type: 'note',
 | |
|           note: this.note,
 | |
|         };
 | |
|         break;
 | |
|     }
 | |
|     // Suitable for all cell comments
 | |
|     return _.deepMerge({}, Note.DEFAULT_CONFIGS, value);
 | |
|   }
 | |
| 
 | |
|   set model(value) {
 | |
|     const {note} = value;
 | |
|     const {texts} = note;
 | |
|     if (texts.length === 1 && Object.keys(texts[0]).length === 1) {
 | |
|       this.note = texts[0].text;
 | |
|     } else {
 | |
|       this.note = note;
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   static fromModel(model) {
 | |
|     const note = new Note();
 | |
|     note.model = model;
 | |
|     return note;
 | |
|   }
 | |
| }
 | |
| 
 | |
| Note.DEFAULT_CONFIGS = {
 | |
|   note: {
 | |
|     margins: {
 | |
|       insetmode: 'auto',
 | |
|       inset: [0.13, 0.13, 0.25, 0.25],
 | |
|     },
 | |
|     protection: {
 | |
|       locked: 'True',
 | |
|       lockText: 'True',
 | |
|     },
 | |
|     editAs: 'absolute',
 | |
|   },
 | |
| };
 | |
| 
 | |
| module.exports = Note;
 |