shadow$provide.module$node_modules$pixi_DOT_js$lib$scene$container$Container = function(global, require, module, exports) {
  global = require("module$node_modules$eventemitter3$index");
  var Color = require("module$node_modules$pixi_DOT_js$lib$color$Color");
  module = require("module$node_modules$pixi_DOT_js$lib$culling$cullingMixin");
  var Extensions = require("module$node_modules$pixi_DOT_js$lib$extensions$Extensions"), Matrix = require("module$node_modules$pixi_DOT_js$lib$maths$matrix$Matrix"), _const = require("module$node_modules$pixi_DOT_js$lib$maths$misc$const"), ObservablePoint = require("module$node_modules$pixi_DOT_js$lib$maths$point$ObservablePoint"), 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"), 
  PoolGroup = require("module$node_modules$pixi_DOT_js$lib$utils$pool$PoolGroup"), cacheAsTextureMixin = require("module$node_modules$pixi_DOT_js$lib$scene$container$container_mixins$cacheAsTextureMixin"), childrenHelperMixin = require("module$node_modules$pixi_DOT_js$lib$scene$container$container_mixins$childrenHelperMixin"), collectRenderablesMixin = require("module$node_modules$pixi_DOT_js$lib$scene$container$container_mixins$collectRenderablesMixin"), effectsMixin = require("module$node_modules$pixi_DOT_js$lib$scene$container$container_mixins$effectsMixin"), 
  findMixin = require("module$node_modules$pixi_DOT_js$lib$scene$container$container_mixins$findMixin"), getFastGlobalBoundsMixin = require("module$node_modules$pixi_DOT_js$lib$scene$container$container_mixins$getFastGlobalBoundsMixin"), getGlobalMixin = require("module$node_modules$pixi_DOT_js$lib$scene$container$container_mixins$getGlobalMixin"), measureMixin = require("module$node_modules$pixi_DOT_js$lib$scene$container$container_mixins$measureMixin"), onRenderMixin = require("module$node_modules$pixi_DOT_js$lib$scene$container$container_mixins$onRenderMixin"), 
  sortMixin = require("module$node_modules$pixi_DOT_js$lib$scene$container$container_mixins$sortMixin"), toLocalGlobalMixin = require("module$node_modules$pixi_DOT_js$lib$scene$container$container_mixins$toLocalGlobalMixin"), RenderGroup = require("module$node_modules$pixi_DOT_js$lib$scene$container$RenderGroup"), assignWithIgnore = require("module$node_modules$pixi_DOT_js$lib$scene$container$utils$assignWithIgnore");
  "use strict";
  const defaultSkew = new ObservablePoint.ObservablePoint(null), defaultPivot = new ObservablePoint.ObservablePoint(null), defaultScale = new ObservablePoint.ObservablePoint(null, 1, 1), defaultOrigin = new ObservablePoint.ObservablePoint(null);
  class Container extends global {
    constructor(options = {}) {
      super();
      this.uid = uid.uid("renderable");
      this._updateFlags = 15;
      this.parentRenderGroup = this.renderGroup = null;
      this.parentRenderGroupIndex = 0;
      this.didViewUpdate = this.didChange = !1;
      this.relativeRenderGroupDepth = 0;
      this.children = [];
      this.parent = null;
      this.isSimple = this.measurable = this.includeInBuild = !0;
      this.parentRenderLayer = null;
      this.updateTick = -1;
      this.localTransform = new Matrix.Matrix();
      this.groupTransform = this.relativeGroupTransform = new Matrix.Matrix();
      this.destroyed = !1;
      this._position = new ObservablePoint.ObservablePoint(this, 0, 0);
      this._scale = defaultScale;
      this._pivot = defaultPivot;
      this._origin = defaultOrigin;
      this._skew = defaultSkew;
      this._cx = 1;
      this._cy = this._sx = 0;
      this._sy = 1;
      this._rotation = 0;
      this.localColor = 16777215;
      this.groupAlpha = this.localAlpha = 1;
      this.groupColor = 16777215;
      this.groupColorAlpha = 4294967295;
      this.localBlendMode = "inherit";
      this.groupBlendMode = "normal";
      this.globalDisplayStatus = this.localDisplayStatus = 7;
      this._didViewChangeTick = this._didContainerChangeTick = 0;
      this._didLocalTransformChangeId = -1;
      this.effects = [];
      assignWithIgnore.assignWithIgnore(this, options, {children:!0, parent:!0, effects:!0});
      options.children?.forEach(child => this.addChild(child));
      options.parent?.addChild(this);
    }
    static mixin(source) {
      deprecation.deprecation("8.8.0", "Container.mixin is deprecated, please use extensions.mixin instead.");
      Extensions.extensions.mixin(Container, source);
    }
    set _didChangeId(value) {
      this._didViewChangeTick = value >> 12 & 4095;
      this._didContainerChangeTick = value & 4095;
    }
    get _didChangeId() {
      return this._didContainerChangeTick & 4095 | (this._didViewChangeTick & 4095) << 12;
    }
    addChild(...children) {
      this.allowChildren || deprecation.deprecation(deprecation.v8_0_0, "addChild: Only Containers will be allowed to add children in v8.0.0");
      if (1 < children.length) {
        for (var i = 0; i < children.length; i++) {
          this.addChild(children[i]);
        }
        return children[0];
      }
      children = children[0];
      i = this.renderGroup || this.parentRenderGroup;
      if (children.parent === this) {
        return this.children.splice(this.children.indexOf(children), 1), this.children.push(children), i && (i.structureDidChange = !0), children;
      }
      children.parent && children.parent.removeChild(children);
      this.children.push(children);
      this.sortableChildren && (this.sortDirty = !0);
      children.parent = this;
      children.didChange = !0;
      children._updateFlags = 15;
      i && i.addChild(children);
      this.emit("childAdded", children, this, this.children.length - 1);
      children.emit("added", this);
      this._didViewChangeTick++;
      0 !== children._zIndex && children.depthOfChildModified();
      return children;
    }
    removeChild(...children) {
      if (1 < children.length) {
        for (var i = 0; i < children.length; i++) {
          this.removeChild(children[i]);
        }
        return children[0];
      }
      children = children[0];
      i = this.children.indexOf(children);
      -1 < i && (this._didViewChangeTick++, this.children.splice(i, 1), this.renderGroup ? this.renderGroup.removeChild(children) : this.parentRenderGroup && this.parentRenderGroup.removeChild(children), children.parentRenderLayer && children.parentRenderLayer.detach(children), children.parent = null, this.emit("childRemoved", children, this, i), children.emit("removed", this));
      return children;
    }
    _onUpdate(point) {
      point && point === this._skew && this._updateSkew();
      this._didContainerChangeTick++;
      if (!this.didChange && (this.didChange = !0, this.parentRenderGroup)) {
        this.parentRenderGroup.onChildUpdate(this);
      }
    }
    set isRenderGroup(value) {
      !!this.renderGroup !== value && (value ? this.enableRenderGroup() : this.disableRenderGroup());
    }
    get isRenderGroup() {
      return !!this.renderGroup;
    }
    enableRenderGroup() {
      if (!this.renderGroup) {
        var parentRenderGroup = this.parentRenderGroup;
        parentRenderGroup?.removeChild(this);
        this.renderGroup = PoolGroup.BigPool.get(RenderGroup.RenderGroup, this);
        this.groupTransform = Matrix.Matrix.IDENTITY;
        parentRenderGroup?.addChild(this);
        this._updateIsSimple();
      }
    }
    disableRenderGroup() {
      if (this.renderGroup) {
        var parentRenderGroup = this.parentRenderGroup;
        parentRenderGroup?.removeChild(this);
        PoolGroup.BigPool.return(this.renderGroup);
        this.renderGroup = null;
        this.groupTransform = this.relativeGroupTransform;
        parentRenderGroup?.addChild(this);
        this._updateIsSimple();
      }
    }
    _updateIsSimple() {
      this.isSimple = !this.renderGroup && 0 === this.effects.length;
    }
    get worldTransform() {
      this._worldTransform || (this._worldTransform = new Matrix.Matrix());
      this.renderGroup ? this._worldTransform.copyFrom(this.renderGroup.worldTransform) : this.parentRenderGroup && this._worldTransform.appendFrom(this.relativeGroupTransform, this.parentRenderGroup.worldTransform);
      return this._worldTransform;
    }
    get x() {
      return this._position.x;
    }
    set x(value) {
      this._position.x = value;
    }
    get y() {
      return this._position.y;
    }
    set y(value) {
      this._position.y = value;
    }
    get position() {
      return this._position;
    }
    set position(value) {
      this._position.copyFrom(value);
    }
    get rotation() {
      return this._rotation;
    }
    set rotation(value) {
      this._rotation !== value && (this._rotation = value, this._onUpdate(this._skew));
    }
    get angle() {
      return this.rotation * _const.RAD_TO_DEG;
    }
    set angle(value) {
      this.rotation = value * _const.DEG_TO_RAD;
    }
    get pivot() {
      this._pivot === defaultPivot && (this._pivot = new ObservablePoint.ObservablePoint(this, 0, 0));
      return this._pivot;
    }
    set pivot(value) {
      this._pivot === defaultPivot && (this._pivot = new ObservablePoint.ObservablePoint(this, 0, 0), this._origin !== defaultOrigin && warn.warn("Setting both a pivot and origin on a Container is not recommended. This can lead to unexpected behavior if not handled carefully."));
      "number" === typeof value ? this._pivot.set(value) : this._pivot.copyFrom(value);
    }
    get skew() {
      this._skew === defaultSkew && (this._skew = new ObservablePoint.ObservablePoint(this, 0, 0));
      return this._skew;
    }
    set skew(value) {
      this._skew === defaultSkew && (this._skew = new ObservablePoint.ObservablePoint(this, 0, 0));
      this._skew.copyFrom(value);
    }
    get scale() {
      this._scale === defaultScale && (this._scale = new ObservablePoint.ObservablePoint(this, 1, 1));
      return this._scale;
    }
    set scale(value) {
      this._scale === defaultScale && (this._scale = new ObservablePoint.ObservablePoint(this, 0, 0));
      "string" === typeof value && (value = parseFloat(value));
      "number" === typeof value ? this._scale.set(value) : this._scale.copyFrom(value);
    }
    get origin() {
      this._origin === defaultOrigin && (this._origin = new ObservablePoint.ObservablePoint(this, 0, 0));
      return this._origin;
    }
    set origin(value) {
      this._origin === defaultOrigin && (this._origin = new ObservablePoint.ObservablePoint(this, 0, 0), this._pivot !== defaultPivot && warn.warn("Setting both a pivot and origin on a Container is not recommended. This can lead to unexpected behavior if not handled carefully."));
      "number" === typeof value ? this._origin.set(value) : this._origin.copyFrom(value);
    }
    get width() {
      return Math.abs(this.scale.x * this.getLocalBounds().width);
    }
    set width(value) {
      const localWidth = this.getLocalBounds().width;
      this._setWidth(value, localWidth);
    }
    get height() {
      return Math.abs(this.scale.y * this.getLocalBounds().height);
    }
    set height(value) {
      const localHeight = this.getLocalBounds().height;
      this._setHeight(value, localHeight);
    }
    getSize(out) {
      out || (out = {});
      const bounds = this.getLocalBounds();
      out.width = Math.abs(this.scale.x * bounds.width);
      out.height = Math.abs(this.scale.y * bounds.height);
      return out;
    }
    setSize(value, height) {
      const size = this.getLocalBounds();
      "object" === typeof value ? (height = value.height ?? value.width, value = value.width) : height ?? (height = value);
      void 0 !== value && this._setWidth(value, size.width);
      void 0 !== height && this._setHeight(height, size.height);
    }
    _updateSkew() {
      const rotation = this._rotation, skew = this._skew;
      this._cx = Math.cos(rotation + skew._y);
      this._sx = Math.sin(rotation + skew._y);
      this._cy = -Math.sin(rotation - skew._x);
      this._sy = Math.cos(rotation - skew._x);
    }
    updateTransform(opts) {
      this.position.set("number" === typeof opts.x ? opts.x : this.position.x, "number" === typeof opts.y ? opts.y : this.position.y);
      this.scale.set("number" === typeof opts.scaleX ? opts.scaleX : this.scale.x, "number" === typeof opts.scaleY ? opts.scaleY : this.scale.y);
      this.rotation = "number" === typeof opts.rotation ? opts.rotation : this.rotation;
      this.skew.set("number" === typeof opts.skewX ? opts.skewX : this.skew.x, "number" === typeof opts.skewY ? opts.skewY : this.skew.y);
      this.pivot.set("number" === typeof opts.pivotX ? opts.pivotX : this.pivot.x, "number" === typeof opts.pivotY ? opts.pivotY : this.pivot.y);
      this.origin.set("number" === typeof opts.originX ? opts.originX : this.origin.x, "number" === typeof opts.originY ? opts.originY : this.origin.y);
      return this;
    }
    setFromMatrix(matrix) {
      matrix.decompose(this);
    }
    updateLocalTransform() {
      var localTransformChangeId = this._didContainerChangeTick;
      if (this._didLocalTransformChangeId !== localTransformChangeId) {
        this._didLocalTransformChangeId = localTransformChangeId;
        localTransformChangeId = this.localTransform;
        var scale = this._scale, pivot = this._pivot, origin = this._origin, position = this._position, sx = scale._x;
        scale = scale._y;
        var px = pivot._x;
        pivot = pivot._y;
        var ox = -origin._x;
        origin = -origin._y;
        localTransformChangeId.a = this._cx * sx;
        localTransformChangeId.b = this._sx * sx;
        localTransformChangeId.c = this._cy * scale;
        localTransformChangeId.d = this._sy * scale;
        localTransformChangeId.tx = position._x - (px * localTransformChangeId.a + pivot * localTransformChangeId.c) + (ox * localTransformChangeId.a + origin * localTransformChangeId.c) - ox;
        localTransformChangeId.ty = position._y - (px * localTransformChangeId.b + pivot * localTransformChangeId.d) + (ox * localTransformChangeId.b + origin * localTransformChangeId.d) - origin;
      }
    }
    set alpha(value) {
      value !== this.localAlpha && (this.localAlpha = value, this._updateFlags |= 1, this._onUpdate());
    }
    get alpha() {
      return this.localAlpha;
    }
    set tint(value) {
      value = Color.Color.shared.setValue(value ?? 16777215).toBgrNumber();
      value !== this.localColor && (this.localColor = value, this._updateFlags |= 1, this._onUpdate());
    }
    get tint() {
      return getGlobalMixin.bgr2rgb(this.localColor);
    }
    set blendMode(value) {
      this.localBlendMode !== value && (this.parentRenderGroup && (this.parentRenderGroup.structureDidChange = !0), this._updateFlags |= 2, this.localBlendMode = value, this._onUpdate());
    }
    get blendMode() {
      return this.localBlendMode;
    }
    get visible() {
      return !!(this.localDisplayStatus & 2);
    }
    set visible(value) {
      (this.localDisplayStatus & 2) !== (value ? 2 : 0) && (this.parentRenderGroup && (this.parentRenderGroup.structureDidChange = !0), this._updateFlags |= 4, this.localDisplayStatus ^= 2, this._onUpdate(), this.emit("visibleChanged", value));
    }
    get culled() {
      return !(this.localDisplayStatus & 4);
    }
    set culled(value) {
      (this.localDisplayStatus & 4) !== (value ? 0 : 4) && (this.parentRenderGroup && (this.parentRenderGroup.structureDidChange = !0), this._updateFlags |= 4, this.localDisplayStatus ^= 4, this._onUpdate());
    }
    get renderable() {
      return !!(this.localDisplayStatus & 1);
    }
    set renderable(value) {
      (this.localDisplayStatus & 1) !== (value ? 1 : 0) && (this._updateFlags |= 4, this.localDisplayStatus ^= 1, this.parentRenderGroup && (this.parentRenderGroup.structureDidChange = !0), this._onUpdate());
    }
    get isRenderable() {
      return 7 === this.localDisplayStatus && 0 < this.groupAlpha;
    }
    destroy(options = !1) {
      if (!this.destroyed) {
        this.destroyed = !0;
        var oldChildren;
        this.children.length && (oldChildren = this.removeChildren(0, this.children.length));
        this.removeFromParent();
        this._skew = this._origin = this._pivot = this._scale = this._position = this.effects = this._filterEffect = this._maskEffect = this.parent = null;
        this.emit("destroyed", this);
        this.removeAllListeners();
        if (("boolean" === typeof options ? options : options?.children) && oldChildren) {
          for (let i = 0; i < oldChildren.length; ++i) {
            oldChildren[i].destroy(options);
          }
        }
        this.renderGroup?.destroy();
        this.renderGroup = null;
      }
    }
  }
  Extensions.extensions.mixin(Container, childrenHelperMixin.childrenHelperMixin, getFastGlobalBoundsMixin.getFastGlobalBoundsMixin, toLocalGlobalMixin.toLocalGlobalMixin, onRenderMixin.onRenderMixin, measureMixin.measureMixin, effectsMixin.effectsMixin, findMixin.findMixin, sortMixin.sortMixin, module.cullingMixin, cacheAsTextureMixin.cacheAsTextureMixin, getGlobalMixin.getGlobalMixin, collectRenderablesMixin.collectRenderablesMixin);
  exports.Container = Container;
  exports.UPDATE_BLEND = 2;
  exports.UPDATE_COLOR = 1;
  exports.UPDATE_TRANSFORM = 8;
  exports.UPDATE_VISIBLE = 4;
};

//# sourceMappingURL=module$node_modules$pixi_DOT_js$lib$scene$container$Container.js.map
