| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- 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;
|