74 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
		
			
		
	
	
			74 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
| 
								 | 
							
								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;
							 |