project/node_modules/zrender/lib/graphic/Image.js

74 lines
2.3 KiB
JavaScript
Raw Normal View History

2024-07-14 15:48:34 +08:00
import { __extends } from "tslib";
import Displayable, { DEFAULT_COMMON_STYLE, DEFAULT_COMMON_ANIMATION_PROPS } from './Displayable.js';
import BoundingRect from '../core/BoundingRect.js';
import { defaults, createObject } from '../core/util.js';
export var DEFAULT_IMAGE_STYLE = defaults({
x: 0,
y: 0
}, DEFAULT_COMMON_STYLE);
export var DEFAULT_IMAGE_ANIMATION_PROPS = {
style: defaults({
x: true,
y: true,
width: true,
height: true,
sx: true,
sy: true,
sWidth: true,
sHeight: true
}, DEFAULT_COMMON_ANIMATION_PROPS.style)
};
function isImageLike(source) {
return !!(source
&& typeof source !== 'string'
&& source.width && source.height);
}
var ZRImage = (function (_super) {
__extends(ZRImage, _super);
function ZRImage() {
return _super !== null && _super.apply(this, arguments) || this;
}
ZRImage.prototype.createStyle = function (obj) {
return createObject(DEFAULT_IMAGE_STYLE, obj);
};
ZRImage.prototype._getSize = function (dim) {
var style = this.style;
var size = style[dim];
if (size != null) {
return size;
}
var imageSource = isImageLike(style.image)
? style.image : this.__image;
if (!imageSource) {
return 0;
}
var otherDim = dim === 'width' ? 'height' : 'width';
var otherDimSize = style[otherDim];
if (otherDimSize == null) {
return imageSource[dim];
}
else {
return imageSource[dim] / imageSource[otherDim] * otherDimSize;
}
};
ZRImage.prototype.getWidth = function () {
return this._getSize('width');
};
ZRImage.prototype.getHeight = function () {
return this._getSize('height');
};
ZRImage.prototype.getAnimationStyleProps = function () {
return DEFAULT_IMAGE_ANIMATION_PROPS;
};
ZRImage.prototype.getBoundingRect = function () {
var style = this.style;
if (!this._rect) {
this._rect = new BoundingRect(style.x || 0, style.y || 0, this.getWidth(), this.getHeight());
}
return this._rect;
};
return ZRImage;
}(Displayable));
ZRImage.prototype.type = 'image';
export default ZRImage;