@antv/s2
Version:
effective spreadsheet render core lib
38 lines • 1.6 kB
JavaScript
;
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