@aurigma/design-atoms
Version:
Design Atoms is a part of Customer's Canvas SDK which allows for manipulating individual design elements through your code.
54 lines • 1.79 kB
JavaScript
import { StringUtils } from "./StringUtils";
export class TextProcessor {
getTextForFrameMeasure(text) {
if (text === "" || text == null)
return "X";
if (this._isEmptyFirstLine(text)) {
text = this._insertIntoFirstLine(text, "X");
}
if (this._isEmptyLastLine(text)) {
text = this._insertIntoLastLine(text, "X");
}
return text;
}
_isEmptyFirstLine(text) {
text = this._normalizeTags(text);
if (text.startsWith("<p></p>"))
return true;
if (text.startsWith("<p><span><br/>"))
return true;
if (text.startsWith("<p><br/>"))
return true;
return false;
}
_insertIntoFirstLine(text, value) {
if (text.startsWith("<p></p>") || text.startsWith("<p><br/>"))
return StringUtils.insert(text, 3, "X");
if (text.startsWith("<p><span>"))
return StringUtils.insert(text, 9, "X");
return text;
}
_isEmptyLastLine(text) {
text = this._normalizeTags(text);
if (text.endsWith("<p></p>"))
return true;
if (text.endsWith("<p><span><br/></span></p>"))
return true;
if (text.endsWith("<p><br/></p>"))
return true;
return false;
}
_insertIntoLastLine(text, value) {
var index = text.lastIndexOf("<p>");
text = text.substring(0, index) + "<p><span>X</span></p>";
return text;
}
_normalizeTags(text) {
text = text
.replace("<br />", "<br/>")
.replace("<br>", "<br/>")
.replace("<br >", "<br/>");
return text;
}
}
//# sourceMappingURL=TextProcessor.js.map