@antv/s2
Version:
effective spreadsheet render core lib
36 lines • 1.32 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SingletonRenderer = void 0;
const renderer_1 = require("../common/constant/renderer");
const ImageRenderer_1 = require("./ImageRenderer");
const VideoRenderer_1 = require("./VideoRenderer");
class SingletonRenderer {
static getInstance(type) {
if (!SingletonRenderer.instances.has(type)) {
let renderer;
switch (type) {
case renderer_1.CellRendererType.IMAGE: {
renderer = new ImageRenderer_1.ImageRenderer();
break;
}
case renderer_1.CellRendererType.VIDEO: {
renderer = new VideoRenderer_1.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);
}
}
exports.SingletonRenderer = SingletonRenderer;
SingletonRenderer.instances = new Map();
//# sourceMappingURL=RendererFactory.js.map