UNPKG

@antv/s2

Version:

effective spreadsheet render core lib

38 lines 1.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ImageRenderer = void 0; const tslib_1 = require("tslib"); const g_1 = require("@antv/g"); const interface_1 = require("../common/interface"); const customRenderer_1 = require("../utils/cell/customRenderer"); const BaseRenderer_1 = require("./BaseRenderer"); // 图片渲染器 class ImageRenderer extends BaseRenderer_1.BaseRenderer { prepare(renderer, cell) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const text = yield this.prepareText(renderer, cell); return (0, customRenderer_1.asyncDrawImage)({ src: text, fallback: renderer.fallback, timeout: renderer.timeout, mediaCache: BaseRenderer_1.BaseRenderer.mediaCache, }); }); } generateConfig(renderer, cell, element) { const { y, height, width } = cell.getBBoxByType(interface_1.CellClipBox.CONTENT_BOX); const { width: calcWidth, height: calcHeight } = (0, customRenderer_1.calculateImageSize)(width, height, element.naturalWidth, element.naturalHeight); const { x: calcX } = cell.getContentPosition({ contentWidth: calcWidth, }); return { style: Object.assign({ x: calcX, y, src: element, width: calcWidth, height: calcHeight }, renderer.config), }; } render(cell, config) { cell.appendChild(new g_1.Image(config)); } destroy() { } } exports.ImageRenderer = ImageRenderer; //# sourceMappingURL=ImageRenderer.js.map