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.
43 lines
1.6 KiB
43 lines
1.6 KiB
import {
|
|
extendPrototype,
|
|
} from '../utils/functionExtensions';
|
|
|
|
import createNS from '../utils/helpers/svg_elements';
|
|
import BaseElement from './BaseElement';
|
|
import TransformElement from './helpers/TransformElement';
|
|
import SVGBaseElement from './svgElements/SVGBaseElement';
|
|
import HierarchyElement from './helpers/HierarchyElement';
|
|
import FrameElement from './helpers/FrameElement';
|
|
import RenderableDOMElement from './helpers/RenderableDOMElement';
|
|
|
|
function IImageElement(data, globalData, comp) {
|
|
this.assetData = globalData.getAssetData(data.refId);
|
|
if (this.assetData && this.assetData.sid) {
|
|
this.assetData = globalData.slotManager.getProp(this.assetData);
|
|
}
|
|
this.initElement(data, globalData, comp);
|
|
this.sourceRect = {
|
|
top: 0, left: 0, width: this.assetData.w, height: this.assetData.h,
|
|
};
|
|
}
|
|
|
|
extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);
|
|
|
|
IImageElement.prototype.createContent = function () {
|
|
var assetPath = this.globalData.getAssetsPath(this.assetData);
|
|
|
|
this.innerElem = createNS('image');
|
|
this.innerElem.setAttribute('width', this.assetData.w + 'px');
|
|
this.innerElem.setAttribute('height', this.assetData.h + 'px');
|
|
this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);
|
|
this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);
|
|
|
|
this.layerElement.appendChild(this.innerElem);
|
|
};
|
|
|
|
IImageElement.prototype.sourceRectAtTime = function () {
|
|
return this.sourceRect;
|
|
};
|
|
|
|
export default IImageElement;
|