You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
2.3 KiB
74 lines
2.3 KiB
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;
|