109 lines
3.5 KiB
JavaScript
109 lines
3.5 KiB
JavaScript
shadow$provide.module$node_modules$pixi_DOT_js$lib$scene$text_split$AbstractSplitText = function(global, require, module, exports) {
|
|
global = require("module$node_modules$pixi_DOT_js$lib$scene$container$Container");
|
|
var TextStyle = require("module$node_modules$pixi_DOT_js$lib$scene$text$TextStyle");
|
|
"use strict";
|
|
class AbstractSplitText extends global.Container {
|
|
constructor(config) {
|
|
const {text, style, autoSplit, lineAnchor, wordAnchor, charAnchor, ...options} = config;
|
|
super(options);
|
|
this._canReuseChars = this._dirty = !1;
|
|
this.chars = [];
|
|
this.words = [];
|
|
this.lines = [];
|
|
this._originalText = text;
|
|
this._autoSplit = autoSplit;
|
|
this._lineAnchor = lineAnchor;
|
|
this._wordAnchor = wordAnchor;
|
|
this._charAnchor = charAnchor;
|
|
this.style = style;
|
|
}
|
|
split() {
|
|
const res = this.splitFn();
|
|
this.chars = res.chars;
|
|
this.words = res.words;
|
|
this.lines = res.lines;
|
|
this.addChild(...this.lines);
|
|
this.charAnchor = this._charAnchor;
|
|
this.wordAnchor = this._wordAnchor;
|
|
this.lineAnchor = this._lineAnchor;
|
|
this._dirty = !1;
|
|
this._canReuseChars = !0;
|
|
}
|
|
get text() {
|
|
return this._originalText;
|
|
}
|
|
set text(value) {
|
|
this._originalText = value;
|
|
this.lines.forEach(line => line.destroy({children:!0}));
|
|
this.lines.length = 0;
|
|
this.words.length = 0;
|
|
this.chars.length = 0;
|
|
this._canReuseChars = !1;
|
|
this.onTextUpdate();
|
|
}
|
|
_setOrigin(value, elements, property) {
|
|
var JSCompiler_object_inline_x_515;
|
|
if ("number" === typeof value) {
|
|
var JSCompiler_object_inline_y_516 = JSCompiler_object_inline_x_515 = value;
|
|
} else {
|
|
JSCompiler_object_inline_x_515 = value.x, JSCompiler_object_inline_y_516 = value.y;
|
|
}
|
|
elements.forEach(element => {
|
|
const localBounds = element.getLocalBounds();
|
|
element.origin.set(localBounds.minX + localBounds.width * JSCompiler_object_inline_x_515, localBounds.minY + localBounds.height * JSCompiler_object_inline_y_516);
|
|
});
|
|
this[property] = value;
|
|
}
|
|
get lineAnchor() {
|
|
return this._lineAnchor;
|
|
}
|
|
set lineAnchor(value) {
|
|
this._setOrigin(value, this.lines, "_lineAnchor");
|
|
}
|
|
get wordAnchor() {
|
|
return this._wordAnchor;
|
|
}
|
|
set wordAnchor(value) {
|
|
this._setOrigin(value, this.words, "_wordAnchor");
|
|
}
|
|
get charAnchor() {
|
|
return this._charAnchor;
|
|
}
|
|
set charAnchor(value) {
|
|
this._setOrigin(value, this.chars, "_charAnchor");
|
|
}
|
|
get style() {
|
|
return this._style;
|
|
}
|
|
set style(style) {
|
|
style || (style = {});
|
|
this._style = new TextStyle.TextStyle(style);
|
|
this.styleChanged();
|
|
}
|
|
styleChanged() {
|
|
this.words.forEach(word => word.destroy());
|
|
this.words.length = 0;
|
|
this.lines.forEach(line => line.destroy());
|
|
this.lines.length = 0;
|
|
this._canReuseChars = !0;
|
|
this.onTextUpdate();
|
|
}
|
|
onTextUpdate() {
|
|
this._dirty = !0;
|
|
this._autoSplit && this.split();
|
|
}
|
|
destroy(options) {
|
|
super.destroy(options);
|
|
this.chars = [];
|
|
this.words = [];
|
|
this.lines = [];
|
|
("boolean" === typeof options ? options : options?.style) && this._style.destroy(options);
|
|
this._style = null;
|
|
this._originalText = "";
|
|
}
|
|
}
|
|
exports.AbstractSplitText = AbstractSplitText;
|
|
};
|
|
|
|
//# sourceMappingURL=module$node_modules$pixi_DOT_js$lib$scene$text_split$AbstractSplitText.js.map
|