Files
il/resources/public/js/cljs-runtime/module$node_modules$pixi_DOT_js$lib$scene$text$TextStyle.js
2026-07-01 22:38:29 -06:00

258 lines
12 KiB
JavaScript

shadow$provide.module$node_modules$pixi_DOT_js$lib$scene$text$TextStyle = function(global, require, module, exports) {
function convertV7Tov8Style(style) {
if ("boolean" === typeof style.dropShadow && style.dropShadow) {
var defaults = TextStyle.defaultDropShadow;
style.dropShadow = {alpha:style.dropShadowAlpha ?? defaults.alpha, angle:style.dropShadowAngle ?? defaults.angle, blur:style.dropShadowBlur ?? defaults.blur, color:style.dropShadowColor ?? defaults.color, distance:style.dropShadowDistance ?? defaults.distance};
}
if (void 0 !== style.strokeThickness) {
deprecation.deprecation(deprecation.v8_0_0, "strokeThickness is now a part of stroke");
defaults = style.stroke;
let obj = {};
if (Color.Color.isColorLike(defaults)) {
obj.color = defaults;
} else if (defaults instanceof FillGradient.FillGradient || defaults instanceof FillPattern.FillPattern) {
obj.fill = defaults;
} else if (Object.hasOwnProperty.call(defaults, "color") || Object.hasOwnProperty.call(defaults, "fill")) {
obj = defaults;
} else {
throw Error("Invalid stroke value.");
}
style.stroke = {...obj, width:style.strokeThickness};
}
if (Array.isArray(style.fillGradientStops)) {
deprecation.deprecation(deprecation.v8_0_0, "gradient fill is now a fill pattern: `new FillGradient(...)`");
if (!Array.isArray(style.fill) || 0 === style.fill.length) {
throw Error("Invalid fill value. Expected an array of colors for gradient fill.");
}
style.fill.length !== style.fillGradientStops.length && warn.warn("The number of fill colors must match the number of fill gradient stops.");
const gradientFill = new FillGradient.FillGradient({start:{x:0, y:0}, end:{x:0, y:1}, textureSpace:"local"});
defaults = style.fillGradientStops.slice();
const fills = style.fill.map(color => Color.Color.shared.setValue(color).toNumber());
defaults.forEach((stop, index) => {
gradientFill.addColorStop(stop, fills[index]);
});
style.fill = {fill:gradientFill};
}
}
global = require("module$node_modules$eventemitter3$index");
var Color = require("module$node_modules$pixi_DOT_js$lib$color$Color"), uid = require("module$node_modules$pixi_DOT_js$lib$utils$data$uid"), deprecation = require("module$node_modules$pixi_DOT_js$lib$utils$logging$deprecation"), warn = require("module$node_modules$pixi_DOT_js$lib$utils$logging$warn"), FillGradient = require("module$node_modules$pixi_DOT_js$lib$scene$graphics$shared$fill$FillGradient"), FillPattern = require("module$node_modules$pixi_DOT_js$lib$scene$graphics$shared$fill$FillPattern"),
GraphicsContext = require("module$node_modules$pixi_DOT_js$lib$scene$graphics$shared$GraphicsContext"), convertFillInputToFillStyle = require("module$node_modules$pixi_DOT_js$lib$scene$graphics$shared$utils$convertFillInputToFillStyle"), fontStringFromTextStyle = require("module$node_modules$pixi_DOT_js$lib$scene$text$canvas$utils$fontStringFromTextStyle");
"use strict";
const node_modules$pixi_DOT_js$lib$scene$text$TextStyle$classdecl$var35 = class extends global {
constructor(style = {}) {
super();
this.uid = uid.uid("textStyle");
this._tick = 0;
this._cachedFontString = null;
convertV7Tov8Style(style);
var existingStyle = style;
style instanceof node_modules$pixi_DOT_js$lib$scene$text$TextStyle$classdecl$var35 && (style = existingStyle._toObject());
existingStyle = {...node_modules$pixi_DOT_js$lib$scene$text$TextStyle$classdecl$var35.defaultTextStyle, ...style};
for (const key in existingStyle) {
this[key] = existingStyle[key];
}
this._tagStyles = style.tagStyles ?? void 0;
this.update();
this._tick = 0;
}
get align() {
return this._align;
}
set align(value) {
this._align !== value && (this._align = value, this.update());
}
get breakWords() {
return this._breakWords;
}
set breakWords(value) {
this._breakWords !== value && (this._breakWords = value, this.update());
}
get dropShadow() {
return this._dropShadow;
}
set dropShadow(value) {
this._dropShadow !== value && (this._dropShadow = null !== value && "object" === typeof value ? this._createProxy({...node_modules$pixi_DOT_js$lib$scene$text$TextStyle$classdecl$var35.defaultDropShadow, ...value}) : value ? this._createProxy({...node_modules$pixi_DOT_js$lib$scene$text$TextStyle$classdecl$var35.defaultDropShadow}) : null, this.update());
}
get fontFamily() {
return this._fontFamily;
}
set fontFamily(value) {
this._fontFamily !== value && (this._fontFamily = value, this.update());
}
get fontSize() {
return this._fontSize;
}
set fontSize(value) {
this._fontSize !== value && (this._fontSize = "string" === typeof value ? parseInt(value, 10) : value, this.update());
}
get fontStyle() {
return this._fontStyle;
}
set fontStyle(value) {
this._fontStyle !== value && (this._fontStyle = value.toLowerCase(), this.update());
}
get fontVariant() {
return this._fontVariant;
}
set fontVariant(value) {
this._fontVariant !== value && (this._fontVariant = value, this.update());
}
get fontWeight() {
return this._fontWeight;
}
set fontWeight(value) {
this._fontWeight !== value && (this._fontWeight = value, this.update());
}
get leading() {
return this._leading;
}
set leading(value) {
this._leading !== value && (this._leading = value, this.update());
}
get letterSpacing() {
return this._letterSpacing;
}
set letterSpacing(value) {
this._letterSpacing !== value && (this._letterSpacing = value, this.update());
}
get lineHeight() {
return this._lineHeight;
}
set lineHeight(value) {
this._lineHeight !== value && (this._lineHeight = value, this.update());
}
get padding() {
return this._padding;
}
set padding(value) {
this._padding !== value && (this._padding = value, this.update());
}
get filters() {
return this._filters;
}
set filters(value) {
this._filters !== value && (this._filters = Object.freeze(value), this.update());
}
get trim() {
return this._trim;
}
set trim(value) {
this._trim !== value && (this._trim = value, this.update());
}
get textBaseline() {
return this._textBaseline;
}
set textBaseline(value) {
this._textBaseline !== value && (this._textBaseline = value, this.update());
}
get whiteSpace() {
return this._whiteSpace;
}
set whiteSpace(value) {
this._whiteSpace !== value && (this._whiteSpace = value, this.update());
}
get wordWrap() {
return this._wordWrap;
}
set wordWrap(value) {
this._wordWrap !== value && (this._wordWrap = value, this.update());
}
get wordWrapWidth() {
return this._wordWrapWidth;
}
set wordWrapWidth(value) {
this._wordWrapWidth !== value && (this._wordWrapWidth = value, this.update());
}
get fill() {
return this._originalFill;
}
set fill(value) {
value !== this._originalFill && (this._originalFill = value, this._isFillStyle(value) && (this._originalFill = this._createProxy({...GraphicsContext.GraphicsContext.defaultFillStyle, ...value}, () => {
this._fill = convertFillInputToFillStyle.toFillStyle({...this._originalFill}, GraphicsContext.GraphicsContext.defaultFillStyle);
})), this._fill = convertFillInputToFillStyle.toFillStyle(0 === value ? "black" : value, GraphicsContext.GraphicsContext.defaultFillStyle), this.update());
}
get stroke() {
return this._originalStroke;
}
set stroke(value) {
value !== this._originalStroke && (this._originalStroke = value, this._isFillStyle(value) && (this._originalStroke = this._createProxy({...GraphicsContext.GraphicsContext.defaultStrokeStyle, ...value}, () => {
this._stroke = convertFillInputToFillStyle.toStrokeStyle({...this._originalStroke}, GraphicsContext.GraphicsContext.defaultStrokeStyle);
})), this._stroke = convertFillInputToFillStyle.toStrokeStyle(value, GraphicsContext.GraphicsContext.defaultStrokeStyle), this.update());
}
get tagStyles() {
return this._tagStyles;
}
set tagStyles(value) {
this._tagStyles !== value && (this._tagStyles = value ?? void 0, this.update());
}
update() {
this._tick++;
this._cachedFontString = null;
this.emit("update", this);
}
reset() {
const defaultStyle = node_modules$pixi_DOT_js$lib$scene$text$TextStyle$classdecl$var35.defaultTextStyle;
for (const key in defaultStyle) {
this[key] = defaultStyle[key];
}
}
assign(values) {
for (const key in values) {
this[key] = values[key];
}
return this;
}
get styleKey() {
return `${this.uid}-${this._tick}`;
}
get _fontString() {
null === this._cachedFontString && (this._cachedFontString = fontStringFromTextStyle.fontStringFromTextStyle(this));
return this._cachedFontString;
}
_toObject() {
return {align:this.align, breakWords:this.breakWords, dropShadow:this._dropShadow ? {...this._dropShadow} : null, fill:this._fill ? {...this._fill} : void 0, fontFamily:this.fontFamily, fontSize:this.fontSize, fontStyle:this.fontStyle, fontVariant:this.fontVariant, fontWeight:this.fontWeight, leading:this.leading, letterSpacing:this.letterSpacing, lineHeight:this.lineHeight, padding:this.padding, stroke:this._stroke ? {...this._stroke} : void 0, textBaseline:this.textBaseline, trim:this.trim,
whiteSpace:this.whiteSpace, wordWrap:this.wordWrap, wordWrapWidth:this.wordWrapWidth, filters:this._filters ? [...this._filters] : void 0, tagStyles:this._tagStyles ? {...this._tagStyles} : void 0};
}
clone() {
return new node_modules$pixi_DOT_js$lib$scene$text$TextStyle$classdecl$var35(this._toObject());
}
_getFinalPadding() {
let filterPadding = 0;
if (this._filters) {
for (let i = 0; i < this._filters.length; i++) {
filterPadding += this._filters[i].padding;
}
}
return Math.max(this._padding, filterPadding);
}
destroy(options = !1) {
this.removeAllListeners();
if ("boolean" === typeof options ? options : options?.texture) {
options = "boolean" === typeof options ? options : options?.textureSource, this._fill?.texture && this._fill.texture.destroy(options), this._originalFill?.texture && this._originalFill.texture.destroy(options), this._stroke?.texture && this._stroke.texture.destroy(options), this._originalStroke?.texture && this._originalStroke.texture.destroy(options);
}
this._originalFill = this._originalStroke = this.dropShadow = this._stroke = this._fill = null;
}
_createProxy(value, cb) {
return new Proxy(value, {set:(target, property, newValue) => {
if (target[property] === newValue) {
return !0;
}
target[property] = newValue;
cb?.(property, newValue);
this.update();
return !0;
}});
}
_isFillStyle(value) {
return null !== (value ?? null) && !(Color.Color.isColorLike(value) || value instanceof FillGradient.FillGradient || value instanceof FillPattern.FillPattern);
}
};
require = node_modules$pixi_DOT_js$lib$scene$text$TextStyle$classdecl$var35;
require.defaultDropShadow = {alpha:1, angle:Math.PI / 6, blur:0, color:"black", distance:5};
require.defaultTextStyle = {align:"left", breakWords:!1, dropShadow:null, fill:"black", fontFamily:"Arial", fontSize:26, fontStyle:"normal", fontVariant:"normal", fontWeight:"normal", leading:0, letterSpacing:0, lineHeight:0, padding:0, stroke:null, textBaseline:"alphabetic", trim:!1, whiteSpace:"pre", wordWrap:!1, wordWrapWidth:100};
let TextStyle = require;
exports.TextStyle = TextStyle;
};
//# sourceMappingURL=module$node_modules$pixi_DOT_js$lib$scene$text$TextStyle.js.map