@antv/s2
Version:
effective spreadsheet render core lib
32 lines • 1.11 kB
JavaScript
import { CellRendererType } from '../common/constant/renderer';
import { ImageRenderer } from './ImageRenderer';
import { VideoRenderer } from './VideoRenderer';
export class SingletonRenderer {
static getInstance(type) {
if (!SingletonRenderer.instances.has(type)) {
let renderer;
switch (type) {
case CellRendererType.IMAGE: {
renderer = new ImageRenderer();
break;
}
case CellRendererType.VIDEO: {
renderer = new VideoRenderer();
break;
}
default: {
renderer = null;
}
}
if (renderer) {
SingletonRenderer.instances.set(type, renderer);
}
}
return SingletonRenderer.instances.get(type);
}
static render(renderer, cell) {
return SingletonRenderer.getInstance(renderer.type).process(renderer, cell);
}
}
SingletonRenderer.instances = new Map();
//# sourceMappingURL=RendererFactory.js.map