12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- import {
- extendPrototype,
- } from '../../utils/functionExtensions';
- import {
- createSizedArray,
- } from '../../utils/helpers/arrays';
- import PropertyFactory from '../../utils/PropertyFactory';
- import HybridRendererBase from '../../renderers/HybridRendererBase';
- import HBaseElement from './HBaseElement';
- import ICompElement from '../CompElement';
- import SVGCompElement from '../svgElements/SVGCompElement';
- function HCompElement(data, globalData, comp) {
- this.layers = data.layers;
- this.supports3d = !data.hasMask;
- this.completeLayers = false;
- this.pendingElements = [];
- this.elements = this.layers ? createSizedArray(this.layers.length) : [];
- this.initElement(data, globalData, comp);
- this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : { _placeholder: true };
- }
- extendPrototype([HybridRendererBase, ICompElement, HBaseElement], HCompElement);
- HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;
- HCompElement.prototype.createContainerElements = function () {
- this._createBaseContainerElements();
- // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';
- if (this.data.hasMask) {
- this.svgElement.setAttribute('width', this.data.w);
- this.svgElement.setAttribute('height', this.data.h);
- this.transformedElement = this.baseElement;
- } else {
- this.transformedElement = this.layerElement;
- }
- };
- HCompElement.prototype.addTo3dContainer = function (elem, pos) {
- var j = 0;
- var nextElement;
- while (j < pos) {
- if (this.elements[j] && this.elements[j].getBaseElement) {
- nextElement = this.elements[j].getBaseElement();
- }
- j += 1;
- }
- if (nextElement) {
- this.layerElement.insertBefore(elem, nextElement);
- } else {
- this.layerElement.appendChild(elem);
- }
- };
- HCompElement.prototype.createComp = function (data) {
- if (!this.supports3d) {
- return new SVGCompElement(data, this.globalData, this);
- }
- return new HCompElement(data, this.globalData, this);
- };
- export default HCompElement;
|