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
