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.
95 lines
3.0 KiB
95 lines
3.0 KiB
import LetterProps from '../utils/text/LetterProps';
|
|
import TextProperty from '../utils/text/TextProperty';
|
|
import TextAnimatorProperty from '../utils/text/TextAnimatorProperty';
|
|
import buildShapeString from '../utils/shapes/shapePathBuilder';
|
|
|
|
function ITextElement() {
|
|
}
|
|
|
|
ITextElement.prototype.initElement = function (data, globalData, comp) {
|
|
this.lettersChangedFlag = true;
|
|
this.initFrame();
|
|
this.initBaseData(data, globalData, comp);
|
|
this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);
|
|
this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);
|
|
this.initTransform(data, globalData, comp);
|
|
this.initHierarchy();
|
|
this.initRenderable();
|
|
this.initRendererElement();
|
|
this.createContainerElements();
|
|
this.createRenderableComponents();
|
|
this.createContent();
|
|
this.hide();
|
|
this.textAnimator.searchProperties(this.dynamicProperties);
|
|
};
|
|
|
|
ITextElement.prototype.prepareFrame = function (num) {
|
|
this._mdf = false;
|
|
this.prepareRenderableFrame(num);
|
|
this.prepareProperties(num, this.isInRange);
|
|
};
|
|
|
|
ITextElement.prototype.createPathShape = function (matrixHelper, shapes) {
|
|
var j;
|
|
var jLen = shapes.length;
|
|
var pathNodes;
|
|
var shapeStr = '';
|
|
for (j = 0; j < jLen; j += 1) {
|
|
if (shapes[j].ty === 'sh') {
|
|
pathNodes = shapes[j].ks.k;
|
|
shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);
|
|
}
|
|
}
|
|
return shapeStr;
|
|
};
|
|
|
|
ITextElement.prototype.updateDocumentData = function (newData, index) {
|
|
this.textProperty.updateDocumentData(newData, index);
|
|
};
|
|
|
|
ITextElement.prototype.canResizeFont = function (_canResize) {
|
|
this.textProperty.canResizeFont(_canResize);
|
|
};
|
|
|
|
ITextElement.prototype.setMinimumFontSize = function (_fontSize) {
|
|
this.textProperty.setMinimumFontSize(_fontSize);
|
|
};
|
|
|
|
ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {
|
|
if (documentData.ps) {
|
|
matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);
|
|
}
|
|
matrixHelper.translate(0, -documentData.ls, 0);
|
|
switch (documentData.j) {
|
|
case 1:
|
|
matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);
|
|
break;
|
|
case 2:
|
|
matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
matrixHelper.translate(xPos, yPos, 0);
|
|
};
|
|
|
|
ITextElement.prototype.buildColor = function (colorData) {
|
|
return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';
|
|
};
|
|
|
|
ITextElement.prototype.emptyProp = new LetterProps();
|
|
|
|
ITextElement.prototype.destroy = function () {
|
|
|
|
};
|
|
|
|
ITextElement.prototype.validateText = function () {
|
|
if (this.textProperty._mdf || this.textProperty._isFirstFrame) {
|
|
this.buildNewText();
|
|
this.textProperty._isFirstFrame = false;
|
|
this.textProperty._mdf = false;
|
|
}
|
|
};
|
|
|
|
export default ITextElement;
|