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.
		
		
		
		
		
			
		
			
				
					60 lines
				
				1.6 KiB
			
		
		
			
		
	
	
					60 lines
				
				1.6 KiB
			| 
											2 years ago
										 | const colCache = require('../utils/col-cache'); | ||
|  | const Anchor = require('./anchor'); | ||
|  | 
 | ||
|  | class Image { | ||
|  |   constructor(worksheet, model) { | ||
|  |     this.worksheet = worksheet; | ||
|  |     this.model = model; | ||
|  |   } | ||
|  | 
 | ||
|  |   get model() { | ||
|  |     switch (this.type) { | ||
|  |       case 'background': | ||
|  |         return { | ||
|  |           type: this.type, | ||
|  |           imageId: this.imageId, | ||
|  |         }; | ||
|  |       case 'image': | ||
|  |         return { | ||
|  |           type: this.type, | ||
|  |           imageId: this.imageId, | ||
|  |           hyperlinks: this.range.hyperlinks, | ||
|  |           range: { | ||
|  |             tl: this.range.tl.model, | ||
|  |             br: this.range.br && this.range.br.model, | ||
|  |             ext: this.range.ext, | ||
|  |             editAs: this.range.editAs, | ||
|  |           }, | ||
|  |         }; | ||
|  |       default: | ||
|  |         throw new Error('Invalid Image Type'); | ||
|  |     } | ||
|  |   } | ||
|  | 
 | ||
|  |   set model({type, imageId, range, hyperlinks}) { | ||
|  |     this.type = type; | ||
|  |     this.imageId = imageId; | ||
|  | 
 | ||
|  |     if (type === 'image') { | ||
|  |       if (typeof range === 'string') { | ||
|  |         const decoded = colCache.decode(range); | ||
|  |         this.range = { | ||
|  |           tl: new Anchor(this.worksheet, {col: decoded.left, row: decoded.top}, -1), | ||
|  |           br: new Anchor(this.worksheet, {col: decoded.right, row: decoded.bottom}, 0), | ||
|  |           editAs: 'oneCell', | ||
|  |         }; | ||
|  |       } else { | ||
|  |         this.range = { | ||
|  |           tl: new Anchor(this.worksheet, range.tl, 0), | ||
|  |           br: range.br && new Anchor(this.worksheet, range.br, 0), | ||
|  |           ext: range.ext, | ||
|  |           editAs: range.editAs, | ||
|  |           hyperlinks: hyperlinks || range.hyperlinks, | ||
|  |         }; | ||
|  |       } | ||
|  |     } | ||
|  |   } | ||
|  | } | ||
|  | 
 | ||
|  | module.exports = Image; |